Richard Devine power

Hi community,

Richard Devine is preparing another amazing release

https://www.facebook.com/watch/?ref=saved&v=1663523363836964

I have a question, after trying unsuccessfully to reproduce the phased lead we hear at 1:30 I come to ask you all in case someone would have a clue how to do it.

the code below clips a little and get as close as I could get to it

/// goes from up to down (MouseY) with the mouse

~b2 = Buffer.alloc(s,48000,1);

SynthDef(\example, {arg flangefreq=0.3, fdback=(-1),in,tS=1,dur,out=0,flangMod,ph=1.6;

		var input, effect;

	input=  Saw.ar( MouseY.kr(216,   1096));

		input= input+ LocalIn.ar(1);

		effect= DelayN.ar(input,0.02,SinOsc.kr(MouseY.kr(0.084/8,20),ph,0.005,0.005)); 

		LocalOut.ar(fdback*effect);

	Out.ar(out,
		
		BBandPass.ar( 
			
		
		BufCombC.ar(~b2.bufnum, 
				Decimator.ar(
			effect
					,MouseY.kr(44100,4000),MouseY.kr(21,6) ),
			MouseY.kr(0.024,0) +SinOsc.kr(MouseY.kr(0.024,0.6),1.6).range(0.0008,0.02)
		,-0.5)
		
			,MouseY.kr(19100,1200),0.5	)
		
		
			*0.008  !2 /** EnvGen.kr(Env.step([1,1],[dur,0]),timeScale: tS,doneAction: 2)*/);
	}).play;

I did message the artist and waiting to hear back but nearly sure this is done via hardwares so yeah what about SC ^^

Thanks !

This looks like the set he did for FluCoMa… did you see that here:

There is also the fantastic @Sam_Pluta earlier in the gig, and @ecila and Chris Keifer opened the gig, so SC was well represented :slight_smile:

In all cases, for Richard’s sound design, I’m sure it is very highly hybrid as he explains in this video:

I hope this helps untangle it all :smiley:

2 Likes

im gonna check theses resources thank you ^^

It is a true source of inspiration, going rethink the main way to build leads in songs for a more organic overProcessed approach =DDDD

i got an answer from Richard Devine explaining

the Odessa additive oscillator running through a modcan dual phaser

what a legend, <3

2 Likes

is there an implementation of the Odessa for SC?

Not a direct implementation of the Odessa but some twisted concepts to attain some flangy sounds using looping

	SynthDef(\combIn,{|out,in|
	var i, a,list,index;
i =68.rrand(64);// dont ask i went in that range to fit a bigger setup using many audio channels
a=63;
	index=0;

	list =(a..i);


	list.size.do{

		Out.kr(list[index], [Saw,LFTri,SinOsc,Osc][4.rand].kr(bufnum:~stepBreath ,freq:[6.00.rand,0.1.rand][2.rand],iphase:5.rand,phase:5.rand,mul:[Saw,LFTri,SinOsc,Osc][4.rand].kr(bufnum:~stepBreath ,freq:6.00.rand,iphase:5.rand,phase:5.rand).range([1,-1][2.rand],0)).range([50.rrand(0.00001),0.1.rrand(0.005)][2.rand],[50.rrand(0.0001),0.1.rrand(0.005)][2.rand]));index=index+1;
	};

	index=0;

	Out.ar([i,i+1],Saw.ar(1000.rand));
		while({ i>a},{ Out.ar( [a,a+1],  [CombL,CombN][2.rand].ar(In.ar([a+2,a+3],2),4.00.rand,

	delaytime:	[	In.kr(list[i-a+index])*1.00.rand,In.kr(list[i-a+index])]
	,decaytime:60.rand));a = a +1;index=index+1;index});

		Out.ar(out,In.ar([63,64],2));

	}).play;

the one below is probably the ultimate over complicated ensemble but does work, all theses are working over repeatting the code until it sounds rich enough

	~value=1.00;
~numberOfGateShape=18.rrand(6);
~time = (1..~numberOfGateShape);
~tmp=0;
i = 0;
while ( { i < ~time.size }, {
	if (i+1 == ~time.size,{
		~time[i]=~value;
		~time.scramble;
	},{
		~tmp=~value.rrand(0.1).round(0.1);
	~time[i]=~tmp;
		~value=~value-~tmp;});
	 i = i + 1;
});
i = 0;



~stepBreath2.loadCollection(Env.step((1..~numberOfGateShape).rrand(-9),~time).asSignal(2048).asWavetable;);


SynthDef(\combIn2,{|out,in|
	var scale =[Scale.major, Scale.minor,Scale.chromatic][3.rand];
	Out.ar(out,CombL.ar(
		Saw.ar(1000.rand)*[[SinOsc,LFPulse,Saw][3.rand].kr(6.00.rand,-1).range(1,0),1][2.rand]*0.1
		/*Saw.ar(1000.rand,Saw.kr(3,-1).range(1,0))*/,1080,


		delaytime:[ (DegreeToKey.kr(  scale.as(LocalBuf),Osc.kr(~stepBreath2,1).range(1,12.rrand(-24))+SinOsc.kr(0.04).range(9,14)))*[SinOsc,LFTri,Saw][3.rand].kr(5.00.rand).range(0.005.rand,0.005.rand) /*0.00005.rand*/
,

			(DegreeToKey.kr(  scale.as(LocalBuf),Osc.kr(~stepBreath2,1).range(1,12.rrand(-24))+SinOsc.kr(0.04).range(9,14)))*[SinOsc,LFTri,Saw][3.rand].kr(5.00.rand).range(0.004.rand,0.004.rand) /*0.00004.rand*/

		]

		,decaytime: 400
		))
}).play;

Check out my additive Synthesis Thread, where I have implemented some ideas from xaoc Odessa Additive Synthesis - #47 by dietcv