coding, photo, plant and demo

*ブラスっぽい音を作る

synthesizer 20130303 231126
CCRMAにブラスの物理モデルが書いてあった。
https://ccrma.stanford.edu/~jos/pasp/Brasses.html
実装はSTKに書いてあるので、jsで真似して書いてみた。

http://cygx.mydns.jp/tracker/?id=Brass
それっぽいけどまだ何か変。

とりあえず分かったことをメモ。

簡単に言うと、管楽器というのは管とリードから成る。ブラスの場合はリードは奏者の唇となる。

唇は息と管の圧力を双2次フィルタで目的の周波数で共振させることで実装している。
息の圧力は単純にADSRで決める。ただそれだけだと単純すぎるのでサイン波でビブラートを入れる。ついでに雑音も入れてみた。

管はdigital waveguideで実装していると書いてあるけど、難しいことは無く、左へ進む波と右へ進む波をそれぞれ管理するバッファのこと。管の性質は端に到達したときにどう反射するかがで決まる。ちなみに、waveguideは 導波管 といって、通常はマイクロ波等を送るための金属の管のことらしい。
他に特性としては、いくら共振しても波の大きさには限度があるということ。つまり音が割れる。
あと、トランペットのように途中で管が曲がっていると単純なwave guideじゃ駄目らしい。高周波のロスや反射が起きる。これは実装されていない。

他にベル(管の先の朝顔みたいな部分)のようになっている部分は、そのインパルス応答を再現するには10次のIIRが必要らしいけど、簡単な多項式で近似できるらしい。理由はよく分かりません。。。

下記のページが音のサンプルも多く分かりやすかった。
Brass instrument (lip reed) acoustics: an introduction
http://www.phys.unsw.edu.au/jw/brassacoustics.html


これだけのコードでも、パラメータをいじるだけで尺八っぽい音になったりで、結構遊べる。ただ、本物にはまだ程遠くこれじゃ実用性はないな、という感じ。