https://honeylab.hatenablog.jp/entry/2022/05/07/224043
前回ChordTrackerの記事を書いてから一年半、
あれやこれやと色々調べてみたところ、どうにかデータを引っこ抜く方法を見つけ出しました。
ChordTrackerの外部連携機能として、SH-300やSH-500などのsongnenicショルキーのJAM機能にリアルタイムにデータを送る機能と、PSR-SX600などのミュージックワークステーション・キーボードに譜面データを送るという二つの方法があります。
今回は、前者のリアルタイム機能を使用しました。
色々調べてみましたが、やっぱり実機がないとどうしようもないと言うことで、しょうがない買うか、とメルカリを見ていたところ約12000円、たまにヤフオクで8000円ぐらいのが出ていました。うーんと悩んでいたところ、そういえば近所のリサイクルショップにあったはずと見に行ったところまだ残っていました。
近所にあるの知ってたんだ pic.twitter.com/bDiIJD1yWO
— ひろみつ (@bakueikozo) 2023年10月11日
iPhoneとUSBで接続すればMIDI機器として通信できるはずですが、それだと中身を見ることができません。USB-MIDI対応の機器を使って入力ーTHRUー出力すれば中身を見ることができるはずですが、なぜかそのへんに転がしておいたはずのiPhone-USB アダプタが見つかりません。
仕方がないので分解してみます。
USBでもいいんですが、今回はBLEの方で通信します。
どうやら、USBの場合はLPCマイコンで受けてMIDI信号に、BLE接続の場合はホシデンのBLEモジュールでMIDI信号に変換した後、メインのマイコンに送り込まれているようでした。
その部分からちょっと信号をもらって通信を解析しました。
コードチェンジのタイミングでMIDIデータが送られているのを確認 pic.twitter.com/cDuMtDGO71
— ひろみつ (@bakueikozo) 2023年10月11日
BLE接続認証後、GetIDでSH-300のIDを返した後、名前のクエリを専用コマンドで行い、想定の通りであれば、接続可能機器として使用できるようでした。
で、音源ファイルを開き、再生すると、リアルタイムにSysEXが送信されていきます。
これを解析しました。
解析もまぁ長くなりますが、これだけMIDI関連機器をいじってきたので割と簡単にどうにかなりました。
最終的に、マイコンにSH-300を騙らせてSysEXを受信し、コード文字列をキーボードに変換してメモ帳に入力できるようになりました。
ChordTrackerからのリアルタイムSysex出力を拾ってコード文字列に書き換えてキーボード入力に変換してメモ帳に叩き込める成功(NoChordがバグってCccになってるけど置いておく)
— ひろみつ (@bakueikozo) 2023年10月12日
任意のタイミングでEnterキーを押して改行してやると見やすくなるぞ pic.twitter.com/11tJXp8gwI
画期的すぎん???これいままで手書きでやるしかなかったんだよ????
ここまでできたら後少し、これを単純なマイコンで行う機械に仕上げるか、もう一つはアプリとしてテキストに変換するかの二種類が考えられます。どうにかなんか作りたいぞ