Strudelify

Ich traume mich zu Dir

Roy Black

KeyC majorTempo99 bpm
0:00/0:00
// Ich traume mich zu Dir — Roy Black
// 99 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(99/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B C D E F G@2 H I J E K G J A L C J E M@2 N O C P Q R M S T O A U V W E B G I E V J E K V J E C X Y E M@2 S Z V S
  K AA AB P C AC V P K AD AE AF X O J F C D E K V@2 AG ~
>`.pickRestart({
  A: "c2@5 ~ c2 ~ c2@6 ~@2", B: "e1@5 ~ e1 ~ e1@6 ~@2", C: "f1@5 ~ f1 ~ f1@6 ~@2", D: "f1@4 ~@2 f1 ~ f1@4 g1@4",
  E: "c2@4 ~@2 c2 ~ c2@6 ~@2", F: "e1@5 ~ e1 ~ e1@7 ~", G: "f1@5 ~ f1 ~ f1@5 ~@3", H: "c2@5 ~ c2 ~ c2@5 ~@3",
  I: "f1@5 ~ f1 ~ f1@7 ~", J: "c2@4 ~@2 c2 ~ c2@5 ~@3", K: "e1@4 ~@2 e1 ~ e1@6 ~@2", L: "f1@4 ~@2 f1 ~ f1@7 ~",
  M: "d2@4 ~@2 d2 ~ d2@5 ~@3", N: "g1@5 ~ g1 ~ g1@5 ~@3", O: "g1@4 ~@2 g1 ~ g1 ~ g1@3 ~ g1@2",
  P: "g1@4 ~@2 g1 ~ g1@6 ~@2", Q: "e1@4 ~@2 e1 ~ e1@5 ~ g1@2", R: "a1@5 ~ a1 ~ a1@6 ~@2", S: "g1@4 ~@2 g1 ~ g1@5 ~@3",
  T: "f1@4 ~@2 f1 ~ f1@8", U: "e1@4 ~@2 e1 ~ e1@8", V: "f1@4 ~@2 f1 ~ f1@5 ~@3", W: "f1@5 ~ f1 ~ f1@4 g1@4",
  X: "f1@4 ~@2 f1 ~ f1@6 ~@2", Y: "c2@4 ~@2 c2 ~ c2@4 ~@4", Z: "g1 ~ g1@3 ~ g1 ~ g1@7 ~", AA: "a1@4 ~@2 a1 ~ a1@5 ~@3",
  AB: "d2@4 ~@2 d2 ~ d2@4 ~@4", AC: "g1 ~ g1@3 ~ g1 ~ g1@6 ~@2", AD: "a1@5 ~ a1 ~ a1@7 ~", AE: "d2@4 ~@2 d2 ~ d2@6 ~@2",
  AF: "g1@4 ~@2 g1 ~ g1@7 ~", AG: "c2@13 ~@3",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A@2 B@2 C@2 D@2 E F G@2 H I@3 B@2 J@2 K@2 L@2 M N@2 O@2 P Q R S@2 B@2 C@2 B@2 T F U@6 B@2 J@2 V@4 F W@3 X@2 Q Y Z
  AA@5 Q AB@3 B@2 S@2 B@2 E ~
>`.pickRestart({
  A: "[c4@16 b3@15 ~, [g3,e4]@31 ~]/2", B: "[[a3,c4,f4]@31 ~]/2", C: "[c4@15 ~ b3@15 ~, [g3,e4]]/2",
  D: "[[a3,c4,f4]@15 ~]/2", E: "[g3,c4,e4]", F: "[a3,c4,f4]@15 ~", G: "[[g3,c4,e4]@31 ~]/2", H: "[b3,e4,g4]",
  I: "[[f4,a4]@16 g4@15 ~ g3@15 ~, c4@47 ~, ~@16 e4@31 ~]/3", J: "[g3,c4,e4]/2", K: "[[a3,d4,f4]@31 ~]/2",
  L: "[~@16 g3@15 ~, [b3,d4,g4]]/2", M: "[a3,c4,f4]", N: "[d4 e4, [b3,g4]@31 ~]/2",
  O: "[[c4,e4]@16 [d4,f4]@15 ~, a3@31 ~]/2", P: "[b3,d4,g4]@15 ~", Q: "[f3,a3,c4,e4]", R: "[g3,b3,d4,g4]@15 ~",
  S: "[c4@16 b3@15 ~, [g3,e4]]/2", T: "[c4,e4], g3@7 ~",
  U: "[[g3,c4,e4]@32 [b3,g4]@16 [f4,a4]@15 g4@16 ~ g3@15 ~, ~@32 e4@31 e4@32 ~, ~@48 c4@47 ~]/6", // C Em F
  V: "[[a3,f4] [g3,b3,g4], d4@31 ~]/4", W: "[d4 ~ a4, [b3,g4]@16 c4@7 ~, ~ e4@2]/3",
  X: "[f4@16 [g3,b3,g4]@15 ~, d4@15 ~, a3@7 ~@9]/2", Y: "[g3,d4], b3@7 ~", Z: "[a3,c4,f4,a4]",
  AA: "[d4 ~ [c4,a4] f4 [g3,g4], [g3,g4]@2 a3@2 ~, b3@15 ~@17 b3@7 ~, ~ e4@2 d4@2]/5", // F G
  AB: "[[b3,d4,g4]@16 c4@16 b3@15 ~, g3@47 ~, ~ e4@2]/3", // G
})).s("gm_string_ensemble_1").gain(0.31)

// other · steel drums · "STEEL DRUM"
const steel_drums = note(`<
  A B C D E F G H ~@3 I J ~@8 K L M N O P Q R S ~@2 T U V W X F Y Z ~@3 AA AB ~@8 K AC AD AE O P AF AG AH ~@2 AI AJ P Q
  AG AH ~@2 AK AL AM AN E AO AP AQ AR ~@2
>`.pickRestart({
  A: "~@8 c5@3 ~ d5@3 ~", B: "e5@2 d5@2 e5@2 d5@2 e5@2 c5@2 ~@2 c5 ~", C: "d5@2 c5 ~ d5@2 c5@2 d5@2 b4@2 ~@2 b4 ~",
  D: "[a4,c5] c5 [a4,c5]!4 a4 [a4,c5]!4 ~@5", E: "[c5,e5]@3 ~ [b4,d5] ~ [a4,c5] ~ [b4,d5] ~ [d5,g5]!5 ~",
  F: "e5 ~ d5 ~ e5 ~ d5 ~ e5 ~ c5 ~@3 c5 ~", G: "d5 ~ c5 ~ d5 ~ c5 ~ d5 ~ b4 ~@3 [a4,c5]!2",
  H: "[a4,c5]!4 ~@2 g5!6 g5@2 ~@2", I: "~@8 [c4,e4] e4 [c4,e4]!2 [c4,f4] [d4,f4]!3",
  J: "[e4,g4]!2 g4 [e4,g4]!2 e4 [e4,g4] g4 e4 [e4,g4] g4 e4 g4 ~@3", K: "d4!8 e4!8", L: "f4!13 ~@3", M: "g4!8 a4!8",
  N: "b4!5 b4@2 ~ e5@2 d5@2 c5@2 b4 ~", O: "a4 ~@3", P: "~@4 d5 c5 b4 a4", Q: "g4 ~@3", R: "~@8 c5@2 b4@2 a4@2 g4 ~",
  S: "f4@3 ~@5", T: "~@8 c5@3 ~ d5@2 ~@2", U: "e5@2 d5 ~ e5@2 d5@2 e5@2 c5@3 ~ c5@2",
  V: "d5@2 c5@2 d5@2 c5@2 d5@2 b4@3 ~ c5 [a4,c5]", W: "[a4,c5] a4 [a4,c5]!2 c5 [a4,c5]!2 a4 [a4,c5] c5 [a4,c5] a4 ~@4",
  X: "[c5,e5]@3 ~ [b4,d5] ~ [a4,c5] ~ [b4,d5] ~ [d5,g5]!4 g5 ~", Y: "d5@2 c5@2 d5@2 c5@2 d5 ~ b4 ~@3 [a4,c5] c5",
  Z: "[a4,c5] c5 [a4,c5]!2 c5 ~ g5!10", AA: "~@8 [c4,e4] e4 [c4,e4] c4 [d4,f4]!4",
  AB: "g4 [e4,g4]!2 e4 [e4,g4]!2 g4 [e4,g4] e4 [e4,g4] g4 e4 [e4,g4] g4 e4 ~", AC: "f4!14 ~@2", AD: "g4!8 [g4,a4] a4!7",
  AE: "[g4,b4] b4 [g4,b4]!3 g4 [g4,b4] ~ e5@2 d5@2 c5@2 b4@2", AF: "g4@3 ~@13", AG: "~@4 c5 b4 a4 g4", AH: "f4 ~@3",
  AI: "~@8 e5 ~ d5 ~ c5 ~ b4 ~", AJ: "a4@5 ~@11", AK: "~@8 c5@4 d5@3 ~", AL: "e5 d5 e5 d5 e5 c5 ~ c5",
  AM: "d5@2 c5@2 d5@2 c5@2 d5@2 b4@2 ~@2 c5 [a4,c5]", // Am
  AN: "[a4,c5] a4 [a4,c5] c5 [a4,c5] a4 [a4,c5] c5 [a4,c5] a4 [a4,c5]!3 c5 ~@2", // Am
  AO: "e5 ~ d5 ~ e5@2 d5 ~ e5@2 c5@2 ~@2 c5 ~", AP: "d5@2 c5@2 d5@2 c5@2 d5 ~ b4 ~@3 c5 [a4,c5]",
  AQ: "[a4,c5]!2 c5 [a4,c5]!2 ~ g5!10", AR: "g5!2 ~@14",
})).s("gm_steel_drums").gain(0.36).pan(0.7)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@3 A@2 ~@3 B C ~@5 D E ~@18 F@2 ~@3 B G ~@5 D H ~@26 I@2 ~@3 B C ~>".pickRestart({
  A: "[~@6 g4@13 ~@13]/2", B: "f4 e4 d4 c4", C: "g3@11 ~@5", D: "~ e5", E: "g4@5 ~@3", F: "[~@6 g4@15 ~@11]/2",
  G: "g3@5 ~@3", H: "g4@9 ~@7", I: "[~@3 g4@7 ~@6]/2",
})).s("gm_acoustic_guitar_steel").gain(0.51)

// other · music box
const music_box = note(`<
  A B C D E F G H ~@3 I J ~@8 K L M N O P Q R S ~@2 T U V W X F Y Z ~@3 AA AB ~@8 K AC AD AE O P AF AG AH ~@2 AI AJ P Q
  AG AH ~@2 AK AL AM AN E AO AP AQ AR ~@2
>`.pickRestart({
  A: "~@8 c6@3 ~ d6@3 ~", B: "e6@2 d6@2 e6@2 d6@2 e6@2 c6@2 ~@2 c6 ~", C: "d6@2 c6 ~ d6@2 c6@2 d6@2 b5@2 ~@2 b5 ~",
  D: "[a5,c6] c6 [a5,c6]!4 a5 [a5,c6]!4 ~@5", E: "[c6,e6]@3 ~ [b5,d6] ~ [a5,c6] ~ [b5,d6] ~ [d6,g6]!5 ~",
  F: "e6 ~ d6 ~ e6 ~ d6 ~ e6 ~ c6 ~@3 c6 ~", G: "d6 ~ c6 ~ d6 ~ c6 ~ d6 ~ b5 ~@3 [a5,c6]!2",
  H: "[a5,c6]!4 ~@2 g6!6 g6@2 ~@2", I: "~@8 [c5,e5] e5 [c5,e5]!2 [c5,f5] [d5,f5]!3",
  J: "[e5,g5]!2 g5 [e5,g5]!2 e5 [e5,g5] g5 e5 [e5,g5] g5 e5 g5 ~@3", K: "d5!8 e5!8", L: "f5!13 ~@3", M: "g5!8 a5!8",
  N: "b5!5 b5@2 ~ e6@2 d6@2 c6@2 b5 ~", O: "a5 ~@3", P: "~@4 d6 c6 b5 a5", Q: "g5 ~@3", R: "~@8 c6@2 b5@2 a5@2 g5 ~",
  S: "f5@3 ~@5", T: "~@8 c6@3 ~ d6@2 ~@2", U: "e6@2 d6 ~ e6@2 d6@2 e6@2 c6@3 ~ c6@2",
  V: "d6@2 c6@2 d6@2 c6@2 d6@2 b5@3 ~ c6 [a5,c6]", W: "[a5,c6] a5 [a5,c6]!2 c6 [a5,c6]!2 a5 [a5,c6] c6 [a5,c6] a5 ~@4",
  X: "[c6,e6]@3 ~ [b5,d6] ~ [a5,c6] ~ [b5,d6] ~ [d6,g6]!4 g6 ~", Y: "d6@2 c6@2 d6@2 c6@2 d6 ~ b5 ~@3 [a5,c6] c6",
  Z: "[a5,c6] c6 [a5,c6]!2 c6 ~ g6!10", AA: "~@8 [c5,e5] e5 [c5,e5] c5 [d5,f5]!4",
  AB: "g5 [e5,g5]!2 e5 [e5,g5]!2 g5 [e5,g5] e5 [e5,g5] g5 e5 [e5,g5] g5 e5 ~", AC: "f5!14 ~@2", AD: "g5!8 [g5,a5] a5!7",
  AE: "[g5,b5] b5 [g5,b5]!3 g5 [g5,b5] ~ e6@2 d6@2 c6@2 b5@2", AF: "g5@3 ~@13", AG: "~@4 c6 b5 a5 g5", AH: "f5 ~@3",
  AI: "~@8 e6 ~ d6 ~ c6 ~ b5 ~", AJ: "a5@5 ~@11", AK: "~@8 c6@4 d6@3 ~", AL: "e6 d6 e6 d6 e6 c6 ~ c6",
  AM: "d6@2 c6@2 d6@2 c6@2 d6@2 b5@2 ~@2 c6 [a5,c6]", // Am
  AN: "[a5,c6] a5 [a5,c6] c6 [a5,c6] a5 [a5,c6] c6 [a5,c6] a5 [a5,c6]!3 c6 ~@2", // Am
  AO: "e6 ~ d6 ~ e6@2 d6 ~ e6@2 c6@2 ~@2 c6 ~", AP: "d6@2 c6@2 d6@2 c6@2 d6 ~ b5 ~@3 c6 [a5,c6]",
  AQ: "[a5,c6]!2 c6 [a5,c6]!2 ~ g6!10", AR: "g6!2 ~@14",
})).s("gm_music_box").gain(0.26).pan(0.3)

// chords · flute
const flute = note("<~@12 A B C D@2 ~@27 E F G H@2 ~@34>".pickRestart({
  A: "~@2 [e4,g4] [f4,a4]", B: "[g4,b4]@12 [f4,a4]@2 [g4,b4] ~", C: "[a4,c5]@4 [g4,b4] ~ [f4,a4]@5 ~ [a4,c5]@4",
  D: "[[e4,g4]@23 ~@9]/2", E: "~@8 [e4,g4]@4 [f4,a4]@3 ~", F: "[g4,b4]@11 ~ [f4,a4]@2 [g4,b4] ~",
  G: "[a4,c5]@4 [g4,b4]@2 [f4,a4]@5 ~ [a4,c5]@4", H: "[[e4,g4]@21 ~@11]/2",
})).s("gm_flute").gain(0.31).pan(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  A B C@2 ~ D E@2 ~@13 F G H I J K L@2 M N ~ A O P@2 ~ D Q@2 ~@13 R G S T J U V@2 W N ~ X Y U Z@2 AA AB ~ A O AC@2 ~ AD
  AE@2 ~ AF ~
>`.pickRestart({
  A: "~@8 c6@3 ~ d6@3 ~", B: "e6@2 d6@2 e6@2 d6 ~ e6 ~ c6@3 ~ c6 ~",
  C: "[d6@2 c6@2 d6@2 c6@2 d6 ~ b5@2 ~@2 c6@8 ~@10]/2", D: "e6@2 d6@2 e6@2 d6@2 e6@2 c6 ~@3 c6 ~",
  E: "[d6@2 c6 ~ d6 ~ c6 ~ d6 ~ b5@2 ~@2 c6@5 ~@3 g6@6 ~@4]/2", F: "[d5,d6]@8 [e5,e6]@7 ~", G: "[f5,f6]@11 ~@5",
  H: "[g5,b5]@7 ~ [a5,c6]@6 ~@2", I: "[b5,d6]@3 ~@3 g5 ~ [c6,e6] ~ [b5,d6] ~ [a5,c6] ~ [g5,b5] ~",
  J: "[f5,a5]@11 ~ [c6,e6] ~ [c6,e6]@2", K: "~@2 [b5,d6]@5 ~ [b5,d6]@2 [a5,c6] ~ [g5,b5] ~ [f5,a5] ~",
  L: "[[e5,g5]@11 ~ [b5,d6] ~ [a5,c6]@8 ~@2 [a5,c6] ~ [g5,b5]@2 [f5,a5] ~ [e5,g5] ~]/2", // Em Bm Am G F Em
  M: "[d5,f5]@11 ~ [a5,c6] ~ [a5,c6]@2", N: "[g5,b5]@3 ~", O: "e6@2 d6@2 e6@2 d6@2 e6@2 c6 ~@3 c6@2",
  P: "[d6@2 c6@2 d6@2 c6@2 d6@2 b5@2 ~@2 c6@9 ~@9]/2", Q: "[d6@2 c6@2 d6@2 c6@2 d6@2 b5@2 ~@2 c6@7 ~ g6@6 ~@4]/2",
  R: "[d5,d6]@7 ~ [e5,e6]@7 ~", S: "[g5,b5]@7 ~ [a5,c6]@7 ~",
  T: "[b5,d6]@4 ~@2 g5 ~ c6@2 d6@2 [a5,c6] ~ [g5,b5] ~, ~@8 e6 ~ b5 ~@5", // Bm Am G
  U: "~@2 [b5,d6]@5 ~ [b5,d6]@2 [a5,c6]@2 [g5,b5] ~ [f5,a5] ~", // Bm Am G F
  V: "[[e5,g5]@10 ~@2 [b5,d6]@2 [a5,c6]@8 ~@2 [a5,c6]@2 [g5,b5]@2 [f5,a5] ~ [e5,g5] ~]/2", // Em Bm Am G F Em
  W: "[d5,f5]@11 ~ [a5,c6] ~ a5@2, ~@14 c6 ~", X: "~@6 g5 ~ [c6,e6]@2 [b5,d6] ~ [a5,c6] ~ [g5,b5] ~",
  Y: "[f5,a5]@10 ~@2 [c6,e6] ~ [c6,e6]@2", // F C
  Z: "[[e5,g5]@10 ~@2 [b5,d6]@2 [a5,c6]@7 ~@3 [a5,c6]@2 [g5,b5]@2 [f5,a5] ~ [e5,g5] ~]/2", // Em Bm Am G F Em
  AA: "[d5,f5]@11 ~ [a5,c6] ~ [a5,c6] ~", AB: "[g5,b5]@13 ~@3", AC: "[d6@2 c6@2 d6@2 c6@2 d6@2 b5@2 ~@2 c6@7 ~@11]/2",
  AD: "e6 d6 e6 d6 e6 c6 ~ c6", AE: "[d6@2 c6@2 d6@2 c6@2 d6@2 b5@2 ~@2 c6@5 ~@3 g6@6 ~@4]/2", AF: "[c5,e5,c6]@9 ~@7",
})).s("gm_string_ensemble_1").gain(0.26)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~ A B C@2 A B C@2 A D A@2 B C E A D@2 A@2 F G H@2 C H B I J H K L A M D@2 A M D@2 A D A@2 B C E A D@2 A@2 F@2 H N C H
  B I F H K O C H B P F Q K R A M D@2 A M D@2 S ~
>`.pickRestart({
  A: "~@2 [g3,c4,e4]!2 ~@2 [g3,c4,e4]!2 ~@2 [g3,c4,e4]!2 ~@2 [g3,c4,e4]!2", // C
  B: "~@2 [b3,e4,g4]!2 ~@2 [b3,e4,g4]!2 ~@2 [b3,e4,g4]!2 ~@2 [b3,e4,g4]!2", // Em
  C: "~@2 [c4,f4,a4]!2 ~@2 [c4,f4,a4]!2 ~@2 [c4,f4,a4]!2 ~@2 [c4,f4,a4]!2", // F
  D: "~@2 [a3,c4,f4]!2 ~@2 [a3,c4,f4]!2 ~@2 [a3,c4,f4]!2 ~@2 [a3,c4,f4]!2", // F
  E: "~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4]!2", // C
  F: "~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4]!2", // Dm
  G: "~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~", // Dm
  H: "~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4]!2", // G
  I: "~@2 [c4,e4,a4]!2 ~@2 [c4,e4,a4]!2 ~@2 [c4,e4,a4]!2 ~@2 [c4,e4,a4]!2", // Am
  J: "~@2 [d4,f4,a4]!2 ~@2 [d4,f4,a4]!2 ~@2 [d4,f4,a4]!2 ~@2 [d4,f4,a4]!2", // Dm
  K: "~@2 [f3,a3,c4,e4]!2 ~@2 [f3,a3,c4,e4]!2 ~@2 [f3,a3,c4,e4]!2 ~@2 [f3,a3,c4,e4]!2", // Fmaj7
  L: "~@2 [g3,b3,d4,g4]!2 ~@2 [g3,b3,d4,g4]!2 ~@2 [g3,b3,d4,g4]!2 ~@2 [g3,b3,d4,g4]!2", // G
  M: "~@2 [g3,b3,e4]!2 ~@2 [g3,b3,e4]!2 ~@2 [g3,b3,e4]!2 ~@2 [g3,b3,e4]!2", // Em
  N: "~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4,a4] [b3,d4,g4] ~@2 [b3,d4,g4]!2", // G
  O: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4,g4]!2 ~@2 [g3,b3,d4,g4]!2 ~@2 [b3,d4,g4]!2", // G
  P: "~@2 [a3,c4,e4]!2 ~@2 [a3,c4,e4]!2 ~@2 [a3,c4,e4]!2 ~@2 [a3,c4,e4]!2", // Am
  Q: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4,g4]!2 ~@2 [g3,b3,d4]!2", // G
  R: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2", S: "[g3,c4,e4]@5 ~@11",
})).s("gm_electric_guitar_muted").gain(0.31)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!80 x ~>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!80 ~@2>").gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<~ [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]!80 x ~>").gain(0.26)

// drums · crash
const crash = s("cr").struct("<~ A ~@23 A ~@7 A ~@23 A ~@7 A ~@7 A ~@3 A ~@3 A ~>".pickRestart({
  A: "x",
})).gain(0.26)

// drums · ht
const ht = s("ht").struct(`<
  A ~@3 B C ~ D E ~@13 A D F ~@6 G H ~@3 I ~@2 D J ~@7 K ~@3 D ~ L M N ~@5 O ~ P ~@5 Q ~ R ~@2 S T ~@2 D U ~@2
>`.pickRestart({
  A: "~@11 x!4 ~", B: "~@3 x!4 ~@9", C: "~@11 x ~@4", D: "~@15 x", E: "x!3 ~@4 x ~@3 x ~@3 x",
  F: "x ~ x ~@4 x!2 ~@2 x ~@4", G: "~@10 x!2 ~ x ~@2", H: "~@3 x!2 ~@6 x!2 ~@3", I: "~@6 x!2 ~ x ~@5 x",
  J: "x!2 ~@9 x ~@4", K: "~@7 x!3 ~@5 x", L: "~@7 x!3 ~@6", M: "~@14 x!2", N: "x!2 ~ x!2 ~@6 x!4 ~", O: "~@11 x ~ x!3",
  P: "~@3 x!2 ~@6 x!2 ~@2 x", Q: "~@11 x!2 ~ x!2", R: "~ x!4 ~@6 x!2 ~@2 x", S: "~@13 x!2 ~", T: "~@10 x!2 ~@4",
  U: "x ~ x ~@4 x!2 ~@5 x!2",
})).gain(0.36)

// drums · mt
const mt = s("mt").struct(`<
  ~@4 A ~@3 B ~@15 C ~@7 D ~@3 E ~@3 F ~@7 G ~@5 H ~ I ~@7 J ~@7 K ~@3 L ~@3 M ~@2
>`.pickRestart({
  A: "~@11 x ~@4", B: "~ x", C: "~@5 x ~@6 x!3 ~", D: "~@7 x!2 ~@4 x!2 ~", E: "~@5 x ~@2", F: "~@7 x!2 ~@6 x",
  G: "~@11 x!2 ~@3", H: "~@11 x!2 ~@2 x", I: "~@7 x!2 ~@7", J: "~@6 x!3 ~@7", K: "~@7 x!3 ~@6", L: "~@3 x ~@11 x",
  M: "~@10 x!3 ~@3",
})).gain(0.36)

// drums · shaker
const shaker = s("sh").struct("<~ [~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2]!79 ~@3>").gain(0.26)

// drums · claves
const claves = s("clave:2").struct(`<
  ~ A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
  A: "~@8 x ~@2 x ~@4",
})).gain(1.76)

stack(
  bass, string_ensemble_1, steel_drums, acoustic_guitar_steel, music_box, flute, string_ensemble_1_2,
// … 2 more lines

More by Roy Black