YMZ294をSPIで制御する

前に使ったYMZ294について, また使おうとするとあの配線をやり直す必要があった. そこで, 思い切ってSPI化することで配線の手間を減らし使いやすくしてみる.

変換アダプタもどき

変換アダプタ

SPI化には, シフトレジスタ(74HC595)を用いた. 理由は, 前に使ったことがあるから. そのまま8ビットバスとSPIマスタの間につなげば使える, と思ったのが, どうも書き込みの際の/WR/CSや/A0の扱いが74HC595だけでは上手くいきそうになかったので, PIC12F683で制御した. 74HC595がラッチされるのを検知して, /WR/CSをHIGH, LOWする. PIC12F683のソースコード. A0はマスタ側で直接制御する. ホントはPIC12F683で一緒に制御できれば楽だったが, 仕方ない.

回路図

裏面の写真

演奏してみた

割とMIDIでYMZ294を制御している方は多い. 中には私と同じようにピン数圧縮してる方もいらっしゃいた1.

ピアノは弾けないので, ネットで拾ってきたMIDI譜面を流し込む.

Arduinoと接続

マスタはArduinoを使う. いつかはPIC18F14K50でMIDIを制御したい. ソースコード. ネットのサンプルコードを組み合わせて適当に見繕った.

MIDIの再生はDominoで, MIDIデータの送信は, 本当はMocoを使いたかったけれど, どうもArduino UNOのパターンをはがしてしまったようでDFUで認識できず. かわりにThe Hairless MIDI<->Serial Bridgeを使う. 先人に感謝 ! こちらはシリアル通信でMIDIが使えるため, 互換機でも使える.

以下が演奏してみたもの. 譜面はかきむき様のものを使わせていただいた.

3音でこれだけ鳴ればいい方では.

Footnotes

  1. YMZ294のMIDI音源化と, YMZのピン数圧縮 | curious4dev など. 似たようなこと考える人ってやっぱいる.