Skip to content

Instantly share code, notes, and snippets.

@Freemoth
Created January 13, 2017 03:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Freemoth/18c2a164f97d24b09eea59bc3dc9211f to your computer and use it in GitHub Desktop.
Save Freemoth/18c2a164f97d24b09eea59bc3dc9211f to your computer and use it in GitHub Desktop.
Staring at the Wood Stove Thinking of Satie
# LaLaLaLaLaLa.modular-rev.txt 20Nov2015
# redefined using modular functions
# coded by sonic(K)
###########################################
use_bpm 96
cymCount = 0
cymCountReset = 0
define :phrase1 do
play 71, release: 2, amp: 1, \
cutoff: 75
sleep 1
play 74, release: 2, amp: 1.2, \
cutoff: 75
sleep 1
play 73, release: 2, amp: 1.3, \
cutoff: 75
sleep 1
play 71, release: 2, amp: 1.4, \
cutoff: 80
sleep 1
play 69, release: 2, amp: 1.6, \
cutoff: 80
sleep 1
play 66, release: 1.2, amp: 1.8, \
cutoff: [85, 80].choose
sleep 1
end
define :phrase2 do
play 69, release: 2, amp: 1, \
cutoff: 80
sleep 1
play 71, release: 2, amp: 1.2, \
cutoff: 81
sleep 1
play 73, release: 2, amp: 1.4, \
cutoff: 82
sleep 1
play 74, release: 2, amp: 1.5, \
cutoff: 83
sleep 1
play 76, release: 2, amp: 1.7, \
cutoff: 84
sleep 1
if one_in(4)
play 78, release: 1.2, amp: 2, \
cutoff: [85, 80].choose
else
play 71, release: 1.2, amp: 2, \
cutoff: [85, 80].choose
end
sleep 1
end
define :pianoOctave do |n, sw, v, at, r, co|
with_synth :piano do
play n, stereo_width: sw, vel: v, \
attack: at, release: r, cutoff: co
play n+12, stereo_width: sw, vel: v, \
attack: at, release: r, cutoff: co
end
end
define :bass1 do |n, p, r, rs|
with_synth :tb303 do
play n, pan: p, release: r, res: rs
end
end
live_loop :melody, delay: 1 do
sleep 48
if one_in(2)
4.times do
with_synth :prophet do
phrase1
phrase2
end
end
else
2.times do
with_fx :reverb, mix: 0.2 do
with_synth :fm do
phrase1
phrase2
end
end
end
end
end
live_loop :pianoBass do
if one_in(2)
pianoOctave 73, 0.5, 0.25, 0, 0.5, 0
sleep 0.25
pianoOctave 73, 0.5, 0.25, 0, 0.5, 0
sleep 0.75
if one_in(2)
with_fx :echo, amp: 0.7, phase: 0.5 do
puts "echo"
pianoOctave 73, 0.5, 0.3, 0, 0.5, 0
sleep 1
end
else
pianoOctave 73, 0.5, 0.25, 0, 0.5, 0
sleep 0.25
pianoOctave 73, 0.5, 0.25, 0, 0.5, 0
sleep 0.75
end
else
pianoOctave 25, 0.5, 0.3, 0, 2, 77
sleep 2
end
pianoOctave 28, 0.3, 0.24, 0, 2, 77
if one_in(2)
with_fx :echo, mix: 0.5, pre_amp: 2, phase: 1.5, decay: 5, max_phase: 6 do
sleep 3
pianoOctave 26, 0.4, 0.2, 0, 3, 80
sleep 19
end
else
sleep 3
pianoOctave 31, 0.3, 0.24, 0, 3, 85
sleep 19
end
end
live_loop :bass do
bass1 25, -0.5, 4, 0.85
sleep 12
bass1 26, 0, 1.5, 0
sleep 6
bass1 23, 0.5, 1.5, 0
sleep 6
end
live_loop :bassPat do
with_fx :reverb, room: 0.8, mix: 0.1, pre_amp: 2 do
with_synth :tb303 do
4.times do
play 37, cutoff: 78, \
# attack: 0.05, \
attack_level: 0.5, \
sustain: 0.1, \
release: 0.6, \
res: [0.8, 0.9].choose, \
pulse_width: 0.91
play_pattern_timed \
[37, 54, 55, 62, 64], [1, 0.25, 0.25, 0.25], \
amp: 0.5, \
cutoff: [70, 74, 76, 78].choose, \
attack: 0.05, \
attack_level: 0.5, \
sustain: 0.1, \
release: 0.6, \
res: 0.7, \
pulse_width: 0.91
sleep 0.25
end
2.times do
play 38, cutoff: 78, \
# attack: 0.05, \
attack_level: 0.5, \
sustain: 0.3, \
release: 0.6, \
res: 0.75, \
pulse_width: 0.91
play_pattern_timed \
[38, 53, 55, 59, 61], [1, 0.25, 0.25, 0.25], \
amp: 0.5, \
cutoff: [70, 74, 76, 78].choose, \
attack: 0.05, \
attack_level: 0.5, \
sustain: 0.1, \
release: 0.65, \
res: 0.7, \
pulse_width: 0.90
sleep 0.25
end
2.times do
play 35, cutoff: 80, \
# attack: 0.05, \
attack_level: 0.5, \
sustain: 0.1, \
release: 0.6, \
res: 0.7, \
pulse_width: 0.91
play_pattern_timed \
[35, 54, 55, 57, 59, 57], [1, 0.25, 0.25, 0.25, 0.25], \
amp: 0.5, \
cutoff: [70, 74, 76, 78].choose, \
attack: 0.05, \
attack_level: 0.5, \
sustain: 0.1, \
release: 0.6, \
res: 0.7, \
pulse_width: 0.91
end
end
end
end
live_loop :cym do
cymCount += 1
cymCountReset += 1
if cymCountReset > 64
cymCount = 0
cymCountReset =0
end
puts cymCount
with_fx :echo, phase: 0.75, mix: 0.5 do
sample :drum_cymbal_closed, amp: 3, pan: 0.1
sleep 0.25
end
5.times do
with_fx :flanger, phase: 2 do
sample :drum_cymbal_pedal, \
amp: [0.8, 1.1, 1.4].choose, \
cutoff: 100, pan: [-0.1, 0.3].choose
sleep 0.25
end
end
sample :drum_cymbal_closed, amp: 4, pan: -0.1
sleep 0.25
if cymCount < 32
2.times do
sleep 0.25
end
else
2.times do
sample :drum_cymbal_pedal, \
cutoff: [90, 100].choose, pan: [-0.5, 0.1, -0.1, 0.5].choose
sleep 0.25
end
end
end
live_loop :bd do
3.times do
sample :bd_fat, amp: 4
sleep 2
sample :sn_zome
sleep 1
end
sample :bd_fat, amp: [2.5, 3].choose
sleep 0.5
sample :bd_fat, amp: 4
sleep 0.5
sample :sn_zome, amp: 1.3
sleep 0.75
if one_in(2)
sample :drum_tom_lo_soft, amp: 2
sleep 0.25
else
if one_in(2)
sample :drum_tom_lo_soft, amp: 2
sleep 0.125
sample :drum_tom_hi_soft, amp: [1.75, 3].choose
sleep 0.125
else
sleep 0.125
sample :drum_tom_hi_soft, amp: 2
sleep 0.125
end
end
sample :sn_zome, amp: 1.5
sleep 1
end
@Freemoth
Copy link
Author

Code for "Staring at the Wood Stove Thinking of Satie by sonic(K). Audio is here https://soundcloud.com/freemoth/la-la-la-la-la-la-sonick.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment