I created all the dx11 algoritms and sequenced and sequenced algo 2,3,4 from three Pdef with the same NAME \fmer , but a different instrument assignment
One Pdef.play but only the last algo plays \dex11algo2
Unless Pdef’s need to have a unique name ( in which case I 'vs totally forgot about that )
Here 's are the insr. algo,
and the file
//All 8 algoritms of the dx11 opamt defines the output level and thus the amount of phase modulation going into the carrier
(
SynthDef(\dex11algo1,///op4--->op3-->op2--->op1
{
|
pitch=60,
op1att=0.001,op1dec=5.250,op1amt=1,op1tune=0,
op2att=0.001,op2dec=1.250,op2amt=1,op2tune=0,
op3att=0.001,op3dec=1.250,op3amt=3,op3tune=0,
op4att=0.001,op4dec=1.250,op4amt=1,op4tune=0,feedbackamt=0|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps,op4);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps,op3);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps,op2);
op1=op1*env1;
signal=op1*op1amt;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo1)
/////////////////////
/////////////////////
(
SynthDef(\dex11algo2,//op4+op3--->op2--->op1
{
|
pitch=60,
op1att=0.001,op1dec=0.250,op1amt=1,op1tune=0,
op2att=0.001,op2dec=0.250,op2amt=1,op2tune=24,
op3att=0.001,op3dec=0.250,op3amt=3,op3tune=0,
op4att=0.001,op4dec=0.250,op4amt=1,op4tune=0,feedbackamt=1|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps,op3+op4);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps,op2);
op1=op1*env1;
signal=op1*op1amt;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo2)
////////////////
///////////////
(
SynthDef(\dex11algo3,//op3-->op2-->op1<--op4
{
|
pitch=60,
op1att=0.001,op1dec=0.4,op1amt=1,op1tune=0,
op2att=0.001,op2dec=0.150,op2amt=2,op2tune=12,
op3att=0.001,op3dec=0.250,op3amt=1,op3tune=0,
op4att=0.001,op4dec=0.250,op4amt=1,op4tune=0,feedbackamt=0.5|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps,op3);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps,op2+op4);
op1=op1*env1;
signal=op1*op1amt;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
~animal=Synth(\dex11algo3,[\op1att,0.001,\op1dec,0.1,\op2att,0.001,\op2tune,1.1,\op4dec,0.1,\op4amt,3,\pitch,48,\op3dec,0.01,\op3amt,5,\op2amt,10])
~canimal=Synth(\dex11algo4,[\op1att,0.001,\op1dec,0.1,\op2att,0.001,\op2tune,1.1,\op4dec,0.1,\op4amt,3,\pitch,48,\op3dec,0.01,\op3amt,5,\op2amt,10])
~lanimal=Synth(\dex11algo5,[\op1att,0.001,\op1dec,0.1,\op2att,0.001,\op2tune,1.1,\op4dec,0.1,\op4amt,3,\pitch,48,\op3dec,0.01,\op3amt,5,\op2amt,1])
~animal.free
~animal.set(\op1pitch,72,\op2dec,100,\op2amt,8);
///////////////////
//////////////////
(
SynthDef(\dex11algo4,//op2-->op1<--op3<--op4
{
|
pitch=60,
op1att=0.001,op1dec=0.4,op1amt=1,op1tune=0,
op2att=0.001,op2dec=0.50,op2amt=1,op2tune=12,
op3att=0.001,op3dec=0.5,op3amt=0,op3tune=12.1,
op4att=0.001,op4dec=0.050,op4amt=1,op4tune=0.1,feedbackamt=1|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps,op4);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps,op2+op3);
op1=op1*env1;
signal=op1*op1amt;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo4)
//////////////
//////////////
(
SynthDef(\dex11algo5,//op2-->op1 op4-->op3
{
|
pitch=60,
op1att=0.001,op1dec=5.250,op1amt=1,op1tune=0,
op2att=0.001,op2dec=1.250,op2amt=1,op2tune=0,
op3att=0.001,op3dec=1.250,op3amt=1,op3tune=0,
op4att=0.001,op4dec=1.250,op4amt=1,op4tune=0,feedbackamt=0|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps,op4);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps,op2);
op1=op1*env1;
op1=op1*op1amt;
signal=(op1+op3)/2;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo5)
///////////////////
///////////////////
(
SynthDef(\dex11algo6,// op4--->ALL
{
|
pitch=60,
op1att=0.001,op1dec=5.250,op1amt=1,op1tune=0,
op2att=0.001,op2dec=1.250,op2amt=1,op2tune=0,
op3att=0.001,op3dec=1.250,op3amt=1,op3tune=0,
op4att=0.001,op4dec=1.250,op4amt=1,op4tune=0,feedbackamt=0|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps,op4);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps,op4);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps,op4);
op1=op1*env1;
op1=op1*op1amt;
signal=(op1+op2+op3)/3;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo6)
//////////////////
/////////////////
(
SynthDef(\dex11algo7,// op4--->op3 op2+op1-->out
{
|
pitch=60,
op1att=0.001,op1dec=5.250,op1amt=1,op1tune=0,
op2att=0.001,op2dec=1.250,op2amt=1,op2tune=0,
op3att=0.001,op3dec=1.250,op3amt=1,op3tune=0,
op4att=0.001,op4dec=1.250,op4amt=1,op4tune=0,feedbackamt=0|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps,op4);
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps);
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps);
op1=op1*env1;
op1=op1*op1amt;
signal=(op1+op2+op3)/3;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo7)
////////////////////
//////////////////////
(
SynthDef(\dex11algo8,// all out
{
|
pitch=60,
op1att=0.001,op1dec=5.250,op1amt=1,op1tune=0,
op2att=0.001,op2dec=1.250,op2amt=1,op2tune=0,
op3att=0.001,op3dec=1.250,op3amt=1,op3tune=0,
op4att=0.001,op4dec=1.250,op4amt=1,op4tune=0,feedbackamt=0|
var env1,env2,env3,env4,op1,op2,op3,op4,pan=(0.0),signal;
env4=EnvGen.ar(Env([0,1,0],[op4att,op4dec],[0,-5]),doneAction:0);
op4=SinOscFB.ar((pitch+op4tune).midicps,env4*feedbackamt);
op4=op4*env4;
op4=op4*op4amt;
op4;
env3=EnvGen.ar(Env([0,1,0],[op3att,op3dec],[0,-5]),doneAction:0);
op3=SinOsc.ar((pitch+op3tune).midicps );
op3=op3*env3;
op3=op3*op3amt;
env2=EnvGen.ar(Env([0,1,0],[op2att,op2dec],[0,-5]),doneAction:0);
op2=SinOsc.ar((pitch+op2tune).midicps );
op2=op2*env2;
op2=op2*op2amt;
env1=EnvGen.ar(Env([0,1,0],[op1att,op1dec],[0,-5]),doneAction:2);
op1=SinOsc.ar((pitch+op1tune).midicps );
op1=op1*env1;
op1=op1*op1amt;
signal=(op1+op2+op3+op4)/4;
signal=Pan2.ar(signal,pos:pan);
Out.ar(0,signal);
}).add
)
/////
Synth(\dex11algo8)
and the Pdef’s
(
Pdef(\fmer,
Pbind(\instrument,
\dex11algo3,
\dur,Pseq([1/2,1/2,1/4,1/2,1,1/2,1/4],inf),
\pitch,Pseq([48,44,60,48,40],inf),
))
)
///
(
Pdef(\fmer,
Pbind(\instrument,
\dex11algo4,
\dur,Pseq([1/2,1/2,1/4,1/2,1,1/2,1/4],inf),
\pitch,Pseq([48,44,60,80,40],inf),
))
)
/////////(
(
Pdef(\fmer,
Pbind(\instrument,
\dex11algo2,
\dur,Pseq([1,1,1/2,1],inf),
\pitch,Pseq([48,72,60,48,40].reverse,inf),
))
)
//////
Pdef(\fmer).play(~war)
Pdef(\fmer).stop(~war)
~war=TempoClock(124/60).permanent_(true);