電音の歩み

電子楽器を中心とし、ものづくり関係も含めて紹介していきます。

デジタル版Frequency Shifterの検討 その2 まずはSTM32で

■まずはSTM32F103で

マイコンとしては、Armtheremin Live の音源モジュールとして STM32F103搭載のBluePillを、STM32duinoとして使っていたので、とりあえずこれで検討。

 参考→

http://hyamasynth.web.fc2.com/ArmThereminLIVE/ArmTerminLIVE_Root.html

しかし、音源モジュールとは異なり今回のお題は、いわばエフェクターなので、今まで未経験のオーディオ入力も考える必要がある。

目標としては、

 (1) 歪やノイズなどはアナログ版並

 (2) キャリア漏れや周波数シフトの精度はアナログより高精度

 (3) 高音域はアナログのように伸ばせないのは許容するが、エイリアシングノイズは極力避ける

とします。

 

少なくともアナログ版と比較できるレベルの音質を狙うには、エイリアシングに注力が必要なので、ひょっとしたらFrequency Shifterのデジタル実装よりも、高品質のA/DとD/Aを持つ適切なマイコンシステムの開発が重要になりそう。

そこで、「入力フィルタ→ A/D  → マイコン → D/A → 出力フィルタ」のような「無処理」の系で音質を評価することにします。

この際の、A/Dの速度も調査が必要。Armtheremin Liveでも、D/A周りのS/Nでは苦労したので、A/Dも含めるなかなか難しいことが予想されます。

 

■外付けD/AとA/Dが必要

実際アームテルミンの開発用の改造基板で、STM32F103チップの内蔵12bitA/D と、2チャンネルPWMのアナログ合成で実質12bit精度以上のはずのD/Aで試しましたが、アナログフィルタや、電源グランド周りのアナログ処理のS/Nや歪等とても今回の用途には心もとなく、外付けD/Aを使う必要がありそうです。

また、STM32M3チップの内蔵A/Dは、オーディオで使えるように変換クロックを上げると変換精度が落ち、複数のA/D 入力チャンネル間で大きなクロストークが生じました。(これは、後にADのサンプリング幅の設定が適切でなかったからかもしれない・・)

他に複数個のPOTの読み込みなどにもA/Dは必要なので、オーディオ入力専用とはできず、内蔵A/DはPOT読み込みに回して、オーディオ入力には、外付けA/Dを探すことにします。