Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: F746_GUI F746_SAI_IO FrequencyResponseDrawer SD_PlayerSkeleton UIT_FFT_Real
Reverberator.hpp
00001 //-------------------------------------------------------------- 00002 // Reverberation generator 00003 // 00004 // 2017/04/10, Copyright (c) 2017 MIKAMI, Naoki 00005 //-------------------------------------------------------------- 00006 00007 #ifndef REVERBERATION_SYSTEM_HPP 00008 #define REVERBERATION_SYSTEM_HPP 00009 00010 #include "ReverbUnit.hpp" 00011 #include "ProcessingBase.hpp" 00012 00013 namespace Mikami 00014 { 00015 class Reverberator : public ProcessingBase 00016 { 00017 public: 00018 Reverberator(float gC = 0.8f, float gA = 0.6f) 00019 : G0_(1.0f - gC), 00020 DELAY_INIT_(6000), variableDelay_(6000), 00021 cmF1_(gC, 887+1500), cmF2_(gC, 1153+3000), 00022 cmF3_(gC, 1499+6000), 00023 apF1_(gA, 97), apF2_(gA, 131) {} 00024 00025 virtual float Execute(float sn) 00026 { 00027 float xn = G0_*sn; 00028 float yn = cmF1_.Execute(xn, variableDelay_/4) 00029 + cmF2_.Execute(xn, variableDelay_/2) 00030 + cmF3_.Execute(xn, variableDelay_); 00031 yn = apF2_.Execute(apF1_.Execute(yn)); 00032 yn = yn + xn; // add direct input signal 00033 return yn; 00034 } 00035 00036 void SetDelay(int n) { variableDelay_ = DELAY_INIT_ - n; } 00037 00038 private: 00039 const float G0_; 00040 const int DELAY_INIT_; 00041 int variableDelay_; 00042 00043 CombFilter cmF1_, cmF2_, cmF3_; 00044 AllPassFilter apF1_, apF2_; 00045 00046 // disallow copy constructor and assignment operator 00047 Reverberator(const Reverberator&); 00048 Reverberator& operator=(const Reverberator&); 00049 }; 00050 } 00051 #endif // REVERBERATION_SYSTEM_HPP
Generated on Tue Jul 12 2022 21:58:54 by
1.7.2