../



sound was made with beepbox at first. switched to ultra box so the song could be longer than 128 bars.

Video was made with the LÖVE framework. Took most of the time.

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.