2019 Apr 02
QMK - Weekly song post
Added some random things I've been listening to this week link:
- Fantasie Impromptu and Nocturne Op. 9 No. 1 in B flat minor by Chopin
- Isabella's Lullaby from The Promised Neverland
- Renai Circulation and Platinum Disco from Monogatari
- Terra's theme from Final Fantasy 6
Programming Music Keyboards
2019 Mar 24
QMK - Added songs from Nier and Nier Automata
I decided the Nier franchise deserved a week all to itself. Here's this weeks contribution, with the following songs:
- Song of the ancients
- Kaine Salvation
- Amusement Park theme
- Coped City
- Vague Hope/Cold Rain
- Weight of the world
Programming Music Keyboards
2019 Mar 18
QMK - Added some more songs
Here is this weeks commit:
- Liebesleid - Kriesler/Rachmaninoff
- Michishirube - Ending song from Violet Evergarden
- Melodies of Life - Main song from Final Fantasy IX
- Eyes on Me - Main song from Final Fantasy VIII
Programming Music Keyboards
2019 Mar 09
QMK - Added some songs and note types
I've decided to start adding songs to the QMK song list on a weekly basis (since my music format conversion framework makes it really easy to do).
Here is my weekly commit - I added La Campanella by Liszt, Kataware Doki from Kimi no na wa and Megalovania from Undertale.
I also added the breve note type to musical_notes.h, since the default tempo in QMK is very high, so a higher duration note seemed necessary for a lot of slower songs.
Programming Music Keyboards
2019 Mar 09
Cambiare - A Lightweight Music Conversion Framework
I was messing around with QMK (popular firmware used with mechanical keyboards) a few days ago and was adding custom songs to my Preonic keyboard, and it was taking forever. So I wrote a small utility to convert MusicXML files to a string output format that could easily be added to a QMK song list.
Here's an example input:
Here's an example output:
I later decided to use this utility as the basis of a small framework to convert single staff music inputs into custom outputs, so I could use it for other output types later.
Inputs are modules that implement the MusicImporter abstract class, and outputs must implement the MusicWriter abstract class. The process of adding a new input module mainly consists of converting notes in the input type to a CNote, and adding a new output module mainly consists of converting a CNote into the output format.
The next type of output format I'm planning to implement is for Ocarina tabs, specifically for 12 hole ocarina's with a range of A4-F6.
Github: Link
Programming Music Keyboards