STARM マイコン基板 (11) -- USB オーディオ

「シバ某」さんの Web サイト (→こちら) に、STM32F103 を USB オーディオ (USB スピーカ) として機能させるサンプルプログラム「Audio_Speaker」を CQ-STARM 基板用に修正して動作させたという記事が掲載されています。
「Audio_Speaker」プロジェクトは、開発ソフトをインストール後、サンプルプログラムのフォルダを探検している時から気になっていました。
実際に動かした方がいるということで、おくればせながら、私もプロジェクトのファイルに修正を施し、うまく動作しました。
この時、Web サイトの記述を見ながらではなく、自分流に修正を行いました。
そして、Web サイトに戻り、詳しく読んでいくと、微妙に記述が食い違うことが感じられました。
実は、シバ某さんが動かしたプロジェクトと、私の動かしたプロジェクトとは、同一ではなく、別のフォルダにある別のプロジェクトでした。
シバ某さんは付属 CD-ROM の

\soft\ST\USB関連のサンプル・プログラムおよびマニュアル\STM32F10xUSBLib\USBLib\demos\Audio_Speaker

のプロジェクトを扱っていて、私は IAR Systems の開発ツールがインストールされているフォルダの

ARM\examples\ST\STM32F10x\IAR-STM32-SK\AudioDevice

を見ていたのでした。
両者とも USB オーディオのサンプルプログラムであり、「Audio_Speaker」、「AudioDevice」と似たプロジェクト名のため、混同したのです。
「AudioDevice」の方は、IAR Systems 社の「IAR STM32-SK」評価ボード用のサンプルで、STM32-SK ポード上の LCD に表示するためのプログラムも含まれています。
その他の主な相違点は、

プロジェクト名 Audio_Speaker AudioDevice
PWM 周波数 約 280 kHz 約 70 kHz
PWM ビット数 8 10
データ形式 22 kHz 8 bit mono 48 kHz 16 bit mono
機能 再生のみ 再生/録音

となります。
「FM音源プログラム」としては、USB オーディオを取り込むメリットはないに等しいのですが、「Audio Interface Class」のサブクラスとして「MIDIstreaming Interface Subclass」があり、これを利用して USB-MIDI インターフェース機能を取り込もうと考えています。
これをスクラッチから書くのは大変ですが、「Audio Interface Class」のサンプルが2つあるわけですから、これらを応用して実現できるのではないかと考えています。