がれすたさんのDIY日記

電子回路、Python、組み込みシステム開発、自作エフェクターを語るblog

MCUXpressoSDK USB Device StackでMIDIStreamingSubClassを使う1

MCUXpressoSDK USB Stackの中のAudioクラスにMIDIストリーミングサブクラスを追加してPCからUSB MIDI機器としてとして認識できるようになったという感じです。
めちゃめちゃ長ったらしい説明ですがSDKにもともと入っているaudio_generator_lite_bmというサンプルのusb_device_descriptor.cを修正したというだけです。

公式のサンプルだとサブクラスにAudioコントロールとAudioストリーミングしかマクロとして登録されていないのでMIDIストリーミングサブクラス(0x03)を追加して以下固有ディスクリプタの定義をしたという感じ。
コードは長かったのでGistに上げておきました。

https://gist.github.com/GSMCustomEffects/13318627e3e1ca1ab04aea41609c8a43

数値の意味などはコメントで表記しています。

USBTreeviewというソフトウエアで認識を確認しています。
f:id:gsmcustomeffects:20191014230251p:plain

参考


シンセ・アンプラグドさんはこれ以外にもUSBMIDI関連で多数の記事を書かれていて非常に参考になります。
今回ほとんどコピペさせてもらってます。