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を使う. いつかはPIC18F14K50でMIDIを制御したい. ソースコード. ネットのサンプルコードを組み合わせて適当に見繕った.
MIDIの再生はDominoで, MIDIデータの送信は, 本当はMocoを使いたかったけれど, どうもArduino UNOのパターンをはがしてしまったようでDFUで認識できず. かわりにThe Hairless MIDI<->Serial Bridgeを使う. 先人に感謝 ! こちらはシリアル通信でMIDIが使えるため, 互換機でも使える.
以下が演奏してみたもの. 譜面はかきむき様のものを使わせていただいた.
- 千本桜
- Bad Apple!!
- Tell Your world
- 前前前世
3音でこれだけ鳴ればいい方では.
Footnotes
-
YMZ294のMIDI音源化と, YMZのピン数圧縮 | curious4dev など. 似たようなこと考える人ってやっぱいる. ↩