// Pitchshift of input ( SynthDef("pitchshifter", { arg pitch=1, pitchDisp=1, timeDisp=0.5, amp=0.8, grain=0.5; var input, shift; input = AudioIn.ar([1,2]); // shift = PitchShift.ar(input, 0.5, pitch, pitchDisp, timeDisp, amp); shift = PitchShift.ar(input, grain, pitch, pitchDisp, timeDisp, amp); Out.ar(0, shift); }).writeDefFile; ) ////////////////////////////////////// GUI //////////////////////////////////////////////// ( var w, s, b1, b2, b3, sl1, sl2, sl3, sl4, sl5, rs1, twodsl1, twodsl2, pum1, msv1, sbs; s = Server.local; w = SCWindow("PitchShifter", Rect(100, 800, 600, 450)); w.front; b1 = SCButton(w, Rect(5, 0, 150, 24)); b1.states = [ // ["Start MyServer", Color.black, Color.green], ["Start MyServer"], // ["Stop MyServer", Color.white, Color.red], ["Stop MyServer", Color.white], ]; b1.action = { if (b1.value == 1, { s.boot; },{ s.quit; }); }; b2 = SCButton(w, Rect(5, 30, 150, 24)); b2.states = [ // ["Load SynthDef", Color.black, Color.green] ["Load SynthDef"] ]; b2.action = { s.sendSynthDef("pitchshifter"); }; b3 = SCButton(w, Rect(5, 60, 150, 24)); b3.states = [ // ["MyPlay", Color.black, Color.green], ["MyPlay"], ["MyStop", Color.white, Color.red], ]; b3.action = { arg view; if (b3.value == 1, { s.sendMsg("/s_new", "pitchshifter", 1000, 1, 0); },{ s.sendMsg("/n_free", 1000); }); }; sl1 = SCSlider(w, Rect(5, 100, 25, 300)); sl1.action = { var val; val = (4*sl1.value); val.postln; s.sendMsg("/n_set", 1000, "pitch", val); }; sl2 = SCSlider(w, Rect(35, 100, 25, 300)); sl2.action = { var val; val = (5*sl2.value); val.postln; s.sendMsg("/n_set", 1000, "pitchDisp", val); }; sl3 = SCSlider(w, Rect(65, 100, 25, 300)); sl3.action = { var val; val = ((sl3.value)/2); val.postln; s.sendMsg("/n_set", 1000, "timeDisp", val); }; sl4 = SCSlider(w, Rect(95, 100, 25, 300)); sl4.action = { var val; val = sl4.value; val.postln; s.sendMsg("/n_set", 1000, "amp", val); }; sl5 = SCSlider(w, Rect(125, 100, 25, 300)); sl5.action = { var val; val = sl5.value; val.postln; s.sendMsg("/n_set", 1000, "grain", val); }; rs1 = SCRangeSlider(w, Rect(155, 100, 25, 300)); rs1.action = { var val; val = rs1.value; val.postln; s.sendMsg("/n_set", 1000, "grain", val); }; twodsl1 = SC2DSlider(w, Rect(200, 5, 100, 100)); twodsl1.action = { var val; val = twodsl1.value; val.postln; s.sendMsg("/n_set", 1000, "grain", val); }; twodsl2 = SC2DSlider(w, Rect(310, 5, 100, 100)) .x_(0.5).y_(1); twodsl2.action = { var valx, valy; // val = twodsl2.value; valx = twodsl2.x; valy = twodsl2.y; valx.postln; valy.postln; s.sendMsg("/n_set", 1000, "grainx", valx, "grainy", valy); }; pum1 = SCPopUpMenu(w, Rect(200, 200, 150, 30)); pum1.action = { var val; val = pum1.value; val.postln; s.sendMsg("/n_set", 1000, "grain", val); }; l = [ "right view","right thinking","right mindfulness","right speech", "right action","right diligence","right concentration","right livelihood" ]; sbs = SCPopUpMenu(w,Rect(200, 250, 150, 25)); sbs.items = l; sbs.background_(Color.white); sbs.action = { arg sbs; [sbs.value, l.at(sbs.value)].postln; // .value returns the integer }; )