diff --git a/library/default-effects-extra.scd b/library/default-effects-extra.scd new file mode 100644 index 00000000..41bb40b8 --- /dev/null +++ b/library/default-effects-extra.scd @@ -0,0 +1,42 @@ +// Waveloss +// Divides an audio stream into tiny segments, using the signal's +// zero-crossings as segment boundaries, and discards a fraction of them. + +( +SynthDef("waveloss" ++ ~dirt.numChannels, { |out, drop = 1| + var sig; + + sig = In.ar(out, ~dirt.numChannels); + sig = WaveLoss.ar(sig, drop, outof: 100, mode: 2); + ReplaceOut.ar(out, sig) +}).add; + +~dirt.addModule('waveloss', { |dirtEvent| + dirtEvent.sendSynth('waveloss' ++ ~dirt.numChannels, + [ + drop: ~waveloss, + out: ~out + ] + ) +}, { ~waveloss.notNil }); + +// Squiz +// "reminiscent of some weird mixture of filter, ring-modulator +// and pitch-shifter" + +SynthDef("squiz" ++ ~dirt.numChannels, { |out, pitchratio = 1| + var sig; + sig = In.ar(out, ~dirt.numChannels); + sig = Squiz.ar(sig, pitchratio); + ReplaceOut.ar(out, sig) +}).add; + +~dirt.addModule('squiz', { |dirtEvent| + dirtEvent.sendSynth('squiz' ++ ~dirt.numChannels, + [ + pitchratio: ~squiz, + out: ~out + ] + ) +}, { ~squiz.notNil }); +) diff --git a/synths/try-load-extra-synths.scd b/synths/try-load-extra-synths.scd index 90164235..f80743de 100644 --- a/synths/try-load-extra-synths.scd +++ b/synths/try-load-extra-synths.scd @@ -1,9 +1,6 @@ - - if(\MembraneHexagon.asClass.isNil) { - "Dirt could not load some synths from default-synths.scd, because sc3plugins are necessary and missing.".warn - } { loadRelative("../library/default-synths-extra.scd"); -}; \ No newline at end of file + loadRelative("../library/default-effects-extra.scd"); +};