Strudelify

Hijo De La Luna

Mecano

KeyC minorTempo164 bpm
0:00/0:00
// Hijo De La Luna — Mecano
// 164 bpm, 3/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 257 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(164/3)

// 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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@100 A B A C A B A C D E F G H G I@3 J A G H G K@2 A J L M D N E A O P Q M D R@2 A G P Q A Q A J A S T U V W@4 F Q X
  Y F M A Z F M F C D J F G H G K@2 AA J A O H G K@2 A J L M D N E A O P Q M D R@2 A G P Q A Q A J A S T U V W@4 F Q X Y
  ~@16 AB J AC@2 H O AD@4 A Q H AE@4 ~@4
>`.pickRestart({
  A: "c3", B: "f3@15 ~", C: "b2", D: "eb3", E: "d3", F: "c3@15 ~", G: "bb2", H: "ab2", I: "[c3@2 eb3]/3", J: "d3@15 ~",
  K: "c3/2", L: "g3@15 ~", M: "f3", N: "d3@7 ~", O: "bb2@15 ~", P: "a2", Q: "g2", R: "[d3@31 ~]/2", S: "bb2@7 ~@9",
  T: "a3@15 ~", U: "ab3", V: "g3@8 ~@3 g3@4 ~", W: "c3/4", X: "ab2@15 ~", Y: "g2@15 ~", Z: "b2@15 ~", AA: "eb3@13 ~@3",
  AB: "eb3@15 ~", AC: "[c3@15 bb2@16 ~]/2", AD: "[c3@63 ~]/4", AE: "[g2@15 c3@49]/4",
})).s("gm_acoustic_bass").gain(0.41)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@37 A B C D@2 E F ~@2 G H ~@7 I@2 J ~@4 K L M@2 ~@3 N O@3 ~ P Q R S T U T V ~@4 W X Y@2 ~@10 Z@3 ~@11 AA AB ~@6 AC AD
  AE AF AG ~@7 AH AI AJ AK AL ~@7 AM AN AO@2 AP AQ AR ~@29 AS AT AU AV AW ~@70
>`.pickRestart({
  A: "~@5 d5@5 ~ eb5@5", B: "[eb5,g5]", C: "f5@15 ~, d5@13 ~@3", D: "[[c5,eb5]@29 ~@3]/2",
  E: "~@5 [eb5,g5]@6 [f5,ab5]@2 ~@3", F: "~@5 [eb5,g5]@5 ~ [d5,f5]@4 ~", G: "~@5 [eb5,g5]@6 [f5,ab5]@3 ~@2",
  H: "~@5 [eb5,g5]@5 ~ [d5,f5]@5", I: "[~@5 d5@5 ~@6 g5@15 ~, ~@11 eb5@21]/2", J: "[d5,f5]@15 ~",
  K: "d5@3 eb5@2 g5@2 ~ eb5@3 d5 eb5 d5 ~ eb5", L: "d5 eb5 ~ d5 eb5 d5 ~ eb5 d5@5 eb5 ~ d5", M: "[c5@5 ~@3]/2",
  N: "a5@5 bb5@4 ~@2 a5@5", O: "d5/3", P: "~@11 c6@2 bb5@2 ~", Q: "a5@9 ~@2 bb5@2 a5@3", R: "g5@10 ~ a5@2 g5@2 ~",
  S: "gb5@5 a5@5 ~ gb5@5", T: "g5@15 ~", U: "f5@15 ~", V: "gb5@15 ~", W: "~@5 g5@5 ~ a5@5", X: "bb5@5 a5@5 ~ c6@5",
  Y: "[d6@13 ~@3]/2", Z: "g4/3", AA: "~@5 [eb4,g4]@5 ~ [d4,f4]@2 ~@3", AB: "~@5 [bb3,d4]@6 [g3,c4]@4 ~",
  AC: "~@5 eb4@5 [d4,f4]@2 ~@4, ~@4 g4@5 ~@7", AD: "~@4 [bb3,d4]@5 ~ [g3,c4]@2 ~@4",
  AE: "~@5 g4@5 [d4,f4]@2 ~@4, ~@4 eb4@5 ~@7", AF: "~@5 [gb4,a4]@8 bb4@2 ~", AG: "g4 ~@15",
  AH: "~@6 bb4 ~, ~@11 c5@2 ~@3", AI: "a4@10 ~@2 a4@3 ~, ~@11 bb4@2 ~@3", AJ: "g4@5 ~ g4 ~, ~@11 a4@2 ~@3",
  AK: "gb4@5 a4@5 ~ gb4@5", AL: "g4@15 ~", AM: "~@5 g4@5 ~ a4@5", AN: "bb4@9 ~@2 c5@5", AO: "d5/2",
  AP: "~@5 [ab3,ab4]@2 [bb3,bb4]@3 ~@2 [d4,d5]@3 ~, ~@11 [c4,c5]@3 ~@2", // Ab Bb D C
  AQ: "[eb4,eb5]@10 ~ d5 [eb4,d5]@3 ~, ~@11 [d4,eb5]@4 ~", AR: "[c4,c5]", AS: "~@5 eb5@5 [d5,f5]@2 ~@4, ~@4 g5@5 ~@7",
  AT: "~@4 [bb4,d5]@5 ~ [g4,c5]@2 ~@4", AU: "~@5 g5@5 [d5,f5]@2 ~@4, ~@4 eb5@5 ~@7", AV: "~@5 [gb5,a5]@8 bb5@2 ~",
  AW: "g5 ~@15",
})).s("gm_acoustic_guitar_nylon").gain(0.31)

// other · rock organ · "NYLON GTR"
const rock_organ = note("<~@194 A B C D E ~@7 F G H@2 I J K ~@44>".pickRestart({
  A: "~@11 c5@2 bb4@2 ~", B: "a4@10 bb4@2 ~ a4@3", C: "g4@10 a4@2 ~ g4@2 ~", D: "gb4@5 a4@5 ~ gb4@5", E: "~ g4@15",
  F: "~@5 g4@5 a4@5 ~", G: "~ bb4@9 ~ c5@5", H: "d5/2", I: "~@5 [ab3,ab4]@2 [bb3,bb4]@3 [c4,c5]@3 [d4,d5]@3",
  J: "[eb4,eb5]@10 d5 ~@2 d5@2 ~, ~@10 d4@2 eb4@3 ~, ~@11 eb5@4 ~", K: "[c4,c5]",
})).s("gm_rock_organ").gain(0.14)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon_2 = note(`<
  ~@96 A B C D ~ E F G H@2 I J K L M N O P Q R S T U V W X Q Y Z AA AB AC AD AE AF AG AH AI AJ AC AK AF AL AG AH AI AJ
  AG AJ AG AF AG AH AI AM AN AO AP AQ AR AO AP AQ AR AS AT AU AV AW AX AY AV AZ BA BB BC BD BE BF BG BH BI BJ BK BD BL Q
  Y Z AA AB AC AD AE AF AG AH AI AJ AC AK AF AL AG AH AI AJ AG AJ AG AF AG AH AI AM AN AO AP AQ AR AO BM BN BO ~@16 BP
  BQ BR BS BT BU ~@4 BV BW BX BY BZ@3 ~@4
>`.pickRestart({
  A: "~@5 [eb4,g4,eb5,g5]@5 ~ [d4,f4,d5,f5]@3 ~@2", B: "~@5 [bb3,d4,bb4,d5]@4 ~@2 [ab3,c4,ab4,c5]@5",
  C: "~@5 [c4,eb4,c5,eb5]@4 ~@2 [d4,f4,d5,f5]@4 ~", D: "~@5 [bb3,d4,bb4,d5]@4 ~@2 ab3@2 g3@3, ~@11 [c4,g4,c5]@5",
  E: "~@5 [c4,c5]@3 [g3,g4]@3 [c4,c5]@2 [d4,d5]@2 ~", F: "[eb4,eb5]@9 ~@2 [g4,g5]@5", G: "[eb4,eb5]@10 ~ [d4,d5]@5",
  H: "[[c4,c5]@9 ~@7]/2", I: "~@11 [d4,d5]@5", J: "[eb4,eb5]@9 ~@2 f4@5, ~@11 f5@2 ~@3", K: "[bb3,g4,bb4,g5]@15 ~",
  L: "[b3,f4,b4,f5]@7 ~", M: "~@5 [eb4,eb5]@4 ~@2 [f4,f5]@5", N: "[d4,d5]@8 [c4,c5]@3 [eb4,eb5]@2 [d4,d5]@3",
  O: "[c4,c5]@15 ~", P: "[d4,f4,bb4,d5]@15 ~", Q: "~@5 [eb5,g5]@5 ~ [d5,f5] ~@4, ~@5 g4@8 ~@3",
  R: "~@5 [f4,d5]@5 ~ c5 ~@4, ~@5 bb4@6 ~@5", S: "[bb4,eb5,g5]@13 ~@3, [eb4,g4]@11 ~@5", T: "[d4,f4,b4,f5]@13 ~@3",
  U: "~@3 [c4,eb4,c5,eb5]@5 [f4,f5]@4 ~@4", V: "[d4,f4], bb4@7 ~, d5@9 ~@7", W: "[c4,eb4,ab4], c5@7 ~",
  X: "[d4,f4,bb4,d5]@11 ~@5", Y: "~@5 [f4,bb4,d5]@6 [g4,c5] ~@4", Z: "~@5 [g4,eb5,g5]@6 [d5,f5] ~@4",
  AA: "~@5 [gb4,c5,gb5]@8 bb5@3, ~@5 a5@6 ~@5", AB: "[g3,g4], g5 ~@15", AC: "[f3,f4]", AD: "[eb3,eb4]",
  AE: "[d3,d4]@15 ~", AF: "[d3,d4]", AG: "[c3,c4]", AH: "[bb2,bb3]", AI: "[a2,a3]", AJ: "[g2,g3]", AK: "[eb3,eb4]@15 ~",
  AL: "d3@15 ~, d4 ~@15", AM: "[ab2,ab3]@15 ~", AN: "[g2,g3]@9 ~@2 [g2,g3]@4 ~",
  AO: "[c3,c4]@5 [eb4,g4] ~@5 [eb4,g4] ~@4", AP: "~@5 [eb4,g4] ~@5 [eb4,g4] ~@4, c3@5 ~@3",
  AQ: "~@5 [eb4,ab4] ~@5 [eb4,ab4] ~@4, c3@11 ~@5", AR: "~@5 [eb4,g4] ~@5 [eb4,g4] ~@4, c3@7 ~",
  AS: "~@5 [eb4,g4]@2 ~@4 [eb4,g4]@2 ~@3, c3@3 ~", AT: "~@5 eb4@3 g4@2 ~ [eb4,ab4]@2 ~@3, f3@3 ~",
  AU: "~@5 [eb4,g4] ~@5 [eb4,g4]@2 ~@3, c3@5 ~@3", AV: "~@5 [d4,g4] ~@5 [d4,g4]@2 ~@3, b2@3 ~",
  AW: "~@5 [eb4,g4]@2 ~@4 [eb4,g4]@2 ~@3, c3@11 ~@5", AX: "~@5 [eb4,ab4]@3 g4@3 [eb4,ab4]@2 ~@3, f3@13 ~@3",
  AY: "~@5 [eb4,g4] ~@5 [eb4,g4]@2 ~@3, c3@13 ~@3", AZ: "~@5 [eb4,g4] ~@5 [eb4,g4]@2 ~@3, eb3@15 ~",
  BA: "~@5 [d4,g4]@9 ~@2, d3@7 ~", BB: "~@5 [eb4,g4] ~@5 [eb4,g4]@3 ~@2, c3@15 ~", BC: "~@5 [d4,f4]@9 ~@2, bb2@15 ~",
  BD: "~@5 [c4,eb4]@2 ~@4 [c4,eb4]@2 ~@3, ab2@15 ~", BE: "~@5 [d4,f4] ~@5 [d4,f4]@2 ~@3, bb2",
  BF: "~@5 [eb4,g4]@5 ~ [eb4,ab4]@2 ~@3, c3@13 ~@3", BG: "~@5 [eb4,g4]@4 ~@2 [d4,f4]@3 ~@2, c3@3 ~",
  BH: "~@5 [eb4,g4]@2 ~@4 [eb4,g4]@2 ~@3, eb3@7 ~", BI: "~@5 [d4,g4]@10 ~, d3@15 ~",
  BJ: "~@5 [eb4,g4] ~@5 [eb4,g4]@2 ~@3, c3@15 ~", BK: "~@5 [d4,f4]@10 ~, bb2@15 ~",
  BL: "~@5 [d4,f4]@2 ~@4 [d4,f4]@2 ~@3, bb2@15 ~", BM: "~@5 [eb4,g4] ~@5 [eb4,g4] ~@4, g2@5 ~@3",
  BN: "~@5 [eb4,ab4] ~@5 [eb4,ab4] ~@4, ab2@11 ~@5", BO: "~@5 [eb4,g4] ~@5 [eb4,g4] ~@4, g2@7 ~",
  BP: "eb5@7 ~ g5@3 d5@2 c5@2 ~, eb3@15 ~, eb4@13 ~@3", BQ: "b4@4 ~ d5@6 ~@5, [d3,d4]@13 ~@3",
  BR: "eb5@2 ~ c5@2 eb5@3 g5@2 ~ f5@2 eb5@3, [c3,c4]@7 ~", // C
  BS: "d5@2 ~ bb4@2 d5@2 ~ f5@3 eb5@2 d5@2 ~, [bb2,bb3]@13 ~@3", BT: "[ab2,ab3]@13 ~@3, ab4", BU: "[bb2,bb3,bb4]@7 ~",
  BV: "~@5 [eb4,g4]@5 ~ [d4,f4]@3 ~@2, c3@15 ~", BW: "~@5 [bb3,d4]@5 ~ [g3,c4]@4 ~, g2@15 ~",
  BX: "~@5 [c4,eb4]@5 ~ [d4,f4]@4 ~, ab2@15 ~", BY: "~@5 [bb3,d4]@5 ~ [f3,bb3]@5, g2@15 ~", BZ: "[c3,g3,c4]/3",
})).s("gm_acoustic_guitar_nylon").gain(0.36)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@2 A B C B D E F G H I J K L M N O P Q R S T U V B W X Y Z AA S A B C B D E F G H I J K L M N O P Q R S T U V B W X Y
  Z AA S AB AC AD AE AF AG AH AI AJ AK AH AI AL AM AN AO AP AQ AR AS@2 AT AU AV AW AX AY AZ BA BB@5 D E F G H I J K L M
  N O P Q R S T U V B W X Y Z AA S AB AC AD AE AF AG AH AI AJ AK AH AI AL AM AN AO AP AQ AR AS@2 AT AU AV AW AX AY AZ BA
  BB@5 D E F G H I J K L M N O P Q R S T U V B W X Y Z AA S AB AC AD AE AF AG AH AI AJ AK AH AI AL AM AN AO AP AQ AR
  AS@2 AT AU AV AW AX AY AZ BA BB@5 D E F G H I J K L M N O BC BD BE BF BG BH BI BJ BC BD BE BF BG BH A B C B D E BK@8 ~
>`.pickRestart({
  A: "~@5 [eb5,g5]@5 ~ [d5,f5]@5, c4 ~, ~@5 g4@11", B: "~@5 [bb4,d5]@5 ~ [g4,c5]@5, c4@5 ~@3, ~@5 f4@10 ~",
  C: "~@5 [c5,eb5]@5 ~ [d5,f5]@5, c4@5 ~@3, ~@5 ab4@11", D: "~@5 [eb5,g5]@4 ~@2 [d5,f5]@4 ~, c4@5 ~@3, ~@5 g4@10 ~",
  E: "~@5 [f4,bb4,d5]@5 ~ [g4,c5]@5, g3@9 ~@7", F: "~@5 [c5,eb5]@4 ~@2 [d5,f5]@5, ab3@11 ~@5, ~@5 ab4@11",
  G: "~@5 [bb4,d5]@5 ~ [g4,c5]@5, g3@5 ~@3, ~@5 f4@10 ~", H: "~@5 [c4,eb4,g4] ~@5 [g3,c4,eb4,g4]@2 ~@3, c3@9 ~@7",
  I: "f3@5 ~@6 ab3@4 ~, ~@5 [c4,f4,ab4]@11", J: "~@5 g4@5 ~ [f4,ab4]@4 ~, c3@5 ~@3, ~@5 eb4@10 ~",
  K: "~@5 [eb4,g4]@5 ~ [d4,f4]@5, b2@11 ~@5", L: "~@5 [c4,eb4,g4] ~@5 [g3,c4]@4 ~, c3@9 ~@2 [eb4,g4]@2 ~@3",
  M: "f3@5 ~@6 ab3@5, ~@5 [c4,f4,ab4]@11", N: "~@5 [eb4,g4]@6 [f4,ab4]@5, c3@3 ~",
  O: "~@5 [eb4,g4]@5 ~ [d4,f4]@4 ~, b2@15 ~", P: "eb3@4 ~ bb3@5 ~ g3@4 ~, ~@5 [eb4,g4,bb4]@9 ~@2",
  Q: "b2@5 [d4,f4,g4]@10 ~", R: "c3@5 ~@6 g3@5, ~@5 [c4,eb4,g4]@10 ~", S: "~@5 [bb3,d4,f4]@10 ~, bb2@9 ~@7",
  T: "ab2@5 ~@6 eb3@2 ~@3, ~@5 [ab3,c4,eb4]@8 ~@3", U: "~@11 f3@5, bb2@7 ~@9, ~@5 [bb3,d4,f4]@8 ~@3",
  V: "~@5 [eb5,g5]@4 ~@2 [d5,f5]@4 ~, c3, ~@5 g4@10 ~", W: "eb3@5 ~@6 bb3@4 ~, ~@5 [eb4,g4,bb4]@10 ~",
  X: "~@5 [b3,d4,f4,g4]@10 ~, b2@9 ~@7", Y: "~@11 g3@5, c3@9 ~@7, ~@5 [c4,eb4,g4]@10 ~",
  Z: "~@5 [bb3,f4]@11, bb2@9 ~@7, ~@5 d4@9 ~@2", AA: "ab2@5 ~@6 eb3@5, ~@5 [ab3,c4,eb4]@9 ~@2",
  AB: "~@5 [eb5,g5]@5 ~ [d5,f5]@5, c3@5 ~@3, ~@5 g4@11", AC: "~@5 [bb4,d5]@5 ~ [g4,c5]@3 ~@2, c3 ~, ~@5 f4@9 ~@2",
  AD: "~@5 [eb4,g4]@4 ~@2 [d4,f4]@4 ~, c3@5 ~@3, ~@5 g3@9 ~@2", AE: "~@5 a4@8 bb4@2 ~, d3@13 ~@3, ~@5 [c4,gb4]@10 ~",
  AF: "d4 ~@10 bb3@4 ~, [g2,g4]@15 ~, bb3@11 ~@5, ~@5 d4@9 ~@2", AG: "~@11 a3@5, [f2,f4], ~@5 c4@10 ~",
  AH: "~@11 g3@5, [eb2,eb4]@15 ~, ~@5 bb3@10 ~", AI: "~@11 gb3@5, [d2,d4], ~@5 a3@10 ~",
  AJ: "~@11 bb3@5, [g2,g4], ~@5 d4@10 ~", AK: "~@11 a3@5, [f2,f4], ~@5 c4@11",
  AL: "~@5 d4@5 ~ c5@2 bb4@3, g3@10 ~ bb3@5", AM: "~@13 a4@2 ~, f3@15 ~, a4@13 ~@3, ~@5 c4@10 ~, ~@11 [a3,bb4]@5",
  AN: "eb3@4 ~@9 g4@2 ~, g4@13 ~@3, ~@5 bb3@9 ~@2, ~@11 [g3,a4]@5", AO: "[d3,gb4]@5 [gb3,a4]@5 ~ [a3,gb4]@5",
  AP: "~@11 g3@5, [g2,d4], ~@5 bb3@11", AQ: "~@11 f3@5, [f2,c4], ~@5 a3@11", AR: "bb3@5 ~@5 eb3@6, eb2, ~@5 g3@11",
  AS: "[~@10 d3@5 ~@6 g3 ~@4 bb3@5 ~, [d2,a3]@16 ~@5 bb3@5 ~@6, ~@5 gb3@10 g2@16 ~, ~@23 g3@8 ~]/2", // D5
  AT: "~@5 [g3,c4,eb4]@11, c3", AU: "~@5 g3@3 ~@3 bb3@5, g2, ~@5 bb3@5 ~@6, ~ g3", AV: "~@5 [g3,c4,eb4]@10 ~, c3",
  AW: "~@11 c4@5, [d2,d3], ~@5 [a3,a4]@11, ~@5 d4@3", AX: "~@5 [c4,d4]@3, c3, ~@5 [a3,a4]@11",
  AY: "~@5 [c4,d4]@3, bb2, ~@5 [a3,a4]@11", AZ: "~@10 [c4,d4]@5 ~, a2, ~@5 [a3,a4]@10 ~",
  BA: "~@5 ab3@3 bb3@3 c4@2 d4@2 ~, ab2@15 ~",
  BB: "[g2@10 d4 ~@2 d4@2 c4@2 ~@4 [eb5,g5]@5 [d5,f5]@4 ~@12 [f4,g4,c5]@5 ~@11 [d5,f5]@5 ~@11 [g4,c5]@5 ~, eb4@6 ~@5 eb4@4 c2@16 ~@5 bb4@11 ~@6 ab4@11 ~@5 [f4,bb4,d5]@11, ~@15 c3@14 ~@2 c3@16 c3@16 c3@16 ~, ~@37 d5@11 ~@4 eb5@11 ~@17]/5", // Eb Dm Fsus2 Dm C5 Bb
  BC: "eb3@4 ~@4 g5@3 d5@2 c5@2 ~, eb5@7 ~@9, ~@5 bb3@5 ~ g3@5", BD: "[b2,b4]@5 g3@10 ~, ~@5 d5@6 ~@5",
  BE: "c3@3 c5@2 [g3,eb5]@3 g5@3 [c3,f5]@2 eb5@3, eb5 ~@7", // Cm F5
  BF: "bb2@3 bb4@2 d5@2 ~ f5@3 [bb2,eb5]@2 d5@2 ~, d5@2 ~@3 f3@5 ~@6", // Eb5
  BG: "c5@2 ~@3 [c4,eb4]@2 ~@4 [c4,eb4]@3 ~@2, ab2@11 ~@5", BH: "bb2@5 f3@5 ~ bb2@2 ~@3, ~@5 [bb3,d4,f4]@8 ~@3",
  BI: "~@5 [eb5,g5]@5 ~ [d5,f5]@4 ~, c3@3 ~, ~@5 g4@11", BJ: "~@5 [bb4,d5]@5 ~ [g4,c5]@5, c3, ~@5 f4@11",
  BK: "[~@5 [c5,eb5]@4 ~@2 [d5,f5]@5 ~@112, ab3@11 ~@117, ~@5 ab4@123]/8", // Cm Dm
})).s("gm_piano").gain(0.47)

// other · woodblock
const woodblock = note(`<
  ~@2 A@88 ~@2 A@4 ~@4 B@26 ~@30 B@30 ~@30 A@4 C D E F C D E F C D E F C D E F B@14 ~@7
>`.pickRestart({
  A: "~@5 d6 ~@5 d6 ~@4", B: "~@5 g6 ~@2 g6 ~@2 g6 ~ g6 ~@2", C: "c6 ~@7", D: "c6@2 ~@9 c6 ~@4", E: "c6 ~@15",
  F: "c6 ~@10 c6 ~@4",
})).s("gm_woodblock").gain(0.04)

// drums · rim
const rim = s("rim").struct("<~@91 [~@11 x!3 ~@2] x ~@164>").gain(0.29)

// drums · hihat
const hihat = s("hh").struct("<~@66 [x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2]!24 [x!2 ~@14] ~@166>").gain(0.22)

// drums · ride
const ride = s("rd").struct("<~@90 A ~@5 B ~ B ~ B@53 ~ B ~ B@57 ~ B ~ B@4 ~@30 C D E ~@4>".pickRestart({
  A: "x!2 ~@14", B: "x", C: "x!12 ~ x ~ x", D: "~ x ~@14", E: "~@15 x",
})).gain(0.29)

// drums · bongos
const bongos = s("bongo:4").struct("<~@9 [~@15 x] [~ x ~@14] ~@246>").gain(0.83)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  A@2 ~@96 B ~@2 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@7 B
  ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@47
>`.pickRestart({
  A: "x ~@4 x ~@5 x ~@4", B: "x",
})).gain(0.83)

// drums · bell tree
const bell_tree = s("marktrees:0").struct("<~@236 x!15 ~@6>").gain(1.7)

// drums · lt
const lt = s("lt").struct("<~@237 A ~ A ~ A ~ A ~ A ~ A ~ A ~@7>".pickRestart({
  A: "x",
})).gain(0.32)

stack(
  bass, acoustic_guitar_nylon, rock_organ, acoustic_guitar_nylon_2, piano, woodblock, rim, hihat, ride, bongos,
  bongos_2, bell_tree, lt
)