One progression jazz - blues

acordes=[:bb3,:eb4,:bb3,:bb3,:eb4,:e4,:bb3,:g4,:c4,:f4,:d4,:f4]
tipo=['7','7','7','7','7','diminished7','7','m7','7','7','m7','7']

live_loop :jazzblues do
  for i in (range 0,12)
    use_synth :tri
    play acordes[i]-12,cutoff: 80,release: 3.5
    4.times do
      use_synth :piano
      play (chord acordes[i],tipo[i])
      sleep 1
    end
  end
end

live_loop :melodia do
  use_synth :dsaw
  dur=[0.50,1].choose
  play [58, 61, 63, 65, 68, 70, :r].choose,release: dur
  sleep dur
  end

I prefer my blues with a side-order of guitar and piano please…
And a little drum & snare in there somewhere, to complete the deal.

Really nice compact code my friend. :slight_smile:

Eli…

define :snare do
  at [0, 1, 2, 3],
  [{:amp=>0.3}, {:amp=> 1}, {:amp=>0.5}] do |p|
    sample :drum_cymbal_pedal, p
  end
end


acordes=[:bb3,:eb4,:bb3,:bb3,:eb4,:e4,:bb3,:g4,:c4,:f4,:d4,:f4]
tipo=['7','7','7','7','7','diminished7','7','m7','7','7','m7','7']

live_loop :jazzblues do
  for i in (range 0,12)
    use_synth :piano
    play acordes[i]-12,cutoff: 80,release: 3.5
    4.times do
      use_synth :piano
      play (chord acordes[i],tipo[i],release: 3.5)
      sleep 1
    end
  end
end

live_loop :melodia do
  use_synth :pluck
  dur=[0.50,1].choose
  play [58, 61, 63, 65, 68, 70, :r].choose,release: dur
  sleep dur
end

live_loop :low_boom do
  sample :bd_boom, rate: 0.75, amp: 3
  sleep [7,1,8].ring.tick
end

live_loop :do_snare do
  sync :low_boom
  snare
  sleep 1
end

So it is better :rofl:, on the other hand, I have to adapt the melody to the typical pattern of the blues, I put myself to it, when I have the code I will explain better what I mean

In the blues it is usual to repeat a melodic sequence, which when played on a different harmonic basis, transmits to the listener the sensation that it is a different melody. In this case I have chosen to generate an 2-bar melody, which when playing on harmonic progression recreates that feeling of being a blues made up of a human

live_loop :melodia do
use_synth :pluck
t_dur = 0
use_random_seed 2017
while t_dur < 8 do
dur=[0.50,1].choose
play [58, 61, 63, 65, 68, 70, :r].choose,release: dur
sleep dur
t_dur +=dur
end
end

The code is

use_bpm 120
define :snare do
  at [0, 1, 2, 3],
  [{:amp=>0.3}, {:amp=> 1}, {:amp=>0.5}] do |p|
    sample :drum_cymbal_pedal, p
  end
end


acordes=[:bb3,:eb4,:bb3,:bb3,:eb4,:e4,:bb3,:g4,:c4,:f4,:d4,:f4]
tipo=['7','7','7','7','7','diminished7','7','m7','7','7','m7','7']

live_loop :jazzblues do
  for i in (range 0,12)
    use_synth :piano
    play acordes[i]-12,cutoff: 80,release: 3.5
    4.times do
      use_synth :piano
      play (chord acordes[i],tipo[i],release: 3.5)
      sleep 1
    end
  end
end

live_loop :melodia do
  use_synth :pluck
  t_dur = 0
  use_random_seed 2017
  while t_dur < 8 do
      dur=[0.50,1].choose
      play [58, 61, 63, 65, 68, 70, :r].choose,release: dur
      sleep dur
      t_dur +=dur
    end
  end
  
  live_loop :low_boom do
    sample :bd_boom, rate: 0.75, amp: 3
    sleep [7,1,8].ring.tick
  end
  
  live_loop :do_snare do
    sync :low_boom
    snare
    sleep 1
  end

Two verse and a chorus

use_bpm 120

define :snare do
  at [0, 1, 2, 3],
  [{:amp=>0.3}, {:amp=> 1}, {:amp=>0.5}] do |p|
    sample :drum_cymbal_pedal, p
  end
end

define :melodia1 do
  use_synth :pluck
  t_dur = 0
  use_random_seed 2017
  while t_dur < 8 do
      dur=[0.50,1].choose
      play [58, 61, 63, 65, 68, 70, :r].choose,release: dur
      sleep dur
      t_dur +=dur
    end
  end
  
  define :melodia2 do
    use_synth :pluck
    t_dur = 0
    use_random_seed 2017
    while t_dur < 8 do
        dur=[0.50,1].choose
        play [ 61, 63, 65, 68, 70,73,:r].choose,release: dur
        sleep dur
        t_dur +=dur
      end
    end
    
    
    acordes=[:bb3,:eb4,:bb3,:bb3,:eb4,:e4,:bb3,:g4,:c4,:f4,:d4,:f4]
    tipo=['7','7','7','7','7','diminished7','7','m7','7','7','m7','7']
    
    live_loop :jazzblues do
      for i in (range 0,12)
        use_synth :piano
        play acordes[i]-12,cutoff: 80,release: 3.5
        4.times do
          use_synth :piano
          play (chord acordes[i],tipo[i],release: 3.5)
          sleep 1
        end
      end
    end
    
    live_loop :melodia do
      for i in (range 0,2)
        for ii in (range 0,6)
          melodia1
        end
      end
      for ii in (range 0,6)
        melodia2
      end
    end
    
    
    live_loop :low_boom do
      sample :bd_boom, rate: 0.75, amp: 3
      sleep [7,1,8].ring.tick
    end
    
    live_loop :do_snare do
      sync :low_boom
      snare
      sleep 1
    end