Diy Lo-Fi ? Wellll.... maybe

Might just be classed as Lo-Fi, maybe… no external samples, no samples sliced… No Midi or OSC… No external remixing… 100% SP code on PC

Eli…

2 Likes

Not Lo-Fi … but excellent background whilst reading or just chillin.

Eli…

# Title: Eternal
# Artist: Paul 'Just Eli...' Whitfield
# Date: 16/06/2019
#
# Sonic Pi v3.1

use_bpm 60

sc = scale(:eb3, :major_pentatonic, num_octaves: 2).shuffle #scale stored in variable

tracker = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

start = (knit true, 1, false, 3)

notes =[:f4, :ab4, :bb4, :ab4, :bb4, :c4, :e4, :c4]
timing = [0.5, 0.5, 1, 0.5, 0.5, 0.5, 1, 1]

clarinet_notes = scale(:eb2, :major_pentatonic, num_octaves: 3)
clarinet_rhythm = (ring 0.25, 0.75, 1, 0.75, 0.25, 0.5, 0.5)
fade_in = (line 0, 3, inclusive: true, steps: 20).ramp

define :start_loop do |i|
  tracker[i] = 1
end

define :stop_loop do |i|
  tracker[i] = 0
end

define :stop_all do
  (0..12).each do |i|
    tracker[i] = 0
  end
end

with_fx :mono, mix: 1 do
  with_fx :rlpf, res: 0.7, cutoff: 130 do
    with_fx :distortion, distort_slide: 2, distort: 0.3, mix: 1.0 do
      live_loop :drum do
        sync :loop
        tick
        if tracker[0]>0 then
          at [2.0+rand_i(6)] do
            sample :vinyl_hiss,amp: [0.5,1].choose
          end
          
          if start.look
            with_fx :rhpf, cutoff: 110, amp: 0.3 do
              with_fx :flanger do
                with_fx :echo, decay: 4 do
                  sample :elec_cymbal
                end
                
              end
            end
          end
          at [0.0, 0.5, 1.5, 4.0,
          4.5, 5.5, 6.25, 6.5] do
            sample :elec_hollow_kick, pan: 0, amp: 3
          end
          
          with_fx :echo, decay: 2, mix: 0.4 do
            
            use_random_seed 1234
            32.times do
              sample :drum_cymbal_closed, pan: -0.7, amp: 1 if one_in(2)
              sleep 0.25
            end
          end
        else
          sleep 0.5
        end
      end
    end
  end
end

with_fx :ixi_techno, phase: 2, cutoff_min: 30+rand_i(30),cutoff_max: 60+rand_i(30) do
  with_fx :flanger do
    with_fx :reverb do
      live_loop :chant1 do
        use_synth :piano
        if tracker[1]>0 then
          if rand() > 0.85 then
            notes =[:f4, :ab4, :bb4, :ab4, :bb4, :c4, :e4, :c4]
          else
            notes =[:f4, :ab4, :bb4, :ab4, :bb4, :c4, :e4, :c4].shuffle
          end
          for i in 0..4
            for j in  0..i
              puts j
              play notes[j]-12, sustain: 1
              play notes[j+1], sustain: 1 if one_in(4)
              sleep timing[j]*[1,2].choose
            end
          end
          sleep 4
        else
          sleep 0.5
        end
      end
    end
  end
end

with_fx :flanger do
  with_fx :reverb do
    live_loop :chant2 do
      use_synth :pluck
      if tracker[2]>0 then
        if rand() > 0.85 then
          sc = scale(:eb3, :major_pentatonic, num_octaves: 2)
        else
          sc = scale(:eb3, :major_pentatonic, num_octaves: 2).shuffle
        end
        for i in 0..3
          for j in  0..i
            puts j
            play sc.tick(:scl), amp: 0.125, release: 2,amp: 1
            play sc.look+12, amp: 0.125, release: 2,amp: 1 if one_in(4)
            sleep timing[j]*[1,2].choose
          end
        end
        sleep 4
      else
        sleep 0.5
      end
    end
  end
end

live_loop :clarinet do
  if tracker[3]>0 then
    use_synth :fm
    if one_in 3 then
      clarinet_notes = scale(:eb2, :major_pentatonic, num_octaves: 3)
      
      clarinet_rhythm = (ring 0.25, 0.75, 1, 0.75, 0.25, 0.5, 0.5)
    else
      clarinet_notes = scale(:eb2, :major_pentatonic, num_octaves: 3).shuffle
      clarinet_rhythm = (ring 0.25, 0.75, 1, 0.75, 0.25, 0.5, 0.5).shuffle
    end
    use_synth_defaults divisor: 0.5, depth: 4, attack: 0.05, sustain: 0.2, release: 0.2, amp: 0.05*fade_in.tick
    with_fx :reverb, room: 0.75, damp: 0.25 do
      play clarinet_notes.tick
      play clarinet_notes.look
      play clarinet_notes.look
    end
    sleep clarinet_rhythm.look
  else
    sleep 0.5
  end
end

live_loop :control_clarinet do
  if tracker[4]>0 then
    start_loop 3
    sleep 16+rand_i(16)
    stop_loop 3
    sleep 32+rand_i(32)
  else
    sleep 0.5
  end
end

live_loop :loopy do
  cue :loop
  sleep 1
end

drums = 0
chant1 = 1
chant2 = 2
clarinet = 3
control_clarinet = 4


start_loop chant1
sleep 8
start_loop drums
sleep 8
start_loop chant2
sleep 32
start_loop control_clarinet
1 Like