package { import de.popforge.audio.output.Audio; import de.popforge.audio.output.AudioBuffer; import de.popforge.audio.output.Sample; import de.popforge.audio.processor.bitboy.BitBoy; import de.popforge.audio.processor.bitboy.formats.FormatBase; import de.popforge.audio.processor.bitboy.formats.FormatFactory; import de.popforge.format.wav.WavFormat; import flash.display.Sprite; import flash.utils.ByteArray; public class BitboySimpleApp extends Sprite { private var bitboy: BitBoy; private var buffer:AudioBuffer; private var format: FormatBase; [Embed(source="/../bin/mod/rainfore.mod", mimeType="application/octet-stream")] static private const MOD: Class; public function BitboySimpleApp() { init(); } private function init(): void { bitboy = new BitBoy(); buffer = new AudioBuffer( 4, Audio.STEREO, Audio.BIT16, Audio.RATE44100 ); buffer.onInit = onAudioBufferInit; buffer.onComplete = onAudioBufferComplete; } private function onAudioBufferInit( buffer: AudioBuffer ): void { format = FormatFactory.createFormat( ByteArray( new MOD() ) ); bitboy.setFormat( format ); bitboy.parameterPause.setValue( !true ); if( !buffer.isPlaying() ) buffer.start(); } private function onAudioBufferComplete( buffer: AudioBuffer ): void { var samples: Array = buffer.getSamples(); bitboy.processAudio( samples ); if( bitboy.isIdle() ) { trace("idle"); } buffer.update(); } } }