お疲れ様です,Massです.
大学の講義の一環で開発した作曲支援システムの紹介記事になります.
動作の様子はこちら
システム構成図は以下になります.(スライドからの抜粋なので一部粗いです)

このシステムは簡単に以下のような動作を行います.
- MIDIキーボードの入力から一致するコードを判定する
- 判定したコードとキーの情報からディグリーとスケールを判定し,ARで表示
- そのスケールのアヴェイラブル・ノート,テンション・ノートおよびアボイド・ノートをARで表示
「作曲をARで楽にしよう!」というコンセプトで発表は乗り切ったのですが,現実はそこまで甘くなかったです.主にハードウェア的な側面で…
このシステムはUnityで動いているのですが,Unity向けのMeta QuestのSDKが当時は登場して間もない時期であったので機能面での不十分さや安定性の問題がありました.(今は改善しているはず)
他にもUnityでQuest 3を接続しながら動作テストを行うとパススルーが重たいのかすぐ固まってしまったりと苦しみましたが,それでもAR/VRアプリが作れて動く感動は大きかったです.
MIDIの検出にはMinisライブラリを使用しました.
コード検出はビットパターンのマッチングで行っています.MIDIをライブラリで解析してビットパターンに変換しています.
ビットパターンはコードに対応したものを,例えば C なら「1000 1001 0000 1000」,Cmなら「1001 0001 0000 0100」のように登録しています.ここでは 16bit Interger の上位 12bit をドから始まる半音階,下位 4bit をコードから受ける印象(うれしい・悲しい・驚きなど)を割り当てました.
下位4bitは演奏時のリアクション=顔文字の表示に使うために割り当てました(未実装).