Vowel synthesizer using digital resonators. This program can run without LCD display. ディジタル共振器を使った合成母音ジェネレータ.LCD表示器なしでも動く.
Dependencies: UITDSP_ADDA UIT_ACM1602NI UIT_AQM1602 mbed
Radiator.hpp@0:6c67a9387981, 2014-12-02 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Tue Dec 02 00:06:08 2014 +0000
- Revision:
- 0:6c67a9387981
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:6c67a9387981 | 1 | //------------------------------------------------------------------------------ |
MikamiUitOpen | 0:6c67a9387981 | 2 | // 口からの放射の効果(ヘッダ) |
MikamiUitOpen | 0:6c67a9387981 | 3 | // 作成者:三上直樹,2013/11/26 作成,(c)三上直樹 2013 |
MikamiUitOpen | 0:6c67a9387981 | 4 | //------------------------------------------------------------------------------ |
MikamiUitOpen | 0:6c67a9387981 | 5 | |
MikamiUitOpen | 0:6c67a9387981 | 6 | #include "mbed.h" |
MikamiUitOpen | 0:6c67a9387981 | 7 | |
MikamiUitOpen | 0:6c67a9387981 | 8 | #ifndef RADIATOR_HPP |
MikamiUitOpen | 0:6c67a9387981 | 9 | #define RADIATOR_HPP |
MikamiUitOpen | 0:6c67a9387981 | 10 | |
MikamiUitOpen | 0:6c67a9387981 | 11 | namespace Mikami |
MikamiUitOpen | 0:6c67a9387981 | 12 | { |
MikamiUitOpen | 0:6c67a9387981 | 13 | class Radiator |
MikamiUitOpen | 0:6c67a9387981 | 14 | { |
MikamiUitOpen | 0:6c67a9387981 | 15 | private: |
MikamiUitOpen | 0:6c67a9387981 | 16 | const float C1_; |
MikamiUitOpen | 0:6c67a9387981 | 17 | float xnM1_; |
MikamiUitOpen | 0:6c67a9387981 | 18 | |
MikamiUitOpen | 0:6c67a9387981 | 19 | // コピー・コンストラクタの使用禁止 |
MikamiUitOpen | 0:6c67a9387981 | 20 | Radiator(const Radiator& g); |
MikamiUitOpen | 0:6c67a9387981 | 21 | // 代入演算子の使用禁止 |
MikamiUitOpen | 0:6c67a9387981 | 22 | Radiator& operator=(const Radiator& g); |
MikamiUitOpen | 0:6c67a9387981 | 23 | |
MikamiUitOpen | 0:6c67a9387981 | 24 | public: |
MikamiUitOpen | 0:6c67a9387981 | 25 | // デフォルト・コンストラクタ |
MikamiUitOpen | 0:6c67a9387981 | 26 | explicit Radiator(float c1 = 1.0f) : C1_(c1) { Clear(); } |
MikamiUitOpen | 0:6c67a9387981 | 27 | |
MikamiUitOpen | 0:6c67a9387981 | 28 | // 差分に対応する処理の実行 |
MikamiUitOpen | 0:6c67a9387981 | 29 | float Execute(float xin) |
MikamiUitOpen | 0:6c67a9387981 | 30 | { |
MikamiUitOpen | 0:6c67a9387981 | 31 | float yn = xin - C1_*xnM1_; |
MikamiUitOpen | 0:6c67a9387981 | 32 | xnM1_ = xin; // x[n-1] ← x[n] |
MikamiUitOpen | 0:6c67a9387981 | 33 | return yn; |
MikamiUitOpen | 0:6c67a9387981 | 34 | } |
MikamiUitOpen | 0:6c67a9387981 | 35 | |
MikamiUitOpen | 0:6c67a9387981 | 36 | // 内部の遅延器のクリア |
MikamiUitOpen | 0:6c67a9387981 | 37 | void Clear() { xnM1_ = 0; } |
MikamiUitOpen | 0:6c67a9387981 | 38 | }; |
MikamiUitOpen | 0:6c67a9387981 | 39 | } |
MikamiUitOpen | 0:6c67a9387981 | 40 | #endif // RADIATOR_HPP |