Challenge: Make a track with only one Sonic Pi sample!

Hey all,

I think this one hasn’t been done in the Sonic Pi community yet, so let’s have a small & fun song production challenge!

Make a song with Sonic Pi with following restrictions:

  • You can use only one sample as your source material. You need to use a sample from Sonic Pi’s core library!
  • In addition to the one sample you’ve selected, you can play :ambi_choir sample only once in your song (or multiple times in your looping composition, using it sparingly)
  • Have fun, go with the flow and don’t overthink your process. You probably don’t want to spend your whole xmas holiday polishing your perfect kickdrum sound from that :misc_burp sample :–D

I’ll go first with this minimalistic techno tune:

# ONE SAMPLE MINIMAL TECHNO HIT SONG GENERATOR - LIL XMAS GREETINGS :--D
samplz = :drum_cowbell
kickBasePitch = 0.045

live_loop :beat do
  sleep 1
end

# Grand introduction of the SAMPLE
with_fx :reverb, room: 0.9 do
  sample samplz, amp: 0.8
  sleep 0.5
end

live_loop :BURP1, sync: :beat do
  with_fx :rlpf do
    with_fx :distortion, mix: 0.1 do
      32.times do
        sample samplz, rate: kickBasePitch + range(-0.01, 0.01, 0.0001).mirror.tick, cutoff: 50, start: 0.5, finish: 0.55, release: 0.2, amp: 4
        sleep 0.5
      end
      with_fx :reverb, room: 1 do
        sample :ambi_choir, amp: 1.15
        with_fx :distortion do
          2.times do
            7.times do
              sample samplz, hpf: 85, rate: 0.25 + range(0, 0.16, 0.01).mirror.tick, cutoff: 60, start: 0.35, finish: 0.48, release: 0.2, amp: 6
              sleep 0.5
            end
            4.times do
              sample samplz, hpf: 85, rate: 0.25 + [0.1, 0.16, 0.2, 0.26].choose, cutoff: 60, start: 0.35, finish: 0.48, release: 0.2, amp: 6
              sleep 0.125
            end
          end
        end
      end
    end
  end
end

with_fx :reverb, damp: 1.0, room: 0.3, mix: 0.7 do
  live_loop :BURP2, sync: :beat do
    with_fx :rhpf, cutoff: 100 do
      128.times do
        with_fx :tremolo do
          sample samplz, start: 0.08, finish: 0.15, release: 0.2, amp: 0.5, rate: 5
        end
        with_fx :ring_mod, mix: 1, freq: 2 do
          
          sample samplz, start: 0.67, finish: 0.75, release: 0.1, amp: 2, rate: 0.5 + range(-0.03, 0.03, 0.001).mirror.tick, pan: [-0.55, 0.55, -0.25, 0.25].ring.look
          sleep (2.0/16.0)
        end
      end
      sleep 8
    end
  end
end

Cheers,
T

4 Likes

Here is one I wrote three years ago in November 2014 using :ambi_glass_rub sample. It simulates the Glass Armonica invented by Benjamin Franklin in 1761 for which Mozart wrote this piece. It was an early piece I wrote for Sonic Pi, which I would now tidy up considerably in the light of additions made to Sonic PI, but it still runs on Sonic Pi 3. If you are ever in Brussels there is an example of it in the Musical Instruments Museum there.

1 Like

This is more of a dramatic game soundtrack type of song, utilizing the elec_blip sample (made last month)

and another simple one using the :loop_breakbeat sample

2 Likes

Here’s my partial response. Would still need to create some sort of structure, but it’s fun to explore affordances of a single sample (in this case, loop_tabla).

Gist

Direct code:

ting=[4,12,13,18,26,34,43,44,49,57].ring
doum=[6,10,20,24,41,55].ring
claps=[8,19,23,28,29,39,48,50,60].ring
snay=[33,22,8].ring
tomtom=[2,17,32].ring
tock=[3,9,40,51,53,54,59].ring
dwi=[7,21,56,5,38].ring
dwo=[11,47,25,52,27,42].ring
dub=[14,31,58,5,46,35].ring
tonton=[0,1,45,30].ring
three=[36,16,15,37].ring

live_loop :tset do
  sample :loop_tabla, onset: 12, rate: [0.5, 0.01,0.4,0.3,0.6, 0.75].choose
  sleep 0.6
end

live_loop :org do
  with_fx :echo do
    with_fx :pitch_shift, pitch: [-7,0,-48,5,-12].choose do
      sample :loop_tabla, onset: 52
    end
  end
  sleep 1.2
end

live_loop :mel do
  with_fx :gverb do
    6.times do
      sample :loop_tabla, onset: doum.tick, beat_stretch: [2, 1.75, 2.5, 1.5].choose
      sleep 0.6
    end
    sleep 3
  end
end


live_loop :three do
  3.times do
    sample :loop_tabla, onset: three.tick
    sleep 0.15
  end
  sleep 0.15
end

live_loop :dwi do
  sample :loop_tabla, onset: dwi.tick
  sleep 1.2
end


live_loop :ting do
  sample :loop_tabla, onset: ting.tick
  sleep 1.8
end

live_loop :doum do
  sample :loop_tabla, beat_stretch: 16, onset: doum.tick
  sleep 2.7
end

live_loop :dub do
  sample :loop_tabla, onset: dub.tick
  sleep 0.30
end


live_loop :tonton do
  sample :loop_tabla, onset: tonton.tick
  sleep 0.45
end

live_loop :snay do
  sample :loop_tabla, onset: snay.tick
  sleep 0.75
end
2 Likes