音の鳴るブログ

鳴らないこともある

音楽用CoffeeScriptを作ろう (12) 再構成する

どんどんやる気がなくなってきて、このままではいけないと WebSocket に対応させて自分を鼓舞しようと思ったのだけど無理だった。 というのも、今はコンパイルした JavaScript を WebWorker の中で eval しているのだけど、WebWorker をそっくり SocketServer に置き換えた場合、サーバーの中で eval することになってしまう。必要以上にアホだと思われたくはないのでどうにかしないといけない。

そこで動作の仕組みをもう一度見直すことにした。Client と Server間は OSC みたいなメッセージで制御する。 WebWorkerで使うケースが圧倒的だと思うので、WebSocketに対応させた故の影響を極力小さくする。結果最初に採用していた3層構造っぽいのと今の改良版の2層構造のハイブリッドになる予定。影響少なそうな部分から緩やかに対応させていってる。

https://github.com/mohayonao/CoffeeCollider/issues/10

今こんなかんじ

[Window]        [Worker]
Interface <---> Server
AudioAPI        (eval)

修正後

# ローカルで使う場合
[Window]        [Worker]
Interface <---> Client / Server
AudioAPI        (eval)


# ソケットサーバーを使う場合
[Window]        [IFrame]       [WebSocketServer]
Interface <---> Client   <---> Server
                AudioAPI
                (eval)