а почему медленно? по идее можно в режиме реального времени, если вот так:

Код AS3:
var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
for ( var c:int=0; c<8192; c++ ) {
event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
}
}
mySound.addEventListener(Event.SAMPLE_DATA,sineWaveGenerator);
mySound.play();
В примере из хелпа идет генерация звука, но никто не мешает брать эту самую дату и записывать в ByteArray
То есть для нескольких звуков - все подписать на событие sampleData и складывать данные в некий буфер, а в буфере производить все нужные действия (складывать, вычитать, умножать... =) )
UPD:
Единственный косяк, что результат не получится сохранить локально (то есть в один звуковой объект). Хотя, если написать свой кодек... =)