« 伊東ゆかりで悩む | トップページ | ボーカロイドがSchwaで悩む »

2013年6月22日 (土)

WAVEファイルを処理して悩む

WAVEファイルをperlでわりと簡単に処理できることがわかったので、これは面白い、と。前からやってみたかったことがあって、アナログ的に回路で実現を試みたこともあったのだがうまく行かなかったのだ。それをデジタルでやってみよう。

それは楽器の信号を自乗すること。実際にアナログ回路で作ってみたこともあったのだがアナログ乗算器はゼロ点調整が難しくて、電源電圧や周囲温度が変わったりするとすぐにずれてしまう。バーブラウン製の高級な乗算器ならそんなに狂わないのだろうが、私の使おうとしていたのはPLLの位相検出器用の乗算器で、これはなかなかのじゃじゃ馬だったのだった。

で、楽器の音を自乗してどうしようというのか、というと、それによってスペクトル分布が変わって面白い音になるんじゃないか、さらには楽器をコントロールすることによる音の表情付けの機能・性能を拡大することができるんじゃないか、と考えたからなのだ。

楽器に限らないが、たいていの音は基本周波数とその倍音から成っている。そうでないものもあって、それはそれで重要なのだが、とりあえず楽器の音に限定して考えると基本周波数とその整数倍の周波数を持つ倍音から出来ている。それらを自乗、つまり掛け算するとどうなるか。

単一周波数のサイン波(純音)を考えると、一般に異なった周波数のふたつの純音を掛け算すると、その基本周波数成分は消えてしまってその和と差の周波数が新たに現れる。2つの周波数が全く同じであれば、純音であっても和ということで倍の周波数が現れる。さらにはその差として周波数ゼロ、つまり直流が出現する。
Sinsquared
だから、純音でない、複数の倍音系列を持った楽器の音を自乗すると、基本波は倍の周波数になって消えてしまうが、基本波と2倍音との差で新たに基本周波数が現れる。各倍音感の間で和と差の周波数が現れるので、元の楽器の音とは倍音の構成が変わってくるのだ。

さらに、楽器の種類によっても事情が異なるのだが、倍音といっても本当にちょうど整数倍になっているわけではなく、一般に倍音にはその周波数成分においてゆらぎがある。例えばギターの音をオシロスコープなどで観測すると、倍音成分が基本波と同期しないので、信号波形は一定の形にならず「流れる」感じになる。ときにはこのゆらぎが楽器としての音の豊かさを感じさせたりするのだが、このゆらぎが倍音の差成分としてどういう働きをするのか、というのも興味深いところだ。

前にも書いたが、不完全な形ではあったけれどもこの自乗器をギターとかベースにつないで試したことはあったのだ。当時はまだそれを録音してどうこうするということまでは全く考えていなかったので、なんの記録も残っていないのだが、なんとなく「面白い音」だと思ったことだけを覚えている。

とまぁ、例によって長い前振りの後で本題に入るわけだが、結論をさっさと書いてしまうと、どうも「楽音自乗器」は失敗のようだ。思った程に基本波成分が生成されず、バイオに上が強調された品のない音になってしまう。ま、品のない音に利用価値がないのかというとそうでもないとは思うのだが。とりあえず私の好きな音ではない。

思えばアナログ回路で作った時には、そのゼロ点調整のずれ具合がたまたまイイカンジになっていたのかもしれない。それならそれで、それをデジタルに実現することもできるのではあるのだけれども。

ギターの音を例にとって実験結果をお見せしよう。

Guitarcompared上が元の波形、下が自乗したもの。自乗するとマイナス成分がなくなってしまう。後半で乱れているのは計算がオーバーフローしたから。オーバーフローしないようにもできるんだけれども、そこまで微調整している暇がなかった。

実際に音を聞いていただくが、この「乱れ」の部分は下手をするとスピーカーを壊したり、耳を痛めたりということがないとも言えないのでご注意いただきたい。

  これが元の音。使ったギターはナイロン弦のエレガット。

  これが自乗したもの。音が乱れるのでご注意。前半でやめておくのが吉。

では実際の波形を細かく見るとどんなふうかというと、こんなになっている。

Guitardetailed

更に周波数スペクトルを見てみよう。倍音がわかりやすいように周波数軸を等間隔にしてみたらわかりにくかったので対数軸にしている。まずはオリジナル。

Guitarsamplespec

350Hzあたりに基本波のピークが見える。ところがこれを自乗すると、次に示すように基本波がなくなってしまっている。

Guitarsquared

倍音の構成が変わるのは狙い通りではあるのだが、基本波を残したいよなぁ。まぁ考えつくことはなんでもできるので、いろいろ試してみようとは思っている。

その「いろいろ」のひとつが、「時間差で掛け算をする」ということだ。楽音信号を10m秒とか100m秒ほど遅らせたものと元の信号を掛け算する。でもこれも結局は基本波がなくなてしまって、ショボイ音にしかならなかった。一応サンプルだけおいておこうか。

  100mSの遅延の後に掛け算。

この信号は掛け算するときに細工をしたので「乱れ」はない。でも音色としてはそんなに変わらない感じ。残念!

他にもベースを使った実験もやってみたが、結果は似たようなものだったので割愛。フルートとか弓で弾く楽器も試してみたいが、もうちょっとなにかつかんでからにしよう。

|

« 伊東ゆかりで悩む | トップページ | ボーカロイドがSchwaで悩む »

音楽」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 伊東ゆかりで悩む | トップページ | ボーカロイドがSchwaで悩む »