The 80s Called and They Want Philip Glass Back

I’m still new to Sonic Pi, and I have a long way to go before getting proficient at live coding. In the mean time, I decided to try a through composed piece. I read an article a year or so about structuring music fractally. I have been wanting to play around with some of those ideas for awhile. The results below have a definite 1980s minimalist vibe to them. So, of course, I named the piece The 80s Called and They Want Philip Glass Back. I hope you enjoy it.

God’s Peace,
Jason+

#defining elements
define :alpha do
  5.times do
    notes = [:c2, :g2, :c3, :eb3, :bb3].ring
    use_synth :pluck
    play notes.tick, amp: 1, release: 0.25
    use_synth :piano
    play notes.look, amp: 1, release: 0.25
    sleep 0.125
  end
end

define :beta do
  with_fx :reverb, amp: 0.6, room: 0.8 do
    5.times do
      notes = [:g2, :g2, :d3, :f3, :b3].ring
      use_synth :supersaw
      play notes.tick, amp: 0.7, release: 0.3, pan: 0.3
      use_synth :subpulse
      play notes.look, amp: 0.7, release: 0.25, pan: -0.3
      sleep 0.125
    end
  end
end


define :cmin7echo do
  with_fx :echo, amp: 0.6, phase: 0.3 do
    use_synth :pluck
    play chord(:c2, :minor7, num_octaves: 3), amp: 2, release: 1.25, pan: -0.9
    use_synth :piano
    play chord(:c2, :minor7, num_octaves: 3), amp: 2, release: 1.25, pan: 0.9
    sleep 1
  end
end

define :g7echo do
  with_fx :echo, amp: 0.6, phase: 0.3 do
    use_synth :supersaw
    play chord(:g3, '7', num_octaves: 2), amp: 0.7, attack: 0.001, release: 1.25, pan: -0.3
    use_synth :subpulse
    play chord(:g3, '7', num_octaves: 2), amp: 0.7, attack: 0.001, release: 1.25, pan: 0.3
    sleep 1
  end
end

define :gamma do
  5.times do
    with_fx :reverb, amp: 0.6, room: 0.8 do
      notes = [:c2, :d4, :g3, :eb3, :bb3].ring
      use_synth :piano
      play notes.tick, amp: 0.7, release: 0.4, pan: 0.6
      use_synth :fm
      play notes.look, amp: 0.5, divisor: 3, release: 0.4, pan: -0.3
      play notes.look, amp: 0.5, divisor: 0.5, release: 0.4, pan: -0.6
      sleep 0.3
    end
  end
end

define :delta do
  5.times do
    notes = [:g1, :g2, :f3, :ab3, :b4].ring
    with_fx :panslicer, phase: 0.1 do
      with_fx :echo, amp: 0.6, phase: 0.08 do
        use_synth :dpulse
        play notes.tick, amp: 0.4, attack: 1, sustain: 0, release: 0.01
      end
      use_synth :dark_ambience
      play notes.look, amp: 0.4, attack: 1, sustain: 0, release: 0.5
      sleep 0.25
    end
  end
end

define :epsilon do
  5.times do
    notes = [:eb2, :bb2, :db3, :g3, :a3].ring
    use_synth :piano
    play notes.tick, amp: 0.5, release: 0.4, pan: 0.3
    use_synth :fm
    play notes.look, amp: 1, divisor: 3, release: 0.4, pan: -0.4
    play notes.look, amp: 1, divisor: 0.5, release: 0.4, pan: -0.3
    sleep 0.25
  end
end

define :zeta do
  5.times do
    notes = [:ab1, :ab2, :gb3, :bb3, :c4].ring
    with_fx :panslicer, phase: 0.1 do
      with_fx :echo, amp: 0.6, phase: 0.08 do
        use_synth :dpulse
        play notes.tick, amp: 0.4, attack: 1, sustain: 0, release: 0.01
      end
      use_synth :dark_ambience
      play notes.look, amp: 0.4, attack: 1, sustain: 0, release: 0.5
      sleep 0.25
    end
  end
end

define :heta do
  5.times do
    with_fx :reverb, amp: 0.6, room: 0.9 do
      notes = [:ab3, :ab4, :gb4, :bb4, :c5].ring
      use_synth :piano
      play notes.tick, amp: 0.5, release: 0.4, pan: 0.3
      use_synth :pluck
      play notes.look, amp: 1, release: 0.4, pan: -0.4
      play notes.look, amp: 1, release: 0.4, pan: -0.3
      sleep 0.25
    end
  end
end

#defining patterns
define :patternA do
  5.times do
    alpha
  end
  1.times do
    beta
  end
  3.times do
    alpha
  end
  2.times do
    g7echo
  end
  2.times do
    cmin7echo
  end
  3.times do
    beta
  end
  1.times do
    alpha
  end
  5.times do
    beta
  end
end

define :patternB do
  5.times do
    gamma
  end
  1.times do
    delta
  end
  3.times do
    gamma
  end
  2.times do
    zeta
  end
  2.times do
    heta
  end
  3.times do
    delta
  end
  1.times do
    gamma
  end
  5.times do
    delta
  end
end

#score

5.times do
  patternA
end

1.times do
  patternB
end

3.times do
  patternA
end

2.times do
  patternB
end

2.times do
  patternA
end

3.times do
  patternB
end

1.times do
  patternA
end

5.times do
  patternA
end

1.times do
  use_synth :pluck
  play [:c2, :g2, :c3, :e3, :b3], amp: 1, release: 8
  use_synth :piano
  play [:c2, :g2, :c3, :e3, :b3], amp: 1, release: 8
  sleep 0.125
end
3 Likes

Nice @barefootpriest! I like it, especially :epsilon and :zeta. :smiley:
Hope you don’t mind but I’ve taken the liberty to alter the text formatting style of your tune slightly by removing the angle brackets and converting it to a code block (by placing three backticks ` on new lines before and after your code). That way it’s easy to copy into Sonic Pi and play straight away :slightly_smiling_face:

Thanks, I was trying to figure out how to do that.

J+