Caught the Virtual Cowboys practicing for their new album!

#################### Down Where the Guitars Play #####################
mn=[:r]; use_bpm 110
for jn in 1..96; mn[jn]=hz_to_midi(11*jn); end

p = [2,0,1,1]; v = [0,1.0,0,0,0.4]; m = [2,3]; o = [2,4]
d = [1,0,0,0,4,0,0,0,0,0,1,0,4,0,0,0]
c = [5,6,9,5, 5,6,9,9, 5,6,9,5, 8,9,5,5,
     8,5,9,9, 8,5,9,9, 8,5,9,9, 8,9]
s = [:fm, :pretty_bell, :pluck]; e = [1.0,0.2,2.0]; l = [0.8,0.5,1.0]

for x in 0..3; play 84, release: 0.01, amp: 0.3; sleep 1; end

loop do
  for x in 0..29; k = o[7/c[x]]
    synth :saw, note: mn[3*c[x]], sustain: 2,  release: 0,   amp: 0.1
    synth :saw, note: mn[k*c[x]], sustain: 2,  release: 0,   amp: 0.1
    
    for y in 0..7; z = 8*(x%2)+y;  r= rand_i(3); w = y%4
      n = c[x]*choose(m)*(1-(y%2))*k
      synth :zawa, note: mn[72],               release: 0.01, amp: p[w]/8.0
      synth :beep, note: mn[d[z]*12],          release: 0.01, amp: v[d[z]]
      synth s[r],  note: mn[n]-12, cutoff: 65, release: e[r], amp: l[r]
sleep 0.25; end; end; end
4 Likes

This is nice. Will take me a bit of time to unscramble its inner workings
I’ll stick some puts statements in to figure out what’s going on with the varying values :slight_smile:

################# T H A N K   Y O U ##################
use_bpm 110 ####################### set tempo
mn=[:r] ########################### midi number  0 = rest
for jn in 1..96 ################### midi numbers for
  mn[jn]=hz_to_midi(11*jn) ######## just numbers 1 - 96
end
p = [2,0,1,1] ############################ 4 count ' ride 'levels
d = [1,0,0,0,4,0,0,0,0,0,1,0,4,0,0,0] #### 2 measures drum notes
v = [0,1.0,0,0,0.4] ###################### drum levels
c = [5,6,9,5, 5,6,9,9, 5,6,9,5, 8,9,5,5, # root notes of
     8,5,9,9, 8,5,9,9, 8,5,9,9, 8,9] ##### 30 measures
m = [2,3] ################################ root note first or fifth
o = [2,4] ################################ root note octive
s = [:fm, :pretty_bell, :pluck] ########## synth selection
e = [1.0,      0.2,      2.0  ] ########## synth release:
l = [0.8,      0.5,      1.0  ] ########## synth amp:
for x in 0..3; play 84,
    release: 0.01, amp: 0.3; sleep 1; end# countdown

loop do
  for x in 0..29 ######################### 30 measures
    k = o[7/c[x]] ######################## invert diads with root > 7
    ###################################### first and fifth diad backround
    synth :saw, note: mn[3*c[x]], sustain: 2,  release: 0,   amp: 0.1
    synth :saw, note: mn[k*c[x]], sustain: 2,  release: 0,   amp: 0.1
    for y in 0..7 ######################## 8 counts / measure
      z = 8*(x%2)+y ###################### 16 counts / drum pattern
      w = y%4 ############################ 4 counts / ride pattern
      n = c[x]*choose(m)*(1-(y%2))*k ##### choose note
      r= rand_i(3) ####################### choose synth
      #################################### play ride , drum , synth
      synth :zawa, note: mn[72],               release: 0.01, amp: p[w]/8.0
      synth :beep, note: mn[d[z]*12],          release: 0.01, amp: v[d[z]]
      synth s[r],  note: mn[n]-12, cutoff: 65, release: e[r], amp: l[r]
sleep 0.25; end; end; end
1 Like

Thanks the comments make it easier to follow.