Divided Pickupの制作(9)
前回の制作ではハードウェア部(ピックアップとチャンネル分岐ボックス)が完成した。次はソフトウェア側の制作に入る。TASCAMのインターフェイスからの取り込みは専用アプリで設定する。実際に制作していくのは次の段階、USBから取り込まれた音を解析し、周波数もしくはMIDIノート番号に変換するところ。さらにその数値によってビジュアルを変化させる部分である。
解析する部分はMax8を用いる。Maxは音(シンセサイザ)をコントロールするものを中心として発展してきたが、最近では映像や照明など幅広い分野で使用できるようになっている。リアルタイムでの分析やコントロールが得意なため、イベントなどでも使われている様だ。今回は入力された「音」の周波数を計ること、またそこからパラメータを導き出すことにする。Maxはノードを繋いでプログラムするビジュアルプログラミング環境である。
音源の選択はAudio Statusパネルで行う。Input DeviceをUS-16x08にするとTASCAMからの入力ができる。次にメインのパッチを組む。今回の周波数を得るために必要なものを調べると以下の二つが挙げられた。一つは[retune~]もうひとつは[fzero~]である。[retune~]を複数自チャンネル同時に行える[mc.retune~]で組んでみたものがこれである。
一番下のところでOSC(Open Sound Control)として別のPCにLANを介して伝えることができる。途中にいろいろ信号を増幅(数値で掛け算)したり、周波数をMIDIのナンバーに置き換えたりしている。概ねこれで行きそうだったのだが、ある音から下の音が正しく数値化されていない様だ。ベース側の弦、6弦のあるところより下の数値が合っていない。リファレンスによると@pitchdetect(retune~)で取れるのは50Hz〜のようで、それ以下は正しく取れないようだ。では[fzero~]の方はというと、もう少し下まで取れる。では[fzero~]でと作ったが、何かおかしい。数分経つと、反応しなくなっている。一度OFFにして、再度ONにすると動くのだが、またしばらくすると無反応になる。ネットで情報を漁ると、やはり同じ様な書き込みがいくつか見られたので、これは未解決のバグなのだろうと結論。いずれ解消されると思うが、それまでは[mc.retune~]の方で制作を進めることにする。
話が少し脱線するが、先日待望のものが届いた。注文しておいたChapman Stick Railboardがついに。注文したメールの日付を見ると2020年3月10日。実に2年弱待たされたことになる。時間がかかったというネットでの書き込みもあったので覚悟はしていたが、2年弱とは!注文してから半年以上経って、幸運にもネットオークションで古いStickを手にしていたので待てたが、これがなければ途中で諦めてキャンセルしてたかもしれない。その後オークションでも2本ほど続けて出品があったがそれ以降はほぼないので、手に入れておいたのは正解であった。古いので、(ピックアップを作ったりとか)いろいろ試してみることができるし、もちろん練習することもできる。
両者のつくりが全く異なるので、手のポジションなど少し戸惑ったがだんだん慣れてきた。慣れてくると弦高などが少し気になってきて、調整したくなってくる。低いと弦が隣のフレットに触れて音がビビるのだ。調整はブリッジ側とナット側で行えるが、ナット側を調整してみる。
小さなネジで6角穴が空いたやつ。手持ちの六角レンチで回してみると、ちょっと緩く、穴を舐めてしまいそう。規格があっていない様な感じ。この楽器、アメリカ製である、ということはネジの規格は「インチ」だ!だが、うちにはインチネジの工具などない(日本ではミリネジが一般的)。無い工具は買うしかないので、通販でお取り寄せする。インチネジ規格のセットだけでもいいのだが、どうせならミリネジの6角棒レンチも新調してしまおう、と両方がセットになっているものを購入した。合わせてみると噛み合わせもぴったり。やはり正しい道具を使いましょう。
新しい方を弾いていると、こちらにもDivided Pickupが欲しくなってきた。ただ、こちらもあまりスペースがない。前回と同じくユニットごと作るという手もあるが、せっかくの新しいピックアップを使わないのも勿体無い。隙間に入れるピックアップを作るとすれば今までのものより小さいコイルが必要だ。先日、秋葉原に寄った時に見かけて購入しておいた0.05mm(今までのは0.06mm)の銅線を試しに巻いてみた。非常に小さい感じ。Roland製ではなく、おそらく特注だがオプションで市販されているピックアップの写真を見るとやはり非常に小さいので、このくらいのコイルを使っていると思われる。また、写真をよく見るとスペースを稼ぐためにブリッジの金具が少し短いものに交換されている様だ。この金具を自作するかは思案のしどころではあるが、とりあえず1〜5弦用を作るという手もある。追々考えよう。
話をMaxの方に戻す。なぜ50Hz以上しか有効でないのか?50Hzにおそらく理由なしで、ある程度以上周波数が高くないと利用価値がないのだと思われる。というのは、周波数とは1秒間における音波の山(谷)の数である。これを数える方法は2つ。一つは1秒間のタイマーをかけて、山の数を数える。もう一つは山と山の間隔(時間)を測って1秒を割ると山の数が算出できる。
前者は計測時間に余裕がある場合には有効だが、1秒経たないと結果が出ないので音楽の様に音が素早く連続的に変化する場合には役に立たない。継続的にゆっくり周波数を見る場合、例えばエンジンの回転数を測る様な場合はこの方法で問題ない。後者は二つ目の波が来た瞬間に周波数が算出できるので、音の変化などには対応しやすい。だが、単純に1Hzの音を計測する場合、山と山の間隔は1秒になる。つまり1秒経たないと結果が算出できない。人間の耳に聞こえる音は20Hz以上ということに一般的にはなっているので(もちろん体に響く振動というものもあるので一概には言えないのだが)、少なくともそれ以下の音の周波数を計測するのは意味がない。さらにレイテンシーの問題もある。音が鳴ってから計測に時間がかかると、一瞬遅れて計測値が出てくることになるが、音楽の世界ではこのレイテンシーはできるだけ小さくするというのが普通であるので、ある程度周波数が高くないと周波数を計測しても使えないデータということになる。おそらくこの辺りを考慮して有効なのは50Hz以上とかにしてあるのではないかという推測である。まあ今回の制作では、周波数云々よりも「音が変わるタイミング」あるいは「音が変わった」という情報が重要なのでとりあえず[retune~]の方が、いきなり止まらないという点では使えるので、こちらを使用するが、[fzero~]もバグがなくなれば使えると思うので、その時点で置き換えていくことも考えられる。
問題は、得られた情報をどのように「形」に結びつけていくかだ。(つづく)
この記事が気に入ったらサポートをしてみませんか?