diff --git a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C index 102a7ff..5827a54 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C +++ b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C @@ -104,7 +104,9 @@ OscillatorPluginGUI::OscillatorPluginGUI(int w, int h,OscillatorPlugin *o,Channe SpiralPluginGUI(w,h,o,ch), pixmap_Square(image_Square), pixmap_Noise(image_Noise), -pixmap_Saw(image_Saw) +pixmap_Saw(image_Saw), +m_FineFreq(0), +m_Octave(0) { ShapeSquare = new Fl_Check_Button(5, 15, 55, 30); ShapeSquare->type(102); @@ -247,7 +249,9 @@ void OscillatorPluginGUI::UpdateValues(SpiralPlugin *o) char str[10]; float fr = 110.0f * Plugin->GetFineFreq(); + m_FineFreq=Plugin->GetFineFreq(); int oc = Plugin->GetOctave(); + m_Octave = oc; if (oc > 0) fr *= 1 << oc; if (oc < 0) fr /= 1 << (-oc); sprintf(str,"%4.1f Hz", fr); @@ -267,12 +271,13 @@ inline void OscillatorPluginGUI::cb_Freq_i(Fl_Knob* o, void* v) { char str[10]; m_GUICH->Set("Octave",(int)o->value()-3); - //float fr = 110.0f * m_Plugin->GetFineFreq(); - //int oc = m_Plugin->GetOctave(); - //if (oc > 0) fr *= 1 << oc; - //if (oc < 0) fr /= 1 << (-oc); - //sprintf(str,"%4.1f Hz", fr); - //m_out_freq->value(str); + m_Octave = (int)o->value()-3; + float fr = 110.0f * m_FineFreq; + int oc = m_Octave; + if (oc > 0) fr *= 1 << oc; + if (oc < 0) fr /= 1 << (-oc); + sprintf(str,"%4.1f Hz", fr); + m_out_freq->value(str); } void OscillatorPluginGUI::cb_Freq(Fl_Knob* o, void* v) @@ -280,14 +285,15 @@ void OscillatorPluginGUI::cb_Freq(Fl_Knob* o, void* v) inline void OscillatorPluginGUI::cb_FineTune_i(Fl_Knob* o, void* v) { -char str[10]; - m_GUICH->Set("FineFreq",o->value()*o->value()); - //float fr = 110.0f * m_Plugin->GetFineFreq(); - //int oc = m_Plugin->GetOctave(); - //if (oc > 0) fr *= 1 << oc; - //if (oc < 0) fr /= 1 << (-oc); - //sprintf(str,"%4.1f Hz", fr); - //m_out_freq->value(str); + char str[10]; + m_GUICH->Set("FineFreq",(float)(o->value()*o->value())); + m_FineFreq=(float)(o->value()*o->value()); + float fr = 110.0f * m_FineFreq; + int oc = m_Octave; + if (oc > 0) fr *= 1 << oc; + if (oc < 0) fr /= 1 << (-oc); + sprintf(str,"%4.1f Hz", fr); + m_out_freq->value(str); } void OscillatorPluginGUI::cb_FineTune(Fl_Knob* o, void* v) @@ -295,7 +301,7 @@ void OscillatorPluginGUI::cb_FineTune(Fl_Knob* o, void* v) inline void OscillatorPluginGUI::cb_PulseWidth_i(Fl_Slider* o, void* v) { -char str[10]; + char str[10]; m_GUICH->Set("PulseWidth",o->value()); sprintf(str,"%4.0f %%", 100*o->value()); m_out_pulseW->value(str); @@ -321,7 +327,7 @@ void OscillatorPluginGUI::cb_Noise(Fl_Check_Button* o, void* v) inline void OscillatorPluginGUI::cb_SHLen_i(Fl_Slider* o, void* v) { -char str[10]; + char str[10]; m_GUICH->Set("SHLen",0.2f-o->value()); sprintf(str,"%4.3f s", 0.2f-o->value()); m_out_SHlen->value(str); @@ -332,7 +338,7 @@ void OscillatorPluginGUI::cb_SHLen(Fl_Slider* o, void* v) inline void OscillatorPluginGUI::cb_ModAmount_i(Fl_Knob* o, void* v) { -char str[10]; + char str[10]; m_GUICH->Set("ModAmount",o->value()); sprintf(str,"%4.0f %%", 100*o->value()); m_out_mod->value(str); diff --git a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h index bd602f0..87f5e33 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h +++ b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h @@ -56,6 +56,9 @@ private: Fl_Output *m_out_pulseW; Fl_Output *m_out_SHlen; + float m_FineFreq; + int m_Octave; + //// Callbacks //// inline void cb_Freq_i(Fl_Knob* o, void* v); static void cb_Freq(Fl_Knob*, void*); diff --git a/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C b/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C index 0a4df30..56292a1 100644 --- a/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C +++ b/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C @@ -233,7 +233,9 @@ pixmap_Tri(image_Tri), pixmap_Sine(image_Sine), pixmap_Pulse1(image_Pulse1), pixmap_Pulse2(image_Pulse2), -pixmap_InvSine(image_InvSine) +pixmap_InvSine(image_InvSine), +m_FineFreq(0), +m_Octave(0) { ShapeSine = new Fl_Check_Button(5, 15, 55, 30); ShapeSine->type(102); @@ -385,7 +387,9 @@ void WaveTablePluginGUI::UpdateValues(SpiralPlugin *o) char str[10]; float fr = 110.0f * Plugin->GetFinefreq(); + m_FineFreq=Plugin->GetFinefreq(); int oc = Plugin->GetOctave(); + m_Octave = oc; if (oc > 0) fr *= 1 << oc; if (oc < 0) fr /= 1 << (-oc); sprintf(str,"%4.1f Hz", fr); @@ -401,12 +405,13 @@ inline void WaveTablePluginGUI::cb_Freq_i(Fl_Knob* o, void* v) { char str[10]; m_GUICH->Set("Octave",(int)o->value()-3); - //float fr = 110.0f * m_Plugin->GetFineFreq(); - //int oc = m_Plugin->GetOctave(); - //if (oc > 0) fr *= 1 << oc; - //if (oc < 0) fr /= 1 << (-oc); - //sprintf(str,"%4.1f Hz", fr); - //m_out_freq->value(str); + m_Octave=(int)o->value()-3; + float fr = 110.0f * m_FineFreq; + int oc = m_Octave; + if (oc > 0) fr *= 1 << oc; + if (oc < 0) fr /= 1 << (-oc); + sprintf(str,"%4.1f Hz", fr); + m_out_freq->value(str); } void WaveTablePluginGUI::cb_Freq(Fl_Knob* o, void* v) { ((WaveTablePluginGUI*)(o->parent()))->cb_Freq_i(o,v); } @@ -415,13 +420,15 @@ inline void WaveTablePluginGUI::cb_FineTune_i(Fl_Knob* o, void* v) { char str[10]; m_GUICH->Set("FineFreq",(float)(o->value()*o->value())); - //float fr = 110.0f * m_Plugin->GetFineFreq(); - //int oc = m_Plugin->GetOctave(); - //if (oc > 0) fr *= 1 << oc; - //if (oc < 0) fr /= 1 << (-oc); - //sprintf(str,"%4.1f Hz", fr); - //m_out_freq->value(str); + m_FineFreq=(float)(o->value()*o->value()); + float fr = 110.0f * m_FineFreq; + int oc = m_Octave; + if (oc > 0) fr *= 1 << oc; + if (oc < 0) fr /= 1 << (-oc); + sprintf(str,"%4.1f Hz", fr); + m_out_freq->value(str); } + void WaveTablePluginGUI::cb_FineTune(Fl_Knob* o, void* v) { ((WaveTablePluginGUI*)(o->parent()))->cb_FineTune_i(o,v); } diff --git a/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.h b/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.h index ce84290..f4906f5 100644 --- a/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.h +++ b/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.h @@ -62,6 +62,9 @@ private: Fl_Output *m_out_freq; Fl_Output *m_out_mod; + float m_FineFreq; + int m_Octave; + //// Callbacks //// inline void cb_Freq_i(Fl_Knob* o, void* v); static void cb_Freq(Fl_Knob*, void*);