Synthesizer for Japanese five vowels with keyboard. 鍵盤と一緒になった日本語の5母音の合成器.

Dependencies:   BSP_DISCO_F746NG_patch_fixed BUTTON_GROUP LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Revision:
0:a98746e7a170
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MyClasses_Functions/Resonator.hpp	Wed Feb 24 13:00:12 2016 +0000
@@ -0,0 +1,47 @@
+//------------------------------------------------------------------------------
+//  音声合成で使う共振器(ヘッダ)
+//      作成者:三上直樹,2013/11/27 作成,(c)三上直樹 2013
+//------------------------------------------------------------------------------
+
+#include "mbed.h"
+
+#ifndef RESONATOR_HPP
+#define RESONATOR_HPP
+
+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