From 1b3e605884cd361718ed3999c343fe5634d9de86 Mon Sep 17 00:00:00 2001 From: Raphael Forment Date: Thu, 4 Jan 2024 14:59:11 +0100 Subject: [PATCH] partial rewrite of core synthdefs --- Classes/BuboPlotTree.sc | 5 ++ Classes/Configuration/Synthdefs.scd | 103 +++++++++++++--------------- 2 files changed, 51 insertions(+), 57 deletions(-) create mode 100644 Classes/BuboPlotTree.sc diff --git a/Classes/BuboPlotTree.sc b/Classes/BuboPlotTree.sc new file mode 100644 index 0000000..6ee8174 --- /dev/null +++ b/Classes/BuboPlotTree.sc @@ -0,0 +1,5 @@ +PlotTree { + *new { + ^Server.default.plotTree.window.alwaysOnTop_(true); + } +} diff --git a/Classes/Configuration/Synthdefs.scd b/Classes/Configuration/Synthdefs.scd index a851910..d2df77e 100644 --- a/Classes/Configuration/Synthdefs.scd +++ b/Classes/Configuration/Synthdefs.scd @@ -120,21 +120,6 @@ f.vardel = { d.kick1 = z; ); -( - z = SynthDef(\braids, {|out=0,freq=440,amp=0.5,sustain=1,pan=0,begin=0,end=1,speed=1,accelerate=0,timbre=0.5,color=0.5,model=0| - var envLength = sustain*(end-begin)/speed; - var line = Line.ar(begin, end, envLength, doneAction: Done.freeSelf); - var env = Env.asr; - var volume = IEnvGen.ar(env, line) * amp; - var sig; - - freq = max(0, freq * speed * (1 + (accelerate * line))); - sig = MiBraids.ar(pitch: freq.cpsmidi, timbre: timbre, color: color, model: model); - Out.ar(out, Pan2.ar(sig * volume, pan)); - }).add; - d.braids = z; -); - ( z = SynthDef(\omi, {|out=0,freq=440,amp=0.5,sustain=1,pan=0,begin=0,end=1,speed=1,accelerate=0| var envLength = sustain*(end-begin)/speed; @@ -163,14 +148,29 @@ f.vardel = { 'snare', 'hat' ].do({arg name, index; var synth; - synth = SynthDef(name, {|out=0,freq=440,sustain=1,pan=0,begin=0,end=1,speed=1,accelerate=0, - amp=1, timbre=0.5, harm=0.5,morph=0.5,level=1,lpgdecay=0,lpgcolour=0,mode=0| - var envLength = sustain*(end-begin)/speed; - var line = Line.ar(begin, end, envLength, doneAction: Done.freeSelf); - var env = Env.asr; - var volume = IEnvGen.ar(env, line) * amp; + synth = SynthDef(name, { + arg out, + freq=440, + attack=0.01, + decay=0.3, + sustain=0.5, + release=1.0, + pan=0, + speed=1, + accelerate=0, + amp=1, + alt=1, + timbre=0.5, + harm=0.5, + morph=0.5, + level=1, + gate=1, + lpgdecay=0, + lpgcolour=0, + mode=0; + var env = EnvGen.ar(Env.adsr(attack, decay, sustain, release, curve: [2, -4, -4]), doneAction: Done.freeSelf, gate: gate); var sig; - freq = max(0, freq * speed * (1 + (accelerate * line))); + freq = max(0, freq * speed * (1 + (accelerate * env))); sig = MiPlaits.ar( pitch: freq.cpsmidi, timbre: timbre, @@ -181,13 +181,15 @@ f.vardel = { decay: lpgdecay, lpg_colour: lpgcolour, ); - sig = Select.ar(mode, sig); - Out.ar(out, Pan2.ar(sig * volume, pan)); + sig = Pan2.ar(sig[0], pan); + sig = sig * env * amp; + OffsetOut.ar(out, sig); }).add; d.put(name, synth); }); ); + ( ['csaw', 'morph', 'saw_square', 'sine_triangle', 'buzz', 'square_sub', 'saw_sub', 'square_sync', @@ -204,46 +206,33 @@ f.vardel = { 'question_mark'].do({ arg name, index; var synth; - synth = SynthDef(name, {|out=0,freq=440,amp=1,sustain=1,pan=0,begin=0,end=1,speed=1,accelerate=0,timbre=0.5,color=0.5,ws=0,bits=0, resamp=0, decim=32| - var envLength = sustain*(end-begin)/speed; - var line = Line.ar(begin, end, envLength, doneAction: Done.freeSelf); - var env = Env.asr; - var volume = IEnvGen.ar(env, line) * amp; + synth = SynthDef(name, { + arg out, + freq=440, + amp=1, + attack=0.01, + decay=0.3, + sustain=0.5, + release=1.0, + pan=0,begin=0, + end=1,speed=1, + accelerate=0, + timbre=0.5, + color=0.5, + ws=0,bits=0, + resamp=0, + decim=32, + gate=1; var sig; - - freq = max(0, freq * speed * (1 + (accelerate * line))); + var env = EnvGen.ar(Env.adsr(attack, decay, sustain, release, curve: [2, -4, -4]), doneAction: Done.freeSelf, gate: gate); + freq = max(0, freq * speed * (1 + (accelerate * env))); sig = MiBraids.ar(pitch: freq.cpsmidi, timbre: timbre, resamp: 0, decim: decim, color: color, model: index, ws: ws, bits:bits); - Out.ar(out, Pan2.ar(sig * volume, pan)); + Out.ar(out, Pan2.ar(sig * env * amp, pan)); }).add; d.put(name, synth); }); ); -( - z = SynthDef(\plaits, {|out=0,freq=440,sustain=1,pan=0,begin=0,end=1,speed=1,accelerate=0, - amp=0.5,timbre=0.5,engine=0,harm=0.5,morph=0.5,level=1,lpgdecay=0,lpgcolour=0,mode=0| - var envLength = sustain*(end-begin)/speed; - var line = Line.ar(begin, end, envLength, doneAction: Done.freeSelf); - var env = Env.asr; - var volume = IEnvGen.ar(env, line) * amp; - var sig; - freq = max(0, freq * speed * (1 + (accelerate * line))); - sig = MiPlaits.ar( - pitch: freq.cpsmidi, - timbre: timbre, - harm: harm, - engine: engine, - morph: morph, - level: level, - decay: lpgdecay, - lpg_colour: lpgcolour, - ); - sig = Select.ar(mode, sig); - Out.ar(out, Pan2.ar(sig * volume, pan)); - }).add; - d.plaits = z; -); - ( z = SynthDef(\tides, {|out=0,freq=440,amp=0.5,sustain=1,pan=0,begin=0,end=1,speed=1,accelerate=0,tidesshape=0.5,slope=0.5,tidessmooth=0.5,shift=0.5,mode=2| var envLength = sustain*(end-begin)/speed;