curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

YMZシールドのMIDI化を検討

 

お疲れ様です。高橋です。

Arduino UNOにYMZシールドをくっつけ、さらに音階をLEDで表示させる所まで出来たので、次はMIDI化です。

うちにはKAWAIの電子ピアノがあります。奥さんが「弾く」というので買ったのですが、結局使ってるのは私だけです。

IMG_5385

こいつの演奏をMIDI OUTし、MIDI INで受け付け、YMZ294で鳴らすという流れです。

実体配線図

下記が実体配線図です。

041501

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の箇所が、ごちゃ混ぜになってしまう事です。

もう少し検討が必要ですが、まずは鳴らす所まで行きたいと思います。

 

 

 

以上、よろしくお願い致します。

 - 電子工作

  関連記事

FM音源YM2203をArduinoで鳴らしたい #1

お疲れ様です。高橋です。 きっかけ 4月から現在に掛けてのコロナな最近、会社のと …

抵抗が焼けた – Arduinoで赤外線リモコン

お疲れ様です。高橋です。 今日の実験中、抵抗が焼けてしまいました。 なんか異臭が …

満員電車内でのオナラと検知 #2

お疲れ様です。高橋です。 最近なんだか忙しかったので、なかなか物が作れませんでし …

音階LED実装 #3 – 秋葉原で買い物

お疲れ様です。高橋です。 先日、お小遣いがチャージされまして、音階LED実装に必 …

YMZシールドの基板設計 #2

お疲れ様です。高橋です。 先日行ったYMZシールドの基板設計の設計図を元に、部品 …

USBやDCジャックからの5Vを3.3Vにする物を作った

お疲れ様です。高橋です。 前にesp8266の動作試験を行った時、とても面倒だと …

電子オルゴール 基板実装 #1

お疲れ様です。高橋です。 Pro Mini互換機を贅沢に使った電子オルゴールの仮 …

耳コピミキサー 半田付け #1

お疲れ様です。高橋です。 耳コピ用ミキサーの半田付けを行いました。 ブレッドボー …

猫×おもちゃ×動画×アプリ

お疲れ様です。高橋です。 金魚水槽 先日フラフラとネットサーフィンしていて目に入 …

LEDドライバなる物の存在

お疲れ様です。高橋です。 本日、同僚とLED周りについて雑談していると、「LED …