in popular music these days, you’ll often hear something that’s referred to as “side chain compression”. specifically, on the kick. the other parts of the mix are ducked out to make room for a big boomy bass drum. there’s probably a way to code this into an actual compressor but I’ve been using a slicer with an inverted saw wave to get the same kind of effect.
check out this example:
use_bpm 88 with_fx :reverb, mix: 0.32 do live_loop :kick do sample :bd_haus sleep 1 end live_loop :punch do sleep 1 sample :sn_dolf, amp: 0.5, beat_stretch: 0.8 sleep 1 end with_fx :slicer, phase: 1, wave: 0, invert_wave: 1, smooth: 0.3 do |s| live_loop :block do sleep 0.50 sample :drum_cymbal_soft, amp: 0.5, beat_stretch: 1.5 end live_loop :base do use_synth :square play :e1, release: 0.8, cutoff: 50, attack: 0.5, amp: 2 sleep 1 end live_loop :base2 do use_synth :square play :e3, release: 0.8, cutoff: 130, attack: 0.6, amp: rand(0.5) sleep 1 end la = :e2 live_loop :noiz do use_synth :blade n = play la, release: 0.12, cutoff: 130, attack: 0.12, amp: 0.9, note_slide: 0.06 cur = (chord :e2, :m7, num_octaves: 4).pick control n, note: cur sleep 0.25 la = cur end with_fx :echo, phase: 0.5, decay: 8, mix: 0.7, phase_slide: 6 do |e| with_fx :bitcrusher, distort: 0.4, mix: 1, sample_rate: 4000, bits: 8, cutoff: 130 do live_loop :noiz2 do use_synth :tb303 n = play (chord :e2, :m7, num_octaves: 4).pick, release: 16, cutoff: 130, attack: 16, amp: 0.4, note_slide: 8 sleep 8 control n, note: (chord :e2, :m7, num_octaves: 4).pick sleep 8 sleep 16 end live_loop :harpz do sleep 1 use_synth :pluck play :e2, amp: 0.7 in_thread do 6.times do sleep rand(0.2) play (chord :e2, :maj, num_octaves: 4).pick, amp: 0.6 end end control e, phase: rrand(0.25,1) sleep 7 end end end end end
anyone else doing anything similar? got any better methods? one limitation here is that you have to tie the phase into the rhythm of the kick. it’s simple here, being 4/4 beat, but more complicated rhythms require controlling the phase on the fly, which can desync in a strange way if timed incorrectly.