MM – Symphonic Ensemble

Flutes
Oboe
Clarinet
Violin
Viola
Cello
Bass
BDrum
Celesta

Each section has multiple players. Each player has a random slight pitch deviation (quasi vibrato) and a random micro pre delay.

Comes with Test song.

Get the drumloops here:

https://drive.google.com/file/d/1rohzvh6mc6BVqNji2j-VO5EG83hodjCc/view?usp=sharing

Get the waveforms here:

AKWF FREE (waveform samples)

// MM - Symphonic Ensemble - 2020 Matias Monteagudo.

(
Server.local.options.device = "ASIO : ASIO PreSonus FireStudio";
Server.local.options.sampleRate=48000;
Server.local.options.hardwareBufferSize=128;
Server.local.options.memSize=32768;
)


//Reverb.
((
	SynthDef(\verb, {
		|in, predelay=1, revtime=2, lpf=4500,mix=0.5,amp=1,out=0|
		var dry,wet,temp,sig;
		dry = In.ar(in, 2);
		temp = In.ar(in, 2);
		wet=0;
		temp=DelayN.ar(temp, 0.2, predelay);
		32.do {temp=AllpassN.ar(temp, 0.05, {Rand(0.001,0.05)}!2,revtime);
			temp=LPF.ar(temp,lpf);
			wet=wet+temp;
		};
		sig=XFade2.ar(dry,wet,mix*2-1,amp);
		Out.ar(out,sig);
	}).add;
);
)

//After evaluating this. You can hit "CMD+." or even restart the server and the verb will be there. (You'll need to re evaluate only if you restart SC)
(
~revBus = Bus.audio(s,2);
~createReverb={~reverbSynth=Synth(\verb, [\mix,0.23, \in, ~revBus])};
ServerTree.add(~createReverb);
)

ServerTree.removeAll;//If you wanna empty the Tree.

//Instruments.
(
(
~bFl1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_flute/AKWF_flute_0006.wav");
~bOb1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_oboe/AKWF_oboe_0010.wav");
~bCla1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_clarinett/AKWF_clarinett_0021.wav");
~bVln1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_violin/AKWF_violin_0011.wav");
~bVla1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_violin/AKWF_violin_0011.wav");
~bCel1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_cello/AKWF_cello_0003.wav");
~bBas1=Buffer.read(s,"G:/SAMPLES/Waveforms/AKWF_dbass/AKWF_dbass_0012.wav");
~loop1=Buffer.read(s,"C:/Audio/SC/Mat SC/GamesLoop1.wav");
~loop2=Buffer.read(s,"C:/Audio/SC/Mat SC/GamesLoop2.wav");
);

//Flute.
(
SynthDef(\flutes, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,
	pl1,pl2,pl3,pl4;
	mod1=SinOsc.ar(Rand(3,6),0,0.03);
	mod2=SinOsc.ar(Rand(5,6),0,0.03);
	mod3=SinOsc.ar(Rand(3,6),0,0.03);
	mod4=SinOsc.ar(Rand(4,6),0,0.03);
	pl1=PlayBuf.ar(1,~bFl1,freq+mod1,loop:1);
	pl1=(pl1*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1*0.8,1,Rand(0.01,0.1));
	pl2=PlayBuf.ar(1,~bFl1,freq+mod2,loop:1);
	pl2=(pl2*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl2*0.8,1,Rand(0.01,0.1));
	pl3=PlayBuf.ar(1,~bFl1,freq+mod3,loop:1);
	pl3=(pl3*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl3*0.8,1,Rand(0.01,0.1));
	pl4=PlayBuf.ar(1,~bFl1,freq+mod4,loop:1);
	pl4=(pl4*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl4*0.8,1,Rand(0.01,0.1));
	sig=Splay.ar([pl1,pl2,pl3,pl4],spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);

//Oboe
(
SynthDef(\oboes, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,
	pl1,pl2,pl3,pl4;
	mod1=SinOsc.ar(Rand(5.2,6),0,0.008);
	mod2=SinOsc.ar(Rand(5.3,6),0,0.008);
	mod3=SinOsc.ar(Rand(5.4,6),0,0.008);
	mod4=SinOsc.ar(Rand(5.5,6),0,0.008);
	pl1=PlayBuf.ar(1,~bOb1,freq+mod1,loop:1);
	pl1=(pl1*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1,0.2,Rand(0.01,0.1));
	pl2=PlayBuf.ar(1,~bOb1,freq+mod2,loop:1);
	pl2=(pl2*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl2,0.2,Rand(0.01,0.1));
	pl3=PlayBuf.ar(1,~bOb1,freq+mod3,loop:1);
	pl3=(pl3*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl3,0.2,Rand(0.01,0.1));
	pl4=PlayBuf.ar(1,~bOb1,freq+mod4,loop:1);
	pl4=(pl4*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl4,0.2,Rand(0.01,0.1));
	sig=Splay.ar([pl1,pl2,pl3,pl4],spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);

//Clarinet
(
SynthDef(\clarinets, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,
	pl1,pl2,pl3,pl4;
	mod1=SinOsc.ar(Rand(5.2,6),0,0.008);
	mod2=SinOsc.ar(Rand(5.3,6),0,0.008);
	mod3=SinOsc.ar(Rand(5.4,6),0,0.008);
	mod4=SinOsc.ar(Rand(5.5,6),0,0.008);
	pl1=PlayBuf.ar(1,~bCla1,freq+mod1,loop:1);
	pl1=(pl1*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1,0.2,Rand(0.01,0.1));
	pl2=PlayBuf.ar(1,~bCla1,freq+mod2,loop:1);
	pl2=(pl2*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl2,0.2,Rand(0.01,0.1));
	pl3=PlayBuf.ar(1,~bCla1,freq+mod3,loop:1);
	pl3=(pl3*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl3,0.2,Rand(0.01,0.1));
	pl4=PlayBuf.ar(1,~bCla1,freq+mod4,loop:1);
	pl4=(pl4*0.6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl4,0.2,Rand(0.01,0.1));
	sig=Splay.ar([pl1,pl2,pl3,pl4],spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);

//Violins
(
SynthDef(\violins, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8,
	pl1,pl2,pl3,pl4,pl5,pl6,pl7,pl8;
	mod1=SinOsc.ar(Rand(5,7),0,0.02);
	mod2=SinOsc.ar(Rand(5,6),0,0.02);
	mod3=SinOsc.ar(Rand(5,5),0,0.02);
	mod4=SinOsc.ar(Rand(5,7),0,0.02);
	mod5=SinOsc.ar(Rand(5,6),0,0.02);
	mod6=SinOsc.ar(Rand(5,5),0,0.02);
	mod7=SinOsc.ar(Rand(5,7),0,0.02);
	mod8=SinOsc.ar(Rand(5,6),0,0.02);
	pl1=PlayBuf.ar(1,~bVln1,freq+mod1,loop:1);
	pl1=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1,0.2,Rand(0.01,004));
	pl2=PlayBuf.ar(1,~bVln1,freq+mod2,loop:1);
	pl2=(pl2)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl2,0.2,Rand(0.01,0.04));
	pl3=PlayBuf.ar(1,~bVln1,freq+mod3,loop:1);
	pl3=(pl3)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl3,0.2,Rand(0.01,0.04));
	pl4=PlayBuf.ar(1,~bVln1,freq+mod4,loop:1);
	pl4=(pl4)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl4,0.2,Rand(0.01,0.04));
	pl5=PlayBuf.ar(1,~bVln1,freq+mod5,loop:1);
	pl5=(pl5)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl5=DelayN.ar(pl5,0.2,Rand(0.01,0.04));
	pl6=PlayBuf.ar(1,~bVln1,freq+mod6,loop:1);
	pl6=(pl6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl6=DelayN.ar(pl6,0.2,Rand(0.01,0.04));
	pl7=PlayBuf.ar(1,~bVln1,freq+mod7,loop:1);
	pl7=(pl7)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl7=DelayN.ar(pl7,0.2,Rand(0.01,0.04));
	pl8=PlayBuf.ar(1,~bVln1,freq+mod8,loop:1);
	pl8=(pl8)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl8=DelayN.ar(pl8,0.2,Rand(0.01,0.03));
	sig=BHiPass.ar([pl1,pl2,pl3,pl4,pl5,pl6,pl7,pl8],850);
	sig=Splay.ar(sig,spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);

//Violas
(
SynthDef(\violas, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8,
	pl1,pl2,pl3,pl4,pl5,pl6,pl7,pl8;
	mod1=SinOsc.ar(Rand(5,7),0,0.02);
	mod2=SinOsc.ar(Rand(5,5),0,0.02);
	mod3=SinOsc.ar(Rand(5,6),0,0.02);
	mod4=SinOsc.ar(Rand(5,7),0,0.02);
	mod5=SinOsc.ar(Rand(5,6),0,0.02);
	mod6=SinOsc.ar(Rand(5,7),0,0.02);
	mod7=SinOsc.ar(Rand(5,6),0,0.02);
	mod8=SinOsc.ar(Rand(5,7),0,0.02);
	pl1=PlayBuf.ar(1,~bVla1,freq+mod1,loop:1);
	pl1=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1,0.2,Rand(0.01,004));
	pl2=PlayBuf.ar(1,~bVla1,freq+mod2,loop:1);
	pl2=(pl2)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl2,0.2,Rand(0.01,0.04));
	pl3=PlayBuf.ar(1,~bVla1,freq+mod3,loop:1);
	pl3=(pl3)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl3,0.2,Rand(0.01,0.04));
	pl4=PlayBuf.ar(1,~bVla1,freq+mod4,loop:1);
	pl4=(pl4)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl4,0.2,Rand(0.01,0.04));
	pl5=PlayBuf.ar(1,~bVla1,freq+mod5,loop:1);
	pl5=(pl5)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl5=DelayN.ar(pl5,0.2,Rand(0.01,0.04));
	pl6=PlayBuf.ar(1,~bVla1,freq+mod6,loop:1);
	pl6=(pl6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl6=DelayN.ar(pl6,0.2,Rand(0.01,0.04));
	pl7=PlayBuf.ar(1,~bVla1,freq+mod7,loop:1);
	pl7=(pl7)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl7=DelayN.ar(pl7,0.2,Rand(0.01,0.04));
	pl8=PlayBuf.ar(1,~bVla1,freq+mod8,loop:1);
	pl8=(pl8)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl8=DelayN.ar(pl8,0.2,Rand(0.01,0.03));
	sig=BHiPass.ar([pl1,pl2,pl3,pl4,pl5,pl6,pl7,pl8],750);
	sig=Splay.ar(sig,spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);

//Cellos
(
SynthDef(\cellos, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,mod5,mod6,
	pl1,pl2,pl3,pl4,pl5,pl6;
	mod1=SinOsc.ar(Rand(5,7),0,0.002);
	mod2=SinOsc.ar(Rand(5,6),0,0.002);
	mod3=SinOsc.ar(Rand(5,5),0,0.002);
	mod4=SinOsc.ar(Rand(5,7),0,0.002);
	mod5=SinOsc.ar(Rand(5,6),0,0.002);
	mod6=SinOsc.ar(Rand(5,5),0,0.002);
	pl1=PlayBuf.ar(1,~bCel1,freq+mod1,loop:1);
	pl1=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1,0.2,Rand(0.01,004));
	pl2=PlayBuf.ar(1,~bCel1,freq+mod2,loop:1);
	pl2=(pl2)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl2,0.2,Rand(0.01,0.04));
	pl3=PlayBuf.ar(1,~bCel1,freq+mod3,loop:1);
	pl3=(pl3)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl3,0.2,Rand(0.01,0.04));
	pl4=PlayBuf.ar(1,~bCel1,freq+mod4,loop:1);
	pl4=(pl4)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl4,0.2,Rand(0.01,0.04));
	pl5=PlayBuf.ar(1,~bCel1,freq+mod5,loop:1);
	pl5=(pl5)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl5=DelayN.ar(pl5,0.2,Rand(0.01,0.04));
	pl6=PlayBuf.ar(1,~bCel1,freq+mod6,loop:1);
	pl6=(pl6)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl6=DelayN.ar(pl6,0.2,Rand(0.01,0.04));
	sig=Splay.ar([pl1,pl2,pl3,pl4,pl5,pl6],spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);

//Basses
(
SynthDef(\basses, {
	|gate=1,amp=1,pan=0,freq=4,atk=0.1,rel=1,cur=1,spr=1|
	var sig,
	mod1,mod2,mod3,mod4,
	pl1,pl2,pl3,pl4;
	mod1=SinOsc.ar(Rand(5.2,7),0,0.002);
	mod2=SinOsc.ar(Rand(5.3,7),0,0.002);
	mod3=SinOsc.ar(Rand(5.4,7),0,0.002);
	mod4=SinOsc.ar(Rand(5.5,7),0,0.002);
	pl1=PlayBuf.ar(1,~bBas1,freq+mod1,loop:1);
	pl1=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl1=DelayN.ar(pl1*0.8,0.2,Rand(0.01,0.045));
	pl2=PlayBuf.ar(1,~bBas1,freq+mod1,loop:1);
	pl2=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl2=DelayN.ar(pl1*0.8,0.2,Rand(0.01,0.05));
	pl3=PlayBuf.ar(1,~bBas1,freq+mod1,loop:1);
	pl3=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl3=DelayN.ar(pl1*0.8,0.2,Rand(0.01,0.055));
	pl4=PlayBuf.ar(1,~bBas1,freq+mod1,loop:1);
	pl4=(pl1)*EnvGen.kr(Env.adsr(atk,0.3,1,rel,0.8),gate,doneAction:2);
	pl4=DelayN.ar(pl1*0.8,0.2,Rand(0.01,0.06));
	sig=Splay.ar([pl1,pl2,pl3,pl4],spr,center:pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig*amp);
}).add
);
//BassDrum
(
SynthDef(\bdrum, {
	|amp=1, pan=0, ext=1, freq=1, loss=1|
	var sig,exciter;
	exciter=PinkNoise.ar(EnvGen.ar(Env([0,ext,0],[0.001,1],-40),1, doneAction:2));
	sig=MembraneHexagon.ar(exciter,freq,loss,amp);
	sig=DelayN.ar(sig,0.2,Rand(0.06,0.09));
	sig=Balance2.ar(sig,sig,pan,1);
	Out.ar(~revBus, sig)
}).add
);

//Celesta
(
SynthDef(\celesta, {
	|amp=1, pan=0, freq=800,rel=10|
	var sig,mod;
	mod=SinOsc.ar(freq*2,0);
	sig=LFTri.ar(freq,mod)*EnvGen.kr(Env([0,amp,0],[0.001, rel],-3),1,doneAction:2);
	sig=DelayN.ar(sig,0.2,Rand(0.06,0.09));
	sig=Pan2.ar(sig, pan);
	sig=LeakDC.ar(sig, 0.995);
	Out.ar(~revBus, sig)
}).add
);

(
SynthDef(\loop1, {
	|gate=1,amp=1|
	var sig;
	sig=PlayBuf.ar(2,~loop1)*EnvGen.kr(Env.adsr(0.0001,0.1,amp,0.0001),gate,doneAction:2);
	sig=DelayN.ar(sig, 0.1,0.05);
	Out.ar(0, sig)
}).add
);

(
SynthDef(\loop2, {
	|gate=1,amp=1|
	var sig;
	sig=PlayBuf.ar(2,~loop2)*EnvGen.kr(Env.adsr(0.0001,0.1,amp,0.0001),gate,doneAction:2);
	sig=DelayN.ar(sig, 0.1,0.05);
	Out.ar(0, sig)
}).add
);

)

//Test song.

(
TempoClock.tempo=85/60;
//Flute
(
~pFlute=Pbindef(\pflute, \instrument, \flutes, \gate,1, \envdur,1.8, \amp,0.8, \pan, -0.5, \atk,0.2, \rel,0.5, \dur,1/4, \scale, Scale.chromatic, \octave,0, \legato, 1/3,
	\degree, Pseq([
		10,3,-1,-4, 8, 3,-1,-4, 7, 3,-1,-4, 8, 3,-1,-4, //Bar1
		8,1,-2,-6,6,1,-2,-6,5,1,-2,-6,6,1,-2,-6, //Bar2
		6,-1,-4,-7,5,-1,-4,-7,4,-1,-4,-7,5,-1,-4,-7, //Bar3
		5,-2,-6,-9,3,-2,-6,-9,2,-2,-6,-9,3,-2,-6,-9, //Bar4
		10,3,-1,-4, 8, 3,-1,-4, 7, 3,-1,-4, 8, 3,-1,-4, //Bar5
		11,4,1,-5,10,4,1,-5,9,4,1,-5,10,4,1,-5, //Bar6
		13,3,-1,-4,11,3,-1,-4,10,3,-1,-4,11,3,-1,-4, //Bar7
		10,3,-1,-7,8,3,-1,-7,6,3,-1,-7,5,3,-1,-7 //Bar8
		],inf),
));
//Oboe
(
~pOboe=Pbindef(\poboe, \instrument, \oboes, \gate,1, \envdur,1.8, \amp,0.15, \pan, -0.4, \dur,1, \scale, Scale.chromatic, \octave,-2,
	\degree, Pseq([
		10,8, 7, 8, //Bar1
		8,6,5,6, //Bar2
		6,5,4,5,
		5,3,2,3,
		10,8,7,8,
		11,10,9,10,
		13,11,10,11,
		10,8,6,5,
		],inf),
));

//Clarinet
(
~pClarinet=Pbindef(\pclarinet, \instrument, \clarinets, \gate,1, \envdur,1.8, \amp,0.1, \pan, -0.2, \dur,1, \scale, Scale.chromatic, \octave,-1,
	\degree, Pseq([
		-2,-1,3,-4, //Bar1
		-4,-2,1,-6, //Bar2
		-6,-4,-1,-7,
		-7,-6,-2,-9,
		-2,-1,3,-4,
		-2,1,4,-5,
		-4,-1,3,-4,
		-7,-4,-1,3
		],inf),
));
//Violins Pat1
(
~pViolin1=Pbindef(\pcviolin1, \instrument, \violins, \gate,1, \envdur,4, \amp,0.6, \pan, -0.2, \atk, 0.15, \rel, 0.8, \dur,1/4, \legato, 1/3, \scale, Scale.chromatic, \octave,-1,
	\degree, Pseq(#[
		rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,
		rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,
		rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,
		rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,rest,
		10,3,-1,-4, 8, 3,-1,-4, 7, 3,-1,-4, 8, 3,-1,-4, //Bar5
		11,4,1,-5,10,4,1,-5,9,4,1,-5,10,4,1,-5, //Bar6
		13,3,-1,-4,11,3,-1,-4,10,3,-1,-4,11,3,-1,-4, //Bar7
		10,3,-1,-7,8,3,-1,-7,6,5,10,8,15,11,17,15 //Bar8
		]),
));
//Violins Pat2
(
~pViolin2=Pbindef(\pcviolin2, \instrument, \violins, \gate,1, \envdur,4, \amp,0.4, \pan, -0.2, \atk, 0.15, \rel, 0.8, \dur,1/4, \legato, 1/3, \scale, Scale.chromatic, \octave,-1,
	\degree, Pseq([
		10,3,-1,-4, 8, 3,-1,-4, 7, 3,-1,-4, 8, 3,-1,-4, //Bar1
		8,1,-2,-6,6,1,-2,-6,5,1,-2,-6,6,1,-2,-6, //Bar2
		6,-1,-4,-7,5,-1,-4,-7,4,-1,-4,-7,5,-1,-4,-7, //Bar3
		5,-2,-6,-9,3,-2,-6,-9,2,-2,-6,-9,3,-2,-6,-9, //Bar4
		10,3,-1,-4, 8, 3,-1,-4, 7, 3,-1,-4, 8, 3,-1,-4, //Bar5
		11,4,1,-5,10,4,1,-5,9,4,1,-5,10,4,1,-5, //Bar6
		13,3,-1,-4,11,3,-1,-4,10,3,-1,-4,11,3,-1,-4, //Bar7
		10,3,-1,-7,8,3,-1,-7,6,5,10,8,15,11,17,15 //Bar8
		],inf),
));
//Viola
(
~pViola=Pbindef(\pviola, \instrument, \violas, \gate,1, \envdur,1.8, \amp,0.4, \pan, -0.5, \atk, 0.5, \dur,1/4, \scale, Scale.chromatic, \octave,-2,
	\degree, Pseq(#[
		-1,11,15,22,rest,rest,rest,rest,
		rest,11,22,20,25,22,20,15,
		-2,10,13,20,rest,rest,rest,rest,
		-2,rest,20,18,25,20,18,15,
		-4,8,11,18,rest,rest,rest,rest,
		-4,8,18,17,20,17,13,11,
		-9,-9,10,17,rest,rest,rest,rest,
		-6,6,17,15,20,18,25,23,
		-1,11,15,22,rest,rest,rest,rest,
		-1,11,22,20,27,22,20,15,
		-2,10,13,25,rest,rest,rest,rest,
		3,15,25,22,28,27,25,22,
		-4,8,15,23,rest,rest,rest,rest,
		-4,8,23,22,25,23,20,15,
		1,13,20,23,rest,rest,rest,rest,
		1,13,23,20,29,27,32,29,
		],inf),
));
//Cellos
(
~pCello=Pbindef(\pcello, \instrument, \cellos, \gate,1, \envdur,4, \amp,0.35, \pan, 0.4, \atk, 0.25, \dur,1/4, \scale, Scale.chromatic, \octave,-3,
	\degree, Pseq(#[
		-1,11,15,22,rest,rest,rest,rest,
		rest,11,22,20,25,22,20,15,
		-2,10,13,20,rest,rest,rest,rest,
		-2,rest,20,18,25,20,18,15,
		-4,8,11,18,rest,rest,rest,rest,
		-4,8,18,17,20,17,13,11,
		-9,-9,10,17,rest,rest,rest,rest,
		-6,6,17,15,20,18,25,23,
		-1,11,15,22,rest,rest,rest,rest,
		-1,11,22,20,27,22,20,15,
		-2,10,13,25,rest,rest,rest,rest,
		3,15,25,22,28,27,25,22,
		-4,8,15,23,rest,rest,rest,rest,
		-4,8,23,22,25,23,20,15,
		1,13,20,23,rest,rest,rest,rest,
		1,13,23,20,29,27,32,29,
		],inf),
));
//Basses
(
~pBass=Pbindef(\pbass, \instrument, \basses, \gate,1, \envdur,4, \amp,0.6, \pan, 0.5, \atk, 0.15, \dur,1/2, \scale, Scale.chromatic, \octave,-3,
	\degree, Pseq(#[
		-1,rest,rest,rest,
		-1,rest,rest,rest,
		-2,rest,rest,rest,
		-2,rest,rest,rest,
		-4,rest,rest,rest,
		-11,rest,rest,rest,
		-9,rest,rest,rest,
		-6,rest,rest,rest,
		-1,rest,rest,rest,
		-1,rest,rest,rest,
		-2,rest,rest,rest,
		-9,rest,rest,rest,
		-4,rest,rest,rest,
		-4,rest,rest,rest,
		1,rest,rest,rest,
		-11,rest,rest,rest,
		],inf),
));
//Drum
(
~pDrum=Pbindef(\pbdrum, \instrument, \bdrum, \gate,1, \amp,0.06, \pan, 0,  \loss,0.99995, \dur, 2,
	\freq, Pseq(#[
		0.0052,rest,
		rest,rest,
		0.0052,rest,
		rest,rest,
		],inf),
));
//Celesta
(
~pCelesta=Pbindef(\pcelesta, \instrument, \celesta, \gate,1, \amp,0.06, \pan, 0.8,  \rel, 2, \dur,1/2, \scale, Scale.chromatic, \octave,7,
	\degree, Pseq(#[
		14,3,7,3,
		11,3,7,3,
		12,2,5,2,
		9,2,5,2,
		10,0,3,0,
		8,0,3,0,
		9,-2,2,-2,
		6,-2,2,-2,
		14,3,7,3,
		11,3,7,3,
		15,5,8,5,
		13,5,8,5,
		17,3,7,3,
		14,3,7,3,
		14,3,7,3,
		10,3,7,3,
		],inf),
));

//Celesta2
(
~pCelesta2=Pbindef(\pcelesta2, \instrument, \celesta, \gate,1, \amp,0.1, \pan, -0.8,  \rel, 2, \dur,1, \scale, Scale.chromatic, \octave,7,
	\degree, Pseq(#[
		14,12,11,12,
		12,10,9,10,
		10,9,8,9,
		9,7,6,7,
		14,12,11,12,
		15,14,13,14,
		17,15,14,15,
		14,12,10,9
		],inf),
));

//Empty phrase.
(
~pEmpty=Pbindef(\pEmpty, \dur,0.25,
	\degree, Pseq(#[
		rest
		],128),
));
//Loop
(
~pLoop1=Pbind(\instrument, \loop1, \amp,1, \gate,1, \legato,10, \dur,2, \degree, Pseq(#[
	rest,rest,rest,rest,
	rest,rest,rest,rest,
	rest,rest,rest,rest,
	rest,rest,1,rest
],1));
);
//Loop2
(
~pLoop2=Pbind(\instrument, \loop2, \amp,1, \gate,1, \dur,32, \legato,1, \degree, Pseq([1],inf));
);

(
~laneFlute=Pseq([~pFlute],inf).play;
~laneOboe=Pseq([~pEmpty,~pOboe],inf).play;
~laneClarinet=Pseq([~pEmpty,~pClarinet],inf).play;
~laneViolin=Pseq([~pViolin1,~pViolin2],inf).play;
~laneViola=Pseq([~pEmpty,~pViola],inf).play;
~laneCello=Pseq([~pEmpty,~pCello],inf).play;
~laneBass=Pseq([~pEmpty,~pBass],inf).play;
~laneDrums=Pseq([~pEmpty,~pDrum],inf).play;
~laneCelesta=Pseq([~pCelesta],inf).play;
~laneCelesta2=Pseq([~pCelesta2],inf).play;
~laneLoop=Pseq([~pLoop1,~pLoop2]).play;
)

/*(
~laneFlute=Pseq([~pFlute],inf).play;
~laneOboe=Pseq([~pOboe],inf).play;
~laneClarinet=Pseq([~pClarinet],inf).play;
~laneViolin=Pseq([~pViolin],inf).play;
~laneViola=Pseq([~pViola],inf).play;
~laneCello=Pseq([~pCello],inf).play;
~laneBass=Pseq([~pBass],inf).play;
~laneDrums=Pseq([~pDrum],inf).play;
~laneCelesta=Pseq([~pCelesta],inf).play;
~laneCelesta2=Pseq([~pCelesta2],inf).play;
~laneLoop=Pseq([~pLoop2]).play;
)*/

)


Synth(\loop)

~loop.query

//Stop song.

(
~laneFlute.stop;
~laneOboe.stop;
~laneClarinet.stop;
~laneViolin.stop;
~laneViola.stop;
~laneCello.stop;
~laneBass.stop;
~laneDrums.stop;
~laneCelesta.stop;
~laneCelesta2.stop;
~laneLoop.stop;
)












//Koji Kondo, Sir you're a superb composer.
Author
418 PM
  • Platform:
  • Category: Composition Sound
  • Revision: 1.2 - Overall much better mix and better envelopes on some instruments.
  • License: GNU General Public License family
  • Views: 433
  • Modified: 5 months ago
Chat about this patch on Discord!
Appreciate

Leave a Reply