aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/chaos_dsp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chaos/src/chaos_dsp.cpp')
-rw-r--r--chaos/src/chaos_dsp.cpp171
1 files changed, 0 insertions, 171 deletions
diff --git a/chaos/src/chaos_dsp.cpp b/chaos/src/chaos_dsp.cpp
index 790be06..2040312 100644
--- a/chaos/src/chaos_dsp.cpp
+++ b/chaos/src/chaos_dsp.cpp
@@ -20,174 +20,3 @@
#include "chaos_dsp.hpp"
-
-void chaos_dsp::m_signal(int n, t_sample *const *insigs,
- t_sample *const *outsigs)
-{
- if (m_freq >= m_sr * 0.5)
- {
- m_signal_(n, insigs, outsigs);
- return;
- }
-
- switch (m_method)
- {
- case 0:
- m_signal_n(n, insigs, outsigs);
- return;
- case 1:
- m_signal_l(n, insigs, outsigs);
- return;
- case 2:
- m_signal_c(n, insigs, outsigs);
- return;
- }
-}
-
-void chaos_dsp::m_signal_(int n, t_sample *const *insigs,
- t_sample *const *outsigs)
-{
- int outlets = m_system->get_num_eq();
-
- for (int i = 0; i!=n; ++i)
- {
- m_system->m_step();
- for (int j = 0; j != outlets; ++j)
- {
- outsigs[j][i] = m_system->get_data(j);
- }
- }
-
-}
-
-void chaos_dsp::m_signal_n(int n, t_sample *const *insigs,
- t_sample *const *outsigs)
-{
- int outlets = m_system->get_num_eq();
-
- int phase = m_phase;
-
- int i = 0;
-
- while (n)
- {
- if (m_phase == 0)
- {
- m_system->m_step();
- phase = int (m_sr / m_freq);
- }
-
- int next = (phase < n) ? phase : n;
- n -= next;
- phase -=next;
-
- while (next--)
- {
- for (int j = 0; j != outlets; ++j)
- {
- outsigs[j][i] = m_system->get_data(j);
- }
- ++i;
- }
- }
- m_phase = phase;
-}
-
-
-/* linear and cubic interpolation adapted from supercollider by James McCartney */
-
-void chaos_dsp::m_signal_l(int n, t_sample *const *insigs,
- t_sample *const *outsigs)
-{
- int outlets = m_system->get_num_eq();
-
- int phase = m_phase;
-
- int i = 0;
-
- while (n)
- {
- if (m_phase == 0)
- {
- m_system->m_step();
- phase = int (m_sr / m_freq);
-
- for (int j = 0; j != outlets; ++j)
- m_slopes[j] = (m_system->get_data(j) - m_values[j]) / phase;
- }
-
- int next = (phase < n) ? phase : n;
- n -= next;
- phase -=next;
-
- while (next--)
- {
- for (int j = 0; j != outlets; ++j)
- {
- outsigs[j][i] = m_values[j];
- m_values[j]+=m_slopes[j];
- }
- ++i;
- }
- }
- m_phase = phase;
-}
-
-
-void chaos_dsp::m_signal_c(int n, t_sample *const *insigs,
- t_sample *const *outsigs)
-{
- int outlets = m_system->get_num_eq();
-
- int phase = m_phase;
-
- int i = 0;
-
- while (n)
- {
- if (m_phase == 0)
- {
- m_system->m_step();
- phase = int (m_sr / m_freq);
- phase = (phase > 2) ? phase : 2;
-
- for (int j = 0; j != outlets; ++j)
- {
- t_sample value = m_nextvalues[j];
- m_nextvalues[j]= m_system->get_data(j);
-
- m_values[j] = m_nextmidpts[j];
- m_nextmidpts[j] = (m_values[j] + value) * 0.5f;
-
- float fseglen = (float)phase;
- m_curves[j] = 2.f * (m_nextmidpts[j] - m_values[j] - fseglen * m_slopes[j])
- / (fseglen * fseglen + fseglen);
-
- m_values[j] = value;
- }
- }
-
- int next = (phase < n) ? phase : n;
- n -= next;
- phase -=next;
-
- while (next--)
- {
- for (int j = 0; j != outlets; ++j)
- {
- outsigs[j][i] = m_values[j];
- m_slopes[j]+=m_curves[j];
- m_values[j]+=m_slopes[j];
- }
- ++i;
- }
- }
- m_phase = phase;
-}
-
-
-void chaos_dsp::m_dsp(int n, t_sample *const *insigs,
- t_sample *const *outsigs)
-{
- m_sr = Samplerate();
-}