Skip to content

Instantly share code, notes, and snippets.

@camilajenny
Created May 11, 2025 19:19
Show Gist options
  • Save camilajenny/c21de50333ceb7820ec1c8b5056d6f80 to your computer and use it in GitHub Desktop.
Save camilajenny/c21de50333ceb7820ec1c8b5056d6f80 to your computer and use it in GitHub Desktop.
Stream downtempo w/ breathy pads
use_bpm 60
define :rand_chord do
# A soft shifting chord from E minor, randomly voiced
root = [:e3, :g3, :b3].choose
chord(root, :minor7, num_octaves: 2).shuffle.take(3)
end
# === Breath Pad Layer ===
live_loop :breathy_pad do
with_fx :reverb, mix: 0.6, room: 0.8 do
with_fx :slicer, phase: [4, 8].choose, pulse_width: 0.9 do
use_synth :dark_ambience
play rand_chord, attack: 2, release: 6, amp: 0.3, pan: rrand(-0.3, 0.3)
end
end
sleep [4, 6, 8].choose
end
# === Microdelay Echo Layer ===
live_loop :echo_pad do
sync :breathy_pad
with_fx :echo, mix: 0.4, phase: 0.125, decay: 6 do
use_synth :hollow
play chord(:e4, :minor), release: 2, amp: 0.15, pan: rrand(-1, 1)
end
sleep [2, 4].choose
end
# === Glitch Pulse / Perc Layer ===
live_loop :texture_plucks do
with_fx :distortion, distort: 0.2 do
with_fx :ping_pong, phase: 0.25 do
use_synth :pluck
play scale(:e4, :minor_pentatonic).choose + [-12, 0, 12].choose, amp: 0.1, release: 0.3
end
end
sleep [0.5, 1.5, 2].choose
end
# === Low Kick Pulse ===
live_loop :sub_kick do
sample :bd_haus, amp: 0.5
sleep 4
end
use_bpm 60
# Define some instruments/samples
kick = :bd_haus
snare = :sn_dub
hat = :drum_cymbal_closed
live_loop :clock do
sleep 1
end
# Global FX
with_fx :reverb, mix: 0.5 do
with_fx :echo, phase: 0.75, mix: 0.3 do
# === INTRO (bars 0–31) ===
live_loop :intro_kick, sync: :clock do
32.times do
sample kick, amp: 0.5
sleep 1
end
stop
end
live_loop :intro_pad, sync: :clock do
32.times do
use_synth :hollow
play chord(:e3, :minor), attack: 1, release: 3, amp: 0.3
sleep 4
end
stop
end
# === BUILD (bars 32–63) ===
live_loop :build_beat, sync: :clock do
sleep 32
32.times do
sample kick, amp: 0.7
sleep 1
sample hat, amp: 0.2
sleep 1
end
stop
end
live_loop :build_chords, sync: :clock do
sleep 32
32.times do
use_synth :prophet
play chord(:a3, :minor7), release: 2, amp: 0.4
sleep 4
end
stop
end
# === BREAK (bars 64–95) ===
live_loop :break, sync: :clock do
sleep 64
32.times do
use_synth :dark_ambience
play :e4, attack: 1, release: 6, amp: 0.3
sleep 8
end
stop
end
# === RELEASE (bars 96–127) ===
live_loop :release_beat, sync: :clock do
sleep 96
32.times do
sample kick, amp: 0.6
sleep 1
sample snare, amp: 0.4 if (spread 4,8).tick
sleep 1
end
stop
end
live_loop :release_melody, sync: :clock do
sleep 96
use_synth :blade
32.times do
play scale(:e4, :minor_pentatonic).choose, release: 1.5, amp: 0.3
sleep 1.5
end
stop
end
# === OUTRO (bars 128–end) ===
live_loop :outro, sync: :clock do
sleep 128
16.times do
use_synth :hollow
play chord(:e3, :minor), attack: 2, release: 4, amp: 0.2
sleep 4
end
stop
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment