We were not sure if this ever gonna work. In about 4 days we ported more than 30.000 lines code of a Java Vorbis Encoder to AS3. We came across several issues when AS3 code is behaving completely different from Java code. Debugging code, you cannot understand is a pain in the ass! However, we optimized the horrible Java code quite a bit. The encoding takes now twice the time of the audio duration and it doesn’t take that much memory as before.
Why Audio Encoding?
We would like give the Hobnox AudioTool users the option to stream a live-session to their Hobnox Library. Unfortunately the Flashplayer doesn’t allow streaming data to the hard-drive and we didn’t wanted to fill the memory with uncompressed audio material (~10mb/min). We manage streaming by using (a lot of) SharedObjects, slicing the audio data into several packages, which are later transferred to the encoder for uploading.
Vorbis has a better file reduction ratio AND sounds much better than MP3 files. I cannot hear any difference against the uncompressed audio data at Vorbis rate of 128kb/sec. Filesize was the reason in the first place, cause we cannot upload uncompressed audio data. It would take too long. Naturally in the end the server converts the audio file to MP3 that the Flashplayer is able to play it. I would love to see the Flashplayer playing back Vorbis in future releases. It sounds better and it is also able to loop. You know that MP3 is not loopable trouble-free.
Entirely in Flash (No Java anymore):
I admit: My session is actually boring. I quickly setup some beats and just one 303 without any effects to test the Streaming and Encoding. Download the OGG-file here. The next update is scheduled for September, 1st. This may shift as we need to wait for FlashPlayer 10. The current version of the AudioTool works with a Java applet to stream the AS3 generated audio to the sound card. We are looking forward to get rid of it.
I pretty sure we will share the encoder in time. It still needs some tweaking and optimizations.