Youbeat
2022
A while ago, I wanted to adapt arcade game Jubeat for home play, using a device called a launchpad. So I bought one. It looks like this:
Jubeat is a rhythm arcade game by Konami in their Bemani line. It looks like this:
The grid of buttons are each separate note inputs, and the screen above it actually extends below the buttons. The notes for the beatmaps are shown beneath each button you need to press. it looks pretty cool, but naturally it's hard to play at home (ignoring that it's 'illegal' to play at home because piracy, but like, who gives a fuck on that front).
Now, with a bit of RGB magic, you can kinda get an approximation of the inputs for Jubeat on a launchpad. So... why not do that?
Thing is, it ended up pretty involved. Like projects tend to do. First port of call was talking to the launchpad from my language of choice, C#. The launchpad is controlled over MIDI, with regular input messages used when you hit a button, and output used to tell the launchpad what colours to light up. There's also a few sysex messages for stuff like changing mode, how quickly the LEDs pulse, etc.
As I always do, I checked Nuget and found - well, nothing. So then I searched github and found a perfect[ish] package called launchpad-dot-net, from a user called iUltimateLP. Unfortunately, it didn't support my model of launchpad, only earlier ones, so before I could write the game, I had to rewrite the library to support my launchpad. That's right, baby! It's a project within a project!