My favourite dirty octave down (analogue style)

Hello

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
)
6 Likes

Similar to how the old Boss octave pedals worked :smiley:

/*
Josh Parmenter
www.realizedsound.net/josh
*/

1 Like

indeed this is what I emulated in Max :smiley: 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 :cry: ) Now in glorious SC :slight_smile:

the boss also has a boosted clipper at the input I think (to get that square wave) - easy to add!

1 Like

It sounds good and very playful to tweak


(
{
    var source, freqMod, ampMod, complexWave, env, smacMy, bitchU;
    var upPhase, invPrevPhase, trig;
    freqMod = LFNoise1.kr(1.2!2).range(2, 150);
    ampMod = LFNoise1.kr(1.7!2).abs;
    
    source = LPF.ar(LeakDC.ar(SoundIn.ar(0) + PinkNoise.ar(1)));
    bitchU = Mix.fill(12, { |i| source * SinOsc.ar(freqMod * (i + 1) * 1.059, 0, ampMod / (i + 1)) });
    upPhase = InRange.ar(source);
    invPrevPhase = LFPulse.ar(freqMod!2) - Delay1.ar(upPhase);
	trig = upPhase * invPrevPhase.abs;

    smacMy = ToggleFF.ar(trig).madd(2,-1);
    ///////////smacMy = bitchU ;
    smacMy = smacMy + (0.1 * GVerb.ar(processedSignal * source * alternatePhase, revtime: 5));
    
   bitchU + smacMy  * 0.2
}.play;
)
2 Likes

Just the right amount of dirty

1 Like

@tremblap , share the original piece, I’d be glad to hear and listen to it

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 :slight_smile:

1 Like

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.

it doesn’t sound as dirty - and is more prone to freq estimate errors - I LOVE the old boss hence this code…

1 Like

yeah thats cool. just wanted to add that approach to the conversation :slight_smile:

1 Like