随分と間があいてしまったが、ようやく完成。
別なことをやっていて、中断していたのだが、お盆で落ち着いたこともあって、2日間で一気に組み上げた。
実は、中断の原因となっていたレガシーMIDIの出力のコードは、かなり前に解決していて、部品も調達し終わり、後は組むだけの状態になっていた。
ただ、Arduinoをそのまま使うのか、石を焼いて基板で組むのか、また電源回路を別途用意するかなど、いくつかのオプションを決められないでいた。
あまり欲張ると頓挫しかねないのと、今回はUSBホストシールドを使うこともあり、Arduinoをそのまま使うことにした。
出来上がりはこんな感じ。

フットスイッチの他に角形のプッシュスイッチが並んでいるが、これは手で押すことを考慮したもの。
自宅で使うときは、足でなく手を使うことになるので、このように2Wayにした。
4桁7セグLEDの方は上にアクリル板を付ける予定だが、適当なものがまだ見つけられていない。
角穴は、やはりなかなかきれいにできない。
ちょっと見た目は悪くなってしまっている。
動作確認したところ、一発でちゃんと動いたのだが、いくつか問題が発生している。
どうもUSB系統が不安定で、抜き差しするとハングしてしまう。
USBホストシールドのリセットスイッチを外に出すことで一応の対策とした。
電源は、Arduinoの外部電源端子を利用するつもりだったのだが、そうすると、電源スイッチのない仕様になってしまう。なので、DC INの端子を別途設け、電源スイッチを経由することにした。
Arduinoの外部電源端子はセンタープラスなので、他のエフェクターと揃える意味と手持ちの電源アダプターの仕様もあり、センターマイナスの結線にしている。入力は9V。
配線図はFritzingというソフトで作成している。
使用できるパーツに限りがあるので、実際のパーツとは異なるところがあるが、そこは読み取って欲しい。
回路図や基板パターンの作れるようなのだが、そこまでは使わず、お絵描き用として使っている。
簡単に描けるので随分と工作の助けになっている。

これで何ができるのか、もう一度解説。
基本は、MIDIプログラムチェンジ信号を出力するスイッチャー。
プログラムは5パッチ×5バンク。
各パッチには任意のプログラムチェンジナンバーを設定できる。
出力はレガシーMIDIとUSB MIDI両方同時に送信。
MIDI INがあり、これは他の機器からプログラムチェンジを受けると、スルーしてレガシーMIDIとUSB MIDIに出力する。
作成の動機としては、ZOOM MS-50GやMS-70CDRのパッチをプログラムチェンジで切り替えるのがまずあって、それにレガシーMIDIをプラスすることで、前回自作したMIDIループセレクターを同時に切り替えるということを目指した。

スイッチが6つあるうち一番左がバンク切替、以下5つがパッチ。
バンクはもっと増やすことも可能だが、スイッチがアップしかないので、元に戻すことを考えると5バンクくらいがいいだろうという考え。
パッチのスイッチの上の角形のスイッチはフットスイッチと同じ動作をする。これは宅内では手で押すことを想定して付けたものだが、フットスイッチもこのタイプはそんなに押しがきつくなく、なくても良かった。LED内蔵のスイッチなので、表示兼用。
表示の4桁7セグLEDはバンクとプログラムチェンジナンバーを表示する。
左の一桁がバンク(1~5)、残り3桁がプログラムチェンジナンバー(1~128)。

背面は、左側から電源スイッチ、USB出力×2、DC-IN、MIDI IN、MIDI OUT、MIDI OUT KILLスイッチ、書き込みボタン、プログラムチェンジナンバー設定用ボリューム、モード切替スイッチになっている。
USB出力は、USBホストシールドのUSB端子の接点をそのまま並列に接続してある。
MS-50GとMS-70CDRを両方一緒に切り替えるということを目論んで2つにしている。
但し、実機がないので実際に動作するかは未知数、またUSB規格的には邪道な仕様であろう。
MS-50G一台では動作できている。
MIDI OUT KILLスイッチというのは、レガシーMIDI OUTへの接続線の切断スイッチで、MIDIの接続の仕方によって、ループを防ぐため設置してある。
使い方として、MIDI OUTにループセレクターのようなものを接続するだけならいいのだが、例えばMIDI INにBOSS GT-8のようなものを接続して使う場合、MIDI OUTにもGT-8を接続すると、GT-8の設定によっては信号がループしてしまう。
あまり想定しづらい環境だが、念の為に付けておいた。
モード切り替えスイッチは、通常のスイッチャーのモードと、各パッチにプログラムチェンジナンバーを設定する際のモードの切替を行う。
設定モードにした時に、設定用ボリュームでプログラムチェンジナンバーを選ぶ。選んだら、書き込みボタンを押すことで、その時に選択されているパッチにそのナンバーが設定される。
ブレッドボード上で半固定抵抗を使っていた時は、設定値のふらつきが随分出ていたが、可変抵抗器と、あと電源を外部電源9V供給にすることでかなり安定した。
当初、この設定の部分は上面パネルに配置する予定であったが、やはりサイズ的に厳しいのと、どう考えてもボリュームつまみがフットスイッチを足で踏むときの邪魔になるので、背面に移動した。

サイドは片側にArduinoのUSB端子と外部電源端子を出してある。
スケッチの書き換えはこれでばっちりなのだが、MIDIとの干渉防止のスイッチは内部の基板上にある。なので、書き換えの際はやはりケースを開けなければならない。
外部電源は、背面のセンターマイナスの方を使用する。
Arduinoの外部電源端子ももちろん使える。が、スイッチがないのとセンタープラスなので基本使わない。
両方同時に電源供給すると壊れるらしいので、ここは注意。
右上に見える黒いものが、USBホストシールドのリセットスイッチ。
USB MIDIがハングしたら押すので、外から押せるようにした。
後付けで考えたので、普通の基板用のタクトスイッチをホットボンドで固定しただけのものだが、案外勝手がいい。
上面のフットスイッチは6つ配置でぎりぎりの感じ。これ以上狭くなると足での踏み替えに差し障りが出るだろう。
ケースは最初でかいかなとも思ったが、実際に実装してみると丁度良い感じ。
基板の配置も配線も技術のない私には作業しやすいサイズだった。
今回初めて使った4桁7セグLEDは視認性が良く、LCDから変更して正解であった。
I2C接続なので配線も楽だし、コードもアルファベット表示など、難しいことを考えなければライブラリのおかげで簡単に実装できる。ライブラリの作者には感謝したい。
実際に動作させてみると、他のエフェクターと同じ電源アダプターから電源供給すると、やはり信号にノイズが乗る。電源アダプターを別途使用すると気にならない。
最大の問題は、切り変えの際のタイムラグ及び音切れだが、これも思ったほど悪くなかった。
コストの方は正確な数字はちょっとすぐ出ないが、部品実費で大体2~3万円というところか。
Arduino本体とUSBホストシールドをそのまま使っているのでそこそこコストは上がってしまう。
また、フットスイッチが1個700円ほどするので、ケースと合わせてこれだけで1万円は超えてしまう。
ただ、その他の部品は点数的に多くないので、さほどかからないと思う。

基板は、今回はブレッドボードタイプのものを2枚使った。
配置的には、配線も考慮してかなり余裕を持たせている。
もっとコンパクトにすることはもちろん可能だが、今回は楽を取った。
ハンダ付けはユニバーサル基板と比べれば随分楽であったし、配線ミスを防ぐ意味でも今回は正解であった。
USB端子用に1枚ユニバーサル基板を使った。
こんなサイズはいらないのだが、もうこのまま使った。
USB端子は基板取り付け用のものなので、こんな形になったが、パネルの穴は蓋の側にあるので、合わせが難しかった。結果、USB用の角穴は結構みっともないことになっている。
大変なのはケース内の配線で、これは結構配線ミスをやった。
皆、途中で気づいたのでこと無きを得たが、案外ダメである。
今回は一カ所不良ハンダはあったものの、一発で動いたのがなんともうれしい。
トラブルシューティングはやはり大変だし、気がめいる。
あと、4桁7セグLEDのアクリルパネルとゴム足を付ければ完成。
角穴の加工の甘さは、USBの穴とかちょっと恥ずかしいけれど、動作には関係ないのでもうこれで良しとする。
次回、スケッチの解説をしたいと思うが、さほど自信のあるコードではない。
とりあえず動作する、というレベルであることをあらかじめお伝えしておく。
なお、今回の製作もネット上の情報に支えられていることを記すと同時に、多くの情報を提供下さっている皆さんに改めて感謝申し上げたい。
追記:
ラズパイ・オーディオなる見出しに惹かれて、初めてトランジスタ技術という専門誌を購入した。
内容は、さすがに理解の域を超えるものが多い。
が、エフェクターの製作記事などもあり(回路図まで、というところが私には厳しいのだが)、多いに触発される。
ラズベリーパイのアナログ出力関係の理解ができ、次はラズベリーパイ+Pdのエフェクターに取り組んでみようかなどと思っている。
サインスマート UNO R3 ATmega328P 互換ボード + USBケーブル(Ardui.../サインスマート(SainSmart)

¥価格不明
Amazon.co.jp
USBホストシールド 2.0 for Arduino (compatible with Goo.../梅本有限責任事業組合

¥価格不明
Amazon.co.jp