bobbicodes / mecca Goto Github PK
View Code? Open in Web Editor NEWAnimated music editor in Clojurescript/re-frame
Home Page: https://bobbicodes.github.io/mecca/
Animated music editor in Clojurescript/re-frame
Home Page: https://bobbicodes.github.io/mecca/
Because I started building this without really knowing what I was doing, and ended up trying out dozens of features before converging on an effective few, there remains much vestigial code (entire namespaces, even) that I feel would best be removed, saving it for future projects and refocusing this one on what it has become - a cute, multitimbral sample-based scrolling music editor.
This "legacy code" includes:
Code related to features currently being worked on (MusicXML import, etc.) should be moved to separate feature branches.
One might not even realize they are there unless they happen to hover over it by chance. This was done for the purpose of keeping the UI clean, but I now think it was a bad idea.
...or, Resume AudioContext all the things.
A (sort of) recent change to the Chrome browser audio policy requires the Web Audio engine to be resumed once suspended if not explicitly started from within a user event.
We are currently dealing with this by resuming the AudioContext on certain events, if I recall correctly it is upon note entry.
This seems preferable to forcing the user to "Click here to begin" or the like, but this should be abstracted into a resume
function that can be universally applied to other events that may have been overlooked. It will also make it more clear what it is doing.
According to the readme the EDN data representing the song is output below Data-Robot. In the app currently however, there is no data nor Data-Robot.
This is not actually a complete lie - not only was it there at one point, but I had 2 different text boxes, one for EDN and one for MusicXML.
The best way to do this would be to add 2 buttons:
Save
: Download a file to the user's machine containing the EDN data for the songLoad
: Do the opposite. Validate data and swap into app-state.While this is likely the optimal solution (and shouldn't be very hard), the way the system worked (before I broke it for whatever reason) was acceptable, where the song data simply sat in an editable text box that would update the app state upon validation. I think I want to just fix that first.
This seems to have something to do with the edges. Check it out by looking at places with solid colors, like the white inside the instrument buttons or inside the transport control. On Chrome it blends together as a solid color, while in Firefox the "pixel" edges are visible. Not necessarily bad for this kind of thing, but just different.
FYI some of the scripts used on https://porkostomus.github.io/mecca/ return 404:
dev-main.js:3 GET https://porkostomus.github.io/cljs-out/dev/goog/base.js net::ERR_ABORTED 404
(anonymous) @ dev-main.js:3
dev-main.js:4 GET https://porkostomus.github.io/cljs-out/dev/goog/deps.js net::ERR_ABORTED 404
(anonymous) @ dev-main.js:4
dev-main.js:5 GET https://porkostomus.github.io/cljs-out/dev/cljs_deps.js net::ERR_ABORTED 404
(anonymous) @ dev-main.js:5
2(index):12 GET https://porkostomus.github.io/cljs-out/dev/goog/deps.js net::ERR_ABORTED 404
Thought you might want to know, since it was just posted on Reddit: https://www.reddit.com/r/Clojure/comments/cx6km7/chiptune_tracker_8bit_music_synthsequencer_in/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.