Hi everyone,
I had never approached sc with a mentality more linked to the world of music production as I found in Nathan’s tutorials, so with a little patience I tried to redo his tutorials and some songs
In the latter, I must say that there are many interesting ideas and the kicks sound good.
I find it also interesting from a pedagogical point of view to have references that are not too complex.
I think it would be fascinating to try with other types of synthesis, wavetable, FM/PM etc…
I also find useful to use the VST plugin, both to view the spectrum clearly and to practice using a plugin for mastering if needed.
Here an article about this topic Drop It: The Kick in Electronic Music | Ableton
SC_240106_142831.aiff (441.1 KB)
I attach the unmodified file resulting from studying the tutorial.
// step 1 for Glue = Distorsion
// parallel distorsion snd + (snd.tanh)
(
SynthDef(\snare,{
var snd, ratio, dur, amps;
ratio = [1, 2.3, 3.5, 5.8];
dur = [2, 0.4, 0.2, 0.1];
amps = [0, -20, -12, -18].dbamp;
snd = SinOsc.ar(180 * (1 + (2 * Env.perc(0.001, 0.03).ar)) *ratio );//ratio
snd = snd * Env.perc(0,dur ).ar; // dur partials
snd = snd * (amps * -22.dbamp);
snd = snd.sum;
snd = snd + (BPF.ar(Hasher.ar(Sweep.ar),2120,0.3) * Env.perc(0.05, 0.1).ar * -3.dbamp);
snd = snd +((snd * 13.dbamp).tanh * 12.dbamp); // distorsione parallela con volume e amp dist
snd = snd * Env.perc(0.001, 0.3,curve: -6).ar(Done.freeSelf);
snd = snd * \amp.kr(-5.dbamp);
snd = Pan2.ar(snd,\pos.kr(0));
Out.ar(\out.kr(~visionBus),snd);
}).play;
SynthDef(\Kickacoustic,{
var snd;
snd = SinOsc.ar(65 * (1 + (4 * Env.perc(0, 0.13 ,curve: -8).ar))
* XLine.ar(1, 0.5, 1) * [1, 1.3, 3.4, 3.6, 4.2, 8.3, 9.4]);
snd = snd * [0, -10, -6, -8, -20, -20, -25].dbamp;
snd = snd * Env.perc(0,
[1, 0.3, 0.015, 0.01, 0.03, 0.04, 0.05],
[1, 0.3, 0.1, 0.03, 0.05, 0.1, 0.6] * 3).ar;
snd = snd.sum;
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01)) * Env.perc(0.0001,0.01).ar * -5.dbamp);
snd = snd + (BPF.ar(Hasher.ar(Sweep.ar), 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
//snd = snd * (1 + (2 * Env.perc(0.001,0.2).ar));// dist env
snd = (snd * -12.dbamp).tanh;
snd = LeakDC.ar(snd);
snd = snd + (GVerb.ar(snd, 6, 1) * -30.dbamp);
snd = snd * Env.perc(0.001,1.3,level: -3).ar(Done.freeSelf);
//snd = Pan2.ar(snd,\pos.kr(0));
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).add;
)
Synth(\Kickacoustic).play(s, ~visionBus);
Synth(\snare).play(s, ~visionBus);
(
var s, bpm, beat;
s = Server.default;
bpm = 80;
beat = 60 / bpm; // quarti
~a = Routine({
// Loop principale
loop {
s.bind { Synth(\Kickacoustic) };
(beat).wait;
s.bind {Synth(\snare) };
(beat).wait;
};
});
)
~a.stop;
~a.reset.play;
// Gverb fatness
(
SynthDef(\Kickacoustic,{
var snd;
snd = SinOsc.ar(65 * (1 + (4 * Env.perc(0, 0.13 ,curve: -8).ar))
* XLine.ar(1, 0.5, 1) * [1, 1.3, 3.4, 3.6, 4.2, 8.3, 9.4]);
snd = snd * [0, -10, -6, -8, -20, -20, -25].dbamp;
snd = snd * Env.perc(0,
[1, 0.3, 0.015, 0.01, 0.03, 0.04, 0.05],
[1, 0.3, 0.1, 0.03, 0.05, 0.1, 0.6] * 3).ar;
snd = snd.sum;
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01)) * Env.perc(0.0001,0.01).ar * -5.dbamp);
snd = snd + (BPF.ar(Hasher.ar(Sweep.ar), 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
//snd = snd * (1 + (2 * Env.perc(0.001,0.2).ar));// dist env
snd = (snd * -12.dbamp).tanh;
snd = LeakDC.ar(snd);
snd = snd + (GVerb.ar(snd, 6, 1) * -30.dbamp);
snd = snd * Env.perc(0.001,1.3,level: -3).ar(Done.freeSelf);
//snd = Pan2.ar(snd,\pos.kr(0));
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// additive synt for more acoustic like sound
(
SynthDef(\Kickacoustic,{
var snd;
snd = SinOsc.ar(65 * (1 + (4 * Env.perc(0, 0.13 ,curve: -8).ar))
* XLine.ar(1, 0.5, 1) * [1, 1.3, 3.4, 3.6, 4.2, 8.3, 9.4]);
snd = snd * [0, -10, -6, -8, -20, -20, -25].dbamp;
snd = snd * Env.perc(0,
[1, 0.3, 0.015, 0.01, 0.03, 0.04, 0.05],
[1, 0.3, 0.1, 0.03, 0.05, 0.1, 0.6] * 3).ar;
snd = snd.sum;
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01)) * Env.perc(0.0001,0.01).ar * -5.dbamp);
snd = snd + (BPF.ar(Hasher.ar(Sweep.ar), 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
//snd = snd * (1 + (2 * Env.perc(0.001,0.2).ar));// dist env
snd = (snd * -12.dbamp).tanh;
snd = snd * Env.perc(0.001,1.3,level: -3).ar(Done.freeSelf);
snd = Pan2.ar(snd,\pos.kr(0));
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickacoustic,{
var snd;
snd = SinOsc.ar(55 * (1 + (4 * Env.perc(0, 0.13 ,curve: -8).ar))
* XLine.ar(1, 0.5, 1) * [1, 1.3, 3.4, 3.6, 4.2, 8.3, 9.4]);
snd = snd * [0, -10, -6, -8, -20, -20, -15].dbamp;
snd = snd * Env.perc(0,
[1, 0.3, 0.015, 0.01, 0.03, 0.04, 0.05],
[1, 0.3, 0.1, 0.03, 0.05, 0.1, 0.6] * 3).ar;
snd = snd.sum;
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01)) * Env.perc(0.0001,0.01).ar * -5.dbamp);
snd = snd + (BPF.ar(Hasher.ar(Sweep.ar), 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
//snd = snd * (1 + (2 * Env.perc(0.001,0.2).ar));// dist env
snd = (snd * -12.dbamp).tanh;
snd = snd * Env.perc(0.001,1.3,level: -3).ar(Done.freeSelf);
snd = Pan2.ar(snd,\pos.kr(0));
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// Changing noises
(
SynthDef(\Kickasimenv,{
var snd;
snd = SinOsc.ar(55 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)) * XLine.ar(1,0.6,1));
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(Hasher.ar(Sweep.ar) , 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd * (1 + (2 * Env.perc(0.001,0.2).ar));// dist env
snd = ((snd * -3.dbamp)).tanh;
snd = snd * Env.perc(0.001,1.3,level: -8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// Env Asimmetrical distortion
(
SynthDef(\Kickasimenv,{
var snd;
snd = SinOsc.ar(55 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)) * XLine.ar(1,0.6,1));
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd * (1 + (2 * Env.perc(0.001,0.2).ar));// dist env
snd = ((snd * -3.dbamp)).tanh;
snd = snd * Env.perc(0.001,1.3,level: -8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// Asimmetrical distortion
(
SynthDef(\Kickasim,{
var snd;
snd = SinOsc.ar(55 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)) * XLine.ar(1,0.6,1));
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = ((snd * -3.dbamp) + 0.6).tanh;
snd = snd * Env.perc(0.001,1.3,level: -8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// Loose freq focus
// the kick are long...
(
SynthDef(\Kicktanh,{
var snd;
snd = SinOsc.ar(55 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)) * XLine.ar(1,0.6,1));
snd = snd + (SinOsc.ar(XLine.ar(4000,50,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * 3.dbamp).tanh;
snd = snd * Env.perc(0.001,1.3,level: -8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
/*
distort, softclip, clip2, fold2, wrap2,
abs, max, squared, cubed
*/
(
SynthDef(\Kickclip,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(4000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * -20.dbamp).clip(0.01, 0.1);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * 10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickpow,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.pow(0.1);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = Limiter.ar(snd);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickpow,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd =(snd * -0.dbamp).pow(1.2);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = Limiter.ar(snd);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickscubed,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.cubed;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kicksquared,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.squared;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickmax,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.max(Rand(0.01,1));
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickmax,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.max;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickabs,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.abs;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickwrap2,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.wrap2(Rand(0.1,1));
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickflod2,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.fold2;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickflod2,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.fold2(Rand(0.1,1));
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kicksoftclip,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.softclip;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kicksoftclip,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * 0.dbamp).softclip;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickdistort,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.distort;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickdistort,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * -6.dbamp).distort;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickdistort,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * 10.dbamp).distort;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickclip2,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * -3.dbamp).clip2;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kickclip2,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * -0.dbamp).clip2;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kicktanh,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd.tanh;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kicktanh,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = (snd * 8.dbamp).tanh;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// Noise filtered Kick
(
// choose the fre of the noise based on the hi hat and snare
SynthDef(\KickBPF,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01) * Env.perc(0.0001,0.01).ar * -5.dbamp));
snd = snd + (BPF.ar(WhiteNoise.ar, 10120, 0.5) * Env.perc(0.001,0.03).ar * -8.dbamp);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\KickBPF,{
var snd;
snd = BPF.ar(WhiteNoise.ar, 19120, 0.1) * Env.perc(0.001,0.03).ar;
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// 2 sines well fused
(
SynthDef(\KickClick,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(ExpRand(1e+3,1e+4).poll,100,0.01)) * Env.perc(1e-4, 0.01).ar * Rand(-40,10).poll.dbamp);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\KickClick,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(ExpRand(1e+3,1e+4).poll,100,0.01)) * Env.perc(1e-4, 0.01).ar * 0.dbamp);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\KickClick,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01)) * Env.perc(0.0001, 0.01).ar * Rand(-40,10).poll.dbamp);// less presence
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\KickClick,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01)) * Env.perc(0.0001, 0.01).ar * -10.dbamp);// less presence
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\KickClick,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01)) * Env.perc(0.0001, 0.01).ar);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\KickClick,{
var snd;
//snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = (SinOsc.ar(XLine.ar(8000,100,0.01)) * Env.perc(0.0001, 0.01).ar);
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
{SinOsc.ar(XLine.ar(8000,100,0.01)) * Env.perc(0.0001, 0.01).ar * Env.perc(0.001,0.8).ar(Done.freeSelf)!2}.play(s,~visionBus);
a ={SinOsc.ar(XLine.ar(8000,100,0.01)) * Env.perc(0.001,0.8).ar(Done.freeSelf)!2}.play(s,~visionBus);
a.free
// add another fast sine ~
// u can clearly hear 2 separeted sines
(
SynthDef(\KickClick,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd + (SinOsc.ar(XLine.ar(8000,100,0.01))); // crude way
snd = snd * Env.perc(0.001,0.8).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// \KickFat
(
SynthDef(\KickFat,{
var snd;
snd = SinOsc.ar(50 * (1 + (8 * Env.perc(0.001,0.3,curve: -8).ar)));
snd = snd * Env.perc(0.001,1.01 ).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
Env.perc(0.001,0.3,curve: -8).plot
// Laser efx longer mod Env.perc(0, 0.3).ar
(
SynthDef(\Kick,{
var snd;
snd = SinOsc.ar(60 * (1 + (3 * Env.perc(0.001,0.3).ar))
* (1 + (8 * Env.perc(0, 0.3).ar)));// cosi è 1+8 = 9 240 hz
snd = snd * Env.perc(0.001,0.3).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// Maggior attacco work on transient
// mettendo una doppia modulazione diventa più punchy arriva intorno ai 3k, prima lo spettro era a 1k..
// 240*9 = 2160 It should be around, obviusly in 0.01 sec
(
SynthDef(\Kick,{
var snd;
snd = SinOsc.ar(60 * (1 + (3 * Env.perc(0.001,0.3).ar))
* (1 + (8 * Env.perc(0, 0.01).ar)));// cosi è 1+8 = 9 240 hz
snd = snd * Env.perc(0.001,0.3).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
(
SynthDef(\Kick,{
var snd;
snd = SinOsc.ar(60 * (1 + (4 * Env.perc(0.001,0.3).ar)));// cosi è 1+3 = 4 240 hz
//snd = SinOsc.ar(60 * (1 + (3 * Env.perc(0.001,0.3).ar)));// cosi è 1+3 = 4 240 hz
//snd = SinOsc.ar(60 * (1 + (1 * Env.perc(0.001,0.3).ar)));// cosi è 1+1 = 2 120 hz
snd = snd * Env.perc(0.001,0.3).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -10.dbamp;
Out.ar(\out.kr(~visionBus), snd);
}).play;
)
// parte da 240 e si ferma a 60
{SinOsc.ar(60 * (1 + (4 * Env.perc(0.001,5).ar)))!2}.play(s,~visionBus)
// va al di sotto del 60 hz alla fine
a ={SinOsc.ar(60 * (4* Env.perc(0.001,5).ar))!2}.play(s,~visionBus) ;
a.free;
(
SynthDef(\Kick,{
var snd;
snd = SinOsc.ar(60);
snd = snd * Env.perc(0.001,0.3).ar(Done.freeSelf);
snd = snd ! 2;
snd = snd * -12.dbamp;
Out.ar(\out.kr(0), snd);
}).play;
)
(
// for visualization porposes only!
SynthDef(\vision,{
var snd;
snd = In.ar(\in.kr(0),2);
ReplaceOut.ar(\out.kr(1),VSTPlugin.ar(snd,2,id: \vision));
}).add;
)
~visionBus = Bus.audio(s, 2);
// search of available VST plugins in the default VST search paths
VSTPlugin.search;
~vision = VSTPluginController(Synth(\vision,[in:~visionBus, out: 0]),id: \vision);
~vision.open("VISION 4X",editor:true, verbose: true);
~vision.editor;
//https://www.tomhall.xyz/project/maxmsplivestream1/
If you want to share your kicks or snares or just start exploring these materials, let’s have fun!
Ps: I just found this SynthDEFaults