Demo program of digital signal processing: Variable LPF/HPF, Vocal canceller, Pitch shifter, Reverbrator. ディジタル信号処理のデモプログラム. 遮断周波数可変 LPF/HPF,ボーカルキャンセラ,ピッチシフタ,残響生成器.

Dependencies:   Array_Matrix F446_AD_DA UIT_AQM1602 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Reverbrator.hpp Source File

Reverbrator.hpp

00001 //--------------------------------------------------------------
00002 //  残響生成器
00003 //
00004 // 2017/01/31, Copyright (c) 2017 MIKAMI, Naoki
00005 //--------------------------------------------------------------
00006 
00007 #ifndef ECHO_SYSTEM_HPP
00008 #define ECHO_SYSTEM_HPP
00009 
00010 #include "ReverbUnit.hpp"
00011 
00012 class EchoSystem : public SignalProcessing
00013 {
00014 public:
00015     EchoSystem(float gC = 0.8f, float gA = 0.6f)
00016         : G0_(1.0f - gC),
00017           cmF1_(gC, 1759), cmF2_(gC, 1543),
00018           cmF3_(gC, 1319), cmF4_(gC, 1301),
00019           apF1_(gA, 241), apF2_(gA, 173) {}
00020     
00021     virtual float Execute(float xn1, float xn2)
00022     {
00023         float xn = G0_*(xn1 + xn2)*0.5f;
00024         float yn = cmF1_.Execute(xn) + cmF2_.Execute(xn)
00025                  + cmF3_.Execute(xn) + cmF4_.Execute(xn);
00026         yn = apF2_.Execute(apF1_.Execute(yn));
00027         yn = yn + xn;   // add direct input signal
00028         return yn;
00029     }
00030 
00031 private:
00032     const float G0_;
00033 
00034     CombFilter cmF1_, cmF2_, cmF3_, cmF4_;
00035     AllPassFilter apF1_, apF2_;
00036 };
00037 #endif  // ECHO_SYSTEM_HPP