ryojiIkeda WIP style muziek made mit supercollider

(
~riff1_1={
	Saw.ar(24.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff1_2={
	Saw.ar(48.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff1_3={
	Saw.ar(96.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

// ***************************************************************************************** //

~riff2_1={
	Saw.ar(24.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)*4)),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)*4))
]};

~riff2_2={
	Saw.ar(48.midicps*[0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.5, 1.10, 1.15, 1.20, 1.25].choose) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff2_3={
	Saw.ar(96.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)*4)),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)*4))
]};

// ***************************************************************************************** //

~riff3_1={
	Saw.ar(24.midicps*0.5) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff3_2={
	Saw.ar(48.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff3_3={
	Saw.ar(96.midicps) * [
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(releaseTime:0.125),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

// ***************************************************************************************** //

~riff4_1={
	Saw.ar(24.midicps*[0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.5, 1.10, 1.15, 1.20, 1.25].choose) * [
		EnvGen.kr(Env.adsr(decayTime: 0.15, releaseTime:0.05),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(decayTime: 0.15, releaseTime:0.05),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff4_2={
	Saw.ar(48.midicps) * [
		EnvGen.kr(Env.adsr(decayTime: 0.15, releaseTime:0.05),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(decayTime: 0.15, releaseTime:0.05),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};

~riff4_3={
	Saw.ar(96.midicps*[0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.5, 1.10, 1.15, 1.20, 1.25].choose) * [
		EnvGen.kr(Env.adsr(decayTime: 0.15, releaseTime:0.05),ChaosGen.allSubclasses.choose.ar(rrand(1,30))),
		EnvGen.kr(Env.adsr(decayTime: 0.15, releaseTime:0.05),ChaosGen.allSubclasses.choose.ar(rrand(1,30)))
]};
)


(
~ryojiIkedaStyle = Task({
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;

		~riff2_1.play; ~riff2_2.play; ~riff2_3.play; 5.wait;  Server.freeAll;
		~riff2_1.play; ~riff2_2.play; ~riff2_3.play; 5.wait;  Server.freeAll;
		~riff2_1.play; ~riff2_2.play; ~riff2_3.play; 5.wait;  Server.freeAll;
		~riff2_1.play; ~riff2_2.play; ~riff2_3.play; 5.wait;  Server.freeAll;
		~riff2_1.play; ~riff2_2.play; ~riff2_3.play; 5.wait;  Server.freeAll;
		~riff2_1.play; ~riff2_2.play; ~riff2_3.play; 5.wait;  Server.freeAll;

		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;

		~riff4_1.play; ~riff4_2.play; ~riff4_3.play; 5.wait;  Server.freeAll;
		~riff4_1.play; ~riff4_2.play; ~riff4_3.play; 5.wait;  Server.freeAll;
		~riff4_1.play; ~riff4_2.play; ~riff4_3.play; 5.wait;  Server.freeAll;
		~riff4_1.play; ~riff4_2.play; ~riff4_3.play; 5.wait;  Server.freeAll;
		~riff4_1.play; ~riff4_2.play; ~riff4_3.play; 5.wait;  Server.freeAll;
		~riff4_1.play; ~riff4_2.play; ~riff4_3.play; 5.wait;  Server.freeAll;

		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
		~riff1_1.play; ~riff1_2.play; ~riff1_3.play; 5.wait; Server.freeAll;
}).play;
)

~RyojiIkedaStyle.stop;
~RyojiIkedaStyle.play;
3 Likes

Thanks for sharing. I am getting some warnings about group 1 not being found. I guess it has to do with the server freeing all nodes while trying to add newones simultaneously. So, what about creating a dedicated group with for example
g = Group.tail(0);
then playing the riffs on it:
~riff1_1.play(g); ~riff1_2.play(g); ~riff1_3.play(g);
and using deep free for releasing all the synths in the group without loosing the group
g.deepFree;