Saturday, January 28, 2012

Genesis Spectrum Analyzer

Built a custom interface using an ATMEGA328, an MSGEQ7 (7-band spectrum analyzer chip) and a genesis cable plugged into port 2. Sends all 7 bands with an 8-bit resolution with a 4-bit ID to make sure things are always in sync. Running the genesis side ROM on an everdrive.

Really wanted to try my hand at having an audio assisted visual set. Tried an amplitude based one but it wasn't exactly what I was looking for. The chip works really nicely, and once you adjust the threshold it finds the beat very reliably.

Debug / POC ROM - ran a frequency sweep through, works perfectly!

Actual implementation into a new ROM I've been working on. A set of lines are drawn every frame into a tilemap in RAM then DMA'd over right after vsync. Rather than overwriting the tiles under it each line has a defined weight that is added to the array. The sum corresponds to a palette entry, so the longer the effect stays on the more intense the color becomes (black->blue->purple).

Only using the 63hz band here, very effective! You can see around 1:15 where there is a constant tone the effect will play out.

Music by the amazing Danimal Cannon!

Now to (tastefully) work it into some new effects! Should have it in time for Blip Festival Australia.