MIDIコントローラーの自作キット!? Arduinoを使ってMIDIコントローラーを作る方法!

【永久保証付き】Arduino Uno

 今回はArduinoというマイコンを使って簡単にMIDIコントローラーを自作する方法」について紹介します💡

 MIDIコントローラーといえば各社から多くの製品が発売されていますが、それでも自分が欲しいような製品が売っていないことってありますよね!?

 そんな僕も、手動でピッチベンダーを操作してビブラートを演奏できるMIDIコントローラーが欲しいと思っていたのですが、どのメーカーからも出てません><

 発売されていないなら作ってしまおう💡 と考え、MIDIコントローラーの自作キットになるというArduinoというマイコン(マイクロコンピューター)を買ってたので紹介していきます^-^ノ

Yugo
Yugo

さらに簡単にMIDIコントローラーを作れる方法」を後日発見したので、記事の最後にリンクを貼っておいたよ〜⁽⁽ ◟(∗ ˊωˋ ∗)◞ ⁾⁾

MIDIコントローラーの自作キット!?Arduinoとは?

ELEGOO Arduino用UNO R3 最終版スタータキット UNOチュートリアル付 (63 Items)

 Arduinoは正確にはMIDIコントローラーの自作キットとして作られた製品ではなく、マイコン(マイクロコンピューター)という汎用性のある、どんな製品にも化ける可能性のある優れた小さなコンピューターです💡

 マイコンは簡単な動作だとイルミネーションのLEDをちかちかとパターンで点灯させたり、電卓や炊飯器、プリンター、そしてMIDIコントローラーの脳みそとしても使われているパーツで、実は生活の中で毎日使っているかなり身近な存在だったりします。

 そう聞くと、開発が難しいんじゃない?と思いきやいざ試してみると開発環境がわかりやすくとても簡単に扱うことができました💡

 それではArduinoを使ってMIDIコントローラーを自作する方法について見ていきましょう💡

 まだArduinoを入手していないという方は先に、少しだけ安く買えてMIDIコントローラーにも使える互換製品「Arduino UNO スターターキット(上の写真の製品)」を購入するとマイコン本体のほかケーブルやボリューム、開発用基盤など必要な部品が全て揃うのですぐに作り始めることができます。

Arduinoにデータを書き込むソフト(IDE)のインストール

 Arduinoを購入したら、まずは https://www.arduino.cc/en/Main/Software に移動してArduino開発用のソフト(無料)をダウンロードします。

 Macを使っている方は「Mac OS X」を、Windowsを使っている方は「Windows installer」をクリックしてダウンロードしましょう。

 移動すると一見有料?のような画面が表示されますがあくまでご寄付のお願いなので「JUST DOWNLOAD」をクリックすると無料でダウンロードできます。

 ダウンロードしたらファイルを解凍して、Macであればappをアプリケーションフォルダへ移動、Windowsであればインストールを行いましょう。

ArduinoをMIDIデバイスに変える!

 それでは早速、ArduinoをMIDIデバイスとして使えるようにMIDIファームを書き込んでいきましょう。

 この先の工程ではMacでもできるのですがやや複雑なのでWindowsマシン(仮想マシンでも可)を使って説明をしていきます。

(1)Atmel EFIPをインストールする

 https://www.microchip.com/developmenttools/ProductDetails.aspx?PartNO=FLIP からWindows用のソフトをダウンロードしてインストールします。

 Mac上で仮想Windowsマシンを使う場合は仮想マシン上にインストールしておきましょう。

(2)ジャンパーピンを使ってDFUモードにする

 ジャンパーピン(別売り)を使って画像中赤枠の2つのピンを繋いでDFU(デバイス・ファーム・アップデートモード)にします(中のファームウェアをMIDI用に書き換える工程)。

 別売りのジャンパーピンを購入するのがもったいないという方は先程のキットに付属の結線を使って上画像のように繋いであげてもOKです。

(3)USBでパソコンとArduino本体を繋ぐ

 Arduino本体には最初からUSBコネクタが付いているので、そこにUSBケーブルを差し込んでパソコンへ接続します。

 Windowsを使う場合はWindowsパソコンへ、Mac上で仮想PCを使って行う場合はMacパソコンへ接続しましょう。

(4)ArduinoのLEDの点滅が終わって光り続けている状態を確認したらジャンパピンを外す

 画像中赤枠部分のLEDライトが安定して光り続けたらジャンパピンを外しましょう。光ったらすぐに外さなければならないということはないのでゆっくりで大丈夫です。

(4.1)仮想PCを使う場合、仮想PC側にArduinoを読み込んでおく

 仮想PCを使う場合のみの工程です、それ以外の方は飛ばして読み進めてください。

 仮想PCソフトで「Devices」>「USB」>「Atmel〜から始まるUSBデバイス(Arduino)」を選択して読み込ませておきます。

(5)デバイスマネージャーでArduinoのデバイス名を確認しておく

 デバイスマネージャーを開いてArduinoのデバイス名を確認しておきましょう💡 

 もしデバイスマネージャで「不明なデバイス」と表示されていた場合は、USBデバイスのインストールに失敗していますので、不明なデバイスを右クリックをして手動インストールを行いましょう。

 手動インストールする際、デバイスのドライバはC¥Program Files(x86)/Atmel/Flip 3.4.7/usb/ を選択すれば正常にインストールされます。

(6)Atmel EFIPを使ってMIDIファームウェアを書き込む!

 いよいよMIDIファームウェアを書き込む準備が整いました💡

 MIDIファームウェアは国内外でいくつか公開されていたり自分で作ることもできますが、今回はMORECAT_LABさんが公開されている「dualMoco.hex」を使った方法を紹介します。

 まずはGitHubからファームウェアをダウンロードしましょう。少し分かりづらいですが上の画像のような手順でダウンロードできます。

 ダウンロードが終わったらWindowsパソコン上でAtmel EFIPソフトを起動しましょう💡あとは流れ作業で終了します。

 

  • ① 「デバイス選択」で、先程確認したデバイス名(ここではATmega16U2)を選択する。
  • ② 「接続」でUSBを選択する。
  • ③「File」>「load hex file」でdualMaco.hexファイルを選択。
  • ④ 「Run」ボタンを押すとファームウェアの書き換えが完成。USBを挿し直すとMIDIデバイスとして認識される。

 これでArduinoのMIDIデバイス化が完了しました💡

 ここまでの工程を終えればいよいよArduinoをMIDIコントローラー自作キットとして活用することができます^-^ノ

スケッチ(プログラム)を書き込む際はジャンパピンを繋ぎ変えてからUSB接続する!

 Arduino本体は、先程ファームウェアを着替えて、パソコン上でMIDIデバイスとして認識されるようになりました。

 MIDIデバイスとして読み込まれるとそのままではスケッチ(プログラム)を上書きできないので、コードを書き直したい場合には上の図のようにジャンパピンを繋いでスケッチ書き込みモードにしてからUSBを接続します。

ArduinoにMIDIライブラリを追加してみよう!

 Arduinoの公式サイトから、自作MIDIコントローラーキットとしてより簡単にプログラミングを行うためのMIDIライブラリが公開されています。

 このライブラリを使えば、Arduinoの開発ツールに1行書くだけですぐにMIDIデータを送信できるという優れものなので是非追加しておきましょう💡

 追加はArduinoIDEソフトの「スケッチ」>「ライブラリをインクルード」>「.ZIP形式のライブラリをインストール」からダウンロードしたzipファイルを読み込め&ソフトの再起動で完了です。

ピッチベンダー専用MIDIコントローラーを作ってみよう!

 MIDIコントローラー自作キットが完成したところで、早速手動ビブラートを掛けるためのピッチベンダーを作っていきたいと思います。

 今回作るMIDIコントローラーの仕組みはこんな感じ↓💡

  1. AnalogPower(5V)から5Vを出力。
  2. 5Vの電気を可変抵抗(回すスイッチ)に流す。
  3. スイッチの値を変えると抵抗値が変化して流れる電圧が変わる。
  4. Analogインプットから電圧を受け取って、電圧変化をモニターする。
  5. 電圧の変化によってMIDI出力するピッチベンドの信号の値を変える。

 という至ってシンプル簡単な作りになっています💡

まずはスイッチを結線しよう!

 といっても使うケーブルは3本、まずはAnalogPowerの「5V」と「GND」へ、そしてAnalogINの「A0」へ計3本差し込みます。

 それら3本の先はは可変抵抗スイッチの3つの端子に接続します。

 繋ぐとこのようになります💡これで本体は完成!

Arduino本体にプログラミングを書き込み!

#include 
MIDI_CREATE_DEFAULT_INSTANCE();

/*------------------------------------------------*/
// 変数を定義
/*------------------------------------------------*/
int val = 0; // 値を格納する変数を定義(0 ~ 1023)

/*-----------------------------------------------------------------------------------------*/
// 初期化処理
/*-----------------------------------------------------------------------------------------*/
void setup() { //最初に一度だけ実行するコードを記入する
  MIDI.begin(1); //MIDIをデフォルトオプションで起動する
  MIDI.turnThruOff(); //MIDI OUTがMIDI INにループバックするのを防ぐ
}

/*------------------------------------------------*/
// ループ処理
/*------------------------------------------------*/
void loop() { //繰り返し処理する内容を記入
  val = (val * 0.9) + (analogRead(0) * 0.1); //アナログpin0からボリュームのデータ(電圧)を受け取ってローパスでフラつきを軽減
  val = val*16; //値を16倍する
  val = val - 8191; //-8192〜8192に値を修正する(センターを0にする)
  MIDI.sendPitchBend(val, 1); //MIDI信号を送る
}

 先程決戦した可変抵抗スイッチをピッチベンダーとして駆動させるために、このようなプログラミングをArduino本体に書き込みます。

 本体のメモ帳のような部分にプログラミングを入力したら上図赤枠部分の書き込みボタンを押して本体へプログラミングを書き込みます。

ジャンパピンを外してパソコンへUSBで接続すれば自作MIDIコントローラーの完成!

 Arduinoを一度パソコンから取り外し、先程プログラムを書き込むために付けたジャンパピンを外してから再度パソコンへUSB接続すればMIDIコントローラーとして認識されます。

 これで無事に入力装置としての自作MIDIコントローラーが完成しました!

 次はスイッチや本体をどのように格納するかを考え、操作がしやすい躯体を作成していく工程に入ります。

3Dプリンターや木工細工でMIDIコントローラーの躯体を作ってみよう!

 躯体は使いやすいけれ使いやすいければ構いません💡例えば一例ですが、上のようにバネやベアリングを使って押したら戻る機構を作ったりしても良いですね💡

 せっかく作るなら市販のものよりも徹底的に使いやすいコントローラに仕上げましょう💡

MIDIコントローラの自作キット のまとめ!

  1. MIDIコントローラーはマイコンという小さな基盤を使えば簡単に作れる!
  2. マイコンの中でもArdionoというマイコンボードを使うのがおすすめ!
  3. Arduinoを購入するならパーツとセットになっていて安く買える互換製品がおすすめ!
  4. Arduinoへのプログラミング&本体へのプログラム送信はIDE(開発環境)というメモ帳のような専用ソフトを使って行う。
  5. ArduinoをMIDIデバイスに変えるためにMIDIファームウェアをまず書き込む。
  6. MIDIファームウェアはWindows上でAtmel EFIPというソフトを使えば簡単にできる!
  7. プログラミングを書き込むときはジャンパピンを使用して書き込みモードにする。
  8. 便利なMIDIライブラリを追加しておくとプログラムを簡略化できる。
  9. スイッチからの入力はアナログ入力を使用して電圧をモニターする。
  10. モニターした電圧値によって送信するMIDIデータをコントロールすることができる。
  11. MIDIコントローラーの機能が完成したら使いやすい躯体を作成してみよう!

 このように、Arduinoのキットを購入すれば簡単に自作MIDIコントローラーを完成させることができました💡

 また、プログラミングを工夫すれば、ピッチベンダーであればピッチUP&Downという機構だけでなく、ピッチDownに特化したペダルのようなものを作ればバイオリンのビブラートに特化したMIDIコントローラーを作れるなど可能性がまだまだたくさんある分野だと思いました。

 皆さんも欲しいMIDIコントローラーが発売されていない!なんていうときには是非自分でオリジナルの自作MIDIコントローラーを作ってみてくださいね^-^ノ

 もっと簡単!「初心者でも手軽にMIDIコントローラーを作れる」方法も紹介しています💡