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.

Lie To You (#supercollider)

from Demos etc. by The Wiggly Tendrils

subscriber exclusive

about

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

//time and tuning
(
~beatsPerMinute=60;
~beatsPerMeasure=4;
~swing=0.0; // -1 to 1, (0) is straight, (+) is swing, (-) is wack
~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
~masterGain = 0.2;
~scale = Scale.ionian(\just);
)

//loading buffers
(
~lieToYouVox = Buffer.readChannel(s,"/Users/conor/Desktop/SuperCollider/yfree buffers/YFREE lie to you vox (01).wav",0,-1,1);
)

//testing buffers
~lieToYouVox.play;


//SynthDefs

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

(
SynthDef(\clapReverb, {
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), 600), 2000, 3);
noise2 = BPF.ar(HPF.ar(GrayNoise.ar(env2), 1000), 1200, 0.7, 0.7);
sig = noise1 + noise2;
sig = sig * gain;
sig = LPF.ar(sig, 3000);
sig = sig.softclip * amp * 1;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\clap, {
arg outBus=0, amp = 0.5, gain = 1.5, rel = 0.2;
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), 1800), 2000, 3);
noise2 = BPF.ar(HPF.ar(GrayNoise.ar(env2), 1900), 1200, 0.7, 0.7);
sig = noise1 + noise2;
sig = sig * gain;
sig = LPF.ar(sig, 2000) * 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)*3;
sig = sig * gain;
sig = sig.softclip * amp * env;
Out.ar(0, [sig,sig]);
}).play;
)

(
SynthDef(\snare,{
arg amp=0.75, freq=120, gain=1.1;
var env, sig, snare;
env = EnvGen.kr(Env.perc(0.001, BrownNoise.kr(0.1,0.3), 1, -5), 1, doneAction:2);
sig = (SinOsc.ar(freq) - WhiteNoise.ar(0.5, 0.4)) * env * amp;
sig = LPF.ar(sig,BrownNoise.kr(1000,4500));
sig = sig * gain * 3;
sig = sig.softclip * amp;
Out.ar(0, [sig,sig]);
}).play;
)

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

(
SynthDef.new(\Klaus50, {
arg out = 0, freq=440, atk=0.12, rel=0.4, amp=0.5, dur=0.3, pan=0;
var sig, env;
freq = freq*(1050/500)*PinkNoise.kr(0.05,1)*0.5;
sig = Klank.ar(`[ (1..50)*freq, 1/(1..50), nil ], PinkNoise.ar(1));
env = EnvGen.kr(Env.new([0,1,0],[atk,rel],[1,-1]),doneAction:2);
sig = LPF.ar(sig, BrownNoise.kr(250,1250));
sig = HPF.ar(sig, 200);
sig = (sig*env*amp)*PinkNoise.kr(0.01,0.02)*1.2;
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

(
SynthDef.new(\Klaus5, {
arg out = 0, freq=440, atk=0.04, rel=0.2, amp=0.5, dur=4, pan=0;
var sig, env;
freq = freq*(1050/500)*PinkNoise.kr(0.05,1)*0.25/2;
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 = LPF.ar(sig, BrownNoise.kr(250,850));
sig = HPF.ar(sig, 200);
sig = (sig*env*amp)*PinkNoise.kr(0.01,0.02)*1;
sig = Pan2.ar(sig,pan);
Out.ar(out, sig);
}).play;
)

//pdef



(
Pdef(\lieToYouVox,
Pbind(
\instrument, \lieToYouVox,
\lag, 0,
\amp, ~masterGain*1.3*Pseq([1],1),
)
).play;

Pdef(\kick,
Pbind(
\instrument, \kick,
\octave, 4,
\dur,
Pseq([~swingA,~swingB],inf),
\atk, 0.1,
\rel, 0.1,
\amp, Pseq([
1,0,0,0, 0,0,0,1,
1,0,1,0, 0,1,0,0,
1,0,0,0, 0,0,0,1,
1,0,1,0, 0,1,1,1,],inf)*~masterGain,
\lag, 0,
)
).play;

Pdef(\snare,
Pbind(
\instrument, \snare,
\octave, 4,
\dur, Pseq([~swingA,~swingB],inf),
\atk, 0.1,
\rel, 0.1,
\amp, Pseq([0,0,0,0, 1,0,0,0],inf)*~masterGain,
\lag, 0,
)
).play;

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

Pdef(\bass,
Pbind(
\instrument, \Klaus50,
\octave, [3],
\lag, 0,
\degree, Pseq([
Pseq([0,0,],8),
Pseq([1,1,],8),
Pseq([-3,-3,],8),
Pseq([0,0],8),
],inf),
\dur, Pseq([~swingA,~swingB],inf),
\amp, Pseq([1,0,0,0, 0,0,0,1,
1,0,1,0, 0,1,0,0,
1,0,0,0, 0,0,0,1,
1,0,1,0, 0,1,1,1,],inf)*1.5*~masterGain,
\rel, 2,
\pan, 0,
)
).play;

Pdef(\chords,
Pbind(
\instrument, \Colleen2,
\octave, [5],
\degree, [0,2,4,5,7,9,11,12,11,9,7,5,4,2,0]+Pseq([//[0,2,4,5]+
Pseq([0,0,],8),
Pseq([1,1,],8),
Pseq([-1,-1,],8),
Pseq([0,0],8),
],inf),
\dur, Pseq([~swingA,~swingB],inf),
\lag, 0,
\strum, ~stepDur/4,
\rel, 0.2,
\amp, Pseq([
0,0,0,0, 1,0,0,0,
0,0,0,0, 0,0,0,0,
],inf)*~masterGain,
\pan, 0,
)
).play;

Pdef(\arpegio,
Pbind(
\instrument, \Klaus5,
\octave, [5,7],
\degree, [0,2,4,5,7,9,11,12,11,9,7,5,4,2,0]+Pseq([//[0,2,4,5]
Pseq([0,0,],8),
Pseq([1,1,],8),
Pseq([-1,-1,],8),
Pseq([0,0],8),
],inf),
\dur, Pseq([~swingA,~swingB],inf),
\lag, 0,
\strum, ~stepDur/4,
\amp, Pseq([
0,0,0,0, 1,0,0,0,
0,0,0,0, 0,0,0,0
],inf)*~masterGain,
\pan, 0,
)
).play;
)


//tempo clock

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

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

t.schedAbs(2*16, { //chorus
Pbindf(Pdef(\arpegio),\pan, -1).play(quant: 0.1);
Pbindf(Pdef(\arpegio),\pan, 1).play(quant: 0.1);
});

t.schedAbs(4*16, { //verse
Pdef(\clap).stop;
Pdef(\snare).stop
});

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

t.schedAbs(8*16, { //bridge
Pdef(\snare).stop;
Pdef(\clap).stop;
Pbindf(Pdef(\chords), \pan,-1).play(quant: 0.1);
Pbindf(Pdef(\chords), \pan, 1).play(quant: 0.1);
});

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

t.schedAbs(12*16, { //out
Pdef(\kick).stop;
Pdef(\clap).stop;
Pdef(\snare).stop;
});
)

lyrics

do you want to lie with me
underneath the apple tree
do you want to hold my hand
tell me i'm your only man
because i want to lie to you like lovers do
because i want to lie to you like lovers do

do you want to separate
slow it down, hesitate
and then we get to start a new
this time i’ll tell you something true
because i want to lie with you like lovers do
because i want to lie to you like lovers do

slow down can we slow down for a minute?
slow down you know we're still just beginning

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: