【DIY MIDIコン】Teensy Duinoで作るMIDIボタン。後編
DIY MIDIコン、ボタン、スライダー、ツマミの順に作り方を説明していきたいです。
第1弾は基本的なボタンの作り方です。
前回は、接続まわりを説明しました。今回は楽しいプログラミングです!
ちなみに前回の記事はこちら!
jentagawa.hatenablog.com
用意するもの
必要なソフトのインストール
まずはArduinoのソフトをこちらからインストール。
そのあとTeensyduinoをインストール。
ここで注意しなきゃいけないのがArduinoのソフトのバージョンがTeensyduinoのソフトと互換性があるかどうか。
この記事を書いてる時点(2017/02/10現在)では、Trensyduinoバージョン1.35はArduinoのバージョン、1.0.6、1.6.5-r5、1.6.9、1.6.12、1.6.13、1.8.0、1.8.1に対応してます。
また、ArduinoをインストールしてからTeensyduinoをインストールする際に、Arduinoのソフトをどこにインストールしたか聞かれます。
インストールした場所を指定すると勝手にファイルを展開していきます。
次にこちらのTeensy Loaderというソフトをインストールします。
これで下準備完了です。
設定の確認
Arduinoのソフトを起動。
読み込み時に表示されるキャラクターがかわいい。UIも全体的にフラットデザインで配色もかわいい(´∇`)
ひとまずTeensyを接続して諸々設定していきます。
ツールからボードで該当するTeensyを選択。
そして次にUSBタイプをMIDIに設定。
それではプログラミングしていきましょー。
プログラミング
Bounceというライブラリを利用して作っていきますので、最初にBounce.hをインクルード(読み込み)しています。
#include <Bounce.h> // ボタンの値を設定 int cc_off = 0; int cc_on = 65; int cc_super = 127; // ボタンを割り振る int cc0 = 51; Bounce button0 = Bounce(0, 3); // ボタンを増やす場合は、こんなかんじ // Bounce button1 = Bounce(1, 3); // Bounce button2 = Bounce(2, 3); void setup() { // MIDI rate Serial.begin(31250); pinMode(0, INPUT_PULLUP); // ボタンを増やす場合は、こんなかんじ // pinMode(1, INPUT_PULLUP); // pinMode(2, INPUT_PULLUP); } void loop() { button0.update(); // ボタンを増やす場合は、こんなかんじ // button1.update(); // button2.update(); if (button0.fallingEdge()) { usbMIDI.sendControlChange(cc0, cc_on, 3); } // ボタンを増やす場合は、こんなかんじ // if (button1.fallingEdge()) // { // usbMIDI.sendControlChange(cc1, cc_on, 3); // } if (button0.risingEdge()) { usbMIDI.sendControlChange(cc0, cc_off, 3); } // ボタンを増やす場合は、こんなかんじ // if (button1.risingEdge()) // { // usbMIDI.sendControlChange(cc1, cc_off, 3); // } }
書き込み
コードが無事書けたら、Teensyに書き込んできましょう。
右矢印のボタン(マイコンボードに書き込む)をクリック。
初回のときだけTeensyについてるボタンを押すよう指示が表示されるはずです。
こんなん↓
指示にしたがってボタンを押すと、書き込み開始。
書き込みが完了したらいざテスト!
動作確認
書き込みが完了したら正しく信号が送られているか、MIDI-OXを使ってテスト。
MIDI-OXを起動して、OptionsからMIDI INPUTにTeensyを選択。
ボタンを押したり離したりすると信号が出ていることが確認できます。
問題がないことを確認したら早速遊んでみよー
TraktorDJでマッピング
今回はDJソフトのTraktorDJで設定してみます。
右上の歯車のマーク(設定)からControl Managerを選択。
DeviceからGeneric MIDIを選択。
次にIn-PortにTeensyが表示されているはずなので、選択。
あとは割り振りたい機能をマッピング。
今回はAデッキの再生・ストップを試しにマッピングしました。
※Device MappingのLEARNを押してから作ったボタンを押すと、簡単に設定できます。
参考
hyle.hateblo.jp
まとめ
以上でDIY MIDIコン第1弾のボタン作りが完成です!
けっこう簡単ですよね。
さらに発展させて、ボタンの数を増やせば下のようなコントローラーも作れちゃうかも!?
DJ TechTools - Midi Fighter 3D
実際にやってみました。はんだ付けめんどくさすぎです。
こちらは作曲ソフトのパッドをマッピングしてます。
#pawdrumming #arduino キノちゃんの肉球ドラミン
余談
猫の日に入籍しましたー わー わー