前回までの記事で、JAM機能のためのリアルタイムコード送信からコードを拾う方法を実現しましたが、やはりこれだと再生実時間がかかる、テンポが取得できない、
再生カーソルにある位置のコードが出力されるので、動かすとそれが出てしまう、という欠点がありました。
「楽譜送信」機能さえ掴んでしまえば…と悩んで数日、
ありとあらゆる手を尽くして「楽譜送信」プロトコルを掌握し、
標準MIDIファイルとして送信されるデータから店舗とコード進行をデコードすることに成功しました!!
このプロトコル、内部的には「MSD」と呼ばれるプロトコルで、『Yamaha SongDownloader』というソフトを使ってPCとキーボードを接続するときに使われるモノらしいです。
とっかかりとして、こちらのブログで一部が解析されていたSysExの続きを必殺逆アセゲフンゲフンと試行錯誤で突破したモノです。
https://sandsoftwaresound.net/hidden-arranger-smarts-file-system-sysex/
Android,iOSのアプリなのでBLEoverMIDIが使われていて、実装先もiOSなので、
始めたばかりのSwiftUIも含めて勉強することになってなかなかよいトレーニングになりました。
リアルタイムコード取得にのみ対応したバージョンのiOSアプリをリリースしたばかりですが…
コード正解率に定評があり愛用者の多いChordTracker、便利なのにコード書き出し機能が無い、どうやってもできない、鉛筆で書き写すしかなかったソフトからコードデータを拾ってテキスト化する非公式アプリができました。
— ひろみつ (@bakueikozo) 2023年10月13日
今のうちなら機能追加ができるのでなんかあったらコメントください。 pic.twitter.com/aqRwrZ9uRc
この成果を生かした楽譜ごと転送、コード譜作成機能を実装した新バージョンを早いうちにリリースしたいと思っています。
このバージョン、意味がわからないぐらい手間をかけたので、
耳コピとコード譜作成の時間をゴリっと圧縮するので、その分を何らかの形で課金していただく、というふうにしたいと思っています。
練習も兼ねて、広告課金+app内課金、ただし、一日に一曲ぐらいは使える、といった形でやればアプリの使い方もわかるし、払いたくなければ制限内で使ってもらえれば。
新バージョンの動作風景はこちら(UIは変更される予定です)
ChordTracker完全に制圧した
— ひろみつ (@bakueikozo) 2023年10月20日
曲の読み込みからコード譜印刷まで1分だ! pic.twitter.com/1Xu47NsPCb
早いでしょ???使えるでしょ???