Created
December 9, 2016 21:04
-
-
Save Castlewood/2b9d4114b95fd638519c60a1763d0d09 to your computer and use it in GitHub Desktop.
Sonic Pi Medley
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Designed to be played 'live' - experiment with switching 'f's to 't's to play the various parts