去年の話ですが、ギターのエフェクタとして BOSS SY-300 を買いました。
かなりでかい |
入力波形に対してアナログシンセっぽいパラメータを設定しいろんな音を鳴らせるらしいです。
詳しいことはこちらをどうぞ
そしてこれは素朴なマルチエフェクタとしても利用できます。
マルチとして見ると、エフェクタとパッチ
複数のエフェクタをまとめて制御するのはもちろん、ループの有無、出力のチャンネル (Main/Sub) まで選択できるわけです。
ディストーションのループを切って後段の空間系を入れて……、と 2 アクションで済むとしても既存システムでやろうとしたら足元は意外と忙しいことになり、歌まで歌っているともう「本番で気が回らなかったら諦めよう」と諦観さえ抱くことになりますよ。
これを買ってループセレクタは完全に捨てました。
下の図は同じバンクの設定の入力と出力で、 OSC1 とスルーを Comp+Dist から Main に出していますが、これを EXP ペダル一つで OSC3 -> OD -> CHO -> REV -> Sub 出力へ切り替えることができます。
入力系:OSCがオシレータ(OSC1 のみが有効な状態) |
出力系: OSC1とTHRU以外SUB出力 |
……ちょっとこいつで一席遊んでみようという気になったので、所属軽音部のライブに混ぜてもらって、珍しくソロで出演することにしたのですがやっぱりソロでは音が薄い。
残念ながら当方、テクニックで 20 分間を持たせるタイプのギターは弾けない。ずっとバッキングだけしていたい。そんな気持ち。
そんなこんなで、リズム隊をラズパイ君にサポートしてもらうことにしました。
ラズパイ is
言わずと知れた Raspberry Pi は Linux がうごく ARM ボードです。
Linux で動く ALSA を筆頭に、サウンドアプリケーションは大体動くはずです。
音自体は USB オーディオで出すつもりでいたので、ぶっちゃけ USB のドライバがあるコンピュータならなんでもよかったのですが、今回ラズパイにこだわった理由は簡単に MIDI で制御できることです。
SY-300 は(というか大体の MIDI がついているマルチエフェクタならば)操作を信号として MIDI 出力に出すことができます。 MIDI は、決して高速大容量の規格ではないけれど、距離やノイズによるトラブルが少なく、この分野では大人気の制御信号であります。
電源入れたら余分な操作を一切せず起動し、あとは足元で操作が完結するプレイアビリティ。今回はそこに全振りすることにしました。
要するにこっちのタイミングでラグ無しにスタートできて、スイッチ入れてからマイクの前まで戻る必要がないとかそういうことです。
他にも、プレイ中に「あー、スリープしちゃった。ログインしなきゃ」みたいな事故はもちろん、システムがよぶんな音を出さないことや、目立つ画面がないことも重要なポイントであります。
人によってはノート PC をステージに持ち込んで、音作りやプレイに活用しているのですが、当方一人でステージ中央にいる都合上、ノート PC に向かって操作するのもパフォーマンス的に居心地の悪いものがあります。画面のバックライトで顔が照らされるのも勘弁して欲しい感じであります。
その点では今回組み上げたシステムは最高のチョイスとなりました。
MIDI 制御
SY-300 ではプログラムバンクの切り替えの信号を並列して MIDI に出力できます。これをラズパイ側は USB の MIDI インターフェイス、
曲ごとにバンクを作っておけば、対応するトラック(wav ファイル)をラズパイ側でシークできます。
ラズパイ上では、 MIDI 信号を解釈して対応 PCM を読み込んで ALSA (Linux のサウンド API)に出力するプログラムを常時動かしています。
これはイチから作りました。
midiplay という名称ですが MIDI は play しません。 MIDI で PCM を play します。
アンプで増幅した音をそれなりのスピーカーで鳴らすので、まかりまちがっても変な PCM が出ることだけは絶対に避けなければいけません。ですので音周りではあまり冒険せず、結果を完全にコントロールできる技術でのみ構成される必要があります。
サーバーとして必要な fork などは行っていませんのでデフォルトでログインするユーザーの起動スクリプトに書いておくという無精をしております。
MIDI 信号のパースも素朴な FSM を作ってでっち上げております。
その気になれば SY-300 からのテンポの入力、ラズパイからの音色制御も可能ですが、今回はそこまでしませんでした。
サウンド部
出力側 API は ALSA なので対応するドライバをロードした USB オーディオを利用します。ここでは Cakewalk(ROLAND) UA-25EX を使いました。 MIDI と Balanced 出力が L/R あり、 Linux で動作するもので選びました。
CS3 の箱でいい子にしているラズパイと渦中のCakewalk |
ひとつ注意が必要なのは、ラズパイの標準 AC アダプタです。これではバスパワー駆動の USB オーディオを維持できなかったので、強い AC アダプタに替えてあります。
標準のはせいぜいマウスとキーボードでおしまいの電力量ですんで、ラズパイ使いの人は大容量のものを持っておいて損はないと思います。
ラズパイはとても小さく, AC アダプタと一緒にしても BOSS ペダルの箱にすっぽり収まってしまう良い子です。
ラグ無しで、とは申しましたが残念ながらラグはございます。
スイッチを踏むとロードを開始し、ある程度サンプルを読んだところで READY になります。足を離すと再生を開始するようにしたことで予想しにくい IO のディレイをなくしましたが、 PCM のバッファが潤沢にありましてこの分はどうしてもディレイになります。
これを十ミリオーダーまで削ろうとしたら初期化でエラーになってうまく行かなかったので、 150ms のラグを受け入れるという形で乗り切りました。
150ms くらい……と思ったのですが、実際試してみると微妙に間が悪い。 若干不安があったのでカウントを入れるなどしたのですが、あまりかっこよくありませんね。
まぁそんなわけで、コレを使うと以下の動画のように超カッコいい感じになります。
できあがり
<ここに超かっこいい動画を貼る>
すいません。動画なんか間に合いませんでした。ごめんなさい。
ここで尊敬してやまない偉大なベーシスト, J.K.Freaks 様の華麗なプレイ動画を貼ろうと思ったのですが、アドベントカレンダーの性質上、職場などでご覧の方も多いかと思って思いとどまりました。
想像力で補ってください。
本番ではやっぱとにかくドラムが聞こえなくってダメでした。
PCM と L/R にドラムとベースをそれぞれ寄せていたのでバランスで調整可能なはずでしたが、 PA もおらんイベントなのでぶっつけ本番で調整したらうまくいきませんでした。
スタジオでは適当にやっても聞こえてたんだけどなー。
PA 卓をいじっていたらバランス調整に手間取りすぎてセッティングも完全じゃなかったので、せっかくクリーンを JC に、歪み系をマーシャルに出し分けるように設定していたのも本番では使いませんでした。
宿題を残す結果になったので、そのうちリベンジの機会を待つことにします。
Coming Up Next...
明日 8 日目の担当は enpel さんです。ビシっと決めてくれるはずと思ってます。