Royal Blood style Sonic Pi

I’d like to create a ‘Royal Blood’ style sound in Sonic Pi.

In case anyone doesn’t know the band, they are a duo with a lead vocalist/bass guitarist and a backing vocalist/drummer. The bass guitarist splits his signal, and applies pitch-shifting and distortion to one half of it. That creates a ‘rhythm guitar’ type sound, and he can use foot pedals to cut one sound or the other in real time. it produces a quite full sounding band sound,.

To do this in Sonic Pi, I think the following applies.

1] The real-time pitch-shifting of audio won’t work. So, I need a live_loop that plays the same thing twice. Once in a bass guitar register, and once an octave up, plus possibly an octave and a fifth to give power chords.

2] Then apply different FX to the two halves. probably filtering and compression to the ‘bass’, and distortion, eq, and delay to the ‘guitar’ half.

That would then, possibly give a ‘hard rock’ sound in Sonic Pi. Maybe.

Any recommendations/advice/ideas?

1 Like

Try it. Tweak it. Repeat! Love that you’re breaking out of the usual EDM territory of live coding and can’t wait to hear your experiments.

1 Like

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

My gut feel says more harmonic content to make a thicker sound. I don’t have an explanation for how to do that. Pay attention to your experiments along the way. You will likely discover interesting results.

I’m not posting here much as I’m playing with other things that will support Sonic Pi. I’ve been looking into guitar plugins. My latest attempt is to make Sonic Pi send suitable MIDI to strum an acoustic guitar (using Ample Guitar M Lite II’s Martin acoustic guitar sounds). Doing a single strum is easy. A rhythmic strumming pattern - much more difficult and my current best efforts sound very much like a machine. I think I need to spend more time analysing recordings of human guitar playing to see what’s actually going on.

I’ve downloaded Shreddage 3 free version - and if it does what they make it do in the demos I’ll buy the full version. This includes sophisticated guitar playing/strumming intelligence, and it may be possible to reverse engineer it a bit.

The Royal Blood sound should be easier as it’s based on a monophonic sound. So, the ‘playing’ in the right way to achieve the sound should be simpler: I believe.

Don’t try to ‘strum’ the guitar VST manually-- many guitar simulation plugins have strumming patterns built in, to where you send a note and the strumming happens automagically (i.e., you send a whole note, and you’ll hear the guitar being strummed for 4 beats). You can also usually change the strumming pattern in real-time by sending a different midi note.

Not sure what the capabilities of the Ample plugin is-- haven’t used it in quite a while.

Bryan

1 Like

I’m looking into using Shreddage 3 Stratus, and it has inbuilt strumming.

1 Like