Skip to content

Instantly share code, notes, and snippets.

@Castlewood
Created December 9, 2016 21:04
Show Gist options
  • Save Castlewood/2b9d4114b95fd638519c60a1763d0d09 to your computer and use it in GitHub Desktop.
Save Castlewood/2b9d4114b95fd638519c60a1763d0d09 to your computer and use it in GitHub Desktop.
Sonic Pi Medley
s = 0.25#Sixteenth note (semiquaver)
q = 0.5 #Eight note (quaver)
c = 1 #Quarter note (crotchet)
m = 2 #Half note (minim)
sm = 4 #Whole note (semibreve)
f = false
t = true
use_bpm 140
live_loop :main do
16.times do
sleep c
end
use_bpm 140
$play_no_limits_bass = f
$play_no_limits_drums = f
$play_no_limits_bass_lead = f
$play_no_limits_lead = f
$play_axel_f_bass = f
$play_axel_f_lead = f
$play_push_bass = f
$play_push_lead = f
$play_burning_bass = f
$play_burning_piano = f
$play_burning_drums = f
$play_burning_lead = f
end
live_loop :drums do
sync_bpm :main
in_thread do
16.times do
if $play_no_limits_drums == true
sample :perc_snap2
sleep 1
end
end
end
end
live_loop :bass do
sync_bpm :main
if $play_no_limits_bass == true
in_thread do
play_bass
end
end
end
live_loop :bass_lead do
sync_bpm :main
if $play_no_limits_bass_lead == true
in_thread do
play_bass_lead
end
end
end
live_loop :lead do
sync_bpm :main
if $play_no_limits_lead == true
in_thread do
play_lead
end
end
end
live_loop :axel_bass do
sync_bpm :main
if $play_axel_f_bass == true
in_thread do
play_axel_bass
end
end
end
live_loop :axel_lead do
sync_bpm :main
if $play_axel_f_lead == true
in_thread do
play_axel_lead
end
end
end
live_loop :push_bass do
sync_bpm :main
if $play_push_bass == true
in_thread do
play_push_bass
end
end
end
live_loop :push_lead do
sync_bpm :main
if $play_push_lead == true
in_thread do
play_push_lead
end
end
end
live_loop :burning_bass do
sync_bpm :main
if $play_burning_bass == true
in_thread do
play_burning_bass
end
end
end
live_loop :burning_bass do
sync_bpm :main
if $play_burning_bass == true
in_thread do
play_burning_bass
end
end
end
live_loop :burning_piano do
sync_bpm :main
if $play_burning_piano == true
in_thread do
play_burning_piano
end
end
end
live_loop :burning_kick do
sync_bpm :main
if $play_burning_drums == true
in_thread do
play_burning_kick
end
end
end
live_loop :burning_snare do
sync_bpm :main
if $play_burning_drums == true
in_thread do
play_burning_snare
end
end
end
define :play_bass_lead do
use_synth :tb303
r = q
a = 3
with_fx :reverb, mix: 0.1 do
3.times do
play :gs2, release: r, amp: a
sleep c
play :gs2, release: r, amp: a
sleep c
play :gs2, release: r, amp: a
sleep q
play :fs2, release: r, amp: a
sleep q
play :gs2, release: r, amp: a
sleep q
play :bs2, release: r, amp: a
sleep q
end
play :cs2, release: r, amp: a
sleep c
play :cs2, release: r, amp: a
sleep c
play :e2, release: r, amp: a
sleep q
play :cs2, release: r, amp: a
sleep q
play :e2, release: r, amp: a
sleep q
play :fs2, release: r, amp: a
sleep q
end
end
define :play_bass do
use_synth :fm
2.times do
play :gs2, release: q, amp:10
sleep q
play :gs3, release: q, amp:10
sleep q
play :gs2, release: q, amp:10
sleep q
play :gs3, release: q, amp:10
sleep q
play :gs2, release: q, amp:10
sleep q
play :gs3, release: q, amp:10
sleep q
play :gs2, release: q, amp:10
sleep q
play :gs3, release: q, amp:10
sleep q
play :cs2, release: q, amp:10
sleep q
play :cs3, release: q, amp:10
sleep q
play :cs2, release: q, amp:10
sleep q
play :cs3, release: q, amp:10
sleep q
play :es2, release: q, amp:10
sleep q
play :es3, release: q, amp:10
sleep q
play :es2, release: q, amp:10
sleep q
play :es3, release: q, amp:10
sleep q
end
end
define :play_lead do
a = 5
use_synth :dsaw
play :gs3, amp: a
sleep c
play :gs3, amp: a
sleep c + q
play :b3, amp: a
sleep q + q
play :gs3, amp: a
sleep q
play :gs3, amp: a
sleep c
play :gs3, amp: a
sleep c + q
play :b3, amp: a
sleep q + q
play :gs3, amp: a
sleep q
play :gs3, amp: a
sleep c
play :gs3, amp: a
sleep c + q
play :b3, amp: a
sleep q + q
play :gs3, amp: a
sleep q
play :cs4, amp: a
sleep c
play :cs4, amp: a
sleep c
play :ds4, amp: a
sleep c
play :ds4, amp: a
sleep q
sleep q
end
define :play_push_bass do
use_synth :fm
play :a3, amp:10
sleep c
play :e3, amp:10
sleep q
play :a3, amp:10
sleep c
play :e3, amp:10
sleep c
play :g3, amp:10
sleep q
sleep sm
play :a3, amp:10
sleep c
play :e3, amp:10
sleep q
play :a3, amp:10
sleep c
play :e3, amp:10
sleep c
play :g3, amp:10
sleep q
sleep q
play :e3, amp:10
sleep q
play :g3, amp:10
sleep q
play :e3, amp:10
sleep q
play :b3, amp:10
sleep q
play :c4, amp:10
sleep q
play :b3, amp:10
sleep q
end
define :play_push_lead do
use_synth :dsaw
play :a4
sleep c
play :e5
sleep q
play :d5
sleep c
play :c5
sleep c
play :b4
sleep q
sleep q
play :e4
sleep q
sleep q
play :e4
sleep q
play :b4
sleep q
play :c5
sleep q
play :b4
sleep q
play :g4
sleep q
play :a4
sleep c
play :e5
sleep q
play :d5
sleep c
play :c5
sleep c
play :b4
sleep q
sleep q
play :e4
sleep q
play :g4
sleep q
play :e4
sleep q
play :b4
sleep q
play :c5
sleep q
play :b4
sleep q
play :g4
sleep q
end
define :play_axel_bass do
use_synth :fm
play :f2, release: q, amp:10
sleep s * 4
play :f3, release: q, amp:10
sleep s * 3
play :ds2, release: q, amp:10
sleep s * 2
play :ds3, release: s, amp:10
sleep s
play :c2, release: q, amp:10
sleep s * 2
play :c3, release: q, amp:10
sleep s * 2
play :ds3, release: q, amp:10
sleep s * 2
cue :bar2
play :f2, release: q, amp:10
sleep s * 4
play :f3, release: q, amp:10
sleep s * 5
play :c2, release: s, amp:10
sleep s
play :c3, release: q, amp:10
sleep s * 2
play :ds3, release: q, amp:10
sleep s * 2
play :f3, release: q, amp:10
sleep s * 2
cue :bar3
play :cs2, release: q, amp:10
sleep s * 4
play :cs3, release: q, amp:10
sleep s * 3
play :ds2, release: s, amp:10
sleep s
sleep s
play :ds3, release: s, amp:10
sleep s
play :c2, release: q, amp:10
sleep s * 2
play :ds2, release: q, amp:10
sleep s * 2
play :f2, release: q, amp:10
sleep s * 2
cue :bar4
play :f3, release: q, amp:10
sleep s * 9
play :ds3, release: s, amp:10
sleep s
play :c3, release: q, amp:10
sleep s * 2
play :as2, release: s, amp:10
sleep s
play :gs2, release: q, amp:10
sleep s * 2
cue :bar5
end
define :play_axel_lead do
use_synth :square
with_fx :reverb, mix: 0.9 do
play :f4, release: q, amp:10
sleep s * 4
play :gs4, release: q, amp:10
sleep s * 3
play :f4, release: q, amp:10
sleep s * 2
play :f4, release: s, amp:10
sleep s
play :as4, release: q, amp:10
sleep s * 2
play :f4, release: q, amp:10
sleep s * 2
play :ds4, release: q, amp:10
sleep s * 2
play :f4, release: q, amp:10
sleep s * 4
play :c5, release: q, amp:10
sleep s * 3
play :f4, release: q, amp:10
sleep s * 2
play :f4, release: s, amp:10
sleep s
play :cs5, release: q, amp:10
sleep s * 2
play :c5, release: q, amp:10
sleep s * 2
play :gs4, release: q, amp:10
sleep s * 2
play :f4, release: q, amp:10
sleep s * 2
play :c5, release: q, amp:10
sleep s * 2
play :f5, release: q, amp:10
sleep s * 2
play :f4, release: s, amp:10
sleep s
play :ds4, release: q, amp:10
sleep s * 2
play :ds4, release: s, amp:10
sleep s
play :c4, release: q, amp:10
sleep s * 2
play :g4, release: q, amp:10
sleep s * 2
play :f4, release: c, amp:10
sleep s * 2
sleep sm
end
end
define :play_burning_bass do
use_synth :fm
play :a2, release: q, amp:10
sleep q
play :b2, release: q, amp:10
sleep q
play :cs3, release: q, amp:10
sleep q
play :d3, release: q + s, amp:10
sleep c
play :d3, release: q, amp:10
sleep q
play :a2, release: q, amp:10
sleep q
play :d3, release: q + s, amp:10
sleep c
play :d3, release: q, amp:10
sleep q
play :a2, release: s, amp:10
sleep q
play :g2, release: q + s, amp:10
sleep c
play :g2, release: q + s, amp:10
sleep c
play :a2, release: q + s, amp:10
sleep c
play :a2, release: c, amp:10
sleep c
play :d3, release: q + s, amp:10
sleep c
play :d3, release: q, amp:10
sleep q
play :a2, release: q, amp:10
play :g2, release: s, amp:10
sleep q
play :d3, release: q + s, amp:10
sleep c
play :d3, release: c, amp:10
sleep c
play :f3, release: q, amp:10
sleep q
play :fs3, release: q, amp:10
sleep q
play :f3, release: q, amp:10
sleep q
play :fs3, release: q, amp:10
sleep q
play :d3, release: q, amp:10
sleep q
end
live_loop :burning_lead do
sync_bpm :main
sleep q * 12
if $play_burning_lead == true
in_thread do
play_burning_lead
end
end
end
define :play_burning_snare do
4.times do
sample :drum_bass_soft, amp: 5
sleep q + c
sample :drum_bass_soft, amp: 5
sleep c + c
sample :drum_bass_soft, amp: 5
sleep q
cue :end_snare
end
end
define :play_burning_kick do
4.times do
sleep q
sample :bd_fat, amp: 20
sleep c + c
sample :bd_fat, amp: 20
sleep q
sample :bd_fat, amp: 20
sleep c
cue :end_bar
end
end
define :play_burning_piano do
use_synth :piano
play :d3, release: q, amp:5
5.times do
sleep q
play :d3, release: s, amp:5
play :fs3, release: q, amp:5
play :a3, release: q, amp:5
sleep q
end
2.times do
sleep q
play :d3, release: s, amp:5
play :g3, release: q, amp:5
play :b3, release: q, amp:5
sleep q
end
2.times do
sleep q
play :e3, release: s, amp:5
play :a3, release: q, amp:5
play :cs4, release: q, amp:5
sleep q
end
sleep q
play :d3, release: s, amp:5
play :fs3, release: q, amp:5
play :a3, release: q, amp:5
sleep q
sleep q
2.times do
play :g3, release: q, amp:5
sleep q
play :f3, release: q, amp:5
sleep q
play :fs3, release: q, amp:5
sleep q
play :d3, release: q, amp:5
sleep q
end
play :g3, release: q, amp:5
sleep q
play :f3, release: q, amp:5
sleep q
play :fs3, release: q, amp:5
sleep q
end
define :play_burning_bass do
use_synth :fm
play :a2, release: q, amp:10
sleep q
play :b2, release: q, amp:10
sleep q
play :cs3, release: q, amp:10
sleep q
play :d3, release: q + s, amp:10
sleep c
play :d3, release: q, amp:10
sleep q
play :a2, release: q, amp:10
sleep q
play :d3, release: q + s, amp:10
sleep c
play :d3, release: q, amp:10
sleep q
play :a2, release: s, amp:10
sleep q
play :g2, release: q + s, amp:10
sleep c
play :g2, release: q + s, amp:10
sleep c
play :a2, release: q + s, amp:10
sleep c
play :a2, release: c, amp:10
sleep c
play :d3, release: q + s, amp:10
sleep c
play :d3, release: q, amp:10
sleep q
play :a2, release: q, amp:10
play :g2, release: s, amp:10
sleep q
play :d3, release: q + s, amp:10
sleep c
play :d3, release: c, amp:10
sleep c
play :f3, release: q, amp:10
sleep q
play :fs3, release: q, amp:10
sleep q
play :f3, release: q, amp:10
sleep q
play :fs3, release: q, amp:10
sleep q
play :d3, release: q, amp:10
sleep q
end
define :play_burning_lead do
use_synth :pretty_bell
play :f4, release: q, amp:5
sleep q
play :f4, release: q, amp:5
sleep q
play :e4, release: q, amp:5
sleep q
play :d4, release: c, amp:5
sleep c
play :d4, release: c, amp:5
sleep c
play :a3, release: q, amp:5
sleep q
play :b3, release: q, amp:5
sleep q
play :d4, release: q, amp:5
sleep q
play :d4, release: q, amp:5
sleep q
play :e4, release: c, amp:5
sleep c
play :d4, release: q, amp:5
sleep q
play :d4, release: q, amp:5
sleep q
play :d4, release: c, amp:5
sleep c
play :b3, release: q, amp:5
sleep q
end
@Castlewood
Copy link
Author

Designed to be played 'live' - experiment with switching 'f's to 't's to play the various parts

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