Greatly inspired yesterday by @alexesc’s ace method for drum patterns, and in my quest to use SPi as a general purpose live and recording instrument I wrote a general purpose drumkit script.
I’ve put this in 6/4, not to annoy you but coz that’s the track I’m working on just now. Four on the floor or boots and cats are great for sure, but c’mon there’s so many other great rhythms in the world and not just random ones ha ha
This is so much easier than working out all the individual sleeps, more in tune with how I think as a drummer. I’m still trying to find a similar good way with melodies - if you got any ideas please share.
btw in real use I’m putting in choices and probablities to mix it up, take elements in and out
#General purpose drum kit use_bpm 120 define :pattern do |pattern| return pattern.tick(:pattern) == "x" end live_loop :main do sleep 6 cue :bar end with_fx :reverb do with_fx :echo, mix: 0.1 do live_loop :drumkit do sync :bar #Kick a = 0.5 in_thread do 6.times do sample :bd_ada, amp: a if pattern "x-----" sleep 1 end end #Snare a = 1.0 in_thread do 6.times do sample :drum_snare_hard, amp: a if pattern "---x--" sleep 1 end end #Pedal a=0.4 in_thread do 6.times do sample :drum_cymbal_pedal, amp: a*0.3 if pattern "-x--x-" sleep 1 end end #Hihat a=0.1 in_thread do p1 = "-xx-x-xx-xx-" p2 = "xx-xx-xx-xx-" p3 = "-xx-xx-xx-xx" p4 = "xxxxxxxxxxxx" p = [p1,p2,p3,p4].choose 12.times do ac=[1,2,1,1,1,2].ring sample :drum_cymbal_soft, amp: a*ac.tick(:ac) if pattern p sleep 0.5 end end #Hihat Open a=0.02 in_thread do 12.times do sample :drum_cymbal_open, amp: a, finish: 0.15 if pattern "-----------x" sleep 0.5 end end #Percussion a=0.2 with_fx :slicer do sample :perc_bell, rate: 0.5, amp: a, release: 1.0 end end #drumkit end #echo end #verb