Posted December 01, 2018 by Itooh
Hello! It's been a while, hasn't it? I'm finally back on this project, with a big update that I hope you'll enjoy. This update is mostly focused on exporting, meaning that you are now able to easily share your creations, and even work on them with external tools!
I'm eager to listen on what people create with it! Reminder: you can post your songs on this topic.
PS : If you want to post them on social network, you might want to use an url shortener. The links are still really long…
Having recently moved, this project (and everything else) was a bit on hiatus. Now that I'm settled, I can finally make some progress! I hope finishing it before the end of the month (and the year). There's really not much left!
About this update, my biggest concern was the export in MIDI. This turned out actually pretty easy! I used the library midi-writer-js, that handles the creation of MIDI file pretty nicely. Actually the most difficult task was to make the browser download the generated file! The only trick was how MidiWriter (as well as plenty other libraries) manages silences in MIDI. You can't just add a silence, just like I had the intention to do. Each note has a duration, and an offset relatively to the previous one. So instead of iterating the sheet and adding either a note or a silence, I have to increase a "delay" variable for each instruments. This means that I can not just repeat each section four time: I have to take into account the delay from the previous one. So I just iterate four times on every sections.
Also I've managed colors terribly. I should have used CSS variables, or a theming tool, rather than writing every colors in each files. Because of that, I add to fix all of them when I wanted to redefine colors. I initially thought since this was a single page application, I could just have a minimalist and messy CSS… But it becomes quickly hard to work on. Well, lesson learned.
Now, what comes next? Actually, it's mostly polishing. A bit more instruments, icons, labels and alerts… The biggest task might be to make the table accessible: users should be able to navigate it with arrow keys. Once this is done, Joy Phases will be ready for release!