Sabtu, 15 Desember 2012

Digital Audio Signal Analysis

This latest update isn't about the stealth game but about an assignment that's nearing completion, one part of it is a music based game like Guitar Hero or RockBand, simple music, hit the keys in time with the notes on the screen. Originally we planned to write tedious code with the timing for each note in each song but nearing the due date I've written a script for audio spectrum analysis to recognize notes in the music. I have no experience in digital audio signal interpretation though so I've just been working my way forward learning as I go from trial and error but I have a working version now and some cool looking charts to go with it.

Amplitude time graph:

Amplitude time graph to the music we're using in the game:

Spectrum time graph:

Through trial and error I've come up with three options for beat recognition; simple amplitude check where any sound above a certain amplitude is counted, second I have a sudden start test that checks for sudden increases in amplitude and lastly I have a sudden stop test for sudden stops in amplitude. Almost everything is changeable as it plays, things like the cooldown before it checks for a new beat, sensitivity of each test and how far forward or back the sudden stop and start checks test for increase or decrease from.

The implementation isn't far from done now all that's left is converting the beats into arrows that scroll to the bottom of the screen in time with the song and letting the player input their presses.
Primbon Jawa Audio