diff --git a/Source/envelope_component.cpp b/Source/envelope_component.cpp index 72b7206..c203928 100644 --- a/Source/envelope_component.cpp +++ b/Source/envelope_component.cpp @@ -339,6 +339,11 @@ bool EnvelopeComponent::keyPressed(const KeyPress & ev) r = f(m_envelope->m_transform_y_tilt,0.02); if (ev == 'H') r = f(m_envelope->m_transform_y_tilt,-0.02); + if (ev == 'V') + r = f(m_envelope->m_transform_y_sinus_freq,1.0); + if (ev == 'B') + r = f(m_envelope->m_transform_y_sinus_freq,-1.0); + m_envelope->m_transform_y_sinus_freq = jlimit(1.0,64.0, m_envelope->m_transform_y_sinus_freq); if (r==true) { repaint(); diff --git a/Source/jcdp_envelope.h b/Source/jcdp_envelope.h index c9d32a1..533e4f6 100644 --- a/Source/jcdp_envelope.h +++ b/Source/jcdp_envelope.h @@ -563,6 +563,7 @@ public: double m_transform_y_shift = 0.0; double m_transform_y_scale = 1.0; double m_transform_y_sinus = 0.0; + double m_transform_y_sinus_freq = 8.0; double m_transform_y_tilt = 0.0; inline double getTransformedValue(double x) { @@ -574,7 +575,8 @@ public: double v = GetInterpolatedNodeValue(temp); double diff = 0.5 - v; double scaled = 0.5 - m_transform_y_scale * diff; - double shifted = scaled + m_transform_y_shift + m_transform_y_sinus*sin(2*3.141592653*(x-m_transform_x_shift)*8.0); + double shifted = scaled + m_transform_y_shift + m_transform_y_sinus* + sin(2*3.141592653*(x-m_transform_x_shift)*m_transform_y_sinus_freq); double tiltline = 0.5+m_transform_y_tilt*x; double tilted = shifted+tiltline; return jlimit(0.0,1.0,tilted);