PianoFlow: Piano practice and Rhythm game

PianoFlow: Piano practice and Rhythm game

9 devlogs
17h 24m
Created by logabe

Gamify your piano practice by turning it into a rhythm game (i'm not using this as an excuse i sweaarrr)

Timeline

logabe
logabe
1h 47m 4 days ago

Added a main menu

Update attachment
Earned sticker

Added support for playing MIDI files. I still need to add support for tempo changes in the song, but this will do for now.

Update attachment

I added audio!! I figured out how to use Raylib's audio callbacks in C# to get low-latency audio, because without it there's a very noticeable delay between hitting a key and hearing the sound.

logabe logabe 17 days ago

I’M SORRY I THOUGHT THAT WAS THE RIGHT VIDEO AAAAAAAA
i should have checked which directory OBS outputs to… I’ll show this feature off in another devlog soon :)

Improved the scoring algorithm somewhat. At this point it only considers when the start of the note is hit, not how long the note is held.

Update attachment

Added a basic accuracy/timing system

Update attachment

Added a metronome and the visuals for the falling notes. Nothing happens when you actually press the keys yet, but that will be the next thing to happen.
I found Hafiz Azman's article 'How To Make a Rhythm Game' super valuable when I was deciding how to implement time management.

Update attachment

Added device selection and the ability to select your instruments range, as well as refactored the code a bunch.

Update attachment

Added an actual piano! This took a while to implement, but I figured it out in the end!
Next up is device selection and calibration so I can stop relying on hardcoded values, then I'll add audio so that my friend will stop bugging me, then get to work on the gameplay :D

Update attachment

I got input working! This took longer than I thought it would because of some issues with managed-midi, the library I'm using (if you hold down a note while loading the program the whole thing breaks). In this example, it's taking input from a MIDI keyboard, but you can also do it from a virtual piano keyboard. I'll also add computer keyboard support at some point for people who just want to try it out.