New directory tree, with preprocessor/ inside interpretor/.
[Faustine.git] / interpretor / preprocessor / faust-0.9.47mr3 / tools / faust2pd / examples / faust / pitch_shifter.dsp
diff --git a/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/pitch_shifter.dsp b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/pitch_shifter.dsp
new file mode 100644 (file)
index 0000000..013591d
--- /dev/null
@@ -0,0 +1,29 @@
+declare name           "pitch-shifter";
+declare version        "1.0";
+declare author                 "Grame";
+declare license        "BSD";
+declare copyright      "(c)GRAME 2006";
+
+ //----------------------------
+ // very simple real time pitch shifter
+ //----------------------------
+
+import("music.lib");
+
+transpose (w, x, s, sig)  =
+       fdelay1s(d,sig)*fmin(d/x,1) + fdelay1s(d+w,sig)*(1-fmin(d/x,1))
+               with {
+                       i = 1 - pow(2, s/12);
+                       d = i : (+ : +(w) : fmod(_,w)) ~ _;
+               };
+
+pitchshifter = vgroup("Pitch Shifter", transpose(
+                                                                       hslider("window (samples)", 1000, 50, 10000, 1),
+                                                                       hslider("xfade (samples)", 10, 1, 10000, 1),
+                                                                       hslider("shift (semitones) ", 0, -12, +12, 0.1)
+                                                                 )
+                               );
+
+
+//process = _ <: select2(checkbox("activate"), _, pitchshifter) <: _,_;
+process = pitchshifter;