New Song Released on the Fantasy☆Deluxe Compilation


#1

I finished another song titled: External Gazer. Again I used SonicPi for the full arrangement of the tracks as well as for effects. I tweaked, mixed and master the song in Logic Pro X. The song starts out pretty spacey but eventually builds into a breakcore type beat.

I managed to get the song onto a recent Fantasy☆Deluxe compilation album. My song is #22 on the compilation.

Here’s my song:

Full album can be found here:
https://fantasy-deluxe.bandcamp.com/album/localradio


#2

Cool track, I like the structure.
Are you able to share the code?


#3

Sure but the way I work on tracks is a bit destructive. This is the code I saved but it may be missing a lot and you may have to alter it to get the desired effect. I also am pulling in sample libraries so you’ll have to import your own external samples and loops to get sound.

Most of what I did was use the beat slicer code which is in the SonicPi manual so if you want to accomplish something similar I’d say just look at that code and build off of it.

# INITIALIZE MASTER VALUES
use_bpm 49
counter0 = 0
use_random_seed 8 #14 #8 #3

# LOAD IN SAMPLE LIBRARIES
mabinogi = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Mabinogi" #[0-2]
win95 = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Windows 95" #[0-4]
mgsMenu = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/MGS 1/Menu/" #[0-87]
drumSamp = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Free Drums 1/" #[0-59]
outrun = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Outrun 1/" #[0-39]
tapeStop = "/Users/sheamkennedy/Desktop/DESKTOP/Drum Kits | Samples/Looperman Samples"
slomo = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/Slomo 1/" #[0-18]
aolSamp = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/AOL/AOL Samples/"
aolChop = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/AOL/AOL Chops/"
aolLoop = "/Users/sheamkennedy/Desktop/DESKTOP/Sonic Pi Files/SPi - Samples/AOL/AOL Loops/"


# AUTOMATION
line_Riser0 = (line 10, 0, inclusive: true, steps: 16)
line_Riser1 = (line 8, 0, inclusive: true, steps: 128)
line_Riser2 = (line 4, 0, inclusive: true, steps: 128)
lfo0 = (line 70, 100, inclusive: true, steps: 16).mirror
lfo1 = (line 0.8, 0.99, inclusive: true, steps: 32).mirror
lfo2 = (line 120, 60, inclusive: true, steps: 4).mirror
lfo3 = (line 120, 100, inclusive: true, steps: 8)
lfo4 = (line 0.7, 0.99, inclusive: true, steps: 4).mirror
lfo5 = (line 0.3, 0.99, inclusive: true, steps: 2).mirror



live_loop :euclid_beat do
  puts tick
  #sample aolChop, 1, rate: (ring 0.7, 0.8)[counter0] if (spread 2, 16).look
  sample aolChop, (ring 10, 11).look, rate: 0.5 if (spread 1, 16).look
  
  # Counter for pitch variation
  if (spread 1, 8).look
    counter0 = counter0+1
  end
  sleep 1
end


/
# SuperGlitch1
live_loop :beat_slicer0 do
  slice_idx = rand_i(8)
  slice_size = 0.125
  s = slice_idx * slice_size
  f = s + slice_size
  sample aolChop, 9, rate: 2, start: s, finish: f
  #sleep sample_duration aolChop, start: s, finish: f
  sleep 0.5
end
/

/
# SuperGlitch2
live_loop :beat_slicer1 do
  puts tick
  with_fx :lpf, cutoff: lfo2.look, res: lfo5.look do
    slice_idx = (ring 0,3,5,2).look#rand_i(4)
    slice_size = 0.125
    s = slice_idx * slice_size
    f = s + slice_size
    sample aolChop, (ring 6,7,8,6).look, rate: 1, start: s, finish: f #13
    sleep sample_duration aolChop, start: s, finish: f
  end
  #sleep (ring 1,1,1,1,1,1,0.5,0.5,0.5,0.5).look
end
/



live_loop :euclid_beat2 do
  puts tick
  with_fx :lpf, cutoff: lfo3.look, res: lfo4.look do
    time_warp 2.5 do
      sample aolLoop, 9, rate: 2, onset: 8 if (spread 6, 16).look
      time_warp 6 do
        with_fx :echo, mix: 0.4 do
          sample aolLoop, 3, rate: 2, onset: 12 if (spread 4, 16).look
        end
      end
    end
  end
  sleep 1
end

# ELEVATOR
live_loop :elevator do
  time_warp 3 do
    with_fx :level, amp: choose([0.5,0.8, 0.9])  do
      with_fx :lpf, cutoff: lfo3.look, res: lfo4.look do
        #with_fx :gverb, mix: 0.15 do
        with_fx :echo, phase: choose([0.125,0.25,0.0625]) do
          puts tick
          sample outrun, 38, rate: 1, onset: pick #if (spread 1, 16).look
          #end
        end
      end
    end
  end
  sleep 4
end

live_loop :trip do
  puts tick
  with_fx :level, amp: choose([1])  do
    with_fx :slicer, phase: 2 do
      with_fx :lpf, cutoff: lfo0.look, res: lfo1.look do
        sample aolLoop, 5, rate: (ring 2, 1).look, onset: pick
      end
    end
  end
  sleep (ring 0.5, 0.125, 0.125,0.25).mirror.look
end

live_loop :basskick do
  depth = choose([3,8,16])
  if (depth == 3)
    volume = 0.7
  end
  if (depth == 8)
    volume = 0.9
  end
  if (depth == 16)
    volume = 1
  end
  with_fx :level, amp: choose([0,volume,volume,volume,volume])  do
    with_fx :bpf, centre: lfo3.tick, res: lfo4.look do
      with_fx :bitcrusher, bit: depth do
        sample slomo, choose([4]), rate: 2, onset: choose([7,8]) #7,8
      end
    end
  end
  sleep choose([0.125,0.25])
end


live_loop :seq1 do
  with_fx :level, amp: choose([1])  do
    with_fx :echo do
      with_fx :bpf, centre: lfo0.tick, res: lfo1.look do
        sample aolChop, choose([0]), rate: 1, onset: pick if (spread 2, (ring 4,8).look).look
      end
    end
  end
  sleep 0.5
end


/
# TICKER
live_loop :ticker do
  time_warp 8 do
    puts tick
    sample aolLoop, 7, attack: line_Riser2.tick, beat_stretch: (ring 0.2, 0.5)[counter0] if (spread 16, 16).look
  end
  sleep 0.125
end
/

#4

Thanks - I was just curious how you created some of the parts, I don’t want to rip-off your track :slight_smile:


#5

Extremely cool.

Me gusta mucho!