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.

Bridge Too Far (#supercollider)

from Demos etc. by The Wiggly Tendrils

subscriber exclusive

about

s.boot;
s.record;
s.stopRecording;

//tempo and tuning

(
~beatsPerMinute=115/2;
~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
//lag in seconds. (0) is on top of the beat, (+) is behind, (-) is ahead
~groovyKick=(0)*~stepDur/256;
~groovySnare=(0)*~stepDur/256;
~groovyHat=(1)*~stepDur/1600;
~groovyClap=(0)*~stepDur/256;
~masterGain = 0.2;
~a = Scale.chromatic;
)

//loading buffers
(
~bridgeTooFar = Buffer.readChannel(s,"/Users/conor/Desktop/SuperCollider/yfree buffers/180210 bridge too far (vox).wav",0,-1,1);
)

//testing buffers
~bridgeTooFar.play;

//SynthDefs

(
SynthDef(\bridgeTooFarVox, {
arg out = 0, amp=1;
var sig, env;
b = ~bridgeTooFar;
sig = PlayBuf.ar(1, b, 1, doneAction:2)*amp*2*~masterGain;
Out.ar(out, [sig,sig])
}).play;
)

(
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 = sig * gain * 2;
sig = sig.softclip * amp;
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=0.8;
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 = sig * gain;
sig = sig.softclip * amp * env;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\kick2,{
arg startFreq=80, endFreq=15, decay=4, lowpass=800, amp=1, noiseAmp=0.0, gain=1, dur=6;
var sig, env, freq;
freq = Line.kr(PinkNoise.kr(6,startFreq), PinkNoise.kr(3,endFreq), dur, 1, 0);
env = EnvGen.kr(Env.perc(0.014, dur, 1, -5), 1, doneAction:2);
sig = {(LPF.ar(Ringz.ar(Impulse.ar(0), freq, decay), lowpass) * amp) ! 2};
sig = LPF.ar(sig,BrownNoise.kr(500,1500))*0.3;
sig = 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.3;
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 = sig * gain;
sig = sig.softclip * amp * env;
Out.ar(0, [sig,sig]);
}).play;
)

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

(
SynthDef.new(\Colleen, {
arg freq=110, atk=0.6, rel=2, amp=1, dur=2, pan = 0, out = -1;
var sig, env;
freq = freq*(320/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(100,700,rel*0.1));
sig = (sig*env*amp)*3;
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

(
SynthDef(\clap, {
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 = sig * gain;
sig = LPF.ar(sig, 3000);
sig = sig.softclip * amp * 0.8;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef.new(\Colleen2, {
arg freq=110, atk=0.6, rel=0.3, amp=1, dur=0.2, pan = 0, out = -1;
var sig, env;
freq = freq*(320/250)*PinkNoise.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(50,1000,rel*0.1));
sig = (sig*env*amp);
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

(
SynthDef.new(\Klaus1000, {
arg out = 0, freq=440, atk=0.01, rel=0.5, amp=1, dur=0.2, pan=0;
var sig, env;
freq = freq*(320/500)*PinkNoise.kr(0.00,1);
sig = Klank.ar(`[ (1..100)*freq, 1/(1..100), nil ], PinkNoise.ar(1));
sig = LPF.ar(sig, 20000);
env = EnvGen.kr(Env.new([0,1,0],[atk,rel],[1,-1]),doneAction:2);
sig = (sig*env*amp*~masterGain)*0.05;
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)



//Pdefs

(
Pdef(\bridgeTooFarVox,
Pbind(
\instrument, \bridgeTooFarVox,
\lag, ~groovyKick+0.15,
\amp, ~masterGain*1.5*Pseq([1],1),
)
).play;

Pdef(\kick,
Pbind(
\instrument, \kick,
\lag, ~groovyKick,
\dur, Pseq([~swingA,~swingB],inf),
\amp, ~masterGain*4*Pseq([
1,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,0,0,
1,0,0,0, 0,0,1,0, 0,0,0,0, 0,Pshuf([0,Prand([1,0],1),1,],1),
], inf)*Pseq([1],inf)*Pwrand([Pseq([1],4),Pseq([0],4),],[0.9,0.1],inf),
\pan, 0,
)
).play;

Pdef(\kick2,
Pbind(
\instrument, \kick2,
\lag, ~groovyKick,
\dur, Pseq([~swingA,~swingB],inf),
\amp, ~masterGain*4*Pseq([
1,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,0,0,
1,0,0,0, 0,0,1,0, 0,0,0,0, 0,Pshuf([0,Prand([1,0],1),1,],1),
], inf)*Pseq([1],inf)*Pwrand([Pseq([1],4),Pseq([0],4),],[0.9,0.1],inf),
\pan, 0,
)
).play;

Pdef(\snare,
Pbind(
\instrument, \snare,
\lag, ~groovySnare,
\dur, Pseq([~swingA,~swingB],inf),
\amp, ~masterGain*2*Pseq([
0,0,0,1, 0,0,0,0, 0,0,0,0, 1,0,0,0,
], inf),
)
).play;

Pdef(\clap,
Pbind(
\instrument, \clap,
\freq, 120,
\lag, ~groovyClap,
\dur, Pseq([~swingA,~swingB],inf),
\amp, ~masterGain*1*Pseq([
0,0,0,1, 0,0,0,0, 0,0,0,0, 1,0,0,0,
], inf),
)
).play;

Pdef(\hat,
Pbind(
\instrument, \hat,
\freq, 120,
\lag, ~groovyHat,
\dur, Pseq([~swingA,~swingB],inf),
\amp, ~masterGain*3*Pseq([
1,1,1,0, 1,1,1,1, 1,1,1,1, 0,1,1,1,
], inf)*Pshuf([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8],inf),
)
).play;

Pdef(\chord,
Pbind(
\instrument, \Colleen2,
\dur, Pseq([~swingA,~swingB],inf),
\lag, 0,
\scale, ~a,
\octave, [3,4,5,6],
\degree, [5,19]+Pseq([
Pseq([[2,3]],16),
Pseq([[4,5]],16),
Pseq([[5,7]],16),
Pseq([[7,8]],16)
],inf),
\amp, ~masterGain*3.5*Pseq([
1,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,0,0,
1,0,0,0, 0,0,1,0, 0,0,0,0, 0,0,0,0,
1,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,0,0,
1,0,0,0, 0,0,1,0, 0,0,0,0, 0,0,0,0,
], inf),
\pan, 0,
)
).play;

Pdef(\strum,
Pbind(
\instrument, \Klaus1000,
\dur, Pseq([~swingA,~swingB],inf),
\lag, 0,
\scale, ~a,
\octave, [3,4,5],
\degree, [5,19]+Pseq([
Pseq([[2,3]],16),
Pseq([[4,5]],16),
Pseq([[5,7]],16),
Pseq([[7,8]],16)
],inf),
\amp, ~masterGain*3.5*Pseq([
1,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,0,0,
1,0,0,0, 0,0,1,0, 0,0,0,0, 0,0,0,0,
1,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,0,0,
1,0,0,0, 0,0,1,0, 0,0,0,0, 0,0,0,0,
], inf),
\strum, 0.04,
\rel, 1,
\pan, 0,
)
).play;

Pdef(\bass,
Pbind(
\instrument, \Colleen,
\dur, Pseq([~swingA,~swingB],inf),
\lag, 0,
\scale, ~a,
\octave, [3,5],
\degree, [5,19]+Pseq([
Pseq([[2,3]],16),
Pseq([[4,5]],16),
Pseq([[5,7]],16),
Pseq([[7,8]],16)
],inf),
\amp, ~masterGain*1*Pseq([
1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
], inf),
\pan, 0,
)
).play;
)

//tempo clock

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

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

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

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

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

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

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

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

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

/*lyrics

action at distance
strange transmissions
from the stars

i followed the mission
i should have listened
to my heart

try to remember me
the man i used to be
hold my arm

i’ve come unraveled
somehow i traveled
a bridge too far

we tried to build
bridge to far
overshoot the stars
we tried to build
bridge to far
overshoot the stars

just try and remember you weren't always as you are
try to remember being together in my arms
try to remember me the man i used to be at the start

we tried to build
bridge to far
overshoot the stars
we tried to build
bridge to far
overshoot the stars*/

lyrics

action at distance
strange transmissions
from the stars

i followed the mission
i should have listened
to my heart

try to remember me
the man i used to be
hold my arm

i’ve come unraveled
somehow i traveled
a bridge too far

we tried to build
bridge to far
overshoot the stars
we tried to build
bridge to far
overshoot the stars

just try and remember you weren't always as you are
try to remember being together in my arms
try to remember me the man i used to be at the start

we tried to build
bridge to far
overshoot the stars
we tried to build
bridge to far
overshoot the stars

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: