2025 – Present · Solo-developed rhythm game

Transientica

A Unity rhythm game played by beatboxing into a microphone.

I built the game and its audio recognition in C#. Before a song starts, it learns how that player makes a kick, snare and hi-hat, then classifies each live hit against the notes in the beatmap.

Unity 6 · C# · KNN · FFT · In development

Current build

Training and gameplay in Unity

Players record ten examples of each beatbox sound with their own microphone. The trained model then classifies live hits while the game judges their timing against a beatmapped song.

Gameplay demo · current C# build

Audio path

From microphone onset to a judged note

The current build listens, recognises the sound and judges its timing entirely inside Unity. It does not need Python or another application running beside the game.

When the microphone detects a hit, the game measures seven traits of the sound and compares them with the player’s recordings. A KNN classifier uses that comparison to decide whether the hit was a kick, snare or hi-hat.

The game matches the recognised hit to the nearest note using Unity’s audio clock. A short calibration estimates microphone delay, and the player can fine-tune the offset in 1 ms steps.

Signal path Microphone → onset → 512-sample FFT → seven features → KNN → nearest note → score.

Rebuild

Why I rebuilt the prototype inside Unity

The first version recognised sounds in a separate Python program and sent the result to Unity. I replaced it with a C# system that analyses and classifies each hit inside the game.

The rebuild turned the classifier demo into a playable loop with song selection, beatmaps, scoring and saved results. Training data stays in readable JSON and can be updated between rounds.

The 2025 figures below come from the player-specific SVM prototype. Accuracy means kick, snare and hi-hat classification after training on that player’s recordings; latency covers the mouth-to-game path through Python, OSC and Unity. The current C# build has not yet been tested under the same protocol.

Prototype and current build comparison
VersionModelRuntimeAccuracyEnd-to-end latency
2025 prototype (retired)SVMPython + OSC + Unity92% classification accuracy45 ms mouth-to-game
Current rebuildKNN, K=5Pure C# in Unity 6Pending like-for-like benchmarkPending like-for-like benchmark
Original prototype · SVM + OSC · 2025