We’ve updated our Terms of Use to reflect our new entity name and address. You can review the changes here.
We’ve updated our Terms of Use. You can review the changes here.

Instrumental 180218

from Demos etc. by The Wiggly Tendrils

subscriber exclusive

about

//time and tempo

(
~beatsPerMinute=75;
~beatsPerMeasure=4;
~swing=0.05;
~stepDur = (60/1)*(1/~beatsPerMinute)*(1/~beatsPerMeasure); //~stepDur = (sec/step) =(sec/min)*(min/beat)*(beats/step)
~swingA = ~stepDur+(~swing*~stepDur); //strong side of the swing beat
~swingB = ~stepDur-(~swing*~stepDur); //weak side of the swing beat
~groovyKick=(-1)*~stepDur/128;
~groovySnare=~stepDur/128;
~groovyHat=~stepDur/128;
~groovyClap=~stepDur/128;
~groovyBass=0;
~groovyHook=~stepDur/128;
~master = 0.2;
)

//SynthDefs

(
SynthDef(\clap, {
arg outBus=0, amp = 0.5, gain = 1.5;
var env1, env2, sig, noise1, noise2;
env1 = EnvGen.ar(Env.new([0, 1, 0, 1, 0, 1, 0, 1, 0], [0.001, 0.013, 0, 0.01, 0, 0.01, 0, 0.03], [0, -3, 0, -3, 0, -3, 0, -4]));
env2 = EnvGen.ar(Env.new([0, 1, 0], [0.02, 0.3], [0, -4]), doneAction:2);
noise1 = BPF.ar(HPF.ar(GrayNoise.ar(env1), 600), 2000, 3);
noise2 = BPF.ar(HPF.ar(GrayNoise.ar(env2), 1000), 1200, 0.7, 0.7);
sig = noise1 + noise2;
sig = ~master * sig * gain;
sig = sig.softclip * amp;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\clap2, {
arg outBus=0, amp = 0.5, gain = 1.5, rel = 1.5;
var env1, env2, sig, noise1, noise2;
env1 = EnvGen.ar(Env.new([0, 1, 0, 1, 0, 1, 0, 1, 0], [0.001, 0.013, 0, 0.01, 0, 0.01, 0, 0.03], [0, -3, 0, -3, 0, -3, 0, -4]));
env2 = EnvGen.ar(Env.new([0, 1, 0], [0.02, rel], [0, -4]), doneAction:2);
noise1 = BPF.ar(HPF.ar(GrayNoise.ar(env1), PinkNoise.kr(300,600)), PinkNoise.kr(1000,2000), 3);
noise2 = BPF.ar(HPF.ar(GrayNoise.ar(env2), PinkNoise.kr(500,1000)), PinkNoise.kr(600,1200), 0.7, 0.7);
sig = noise1 + noise2;
sig = ~master * sig * gain;
sig = LPF.ar(sig, 3000);
sig = sig.softclip * amp * 0.6;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\kick,{
arg startFreq=60, endFreq=20, decay=4, lowpass=1000, amp=1, noiseAmp=0.01, gain=1, dur=2;
var sig, env, freq;
startFreq = PinkNoise.kr(10,startFreq);
endFreq = PinkNoise.kr(30,endFreq);
dur = PinkNoise.kr(1,dur);
freq = XLine.kr(startFreq, endFreq, dur, 1, 0);
env = EnvGen.kr(Env.perc(0.0014, dur, 1, -5), 1, doneAction:2);
sig = {(LPF.ar(Ringz.ar(Impulse.ar(0), freq, decay), lowpass) * amp) ! 2};
sig = sig + LPF.ar((noiseAmp*BrownNoise.ar(1)),lowpass);
sig = ~master * sig * gain;
sig = sig.softclip * amp * env;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\kick2,{
arg startFreq=40, endFreq=40, decay=3, lowpass=1000, amp=1, noiseAmp=0.05, gain=1, dur=0.6;
var sig, env, freq;
freq = XLine.kr(startFreq, endFreq, dur, 1, 0);
env = EnvGen.kr(Env.perc(0.0014, dur, 1, -5), 1, doneAction:2);
sig = {(LPF.ar(Ringz.ar(Impulse.ar(0), freq, decay), lowpass) * amp) ! 2};
sig = sig + LPF.ar((noiseAmp*BrownNoise.ar(1)),lowpass);
sig = ~master * sig * gain;
sig = sig.softclip * amp * env;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\snare,{
arg amp=0.75, freq=120, gain=0.5, dur=0.2;
var env, sig, snare;
env = EnvGen.kr(Env.perc(0.001, dur, 1, -9), 1, doneAction:2);
sig = {(SinOsc.ar(freq) - WhiteNoise.ar(0.5, 0.5))!2};
sig = ~master * sig * gain;
sig = sig.softclip * amp * env;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\hat,{
arg amp=2, rel=0.25;
var env, sig;
env = EnvGen.kr(Env.perc(0.001, rel, 1, -4), 1, doneAction:2);
sig = ~master * HPF.ar((PinkNoise.ar(1, 0) * env * amp), 10000);
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef.new(\Colleen, {
arg freq=110, atk=1, rel=2, amp=1, dur=2, pan = 0, out = -1;
var sig, env;
freq = freq*(565/250)*PinkNoise.kr(0.05,1)*BrownNoise.kr(0.01,1)*2;
sig = LPF.ar(CombC.ar(Decay.ar(Impulse.ar(0), 0.2, BrownNoise.ar), 4/(BrownNoise.kr(XLine.kr(10,1,0.2),freq)), 4/(PinkNoise.kr(XLine.kr(10,1,0.2),freq)), 3, 0.4),4000);
env = EnvGen.kr(Env.new([0,1,0],[atk,rel],[1,-1]),doneAction:2);
//sig = sig + PinkNoise.ar(0.1);
sig = LPF.ar(sig, XLine.kr(500,1000,rel*0.1));
sig = ~master * (sig*env*amp)*4;
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

(
SynthDef.new(\Colleen2, {
arg freq=110, atk=0.1, rel=2, amp=1, dur=0.4, pan = 0, out = -1;
var sig, env;
freq = freq*(565/250)*PinkNoise.kr(0.01,1);
sig = LPF.ar(CombC.ar(Decay.ar(Impulse.ar(0), 0.2, BrownNoise.ar), 4/(BrownNoise.kr(XLine.kr(10,1,0.2),freq)), 4/(PinkNoise.kr(XLine.kr(10,1,0.2),freq)), 3, 0.4),4000);
env = EnvGen.kr(Env.new([0,1,0],[atk,rel],[1,-1]),doneAction:2);
//sig = sig + PinkNoise.ar(0.1);
sig = LPF.ar(sig, XLine.kr(50,1000,rel*0.1));
sig = ~master * (sig*env*amp);
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

(
SynthDef.new(\Klaus5, {
arg out = 0, freq=440, atk=0.2, rel=2, amp=0.5, dur=0.4, pan=0;
var sig, env;
freq = freq*(565/500)*PinkNoise.kr(0.05,1);
sig = Klank.ar(`[ (1..5)*freq, 1/(1..5), nil ], PinkNoise.ar(1));
env = EnvGen.kr(Env.new([0,1,0],[atk,rel],[1,-1]),doneAction:2);
sig = ~master * (sig*env*amp)*0.005;
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

//Pbinds

(
Pdef(\kick,
Pbind(
\instrument, Pwrand([\kick,\kick2],[0.8,0.2],inf),
\lag, ~groovyKick,
\dur, Pseq([~swingA,~swingB],inf),
\amp, 0.6*Pseq([
1,0,1,0, 0,Pshuf([0.2,0,1,],1), 0,Pshuf([0,1,0.3,],1), 0,Pshuf([0,0,0.2,],1),
1,0,1,0.2, 0,Pshuf([0,0.2,1,],1), 0,Pshuf([0,1,0.3,],1), Pshuf([0,0.1,0.8,0,],1),
], inf)*Pwrand([1,0],[0.6,0.4],inf),
)
).play;

Pdef(\snare,
Pbind(
\instrument, Pshuf([\snare],inf),
\lag, ~groovySnare,
\dur, 1*Pseq([~swingA,~swingB],inf),
\amp, 0.5*Pseq([
0,0,0,0, Pshuf([1,0,],1),0,0, 0,0,Prand([0,1],1),0, Prand([1,0,],3),0,
0,0,0,0, Pshuf([1,0,],1),0,0, 0,0,Prand([0,1],1),0, Prand([1,0,],3),0,
], inf)*Pwrand([1,0],[0.5,0.5],inf),
)
).play;

Pdef(\hat,
Pbind(
\instrument, Pshuf([\hat],inf),
\lag, ~groovyHat,
\dur, Pseq([~swingA,~swingB],inf),
\degree, Pseq([0,1],inf),
\amp, 1*Pshuf([
0,1,1,1,
], inf),
)
).play;

Pdef(\clap,
Pbind(
\instrument, Pwrand([\clap,\clap2],[0.7,0.3],inf),
\lag, ~groovyClap,
\dur, Pseq([~swingA,~swingB],inf),
\amp, 0.3*Pseq([
0,0,0,0, Pshuf([1,0,],1),0,0, 0,0,Prand([0,1],1),0, Prand([1,0,],3),0,
0,0,0,0, Pshuf([1,0,],1),0,0, 0,0,Prand([0,1],1),0, Prand([1,0,],3),0,
], inf)*Pwrand([1,0],[0.5,0.5],inf),
)
).play;

Pdef(\high,
Pbind(
\instrument, Prand([\Colleen,\Colleen2,\Klaus5,],inf),
\lag, ~groovyClap,
\dur, Pseq([~swingA,~swingB],inf),
\degree, Pseq([Pseq([0,2,4,6],8),Pseq([-2,0,2,5],4),Pseq([-2,0,3,5],4)],inf),
\octave, Pseq([6,7,],inf)-1,
\amp, 0.2*Pseq([
1,0,1,0, 0,Pshuf([0.2,0,1,],1), 0,Pshuf([0,1,0.3,],1), 0,Pshuf([0,0,0.2,],1),
1,0,1,0.2, 0,Pshuf([0,0.2,1,],1), 0,Pshuf([0,1,0.3,],1), Pshuf([0,0.1,0.8,0,],1),
], inf)*Pwrand([1,0],[0.7,0.3],inf),
\pan, 0,
)
).play;

Pdef(\low,
Pbind(
\instrument, Prand([\Colleen,\Colleen2,\Klaus5,],inf),
\lag, ~groovyClap,
\dur, 2*~stepDur*Pseq([12,2,2,8,6,2],inf),
\degree, Pseq([0,0,0,-2,-2,-4],inf),
\octave, [5,6]-2,
\amp, 1*Pwrand([1,0.2],[0.5,0.5],inf),
\pan, 0,
)
).play;

Pdef(\strum,
Pbind(
\instrument, Prand([\Colleen,\Colleen2,\Klaus5,],inf),
\lag, ~groovyClap,
\dur, 2*~stepDur*Pseq([12,2,2,8,6,2],inf),
\degree, Pseq([0,0,0,-2,-2,-4],inf)+[0,2,4],
\octave, [5,6],
\strum, Prand([0.15,0.1,0.05,0],inf),
\amp, 1*Pwrand([1,0.2],[0.5,0.5],inf),
\pan, 0,
)
).play;
)

//tempo clock

(
v = Main.elapsedTime.ceil;
t = TempoClock(~beatsPerMinute/60, 0, v);

t.schedAbs(0, { //verse
Pbindf(Pdef(\low),\pan, -1, \octave, 3).play(quant: 0.1);
Pbindf(Pdef(\low),\pan, 1, \octave, 3).play(quant: 0.1);
Pbindf(Pdef(\low),\pan, -0.5, \octave, 3).play(quant: 0.1);
Pbindf(Pdef(\low),\pan, 0.5, \octave, 3).play(quant: 0.1);
Pdef(\hat).play(quant: 0.1);
});

t.schedAbs(4*8, { //verse
Pdef(\kick).play(quant: 0.1);
});

t.schedAbs(8*8, { //chorus
Pdef(\clap).play(quant: 0.1);
Pdef(\snare).play(quant: 0.1);
Pbindf(Pdef(\strum),\pan, -1).play(quant: 0.1);
Pbindf(Pdef(\strum),\pan, 1).play(quant: 0.1);
Pbindf(Pdef(\strum),\pan, -0.5).play(quant: 0.1);
Pbindf(Pdef(\strum),\pan, 0.5).play(quant: 0.1);
});

t.schedAbs(12*8, { //verse
Pdef(\hat).stop;
Pdef(\clap).stop;
Pdef(\snare).stop;
Pdef(\kick).stop;
});

t.schedAbs(14*8, { //verse
Pbindf(Pdef(\high),\pan, -1).play(quant: 0.1);
Pbindf(Pdef(\high),\pan, 1).play(quant: 0.1);
Pbindf(Pdef(\high),\pan, -0.5).play(quant: 0.1);
Pbindf(Pdef(\high),\pan, 0.5).play(quant: 0.1);
});

t.schedAbs(16*8, { //verse
Pdef(\kick).play(quant: 0.1);
});

t.schedAbs(18*8, { //chorus
Pdef(\snare).play(quant: 0.1);
Pdef(\clap).play(quant: 0.1);
Pdef(\hat).play(quant: 0.1);
});

t.schedAbs(20*8, { //end
Pdef(\kick).stop;
Pdef(\snare).stop;
Pdef(\clap).stop;
Pdef(\hat).stop;
});
)

//recording
s.record;
s.stopRecording;

credits

from Demos etc., released March 25, 2013

license

tags

about

The Wiggly Tendrils Boston, Massachusetts

Completely obsessed with music and home recording.

contact / help

Contact The Wiggly Tendrils

Streaming and
Download help

Redeem code

Report this track or account

The Wiggly Tendrils recommends:

If you like The Wiggly Tendrils, you may also like: