RP2040で音の再生実験 その4

フジガヤさん、NagodenさんとRP2040(ラズパイピコのプラットフォーム)をベースにしたオープンサウンドデコーダを共同開発中です。DCCデコーダのデコード処理は、既に動作確認済み(だと思う)なので、サウンド再生部分の開発をフジガヤさんが中心となって進めてます。

フジガヤさんが先週末に、タイマ割込を使って同時8音まで再生できるものを開発してくれました。

RP2040で音の再生実験 その3: ゲヌマ・フジガヤ2
 気づいたら、1月も半分が終わっていますね。昨日はトンガの噴火が原因で、携帯から津波注意報が何回も流れていたようですが、私は気づきませんでした。理由は、ハーゲンダッツのラムレーズンを半分食べたのですが、アルコールがきつすぎて、寝込んでいたせいです。  さて、RP2040での音の再生実験ですが、細々と続けています。(時間...

この中で、宿題事項だった「PWMをDMA転送することで、CPUを著しく消費するタイマ割込の処理を削減する」という部分を行いました。結果、以下のような感じで完成しました。

細かい説明は省略しますが、既にRP2040でPWM DMA転送のサンプルを開発されている方がいらっしゃったので、それを移植しただけであります。ただし、パラメータは調整しているのと、フジガヤさんの処理はそのまま踏襲するように修正しています。

あとついでに、再生できるWAVファイルが、44100Hz対応だけだったのはちょっと使いにくいので、ヘッダを読んで、22050Hzと11025Hzも再生できるように機能を追加しました。これで、ROMの空きスペース具合に応じて再生時間を柔軟に長くできるようになったと思います。

さらに、サンプリングレートを3種類選べるようになったので、変換するツールも作りました。OpenSoundProgrammerという名前ですが、その名の通り、今後は機能強化によって、サウンドプログラミングやデコーダへのサウンド書き込みができるツールになる予定です。Windowsしか対応させないので、悪しからず。Mac版が欲しい人は、各自で開発をお願いします。仕様は公開しますので。

DesktopStation OpenSoundProgrammer
タイトルとURLをコピーしました