Pbind scale , offet osc's

I have an issue
This is a 3 osc synth and I am using base freq as master tune which pbind converts to pitch when using \degree.
Issue is that I also want to offset the oscillators in semitones in the pbind
This doesn’t do the trick , see sig 1,2,3 line

(
SynthDef(\Sqwer,
	{| ampattack =0.001,ampdecay=1,filtattack=0.001,filtdecay=0.500,osc1amp=0.3,osc2amp=0.3,osc3amp=0.3,offset1=0,offset2=0.2,offset3=(-0.2),filterfreq=600,res=1,freq=48,
		filteramount=100,pan=0,vol=0.7,fsh=5,xfade=0,lp=1,bp=0,hp=0,out|
		var sig,sig1,sig2,sig3,ampenvelope,filterenvelope;
		filterenvelope=EnvGen.ar(Env([0,1,0],[filtattack,filtdecay],[0,-5]),doneAction:0);
		ampenvelope=EnvGen.ar(Env([0,1,0],[ampattack,ampdecay],[0,-5]),doneAction:2);
		sig1=Pulse.ar((freq+(offset1.midicps)),mul:osc1amp);
		sig2=Pulse.ar((freq+(offset1.midicps) ),mul:osc2amp);
		sig3=Pulse.ar((freq+(offset1.midicps) ),mul:osc3amp);
		sig=sig1+sig2+sig3;
		sig=SVF.ar(sig,(filterfreq+(filterenvelope*filteramount)).clip(20,20000),lowpass:lp,bandpass:bp,highpass:hp,res:res);
		sig=sig*ampenvelope;
		sig=XFade2.ar(sig,FreqShift.ar(sig,fsh),pan:xfade);
		sig=sig*vol;
		sig=Pan2.ar(sig,pos:pan);
		Out.ar(out,sig);
}).add
)

Synth(\Sqwer,[\freq,58,\offset1,-24,\offset2,-0.3,\offset3,0.1,\filterfreq,800,\filteramount,600,\xfade,0,\fsh,3]);


(
Pdef(\bebe,
	Pbind(\instrument,
		\Sqwer,
		\dur,Pseq([1/4],inf),
		\degree,Pseq([0,3,7,1],inf),
		\octave,3,
		\offset1,0,
		\offset2,12,
		\offset3,7,
		\filterfreq,500,
		\filteramount,0,
		\ampdecay,0.200,
		\vol,0.3,
		\lp,0.7,
		\bp,0.5,
		\res,0.0,
		\xfade,-0.3,
		\fsh,Pwhite(0,0,inf),
		\out,0,

	)
)
)

Pdef(\bebe).play
Pdef(\bebe).stop(t)

TempoClock.default.tempo=120/60

Hz is an exponential scale, so in general, use * with it instead of +. Also midiratio instead of midicps.

freq * (offset1.midiratio)

hjh

2 Likes