Midity - A MIDI-centered rhythm game backend for Unity
December 2023
Resources
The full code for this software, along with complete documentation and a couple of testing scenes (including the demo in the YouTube video above), is found here: GitHub Repo
Midity is also currently under review to appear as a package on the official Unity Asset Store. The asset store link will be added here once it is approved!
Demos
- This game is my group's final project for the course CMSC 20900: Computers for Learning.
- For this project, we needed to create a simple educational game, and our game was WAY more advanced than what was expected of us.
- I created all of the rhythm game mechanics for this project, which includes the alpha version of Midity and more.
What is it?
Midity is a tool that handles all of the backend logic for reading and responding to inputs in a rhythm game. It does so by allowing users to represent song data in the familiar MIDI file format.
Additionally, to aid with testing MIDI files, Midity includes a tool that allows users to play a MIDI song or a MIDI track by pitch-shifting audio clips.
Key Features
A MIDI parser for note on/off statuses, velocities, and tempo changes
A rhythm game hit-detection script that reads user inputs and determines whether they should hit notes in a MIDI track
Togglable press and release detection for notes
Support for occasional held notes
Accounts for audio latency
A MIDI player that plays back a MIDI file (or MIDI track) by pitch shifting an audio clip