../
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.