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