@@ -40,7 +40,7 @@ AudioConnection c2(myEffect, 0, audioOutput, 1); | |||
AudioControlSGTL5000 audioShield; | |||
int t_ampx = 20000; | |||
float t_ampx = 0.8; | |||
int t_lox = 10; | |||
int t_hix = 22000; | |||
// Length of time for the sweep in seconds | |||
@@ -63,20 +63,20 @@ void setup(void) | |||
Serial.println("setup done"); | |||
if(!myEffect.begin(t_ampx,t_lox,t_hix,t_timex)) { | |||
if(!myEffect.play(t_ampx,t_lox,t_hix,t_timex)) { | |||
Serial.println("AudioSynthToneSweep - begin failed"); | |||
while(1); | |||
} | |||
// wait for the sweep to end | |||
while(myEffect.busy()); | |||
while(myEffect.isPlaying()); | |||
// and now reverse the sweep | |||
if(!myEffect.begin(t_ampx,t_hix,t_lox,t_timex)) { | |||
if(!myEffect.play(t_ampx,t_hix,t_lox,t_timex)) { | |||
Serial.println("AudioSynthToneSweep - begin failed"); | |||
while(1); | |||
} | |||
// wait for the sweep to end | |||
while(myEffect.busy()); | |||
while(myEffect.isPlaying()); | |||
Serial.println("Done"); | |||
} | |||
@@ -32,7 +32,7 @@ | |||
// Written by Pete (El Supremo) Feb 2014 | |||
boolean AudioSynthToneSweep::begin(short t_amp,int t_lo,int t_hi,float t_time) | |||
boolean AudioSynthToneSweep::play(float t_amp,int t_lo,int t_hi,float t_time) | |||
{ | |||
double tone_tmp; | |||
@@ -49,6 +49,7 @@ if(0) { | |||
} | |||
tone_amp = 0; | |||
if(t_amp < 0)return false; | |||
if(t_amp > 1)return false; | |||
if(t_lo < 1)return false; | |||
if(t_hi < 1)return false; | |||
if(t_hi >= 44100/2)return false; | |||
@@ -58,11 +59,8 @@ if(0) { | |||
tone_hi = t_hi; | |||
tone_phase = 0; | |||
tone_amp = t_amp; | |||
// Limit the output amplitude to prevent aliasing | |||
// until I can figure out why this "overtops" | |||
// above 29000. | |||
if(tone_amp > 29000)tone_amp = 29000; | |||
tone_amp = t_amp * 32767.0; | |||
tone_tmp = tone_hi - tone_lo; | |||
tone_sign = 1; | |||
tone_freq = tone_lo*0x100000000LL; | |||
@@ -78,7 +76,7 @@ if(0) { | |||
unsigned char AudioSynthToneSweep::busy(void) | |||
unsigned char AudioSynthToneSweep::isPlaying(void) | |||
{ | |||
return(sweep_busy); | |||
} |
@@ -35,9 +35,9 @@ public: | |||
AudioStream(0,NULL), sweep_busy(0) | |||
{ } | |||
boolean begin(short t_amp,int t_lo,int t_hi,float t_time); | |||
boolean play(float t_amp,int t_lo,int t_hi,float t_time); | |||
virtual void update(void); | |||
unsigned char busy(void); | |||
unsigned char isPlaying(void); | |||
private: | |||
short tone_amp; |