YMZシールドのMIDI化を検討
お疲れ様です。高橋です。
Arduino UNOにYMZシールドをくっつけ、さらに音階をLEDで表示させる所まで出来たので、次はMIDI化です。
うちにはKAWAIの電子ピアノがあります。奥さんが「弾く」というので買ったのですが、結局使ってるのは私だけです。
こいつの演奏をMIDI OUTし、MIDI INで受け付け、YMZ294で鳴らすという流れです。
実体配線図
下記が実体配線図です。
MIDIコネクタは、DIP5pinの物です。ヒロセの地下で137円。MIDI INとArduinoの間にあるICは、フォトカプラFOD817Bで、30円。抵抗は1個1円で2円。MIDIケーブルは350円。519円でMIDI化出来るのなら安いものです。
MIDI関連のフォトカプラでググるとTLP552という物が鉄板らしい記述を多く目にするのですが、秋月には無くマルツで1個440円!!!という値段で売られています。こんなの高くて買えないので、30円で妥協します。
そもそもフォトカプラも必要あるのかどうなのか。ググるとMIDI INから直接RXに接続している作例もあるのですが、とりあえず実験で使ってみます。
考えられる課題
ピン数のダイエット
YMZ294はArduinoの貴重なピンを11本使い、音階LEDは9本を使っています。既に限界ギリギリです。そこで、YMZの11本を、シフトレジスタ74HC595を使って6本に圧縮。空いた5本の内シリアル受信のRXを1本、MIDI INに使おうと思います。今これ書いてて思いつきましたが、残り4本あるとI2C LCDで2本使えるので、贅沢に文字の表示や、MIDI INから受け付けた値の出力なんかも出来そうです。
以前はんだカフェで、まりすさん(webサイト: 構想100年)という達人が作られたシフトレジスタ+YMZという組み合わせをマジマジと観察させてもらい、いじらせてもらい、裏も表も何もかも写真を撮らせてもらいました。まりすさんのこのページではLCD+シフトレジスタ74HC164の回路図がありますが、多分595でもイケるはず。ダメだったら念のため164も買ってある自分の用意周到さを褒めたい気分です。
既存のYMZライブラリの改修。
インパクトドリルさんのYMZライブラリを、使わせてもらっていますが、最終的にArduinoにビットを流し込んでいるset_registerメソッドを、シフトレジスタ用に改造する必要があります。
void YMZ294::set_register(byte addr, byte value)
{
// addr
digitalWrite(WRCS_PIN, LOW);
digitalWrite(A0_PIN, LOW);
PORTD = addr;
digitalWrite(WRCS_PIN, HIGH);
// value
digitalWrite(WRCS_PIN, LOW);
digitalWrite(A0_PIN, HIGH);
PORTD = value;
digitalWrite(WRCS_PIN, HIGH);
}
直感ですが、ここは多分全く問題無く実装出来る予感がします。
ピアノからのMIDI OUTを3和音で鳴らす
これが難問。
おそらく電子ピアノからのリアルタイム演奏のMIDI OUT信号は、チャンネルに1つにまとまった状態で和音が流れてきます。一方YMZ294は1チャンネル1音で3和音を実現しています。
解決策として今のところ考えているのが、常時開いているチャンネルの状態を保持しつつ、空いているチャンネルを見つけたらそこを使う、という感じのプログラムの実装。
ただこの方法だと、メロディ部、ベース部、真ん中部がごちゃ混ぜになって、折角赤と緑と青で実現したLEDの箇所が、ごちゃ混ぜになってしまう事です。
もう少し検討が必要ですが、まずは鳴らす所まで行きたいと思います。
以上、よろしくお願い致します。
関連記事
-
-
YMZシールド 再作成
お疲れ様です。高橋です。 YMZのノイズが超気になる YMZ294用の音楽を聞く …
-
-
音階LED実装 #4
お疲れ様です。高橋です。 今日は音階LEDのIC-IC間、GNDの敷設、そして1 …
-
-
マウスを入力I/Fとして使うのを断念してみた。
お疲れ様です。高橋です。 先日の「マウスを分解してみた」でマウスを分解し、ケーブ …
-
-
【完成】 耳コピミキサー
お疲れ様です。高橋です。 作成途中だった耳コピミキサー、やっと完成しました。 思 …
-
-
音階LED完成、YMZのノイズの原因判明
お疲れ様です。高橋です。 音階LEDの実装が完了しました。 青色LEDが眩しすぎ …
-
-
4桁7セグLEDを基板に実装
お疲れ様です。高橋です。 昨日に引き続き今日も奇跡的に早く帰宅する事が出来たため …
-
-
YMZシールドの基板設計 #2
お疲れ様です。高橋です。 先日行ったYMZシールドの基板設計の設計図を元に、部品 …
-
-
bluetoothモジュールHC-06とAndroid
お疲れ様です。高橋です。 先日AliExpressで購入したbluetoothモ …
-
-
MIDI INの実験
お疲れ様です。高橋です。 Arduino+YMZをMIDI化するための第一歩の実 …
-
-
シフトレジスタLED付きのYMZ294回路をFritzingに起こしてみた。
お疲れ様です。高橋です。 ユニバーサル基板で作ったYMZボードと、音階LED及び …
- PREV
- 音階LED完成、YMZのノイズの原因判明
- NEXT
- MIDI INの実験


