A new piece just for fun "Only in C"

If you see something to improve in my patch (I could have used more variables for the chords definitions for instance :slightly_smiling_face:).
Thanks for hearing!
Cheers

soundcloud Only in C

##| Only inC

use_bpm 110

##| I define my chords

define :chord1 do
  with_fx :wobble, phase: 1, phase_slide: 4 do |e|
    use_synth :dsaw
    play chord(:c3, :major, invert: 1), release: 4
    control e, phase: 0.025
    sleep 4
  end
end

define :chord2 do
  with_fx :wobble, phase: 1, phase_slide: 4 do |e|
    use_synth :dsaw
    play chord(:c2, :major, invert: 2), release: 4
    control e, phase: 0.025
    sleep 4
  end
end

define :chord3 do
  with_fx :wobble, phase: 1, phase_slide: 4 do |e|
    use_synth :dsaw
    play chord(:c3, :major, invert: 2), release: 4
    control e, phase: 0.025
    sleep 4
  end
end

define :chord4 do
  with_fx :wobble, phase: 1, phase_slide: 4 do |e|
    use_synth :dsaw
    play [:g, :c3, :f4], release: 4
    control e, phase: 0.025
    sleep 4
  end
end


##The melody

with_fx :reverb, room: 0.6, mix: 0.5 do
  with_fx :flanger, phase: 0.5, mix: 0.8 do
    live_loop :melody do
      ##| stop
      play scale(:c4, :major_pentatonic, num_octaves: 3).choose, amp: 0.4
      sleep 1
    end
  end
end

##A bd_haus and a bass

live_loop :bd, delay: 24 do
  ##| stop
  use_synth :tb303
  play (ring, :c2,nil, :g1, :b1).tick, amp: 1.5, pan: rdist(0.9)
  sample :bd_haus, amp: 2
  sleep 1
end

##Drums

live_loop :drums, delay: 36 do
  ##| stop
  sample (ring,:bd_haus,:sn_zome).tick, amp: 2
  sleep 1
end

##Chords

with_fx :reverb, room: 0.5, mix: 0.6 do
  live_loop :chords, delay: 48 do
    ##| stop
    chord1
    chord2
    chord3
    chord4
    chord3
  end
  
end

1 Like

I like it! I didn’t know about the delay: param for a live loop. Nice for arrangements!

1 Like

thank you Harry! @HarryLeBlanc yes, delay is very useful and I use it often to organize my patches… :grin:

This IS fun! I like it,

1 Like

Yes, delay and stop together are a great way to control the entry and exit of loops, will def be using it in future

live_loop :wait, delay: 4 do
  
  play 60
  sleep 1
  play 72
  sleep 1
  stop
  
end

PD-Pi

1 Like

ok Brendan @brendanmac
I tried this and it works! a mean we hear correctly the “play 42’” after four beats…So" wait" or “sleep” works well also to control an entry even for a simple function “play”(not a loop),I just discovered this a few moments ago :smiley:
Is there an other way to do it? or is it the easiest way to control this “play 72” entry?

live_loop :boum do
  sample :bd_boom, amp: 0.5
  sleep 1
end


wait 4 ##or sleep 
play 72 

There may be other ways to do that, but this looks perfectly logical. Or use 4.times do-end for the kick, inside the loop.

live_loop :boum do
  4.times do
    sample :bd_boom, amp: 0.5
    sleep 1
  end
  play 72
end

Resulting in repeated plays. But you know this :wink:

1 Like

Yes, good idea too Brendan! @brendanmac. But it’s interesting to know this about “play/sleep” for future compostions, to control entries not in loops.

1 Like