Dispensible - alsoknownasrox (Any feedback much appreciated)

Check out this song I made using Sonic Pi. Any feedback would be appreciated. Other than the vocals, I only used built-in synths and samples. I aspire to perform some original songs using live coding at gigs one day and am also interested in connecting with others with interest/experience as well.

Also, I uploaded a few other experiments to check out as well (Underwater being a favorite).

Feel free to take a listen :slight_smile:

alsoknownasrox · Live Coding
4 Likes

Up for sharing the code too? :crossed_fingers:

1 Like

Here is the code for “Dispensible.” The sample I used can be found here:

use_bpm 100

# conductor, only to cue live loops
in_thread do
  ##| stop
  sleep 2
  cue :synth
  sleep 16
  cue :bass
  sleep 16
  cue :voice
  sleep 32
  cue :cymbal
  cue :trigger
  sleep 32
  cue :guitar
  cue :hats
end


live_loop :dap, sync: :guitar do
  ##| stop
  at do
    with_fx :panslicer, smooth: 1 do
      with_fx :rhpf do
        with_fx :level, amp: 4 do
          with_fx :whammy, grainsize: 0.075 do
            amt = 6
            amt.times do
              sample :guit_harmonics, onset: pick, rate: -0.1, amp: 7
              sleep 4/amt.to_f
            end
          end
        end
      end
    end
  end
  sleep 4
end

live_loop :daz, sync: :hats do
  ##| stop
  at do
    with_fx :slicer, smooth: 0.2, mix: 1, amp: 0.05 do
      4.times do
        sample :elec_cymbal, beat_stretch: 2, rate: 0.75, amp: rand*0.75+0.25
        sleep 1
      end
    end
  end
  sleep 4
end

live_loop :dar, sync: :trigger do
  ##| stop
  with_fx :distortion do
    with_fx :slicer, phase: 0.125, smooth: 0.1, mix: 0 do
      4.times do
        sample dir, "dispensable", start: rand, amp: knit(10, 1, 0, 3).choose
        sleep 1
      end
    end
  end
  sleep 4
end

live_loop :doo, sync: :voice do
  ##| stop
  times = [0]
  params = [0,1].tick
  at times, params do |p|
    ##| p = 0
    with_fx :distortion, mix: 1, amp: 0.5 do
      with_fx :octaver, mix: 0.5, amp: 1 do
        with_fx :slicer, phase: 0.5, mix: 0.5 do
          sample dir, "dispensable", start: 0.359, finish: 0.422, amp: 8, rpitch: -2 if p == 0
          sample dir, "dispensable", start: 0.359, finish: 0.45, amp: 8, rpitch: -2 if p == 1
          sample dir, "dispensable", start: 0.359, finish: 0.5, amp: 8, rpitch: -2 if p == 2
        end
      end
    end
  end
  sleep 4
end

live_loop :baz, sync: :cymbal do
  ##| stop
  at do
    with_fx :krush, amp: 1, mix: 0 do |fx|
      with_fx :ixi_techno, cutoff_min: 80, cutoff_max: 100, phase: 0.13, res: 0, mix: 1 do
        with_fx :panslicer, phase: 0.12, mix: 1 do
          p = "x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-"
          b = [true, true, false, false]
          p.split("").each do |t|
            tick
            control fx, mix: 0 if b.look
            control fx, mix: 1 if !b.look
            sample :drum_cymbal_closed, on: p.look == "x", beat_stretch: 0.125
            sleep 0.125
          end
        end
      end
    end
  end
  sleep 4
end

live_loop :bar, sync: :synth do
  ##| stop
  at do
    with_fx :rlpf, amp: 1 do |fx|
      s = synth :fm, note: 52, sustain: 3.5, divisor: 2.5
      control s, note: 59, note_slide: 0.3
      sleep 0.3
      control s, note: 52, note_slide: 0.2
      sleep 0.2
      control s, amp: 0
      sleep 0.1
      control s, note: 57, note_slide: 0, amp: 1
    end
  end
  sleep 4
end
live_loop :foo, sync: :bass do
  ##| stop
  at do
    with_fx :level, amp: 1 do
      4.times do
        sample :bd_tek, lpf: 70, amp: 4
        with_fx :distortion, distort: 0.9, amp: 1 do |fx|
          control fx, amp: 2, amp_slide: 0.01
          sample :bd_808
        end
        sleep 1
      end
    end
  end
  sleep 4
end
2 Likes

Here is the code for “Underwater.” I replaced my external samples with some built-in samples that still sound dope to me.

mul = 140/60.0
live_loop :drum do
  with_bpm_mul mul do
    with_fx :rlpf, amp: 3 do
      with_fx :distortion do
        with_fx :ixi_techno, phase: 8, cutoff_min: 20, cutoff_max: 100, phase_offset: 0.1 do
          in_thread do
            ##| s = dir, "kayne", "percussion", 1
            s = :perc_snap
            a = {rate: -1}
            sleep 0.4
            sample s, a
            sleep 0.25*3
            sample s, a
            sleep 0.25*4
            sample s, a
          end
          in_thread do
            ##| stop
            ##| s = dir, "kayne", "snare", 4
            s = :sn_dolf
            sleep 0.25
            sample s
            sleep 0.25*3
            sample s
            sleep 0.25*2
            sample s
            sleep 0.25*3
            sample s
            sleep 0.25*2
            sleep 0.25*2
            ##| sample $BASS, 4
          end
          in_thread do
            ##|   stop
            ##| s = dir, "kayne", "bass", 4
            s = :bd_haus
            sample s
            sleep 0.25*3
            sample s
            sleep 0.25*2
            sample s
            sleep 0.25*3
            sample s
            sleep 0.25*2
            sample s
            sleep 0.25*2
          end
          sleep 2
        end
      end
    end
  end
end
3 Likes