../ sound was made with beepbox at first. switched to ultra box so the song could be longer than 128 bars. - ultrabox url Video was made with the LÖVE framework. Took most of the time. - itch.io project page Ultrabox can export its project as a json file. Used an online JSON to Lua table to converter so Love2d could read the "sheet music" as it were. Took a while to debug and setup glyph drawing but then the love project was used to edit the visuals of the glyphs and colors. The love project has a implementation of oklab for lua. Some food for thought on how to implement music bars. TEMPO = song.beatsPerMinute BEAT_INTERVAL = 60/TEMPO BAR_INTERVAL = 60*song.beatsPerBar/TEMPO TICK_INTERVAL = BEAT_INTERVAL/song.ticksPerBeat then just barTimeUnit = love.timer.getTime() % BAR_INTERVAL tickFloat = barTimeUnit*song.ticksPerBar tick = math.floor(tickFloat) -- ultrabox has 0 based ticks then we do some of this to increment which bar we're on. if oldBarTimeUnit > .9 and barTimeUnit < .1 then bar = bar + 1 updateNotes() -- grabs all the note info we need to be able to display the stuffs. end oldBarTimeUnit = barTimeUnit if you want to learn more about how it works check out the .love file on the itch page. i did a solidly mid job of documenting the code as it was made.