主にandroidとかのメモ

PICマイコンでMIDI-OUTとMIDI-INしてみた

PIC24Fボードを作ったよ!という続き。

前々から作ろうと思っていたMIDI-IFです。
ADK出た時から考えていたけど、延び延びにしていたうちに・・・

kshojiさんのUSB-MIDI-DriverでMIDI-INテスト
https://init0.net/wp/archives/444

USBのMIDI-IF繋げればいいじゃん!でモチベーション消火されてました(´・ω・`)

けどやはりキッカケがあると、やれることやろう!やりたいだけだし!
って吹っ切れますネ

IMG_20130312_165746

シリアル(UART)のTX(送信)をMIDIケーブルと繋いで見るテスト。まさかのワニ口クリップw

コネクタ実はMIDI用じゃない(ピン多い)けどちゃんと繋がります(^^;

MPLAB Xでマイコンの処理を作成(C言語)。
・UARTを31250bpsで初期化
→PCでは使わない31250という変態通信速度(PCで使われるのは19200の次は38400)

・0x90,0x3c,0x7fを送信
→9はnote ON(音出す) 、0は楽器の演奏チャネル(全部で16chある)
→3c(10進数で60)は、真ん中変のオクターブのCの音。ド。
→7f(10進数で127)は音の強さ。最大に強く弾いた感じで127。

・0x80,0x3c,0x00を送信
→8はnote OFF(音消す) 、0はNote ON同様
→3c(10進数で60)は、Note ON同様
→00(10進数で0)は音の強さだけど音消すので関係なし。

これで音が出て、音が消えることを確認。
MIDI-OUTできたー!
MIDIコネクタへの結線がワニ口とか、不安定そうだしあんまりなので、
PICのライバル(?)Arduino用のMIDIシールドを千石で買ってきて流用。

IMG_20130312_170425
これで安定性抜群!しかもMIDI-IN用コネクタもあるぞ!

 

MIDI-INの線はシリアル(UART)のRX(受信)に繋ぐ。

MIDI対応鍵盤(シンセ)のMIDI-OUTにこのボードのMIDI-INに繋ぐ。

ドの鍵を強く押すと、0x90,0x3c,0x7fの受信を確認。

無事MIDI-INも完成ヽ(゚∀゚)ノ