Converts beat saber files to be played an the novation launchpad mk2. I was messing around with song files for the vr game beat saber. It puts notes on a 3×4 grid with each note having 8 possible directions for a player to “cut” it. I expanded this to a 6X8 grid to fit on the launchpad by factoring in the cut direction (up = y position+1, right = x position+1). Each difficulty’s note data is stored in a dictionary, and each song’s difficulties are stored in an info dictionary as a dat file along with a few other things, which needs to be interpreted by the pygame menu to open the correct level and show the background etc.
I used a launchpad api from a github repo to control the lights of the board and read the inputs, which are used to play the song. once a level is selected, the program uses the converted notes data and makes 2 lists: one the controls the lights and one that contains the position/time of the notes. every 1/32 beat, it checks the lists for notes it needs to diplay and checks for a button press that corresponds to the correct note timing and lights up the neighbors as feedback.
todo: optimize note checking algorithm, make a scoring system
Neil Wei – EE, 2022 – email@example.com