Latin American Algorithmic Music in SuperCollider

Hi my name is José
I create this Algorithmic Music in SuperCollider, I’m from Colombia - Latin America, enjoy!

Jose Ignacio Quevedo Gómez:

MUSICAL CV:

He is a Colombian & Latin American mainly Algorithmic Composer but as well Electroacoustic Composer. Born in Medellín city_Colombia_Latin America (1976).

He has been mainly self-taught student in Algorithmic and Electroacoustic Composition and Software but:

He has taken a SuperCollider Workshop with Mexican Composer Michel Soto (UNAM) - National Autonomous University of Mexico_Mexico., M.A.; and a SCAMP (Suite for Composing Algorithmic Music in Python) Workshop with U.S.A. Composer Marc Evanstein (University of California Santa Barbara_U.S.A.), PhD. He has taken private lessons of SuperCollider with Greek Composer Iannis Zannos, PhD, writer of one chapter of the SuperCollider MIT Book.

He uses SuperCollider, SCAMP, Csound and ChucK for his Compositions, and actually training himself in Arduino as a self-taught student. As Operating Systems He uses Linux and W10.

He is homologating his Music Undergraduate at UNAD - National Open and at Distance University_Colombia_Latin America. And Has a Corporate Undergraduate finished in Electroacoustic Music Composition and Music Production from Atlantic International University_Honolulu_Hawaii_U.S.A. As well He has a Music Certificate finished in Electronic Music Production and Sound Design from Berklee College of Music Online_Boston_Massachusetts_U.S.A.

NON MUSICAL CV:

He study as well a Computer Science Undergraduate at Areandina University Foundation_Colombia_Latin America. And an Electronic Engineering Undergraduate at UNAD - National Open and at Distance University_Colombia_Latin America. He has a Linux Technical Degree in Education IT_Buenos Aires_Argentina_Latin America. He is doing a self-taught Undergraduate in Pure and Applied Mathematics as well.

1 Like

Code from my “Lulu and Sasha in Mars” track:

/////////////////////Step # 1////**

(((
		~n=3;
SynthDef.new(\bellA,{
	arg freq=4, amp=1;
	var fund, harm1,harm2,harm3,harm4,harm5,harm6,harm7,harm8,harm9,harm10,harm11,harm12,harm13,harm14,harm15,harm16,harm17,harm18,harm19,harm20,sig,env;
	//envelope
	env=EnvGen.kr(Env.perc(0.0001,1));
	//spectral content
	sig=Klang.ar(`[
		[1]++Array.rand((~n-1),1,30000).sort,
		Array.rand(~n,0.01,0.5).sort.reverse,
		Array.rand(~n,0,pi)
		],freq);
	sig=sig*env;
	//effects
	sig=Pan2.ar(sig,0);
	//output
	Out.ar(0,sig);
}).play;
)
+
(
		~n=3;
SynthDef.new(\bellA,{
	arg freq=4, amp=1;
	var fund, harm1,harm2,harm3,harm4,harm5,harm6,harm7,harm8,harm9,harm10,sig,env;
	//envelope
	env=EnvGen.kr(Env.perc(1,3));
	//spectral content
	sig=Klang.ar(`[
		[1]++Array.rand((~n-1),1,30000).sort,
		Array.rand(~n,0.01,0.5).sort.reverse,
		Array.rand(~n,0,pi)
		],freq);
	sig=sig*env;
	//effects
	sig=Pan2.ar(sig,0);
	//output
	Out.ar(0,sig);
}).play;
)
+
(
		~n=3;
SynthDef.new(\bellA,{
	arg freq=4, amp=1;
	var fund, harm1,harm2,harm3,harm4,harm5,sig,env;
	//envelope
	env=EnvGen.kr(Env.perc(0.0001,5));
	//spectral content
	sig=Klang.ar(`[
		[1]++Array.rand((~n-1),1,30000).sort,
		Array.rand(~n,0.01,0.5).sort.reverse,
		Array.rand(~n,0,pi)
		],freq);
	sig=sig*env;
	//effects
	sig=Pan2.ar(sig,0);
	//output
	Out.ar(0,sig);
}).play;
)
)
)

//////////////////Step # 2////**

(
(
(
{{(
(
{{(~rut=Routine({
	{
	p = Pbind(*[
	instrument: (\bellA),
			freq: Pseq(Array.rand(1000, 0.001, 500)),
			db: Pseq([-10, -20, -40, -50], inf),
					pan: Pseq([-1,0,1,0], inf),
					dur: Pseq(Array.rand(1000, 0.00001, 1)),
]);

					p = Pbind(*[
	instrument: (\bellA),
			freq: Pseq(Array.rand(1000, 0.001, 5000)),
			db: Pseq([-10, -20, -40, -50], inf),
					pan: Pseq([-1,0,1,0], inf),
					dur: Pseq(Array.rand(1000, 0.00001, 2)),
]);

					p = Pbind(*[
	instrument: (\bellA),
			freq: Pseq(Array.rand(1000, 0.001, 50)),
			db: Pseq([-10, -20, -40, -50], inf),
					pan: Pseq([-1,0,1,0], inf),
					dur: Pseq(Array.rand(1000, 0.00001, 3)),
]);


		p.play;
		Array.rand(1000, [1,3,4,5,7], [8]).wait;
	}.loop;
}).play;
)
+
p.play;
		Array.rand(100, [1,3,4], [3]).wait;
	}.loop;
}).play;
)
+
p.play;
		Array.rand(10, [1,2,4,6], [10]).wait;
	}.loop;
}).play;
)
)


/////////////////////Step # 3 ////**

(
SynthDef.new(\drum, {
	var input, sig, env, env1, impact;
	impact=SinOsc.ar(120, 0, 1.5);
	env1=EnvGen.kr(Env.perc(0.001,0.25));
	impact=impact*env1;
		input=WhiteNoise.ar(0.8);
		sig=LPF.ar(input, XLine.kr(30, 800));
		env=EnvGen.kr(Env.perc(0.001, 0.6));
			sig=sig*env;
			sig=sig+impact;
			sig=Pan2.ar(sig,0);
			Out.ar(0,sig);
}).play;

SynthDef.new(\snare, {
	var input, sig, env, env1, impact;
	impact=SinOsc.ar(120, 0, 0.1);
	env1=EnvGen.kr(Env.perc(0.001,0.25));
	impact=impact*env1;
		input=WhiteNoise.ar(0.8);
		sig=HPF.ar(input, XLine.kr(300, 180));
		env=EnvGen.kr(Env.perc(0.001, 0.5));
			sig=sig*env;
			sig=sig+impact;
			sig=Pan2.ar(sig,0);
			Out.ar(0,sig);
}).play;

SynthDef.new(\guitar, {
	arg amp=1, freq=4;
	var harm1, harm2, harm3, harm4, sig, env;
		env=EnvGen.kr(Env.perc(0.01,1.8));
		sig=Klang.ar(`[Array.rand(1,1.0,30).sort],freq);
			sig=sig*env;
			sig=Pan2.ar(sig,0);
			Out.ar(0,sig);
}).play;
)

/////////////////////Step # 4 ////**

(
~tempo=XLine.kr(10, 150, 10);
Pbind(
		\instrument,\guitar,
	\dur,Prand([0.25,0.5, 1/3, 1, 0.125],inf),
	\amp,0.2,
	\freq,Pseq([
		Pseq([[60,61,62],[63,120,50,37]]),
		Pseq([100, 63, 40, 56, 23],8),
		Prand([20, 59, 37, 70, 124, 80],5)
	].midicps,inf),
).play(TempoClock(~tempo/60));

Pbind (
\instrument,\snare,
\dur,Pwrand.new(
		[
				Pseq([0.25], 5),
		Pseq([Pseq([1/3], 15), Pseq([1/8], 6)],1),
	],
		[30,70].normalizeSum,inf),
	\amp,1,
).play(TempoClock(~tempo/60));

Pbind(
	\instrument,\drum,
	\dur,Pwrand(
		[
			Pseq([0.25],5),
			Pseq([Pseq([1/3], 5),Pseq([1/8],4)],1),
			Pseq([Pseq([0.5],7),Pseq([1/3],3)],1),
			Pseq([Pseq([0.125],3),Pseq([1/8],9)],1),
	    ],
		[30,15,15,40].normalizeSum,inf),
	\amp,4,
).play(TempoClock(~tempo/60));
)