1declare name "pitch-shifter"; 2declare version "1.0"; 3declare author "Grame"; 4declare license "BSD"; 5declare copyright "(c)GRAME 2006"; 6 7 //---------------------------- 8 // very simple real time pitch shifter 9 //---------------------------- 10 11import("music.lib"); 12 13transpose (w, x, s, sig) = 14 fdelay1s(d,sig)*fmin(d/x,1) + fdelay1s(d+w,sig)*(1-fmin(d/x,1)) 15 with { 16 i = 1 - pow(2, s/12); 17 d = i : (+ : +(w) : fmod(_,w)) ~ _; 18 }; 19 20pitchshifter = vgroup("Pitch Shifter", transpose( 21 hslider("window (samples)", 1000, 50, 10000, 1), 22 hslider("xfade (samples)", 10, 1, 10000, 1), 23 hslider("shift (semitones) ", 0, -12, +12, 0.1) 24 ) 25 ); 26 27 28//process = _ <: select2(checkbox("activate"), _, pitchshifter) <: _,_; 29process = pitchshifter; 30