Hmmm… Let’s just say that my first attempt to get a heavy distortion sound out of Sonic Pi wasn’t too successful.
When I was practicing using external samples, I did use some guitar samples from Music Radar, and the result was a bit … rocky.
https://instaud.io/3HD0
But, a ‘heavy’ sound is going to be a bit challenging. At least: I need to think about it.
use_bpm 120
samps = "/Users/pieater/Downloads/musicradar-chunky-guitar-drum-samples/Riffs_1/120bpm/"
ss = load_samples samps
set_mixer_control! limiter_bypass: 1
choices = (ring 0, 1, 0, 1, 2, 3, 2, 4)
notes = (ring :a1, :a1, :a1, :a1, :d1, :d1, :g1, :fs1 )
pans = (ring -0.5, 0.5)
vars = (ring false, false, false, false, false, false, false, true )
live_loop :guits do
sync :loop
tick
with_fx :reverb, mix: 0.5 do
with_fx :slicer, on: false do
with_fx :ixi_techno, phase: 2, min_cutoff: 50, max_cutoff: 80, res: 0.7 do
print "choice: ", choices.look
sample ss[choices.look], beat_stretch: 8, pan: pans.look, amp: 0.7
sleep 8
end
end
end
end
live_loop :drums do
sync :loop
tick
at [ 0, 1, 1.5, 2, 3 ] do
sample :bd_haus, amp: 1
end
with_fx :reverb, room: 0.7, mix: 0.3 do
at [ 1, 3, 3.75 ] do
sample :sn_dolf, pan: 0.7
end
end
if vars.look == false
with_fx :reverb, room: 0.7, mix: 0.3 do
8.times do |i|
at i * 0.5 do
sample :drum_cymbal_closed, amp: 1, pan: -1
end
end
end
else
with_fx :reverb, room: 0.7, mix: 0.3 do
4.times do |i|
at i * 0.5 do
sample :drum_cymbal_closed, amp: 1, pan: -1
end
end
4.times do |i|
at 2 + i * 0.5 do
sample :drum_tom_hi_hard, amp: 1 + i * 0.125, rate: rrand( 0.9, 1.1 )
if i == 3
sleep 0.23
sample :drum_tom_mid_hard, amp: 1 + i * 0.125, rate: rrand( 0.9, 1.1 )
end
end
end
end
end
end
live_loop :hats do
sync :loop
4.times do
sleep 0.5
sample :elec_cymbal, amp: 0.4, pan: 1
sleep 0.5
end
end
emphasis = [ 1, 0.4, 0.75, 0.4, 0.9, 0.4, 0.75, 0.4 ]
live_loop :basser do
sync :loop
note = notes.tick
with_fx :eq, low_shelf: 1, amp: 0.3 do
with_fx :distortion, distort: 0.9 do
8.times do |i|
sn = synth :dpulse, amp: emphasis[i], cutoff: 90, cutoff_slide: 0.1,
note: note, sustain: 0.2, release: 0.3,
pulse_width: 0.25, dpulse_width: 0.25
control sn, cutoff: 50
sleep 0.5
end
end
end
end
live_loop :timing do
cue :loop
sleep 4.0001
end