Week 5, lesson 3 - adding and using superdirt synths

There is a convenience function in superdirt that posts the code for adding SynthDef parameters in tidal

SuperDirt.postTidalParameters(synthNames: <a list of synth def names>);

// for example
SuperDirt.postTidalParameters(synthNames: [\supersaw, \supermandolin]);

// posts:

-- | parameters for the SynthDefs: supersaw, supermandolin
let (decay, decay_p) = pF "decay" (Nothing)
    (detune, detune_p) = pF "detune" (Nothing)
    (freq, freq_p) = pF "freq" (Nothing)
    (lfo, lfo_p) = pF "lfo" (Nothing)
    (pitch1, pitch1_p) = pF "pitch1" (Nothing)
    (rate, rate_p) = pF "rate" (Nothing)
    (resonance, resonance_p) = pF "resonance" (Nothing)
    (semitone, semitone_p) = pF "semitone" (Nothing)
    (span, span_p) = pF "span" (Nothing)
    (voice, voice_p) = pF "voice" (Nothing)



Is this of any help?

7 Likes

thank you

Great video, thanks.

Why do you use IEnvGen, instead of the more commonly used EnvGen?
The 'I' stands for interactive?

IEnvGen has an index input with which you can freely index into the envolope. So you can go forward and backward in time, so to speak.



(
{
	var index, env, lin;
	index = LFNoise1.ar(1000).range(0, 1);
	env = IEnvGen.ar(Env([0, 1, 0], [2, 8]/10, \sin), index);
	lin = IEnvGen.ar(Env([0, 1, 0], [2, 8]/10, \sin), Line.ar(0, 1, 0.01));
	[index, lin, env]
	
}.plot

)
1 Like

Instead of the variable 'sustain', 'sus' is mostly used in SynthDefs. See for instance these SynthDefs.

For converting SynthDefs to Tidal friendly SynthDefs, it might be better if SuperDirt would use the keyword 'sus' instead of 'sustain'.

The use of sus is not starndard, i.e. it doesn't work with the standard supercollider event system. E.g. if you write Pbind(\legato, 1.5, \dur, 0.5) it is sustain that will be 0.75, not sus.