自作MIDIキーボード

_images/IMG_0065.JPG

3オクターブ、36キーのキーボード

自作キーボードキットのファームウェアを書き換えて、midiキーボードを作ってみた。
当初、qmk_firmware のmidi拡張機能を使おうとしたが、ソースコードが巨大なのでどこから読めばよいかわからず、解説している情報を見つけられなかった。
そこで、MIDIプログラムの勉強を兼ねて、Arduino IDE上でプログラムを作成し、lum47のファームウェアを書き換えた。Arduinoは、MIDI関連ライブラリが充実しており、情報が多かったので比較的簡単に構築できた。

ハードウェア

使用機材

  • Keyboard: Plum47 (遊舎工房で購入)

  • Switch:Zilent 62g

  • Keycap:白と黒の無刻印キーキャップ

Plum47の情報

キーレイアウト

DTMの ピアノロール を模した配列とし、1行12個のキーに白鍵と黒鍵をそのまま割り当てた。

_images/key_layout.png

キーレイアウト

最上段の行より、国際式 5オクターブ、4オクターブ、3オクターブに割り当てた。
最下段の行はオクターブシフト用に割り当てた。
  • 中央のスペースは、オクターブシフトなし。

  • 中央のスペースから、右へ、1,2, 3オクターブ高音へシフト

  • 中央のスペースから、左へ、1,2, 3オクターブ低音へシフト

  • 両端の2個は、未割り当て

ソフトウェア

開発環境 arduino-1.8.13

設定

Plum47 で使用されているのは、sparkfun Pro Micro の互換品なので、開発用のアドオンをArduino IDEにインストールする必要がある。また、MIDIを扱うためのライブラリもインストールする必要がある。

アドオンの導入方法

  1. ファイル -- 環境設定を選択

  2. 以下のURLを「Additional Boards Manager URL」に設定して、OKボタンを押す。

  3. ツール -- ボード -- ボードマネージャーを開き、上部にテキストエリアに「sparkfun」を入力する。

  4. 検索された一覧表から「SparkFun AVR Boards by SparkFun Electronics」を選択してインストールする。

MIDIライブラリの導入方法

  1. ツール -- ライブラリを管理を選択し、ライブラリマネージャを開く。

  2. 検索ボックスに「MIDIUSB」を入力して、最新バージョンを探し、インストールする。

ボードの設定

  • ボード:SparkFun Pro Micro

  • プロセッサ:ATmega32U4(5V, 16MHz)

ソースコード

このソースコードは、Beer-Ware License のもとで、公開しています。 同意いただける方は、以下のZipファイルをダウンロードして下さい。

mkbd20210314.zip

使い方

Arduino IDE で上記ソースコードをコンパイルし、キーボードのマイコンに書き込む。

https://webaudiodemos.appspot.com/midi-synth/

Web MIDI APIに対応したブラウザで、上記のサイトを開き、このMIDIキーボードを接続してMIDI IN に、SPARKFUN PRO MICRO が表示されれば正常に動作している。後は、キーを押して、PCから音が再生すれば無問題。
後は、自由に音楽をお楽しみください。
_images/midi-synth_sparkfun_pro_micro.png

midi-synthの画面

_images/IMG_0083_trimming.jpg

PCに接続した様子

ライセンス

このページで公開しているソフトウェアは、Beer-Ware License で配布しています。

以下の条件に同意していただける方のみ、ご利用下さい。

/*
  • "THE BEER-WARE LICENSE" (Revision 42):

  • @triring wrote this file. As long as you retain this notice you

  • can do whatever you want with this stuff. If we meet some day, and you think

  • this stuff is worth it, you can buy me a beer in return @triring

*/

"THE BEER-WARE LICENSE" (Revision 42)]: https://people.freebsd.org/~phk/

  • このプログラムを使ってあらゆることができる。

  • いつか原作者に会った時に、原作者にビールをおごることができる。