I’m still new to Sonic Pi, and I have a long way to go before getting proficient at live coding. In the mean time, I decided to try a through composed piece. I read an article a year or so about structuring music fractally. I have been wanting to play around with some of those ideas for awhile. The results below have a definite 1980s minimalist vibe to them. So, of course, I named the piece The 80s Called and They Want Philip Glass Back. I hope you enjoy it.
God’s Peace,
Jason+
#defining elements
define :alpha do
5.times do
notes = [:c2, :g2, :c3, :eb3, :bb3].ring
use_synth :pluck
play notes.tick, amp: 1, release: 0.25
use_synth :piano
play notes.look, amp: 1, release: 0.25
sleep 0.125
end
end
define :beta do
with_fx :reverb, amp: 0.6, room: 0.8 do
5.times do
notes = [:g2, :g2, :d3, :f3, :b3].ring
use_synth :supersaw
play notes.tick, amp: 0.7, release: 0.3, pan: 0.3
use_synth :subpulse
play notes.look, amp: 0.7, release: 0.25, pan: -0.3
sleep 0.125
end
end
end
define :cmin7echo do
with_fx :echo, amp: 0.6, phase: 0.3 do
use_synth :pluck
play chord(:c2, :minor7, num_octaves: 3), amp: 2, release: 1.25, pan: -0.9
use_synth :piano
play chord(:c2, :minor7, num_octaves: 3), amp: 2, release: 1.25, pan: 0.9
sleep 1
end
end
define :g7echo do
with_fx :echo, amp: 0.6, phase: 0.3 do
use_synth :supersaw
play chord(:g3, '7', num_octaves: 2), amp: 0.7, attack: 0.001, release: 1.25, pan: -0.3
use_synth :subpulse
play chord(:g3, '7', num_octaves: 2), amp: 0.7, attack: 0.001, release: 1.25, pan: 0.3
sleep 1
end
end
define :gamma do
5.times do
with_fx :reverb, amp: 0.6, room: 0.8 do
notes = [:c2, :d4, :g3, :eb3, :bb3].ring
use_synth :piano
play notes.tick, amp: 0.7, release: 0.4, pan: 0.6
use_synth :fm
play notes.look, amp: 0.5, divisor: 3, release: 0.4, pan: -0.3
play notes.look, amp: 0.5, divisor: 0.5, release: 0.4, pan: -0.6
sleep 0.3
end
end
end
define :delta do
5.times do
notes = [:g1, :g2, :f3, :ab3, :b4].ring
with_fx :panslicer, phase: 0.1 do
with_fx :echo, amp: 0.6, phase: 0.08 do
use_synth :dpulse
play notes.tick, amp: 0.4, attack: 1, sustain: 0, release: 0.01
end
use_synth :dark_ambience
play notes.look, amp: 0.4, attack: 1, sustain: 0, release: 0.5
sleep 0.25
end
end
end
define :epsilon do
5.times do
notes = [:eb2, :bb2, :db3, :g3, :a3].ring
use_synth :piano
play notes.tick, amp: 0.5, release: 0.4, pan: 0.3
use_synth :fm
play notes.look, amp: 1, divisor: 3, release: 0.4, pan: -0.4
play notes.look, amp: 1, divisor: 0.5, release: 0.4, pan: -0.3
sleep 0.25
end
end
define :zeta do
5.times do
notes = [:ab1, :ab2, :gb3, :bb3, :c4].ring
with_fx :panslicer, phase: 0.1 do
with_fx :echo, amp: 0.6, phase: 0.08 do
use_synth :dpulse
play notes.tick, amp: 0.4, attack: 1, sustain: 0, release: 0.01
end
use_synth :dark_ambience
play notes.look, amp: 0.4, attack: 1, sustain: 0, release: 0.5
sleep 0.25
end
end
end
define :heta do
5.times do
with_fx :reverb, amp: 0.6, room: 0.9 do
notes = [:ab3, :ab4, :gb4, :bb4, :c5].ring
use_synth :piano
play notes.tick, amp: 0.5, release: 0.4, pan: 0.3
use_synth :pluck
play notes.look, amp: 1, release: 0.4, pan: -0.4
play notes.look, amp: 1, release: 0.4, pan: -0.3
sleep 0.25
end
end
end
#defining patterns
define :patternA do
5.times do
alpha
end
1.times do
beta
end
3.times do
alpha
end
2.times do
g7echo
end
2.times do
cmin7echo
end
3.times do
beta
end
1.times do
alpha
end
5.times do
beta
end
end
define :patternB do
5.times do
gamma
end
1.times do
delta
end
3.times do
gamma
end
2.times do
zeta
end
2.times do
heta
end
3.times do
delta
end
1.times do
gamma
end
5.times do
delta
end
end
#score
5.times do
patternA
end
1.times do
patternB
end
3.times do
patternA
end
2.times do
patternB
end
2.times do
patternA
end
3.times do
patternB
end
1.times do
patternA
end
5.times do
patternA
end
1.times do
use_synth :pluck
play [:c2, :g2, :c3, :e3, :b3], amp: 1, release: 8
use_synth :piano
play [:c2, :g2, :c3, :e3, :b3], amp: 1, release: 8
sleep 0.125
end