不韋 呂
/
UIT2_ReverbCombClass
Reverb system using single comb filter class for ST Nucleo F401RE.
main.cpp@0:47e72130375e, 2014-10-31 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Fri Oct 31 07:37:36 2014 +0000
- Revision:
- 0:47e72130375e
- Child:
- 1:b3a60a05da72
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:47e72130375e | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 2 | // Reverb system using comb filter |
MikamiUitOpen | 0:47e72130375e | 3 | // 2014/10/31, Copyright (c) 2014 MIKAMI, Naoki |
MikamiUitOpen | 0:47e72130375e | 4 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 5 | |
MikamiUitOpen | 0:47e72130375e | 6 | #include "mbed.h" |
MikamiUitOpen | 0:47e72130375e | 7 | |
MikamiUitOpen | 0:47e72130375e | 8 | #include "ADC_Base.hpp" // for ADC not using interrupt |
MikamiUitOpen | 0:47e72130375e | 9 | #include "DAC_MCP4922.hpp" // for DAC MCP4922 |
MikamiUitOpen | 0:47e72130375e | 10 | #include "ScfClockTim3.hpp" // for clock supplied to SCF |
MikamiUitOpen | 0:47e72130375e | 11 | |
MikamiUitOpen | 0:47e72130375e | 12 | #include "comb_filter.hpp" |
MikamiUitOpen | 0:47e72130375e | 13 | |
MikamiUitOpen | 0:47e72130375e | 14 | using namespace Mikami; |
MikamiUitOpen | 0:47e72130375e | 15 | |
MikamiUitOpen | 0:47e72130375e | 16 | const int FS_ = 12000; // Sampling frequency: 12 kHz |
MikamiUitOpen | 0:47e72130375e | 17 | ADC_Base adc_(A0, FS_); // for AD |
MikamiUitOpen | 0:47e72130375e | 18 | DAC_MCP4922 myDac_; // for DA |
MikamiUitOpen | 0:47e72130375e | 19 | |
MikamiUitOpen | 0:47e72130375e | 20 | const float G_C_ = 0.8f; |
MikamiUitOpen | 0:47e72130375e | 21 | const float G0_ = 1.0f - G_C_; |
MikamiUitOpen | 0:47e72130375e | 22 | CombFilter<1153> comb_(G_C_); |
MikamiUitOpen | 0:47e72130375e | 23 | |
MikamiUitOpen | 0:47e72130375e | 24 | DigitalIn sw_(D2, PullDown); |
MikamiUitOpen | 0:47e72130375e | 25 | |
MikamiUitOpen | 0:47e72130375e | 26 | int main() |
MikamiUitOpen | 0:47e72130375e | 27 | { |
MikamiUitOpen | 0:47e72130375e | 28 | |
MikamiUitOpen | 0:47e72130375e | 29 | |
MikamiUitOpen | 0:47e72130375e | 30 | ScfClockTim3(500000); // cutoff frequency: 5 kHz |
MikamiUitOpen | 0:47e72130375e | 31 | while (true) |
MikamiUitOpen | 0:47e72130375e | 32 | { |
MikamiUitOpen | 0:47e72130375e | 33 | float xn = adc_.Read(); // Read from A0 |
MikamiUitOpen | 0:47e72130375e | 34 | //----------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 35 | |
MikamiUitOpen | 0:47e72130375e | 36 | float yn; |
MikamiUitOpen | 0:47e72130375e | 37 | if (sw_.read() == 1) yn = comb_.Execute(G0_*xn); |
MikamiUitOpen | 0:47e72130375e | 38 | else yn = xn; |
MikamiUitOpen | 0:47e72130375e | 39 | |
MikamiUitOpen | 0:47e72130375e | 40 | //----------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 41 | myDac_.Write(yn); // Write to DAC |
MikamiUitOpen | 0:47e72130375e | 42 | } |
MikamiUitOpen | 0:47e72130375e | 43 | } |
MikamiUitOpen | 0:47e72130375e | 44 |