MIDI INの実験
お疲れ様です。高橋です。
Arduino+YMZをMIDI化するための第一歩の実験として、まずはMIDI INを受け付けて、ピエゾスピーカーで音が鳴るかどうか実験してみました。
曲はパズーが吹いてるラッパのアレです。うろ覚えですが、多分こんな曲だったような気がします。
回路
フォトカプラを使ってゴテゴテと配線したものの・・・
結局はMIDIの5番をArduinoのRXに、MIDIの4番をGNDに刺し、ピエゾスピーカーを2番とGNDに刺しただけで動きました。フォトカプラ周りはまた今度実験してみます。
ライブラリはArduino MIDI Library v4.2を使っています。
ArduinoのスケッチはイチロヲさんのサイトのArduinoでMIDI音源を作ってみたを参考にさせてもらいました。
スケッチ下記の通り、非常にシンプルです。
#include <MIDI.h> #define Speaker1 2 MIDI_CREATE_DEFAULT_INSTANCE(); int m2t[127] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115, 123, //NOTE_B2 131, //NOTE_C3 139, //NOTE_CS3 147, //NOTE_D3 156, //NOTE_DS3 165, //NOTE_E3 175, //NOTE_F3 185, //NOTE_FS3 196, //NOTE_G3 208, //NOTE_GS3 220, //NOTE_A3 233, //NOTE_AS3 247, //NOTE_B3 262, //NOTE_C4 277, //NOTE_CS4 294, //NOTE_D4 311, //NOTE_DS4 330, //NOTE_E4 349, //NOTE_F4 370, //NOTE_FS4 392, //NOTE_G4 415, //NOTE_GS4 440, //NOTE_A4 466, //NOTE_AS4 494, //NOTE_B4 523, //NOTE_C5 554, //NOTE_CS5 587, //NOTE_D5 622, //NOTE_DS5 659, //NOTE_E5 698, //NOTE_F5 740, //NOTE_FS5 784, //NOTE_G5 831, //NOTE_GS5 880, //NOTE_A5 932, //NOTE_AS5 988, //NOTE_B5 1047, //NOTE_C6 1109, //NOTE_CS6 1175, //NOTE_D6 1245, //NOTE_DS6 1319, //NOTE_E6 1397, //NOTE_F6 1480, //NOTE_FS6 1568, //NOTE_G6 1661, //NOTE_GS6 1760, //NOTE_A6 1865, //NOTE_AS6 1976, //NOTE_B6 2093, //NOTE_C7 2217, //NOTE_CS7 2349, //NOTE_D7 2489, //NOTE_DS7 2637, //NOTE_E7 2794, //NOTE_F7 2960, //NOTE_FS7 3136, //NOTE_G7 3322, //NOTE_GS7 3520, //NOTE_A7 3729, //NOTE_AS7 3951, //NOTE_B7 4186, //NOTE_C8 4435, //NOTE_CS8 4699, //NOTE_D8 4978 //NOTE_DS8 }; int vol = 1; int tone1Interval = 0; int note; void setup() { MIDI.begin(0); } void loop() { if (MIDI.read()) { MIDI.setInputChannel(vol); // Channel switch (MIDI.getType()) { case midi::NoteOn: note = MIDI.getData1(); // note no tone1Interval = note; tone(Speaker1, m2t[note]); break; case midi::NoteOff: note = MIDI.getData1(); // note no tone1Interval = 0; noTone(Speaker1); break; default: break; } } }
電子ピアノはKAWAIの奴なんですが、久しぶりに説明書を開きMIDIのチャンネル番号周りの設定を読むと、デフォルトでで1番が設定されてるようなので、そのまま。
また、MIDI OUT時に電子ピアノ側の音を、鳴らすか鳴らさないかの設定も出来るようでしたが、ピエゾスピーカーからの音だけを聞きたい時は、電子ピアノ側のボリュームを0するだけでok。
次回はYMZに挑戦です。
以上、よろしくお願い致します。
関連記事
-
-
シフトレジスタLED付きのYMZ294回路をFritzingに起こしてみた。
お疲れ様です。高橋です。 ユニバーサル基板で作ったYMZボードと、音階LED及び …
-
-
aitendoのArduino用生シールド基板を1枚120円で買った。
お疲れ様です。高橋です。 今日もaitendoに行ってきたのですが、120円のシ …
-
-
Pro Mini互換機でFF2戦闘音楽を使ったYMZ動作試験
お疲れ様です。高橋です。 電子オルゴールの最終形をイメージしてブレッドボード上で …
-
-
100均で買ったボリュームコントロール付きステレオ延長コードを、バブ型スピーカーに搭載してみた。
お疲れ様です。高橋です。 先日作ったバブ型スピーカーですが、実は裏側がとても汚い …
-
-
マウスを分解してみた(リベンジ)
お疲れ様です。高橋です。 壊れたマウスを貰った 本日、壊れたマウスを貰いました。 …
-
-
耳コピミキサー 試作
お疲れ様です。高橋です。 iPhoneから流す音と電子ピアノから流す音を合成する …
-
-
遠隔でRaspberryPi+DCモーターを制御 #2
お疲れ様です。高橋です。 WiMAXが上限オーバー 私の家の自宅回線はWiMAX …
-
-
音階LED完成、YMZのノイズの原因判明
お疲れ様です。高橋です。 音階LEDの実装が完了しました。 青色LEDが眩しすぎ …
-
-
YMZシールドの作成 #2
お疲れ様です。高橋です。 先日から作っていたYMZシールドですが、本日完成しまし …
-
-
ArduinoIDE1.6.4+ATTiny13Aで赤外線リモコン
お疲れ様です。高橋です。 先日実験したArduinoで赤外線リモコンの問題点、そ …
- PREV
- YMZシールドのMIDI化を検討
- NEXT
- YMZ294のMIDI音源化と、YMZのピン数圧縮