AS3では、ByteArrayクラスの実装によって、swfで音生成が可能なのではと仮説が出てきました。
http://blog.davr.org/2006/04/21/dynamic-sound-in-85
ここでの手法は、サウンドがアッタチされたswfをメモリ上に生成して音を生成してます。
それを元に、
http://blog.andre-michelle.com/2006/as3-audiocyclebuffer/
が出来て、TR-909が出来た。
LIVE@POPFORGE
これを作った、Andre Michelleが、popforgeという音響合成のライブラリをリリースしました。
http://code.google.com/p/popforge/
今のところ、Flex環境のみです。
SVNレポジトリから展開すると、クラスファイルと、サンプルファイルなどがあります。
そのサンプルファイルの内の"CreateASound"では、1秒のサイン波の音を生成します。
ソースの中の以下の部分で、音の波形を1サンプルごとに書き込んでるようなイメージでしょうか。

//-- CREATE ONE SECOND OF AUDIO (SINUS WAVE)
for( var i: int = 0 ; i < 44100 ; i++ )
{
//-- create an amplitude [-1,1]
amplitude = Math.sin( phase * Math.PI * 2 );
//-- create a sample
sample = new Sample( amplitude, amplitude );
//-- push in array
samples.push( sample );
//-- increase phase
phase += freq / Audio.RATE44100;
}
この場合、変数amplitudeの扱い様で、シンプルな合成ができたりしそうだったので、
Maxパッチで書くと、以下のようになるように、してみたのが、こちら。(FlashPlayer9以上が必要です)

クリック位置に応じた周波数の異なる音を生成します。
マウスリスナーと、3行ほど追加しただけです。
他のサンプル、"PlayWavfile"では、サウンドファイル再生でピッチコントロールをデモしてます。
サウンドファイルを変えただけで、そのままビルドしたものは、こちら。
Directorでは標準でピッチコントロールが出来てたので、いろいろ遊んでたのを思い出します。

