aboutsummaryrefslogtreecommitdiff
path: root/loquelic_ss.dsp
diff options
context:
space:
mode:
Diffstat (limited to 'loquelic_ss.dsp')
-rw-r--r--loquelic_ss.dsp28
1 files changed, 28 insertions, 0 deletions
diff --git a/loquelic_ss.dsp b/loquelic_ss.dsp
new file mode 100644
index 0000000..5e13b4e
--- /dev/null
+++ b/loquelic_ss.dsp
@@ -0,0 +1,28 @@
+import("stdfaust.lib");
+import("src/util.dsp");
+
+UIGroupOscA(x) = vgroup("Oscillator A", x);
+UIFreqA = UIGroupOscA(hslider("Frequency", 440.0, 20.0, 10000.0, 1));
+UIMorphA = UIGroupOscA(hslider("Morph", 0.5, 0.0, 1.0, 0.001));
+
+UIGroupOscB(x) = vgroup("Oscillator B", x);
+UIFreqB = UIGroupOscB(hslider("Frequency", 440.0, 20.0, 10000.0, 1));
+UIMorphB = UIGroupOscB(hslider("Morph", 0.5, 0.0, 1.0, 0.001));
+
+UIFoldGain = hslider("Fold", 1.0, 0.0, 5.0, 0.01);
+UIMod = hslider("Modulation", 0.0, 0.0, 1.0, 0.001);
+UIDamp = hslider("Damp", 0.0, 0.0, 1.0, 0.001);
+
+process = (oscA - a*oscC)/(1.0 + a^2 - 2*a*oscB) : *(UIFoldGain) : fold
+with {
+ a = UIDamp;
+ sinemorph(morph) = knee(morph) : sin(_*2.0*ma.PI);
+
+ tA = UIFreqA : phase + oscB*UIMod : fmod(_, 1.0);
+ tB = UIFreqB : phase + 0.25 : fmod(_, 1.0);
+ tC = tB - tA : fmod(_, 1.0);
+
+ oscA = tA : sinemorph(UIMorphA);
+ oscB = tB : sinemorph(UIMorphB);
+ oscC = tA - tB : sin(_*2.0+ma.PI);
+};