![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Vowel synthesizer using digital resonators. This program can run without LCD display. ディジタル共振器を使った合成母音ジェネレータ.LCD表示器なしでも動く.
Dependencies: UITDSP_ADDA UIT_ACM1602NI UIT_AQM1602 mbed
Diff: Synthesizer/Resonator.hpp
- Revision:
- 5:0396de26b449
- Parent:
- 4:dd2ec72068d0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Synthesizer/Resonator.hpp Sat Jul 25 07:10:11 2015 +0000 @@ -0,0 +1,52 @@ +//------------------------------------------------------------------------------ +// 音声合成で使う共振器(ヘッダ) +// 作成者:三上直樹,2013/11/27 作成,(c)三上直樹 2013 +//------------------------------------------------------------------------------ + +#include "mbed.h" + +#ifndef RESONATOR_HPP +#define RESONATOR_HPP + +namespace Mikami +{ + class Resonator + { + private: + static float piT_; + float a1_, a2_, b0_; + float yn1_, yn2_; + + // コンストラクタに共通な初期化 + void Initialize(float fr, float bw, float fs); + + public: + // 共振周波数と帯域幅に対応する構造体 + struct FrBw { float fr, bw; }; + + // デフォルト・コンストラクタ + Resonator() {} + + // 初期化を行うコンストラクタ + Resonator(float fr, float bw, float fs) + { Initialize(fr, bw, fs); } + + // 初期化を行うコンストラクタ(構造体使用) + Resonator(FrBw fb, float fs) + { Initialize(fb.fr, fb.bw, fs); } + + // 共振器のパラメータの設定 + void Set(float fr, float bw); + + // 共振器のパラメータの設定(構造体使用) + void Set(FrBw fb) { Set(fb.fr, fb.bw); } + + // 内部の遅延器をクリア + void Clear() { yn1_ = 0; yn2_ = 0; } + + // 共振器に対応する処理の実行 + float Execute(float xin); + }; +} +#endif // RESONATOR_HPP +