Sketch: Darbuka notation in Sonic Pi fx "D-T- tkT- D-tk T-tk "

I just got a darbuka and got inspired to translate the notation to Sonic Pi with a free samplepack. I’m not completely sure that the samples match the correct notation/playstyle in the example below.
I guess, I need to record and create my own samples for this, to be sure that it’s correct.



# 220919 0058 darbuka rythms with external samples and notation
# Saved 220919 0058


# Inspiration: Free Intro to Darbuka - Beginners (Raquy Danziger)
# The "maksum"  https://youtu.be/P-4kzOHLaeM?t=559




##### ---
# Define darbuka sample instrument with external samples
# https://coyotus.net/free-darbuka-samples-kit.html

# Folder with samples
s ="G:/Mit drev/Live coding/Sonic Pi/MGSamplePacks/Darbuka8514/Darbuka8514"


# Notation for darbuka patterns is found here: https://www.scribd.com/doc/35379143/Doumbek-Rhythm-Cheat-Sheet


# How to link to a sample pack with a number https://sonic-pi.net/tutorial.html#section-3-7
define :dD do
  dD = sample s,3  # D Doum  right hand low ton
end
define :dT do
  dT = sample s,18 # T Tek    right hand high tone
end
define :dt do
  dt = sample s,18, amp: 0.5   # t lower than T
end
define :dk do
  dk = sample s,7, amp: 0.5  # K Ka     left hand high tone
  #dk = sample s,9, amp: 0.8  # K Ka     left hand high tone
end
##### --- end


##### --- Functions for darbuka --- #####
# Goal to skip blank spaces in pattern, which are there to create overview,
# with "delete" and "split" and assign sample to notation letter

#Normal darbuka
define :myDarbuka do |notation|                  # normal darbuka
  dT if notation.delete(' ').split('').look=="T"
  dD if notation.delete(' ').split('').look=="D"
  dk if notation.delete(' ').split('').look=="k"
  dt if notation.delete(' ').split('').look=="t"
end
# trying to create an offset like thingy like in Tidalcycles
define :myDarbukaOffset1 do |notation|
  dT if notation.delete(' ').split('-').look=="T"
  dD if notation.delete(' ').split('-').look=="D"
  dk if notation.delete(' ').split('-').look=="k"
  dt if notation.delete(' ').split('-').look=="t"
end
# reverve pattern
define :myDarbukaRev do |notation|
  dT if notation.reverse.delete(' ').split('').look=="T"
  dD if notation.reverse.delete(' ').split('').look=="D"
  dk if notation.reverse.delete(' ').split('').look=="k"
  dt if notation.reverse.delete(' ').split('').look=="t"
end

##### --- end


use_bpm 80

with_fx :level, amp: 4 do
  
  live_loop :dabukaDT do
    #stop
    tick
    
    
    riff = 3  #                       CHANGE RIFF HERE
    
    
    case riff
    when 0
      stop
      
      / Notation for darbuka patterns is found here: /
      #https://www.scribd.com/doc/35379143/Doumbek-Rhythm-Cheat-Sheet
      
    when 1                               # Maqsum (basic)
      notation = "D-T- --T- D--- T--- "
    when 2                               # Maqsum (one ka)
      notation = "D-T- k-T- D-k- T-tk "
    when 3                               # Maqsum (filled)
      notation = "D-T- tkT- D-tk T-tk "
      
      
      / My varations on notation /
      
    when 4                               # Maqsum (filled) + offset1 on top
      notation = "D-T- tkT- D-tk T-tk "
      myDarbukaOffset1 notation
    when 5                               # Maqsum (filled) + reverse pattern
      notation = "D-T- tkT- D-tk T-tk "
      myDarbukaRev notation
      
      
      / Raquy /
      
    when 6
      notation = "D-T- k-T- D-k- T-kk "  # Magsum from Raquy https://youtu.be/P-4kzOHLaeM?t=552
      
      
      
    end  #end case
    
    
    
    myDarbuka notation
    #    myDarbukaOffset1 notation
    #    myDarbukaRev notation
    sleep 0.25
    
  end #end live_loop
end #end :level




# More stuff here - not explored yet
# Darbuka Lesson 2 - maqsuum rhythm & variations [B]
# variations https://youtu.be/SrBPRolXDek?t=176


1 Like