去年からずーーーーーーと引っ張りつづけている実験の
一環。以前作ったこのソリッドウクレレ↓
![](https://blogimg.goo.ne.jp/user_image/38/d5/45825c7adf59167028a8c180adcf11d6.jpg)
コイツにおいら謹製のエレウケ専用ピックアップ(試作)
を取り付けて、FFTを掛けてみようって寸法。
まぁ、FFTのアセンブラ用ライブラリはまだ未着手
なので、使うのは秋月で買ってきたpico scopeだけど。
で、実際に弾いてみた波形はというと…
まずは4弦=Gの音。
![](https://blogimg.goo.ne.jp/user_image/67/bb/6f36e5a3f00e862cd7749468b4151a79.png)
うん。おおよそ「基音」+「整数倍音」の構成になってて
good!
他の弦も大体同じ。以下それぞれ3弦(C)、2弦(E)、1弦(A)
![](https://blogimg.goo.ne.jp/user_image/0e/c7/06894521764bba095b36cca287803b96.png)
![](https://blogimg.goo.ne.jp/user_image/1c/e6/bf8fcd19f87d15ce47cd35161f83880c.png)
![](https://blogimg.goo.ne.jp/user_image/39/cd/ad34857b39421bea5caf7283b43d9652.png)
…うん。大体イイカンジ。
Gの音が基音より倍音のほうがちょっと大きい感じなのが
気になるところだけど、まぁその辺は実験の条件にも
因る気がするし、いざとなればソフト処理でなんとか
できるでしょ。
今回は、ピックアップのアンプ回路にNJM072を使っちゃった
ので、前回と単純比較はできないんだけど、まぁだいたい
okでしょう。ねらい通り。
さて、周波数成分じゃなくて”実際の波形”はと言うと…
まずは弦を弾いた直後の波形。
![](https://blogimg.goo.ne.jp/user_image/4b/85/65854006183c12464b78ed0aa8ec7b35.png)
こんな風に、サリーちゃんのパパが横にたくさん並んで
いる状態。
弾いた直後は倍音成分(整数倍音、非整数倍音)がいっぱい
出ているんだと思うんだけど、何回弾いても大体こんな波形。
こんなもんなの?
弾いてからワンテンポ遅らせたところの波形は…
![](https://blogimg.goo.ne.jp/user_image/4d/1a/80c9d650d3a90f7a9b1575671ee93a6e.png)
こんな風にサリーちゃんのパパの髪型が丸くなって…
もうちょっと経つと
![](https://blogimg.goo.ne.jp/user_image/3c/f9/8cc9846d1dd1203d32b5aefdf9314f53.png)
こんな風に海ボウズに変わってく感じ。
正弦波に近づいていく感じと考えると、倍音成分が
先に抜けてって、明るい音から丸い音に変わっていく
感じと捉えればいいのかな…
さて、波形や周波数成分のグラフを眺めてニマニマ
したいわけじゃなくて、何しろタイムラグが問題なのが
電子楽器。そのへんに関する懸念事項洗い出しってわけ。
タイムラグを生じさせる原因として考えられることは…
(1)midi音源自体のレスポンス
(2)FFT入力用の全サンプルをAD変換完了までの時間
(3)FFTの処理時間
(4)弦の振動のうち基音成分が安定するまでの時間
このうち、今回の波形で見てみたかったのは(4)に
関すること。
実物のウクレレなら、弾いた直後の複雑な倍音成分
(含む:非整数倍音)も音として耳に届く訳だけど、
エレウケというとFFT掛けて周波数成分を抜き出して、
さらにそこからmidi信号を生成して、midi音源側で
またアタマから音を創り出す処理を行う…みたいな処理を
やらないといけないので、どうしてもタイムラグは
避け様が無いわけ。
特に、サリーちゃんのパパ状態の時にどんな周波数成分
が混じるのか、基音だけが旨く取り出せるのか。そこが
見えればある程度目処が立つんじゃないかと。
で、やってみた感想ですが…なるようにしかならない…
かな。
そんなもんです。
あとは、実際にアセンブラ用ライブラリとそれをドライブ
するテストプログラムを適当に組み上げてみて、色々な
条件設定して、実機テストやってみてから考えよう…
まぁ、ちゃんと倍音成分が分離できるって判っただけで
安心したな。目下のところ、めでたしめでたし。
![](/images/clear.gif)
![](/images/clear.gif)
![](/images/clear.gif)
|