I wanted to port my favourite dirty octave down algo which I’ve been using for decades in Max and I love the sound of… any advanced SC users might have comments and improvements on this but hey, have fun! Obviously tweak the low pass to your pleasure, independently.
(
{
var source = SinOsc.ar(333,mul: 0.1); // dirty test to show how it works
// var source = LPF.ar(LeakDC.ar(SoundIn.ar(0))); // real input: remove DC and higher harmonics
var upPhase = InRange.ar(source);
var invPrevPhase = 1 - Delay1.ar(upPhase);
var trig = upPhase * invPrevPhase;
var alternatePhase = ToggleFF.ar(trig).madd(2,-1);
var octave = LPF.ar(source*alternatePhase); // remove higher harmonics here too
// [source, octave]
octave.dup;
}.play
)
indeed this is what I emulated in Max The code was a lot dirtier there as you can imagine! It’s been in half of my pieces and my live patch since… 2001 ! (I’m so old ) Now in glorious SC
the boss also has a boosted clipper at the input I think (to get that square wave) - easy to add!
The piece from 2001? Actually there is a piece from 2003-5 that has it in Max that has been re-recorded by a younger drummer, that might be simpler to find
if its about octave shifting you could also track the frequency of the incoming signal and ring modulate it with a transposed version of that frequency, a factor of 0.5 will transpose down one octave for example.