« 2017年02月 | 2017年03月のアーカイブ | 2017年04月 »
2017/03/23
WebAudio.Tokyo #4
既に参加枠は満員のようですが、来週28日(火)に六本木の WebAudio.tokyo でLTやります。
今回のテーマは「軽量GMシンセ webaudio-tinysynth」です。
posted by g200kg : 4:33 AM : PermaLink
2017/03/01
WebAudio API で簡単にノイズを作りたかったのに...
この間こんな記事を書いたのですが... WebAudio API でノイズを作る小技
FM音源なんかでよく使われる、オシレータに自己フィードバックを掛けてノイズを作る方法なんですが、実はこれ、Chrome と Edge では快調に動くのですが Firefox では動かないのですよ。まあ、WebAudio API もまだまだ枯れたAPIではないし、こういうコーナーケース的な使い方ではよくある事くらいに思っていたのですけどね...
このようにノードの出力から入力ではなくパラメータに接続を戻すような場合の振る舞いについてWeb Audio APIの仕様書ではちゃんと明記されてはいないのだけど、Editor's Draft にあるノードの処理オーダーの説明などからの推察としては、これは「動かない」のが仕様として正しいと判断するのが妥当かな、という結論に至ってしまった。
という事でこの技が胸を張って使えなくなってしまった。これを確実に動作させるにはループ内にDelayNodeが入っていることが必要で、仕様に従うと下の図のような感じになります。出てくる音は基本的に同じなのだけど、簡単にノイズを作るはずなのにノード3つ使うのではうまみがないです。これならバッファに事前にレンダリングしておいて BufferSourceNode を使うほうが良さそう。
あー、残念だ。なお、本来の仕様ではこのような接続をした時点でエラーを吐くべき、となっているので、Firefox では今は音が出ないだけだけどその内エラーを吐いて止まるようになるかも知れません。あー残念だ。
DelayNode入り自己フィードバック
posted by g200kg : 5:47 PM : PermaLink
« 2017年02月 | 2017年03月のアーカイブ | 2017年04月 »
-->
g200kg