スキップしてメイン コンテンツに移動

Blue Pill STM32 FX Projects - 簡易サウンドエフェクト・テスト回路 -(2)

Blue Pill STM32 FX Projects - 簡易サウンドエフェクト・テスト回路
の各エフェクトの簡単な解説です。

 ディレイ 

最大遅延時間400ms。周波数特性10kHz。Blue Pill(STM32F103C8)のSRAMが20kバイトしかないので、普通に作ればこうなると思います。

 アナログディレイ 

最大遅延時間800ms。周波数特性1.5kHz。サブサンリングで周波数特性を落とすことで遅延時間を延ばしています。LPFにピークを付けてあるのでフィードバックを最大にすると発振します。

 ディレイ(ADPCM) 

最大遅延時間1590ms。周波数特性10kHz。ADPCMによるデータ圧縮を使ったディレイです。ADPCMは16ビットデータを4ビットデータへ圧縮します。最大遅延時間が4倍に伸びますが音声品質が少し悪くなります。

 2タップディレイ(ADPCM) 

サウンドオンサウンド用の特殊なディレイです。ピンポンディレイのモノラル版だと考えて貰うと分かり易いです。遅延を最大にしてフィードバックをゼロにするとディレイ音が2回返ってくるのが分かると思います。ADPCMを使っているので音質は少し落ちますが、最大遅延時間は1590ms(790ms x2)です。

 モジュレーションディレイ 

最大遅延時間800ms。周波数特性5kHz。ディレイというよりコーラス/フランジャーのロングディレイ版という方が近いのかもしれません。サブサンリングで周波数特性を落とすことで遅延時間を延ばしています。

 コーラス 



 フランジャー 


 フェイザー 

musicdsp.orgのphaser.cを元にしたフェイザーです。RateとDepthの外にフィードバックとフィルタの段数切り替えができます。

 トレモロ 

普通のトレモロです。少し違いが分かり難いのですが、モード1が正弦波、モード2が矩形波です。

 リングモジュレーター 


 リバーブ 

freeverbを元にしたリバーブで、シュレーダーのリバーブレーターの実装です。コムフィルター8個、オールパスフィルター4個で構成されています。サブサンリングで周波数特性を落とすことで遅延時間を延ばしているので周波数特性は10kHzです。

 エフェクトなし 

STM32F103C8の12ビットADCで2MHzサンプリングしています。50倍オーバーサンプリングでサンプリングレート40kHz(f特20kHz)。DACは抵抗合成による16ビットDual PWM DACです。良く聞くと高音域が歪っぽい音になっていますが。$2マイコンボードで外部コーデック無しですからこんなもんでしょう。これがBlue Pillが出せる最高の普通の音の限界だと思います。

エフェクトプログラムは40kHzで処理関数を呼び出していますが、全てのディレイとリバーブはサブサンプリングで処理回数を減らしています。ディレイは処理回数を1/2に、アナログディレイとリバーブは処理回数を1/4にといった感じです。そうしないと遅延メモリが不足します。コーラス、フランジャー、フェイザーなどはメモリ不足の問題が無いので、そのまま40kHzで処理しています。


9600bpsのUART通信でコントロールできます。テキストデータでプログラム/パラメーターチェンジできるので、例えばArduinoでコントロールプログラムを作って外部からコントロールするということも出来ると思います。STM32は3.3Vですが、TX/RXピンは5Vトレラントなのでそのまま接続しても大丈夫だと思います。ただ機器が分離するのでラッチアップしないような配慮は必要かと思います。

コメント

このブログの人気の投稿

中国製ゲルマニウムトランジスタ

Aliexpressで購入したゲルマニウムトランジスタです。AC128のセカンドソース(らしきものw)です。最近の安い中華ゲルマエフェクターで使われているようです。10個で送料込み¥1000くらいでした。そもそもCANタイプのトランジスタは現行品でも高いので1個¥100ならお買い得でしょうか。 テスターでhfeを測定した結果 20,36,34,37,40,67,149,190,214,216, かなりのバラつき具合です。hfeが高いのも欲しかったので丁度良かったのですが・・・ 20とかは動くんでしょうか?

Blue Pill FX Projects~デジタルディレイ~

■$2の格安マイコンボードBlue Pill STM32を使って、E.ギター用のデジタルディレイを作りました。 モノラル-シングルエフェクトです。ノーマルディレイ、アナログディレイ、リバースディレイのどれか1つをトグルスイッチで切り替えられます。 ・最長ディレイタイム        ・ノーマルモード : 425ms (周波数特性:7kHz)       ・アナログモード : 800ms (周波数特性:1.5kHz)       ・リバースモード : 420ms (周波数特性:7kHz) ・消費電力 DC9V 55mA 音は普通のディレイです。ノーマルモードの周波数特性が7kHz(-6db)なのでBBDやPT2399よりはクリアな音です。S/NはPT2399ディレイと同じくらいです。 このデジタルエフェクターに使用した小型のマイコンボードです。海外のホビーマイコンユーザーの間でBlue Pill(青い錠剤)と呼ばれているものです。大きさ23mm x 55mmの基板でエフェクターケース(1590B/TD6-11-3)に余裕で入ります。Aliexpressなら$2(+送料)で手に入ります。日本国内ではAmazonやaitendoで取り扱いがあります。米国ではebayで見つかります。"STM32F103C8T6"で検索します。  マイコンボード のスペック   ■STMicroelectronics製STM32F103C8T6(Cortex-M3 32ビットARMマイコン) ■動作クロック 72MHz ■プログラムFlash 64k ■SRAM 20k ■ADC 12ビット 2系統 ■DACなし このMCUにはDACが内蔵されていません。そこでDual PWM DACという方法でアナログ信号を出力しています。疑似DACといったところでしょうか。2本の抵抗と1個のコンデンサでデジタル信号をアナログ信号へ変換する面白い回路です。 あと、このマイコンボードの他にプログラムを書き込む為のプログラムライターが必要になりますが、詳しくは別の記事で書いているので参照してください。プログラムライターもAliexpressでなら$2程度で入手できます。

Blue Pillマイコンボードへプログラムを書き込む (1)

 STM32CubeProgremmer  Blue Pillマイコンボードへブログラムを書き込むためには、まず書き込み用のソフトウェアが必要です。今回はSTマイクロ社の純正ソフトウェアSTM32CubeProgremmerを使います。このソフトウェアはSTマイクロ社のサイトからダウンロードできますが、ダウンロードする前にユーザー登録が必要になります。登録は無料です。利用についても全く無料ですが、ユーザー登録するとその後にちょこちょこと広告メールが送られてくるようになります。それが嫌な方は各自で対処してください。本音をいえばこの程度のソフトウェアはユーザー登録なしで公開して欲しいです。ちなみにフリーウェアではstm32flashというソフトウェアがあるのですが、今のところwin64版しかありません。 STM32CubeProgremmerのインストールは指示に従って行えば特に問題はないと思います。  プログラムの書き込む手順  Blue Pillマイコンボードのジャンパー設定をプログラム書き込みモードへ変更します。 USBシリアルモジュールとBlue Pillマイコンボードをケーブルで配線して、USBシリアルモジュールをパソコンと接続します。 STM32CubeProgrammerを起動してUARTとPortを設定します。 ・Prot番号(COM番号)はパソコンが自動で割り振るので上のスクショと同じ番号にはならないと思います。 ・パソコンでCOMポートを複数使用している場合は、ドロップダウンリストでPort番号を変更してください。 ・Portに"No COM...(No COM Detected)"と表示される場合は、USBシリアルモジュールがパソコンから認識されていないので、ドライバをインストールしてください。 ※充電専用のUSBケーブルは使用できません。100均で買ったUSBケーブルを使っている方は要注意です。 次にBlue Pillマイコンボードのリセットボタンを押してから、STM32CubeProgrammerのConnectボタンを押します。UART接続ではConnect(接続)ボタンを押す直前にマイコンボードのリセットするという約束があるので