From 2434290915cda6ed855e4dc2249312153b995817 Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Thu, 9 Jun 2005 12:52:17 +0000 Subject: changed initialisation svn path=/trunk/externals/tb/; revision=3145 --- chaos/src/chaos_dsp.hpp | 138 +++++++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 65 deletions(-) (limited to 'chaos/src/chaos_dsp.hpp') diff --git a/chaos/src/chaos_dsp.hpp b/chaos/src/chaos_dsp.hpp index 879eb49..bb3c5fa 100644 --- a/chaos/src/chaos_dsp.hpp +++ b/chaos/src/chaos_dsp.hpp @@ -104,7 +104,7 @@ public: m_slopes[j] = 0; } - if( i == 2) + if(i == 2 && imethod != 2) { for (int j = 0; j != m_system->get_num_eq(); ++j) { @@ -125,9 +125,17 @@ public: { if( (f >= 0) && (f <= m_sr*0.5) ) { + if (m_freq == -1) + set_imethod(m_imethod); m_freq = f; m_invfreq = 1.f / f; } + else if (f == -1) + { + m_freq = -1; + + m_routine = &thisType::m_signal_; + } else post("frequency out of range"); } @@ -138,70 +146,70 @@ public: /* create constructor / destructor */ -#define CHAOS_DSP_INIT(SYSTEM, ATTRIBUTES) \ -FLEXT_HEADER(SYSTEM##_dsp, chaos_dsp) \ - \ -SYSTEM##_dsp(int argc, t_atom* argv ) \ -{ \ - m_sr = 44100; /* assume default sampling rate */ \ - m_system = new SYSTEM; \ - \ - int size = m_system->get_num_eq(); \ - \ - m_values = new t_float[size]; \ - m_slopes = new t_float[size]; \ - m_nextvalues = new t_float[size]; \ - m_nextmidpts = new t_float[size]; \ - m_curves = new t_float[size]; \ - \ - /* create inlets and zero arrays*/ \ - for (int i = 0; i != size; ++i) \ - { \ - AddOutSignal(); \ - m_values[i] = 0; \ - m_slopes[i] = 0; \ - m_nextvalues[i] = 0; \ - m_nextmidpts[i] = 0; \ - m_curves[i] = 0; \ - } \ - \ - FLEXT_ADDATTR_VAR("frequency", get_freq, set_freq); \ - FLEXT_ADDATTR_VAR("interpolation_method",get_imethod, set_imethod); \ - \ - if (argc > 0) \ - { \ - CHAOS_SYS_INIT(freq, GetAInt(argv[0])); \ - } \ - else \ - { \ - CHAOS_SYS_INIT(freq, 440); \ - } \ - \ - if (argc > 1) \ - { \ - CHAOS_SYS_INIT(imethod, GetAInt(argv[1])); \ - } \ - else \ - { \ - CHAOS_SYS_INIT(imethod, 0); \ - } \ - \ - m_phase = 0; \ - \ - ATTRIBUTES; \ -} \ - \ -~SYSTEM##_dsp() \ -{ \ - delete m_system; \ - delete m_values; \ - delete m_slopes; \ - delete m_nextvalues; \ - delete m_nextmidpts; \ - delete m_curves; \ -} \ - \ -FLEXT_ATTRVAR_F(m_freq); \ +#define CHAOS_DSP_INIT(SYSTEM, ATTRIBUTES) \ +FLEXT_HEADER(SYSTEM##_dsp, chaos_dsp) \ + \ +SYSTEM##_dsp(int argc, t_atom* argv ) \ +{ \ + m_sr = 44100; /* assume default sampling rate */ \ + m_system = new SYSTEM; \ + \ + int size = m_system->get_num_eq(); \ + \ + m_values = new t_float[size]; \ + m_slopes = new t_float[size]; \ + m_nextvalues = new t_float[size]; \ + m_nextmidpts = new t_float[size]; \ + m_curves = new t_float[size]; \ + \ + /* create inlets and zero arrays*/ \ + for (int i = 0; i != size; ++i) \ + { \ + AddOutSignal(); \ + m_values[i] = 0; \ + m_slopes[i] = 0; \ + m_nextvalues[i] = 0; \ + m_nextmidpts[i] = 0; \ + m_curves[i] = 0; \ + } \ + \ + FLEXT_ADDATTR_VAR("frequency", get_freq, set_freq); \ + FLEXT_ADDATTR_VAR("interpolation_method",get_imethod, set_imethod); \ + \ + if (argc > 0) \ + { \ + CHAOS_INIT(freq, GetAInt(argv[0])); \ + } \ + else \ + { \ + CHAOS_INIT(freq, 440); \ + } \ + \ + if (argc > 1) \ + { \ + CHAOS_INIT(imethod, GetAInt(argv[1])); \ + } \ + else \ + { \ + CHAOS_INIT(imethod, 0); \ + } \ + \ + m_phase = 0; \ + \ + ATTRIBUTES; \ +} \ + \ +~SYSTEM##_dsp() \ +{ \ + delete m_system; \ + delete m_values; \ + delete m_slopes; \ + delete m_nextvalues; \ + delete m_nextmidpts; \ + delete m_curves; \ +} \ + \ +FLEXT_ATTRVAR_F(m_freq); \ FLEXT_ATTRVAR_I(m_imethod); -- cgit v1.2.1