Super Cool SuperCollider Synthesis Challenge (Prize)?

I think a bit of distortion, and some short delay and reverb to add that extra tapey fuzz would add that missing bit!

That’s what I pretty much did with mine. I was out of steam toward the end, so I didn’t really put much effort into the reverb, but in listening over and over to BoC’s version I thought that some of the lush graininess was coming from that type of processing in their signal chain. And of course tape sound…!

So, since there aren’t enough votes or interest, I suppose I’m not doing the shirt thing

That was really fun though!

Want to do another? @thresholdpeople @Eric_Sluyter (and anyone else)

i’m down to do another!

have a specific piece in mind?

I don’t have anything specific in mind at the moment. All ideas welcome

As much as I loathe the sound due to it’s overuse and usually obnoxious genre, how about modern dubstep bass? The more harsh, modulated, complex, annoying, and robotic…the better. I think it represents a certain checkpoint in the progression of synthesis, and I haven’t seen anyone attempt it in Supercollider to real extent.

This is the sound I’m talking about:

The guy and sound in this video in particular highlight the irritating noise I’m talking about.

As bad as it is, I do think it encompasses a lot of synthesis techniques, and I’d be curious to see what people come up with!

Of course, if y’all don’t like this idea, I’m all ears.

(
SynthDef(\bass, {
	var snd, auto, freq, trig;
	freq = \freq.kr(40);
	trig = ToggleFF.ar(Dust.ar(8));
	auto = trig.lagud(0.1, 0.3);
	snd = Saw.ar(freq);
	snd = Splay.ar(snd);
	snd = (snd * 3).fold2;
	snd = RLPF.ar(snd, freq * 10, 0.1);
	snd = (snd * 5).fold2;
	snd = RLPF.ar(snd, freq * 8 * TRand.ar(1, 4, trig), 0.5);
	snd = (snd * 5).fold2;
	snd = MoogFF.ar(snd, auto.linexp(0, 1, 100, 8000), 0);
	snd = snd + DelayC.ar(snd, 0.01, SinOsc.ar(0.5, [0, pi]).range(0, 0.001));
	snd = (snd * 3.dbamp).tanh;
	Out.ar(\out.kr(0), snd);
}).play;
)
4 Likes

HAHAAA! Oh man, you nailed it :rofl:

It’s amazing how concise that is really, just multiplying and folding over itself a few times with RLPF in between…

Ok, you win, so what’s next? @nathan you got any ideas?

Thanks. Typically this is done with a wavetable synth, but I found a way to get the rich, metallic spectrum entirely using wavefolding. The other half of the trick is to alternate nonlinearities and EQ filters, which gives you really dirty and intense distortion.

Another fun option is to use Au5’s HyperGrowl method. I have old some code for that in Python/NumPy that generates a variable wavetables which I then use in VOsc.

As for what to do next, how about synthesizing an entire drum kit? At least kick+snare+hat, other sounds welcome.

1 Like

Right! I’ve done it in Serum with wavetables a dozen times, but never like that.

I’d be interested in that Python code if it’s something you’d share? Understand if not.

And yes, I think a drum kit is a good idea. Again I’m pretty new so it won’t be great, but I’m going to try to do something different than just a typical 808-ish thing. It’ll take me a week or so probably since I’m studying for this stupid IT cert…

any attempts on this one? :slight_smile:

Interesting. @nathan Can you export the Wavetable directly from serum into SuperCollider? Why do you need the Python /NumPy?

Oh… Here is some kind of WT converter by a SC forum member. Maybe something like this could do it…

1 Like

@Scott_Lawrence_Simon I’ve played with that, not bad.

I use Alik’s method of using wavetables from this video:

@dietcv is that song made with SC? I’m taking a while on this one. I have been working on a snare loosely based on a SOS article, but with my own flavor, and it’s taken up a lot of time. I should have a basic kit in a week.

1 Like

i think he is using lazorbass for synthesis and max for sequencing, tried out some chords with formant shift windowed sync or phase distortion but it sounds way more sharp.

(
SynthDef(\phase, {
	arg out=0, pan=0, amp=0.25, freq=110, 
	mRatio=1.5, cRatio=1, widthMod=0.5;
	
	var sig, saw, sine;
	var width = SinOsc.ar(widthMod!2).range(\widthMin.kr(0.15), \widthMax.kr(0.50).clip(0.001,0.999));
	
	saw = LFSaw.ar(mRatio * freq, 1).linlin(-1,1, width.neg, 1-width);
	saw = saw.bilin(0, width.neg, 1-width, 0, -0.5, 1);
	sine = (Select.ar(saw>0, [0.5+saw, saw]) * 2pi).sin;

	sig = SinOsc.ar(
		cRatio * freq * [1.001, 1],
		phase: sine * MouseY.kr(0, 7)
	);

	sig = Pan2.ar(sig, pan, amp);
	Out.ar(out, sig);
}).add;
)

(instrument: \phase, midinote: [57,60,64,65,70]).play;
2 Likes

I didn’t use Serum at all, the idea was to generate and re-sample the detuned oscillators entirely in Python.

1 Like

Recently I came across this Chariots of Fire with the \default Synth :

http://sccode.org/1-1QI

I would be amazing to have the full synthesized version made on SC! I would be our athem :rofl:!

Haha! Fortunately there’s a guy that attempted this on YouTube, I wrote it down and have a copy:

// Vangelis from studioTTTguTTT on YouTube: https://www.youtube.com/watch?v=zLJ1gcw0xbc-poison0ak

(
SynthDef(\vangelis, {
	var freq, osc1, osc2, freq1, freq2, env, pitch, amp, sig, lfo1, pitch2, fenv;
	amp = \amp.kr(0.85, 0.017);
	env = EnvGen.ar(Env.asr(\atk.kr(0.41), 1, \rel.kr(4.1), \crv.kr(0)), \trig.kr(1));
	fenv = EnvGen.ar(Env.asr(\fatk.kr(1.6), 1, \frel.kr(4.7), \fcrv.kr(0)), \trig.kr(1));
	lfo1 = SinOsc.kr(\lffreq.kr(0.06));
	freq = \freq.kr(440, 0.017);
	freq2 = freq + (lfo1*(\detune.kr(0.06)));
	osc1 = Saw.ar(freq);
	osc2 = Saw.ar(freq2);
	sig = Mix.ar( [osc1, osc2] );
	sig = RLPF.ar(sig, (\lpfreq.kr(6000)*env)+10);
	sig = JPverb.ar(sig, \revtime.kr(4), \damp.kr(0), \size.kr(4));
	Out.ar(\out.kr(0), sig*env*amp);
}).add;
)

a = Synth(\vangelis, [\freq, 261])
a.set(\trig, 0)

It needs some tweaking to be usable though.

Source:

3 Likes

This SynthDef is a masterpiece, I love it. It would be great if you could explain to the newbies some of the code you are using: laguad, fold2, dbamp…

Thank you. I’ve responded in a new thread: Video: Making dubstep bass sounds without wavetables

2 Likes

Great. I really appreciate it. I’m eager to watch it.