Reverb system using singlae allpass filter class for ST Nucleo F401RE.

Dependencies:   UIT_ADDA mbed

Committer:
MikamiUitOpen
Date:
Sat Nov 15 06:31:26 2014 +0000
Revision:
3:fe6f1798a71e
Parent:
2:e1227bdb1ba5
4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:ff3a8918b1ad 1 //--------------------------------------------------------------
MikamiUitOpen 0:ff3a8918b1ad 2 // Reverb system using all-pass filter dlass
MikamiUitOpen 2:e1227bdb1ba5 3 // 2014/11/12, Copyright (c) 2014 MIKAMI, Naoki
MikamiUitOpen 0:ff3a8918b1ad 4 //--------------------------------------------------------------
MikamiUitOpen 0:ff3a8918b1ad 5
MikamiUitOpen 0:ff3a8918b1ad 6 #include "mbed.h"
MikamiUitOpen 0:ff3a8918b1ad 7
MikamiUitOpen 0:ff3a8918b1ad 8 #include "ADC_Base.hpp" // for ADC not using interrupt
MikamiUitOpen 0:ff3a8918b1ad 9 #include "DAC_MCP4922.hpp" // for DAC MCP4922
MikamiUitOpen 0:ff3a8918b1ad 10
MikamiUitOpen 0:ff3a8918b1ad 11 #include "allpass_filter.hpp"
MikamiUitOpen 0:ff3a8918b1ad 12
MikamiUitOpen 0:ff3a8918b1ad 13 using namespace Mikami;
MikamiUitOpen 0:ff3a8918b1ad 14
MikamiUitOpen 0:ff3a8918b1ad 15 const int FS_ = 12000; // Sampling frequency: 12 kHz
MikamiUitOpen 0:ff3a8918b1ad 16 ADC_Base adc_(A0, FS_); // for AD
MikamiUitOpen 0:ff3a8918b1ad 17 DAC_MCP4922 myDac_; // for DA
MikamiUitOpen 0:ff3a8918b1ad 18
MikamiUitOpen 0:ff3a8918b1ad 19 const float G_A_ = 0.6f;
MikamiUitOpen 0:ff3a8918b1ad 20 AllpassFilter<1153> allpass_(G_A_);
MikamiUitOpen 0:ff3a8918b1ad 21
MikamiUitOpen 0:ff3a8918b1ad 22 DigitalIn sw_(D2, PullDown);
MikamiUitOpen 0:ff3a8918b1ad 23
MikamiUitOpen 0:ff3a8918b1ad 24 int main()
MikamiUitOpen 0:ff3a8918b1ad 25 {
MikamiUitOpen 2:e1227bdb1ba5 26 myDac_.ScfClockTim3(500000); // cutoff frequency: 5 kHz
MikamiUitOpen 0:ff3a8918b1ad 27 while (true)
MikamiUitOpen 0:ff3a8918b1ad 28 {
MikamiUitOpen 0:ff3a8918b1ad 29 float xn = adc_.Read(); // Read from A0
MikamiUitOpen 0:ff3a8918b1ad 30 //-----------------------------------------------
MikamiUitOpen 0:ff3a8918b1ad 31
MikamiUitOpen 0:ff3a8918b1ad 32 float yn;
MikamiUitOpen 0:ff3a8918b1ad 33 if (sw_.read() == 1) yn = allpass_.Execute(xn);
MikamiUitOpen 0:ff3a8918b1ad 34 else yn = xn;
MikamiUitOpen 0:ff3a8918b1ad 35
MikamiUitOpen 0:ff3a8918b1ad 36 //-----------------------------------------------
MikamiUitOpen 0:ff3a8918b1ad 37 myDac_.Write(yn); // Write to DAC
MikamiUitOpen 0:ff3a8918b1ad 38 }
MikamiUitOpen 0:ff3a8918b1ad 39 }