midiと生音(2)

まさかこのシリーズ、続くんかなぁ・・・。結構疲れるんだけど(ぉ

まず、midi音と生音の違いだが、まず一つは非線形項の扱い。midi非線形項など多分無視しているので音程・音量によらず波形が一定である。いや、確認したわけではないが多分そうであろう。一方の実際の楽器は非線形項の影響により波形がどんどん変わっていく。もちろん演奏者の技術によってある程度一定の波形に出来るだろうが多分一定にした方が不自然になるのではないかと思う。この当たりは理論的検証は不可能なので実際に両方の波形を取ってみるしかないのでここまで。(ぉ
で、もう一つの違いは時間的発展がmidiにはない。これはほぼ間違いない。というか、data構造的におそらく再現は不可能だと思われる。
midiではおそらく波動方程式の定常解を用いているだろうが実際の楽器の方程式は実は非線形項とか難しいことを言わずとも実は波動方程式とはちょいと違う形をしている。普通に考えてみよう。例えばギターの弦をはじいたとしよう。音がなるだろう。で、いつまでも音がなり続けるだろうか?当たり前だがだんだん弦の振動は弱まりいずれ止まる。つまり減衰するのだ。減衰の原因は当たり前だが音を発しているからだ。弦の振動のエネルギーが音のエネルギーに変換され、弦の振動エネルギーが減っていきそしてなくなる。では定常的に音を鳴らすにはどうするか?定常的にエネルギーを与えればよい。つまり、管楽器なら吹き続ければよい。Vnのような弦楽器なら弓を動かし続ければよい。ということで、楽器の波動方程式は普通の波動方程式に減衰項と強制振動の項が付け加えられる。これが決定的に違う。具体的に書きたいところだが波動方程式ではかなり複雑になるので単振動で書き表すと・・・
普通の方程式:\frac{d^2f(t)}{dt^2}+\omega^2f(t)=0
実際の方程式:\frac{d^2f(t)}{dt^2}+2\lambda\frac{df(t)}{dt}+\omega^2f(t)=L\sin(\omega't)
ただし、計算を簡単にする為に強制振動項は単なる正弦波にしたが実際はいろいろなω'が入る。普通の単振動の方程式なら理系、殊に物理屋さんなら解くのに数秒とかからないだろう。
f(x)=A\cos(\omega t + \phi)
人によってはexp(iωt)とかの形になったかもしれないがまあどれでもよい(ぉ ωが音程でAが音量になる訳である。で、これがmidiで利用されている形だと思われる。多分φも常に0か若しくは適当な定数を使っているんじゃないかと思う。
一方、実際の楽器の方程式はどうか?
f(x)=A\cos(\omega' t + \phi)
もしこういう形になったとしたら試験によっては半分ぐらい減点される可能性がある。実際上、この方程式の解を扱う場合は大抵は上記の解でも問題ないのだが今回のような時間発展系においては致命的に不完全である。その解の違いがmidiと実音との決定的な差を生み出しているのではないかと考えている。

つづく・・・・のか?