ArduinoでエフェクトペダルをMIDIコントロール ArduinoでエフェクトペダルをMIDIコントロール

English

[NEW!]ArduinoでエフェクトペダルをMIDIコントロール

自作ギターエフェクターの作り方を一覧で紹介

エフェクタ自作 歴代作品自作エフェクトペダルの一覧ページから、好きな記事を探してみてください。ペダルを使用したオリジナル楽曲もあります。

自作ギターエフェクター一覧ページを見る

DTMホームレコーディング楽曲集

【目次】

MIDIによるエフェクトペダルのパラメータ切り替え
Arduino MEGA 2560 の互換ボードを使用
MIDIインタフェース部分の回路
動作確認
今後の計画
[参考] PT2399 + V571で無調整で確実に音が出るディレイペダル自作

MIDIによるエフェクトペダルのパラメータ切り替え

MIDIは、40年以上前の1981年に公開された規格で、5ピンのDINコネクタで接続し、31.25Kbpsの低速なシリアル信号でデータを転送するものです。今となっては時代遅れのインタフェースですが、楽器や機材では、未だに標準的に使われています。

高機能なエフェクトペダルには、MIDI信号を受けて、プリセットやパラメータの切り替えが可能な機種があります。ハイエンドのスイッチャーにも、MIDI信号の出力機能を持つ物があり、エフェクタの接続切り替えに合わせてMIDI信号を送信し、例えばMIDI機能を持つデジタルディレイの遅延時間を変更する様なことができます。

そこで、MIDI信号を受けて内部のパラメータを変更できるエフェクトペダルを想定して、まず、ArduinoでMIDIインタフェースを作ってみようと思います。

Arduino MEGA 2560 の互換ボードを使用

Arduinoのボードには、Arduino MEGA 2560 の互換ボードを使用しました。これは単に純正のArduinoボードが高価だったためです。ほぼ半額でAmazonで売っていた「ELEGOO」のボードを使いました。私が使ってみた範囲では、純正に対して完全互換でした。

MEGA 2560には、シリアルポート(RX/TX)が3セット付いています。そのうちRX0/TX0は、プログラム転送などのPCとのインタフェースに使われているため、今回のMIDI信号の送受信には、RX1/TX1(Arduinoでは「Serial1」として定義されている)を使用しました。

今回は実現性の確認が目的なのでこのボードを使いましたが、実際にエフェクトペダルに組み込むときには、より小さいモジュールを使おうと思います。

MIDIインタフェース部分の回路

MIDIの接続には5ピンのDINコネクタが使われています。MIDI信号の受信(RX)部分は、接続先の楽器や機材と電気的に絶縁する仕様になっています。そのため、一般にはオプトアイソレータ(フォトカプラ)を使って、電気的に切離す回路になっています。これは、電子楽器を相互に接続した際に、グランドループや信号のループができないように配慮されているためです。

下の図が、MIDI企画書に載っている標準回路の受信部分(MIDI-IN)です。電気的に内部とつながっていないことが分かると思います。

MIDI信号は低速であるため、フォトカプラは汎用品で十分に動きます。今回はたまたま通販で購入できた「TLP2630」を使いました。出力にオープンコレクターのトランジスタバッファが付いたもので、2回路入っていますが、1つしか使っていません。

動作確認

MIDIインタフェース回路、Auduino接続

MIDI企画書の標準回路をそのまま使用し、Arduino ボードの「RX1」に接続しました。


Arduinoテストプログラム

内部動作を確認するために、サンプルを変更し、MIDIのプログラムチェンジコマンド(0xC*、*はMIDIチャンネル)を受けたら、MIDIにある2つのパラメータのうち、1つ目の数値の回数分だけパルスを発生するテストプログラムを書いてみました。

Arduinoのソースコードは、こちらのページに掲載しています。参考にどうぞ。

MIDIコマンド送信ソフト

MIDIのデータを簡単に送信できるPCのフリーソフト(Midi信号モニター&割り当て変更ツール)を使って、オーディオインタフェース(Steinberg UR22mkII)のMIDI-OUTから出力しました。

【送信したMIDI信号】
MESSAGE: 0xc0 → プログラムチェンジ(0xc0)
CHANNEL: 0x00 → MIDI Ch1
VALUE1: 005 → 第1パラメータ(5)
VALUE2: 000 → 第2パラメータ(未使用)


「Midi信号モニター&割り当て変更ツール」のMIDI信号送信機能

実行結果

RX1(MIDIシリアル、黄)とA7(パルス出力、青)をオシロスコープでモニターした波形が以下のとおりです。送信した第1パラメータ「005」を受信して、5回パルスを発生させていることが分かります。

今後の計画

ここまでで、Arduinoを使えば、簡単に、スイッチャー等から送信されたMIDI信号を受けて、エフェクトペダルのパラメータを操作できることが確認できました。

今後は、別のページで紹介した「Arduino/ESP32C3でエフェクトペダルをWiFiコントロール」と合わせて、MIDI/WiFiコントロール可能なアナログディレイを作ってみようと企んでいます。

[参考] PT2399 + V571で無調整で確実に音が出るディレイペダル自作

BBD以外のデバイスで、ディレイペダルに「PT2399」が使われ始めました。このチップは内部はデジタル処理されていますのでアナログではないのですが、最近ではBBDを使用したアナログディレイの代わりに、アナログっぽい音を出すICとして、各社のディレイペダルに使われています。

そこで、好きが高じて、4台目のディレイペダルになりますが、DM-3の回路をベースに、BBDをPT2399に変更し、V571を組み合わせて、昔のdbxやDolbyのノイズリダクションに似た音を出すディレイペダルを作ってみました。

ノイズレス!ディレイペダル 手軽なディレイIC「PT2399」使用


【Googleキーワード検索】

当サイト内のGoogleキーワード検索ができます。素早く記事を見つけられます。

<自作を始める>
自作情報サイト
プリント基板
万能基板
ストリップボード
KiCad
面実装

<エフェクタージャンル>
オーバードライブ
ディストーション
オートワウ
アナログディレイ
アナログコーラス
アナログオクターバー
コンプレッサー
フェイザー
ノイズリダクション
ノイズゲート
キャビネットシミュレータ

<自作部品>
パーツの購入
スルーホール
THD
面実装
SMD
チップ部品
ケース

<エフェクタボード>
エフェクターボード
ソルダーレスケーブル

<デバイス名称>
オペアンプ
BBD
VCA
トランスコンダクタンスアンプ
Coolaudio
ゲルマニウムダイオード
2SK30A(FET)
V3205(BBD)
V3207(BBD)
V2164(VCA)
V3102(Clock Driver)
V571(Compander)

<自作ツール>
ハンダコテ
コテ台
ワイヤーストリッパ
テスター
電動ドリル
テーパーリーマー
ソケットレンチ
配線用ワイヤー
デジタルオシロスコープ

<Tips>
ホームレコーディング
スイッチャー
エフェクターラベル
フェンダーストラト
ピックガード
ステージピアノ
モニターヘッドホン
DAW
Studio One