Vowel synthesizer using digital resonators. This program can run without LCD display. ディジタル共振器を使った合成母音ジェネレータ.LCD表示器なしでも動く.

Dependencies:   UITDSP_ADDA UIT_ACM1602NI UIT_AQM1602 mbed

Committer:
MikamiUitOpen
Date:
Sat Jul 25 07:10:11 2015 +0000
Revision:
5:0396de26b449
Parent:
Radiator.hpp@0:6c67a9387981
6

Who changed what in which revision?

UserRevisionLine numberNew 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