48 community + in-thread-forum fixtures · 30s each · post + + AMP=2.
Captures succeeded: 48/48 · in-band RMS (0.6×–1.5×): 32/47 of those that produced WAVs.
Median RMS× 0.61× · median peak× 0.65×.
| pool | captures ok |
|---|---|
| community | 28/28 |
| in-thread-forum | 20/20 |
| fixture | pool | RMS× | peak× | MFCC | capture |
|---|---|---|---|---|---|
| 01_tilburg_2 | community | 0.63× | 0.67× | 107 | ok |
| 02_shufflit | community | 0.61× | 0.90× | 133 | ok |
| 03_blimp_zones | community | 0.58× | 0.55× | 186 | ok |
| 04_blip_rhythm | community | 0.62× | 0.85× | 111 | ok |
| 05_time_machine | community | 0.59× | 0.57× | 136 | ok |
| 06_bach | community | 0.47× | 0.59× | 90 | ok |
| 07_driving_pulse | community | 0.61× | 0.74× | 89 | ok |
| 08_monday_blues | community | 0.60× | 0.61× | 76 | ok |
| 09_acid | community | 0.59× | 0.59× | 132 | ok |
| 10_idm_breakbeat | community | 0.60× | 0.61× | 101 | ok |
| 11_ambient | community | 0.95× | 0.93× | 83 | ok |
| 12_echo_drama | community | 0.62× | 0.65× | 97 | ok |
| 13_tron_bike | community | 0.60× | 0.59× | 150 | ok |
| 14_wob_rhyth | community | 0.65× | 0.66× | 109 | ok |
| 15_rerezzed | community | 0.61× | 0.62× | 91 | ok |
| 16_minimal_mixer | community | 0.69× | 0.73× | 126 | ok |
| 17_top_arp_bass | community | 0.83× | 0.91× | 160 | ok |
| 18_piano_layers | community | 0.72× | 0.86× | 70 | ok |
| 19_ambient_lead | community | 0.79× | 0.66× | 43 | ok |
| 20_noise_drums_saw | community | 0.64× | 0.73× | 97 | ok |
| 21_electronic_experiment | community | 0.60× | 0.58× | 230 | ok |
| 22_recursive_sprout | community | 1.00× | 0.74× | 122 | ok |
| 23_bass_distortion | community | 0.69× | 0.92× | 134 | ok |
| 24_bhairav_tabla | community | 0.27× | 0.49× | 156 | ok |
| 25_piano_exercise | community | 0.27× | 0.36× | 137 | ok |
| 26_note_duration_pairs | community | 0.61× | 0.58× | 77 | ok |
| 27_hydra_jam | community | 0.60× | 1.00× | 131 | ok |
| 28_snowflight_inspired | community | 0.27× | 0.24× | 74 | ok |
| 29_sacramento_storm | in-thread-forum | — | — | — | ok |
| 30_atmospheric_drone | in-thread-forum | 0.36× | 0.34× | 119 | ok |
| 31_bass_noise_jam | in-thread-forum | 0.68× | 1.00× | 155 | ok |
| 32_morning_vibe | in-thread-forum | 0.27× | 0.27× | 227 | ok |
| 33_dub_reverb | in-thread-forum | 1.79× | 0.72× | 149 | ok |
| 34_kx5_escape_cover | in-thread-forum | 0.68× | 0.90× | 103 | ok |
| 35_evolving_arp | in-thread-forum | 0.71× | 0.95× | 97 | ok |
| 36_fun_with_functions | in-thread-forum | 0.55× | 0.58× | 150 | ok |
| 37_semitone_array | in-thread-forum | 0.60× | 0.59× | 85 | ok |
| 38_synthwave | in-thread-forum | 0.62× | 0.68× | 133 | ok |
| 39_blues_machine | in-thread-forum | 0.52× | 0.38× | 142 | ok |
| 40_choose_generator | in-thread-forum | 0.61× | 0.61× | 138 | ok |
| 41_ocean_ambience | in-thread-forum | 0.60× | 0.61× | 115 | ok |
| 42_first_music | in-thread-forum | 0.60× | 0.57× | 168 | ok |
| 43_exploring_tb303 | in-thread-forum | 0.63× | 0.97× | 116 | ok |
| 44_blues_band | in-thread-forum | 0.21× | 0.38× | 207 | ok |
| 45_sick_drummer | in-thread-forum | 0.94× | 0.82× | 258 | ok |
| 46_lofi_hip_hop | in-thread-forum | 0.59× | 0.60× | 131 | ok |
| 47_fibonacci_zoomies | in-thread-forum | 1.39× | 2.06× | 109 | ok |
| 48_lullaby | in-thread-forum | 1.03× | 1.63× | 177 | ok |
use_debug false
live_loop :low do
tick
synth :zawa, wave: 1, phase: 0.25, release: 5, note: (knit :e1, 12, :c1, 4).look, cutoff: (line 60, 120, steps: 6).look
sleep 4
end
with_fx :reverb, room: 1 do
live_loop :lands, auto_cue: false do
use_synth :dsaw
use_random_seed 310003
ns = (scale :e2, :minor_pentatonic, num_octaves: 4).take(4)
16.times do
play ns.choose, detune: 12, release: 0.1, amp: 2, cutoff: rrand(70, 120)
sleep 0.125
end
end
end
live_loop :fietsen do
sleep 0.25
sample :guit_em9, rate: -1
sleep 7.75
end
live_loop :tijd do
sample :bd_haus, amp: 2.5, cutoff: 100
sleep 0.5
end
live_loop :ind do
sample :loop_industrial, beat_stretch: 1
sleep 1
end
use_debug false
use_random_seed 667
live_loop :travelling do
use_synth :beep
notes = scale(:e3, :minor_pentatonic, num_octaves: 1)
use_random_seed 679
tick_reset_all
with_fx :echo, phase: 0.125, mix: 0.4, reps: 16 do
sleep 0.25
play notes.choose, attack: 0, release: 0.1, pan: (range -1, 1, step: 0.125).tick, amp: rrand(2, 2.5)
end
end
live_loop :shuff, auto_cue: false do
with_fx :hpf, cutoff: 10, reps: 8 do
tick
sleep 0.25
sample :bd_tek, amp: factor?(look, 8) ? 6 : 4
sleep 0.25
use_synth :tb303
play (knit :e2, 24, :c2, 8).look, release: 1.5, cutoff: (range 70, 90).look, amp: 2 if factor?(look, 2)
sample :sn_dub, rate: -1, sustain: 0, release: (knit 0.05, 3, 0.5, 1).look
end
end
use_debug false
use_random_seed 667
live_loop :foo do
with_fx :reverb, kill_delay: 0.2, room: 0.3 do
4.times do
use_random_seed 4000
8.times do
sleep 0.25
play chord(:e3, :m7).choose, release: 0.1, pan: rrand(-1, 1), amp: 1
end
end
end
end
live_loop :baz, auto_cue: false do
tick
sleep 0.25
cue :beat, count: look
sample :bd_haus, amp: factor?(look, 8) ? 3 : 2
sleep 0.25
use_synth :fm
play :e2, release: 1, amp: 1 if factor?(look, 4)
synth :noise, release: 0.051, amp: 0.5
end
use_bpm 100
use_random_seed 100
with_fx :reverb, mix: 0.6, room: 0.8 do
with_fx :echo, decay: 8, phase: 1, mix: 0.4 do
live_loop :blip do
n = [:e2, :e2, :a3].choose
with_synth :dsaw do
with_transpose -12 do
in_thread do
2.times do
play n, attack: 0.6, release: 0.8, detune: rrand(0, 0.1), cutoff: rrand(80, 120)
sleep 3
end
end
end
end
sleep 4
with_synth :tri do
play chord(n, :m7), amp: 5, release: 0.8
end
sleep 2
end
end
end
with_fx :echo, decay: 8, phase: 0.25, mix: 0.4 do
live_loop :rhythm do
sample :drum_heavy_kick, amp: 0.5
sample :elec_plip, rate: [0.5, 2, 1, 4].choose * [1, 2, 3, 10].choose, amp: 0.6
sleep 2
end
end
use_debug false
live_loop :time do
synth :tb303, release: 8, note: :e1, cutoff: (range 90, 60, step: -10).tick
sleep 8
end
live_loop :machine do
sample :loop_garzul, rate: (knit 1, 3, -1, 1).tick
sleep 8
end
live_loop :vortex, auto_cue: false do
use_synth [:pulse, :beep].choose
sleep 0.125 / 2
play scale(:e1, :minor_pentatonic).tick, attack: 0.125, release: 0, amp: 2, cutoff: (ring 70, 90, 100, 130).look
sleep 0.125 / 2
end
live_loop :moon_bass, auto_cue: false do
sample :bd_haus, amp: 1.5
sleep 0.5
end
use_bpm 60
use_synth_defaults release: 0.5, amp: 0.7, cutoff: 90
use_synth :beep
in_thread do
play_chord [55,59]
sleep 1
play_pattern_timed [57],[0.5]
play_pattern_timed [59],[1.5]
play_pattern_timed [60],[1.5]
play_pattern_timed [59],[1.5]
play_pattern_timed [57],[1.5]
play_pattern_timed [55],[1.5]
play_pattern_timed [62,59,55],[0.5]
play_pattern_timed [62],[0.5]
play_pattern_timed [50,60,59,57],[0.25]
end
play_pattern_timed [74],[0.5]
play_pattern_timed [67,69,71,72],[0.25]
play_pattern_timed [74,67,67],[0.5]
play_pattern_timed [76],[0.5]
play_pattern_timed [72,74,76,78],[0.25]
play_pattern_timed [79,67,67],[0.5]
play_pattern_timed [72],[0.5]
play_pattern_timed [74,72,71,69],[0.25]
play_pattern_timed [71],[0.5]
play_pattern_timed [72,71,69,67],[0.25]
play_pattern_timed [66],[0.5]
play_pattern_timed [67,69,71,67],[0.25]
play_pattern_timed [71,69],[0.5,1]
live_loop :drums do
sample :drum_heavy_kick, rate: 0.75
sleep 0.5
sample :drum_heavy_kick
sleep 0.5
end
live_loop :synths do
use_synth :mod_pulse
use_synth_defaults amp: 1, mod_range: 15, cutoff: 80, pulse_width: 0.2, attack: 0.03, release: 0.6, mod_phase: 0.25, mod_invert_wave: 1
play 30
sleep 0.25
play 38
sleep 0.25
end
use_debug false
live_loop :drums do
puts "slow drums"
6.times do
sample :drum_heavy_kick, rate: 0.8
sleep 0.5
end
puts "fast drums"
8.times do
sample :drum_heavy_kick, rate: 0.8
sleep 0.125
end
end
live_loop :synths do
puts "how does it feel?"
use_synth :mod_saw
use_synth_defaults amp: 0.5, attack: 0, sustain: 1, release: 0.25, mod_range: 12, mod_phase: 0.5, mod_invert_wave: 1
notes = (ring :F, :C, :D, :D, :G, :C, :D, :D)
notes.each do |n|
tick
play note(n, octave: 1), cutoff: (line 90, 130, steps: 16).look
play note(n, octave: 2), cutoff: (line 90, 130, steps: 32).look
sleep 1
end
end
live_loop :snare do
sample :drum_snare_soft
sleep 1
end
use_debug false
live_loop :drums do
sample :bd_fat, amp: 5
sleep 0.5
end
live_loop :acid do
4.times do |i|
use_random_seed 667
16.times do
use_synth :tb303
play chord(:e3, :minor).choose, attack: 0, release: 0.1, cutoff: rrand_i(50, 90) + i * 10
sleep 0.125
end
end
32.times do |i|
use_synth :tb303
play chord(:a3, :minor).choose, attack: 0, release: 0.05, cutoff: rrand_i(70, 98) + i, res: rrand(0.9, 0.95)
sleep 0.125
end
with_fx :reverb, mix: 0.3 do
32.times do
use_synth :prophet
play chord(:e3, :minor).choose, attack: 0, release: 0.08, cutoff: rrand_i(110, 130)
sleep 0.125
end
end
in_thread do
use_random_seed 668
with_fx :echo, phase: 0.125 do
16.times do
use_synth :tb303
play chord(:e3, :minor).choose, attack: 0, release: 0.1, cutoff: rrand(50, 100)
sleep 0.25
end
end
end
sleep 4
end
live_loop :idm_bb do
n = [1,2,4,8,16].choose
sample :drum_heavy_kick, amp: 2
sample :ambi_drone, rate: [0.25, 0.5, 0.125, 1].choose, amp: 0.25 if one_in(8)
sample :ambi_lunar_land, rate: [0.5, 0.125, 1, -1, -0.5].choose, amp: 0.25 if one_in(8)
sample :loop_amen, attack: 0, release: 0.05, start: 1 - (1.0 / n), rate: [1,1,1,1,1,1,-1].choose
sleep sample_duration(:loop_amen) / n
end
with_fx :reverb, mix: 0.8 do
live_loop :foo do
sp_name = [:ambi_choir, :ambi_dark_woosh, :ambi_drone, :ambi_glass_hum, :ambi_glass_rub, :ambi_haunted_hum, :ambi_lunar_land, :ambi_piano, :ambi_sauna, :ambi_swoosh].choose
sp_time = [1, 2].choose
sp_rate = 1
s = sample sp_name, cutoff: rrand(70, 130), rate: sp_rate * [0.5, 1].choose, pan: rrand(-1, 1), pan_slide: sp_time
control s, pan: rrand(-1, 1)
sleep sp_time
end
end
use_synth :tb303
use_bpm 45
use_random_seed 3
use_debug false
with_fx :reverb do
with_fx :echo, delay: 0.5, decay: 4 do
live_loop :echoes do
play chord([:b1, :b2, :e1, :e2, :b3, :e3].choose, :minor).choose, cutoff: rrand(40, 100), amp: 0.5, attack: 0, release: rrand(1, 2)
sleep [0.25, 0.5, 0.5, 0.5, 1, 1].choose
end
end
end
use_random_seed 10
notes = (ring :b1, :b2, :e1, :e2, :b3, :e3)
live_loop :tron do
with_synth :dsaw do
with_fx :slicer, phase: [0.25, 0.125].choose do
with_fx :reverb, room: 0.5, mix: 0.3 do
n1 = chord(notes.choose, :minor).choose
n2 = chord(notes.choose, :minor).choose
p = play n1, amp: 2, release: 8, note_slide: 4, cutoff: 30, cutoff_slide: 4, detune: rrand(0, 0.2)
control p, note: n2, cutoff: rrand(80, 120)
end
end
end
sleep 8
end
use_debug false
with_fx :reverb do
live_loop :choral do
r = (ring 0.5, 0.333, 0.6).choose
8.times do
sample :ambi_choir, rate: r, pan: rrand(-1, 1)
sleep 0.5
end
end
end
live_loop :wub_wub do
with_fx :wobble, phase: 2, reps: 16 do
with_fx :echo, mix: 0.6 do
sample :drum_heavy_kick
sample :bass_hit_c, rate: 0.8, amp: 0.4
sleep 1
end
end
end
use_debug false
notes = (scale :e1, :minor_pentatonic, num_octaves: 2).shuffle
live_loop :rerezzed do
tick_reset
with_fx :bitcrusher do
s = synth :dsaw, note: :e3, sustain: 8, note_slide: 0.04, release: 0
64.times do
sleep 0.125
control s, note: notes.tick
end
end
end
live_loop :industry do
sample :loop_industrial, beat_stretch: 1
sleep 1
end
live_loop :drive do
sample :bd_haus, amp: 3
sleep 0.5
end
# Community example: minimal mixer with saw bass, beep arp, kick
set_volume! 1
use_bpm 45
set :mixer, [1, 1, 1]
live_loop :mixer do
tick
k = 32
prog = knit(1, k*0.5, 2, k*0.5, 3, k, 4, k*2).look
case prog
when 0
set :mixer, [0,0,0]
when 1
set :mixer, [0,1,0]
when 2
set :mixer, [0,2,1]
when 3
set :mixer, [1,2,1]
when 4
set :mixer, [1,1,1]
end
sleep 0.25
end
with_fx :ping_pong do |pp|
live_loop :a1 do
tick
density [1,1,1,1,1,1,2,4].choose do
control pp, mix: [0,0.2,0.4].choose
if get(:mixer)[0] == 1
use_synth :saw
use_synth_defaults release: [0.1,0.2,0.3].choose+0.2, cutoff: 80
play :f2 if spread(2,7).look
end
control pp, mix: [0,0.2,0.4,0.6].choose
if get(:mixer)[1] == 1
use_synth :beep
use_synth_defaults release: [0.1,0.2,0.4].choose, cutoff: 80
play [:f5, :f4].choose if spread(6,7).look
end
control pp, mix: [0,0.2].choose
if get(:mixer)[2] == 1
sample :bd_fat, amp: 3 if spread(2,4).look
end
sleep 0.25
end
end
end
# Community example: top arp + bass + noise mixer
set_volume! 0.75
use_bpm 55
set :mixer, [1, 1, 1]
with_fx :ping_pong do |pp|
live_loop :a1 do
tick
density [1,1,1,1,1,1,2,4].choose do
control pp, mix: [0,0.2,0.4,0.6].choose
if get(:mixer)[0] == 1
use_synth :beep
play :c6, release: [0.03,0.5].choose, pan: rdist(1) if spread(2,7).shuffle.look
play :c5, release: 0.1, pan: rdist(0.75) if spread(11,16).look
play :c4, release: 0.5, pan: rdist(0.5) if spread(7,16).look
end
control pp, mix: [0,0.2].choose
if get(:mixer)[1] == 1
use_synth :saw
use_synth_defaults release: 0.4, cutoff: line(70, 99, steps: 16).mirror.look
k = 32
play :c3 + knit(0, k*2, -2, k, -4, k).look, amp: 1.25 if spread(7,12).rotate(2).look
end
control pp, mix: [0,0.2,0.4,0.6].choose
if get(:mixer)[2] == 1
use_synth :noise
use_synth_defaults release: 0.03, cutoff: 120
play :c4, amp: 1, pan: rdist(0.5)
end
sleep 0.25
end
end
end
# Community example: piano with layered voices
use_bpm 60
use_synth :piano
melody = [:c4, :e4, :g4, :b4, :a4, :g4, :e4, :c4]
durations = [1, 1, 1, 1, 1, 1, 1, 2]
soft_melody = [:e3, :g3, :b3, :c4, :d4, :b3, :g3, :e3]
live_loop :soft_melody do
with_fx :reverb, mix: 0.5, room: 1 do
melody.each do |note|
play note, amp: 0.5
sleep 1
end
end
end
live_loop :background_melody do
with_fx :reverb, mix: 0.7, room: 1 do
soft_melody.each do |note|
play note, amp: 0.2
sleep 1
end
end
end
live_loop :drone_continu do
use_synth :hollow
scale_notes = scale(:c2, :minor_pentatonic, num_octaves: 1)
play scale_notes.tick, sustain: 0.1, release: 0, amp: 0.9
sleep 0.1
end
# Community example: evolving ambient lead with echo and reverb
live_loop :ambient_lead do
use_bpm 60
notes = scale(:e3, :minor, num_octaves: 3)
n = notes.choose
with_fx :reverb, room: 0.9, mix: 0.6 do
with_fx :echo, phase: [0.75, 0.5, 1, 1.5].choose, decay: [6, 8, 12].choose, mix: [0.35, 0.65].choose do
with_fx :lpf, cutoff: rrand(40, 90) do
with_synth [:prophet, :blade, :fm, :saw, :pulse].choose do
play n,
attack: [4.0, 2.0, 3.0].choose,
sustain: [2.0, 5.0, 8.0].choose,
release: [6.0, 4.0, 9.0].choose,
amp: [0.0625, 0.125, 0.25].choose,
pan: rrand(-0.4, 0.4)
end
end
end
end
sleep [1, 2, 4, 6].choose
end
# Community example: noise drums + square bass + beep + saw melody
set_volume! 0.5
use_bpm 83
with_fx :ping_pong do |pp|
with_fx :krush do |krush|
with_fx :bitcrusher do |bit|
with_fx :reverb do |rev|
live_loop :a1 do
tick
sample :bd_haus, cutoff: 110, amp: 2 if spread(1,12).look
sample :sn_generic, finish: 0.01, cutoff: 130, amp: 0.7 if spread(4,12).rotate(2).look
mk = 32
myfx = knit(0, mk, 1, mk, 2, mk, 1, mk).look
case myfx
when 0
control pp, mix: 0.4
control krush, mix: 0.1
control rev, mix: 0.4
control bit, mix: 0.1
when 1
use_random_seed 230
control pp, mix: 0.2
control krush, mix: 0.2
end
use_synth :chipnoise
use_synth_defaults release: 0.2
play :c2 if spread(1,10).look
use_synth :bnoise
use_synth_defaults release: line(0.01, 0.3, steps: 16).choose
play :c2, cutoff: 70, pan: rdist(0.25) if bools(1,1,1,1,0,0,1,0,0,1,0,0).look
sleep 0.25
end
live_loop :a2 do
tick
use_synth :beep
use_synth_defaults release: 1
play :c5, amp: 0.7 if spread(1,16).rotate(5).look
k = 32
use_synth :square
use_synth_defaults cutoff: 70
play :c3 + knit(0, k, -2, k).look, amp: 1 if bools(1,0,1,0).look
sleep 0.25
end
live_loop :a3 do
tick
use_synth :saw
use_synth_defaults release: 0.3, cutoff: line(90, 120, steps: 32).mirror.look
k = 32
play :c4 + knit(0, k, 2, k*0.5, 3, k*0.25, 5, k*0.25).look, pan: rdist(1) if spread(3,5).look
sleep 0.25
end
end
end
end
end
# Community example: simple electronic track with drums, bass, melody
use_bpm 120
live_loop :drums do
sample :bd_haus, amp: 2
sleep 0.5
sample :sn_dub, amp: 1.5, rate: 1.5
sleep 0.5
end
live_loop :bass, sync: :drums do
use_synth :tb303
play :e2, release: 0.3, cutoff: rrand(70, 130), amp: 1.5
sleep 0.25
play :e2, release: 0.3, cutoff: rrand(70, 130), amp: 1.5
sleep 0.25
play :g2, release: 0.3, cutoff: rrand(70, 130), amp: 1.5
sleep 0.5
end
live_loop :melody, sync: :drums do
use_synth :prophet
play_pattern_timed scale(:e4, :minor_pentatonic).shuffle.take(8), 0.25, release: 0.2, amp: 0.7
sleep 2
end
# Community example: recursive thread-spawning note complex
define :play_complex do |note_in, velocity|
weight = 0.8
release = weight * 1.66
amp1 = 0.1 * weight * (0.5 + velocity)
amp2 = amp1 * 0.5
amp3 = amp2 * 0.5
notes = [note_in, note_in+12, note_in+19, note_in+24]
amps = [amp1, amp2, amp3, amp3*0.5]
pans = [-1, 1, -0.5, 0.5]
notes.length.times do |i|
play notes[i], amp: amps[i], pan: pans[i], release: release
end
end
define :play_and_sprout do |timing, root|
play_complex root, 0.4
sleep timing * 0.5
end
with_fx :reverb, room: 0.8 do
live_loop :sprouting do
use_bpm 96
chords_ring = (ring :c2, :c3, :g3, :f3, :c3, :f2)
root = chords_ring.tick
play_and_sprout 1, root
sleep 2
end
end
# Community example: distorted bass jam with noise layers
set_volume! 2
with_fx :distortion do |d|
with_fx :krush do |kr|
with_fx :reverb do |r|
live_loop :a1 do
tick
control kr, mix: knit(0.2, 32, 0.6, 32).look
control d, distort: [0,0.2,0.4,0.8].choose
control r, room: [0,0.2,0.4,0.8].choose
ki = 16
kick = knit(0, ki*3, 1, ki, 2, ki*4).look
case kick
when 0
when 1
sample :bd_fat, amp: 2 if spread(1,12).look
when 2
sample :bd_fat, amp: 2 if spread(11,32).look
end
k = 16
n = :c2 + knit(0, k*2, -2, k*2).look
n1 = n + 12
n2 = :c5
use_synth :sine
use_synth_defaults release: 0.5
play n if spread(1,16).look
use_synth_defaults release: 0.2
play n1, pan: rdist(0.6) if spread(7,16).look
play n2, pan: rdist(0.6), amp: 0.25 if spread(11,16).look
use_synth :bnoise
use_synth_defaults release: 0.2, cutoff: rrand_i(50, 90)
play n, pan: rdist(0.4), amp: 0.4 if spread(11,16).look
sleep 0.25
end
end
end
end
# Community example: bhairav scale with tabla rhythms
use_random_seed 15
tablas = [:tabla_tas1, :tabla_tas3, :tabla_tas2, :tabla_na, :tabla_re]
define :tabla_pattern do
8.times.map { tablas.choose }.ring
end
define :melody_pattern do
8.times.map { scale(:c4, :bhairav).choose }.ring
end
live_loop :tabla do
p = tabla_pattern
64.times do
what = p.tick
sample what, amp: rrand(0.7, 1.2)
sleep 0.125
end
end
live_loop :drone do
use_synth [:dark_ambience, :hollow].choose
play [:c4, :c3].choose, amp: [2,4].choose, sustain: 4, decay: 1
sleep 4
end
live_loop :bhairav do
use_synth :pluck
p = melody_pattern
8.times do
my_length = [0.25, 0.5, 1].choose
play p.tick, amp: rrand(2.0, 3.0), sustain: my_length, decay: my_length / 2.0
sleep my_length
end
end
# Community example: piano exercise with layered FX
use_bpm 120
with_fx :reverb, room: 0.4, mix: 0.67 do
with_fx :distortion, distort: 0.3 do
notes1 = (ring :c3, :e3, :f3, :g3, :a3, :g3, :f3, :e3)
live_loop :ex1 do
play notes1.tick, release: 0.5, amp: 0.6, pan: 0.7
sleep 0.25
end
end
with_fx :distortion, distort: 0.3 do
notes2 = (ring :c3, :e3, :a3, :g3, :f3, :g3, :f3, :e3)
live_loop :ex2 do
play notes2.tick, release: 0.5, amp: 0.6, pan: -0.8
sleep 0.25
end
end
end
with_fx :octaver do
notes3 = (ring :c3, :e3, :a3, :g3).take(2)
live_loop :ex3 do
play notes3.tick, release: 0.72, amp: 0.16, pan: 0.25
sleep 0.333333
end
end
with_fx :ping_pong, mix: 0.7 do
notes4 = (ring :c3, :d3, :c3, :e3, :a3, :g3, :f3, :e3).reverse
live_loop :ex4 do
play notes4.tick, release: 0.7, amp: 0.18, pan: -0.25
sleep 0.5
end
end
with_fx :rhpf, cutoff: 30, res: 0.3 do
live_loop :ex5 do
notes5 = (ring :c3, :a3, :g3, :a3, :f3, :g3, :e3, :f3).stretch(16)
play notes5.tick, attack: 0.02, release: 0.68, amp: 0.78
sleep 0.5
end
end
# Community example: iterating over note/duration pairs
a = [[:c4, 1], [:cs5, 1], [:db4, 1], [:g4, 2], [:r, 1], [[:c4, :e4, :g4, :c5], 0.75], [[:d4, :fs4, :a4, :d5], 1.25]]
a.each do |pair|
i = pair[0]
j = pair[1]
play i
sleep j
end
# Community example: sonic pi jam with density and spread
set_volume! 2
use_bpm 55
with_fx :reverb, room: 0.8 do
live_loop :a1 do
tick
density [1,2,1,1,2,1].choose do
p = 16
use_synth :saw
use_synth_defaults release: [0.1,0.2,0.3,0.4].choose, cutoff: [70,80,90,100,110].choose, pan: rdist(0.25)
play :c3
play :c4 + knit(0, p, -2, p, -4, p, -5, p).look
sleep 0.25
end
end
live_loop :a2 do
tick
use_synth :beep
play :c2, amp: 3 if spread(1,11).look
p = 16
use_synth :prophet
use_synth_defaults cutoff: line(70, 100, steps: 5).mirror.look
play :c5 + knit(0, p, -2, p, -4, p, -5, p).look, amp: 2 if spread(1,11).rotate(5).look
sleep 0.25
end
live_loop :a3 do
tick
density [2,2,2,1,2].look do
sample :sn_generic, finish: rrand(0.01, 0.2), amp: 1, pan: rdist(0.5) if spread(3,5).look
sleep 0.25
end
end
end
live_loop :kick do
tick
sample :bd_fat, amp: 4 if spread(1,2).look
sleep 0.25
end
# Community example: arpeggiated pattern with knit-based chord progression
set_volume! 1.5
set :a1synth, :saw
set :a1octav, 0
set :pan_a1, 0.75
set :a1_amp, 1
use_bpm 88
with_fx :reverb, room: 0.7 do
live_loop :a1 do
tick
use_synth get[:a1synth]
use_synth_defaults release: 0.3 + line(0, 0.2, steps: 16).look, cutoff: line(70, 110, steps: 128).mirror.look
n = :c3
k = 6
n1 = [0, 7, 11]
n2 = [2, 9, 11]
n3 = [4, 7, 11]
npat = knit(n1, k, n2, k, n3, k).look
play n + npat.look + get[:a1octav], pan: get[:pan_a1], amp: get[:a1_amp]
sleep 0.25
end
end
# Source: https://in-thread.sonic-pi.net/t/a-piece-from-gemini-google-a-i/9970
# Author: hitsware
# Title: A piece from Gemini (Google A.I.)
# Captured: 2026-04-24
# Randomly introduce a burst of tension
if (one_in 6)
# Step A: The Static (396Hz, Perfect 5th)
# Simulates the build of electrical charge
with_fx :bitcrusher do
use_synth :square
play 64, release: 0.1, amp: 0.3 # Sharp, bright, stable
sleep 0.1
end
# Step B: The Hail "Clean Slate" Sweep
# Releasing the mathematical tension into microtones
use_synth :prophet # A synth with rich harmonics
# Play a series of 12 notes, rapidly ascending,
# but each one is randomly detuned by up to 120 cents.
tick_reset
12.times do
# Notes 60 (C) up to 71 (B), with random microtonal offsets.
play (60 + tick), detune: rrand(-120, 120), release: 0.05, amp: 0.15
sleep 0.0625 # Very fast 1/16th notes
end
# A quiet, stable release back to our fundamental
# representing the ground covered in hail.
use_synth :tri
play 57, release: 10, amp: 0.2
end
# Most of the time, the storm is just building (empty space)
sleep rrand(2, 8)
# Source: https://in-thread.sonic-pi.net/t/evolving-atmospheric-drone-with-harmonized-melodies-in-sonic-pi/9934
# Author: Blitzfury
# Title: Evolving Atmospheric Drone with Harmonized Melodies in Sonic Pi
# Captured: 2026-04-24
use_bpm 60
use_synth :piano
melody = [:c4, :e4, :g4, :b4, :a4, :g4, :e4, :c4]
durations = [1, 1, 1, 1, 1, 1, 1, 2]
soft_melody = [:e3, :g3, :b3, :c4, :d4, :b3, :g3, :e3]
soft_durations = [1, 1, 1, 1, 1, 1, 1, 2]
third_voice = [:g2, :a2, :b2, :c3, :d3, :b2, :a2, :g2]
third_durations = durations
notes_played_main = 0
notes_played_bg = 0
notes_played_third = 0
amp_min_main = 0.2
amp_max_main = 1.0
amp_min_bg = 0.1
amp_max_bg = 0.3
amp_third = 0.15
live_loop :soft_melody do
with_fx :reverb, mix: 0.5, room: 1 do
melody.zip(durations).each do |note, dur|
amp_range = (amp_max_main - amp_min_main) / 2.0
amp_offset = amp_min_main + amp_range
amp = amp_offset + amp_range * Math.sin(notes_played_main * Math::PI / 8)
play note, amp: amp
sleep dur
notes_played_main += 1
end
end
end
live_loop :background_melody do
with_fx :reverb, mix: 0.7, room: 1 do
soft_melody.zip(soft_durations).each do |note, dur|
amp_range = (amp_max_bg - amp_min_bg) / 2.0
amp_offset = amp_min_bg + amp_range
amp = amp_offset + amp_range * Math.sin(notes_played_bg * Math::PI / 12)
play note, amp: amp
sleep dur
notes_played_bg += 1
end
end
end
live_loop :third_voice do
sleep durations.sum / 2
with_fx :reverb, mix: 0.4, room: 0.7 do
third_voice.zip(third_durations).each do |note, dur|
play note, amp: amp_third, sustain: dur * 0.9, release: dur * 0.1
sleep dur
notes_played_third += 1
end
end
end
live_loop :drone_continu do
use_synth :hollow
base_note = 36
dur = 0.1
tick_count = tick
scale_notes = scale(base_note, :minor_pentatonic, num_octaves: 1)
note = scale_notes[tick_count % scale_notes.length]
amp_mod = 0.9 + 0.1 * Math.sin(tick_count * Math::PI / 150 + Math::PI / 3)
play note, sustain: dur, release: 0, amp: amp_mod
sleep dur
end
# Source: https://in-thread.sonic-pi.net/t/bass-and-noise-jam-in-sonic-pi/9878
# Author: Relaxnow
# Title: Bass and noise jam in Sonic Pi
# Captured: 2026-04-24
set_volume! 2
with_fx :distortion do |d|
with_fx :krush do |kr|
with_fx :reverb do |r|
live_loop :a1 do
tick
kn = 32
control kr, res: [0,0,0,0,0.2,0.4,0.8].choose, pre_mix: [0,0,0,0.2,0.4,0.8].choose, mix: knit(0.2,kn, 0.6,kn).look
control d, distort: [0,0.2,0.4,0.8].choose, pre_mix: [0.2,0.4,0.8].choose
control r, room: [0,0.2,0.4,0.8].choose, pre_mix: [0.2,0.4,0.8].choose
ki = 16
kick = knit(0,ki*3, 1,ki, 2,ki*4).look
case kick
when 0
when 1
sample :bd_fat, amp: 2 if (spread(1,12)*1+spread(3,4).rotate(1)).look
when 2
sample :bd_fat, amp: 2 if spread(11,32).look
end
k = 16
n = :c2+knit(0,k*2,-2,k*2).look
n1 = n+12
hi = 16
highnotes = 0
highnotes = knit(0,hi*3, 1,hi*4,2, hi*4).look
case highnotes
when 0
when 1
n2 = :c5
when 2
nn = 4
n2 = :c5+knit(0,nn*6, 7,nn*2, 5,nn, -2,nn).look
end
use_synth :sine
use_synth_defaults release: [0.1,0.2,0.4].choose+0.4
play n if spread(1,16).look
use_synth_defaults release: [0.1,0.2,0.4].choose
play n1+line(0,0.4,steps: 8).choose, pan: rdist(0.6) if spread(7,16).look
use_synth_defaults release: [0.1,0.2,0.4].choose
play n2+line(0,0.3,steps: 8).choose, pan: rdist(0.6), amp: 0.25 if spread(11,16).look
use_synth :bnoise
use_synth_defaults release: [0.1,0.2,0.4].choose, cutoff: rrand_i(50,90)
play n+line(0,0.2,steps: 8).choose, pan: rdist(0.4), amp: 0.4 if spread(11,16).look
sleep 0.25
end
end
end
end
# Source: https://in-thread.sonic-pi.net/t/morning-vibe-morning-motivation-gratitude-manifestation/9872
# Author: LwinLwin
# Title: Morning Vibe, morning motivation, gratitude, manifestation
# Captured: 2026-04-24
use_bpm 98
use_synth :piano
#Chord progression
define :chords do
play chord(:C4, :major)
sleep 1
play chord(:A3, :minor)
sleep 1
play chord(:F4, :major)
sleep 1
play chord(:G3, :major)
sleep 1
end
#Drum pattern
define :drums do
sample :bd_haus, amp: 1
sleep 0.5
sample :sn_dolf, amp: 0.6
sleep 0.5
sample :bd_haus, amp: 1
sleep 0.5
sample :sn_dolf, amp: 0.6
sleep 0.5
end
#Melody pattern
define :melody do
use_synth :pluck
play_pattern_timed [:E5, :G5, :A5, :G5, :F5, :E5, :D5], [0.5,0.5,0.5,0.5,0.5,0.5,1]
end
#Background pad
define :pad_bg do
use_synth :hollow
play :C4, sustain: 4, amp: 0.3
sleep 4
end
#Main Loop
live_loop :morning do
in_thread { chords }
in_thread { drums }
in_thread { melody }
in_thread { pad_bg }
sleep 4
end
# Source: https://in-thread.sonic-pi.net/t/trying-to-make-dub-reverb-from-underdog-tutorial/9867
# Author: Relaxnow
# Title: Trying to make Dub reverb from Underdog tutorial
# Captured: 2026-04-24
set :mysynth, :saw
set :mysynth, :beep
set_volume! 0.5
with_fx :gverb do |gv|
with_fx :ping_pong do |pp|
live_loop :a1 do
use_synth get[:mysynth]
tick
control gv, pre_mix: [0,0,0,0.74].look
control pp, pre_mix: [0,0,0,0.75].look
r = s = d = [0.01,0.1,0.05].choose
play :c5+[0,3,7,-2].choose, release: r, sustain: s, decay: d, pan: rdist(0.75), amp: 0.8
sleep [0.25,0.125,0.5,1].choose
end
end
live_loop :a2 do
use_synth get[:mysynth]
tick
control gv, mix: [0,0,0,0,0.4].look
r = s = d = [0.01,0.1,0.05].choose+0.02
play :c3+knit(0,16, -5,16, -4,8, 0,8).look, release: r, sustain: s, decay: d, pan: rdist(0.25), amp: 0.75
sleep [0.25,0.125,0.5,1].choose
end
end
live_loop :a3 do
tick
sample :bd_fat, amp: 2 if spread(2,4).look
sleep 0.25
end
# Source: https://in-thread.sonic-pi.net/t/quick-cover-of-kx5-escape-feat-hayla-official-lyric-video/9861
# Author: Relaxnow
# Title: Quick cover of "Kx5 - Escape (feat. Hayla) [Official Lyric Video]"
# Captured: 2026-04-24
set_volume! 2
use_bpm 126-10
with_fx :reverb, room: 0.5 do
live_loop :a1 do
tick
sample :bd_fat, amp: 1.5 if spread(1,4).look
sample :perc_snap, finish: 0.09, amp: 0.5 if bools(0,0,0,0,1,0,0,0).look
sample :hat_cab, rpitch: 12+12+12, amp: 0.75 if bools(0,0,1,0,0,0,1,0).look
cho = 1
a = 4
cho = knit(1,5*a, 2,2*a, 3,4*a, 4,2*a, 5,2*a, 6,7*a).look
case cho
when 1
c = [:f3,:a3,:c4]
when 2
c = [:d3,:g3,:b3]
when 3
c = [:e3,:a3,:c4]
when 4
c = [:d3,:f3,:a3]
when 5
c = [:e3,:g3,:b3]
when 6
c = [:f3,:a3,:c4]
end
mysynth = 2
case mysynth
when 1
use_synth :piano
use_synth_defaults release: 4, sustain: 2
play c if spread(cho,32).look
when 2
use_synth :saw
use_synth_defaults release: line(0.5,1.2, steps: 16+12).mirror.look, cutoff: line(40,120,steps: 64).mirror.look
play c, pan: rdist(0.25) if spread(11,32).look
use_synth :square
use_synth_defaults release: line(0.5,0.7, steps: 16+12).mirror.look, cutoff: line(40,120,steps: 64+16).mirror.look
k = 32
play c.look+12, amp: 0.5, pan: rdist(0.5) if spread(22,32).look and one_in(knit(0,k, 4,k, 1,k*3).look)
use_synth :square
use_synth_defaults release: line(0.7,0.9,steps: 12).look, cutoff: line(60,90,steps: 128).look
play c.take(1).look-12+0.01, pan: 0.25, amp: 0.7 if spread(11,32).look
use_synth :saw
play c.take(1).look-12-12-0.01, pan: -0.25 if spread(11,32).look
end
sleep 0.25
end
end
# Source: https://in-thread.sonic-pi.net/t/250514-evolving-arp-sketch-yt/9690
# Author: Relaxnow
# Title: 250514 Evolving arp sketch YT
# Captured: 2026-04-24
set_volume! 2
with_fx :reverb, room: 0.9 do
live_loop :a1 do
tick
# kick
sample :bd_fat, amp: 2 if spread(1,4).look
# bass
use_synth :saw
use_synth_defaults cutoff: 80+line(-10,50,steps: 64).mirror.look, release: 0.1+line(-0.05,0.1,steps: 32).mirror.look
j = 32
play :c3+knit(0,j*2, -2,j, -5,j, -4,j).look if spread(5,7).rotate(rrand_i(0,5)).look
# arp
use_synth knit(:saw, 128, :square, 128, :pluck, 128, :dtri,128).look
i = 32
r = 16
play :c5+[0,knit(3,i,2,i,5,i,3,i).look,7].look, pan: rdist(knit(0,r, 0.25,r, 0.5,r,0.75,r, 1,r).mirror.look) if spread(3,5).rotate(rrand_i(0,0)).look
sleep 0.125
end
live_loop :a2 do
tick
use_synth_defaults cutoff: 80+line(-10,50,steps: 64).mirror.look, release: 0.1+line(-0.05,0.1,steps: 32).mirror.look
n = :c6
s = 0.125
q = s*4
pat = 0
p = 4
pat = knit(1,p,2,p,3,p,4,p).look
pat = knit(0,p*4, 1,p,2,p,3,p,4,p).look
case pat
when 0
when 1
notes = [n, n, n+2]
play notes.look
when 2
notes = [n, n, n+3]
play notes.look
when 3
notes = [n, n, n+7]
play notes.look
when 4
notes = [n, n, n+5]
play notes.look
end
sleep [q*4-s*2,s*4,q*8-s*2].look
end
end
# Source: https://in-thread.sonic-pi.net/t/fun-with-functions/9641
# Author: brendanmac
# Title: Fun With Functions
# Captured: 2026-04-24
use_synth :piano
define :cars do |nn, dd|
play_pattern_timed [nn, nn, nn+7], [dd, dd, dd*2]
end
t = 0 #change me +/-
live_loop :alex1 do
cars 60+t, 0.5
end
live_loop :alex2, delay: 8.25 do
cars 65+t, 0.5
end
# Source: https://in-thread.sonic-pi.net/t/simple-semitone-array-for-the-rate-opt/9634
# Author: brendanmac
# Title: Simple semitone array for the rate opt
# Captured: 2026-04-24
a = []
13.times do
y = tick
x = 2**(y/12.0)
a.push(x)
end
puts a
sleep 1
tick_reset
8.times do
maj = [0,2,4,5,7,9,11,12].tick
sample :bass_thick_c, onset: 0, sustain: 0.4, rate: a[maj]
sleep 0.5
end
# Source: https://in-thread.sonic-pi.net/t/a-synthwave-music/9617
# Author: Tianjh
# Title: A synthwave music
# Captured: 2026-04-24
use_bpm 140
live_loop :metronome do
cue :tick
sleep 1
end
live_loop :drum do
sample :bd_zum
sleep 1
sample :hat_zild
sleep 1
sample :sn_zome, amp: 3
sleep 1
sample :hat_zild
sleep 1
end
live_loop :chor do
use_synth :prophet
play chord(:f3, :M), release: 3, amp: 3
sleep 3
play chord(:a3, :m), release: 5, amp: 3
sleep 5
play chord(:c4, :M), release: 3, amp: 3
sleep 3
play chord(:g3, :M), release: 5, amp: 3
sleep 5
end
live_loop :chor2 do
use_synth :saw
play chord(:f3, :M), release: 3, amp: 1
sleep 3
play chord(:a3, :m), release: 5, amp: 1
sleep 5
play chord(:c4, :M), release: 3, amp: 1
sleep 3
play chord(:g3, :M), release: 5, amp: 1
sleep 5
end
live_loop :arp, delay: 32 do
use_synth :chiplead
nooote = [:c4, :e4, :g4, :e4]
nooote.each do |n|
play n
sleep 0.5
end
end
live_loop :whatisthis, delay: 64 do
use_synth :square
sleep 5
play :c6, release: 1.5, amp: 1.5
sleep 1
play :b5, release: 1.5, amp: 1.5
sleep 1
play :c6, release: 1.5, amp: 1.5
sleep 4
play :d6, release: 1.5, amp: 1.5
sleep 2
play :c6, release: 1.5, amp: 1.5
sleep 1
play :b5, release: 1.5, amp: 1.5
sleep 1
play :c6, release: 1.5, amp: 1.5
sleep 1
end
# Source: https://in-thread.sonic-pi.net/t/blues-machine-12-bar-blues-variations/9619
# Author: rothen_s
# Title: Blues Machine - 12-Bar-Blues-Variations
# Captured: 2026-04-24
use_bpm 80
use_random_seed 70
# Chord diffs relative to the root (halftone steps)
g_chord_diffs = [0, [0,5], 0, 0,
5, 5, 0, 0,
7, 5, 0, [0,7]]
g_licks = {
lick_pause:
[[:r],[4]],
lick_cjamblues_1:
[[3,0,3,0], [0.5,0.5,0.5,2.5]],
lick_cjamblues_2:
[[7,5,3,0],[0.5,0.5,0.5,2.5]],
lick_cjamblues_3:
[[:r, 0],[2,2]],
lick_cjamblues_4:
[[5,3,0,:r],[1,0.5,1.5,1]],
lick_cjamblues_5:
[[-2,-2,0,3,0,-2, 0],[0.5,0.5,1.0,0.5,0.5,0.5,0.5]]
}
g_max = g_licks.length - 1
g_sleep = 4
g_times = 1
g_grundton = :C3
g_note = g_grundton
# Drums
with_fx :reverb, room: 0.6, mix: 0.3 do
live_loop :ll_drums do
with_fx :compressor, threshold: 0.2, slope_above: 0.5 do
sample :drum_bass_hard, amp: [1.3,1.5,1.7].choose
sleep 0.5
p_times = 1
if one_in 4 then
p_times = [1,2,3].choose
end
p_times.times do
sample [:drum_snare_soft, :drum_snare_hard].choose, amp: [1.1,1.4,1.6].choose
sleep 0.5 / p_times
end
end
end
end
# Chords
live_loop :ll_chords, delay: 8 do
use_synth :piano
use_synth_defaults decay: g_sleep, amp: 2
g_chord_diffs.each do |p_diff|
if p_diff.kind_of?(Array) then
l_diff = p_diff.choose
else
l_diff = p_diff
end
g_note = g_grundton + l_diff
if l_diff == 0 then
l_chord = (chord g_note, '6')
else
l_chord = (chord g_note, '7')
end
g_times.times do
play l_chord
sleep g_sleep
end
end
end
# Licks
with_fx :reverb, room: 0.6, mix: 0.3 do
live_loop :ll_licks, delay: 8 do
use_synth :pluck
use_synth_defaults amp: 4, coef: [0.2,0.3,0.4].choose, sustain: 0.5
temp_num = rrand_i(0, g_max)
p_lick = g_licks.values[temp_num]
l_notes = p_lick[0].map {|a| a + 12 + note_info(g_note).midi_note}
play_pattern_timed l_notes, p_lick[1]
end
end
# Bass
live_loop :ll_bass, delay: 4 do
use_synth :bass_foundation
l_note = g_note - 24
play l_note, release: 0.5, amp: 1.5
sleep 0.5
play l_note + 7, release: 0.5, amp: 1.2
sleep 0.5
play l_note + 12, release: 0.5, amp: 1
sleep 0.5
play l_note + 7, release: 0.5, amp: 1.3
sleep 0.5
end
# Source: https://in-thread.sonic-pi.net/t/a-choose-based-automatic-music-generator/9594
# Author: Tianjh
# Title: A "Choose"-Based Automatic Music Generator
# Captured: 2026-04-24
use_random_seed 0
use_bpm rrand(90, 130)
synths = [:piano, :saw, :square, :tri, :supersaw]
use_synth choose(synths)
m = [:g3, :a3, :b3, :c4, :d4, :e4, :f4, :g4]
times = [0.5, 1]
c = choose(m)
t = choose(times)
in_thread do
loop do
sample :bd_ada
sleep 1
end
end
loop do
play c
if c == :c4 || c == :e4 || c == :g3 || c == :g4 then
c = choose([m[0], m[3], m[5], m[7]])
elsif c == :f4 || c == :d4 || c == :b3
c = choose([m[5], m[4], m[2]])
elsif c == :a3
c = choose([m[0], m[2], m[3]])
end
sleep choose(times)
end
# Source: https://in-thread.sonic-pi.net/t/ocean-ambience-danks-first-submission/9580
# Author: dank
# Title: Ocean Ambience - Dank's First Submission
# Captured: 2026-04-24
use_debug false
use_bpm 70
# Ambient background
live_loop :ocean_ambience do
sample :ambi_lunar_land, rate: 0.5, amp: 0.4
sleep 16
end
# Bubbling sounds
live_loop :bubbles, delay: 4 do
use_synth :beep
use_synth_defaults attack: 0.01, release: 0.2, amp: 0.2
with_fx :reverb, room: 0.8, mix: 0.6 do
with_fx :echo, mix: 0.3, phase: 0.5 do
note = scale(:e3, :minor_pentatonic).choose
pan_value = rrand(-0.8, 0.8)
sleep_time = [0.25, 0.5, 0.75].choose
play note, pan: pan_value
sleep sleep_time
end
end
end
# Pulsating rhythm
live_loop :jellyfish_pulse do
use_synth :dtri
with_fx :slicer, phase: 0.5, wave: 1, mix: 0.3 do
with_fx :reverb, room: 0.9, mix: 0.5 do
chords = [
chord(:e3, :m9),
chord(:c3, :maj9),
chord(:a2, :m9),
chord(:d3, :maj9)
]
play_chord chords.tick, attack: 0.1, release: 4, amp: 0.5
sleep 4
end
end
end
# Flowing tendrils
live_loop :tendrils, delay: 8 do
use_synth :blade
use_synth_defaults attack: 2, release: 6, amp: 0.3
notes = (scale :e4, :minor_pentatonic, num_octaves: 2)
current_note = notes.choose
pan_value = rrand(-0.5, 0.5)
sleep_duration = [4, 6, 8].choose
with_fx :hpf, cutoff: 60 do
with_fx :reverb, room: 0.9, mix: 0.7 do
play current_note, pan: pan_value
sleep sleep_duration
end
end
end
# Gentle bass current
live_loop :deep_current, delay: 16 do
use_synth :fm
use_synth_defaults attack: 0.5, release: 7, amp: 0.6
bass_notes = [:e2, :c2, :a1, :d2]
with_fx :lpf, cutoff: 80 do
play bass_notes.tick, release: 7
sleep 8
end
end
# Occasional shimmer
live_loop :shimmer, delay: 24 do
use_synth :pretty_bell
with_fx :reverb, room: 0.9, mix: 0.8 do
with_fx :gverb, mix: 0.6 do
sleep 16
play_pattern_timed scale(:e5, :minor_pentatonic, num_octaves: 1),
[0.25, 0.5, 0.25], amp: 0.2, pan: rrand(-0.7, 0.7)
sleep 16
end
end
end
# Water droplets
live_loop :droplets, delay: 32 do
sample :drum_cymbal_soft, rate: 1.5, amp: 0.1 if one_in(4)
sample :elec_blip, rate: 1.2, amp: 0.1 if one_in(3)
sample :elec_blip2, rate: 1.5, amp: 0.1 if one_in(5)
sleep 0.5
end
# Source: https://in-thread.sonic-pi.net/t/the-first-music-i-made-by-sonic-pi/9572
# Author: Tianjh
# Title: The first music i made by sonic pi
# Captured: 2026-04-24
use_bpm 120
use_synth :saw
live_loop :metronome do
cue :tick
sleep 1
end
live_loop :sawchord do
play chord(:c4, :m7), amp: 0.5
sleep 1.5
play chord(:c4, :m7), amp: 0.5
sleep 0.5
play chord(:g3, :m7), amp: 0.5
sleep 0.75
play chord(:g3, :m7), amp: 0.5
sleep 0.75
play chord(:f3, :m7), amp: 0.5
sleep 2
play chord(:f3, :m7), amp: 0.5
sleep 0.5
play chord(:g3, :m7), amp: 0.5
sleep 1
play chord(:g3, :m7), amp: 0.5
sleep 1
end
live_loop :drums, delay: 32 do
sample :bd_ada, rate: 1.3
sample :hat_snap, amp: 0.3
sleep 0.5
sample :hat_snap, amp: 0.6
sleep 0.5
sample :sn_zome, amp: 0.7, rate: 1.2
sample :hat_snap, amp: 0.3
sleep 0.5
sample :hat_snap, amp: 0.6
sleep 0.5
end
m = [:bb4, :g4, :f4, :eb4]
live_loop :meldy, delay: 32 do
use_synth :chiplead
4.times do
play m[0], amp: 0.5
sleep 0.5
end
2.times do
play m[2], amp: 0.5
sleep 0.5
end
play m[1], amp: 0.5
sleep 0.5
play m[3], amp: 0.5
sleep 1
3.times do
play m[3], amp: 0.5
sleep 0.5
end
2.times do
play m[2], amp: 0.5
sleep 1
end
end
live_loop :padd, delay: 64 do
use_synth :chipbass
play m[0], release: 2, amp: 0.8
sleep 2
play m[2], release: 1.5, amp: 0.8
sleep 1.5
play m[3], release: 2.5, amp: 0.8
sleep 2.5
play m[2], release: 2, amp: 0.8
sleep 2
end
# Source: https://in-thread.sonic-pi.net/t/exploring-tb303/9451
# Author: Relaxnow
# Title: Exploring tb303
# Captured: 2026-04-24
set_volume! 2
use_bpm 77
with_fx :reverb, room: 0.75 do
with_fx :krush do |krush|
live_loop :a1 do
tick
control krush, mix: line(0,0.8,steps: 64).look
sample :bd_fat, amp: 4 if spread(1,9).look
sample :bd_fat, rpitch: 24, amp: 6 if spread(1,5).look
sample :sn_generic, finish: 0.01, amp: 2 if spread([1,1,1, 1,1,1, 5,1,1, 1,1,1].look, 9).look
k = 64
use_synth :tb303
n = :f2+knit(0,k,-2,k).look
use_synth_defaults release: [0.1,0.2,0.4,0.8].choose, cutoff: [70,90,110].look+knit(-20,k,-10,k).look
play n+[0,0,0,0,12].look, pan: rdist(0.25) if spread(9,12).look
use_synth_defaults release: [0.1,0.2,0.3,0.4,0.8].choose, cutoff: [70,90,110].look+knit(-20,k,-10,k).look
play n+[0,0,0,0,12].look+24, amp: 0.5, pan: rdist(0.5) if spread(5,12).rotate(5).look
use_synth [:noise,:gnoise].choose
density [1,2,1,1,4,1,1,1,1,1,1,1,1,].choose do
use_synth_defaults release: 0.001, cutoff: rrand_i(90,130)
play :c2, pan: rdist(1) if spread(rrand_i(14,15),16).look
sleep 0.25
end
end
end
live_loop :a2 do
tick
use_synth :beep
play :a5+knit(0,32,1,32,1,32,0,32).look, amp: 0.6 if spread(1,32).rotate(5).look
sleep 0.25
end
end
# Source: https://in-thread.sonic-pi.net/t/blues-band-with-swinging-drums-bass-and-piano-my-first-creation/9441
# Author: adrianco
# Title: Blues band with swinging drums, bass and piano - my first creation
# Captured: 2026-04-24
use_bpm 140
swing = 0.15 # set to 0 for straight beats, 0.15 for a shuffle
key = :Eb3 # E flat is a common blues key
with_fx :reverb do
live_loop :drums do
sample :hat_tap, amp: 0.9
sample :drum_bass_hard, amp: 0.9
sleep 0.5+swing
sample :hat_tap, amp: 0.7
sample :drum_bass_hard, amp: 0.8
sleep 0.5-swing
sample :drum_snare_hard, amp: 0.8
sample :hat_tap, amp: 0.8
sleep 0.5+swing
sample :hat_tap, amp: 0.7
sleep 0.5-swing
end
blues_scale = (ring key, key, key+12, key+12, key+10, key+10, key+5, key+3)
durs = (ring 0.5,0.5, 0.5,0.5, 0.5,0.5, 0.5,0.5)
twelvebar = (ring 0, 0, 0, 0, 5, 5, 0, 0, 7, 5, 0, 7)
live_loop :bass do
use_synth :fm
use_transpose twelvebar.tick(:bar)
4.times do
use_synth_defaults release: 0.5+swing, amp: 1.0, pan: 0.3
play blues_scale.tick(:note)
sleep durs.look(:note)+swing
use_synth_defaults release: 0.5-swing, amp: 0.8, pan: 0.3
play blues_scale.tick(:note)
sleep durs.look(:note)-swing
end
end
live_loop :chords do
use_synth :piano
use_synth_defaults pan: -0.30, amp: 1.0, stereo_width: 0.3
play_chord chord(key+24+twelvebar.tick(:chords), :minor), decay: 2, release: 2
sleep 4
end
live_loop :solo do
use_synth :piano
use_synth_defaults pan: -0.30, amp: 1.0, stereo_width: 0.3
sleep 2
pattern1 = shuffle(scale(key+12*dice(2)+twelvebar.look(:chords), :minor_pentatonic))
pattern2 = shuffle(scale(key+24+twelvebar.look(:chords), :minor_pentatonic))
play_pattern_timed pattern1, 0.25
play_pattern_timed pattern2, 0.5
play_pattern_timed pattern2, 0.25
end
end
# Source: https://in-thread.sonic-pi.net/t/sick-drummer-a-metal-drummer-bot-with-snare-fills/9372
# Author: Sunk
# Title: Sick Drummer - a metal drummer bot with snare fills
# Captured: 2026-04-24
rudiments =
[[[1,0,1,1],[0,1,0,0]],
[[0,1,0,0],[1,0,1,1]],
[[1,0,1,0],[0,1,0,1]],
[[0,1,0,1],[1,0,1,0]],
[[1,1,0,0],[0,0,1,1]],
[[0,0,1,1],[1,1,0,0]],
[[0,0,0,0],[1,1,1,1]],
[[1,1,1,1],[0,0,0,0]],
[[1,0,0,1],[0,1,1,0]],
[[0,1,1,0],[1,0,0,1]],
[[1,1,1,0],[0,0,0,1]],
[[0,0,0,1],[1,1,1,0]]]
kit =
[[:drum_snare_hard, 0.33],
[:drum_roll, 1.75],
[:drum_heavy_kick, 1]]
bd_patterns =
[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0],
[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],
[1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0],
[1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0]]
sn_patterns =
[[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0]]
cy_patterns =
[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],
[1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0],
[1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]]
len = 0.25
use_bpm 180
with_fx :gverb, room: 50, mix: 0.5 do
with_fx :compressor, mix: 1, amp: 1 do
with_fx :eq, high_shelf: 0.25, high: 0, mid: 0.25, low: -1.5, low_shelf: 1 do
live_loop :fill do
beat = 0
bd = choose(bd_patterns)
sn = choose(sn_patterns)
cy = choose(cy_patterns)
7.times do
count = 0
16.times do
if bd[count] == 1
sample :drum_heavy_kick, sustain: len
sample :drum_heavy_kick, sustain: len * 0.0125
end
if sn[count] == 1
sample :drum_snare_hard, sustain: len
sample :drum_snare_hard, sustain: len * 0.0125
end
if cy[count] == 1
sample :drum_cymbal_open, amp: 0.33, sustain: len
end
sleep len
count += 1
end
end
end
end
end
end
# Source: https://in-thread.sonic-pi.net/t/lofi-hip-hop-creation/9432
# Author: boda
# Title: Lofi hip hop creation
# Captured: 2026-04-24
# lo-fi
use_bpm 60
chords =
[
(chord_degree :iv, :C4, :major),
(chord_degree :iii, :C4, :major),
(chord_degree :ii, :C4, :major),
chord(:C4, :major7),
chord(:C4, :major7),
]
live_loop :chord do
use_synth :piano
play chords.tick, decay: 2
sleep 2
play chords.tick, decay: 2
sleep 2
play chords.tick, decay: 2
sleep 2
play chords.tick, decay: 1
sleep 1
play chords.tick, decay: 1
sleep 1
end
with_fx :distortion do
with_fx :lpf do
live_loop :bass do
use_synth :subpulse
play chords.tick[-1], decay: 2, amp: 0.1
sleep 2
play chords.tick[-1], decay: 2, amp: 0.1
sleep 2
play chords.tick[-1], decay: 2, amp: 0.1
sleep 2
play chords.tick[-1], decay: 1, amp: 0.1
sleep 1
play chords.tick[-1], decay: 1, amp: 0.1
sleep 1
end
end
end
hats = [1,0,1,0] * 4
live_loop :hats do
sample :hat_bdu if hats.tick == 1
sleep 0.25
end
tom = [1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0]
live_loop :clap do
sample :tabla_ghe1, amp: 0.5 if tom.tick == 1
sleep 0.5 / 2
end
pattern = [1,0,1,1]
live_loop :test do
sample :perc_snap2, amp: 0.5 if pattern.tick == 1
sleep 1
end
with_fx :bitcrusher do
live_loop :melody do
use_synth :kalimba
use_random_seed 4
for _ in 1..8 do
play chord(:F, :major7), amp: 5
sleep [0.25, 0.25, 0.5, 1].choose
end
end
end
# Source: https://in-thread.sonic-pi.net/t/the-fibonacci-sequence-sounds-like-a-cat-with-the-zoomies-on-a-piano/9357
# Author: Sunk
# Title: The fibonacci sequence sounds like a cat with the zoomies on a piano
# Captured: 2026-04-24
# The fibonacci sequence creates beautiful images
# Does it sound good when applied to equal temperment?
# notes
fib = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
# lengths - truncated because we don't have enough time
fiblen = [1, 1, 2, 3, 5, 8, 13, 21]
# shift to bring notes into audible range
aud = 21
use_bpm 233 # also in the sequence
use_synth :piano
with_fx :gverb, amp: 1, room: 233 do
with_fx :compressor do
live_loop :loop do
len = choose(fiblen) * 0.5
play choose(fib)+aud, attack: len * 0.1, decay: len * 0.1, sustain: len * 0.5, amp: 0.5
play choose(fib)+aud, attack: len * 0.1, decay: len * 0.1, sustain: len * 0.3, amp: 0.5
play choose(fib)+aud, attack: len * 0.2, decay: len * 0.2, sustain: len * 0.2, amp: 0.5
play choose(fib)+aud, attack: len * 0.3, decay: len * 0.3, sustain: len * 0.1, amp: 0.5
play choose(fib)+aud, attack: len * 0.5, decay: len * 0.5, sustain: len * 0.1, amp: 0.5
sleep len
end
end
end
# Source: https://in-thread.sonic-pi.net/t/slaapliedje-lullaby/9339
# Author: R2L
# Title: Slaapliedje (Lullaby)
# Captured: 2026-04-24
freqs = [27.5, 28.122, 28.758, 29.408, 30.073, 30.753, 31.448, 32.159, 32.887, 33.63, 34.391, 35.168, 35.963, 36.777, 37.608, 38.459, 39.328, 40.217, 41.127, 42.057, 43.008, 43.98, 44.975, 45.991, 47.031, 48.095, 49.182, 50.294, 51.432, 52.595, 53.784, 55.0, 56.244, 57.515, 58.816, 60.146, 61.506, 62.897, 64.319, 65.773, 67.26, 68.781, 70.336, 71.927, 73.553, 75.216, 76.917, 78.656, 80.435, 82.253, 84.113, 86.015, 87.96, 89.949, 91.983, 94.063, 96.19, 98.365, 100.589, 102.863, 105.189, 107.568, 110.0, 112.487, 115.031, 117.632, 120.292, 123.012, 125.793, 128.637, 131.546, 134.521, 137.562, 140.673, 143.853, 147.106, 150.433, 153.834, 157.312, 160.869, 164.507, 168.227, 172.031, 175.92, 179.898, 183.966, 188.126, 192.38, 196.729, 201.178, 205.727, 210.379, 215.135, 220.0, 224.975, 230.062, 235.264, 240.583, 246.023, 251.586, 257.275, 263.092, 269.041, 275.124, 281.345, 287.707, 294.212, 300.865, 307.668, 314.625, 321.739, 329.014, 336.453, 344.061, 351.841, 359.796, 367.932, 376.251, 384.759, 393.459, 402.356, 411.453, 420.757, 430.271, 440.0, 449.949, 460.123, 470.527, 481.166, 492.046, 503.172, 514.55, 526.184, 538.082, 550.249, 562.691, 575.414, 588.425, 601.73, 615.336, 629.25, 643.478, 658.028, 672.907, 688.122, 703.682, 719.593, 735.864, 752.503, 769.518, 786.918, 804.711, 822.907, 841.514, 860.542, 880.0]
set :offset, 119
define :get_midi do |note|
midi_note = hz_to_midi(freqs[get[:offset] + note])
return midi_note
end
live_loop :basic_beat do
cue :start7tellen
2.times do
cue :maatvan2
sample :perc_bell, beat_stretch: 0.35
sleep 0.5
sample :perc_bell, beat_stretch: 0.15, amp: 0.5
sleep 0.5
end
cue :maatvan3
sample :perc_bell, beat_stretch: 0.3
sleep 0.5
sample :perc_bell, beat_stretch: 0.2, amp: 0.5
sleep 0.5
sample :perc_bell, beat_stretch: 0.25, amp: 0.4
sleep 0.5
end
live_loop :ritme3tegen2 do
sync :maatvan2
3.times do
sample :perc_bell, amp: 0.4, beat_stretch: 0.2
sleep 1.0 / 3
end
sleep -0.2
end
live_loop :ritme5tegen3 do
sync :maatvan3
5.times do
sample :perc_bell, amp: 0.4, beat_stretch: 0.2
sleep 1.5 / 5
end
sleep -0.2
end
live_loop :ritme11tegen7 do
sync :start7tellen
use_synth :saw
n1 = get_midi(31)
n2 = get_midi(0)
n3 = get_midi(18)
n4 = get_midi(14)
n5 = get_midi(8)
n6 = get_midi(26)
n7 = get_midi(21)
with_fx :reverb, room: 0.99, damp: 0.3, mix: 0.6 do
11.times do
play [n1,n2,n3,n4,n5,n6,n7].pick + [0,31,62].pick, amp: 0.06, pan: rrand(-1,1), attack: 0.01, sustain: 0.05, decay: 0, release: 0.05 if one_in(1)
sleep 3.5 / 11
end
end
sleep -0.2
end
live_loop :lange_noot do
sync :start7tellen
use_synth :supersaw
with_fx :reverb, room: 0.99, damp: 0.2, mix: 0.8 do
n = [0, 0, 0, 8, 14, 21, 26, 31].choose
play get_midi(n), amp: 0.04, attack: 1, sustain: 0, release: 9, pan: rrand(-0.7,0.7) if one_in(2)
end
end