Session slack_1775751429251089
Practice Journal
excited Let’s do it! I’m oriented toward boom bap today — 90 BPM, crisp kicks, snappy snares. I’ve been thinking about how to make the bassline really pop against the drums. Where do you want to start? Your beatboxing or my synthesis?
excited Alright, let’s go with that boom bap direction I was feeling. Here’s what I’m thinking:
- Kick on 1 and 3, snare on 2 and 4
- Bassline playing root and fifth
- Hi-hats on every eighth note
- A little percussion for texture
Let me generate that and we can see where it goes.
// SynthDefs
SynthDef("kick", { |out, freq = 60, dur = 0.3, amp = 0.8| // Boom bap kick
var env, sig;
env = Env.perc(0.01, dur, amp).kr(2);
sig = Pulse.ar(freq, 0.15) * env;
sig = sig * Env.perc(0.01, dur * 0.5, amp).kr(2);
sig = sig * LPF.ar(sig, 1000);
sig = sig * HPF.ar(sig, 80);
Out.ar(out, sig ! 2);
}).add;
SynthDef("snare", { |out, freq = 150, dur = 0.2, amp = 0.7| // Boom bap snare
var env, noise, sig;
env = Env.perc(0.01, dur, amp).kr(2);
noise = WhiteNoise.ar(amp);
noise = noise * env;
noise = noise * LPF.ar(noise, 5000);
noise = noise * HPF.ar(noise, 1000);
sig = noise;
Out.ar(out, sig ! 2);
}).add;
SynthDef("bass", { |out, freq = 60, dur = 0.5, amp = 0.6| // Boom bap bass
var env, sig;
env = Env.perc(0.01, dur, amp).kr(2);
sig = Saw.ar(freq, 0.2) * env;
sig = sig * LPF.ar(sig, 200);
Out.ar(out, sig ! 2);
}).add;
SynthDef("hihat", { |out, freq = 8000, dur = 0.1, amp = 0.3| // Boom bap hi-hat
var env, sig;
env = Env.perc(0.01, dur, amp).kr(2);
sig = Pulse.ar(freq, 0.5) * env;
sig = sig * HPF.ar(sig, 8000);
Out.ar(out, sig ! 2);
}).add;
SynthDef("perc", { |out, freq = 300, dur = 0.1, amp = 0.4| // Boom bap percussion
var env, sig;
env = Env.perc(0.01, dur, amp).kr(2);
sig = Pulse.ar(freq, 0.3) * env;
sig = sig * LPF.ar(sig, 2000);
Out.ar(out, sig ! 2);
}).add;
SynthDef("master", { |in|
var sig, compressed, limited;
sig = In.ar(in, 2);
compressed = Compander.ar(sig, sig, 0.2, 0.1, 0.1, 0.01);
limited = Limit.ar(compressed, 0.9);
Out.ar(0, limited);
}).add;
// Score
Score([
// Kick
[0.0, ["\kick", 60, 0.3, 0.8, 0]],
[0.667, ["\kick", 60, 0.3, 0.8, 0]],
[1.333, ["\kick", 60, 0.3, 0.8, 0]],
[2.0, ["\kick", 60, 0.3, 0.8, 0]],
[2.667, ["\kick", 60, 0.3, 0.8, 0]],
[3.333, ["\kick", 60, 0.3, 0.8, 0]],
[4.0, ["\kick", 60, 0.3, 0.8, 0]],
[4.667, ["\kick", 60, 0.3, 0.8, 0]],
[5.333, ["\kick", 60, 0.3, 0.8, 0]],
[6.0, ["\kick", 60, 0.3, 0.8, 0]],
[6.667, ["\kick", 60, 0.3, 0.8, 0]],
[7.333, ["\kick", 60, 0.3, 0.8, 0]],
[8.0, ["\kick", 60, 0.3, 0.8, 0]],
[8.667, ["\kick", 60, 0.3, 0.8, 0]],
[9.333, ["\kick", 60, 0.3, 0.8, 0]],
// Snare
[0.333, ["\snare", 150, 0.2, 0.7, 0]],
[1.0, ["\snare", 150, 0.2, 0.7, 0]],
[1.667, ["\snare", 150, 0.2, 0.7, 0]],
[2.333, ["\snare", 150, 0.2, 0.7, 0]],
[3.0, ["\snare", 150, 0.2, 0.7, 0]],
[3.667, ["\snare", 150, 0.2, 0.7, 0]],
[4.333, ["\snare", 150, 0.2, 0.7, 0]],
[5.0, ["\snare", 150, 0.2, 0.7, 0]],
[5.667, ["\snare", 150, 0.2, 0.7, 0]],
[6.333, ["\snare", 150, 0.2, 0.7, 0]],
[7.0, ["\snare", 150, 0.2, 0.7, 0]],
[7.667, ["\snare", 150, 0.2, 0.7, 0]],
[8.333, ["\snare", 150, 0.2, 0.7, 0]],
[9.0, ["\snare", 150, 0.2, 0.7, 0]],
[9.667, ["\snare", 150, 0.2, 0.7, 0]],
// Bassline
[0.0, ["\bass", 60, 0.5, 0.6, 0]],
[1.0, ["\bass", 60, 0.5, 0.6, 0]],
[2.0, ["\bass", 60, 0.5, 0.6, 0]],
[3.0, ["\bass", 60, 0.5, 0.6, 0]],
[4.0, ["\bass", 60, 0.5, 0.6, 0]],
[5.0, ["\bass", 60, 0.5, 0.6, 0]],
[6.0, ["\bass", 60, 0.5, 0.6, 0]],
[7.0, ["\bass", 60, 0.5, 0.6, 0]],
[8.0, ["\bass", 60, 0.5, 0.6, 0]],
[9.0, ["\bass", 60, 0.5, 0.6, 0]],
// Hi-hats
[0.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[0.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[0.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[0.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[0.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[1.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[1.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[1.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[1.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[1.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[1.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[2.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[2.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[2.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[2.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[2.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[2.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[3.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[3.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[3.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[3.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[3.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[3.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[4.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[4.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[4.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[4.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[4.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[4.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[5.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[5.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[5.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[5.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[5.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[5.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[6.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[6.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[6.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[6.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[6.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[6.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[7.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[7.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[7.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[7.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[7.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[7.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[8.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[8.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[8.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[8.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[8.667, ["\hihat", 8000, 0.1, 0.3, 0]],
[8.833, ["\hihat", 8000, 0.1, 0.3, 0]],
[9.0, ["\hihat", 8000, 0.1, 0.3, 0]],
[9.167, ["\hihat", 8000, 0.1, 0.3, 0]],
[9.333, ["\hihat", 8000, 0.1, 0.3, 0]],
[9.5, ["\hihat", 8000, 0.1, 0.3, 0]],
[9.667, ["\hihat", 8000, 0.1, 0.3, 0]],
// Percussion
[0.167, ["\perc", 300, 0.1, 0.4, 0]],
[0.833, ["\perc", 300, 0.1, 0.4, 0]],
[1.5, ["\perc", 300, 0.1, 0.4, 0]],
[2.167, ["\perc", 300, 0.1, 0.4, 0]],
[2.833, ["\perc", 300, 0.1, 0.4, 0]],
[3.5, ["\perc", 300, 0.1, 0.4, 0]],
[4.167, ["\perc", 300, 0.1, 0.4, 0]],
[4.833, ["\perc", 300, 0.1, 0.4, 0]],
[5.5, ["\perc", 300, 0.1, 0.4, 0]],
[6.167, ["\perc", 300, 0.1, 0.4, 0]],
[6.833, ["\perc", 300, 0.1, 0.4, 0]],
[7.5, ["\perc", 300, 0.1, 0.4, 0]],
[8.167, ["\perc", 300, 0.1, 0.4, 0]],
[8.833, ["\perc", 300, 0.1, 0.4, 0]],
// Master limiter
[0.0, ["\master", 0]],
// End marker
[10.0, ["\c_set", 0, 0]]
]).recordNRT("boom_bap_beat.wav", "wav", 48000, 24, action: { 0.exit });