REAL-TIME MUSIC GENERATION A very greatly awesomely good presentation by Alex Zazzaro. What is real-time music generation? Music stored as instructions and commands. Interpreted and played during runtime. Streamed audio Prerecorded music. The waveform is sent straight to the speakers. MP3 files (for example). Anything can be recorded. Caveats to streamed audio Cannot read from disc while streaming from disc. No dynamic data loading during game play. Stream would need to reside in ram to do so. Streams are large, ram is limited. How real-time music generation is different For decent quality, an uncompressed stream needs 44,100 bytes for each second of audio. 88,200 bytes per second if you want 16-bit audio! Real-time generated music stores only instructions, such as notes and note lengths. Scenario Trumpet playing 5 notes over 5 seconds. Scenario – Streamed Audio 215kB (220500 bytes) 44,100 bytes per second, for 5 seconds. Scenario – Real-Time 10 bytes One byte for note, one byte for note duration; for 5 notes. How it works (1/2) Recording of an instrument playing one note. The recording is played at different pitches. Multiple recordings of the same instrument can be used. How it works (2/2) 1 channel can play only play 1 note at a time. To play N notes simultaneously, you need N channels. Each channel needs its own set of instructions. What uses real-time music generation? Systems with limited memory. Cartridge-based systems. Systems that can only make beeping noises. Games where the music is interactive. Games that just simply feel like using it. Credits Songs used Battle Theme – Mario Kart Nell’s Theme – Advance Wars Main Theme – Professor Layton and the Curious Village Alma’s Moon Walk – Hanjuku Hero IV Rocket Belt – PilotWings