Skip to content

Commit

Permalink
Cleaning up
Browse files Browse the repository at this point in the history
  • Loading branch information
danielmkarlsson authored Nov 12, 2023
1 parent ae5e181 commit c4e7936
Showing 1 changed file with 16 additions and 160 deletions.
176 changes: 16 additions & 160 deletions superclean-parameters.scd
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ bno: Offset the time at which the bend begins.
bnc: Bend curvature. Accepts positive and negative values.
lop: How many times to loop the file, takes integers, works in consort with the envelope parameters.
cut: Cut groups, cuts itself as well as other things in the same cut group. Rougher edges than legato in terms of sound tho so.
aux: An auxiliary output, you can use these for different outputs or same output with different effects depending on your startup file.
aux: Auxiliary output, can be used for different outputs or same output with different effects depending on your startup file.
rma: Ringmodulation wet amount.
rmf: Ringmodulation frequency.
rdf: The ringmodulation frequency to glissando in from, which can be above or below rmf, range is 20 to 20000
Expand All @@ -59,7 +59,7 @@ edf: Early diffusion of the hal reverb.
ldf: Late diffusion of the hal reverb.
hhp: A high pass filter before the hal reverb. Value range is 20 to 20000.
hlp: A low pass filter before the hal reverb. Value range is 20 to 20000.
tnh: Wet mix of the tanh based distortion. Unlike other distortions this is added after synths are summed. Try a fifth through this.
tnh: Wet mix of tanh based distortion. Unlike other distortions this is added after synths are summed. Try a fifth through this.
tnb: Low pass filter before the tanh based distortion.
tng: Tanh gain stage, this makes tons of ditortion. Range is 0.0 to 999.0
tna: Low pass filter after the tanh based distortion.
Expand All @@ -72,12 +72,12 @@ cvd: The cav reverb dampening. Range is zero to one.
cvl: The cav low pass filter after the reverb. Range is zero to one.
bit: Roughly translates to bit rate reduction. Value range is zero to infinity. Lower values give more action.
sam: Roughly translates to sample rate reduction. Value range is zero to infinity. Higher values give more action.
flp: Flips the channels in a Stereo sound. Left becomes right and vice versa. Range is 0 or 1, where 0 is unaffected and 1 is flipped.
flp: Flips the channels in a Stereo file. Range is 0 or 1, where 0 is unaffected and 1 is flipped.
dfm: A stereo distortion based on DFM1. This is the wet / dry. Range is zero to one where 0.0 is all dry and 1.0 is all wet.
dfg: This sets the gain of the dfm distortion. The range is 0.0 to 999.0.
jpr: JPverb wet mix, 0.0 to infinity
jpg: JPverb input gain, 0.0 to 999.0
jts: JPverb t60, approximate reverberation time in seconds 0.0 to 1.0 where zero is about 0.1 seconds and 1.0 is about 60 seconds
jts: JPverb t60, approximate reverb time in seconds 0.0 to 1.0 where zero is about 0.1 seconds and 1.0 is about 60 seconds
jpd: JPverb damp, 0.0 to 1.0
jps: JPverb room size, 0.0 to 1.0
jed: JPverb early diffusion, 0.0 to 1.0
Expand All @@ -93,18 +93,18 @@ jhc: JPverb high cut, 0.0 to 1.0
The parameters below aren't actually part of SuperClean, but are very useful,
and, because SuperClean is running inside SuperCollider, we can use them.

dur: The duration between events, range is a float above zero to infity, zero is infinitely fast, so, you mos def never want to do that.
midinote: 0 to 127. 60 is default. Interestingly accepts floats which allows for microtonality
freq: When working with synths and we want to work with frequencies instead of midi note numbers as above, accepts integers 20 to 20000
scale: Choose scale, for example: Scale.harmonicMinor, add a tuning there like this: Scale.harmonicMinor.tuning_(Tuning.sept1)
degree: Negative infinity to infinity really but proly there will be seven degrees in scale.
octave: Choose the octave. Range is zero infinity really but a reasonable range is more like 1 to 6. Accepts floats which is crazy/fun
ctranspose: Chromatic transpostion. All the keys on a piano. Range is something like integers between -63 and 64 but depends on everything else.
dur: The duration between events, range is a float above zero to infity, zero is infinitely fast, so, never do that.
midinote: 0 to 127. 60 is default. Interestingly accepts floats which allows for microtonality.
freq: When we want to work with frequencies instead of midi note numbers as above, accepts integers 20 to 20000.
scale: Choose scale, for example: Scale.harmonicMinor, add a tuning there like this: Scale.harmonicMinor(\sept1)
degree: Negative infinity to infinity really but often, in the west, there will be seven degrees in scale.
octave: Choose the octave. Range is zero to infinity really but a reasonable range is more like 1 to 6. Accepts floats!
ctranspose: Chromatic transpositon. All the keys on a piano. Range is something like integers between -63 and 64 but depends.
mtranspose: Modal transposition of degree within a scale. Works in combination with other keys like degree and scale.
harmonic: Multiplies the frequency determined by midinote, typically to an overtone. https://en.wikipedia.org/wiki/Overtone

stepsPerOctave has no documentation that I can find. Very little is know about this strange parameter other than that it's default is 12.
Try untoggling that key in this example:
stepsPerOctave has no documentation that I can find. Very little is know about this parameter other than that it's default is 12.
Try commenting out that key in this example:

(
Pdef(0,
Expand All @@ -128,8 +128,8 @@ replacement for root. If you add 60 to a midinote value you get the equivalent
to note. If you add a fraction like for example 0.5 at the end of a midinote
calculation you get the equivalent of detune.

legato : Like a variable soft cut dependent on dur where 1 is equal to dur. This is unlike cut in that it only affects itself.
sustain: Adds sustain by changing the timescale of the envelope. Can turn a drum into a drone. Value range is a float above 0 to infinity.
legato : Like a variable soft cut dependent on dur where 1 is equal to dur. Only affects itself.
sustain: Adds sustain by changing the timescale of the envelope. Can turn a drum into a drone. 0.01ish to infinity.


In the \fmx synth definition the envelope segments are expressed in
Expand Down Expand Up @@ -303,148 +303,4 @@ freq:
bnd:
bnt:
bno:
bnc:


// Here's an example using most of the parameters from above all together in one wild mess
(
Pdef(0,
Pseed(10,
Pbind(*[
type: Prand([\cln, \r], inf),
dur: 1/Prand([1, 2, 4,8], inf),
snd: Pxrand([\fmx, \drm, \hat, \dfd, \sin, \saw, \sqr],inf),
scale: Scale.harmonicMinor.tuning_(Tuning.sept1),
pan: Pwhite(0.0, 1.0),
shp: Pexprand(1, 2) - 1,
sac: 0.999,
slo: Pexprand(1, 2) - 1,
shi: 1 - Pexprand(0.01, 1),
sho: Pwhite(0.0, 1.0),
lot: Pexprand(1 ,2)-1,
hit: Pexprand(1, 2)-1,
dst: Pexprand(1, 2)-1,
tri: Pexprand(1, 2)-1,
amp: Pexprand(1, 1.5)-1,
atk: Pexprand(1, 2)-1,
hld: Pexprand(1, 4),
rel: Pexprand(1, 2)-1,
crv: Pexprand(1, 9)-1,
lpf: 20000 - Pexprand(2000, 20000),
hpf: Pexprand(20, 200),
bpf: Pwhite(20, 200),
lpq: Pwhite(0.0, 1.0),
bpq: Pexprand(1, 2) - 1,
hpq: Pexprand(1, 2) - 1,
lhf: Pwhite(0.0, 1.0),
rps: Pexprand(1, 9),
dla: Pdup(Pkey(\rps), (1 - Pexprand(0.1, 1.0))),
dlf: Pdup(Pkey(\rps), (0.9 - Pexprand(0.00001, 0.9))),
dlt: Pdup(Pkey(\rps), Pwhite(1.0, 16.0).round(1/2)),
dlt: 16.0,
hr1: Pdup(Pkey(\rps) - Pwhite(0, 7), Pshuf((1 .. 4), inf)),
hr2: Pdup(Pkey(\rps) + Pwhite(0, 7), Pshuf((1 .. 4), inf)),
hr3: Pdup(Pkey(\rps) - Pwhite(0, 7), Pshuf((1 .. 4), inf)),
hr4: Pdup(Pkey(\rps) + Pwhite(0, 7), Pshuf((1 .. 4), inf)),
mi1: Pexprand(0.0001, 100.0),
mi2: Pdup(Pkey(\rps) + Pwhite(0, 7), Pshuf((0.0001 .. 4.0), inf)),
mi3: Pdup(Pkey(\rps) + Pwhite(0, 7), Pshuf((0.0001 .. 4.0), inf)),
mi4: Pdup(Pkey(\rps) + Pwhite(0, 7), Pshuf((0.0001 .. 4.0), inf)),
en1: Pdup(Pkey(\rps) + Pwhite(0, 7), Pexprand(0.0001, 0.555)),
en2: Pdup(Pkey(\rps) + Pwhite(0, 7), Pkey(\en1) * Pexprand(0.2, 0.666)),
en3: Pdup(Pkey(\rps) + Pwhite(0, 7), Pkey(\en1) * Pkey(\en2) / Pexprand(0.3, 0.777)),
en4: Pdup(Pkey(\rps) + Pwhite(0, 7), Pkey(\en1) * Pkey(\en2) / Pkey(\en3) * Pexprand(0.4, 0.888)),
cu1: Pdup(Pkey(\rps) + Pwhite(0, 7), Pwhite(0.25, 1.0)),
cu2: Pdup(Pkey(\rps) + Pwhite(0, 7), Pwhite(0.25, 1.0)),
cu3: Pdup(Pkey(\rps) + Pwhite(0, 7), Pwhite(0.25, 1.0)),
cu4: Pdup(Pkey(\rps) + Pwhite(0, 7), Pwhite(0.25, 1.0)),
ada: Pexprand(0.00000000000000000000000000000000000000000000001, 10.1),
adr: Pkey(\dur) + (Pexprand(0.000001, 10.0)),
wid: (Pexprand(0.01, 0.5)),
iph: Pwhite(0.0, 1.0),
rin: Pwhite(0.0, 1.0),
rev: Pwhite(0.0, 1.0),
dry: Pwhite(0.0, 1.0),
bgn: Pexprand(1, 1.25) - 1,
end: 1 - Pexprand(0.75, 1.0),
bnd: Pwhite(-1.5, 1.5),
lop: Pexprand(1, 5) - 1,
aux: Pwhite(0, 1),
rma: Pwhite(0.0, 1.0),
rmf: Pwhite(20, 200),
rdf: Pwhite(20, 200),
rdt: Pexprand(1, 2) - 1,
smr: Pwrand([0, 1], [32, 1].normalizeSum, inf),
scm: Pwrand([0,1],[16,1].normalizeSum,inf),
enh: Pwrand([0,1],[8,1].normalizeSum,inf),
cav: Pwrand([0,0.5],[4,1].normalizeSum,inf),
degree: Pdup(Pkey(\rps),Pxrand((0..7),inf)),
octave: Pdup(Pkey(\rps),Pxrand((2..6),inf)),
sustain: Pexprand(1,4).round(0.25),
legato: Pexprand(1,4).round,
])
)
).play(quant:1);

Pdef(1,
Pseed(1,
Pbind(*[
type: Prand([\cln, \r], inf),
dur: 1/Prand([1, 2, 4,8], inf),
snd: \mmd,
num: Pwhite(0, 12),
legato: Pexprand(1,4).round,
pan: Pwhite(0.0, 1.0),
amp: Pexprand(1,3)-1,
spd: Prand([1/4,1/2,1,2,4,-0.25,-0.5,-2,-4],inf),
rel: Pexprand(1,4)-1,
crv: Pexprand(0.01,4)-4,
cut: Pwhite(0,1),
aux: Pwhite(0,1),
])
)
).play(quant:1);

Pdef(2,
Pseed(2,
Pbind(*[
type: \cln,
snd: \add,
freq: Pn(Plazy {
var lo = (1 .. 11).choose;
var hi = (1 .. 11).choose;
50 * (lo..hi);
}),
ada: Pexprand(0.00000000000000000000000000000000000000000000001,10.1),
adr: Pkey(\dur)+(Pexprand(0.000001,10.0)),
dur: Prand([16, 32], inf) / Pwrand([1, 2, 4, 8],[8, 4, 2, 1].normalizeSum, inf),
amp: Pexprand(0.5,1.0),
legato: 1,
])
)
).play(quant:1);

Pdef(3,
Pseed(63,
Pbind(*[
type: Pwrand([\cln, \r],[1,0].normalizeSum, inf),
snd: \kps,
\freq, Pn(Plazy {
var lo = (1, 3 .. 11).wchoose((11, 9 .. 1));
var hi = (1, 3 .. 11).choose;
50 * Pseq((lo..hi), 1);
}).trace,
dur: 1/Pdup(Pwhite(5,11),Pwhite(5,11)),
sustain: Pdup(Pwhite(16,32),Pexprand(1/32,1)),
crv: 8,
amp: Pexprand(0.5,1.5),
lhf: Pseg([0.0,0.5,0.0],Pexprand(1,40),\lin,inf),
stretch: Pseg(Pseq([1,Pexprand(1/4,16),1],inf),Pexprand(1,20),\lin,inf),
legato: 4,
])
)
).play(quant:1);
)

*/
```
bnc:

0 comments on commit c4e7936

Please sign in to comment.