
昔作ったWeb上で動作するモジュラーシンセ「WebModular」というのがあって、今でも一応動作するのですが、さすがに古くてパフォーマンス的に辛いので「WebModular2」として作り直しました。
GitHubで公開しています。 https://github.com/g200kg/webmodular2
元のWebModularを作った時はまだオーディオ系Web APIとしてChromeのWeb Audio API と Firefoxの Audio Data API がそれぞれ別個に開発を進めていた時代で、今後どうなるか未確定だったので信号処理としては Pure Javascript で波形生成まで実行していましたが、今ならWeb Audio API 一択になりましたので、信号処理の中身は各ノードにまかせてパフォーマンスとしては楽になりました。
その代わりに標準的に用意されているノードを逸脱するような機能を入れようとすると中々面倒な事になります。フィルターのサチュレーション特性に小細工したり、オシレータに機能を追加したりというのは標準のノードではできず、AudioWorkletを駆使すれば実装はできるけどパフォーマンス向上の利点も失うという深みにはまりそうです。
という事である程度妥協しつつ現状で書くならこんな所かな、というレベルで書いてみましたので、適当に触ってください。




