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及び …
-
-
音階LED実装 #1
お疲れ様です。高橋です。 今日の進捗 音階LEDの半田付け 1日目です。 ICソ …
-
-
マウスを分解してみた(リベンジ)
お疲れ様です。高橋です。 壊れたマウスを貰った 本日、壊れたマウスを貰いました。 …
-
-
webからUSBカメラ+Raspberry Pi
お疲れ様です。高橋です。 The Internetから、RaspberryPiの …
-
-
Pro Mini互換機でFF2戦闘音楽を使ったYMZ動作試験
お疲れ様です。高橋です。 電子オルゴールの最終形をイメージしてブレッドボード上で …
-
-
FM音源 FB-01の動作試験
お疲れ様です。高橋です。 先日、会社の大大大先輩からFB-01を貰ったので、本日 …
-
-
ArduinoIDE1.6.4+ATTiny13Aで赤外線リモコン(難航)
お疲れ様です。高橋です。 先日から引き続いて、ATTiny13Aで赤外線リモコン …
-
-
抵抗が焼けた – Arduinoで赤外線リモコン
お疲れ様です。高橋です。 今日の実験中、抵抗が焼けてしまいました。 なんか異臭が …
-
-
満員電車内でのオナラと検知 #2
お疲れ様です。高橋です。 最近なんだか忙しかったので、なかなか物が作れませんでし …
-
-
USBカメラ+Raspberry Pi
お疲れ様です。高橋です。 USBカメラをRaspberryPiに装着し、ストリー …
- PREV
- YMZシールドのMIDI化を検討
- NEXT
- YMZ294のMIDI音源化と、YMZのピン数圧縮


