Skip to content

NibblesLab/mz40kmidi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIDI interface for Sharp MZ-40K(mz40kmidi)

シャープのワンボードマイクロコンピュータ・MZ-40Kのオプション鍵盤コネクタを利用して、これをMIDIに変換するインタフェースにてキーボードやシーケンサーから制御できるようにしてみました。

必要な物

  • Arduino Uno及び互換機
  • バニラシールドなどのユニバーサル基板
  • MIDIシールド(MocoLUFAなどでArduinoをUSB-MIDIデバイス化する場合は不要)
  • 部品を少々

シールド

MZ-40K用オプションの鍵盤形キーボード・MZ-40K2を模擬するシールドを製作しました。

shield

キーボードのストローブ信号は必要時以外はハイインピーダンス状態で、LED表示など他の機能と兼ねて使用されており、またGNDが出ていないことからシンプルにArduinoに入力させてもうまくいきません。そこでフォトMOSリレーを最小限で使用することによりキーボードの模擬が行えるようになっています。

MZ-40Kの鍵盤キーボード用コネクタ(オプション(2))はこのように信号が並んでいます(トップビュー)。R0~R7がストローブ(入力)、K0~K3がスキャン(出力)です。

R0 R1 R2 R3 R4 R5 R6 R7 K0 K1 K2 K3

shield

MIDIシールドと重ねて使用します(MocoLUFA対応させたArduino Unoを使う場合は不要)。

shield shield

ソフト

Arduino MIDI Libralyを使用しています。基本的にはノートオンを受信したら相当するキーを押下状態にし、ノートオフを受信したら押下状態を解除するだけのプログラムです。ノートオフが来ないまま複数のノートオンが有効になっている時は、最後に来たノートオンの音を鳴らし、その音のノートオフが来た場合は最後から2番目の音を鳴らす…というように、ノートオンの降着優先で鳴らす音を選んでいます。nキーロールオーバーのような効果があるはずです。

また、鍵盤を押さえた(ノートオンが出ている)状態で、MIDIシールドのLEDが点灯します。

その他、こちらのページも参考にして下さい。

Keypad interface for Sharp MZ-40K(mz40kKeypad)

上記のシールドを流用して、外部機器からUSBシリアルインタフェースを通じてMZ-40Kのキー入力を行うスケッチを追加しました。

ソフト

mz40kmidiの代わりにmz40kKeypadを書き込んで下さい。適当なターミナルから数値・アルファベット・記号などを入力すると、MZ-40Kの相当するキーが押された状態になります。0~9・A~F以外の特殊キーは次のように割り当てています。

入力文字 キー
@ ADR
R READ
W WRITE
L CLEAR

アルファベットは小文字でも受け付けます。なおRUNキーとSTOPキーは外部キーのマトリクスに含まれないので入力できません。この二つだけは本体のキーを操作してください。

About

MIDI interface for Sharp MZ-40K

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages