Strudelify

Bisogna saper perdere

Dalla

KeyB minorTempo140 bpm
0:00/0:00
// Bisogna saper perdere — Dalla
// 140 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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
const bass = note(`<
  ~ A B C@2 D E F G F H F I J F@2 K L M N O P O Q R@2 S T F I J F@2 K L M N O P O Q R@2 S U V@2 W@2 X Y W Z F I J F@2 K
  L M N O P O Q R@2 S U V@2 W@2 X Y W Z F I J F@2 K L M N O P O N O AA N T AB B AC@2 N O P O N O P O AD ~
>`.pickRestart({
  A: "b1", B: "e2@15 ~", C: "b1/2", D: "b1@2 ~@2 f#1@2 ~@2 b1@3 ~ f#1 ~ a1 ~", E: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~",
  F: "b1@3 ~ f#1@3 ~ b1@3 ~ f#1 ~ a1 ~", G: "e2@3 ~ b1@3 ~ e2@3 ~ e2 ~ d2 ~", H: "b1@3 ~ f#1@3 ~ b1@2 ~@2 f#1 ~ a1 ~",
  I: "b1@2 ~@2 f#1@3 ~ b1@3 ~ f#1 ~ a1 ~", J: "e2@2 ~@2 b1@3 ~ e2@3 ~ e2 ~ d2 ~",
  K: "b1@3 ~ f#1@3 ~ b1@2 ~ b1 f#1 ~ a1 ~", L: "e2@3 ~ b1@3 ~ a1@3 ~ e2@3 ~", M: "d2@3 ~ f#2@3 ~ a2@3 ~ f#2@3 ~",
  N: "f#1@3 ~ f#1@3 ~ f#1@2 ~@2 f#1@3 ~", O: "b1 f#1 b1 c#2 e2 d2 c#2 b1", P: "f#1@3 ~ f#1@3 ~ f#1@3 ~ f#1@3 ~",
  Q: "f#1 ~ f#1 ~@5", R: "b1 ~ b1!2 f#1 ~ f#1!2 b1 ~ b1!2 f#1 ~ f#1!2",
  S: "f#2 ~ f#2!2 c#2 ~ c#2!2 f#2 ~ f#2!2 c#2 ~ c#2!2", T: "f#2 e2 d2 c#2", U: "f#2@3 ~ f#2@3 ~ f#2@3 ~ f#2@3 ~",
  V: "b1@5 ~ b1 ~ b1@7 ~", W: "f#2 ~ f#2!3 ~ f#2!3 ~ f#2!3 ~ f#2!2", X: "b1 ~ b1!3 ~ b1!3 ~ b1!3 ~ b1!2",
  Y: "g2 ~ g2!3 ~ g2!3 ~ g2!3 ~ g2!2", Z: "f#2 c#2 f#2 e2 f#2 e2 d2 c#2", AA: "g1@3 ~ g1@3 ~ g1@2 ~@2 g1@3 ~",
  AB: "b1@15 ~", AC: "b1@2 f#1!2 b1@2 f#1!2 b1@2 f#1!2 b1@2 f#1!2", AD: "f#1 ~ f#1 ~@2 f#1 ~ b1",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@10 A@7 B@2 C D C D E@5 F@8 C D C D G@4 H@7 I@2 J@8 C D C D G@4 K@7 L M N@8 C D C D O D P@7 C D C D C D C D Q ~
>`.pickRestart({
  A: "[~@8 e4@2 ~@2 d4@2 ~@2 [f#3,d4,f#4]@28 ~@4 e4@14 ~@2 f#4@4 ~@2 c#4@2 d4@2 e4@2 f#4@3 ~ f#4@10 b3@2 d4 ~ [b3,d4,f#4]@15 ~@2 [e3,g3], ~@4 b3@9 ~ b3@30 ~@3 [g3,b3]@15 a3@16 ~@34, ~@6 d4@4 f#4@5 ~@47 b3@5 ~ b3@10 ~ [b3,d4]@10 ~@21 [b3,e4]@2, ~@63 d4@5 ~@44]/7", // D Bm Em G Bm E5
  B: "[[g3,b3,e4]@5 ~ [g3,b3,e4]@2 [a2,a3,c#4,e4]@6 [a3,d4]@4 ~@2 d4@2 ~@2 d4@2 ~@2 [d3,f#3,d4]@4, ~@14 [d3,f#3]@13 ~@5, ~@18 a3@7 ~ a3@6, ~@11 f#4@3 ~@2]/2", // Em A D5 D
  C: "[f#3,a#3,c#4]@3 ~ [f#3,a#3,c#4]@3 ~@9", D: "~ f#3 b3 c#4 e4 d4 c#4 b3",
  E: "[[f#3,a#3,c#4]@2 ~@2 [f#3,a#3,c#4]@2 ~@10 f#4@14 ~@2 e4@14 ~@4 e3@2 ~@11 c#4 [f#3,c#4,f#4]@3 ~ [c#4,e4]@3 ~ d4@3 ~ c#4@4, ~@14 f#3@15 ~@18 a#3@7 ~@8 a#3@4 ~ [f#3,a#3]@3 ~ [f#3,a#3]@3 ~ f#3@4 ~, ~@15 [b3,d4]@15 ~ [b3,d4]@15 ~ c#4@9 ~@24, ~@48 f#4@11 ~@13 f#4@7 ~]/5", // F# F#5 C#m F# Bm
  F: "[[b3,d4,f#4]@28 ~@4 e4@14 ~@8 c#4@2 d4@2 e4@2 f#4@3 ~ f#4@10 b3@2 d4 ~ [b3,d4,f#4]@15 ~@2 g3 [g3,b3,e4]@5 ~ [g3,b3,e4]@2 [a2,a3,c#4,e4]@6 [a3,d4]@4 ~@2 d4@2 ~@2 d4@2 ~@2 [d3,f#3,d4,f#4]@4, ~@31 [g3,b3]@15 a3@16 ~@33 e3@6 ~@9 [d3,f#3]@13 ~@5, ~@46 b3@5 ~ b3@10 ~ [b3,d4]@10 ~@21 [b3,e4]@2 ~@18 a3@7 ~ a3@6, ~@47 d4@5 ~@76, ~@24 f#4@3 ~@32 f#4@3 ~@2]/8", // Bm Em A D5 D G D Bm …
  G: "[[f#3,a#3,c#4]@2 ~@2 [f#3,a#3,c#4]@2 ~@10 f#4@14 ~@2 e4@14 ~@4 e3@2 ~@11 c#4, ~@14 f#3@15 ~@18 a#3@7 ~@8 a#3@2, ~@15 [b3,d4]@15 ~ [b3,d4]@15 ~ c#4@9 ~@8, ~@48 f#4@11 ~@5]/4", // F# Bm
  H: "[[f#3,c#4,f#4]@3 ~ [c#4,e4]@3 ~ d4@3 ~ [c#4,f#4]@3 ~ e4@5 ~ [f#3,b3,d4] ~ [f#3,b3,d4]@7 ~ e4@5 ~ [f#3,b3,d4] ~ [f#3,b3,d4]@5 ~@7 a#3@2 ~@4 c#4@2 ~@8 c#4@2 ~@6 f#3@2 ~@2 e4@5 ~ [f#3,b3,d4] ~ [f#3,b3,d4]@5 ~ [g3,d4] b3 [b3,d4]@6 ~@4 d4@3 ~@2 c#4, ~@3 [f#3,a#3]@3 ~ [f#3,a#3]@3 ~ f#3@4 [f#3,b3]@6 ~@10 [f#3,b3]@6 ~@9 [f#3,a#3]@5 ~@3 f#3@9 ~ f#3@10 a#3@4 ~ [f#3,b3]@6 ~@10 g3@6 ~ g3@8 ~@2, ~@4 f#4@7 ~@36 c#4@8 ~ a#3@6 c#4@4 a#3@6 c#4@6 ~@26 b3@6 a#3@2, ~@48 f#4@7 ~@5 f#4@7 ~@3 f#4@8 ~@34]/7", // F#5 C#m F#5 Bm G5 Bm F# B5 …
  I: "[[a#3,c#4,f#4]@4 ~@2 c#4@3 ~ [c#4,f#4]@2 f#3@2 ~ c#4 [f#3,c#4,f#4]@3 ~ [c#4,e4]@3 ~ d4@3 ~ c#4@4, f#3@11 ~@8 [f#3,a#3]@3 ~ [f#3,a#3]@3 ~ f#3@4 ~, ~@4 a#3@5 ~@5 a#3@4 ~@6 f#4@7 ~]/2", // F# F#5 C#m F#
  J: "[[b3,d4,f#4]@28 ~@4 e4@14 ~@2 f#4@4 ~@2 c#4@2 d4@2 e4@2 f#4@3 ~ f#4@10 b3@2 d4 ~ [b3,d4,f#4]@15 ~@2 g3 [g3,b3,e4]@5 ~ [g3,b3,e4]@2 [a2,a3,c#4,e4]@6 [a3,d4]@4 ~@2 d4@2 ~@2 d4@2 ~@2 [d3,f#3,d4,f#4]@4, ~@31 [g3,b3]@15 a3@16 ~@33 e3@6 ~@9 [d3,f#3]@13 ~@5, ~@46 b3@4 ~@2 b3@10 ~ [b3,d4]@10 ~@21 [b3,e4]@2 ~@18 a3@7 ~ a3@6, ~@47 d4@5 ~@66 f#4@6 ~@4]/8", // Bm Em A D5 D G D Bm …
  K: "[[f#3,c#4,f#4]@3 ~ [c#4,e4]@3 ~ d4@3 ~ [c#4,f#4]@3 ~ e4@5 ~ [f#3,b3,d4] ~ [f#3,b3,d4]@7 ~ e4@5 ~ [f#3,b3,d4] ~ [f#3,b3,d4]@5 ~@7 a#3@2 ~@4 c#4@2 ~@8 c#4@2 ~@6 f#3@2 ~@2 e4@5 ~ [f#3,b3,d4] ~ [f#3,b3,d4]@5 ~@3 d4@5 ~@5 d4@3 ~@2 c#4, ~@3 [f#3,a#3]@3 ~ [f#3,a#3]@3 ~ f#3@4 [f#3,b3]@6 ~@10 [f#3,b3]@6 ~@9 [f#3,a#3]@5 ~@3 f#3@9 ~ f#3@11 ~@4 [f#3,b3]@6 ~@9 g3@7 ~ g3@7 ~@3, ~@4 f#4@7 ~@36 c#4@8 ~ a#3@6 c#4@4 a#3@6 ~@2 a#3@4 ~@17 b3@6 ~@3 b3@6 a#3@2, ~@48 f#4@7 ~@5 f#4@7 ~@3 f#4@8 ~@34]/7", // F#5 C#m F#5 Bm F# B5 F# B5
  L: "[a#3,c#4,f#4]@4 ~@2 c#4@3 ~@3 f#3@3 ~, f#3@11 ~@5, ~@4 a#3@5 ~ [c#4,f#4]@5 ~", M: "f#4 c#4 f#4 e4 f#4 e4 d4 c#4",
  N: "[[b3,d4,f#4]@28 ~@4 e4@14 ~@2 f#4@4 ~@2 c#4@2 d4@2 e4@2 f#4@3 ~ f#4@10 b3@2 d4 ~ [b3,d4,f#4]@15 ~@2 g3 [g3,b3,e4]@5 ~ [g3,b3,e4]@2 [a2,a3,c#4,e4]@6 [a3,d4]@4 ~@2 d4@2 ~@2 d4@2 ~@2 [d3,f#3,d4,f#4]@4, ~@31 [g3,b3]@15 a3@16 ~@33 e3@6 ~@9 [d3,f#3]@13 ~@5, ~@46 b3@5 ~ b3@10 ~ [b3,d4]@10 ~@21 [b3,e4]@2 ~@18 a3@7 ~ a3@6, ~@47 d4@5 ~@66 f#4@6 ~@4]/8", // Bm Em A D5 D G D Bm …
  O: "[f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~@5", // F#
  P: "[[g3,b3,d4]@12 ~@4 [a#3,c#4]@14 ~ c#4 [f#3,c#4,f#4]@3 ~ [c#4,e4]@3 ~ d4@3 ~ c#4@3 ~ [d4,f#4]@14 ~@2 [b3,e4]@14 ~@2 [d4,f#4]@31 ~, ~@15 f#3@14 ~ a#3@4 ~ [f#3,a#3]@3 ~ [f#3,a#3]@3 ~ f#3@4 [f#3,b3]@15 ~ [e3,g#3]@15 ~ [f#3,b3]@31 ~@2, ~@20 f#4@3 ~@33]/7", // G A#m F#5 C#m D E5 D F# …
  Q: "[f#3,a#3,c#4,f#4] ~ [f#3,a#3,c#4,f#4] ~@2 [f#3,a#3,c#4,f#4] ~ [b2,b3,d4,f#4]", // F# Bm
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.7)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@15 A ~@8 B@2 C D E@2 ~@2 A ~@8 B@2 C D ~@5 F G D E@2 ~@2 A ~@8 B@2 C D ~@3 H ~ F I ~ E@2 ~@2 A ~@11 D ~@14
>`.pickRestart({
  A: "~@5 a3 ~@2", B: "[~@7 f#3@8 ~]/2", C: "f#3 ~@2 g#3 a#3 b3 c#4 ~, ~ f#3@2 ~", D: "~@11 a#3@4 ~", E: "[f#3@7 ~]/2",
  F: "~@7 f#4", G: "~@10 a#3@3 ~@3", H: "~@4 c#4@3 ~", I: "~@10 a#3@5 ~",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  ~ A@8 B@2 C@8 D E D E F@4 G C@8 D E D E F@4 H@4 I@3 J K C@8 D E D E L@4 H@4 I@3 J M C@8 D E D E D E N O P@5 D E D E D
  E D E Q ~
>`.pickRestart({
  A: "[~ [d4,f#4]@13 ~@2 e4@14 ~@2 f#4@30 ~@2 f#4@14 ~@2 e4@14 ~@2 f#4@4 [a3,d4,f#4] ~ [a3,d4,f#4]@6 [a3,d4,f#4]@2 [a3,d4,f#4] ~ [e2,b3,e4]@4 [g#3,b3,e4] ~ [e2,g#3,b3,e4]@5 ~ [e2,g#3,b3,e4]@2 [g#3,b3,e4] ~, [b2,a3]@14 e2@15 ~ b2@31 ~ b2@16 e2@16 b2@6 ~@2 b2@8 ~@18, ~@15 [g#3,b3]@15 ~ [b3,d4]@31 ~ [b3,d4]@15 ~ [g#3,b3]@15 ~ [a3,d4]@5 ~@11 g#3@4 ~@13]/8", // D E5 E B7 G#m Bm G#m D5
  B: "[[b2,b3,d4,f#4]@4 [b3,d4,f#4] ~ [b2,b3]@10 ~@4 d4@2 ~@6 b2@2 d4@2, ~@3 [d4,f#4]@6 b3@3 d4@2 ~@2, ~@8 b2@5 b3@3, ~@22 f#4@9 ~]/2", // Bm B D
  C: "[[b3,d4,f#4]@3 ~ [b3,d4,f#4]@2 [b2,b3,d4,f#4]@4 [b2,b3,d4,f#4]@3 ~ [b2,a3]@6 [a3,d4,f#4]@2 [a3,d4,f#4]@4 [a3,d4,f#4]@2 [a3,d4,f#4] ~@3 e4@2 g3@2 b3 ~ [g3,b3,e4]@2 ~@2 [g3,b3,e4]@3 ~ [b3,d4,f#4]@4 ~@4 c#4@2 d4@2 e4@2 f#4@2 ~@2 f#4@4 [b3,d4,f#4]@2 [b3,d4,f#4]@4 [b3,d4,f#4] ~@3 [a3,d4,f#4]@5 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 ~@2 b4@4 [b3,e4,g4,b4]@3 ~ [e4,a4]@4 [a3,c#4,e4]@2 ~@2 d3@3 ~@5 d4@2 ~@2 d4@2 a3 ~, b2@6 ~@8 [d4,f#4]@5 ~@3 b2@8 g3@4 ~@62 e3@7 ~@9 [d4,f#4]@6 ~@4 f#4@5 ~, ~@31 [b3,e4]@2 ~@19 b3@9 ~ b3@5 ~@28 [b3,e4,g4]@5 ~@3 [a3,c#4]@5 ~@3 a3@5 ~@2 a3@7 ~@3, ~@32 e2@7 ~ e2@5 ~ b2@16 ~ [b2,d4]@4 ~ b2@8 ~@2 b2@11 ~ b2@4 ~@10 a2@7 ~@5 d3@11 ~]/8", // Bm B7 D Em Bm D Em A5 …
  D: "[f#2,f#3,a#3,c#4]@3 ~ [f#3,a#3,c#4]@2 f#2 ~ [f#3,a#3] [f#2,f#3] [f#3,a#3,c#4]@3 ~ [b2,f#3,b3,d4]@2, ~@4 f#2 ~@11", // F# Bm
  E: "~@2 [b2,f#3] [b2,f#3,b3] [f#3,b3,d4]@2 [b2,f#3] ~ [f#3,b3] [b2,f#3] [f#3,b3,d4]@2 [b2,f#3,b3] ~ [f#2,f#3,b3,d4] ~", // B5 Bm B5 Bm B5 Bm
  F: "[[f#2,f#3,a#3,c#4]@2 ~@2 [f#2,f#3,a#3,c#4]@2 ~@10 d4@14 ~@2 e4@14 ~@2 c#4@15 ~, ~@14 b2@16 b2@15 ~ f#2@17 ~, ~@15 [f#3,b3]@15 ~ [f#3,b3]@15 ~ [f#3,a#3]@16 ~]/4", // F# B5 F#
  G: "f#4 e4 d4 c#4, [f#3,a#3]", // F#
  H: "[f#4@4 e4@4 d4@4 c#4@3 ~ [b3,e4]@6 [f#3,b3,d4] ~ [f#3,b3,d4]@6 ~@2 [b3,e4]@5 ~ [f#3,b3,d4] ~ [b3,d4]@2 c#4@2 ~@4 c#4@12 a#3@2 c#4@2, [f#3,a#3]@15 b2@15 ~ b2@14 b3@2 f#3@16 ~, ~@15 f#3@6 ~@10 f#3@6 ~@3 f#3@6 f#2@16 ~@2, ~@47 a#3@12 ~@5]/4", // E5 Bm E5 Bm F#
  I: "[~@2 f#3@2 ~@4 a#3@2 ~@2 a#3@2 ~@2 e4@4 ~@2 [f#3,b3,d4] ~ [f#3,b3,d4]@6 ~@2 d4@5 ~@3 b3@2 ~@2 b3@2 d4 ~, f#2@14 b2@15 ~@2 b3@7 d4@8 ~@2, ~@4 a#3@4 ~@2 c#4@4 ~@17 a3@9 ~@8, ~@6 f#3@9 [f#3,b3]@4 ~@11 g3@10 ~@2 g3@5 ~, ~@32 g2@15 ~]/3", // Bm B5
  J: "f#3@4 ~@2 f#3@4 a#3 ~ f#3@2 g#3@2, [f#2,c#4]@15 ~, a#3@7 ~@9, ~@4 c#3@11 ~", // F#5
  K: "[c#4,f#4]@2 a#3 ~ [c#4,f#4]@2 a#3 ~ [c#4,f#4]@2 a#3 ~ [c#4,f#4]@2 a#3 ~, f#2@7 ~ f#2@7 ~", // F#5
  L: "[[f#2,f#3,a#3,c#4]@2 ~@2 [f#2,f#3,a#3,c#4]@2 ~@10 d4@14 ~@2 e4@14 ~@2 c#4@15 ~, ~@14 b2@16 b2@16 f#2@17 ~, ~@15 [f#3,b3]@15 ~ [f#3,b3]@15 ~ [f#3,a#3]@16 ~]/4", // F# B5 F#
  M: "f#3 ~ f#3 e3 f#3 e3 d3 c#3, f#2@7 ~ f#2@7 ~, ~@2 c#3@5 ~@9",
  N: "[g2,d3,g3,b3,e4]@2 [g3,b3,e4]!2 [g2,d3,g3,b3,e4]@2 [g3,b3,e4]!2 [g2,d3,g3,b3,e4]@2 [g3,b3,e4]!2 [g2,d3,g3,b3,e4]@2 [g3,b3,e4]!2", // Em7 Em Em7 Em Em7 Em Em7 Em
  O: "[f#2,c#3,f#3,a#3,f#4]@2 [f#3,a#3,f#4]!2 [f#2,c#3,f#3,a#3,f#4]@2 [f#3,a#3,f#4]!2 [f#2,c#3,f#3,a#3,f#4]@2 [f#3,a#3,f#4]!2 [f#2,c#3,f#3,a#3,f#4]@2 [f#3,a#3,f#4]!2", // F#
  P: "[f#4@2 e4@2 d4@2 c#4 ~ f#4@7 ~ e4@7 ~ f#4@15 ~, [f#3,a#3]@14 b2@15 ~ e2@15 ~ b2@31 ~@3, ~@15 [a3,d4]@15 ~ [g#3,b3]@15 ~ [b3,d4]@31 ~@2]/5", // F# D5 G#m Bm
  Q: "[f#2,f#3,a#3,c#4]@3 ~ [f#2,f#3,a#3,c#4]@4 ~@2 [f#2,f#3,a#3,c#4]@3 ~ [b2,f#3,b3,d4]@2", // F# Bm
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.3)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@3 A@2 B C B D A@2 E ~@29 A C F G A@2 G@2 A H I G E ~@12 A C F G A@2 G@2 A H I G E ~@30
>`.pickRestart({
  A: "b2 ~ b2!3 ~ b2!3 ~ b2!3 ~ b2!2", B: "b2 ~ b2!2 f#2 ~ f#2!2 b2 ~ b2!2 f#2 ~ f#2!2",
  C: "e3 ~ e3!3 ~ e3!3 ~ e3!3 ~ e3!2", D: "e3 ~ e3!2 b2 ~ b2!2 e3 ~ e3!3 ~ e3!2", E: "b2 ~@15",
  F: "f#3 ~ f#3!2 c#3 ~ c#3!2 f#3 ~ f#3!2 c#3 ~ c#3!2", G: "f#3 ~ f#3!3 ~ f#3!3 ~ f#3!3 ~ f#3!2",
  H: "g2 ~ g2!3 ~ g2!3 ~ g2!3 ~ g2!2", I: "f#2 ~ f#2!3 ~ f#2!3 ~ f#2!3 ~ f#2!2",
})).s("gm_electric_guitar_muted").gain(0.22)

// other · timpani
const timpani = note(`<
  ~@19 A ~ A ~ A ~@12 A ~ A ~ A ~@20 A ~ A ~ A ~@20 A ~ A ~ A ~@8 A ~ A ~ A ~ A ~ B ~
>`.pickRestart({
  A: "f#2 ~@3 f#2 ~@11", B: "f#2 ~@3 f#2 ~@5 f#2 ~@3 b2 ~",
})).s("gm_timpani").gain(0.5).pan(0.7)

// chords · pad warm
const pad_warm = note(`<
  ~@11 A@4 B@3 C D E D E F ~@4 A@4 B@3 C D E D E F ~@12 A@4 B@3 C D E D E F ~@12 A@4 B@3 C D E D E D G@2 H@2 ~@4 D E D E
  D E D E I ~
>`.pickRestart({
  A: "[[d4,f#4]@32 [e4,g4]@16 [d4,f#4]@15 ~, b4@63 ~]/4", B: "[[d4,f#4]@31 ~ [e4,g4]@8 [c#4,e4,a4]@8, b4@5 ~]/3",
  C: "[d4,f#4,a4]", D: "[c#4,f#4,a#4]", E: "[d4,f#4,b4]", F: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@5",
  G: "[f#4@15 ~ g4@16, [d4,b4]]/2", H: "[c#4,f#4,a#4]/2",
  I: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@2 [c#4,f#4,a#4] ~ [d4,f#4,b4]", // F# Bm
})).s("gm_pad_warm").gain(0.09)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@3 ~ B@6 C@8 D@4 E C@2 F C@9 D@4 E C@2 F C B@8 C@8 D@4 E C@2 F C B@8 C@8 D@8 B@5 D@8 G ~
>`.pickRestart({
  A: "x", B: "x!4", C: "x ~@2 x!2 ~@3", D: "~@3 x ~ x ~ x", E: "x!2 ~@2", F: "x ~@2 x!2 ~@2 x", G: "x ~ x ~@2 x ~ x",
})).gain(0.69)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@19 A ~ A ~ A ~@12 A ~ A ~ A ~@4 B C D E F G H I ~@8 A ~ A ~ A ~@4 C J F J K B E I ~@8 A ~ A ~ A ~@3 A ~@4 A ~ A ~ A
  ~ A ~@3
>`.pickRestart({
  A: "x!2 ~@2", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~@2 x!2 ~@2 x!2 ~ x!3 ~@2 x",
  D: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~ x!2", E: "x ~@2 x!2 ~ x!3 ~ x!3 ~@2 x", F: "x ~ x!3 ~@2 x!2 ~@2 x!2 ~ x!2",
  G: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x", H: "x ~ x!3 ~ x!3 ~@2 x!2 ~ x!2", I: "~@11 x!2 ~ x!2",
  J: "x ~ x!3 ~@2 x!2 ~@2 x!2 ~@2 x", K: "x ~ x!3 ~@2 x!2 ~ x!3 ~ x!2",
})).gain(0.38)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@46 A B C D E F ~@18 A G D G H ~ C ~@32>".pickRestart({
  A: "~ x ~ x ~@3 x", B: "~ x ~ x ~ x ~@2", C: "~ x ~@5 x", D: "~@3 x ~ x ~@2", E: "~ x ~ x ~ x ~ x", F: "~@5 x ~@2",
  G: "~@3 x ~ x ~ x", H: "~@3 x ~@4",
})).gain(0.23)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@5 A B C@3 B D B E ~ F@2 A B A B G H B C@3 B D B E ~ F@2 A B A B G H B C@3 B ~@8 D B E ~ F@2 A B A B G H B C@3 B ~@8
  D B E ~ F@2 A B A B G H A B G H B C@3 B A B G H A B G H ~@2
>`.pickRestart({
  A: "~@3 x ~ x ~@2", B: "~ x ~@6", C: "~ x ~ x ~ x ~ x", D: "~@7 x", E: "~ x ~@5 x", F: "~@5 x ~@2",
  G: "~ x ~ x ~@3 x", H: "~ x ~@3 x ~@2",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~@52 [~@4 x ~ x!3 ~ x ~@5] ~@24 [~@4 x ~ x!3 ~ x ~@5] ~@16 [~@6 x!2] ~@14>").gain(0.69)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@6 A ~@3 B ~@3 A ~@7 A ~@4 B ~@3 A ~@7 A ~@4 B ~@11 A ~@7 A ~@4 B ~@11 A ~@7 A ~@3 A ~@4 B ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@7 x", B: "~ x",
})).gain(0.61)

// drums · high tom
const high_tom = s("ht").struct("<~@52 [x ~ x!2 ~@12] ~@24 [x ~ x!2 ~@12] ~@16 [~@5 x ~@2] ~@14>").gain(0.61)

// drums · crash
const crash = s("cr").struct(`<
  ~ A@3 ~@7 A ~@7 A ~@8 A ~@7 A ~@7 B ~@8 A ~@7 A ~@7 B ~@8 A ~@7 A ~@3 A ~@8 A ~@3 A ~@3 C ~
>`.pickRestart({
  A: "x", B: "~@7 x", C: "x ~ x ~@2 x ~ x",
})).gain(0.61)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@5 A@6 ~@8 B@4 C D@3 B ~@8 B@4 C D@3 B ~@16 B@4 C D@3 B ~@16 B@8 C A@3 E B@8 ~@2
>`.pickRestart({
  A: "x!4", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~ x!3 ~@11", D: "x ~@2 x!2 ~@2 x", E: "x!3 ~",
})).gain(0.61)

stack(
  bass, acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3, electric_guitar_muted, timpani,
  pad_warm, kick, low_tom, low_tom_soft, hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, tambourine
)

More by Dalla