Strudelify

Jugend-Lieder

Mathilde Kralik

KeyG majorTempo200 bpm
0:00/0:00
// Jugend-Lieder — Mathilde Kralik
// 200 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/6206972; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 205 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(200/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · glockenspiel
const glockenspiel = note(`<
  ~@16 A B C D A B E F A B C D A B E F ~@24 A B C D A B E ~ E ~ E@4 G B C D A B E F A B C D A B E F ~@34 H@2 I@2 J K L@2
  M@2 N@4 O@3 P Q@3 R S@2 T U V@2 W@3 X@2 Y Z@2 AA AB AC@2 AD@8 AE@16 AF@8 AG@8 AH@5
>`.pickRestart({
  A: "d7@8 b6@3 ~@2 a6@3", B: "g6 b6", C: "e6@3 ~@2 f#6@3 g6@3 ~@2 a6@3", D: "a#6 b6", E: "a6@3 ~@2 b6@3 c7@3 ~@2 d7@3",
  F: "g6", G: "g6@8 b6@3 ~@2 a6@3", H: "[~@7 d7@13 a#6@4 ~@5 a6@3]/2", I: "[~ g6@13 a#6@12 a6@4 ~@2]/2",
  J: "~@3 a#6@4 c7@4 ~@5", K: "d#7 c#7@3", L: "[~ d7@13 d7@12 a#6@4 ~@2]/2", M: "[~@3 a6@4 g6@13 d7@12]/2",
  N: "[~ d#7@4 ~@4 d7@4 ~ d#7@4 ~@4 d7@4 g6@26 d7@12]/4", O: "[~ a#6@4 ~@4 a6@4 ~ g6@12 a#6@13 a6@4 ~@5]/3",
  P: "a#6@4 c7@4 ~@5 d#7@3", Q: "[~ c#7@13 d7@12 d7@13 a#6@4 ~@5]/3", R: "a6 g6@3",
  S: "[~ d7@13 d#7@4 ~@4 d7@4 d#7@4 ~@2]/2", T: "~@3 d7@4 d#7@4 ~@5", U: "d7@4 d#7@4 ~@5 d7@3",
  V: "[~ d#7@4 ~@4 d7@4 ~ d#7@4 ~@4 d7@4 d#7@4 ~@2]/2",
  W: "[~@3 d7@4 d#7@4 ~@4 d7@4 e7@4 ~@4 d#7@3 e7@4 ~@4 d#7@4 f7@4 ~@2]/3",
  X: "[~ e7@4 f7@4 ~@3 e7@3 f#7@3 ~@4 f7@3 f#7@3 ~@4]/2", Y: "f7@3 g7@3 ~@4 f#7@3 g7@3",
  Z: "[~@3 f#7@3 g7@3 ~@3 f#7@3 g7@3 ~@3 f#7@3 g7@3 ~@2 f#7@3]/2", AA: "g7@3 ~@3 f#7@3 g7@3 ~@2 f#7@2",
  AB: "~ g7@3 ~@2 f#7@3 g7@3 ~@2 f#7@2", AC: "[g7@3 ~@2 f#7@3 g7@2 ~@3 f#7@2 g7@2 ~@3 f#7@2 g7@2 ~@3 f#7@2 g7@2 ~]/2",
  AD: "[~@2 f#7@2 g7@75 g7@3 f7@3 e7@2 d7@3 c7@8 a6@3 ~@2 g6@3 f6@8 a6@8 d6@3 ~@2 e6]/8",
  AE: "[~@2 f6@3 ~@2 g6@3 g#6@8 a6@8 c7@8 a6@3 ~@2 g6@3 f6@8 a6@8 g6@3 ~@2 a6@3 a#6@3 ~@2 c7@3 f6@16 c7@8 a6@3 ~@2 g6@3 f6@8 a6@8 d6@3 ~@2 e6]/8",
  AF: "[~@2 f6@3 ~@2 g6@3 g#6@8 a6@8 c7@8 a6@3 ~@2 g6@3 f6@8 a6@8 g6@3 ~@2 a6@3 a#6@3 ~@2 c7@3 f6@16 d7@8 b6@3 ~@2 a6@3 g6@8 b6@8 e6@3 ~@2 f#6]/8",
  AG: "[~@2 g6@3 ~@2 a6@3 a#6@8 b6@8 d7@8 b6@3 ~@2 a6@3 g6@8 b6@8 a6@3 ~@2 b6@3 c7@3 ~@2 d7@3 g6@16 a6@3 ~@2 b6@3 c7@3 ~@2 d7@3 g6@16 a6@3 ~@2 b6]/8",
  AH: "[~@2 c7@3 ~@2 d7@3 a6@3 ~@2 b6@3 c7@3 ~@2 d7@3 a6@3 ~@2 b6@3 a6@3 ~@2 b6@3 a6@3 ~@2 b6@3 a6@3 ~@2 g6@3 g6@16 ~@6]/5",
})).s("gm_glockenspiel").gain(0.48)

// other · vibraphone
const vibraphone = note(`<
  ~@56 A B C D A B E ~ E ~ E@4 F B C D A B E G A B C D A B E G ~@21 H@6 I J@7 K L@7 M N@7 O P@7 Q R@5 S@3 T@6 U ~@4 V@7
  W@16 X@8 Y@7 Z@2
>`.pickRestart({
  A: "d5@8 b4@3 ~@2 a4@3", B: "g4 b4", C: "e4@3 ~@2 f#4@3 g4@3 ~@2 a4@3", D: "a#4 b4", E: "a4@3 ~@2 b4@3 c5@3 ~@2 d5@3",
  F: "g4@8 b4@3 ~@2 a4@3", G: "g5", H: "[~@10 g4@9 g4@9 [a#4,d5]@8 a#4@9 a#4@8 [g4,d5]@9 c5@8 c5@9 [c5,d#5]@8 f#4@9]/6",
  I: "f#4 [a4,d5]", J: "[~ g4@8 g4@9 [a#4,d5]@8 a#4@9 a#4@9 [g4,d5]@8 c5@9 c5@8 [f#4,d5]@9 g4@8 g4@9 [d5,g5]@8 g4@9]/7",
  K: "g4 [a#4,d5]", // A#
  L: "[~ a#4@8 a#4@9 [g4,d5]@8 c5@9 c5@9 [c5,d#5]@8 f#4@9 f#4@8 [a4,d5]@9 g4@8 g4@9 [a#4,d5]@8 a#4@9]/7", // G5 Cm D5 A#
  M: "a#4 [g4,d5]", N: "[~ c5@8 c5@9 [f#4,d5]@8 g4@9 g4@9 [d5,g5]@8 g4@9 g4@8 [a#4,d5]@9 a#4@8 a#4@9 [g4,d5]@8 c5@9]/7",
  O: "c5 [c5,d#5]", // Cm
  P: "[~ f#4@8 f#4@9 [a4,d5]@8 g4@9 g4@9 [a#4,d5]@8 a#4@9 a#4@8 [g4,d5]@9 c5@8 c5@9 [f#4,d5]@8 c5@9]/7", // D5 A# G5 D
  Q: "c5 [f#4,d5]", R: "[~ c5@8 c5@9 [f#4,d5]@8 c5@8 ~ c5@8 [f#4,d5]@8 c#5@8 c#5@7 [g4,d#5]@8 d5@6]/5",
  S: "[~ d5@7 [g#4,e5]@7 d#5@7 d#5@7 [a4,f5]@6 e5@6 ~ e5@6]/3", // C#m Dm
  T: "[[a#4,f#5]@6 e5@6 e5@6 [a#4,f#5]@6 e5@5 e5@6 [a#4,f#5]@6 e5@5 e5@5 [a#4,f#5]@5 ~ e5@5 e5@5 [a#4,f#5]@5 e5@5 e5@5 [a#4,f#5]@4 e5@5 e5@5]/6", // D#m
  U: "[a#4,f#5]@5 ~@11", // D#m
  V: "[~@10 c5@8 a4@3 ~@2 g4@3 f4@8 a4@8 d4@3 ~@2 e4@3 f4@3 ~@2 g4@3 g#4@8 a4@8 c5@8 a4@3 ~@2 g4@3 f4@8 a4@8 g4@3 ~@2 a4]/7",
  W: "[~@2 a#4@3 ~@2 c5@3 f5@16 c5@8 a4@3 ~@2 g4@3 f4@8 a4@8 d4@3 ~@2 e4@3 f4@3 ~@2 g4@3 g#4@8 a4@8 c5@8 a4@3 ~@2 g4@3 f4@8 a4@8 g4@3 ~@2 a4]/8",
  X: "[~@2 a#4@3 ~@2 c5@3 f5@16 d5@8 b4@3 ~@2 a4@3 g4@8 b4@8 e4@3 ~@2 f#4@3 g4@3 ~@2 a4@3 a#4@8 b4@8 d5@8 b4@3 ~@2 a4@3 g4@8 b4@8 a4@3 ~@2 b4]/8",
  Y: "[~@2 c5@3 ~@2 d5@3 g5@16 a4@3 ~@2 b4@3 c5@3 ~@2 d5@3 g5@16 a4@3 ~@2 b4@3 c5@3 ~@2 d5@3 a4@3 ~@2 b4@3 c5@3 ~@2 d5@3 a4@3 ~@2 b4@3 a4@3 ~@2 b4@3 a4@3 ~@2 b4]/7",
  Z: "[~@2 a4@3 ~@2 g4@3 g4@16 ~@6]/2",
})).s("gm_vibraphone").gain(0.3)

// other · marimba
const marimba = note(`<
  ~@63 A ~ B ~@11 C ~@7 C ~@8 D@2 E@2 F@4 G@3 H I@3 J K@2 L@2 M@4 N@4 O@2 P Q R@2 S@2 T@4 U@3 V W@3 J X@2 Y H Z@2 AA@3
  AB@2 AC AD@2 AE AF AG@2 AH ~@11 AI@8 AJ@8 AK@8 AL@7 AM@2
>`.pickRestart({
  A: "d5@3 d5@2 d5@3 d5@3 d5@2 d5@3", B: "d4@3 d4@2 d4@3 d4@3 d4@2 d4@3", C: "g4", D: "[~@7 d5@6 a#4@2 ~]/2",
  E: "[~@3 a4@4 g4@13 a#4@12]/2", F: "[~ a4@4 ~@4 a#4@4 ~ c5@4 ~@4 d#5@4 c#5@13 d5@13 d5@12]/4",
  G: "[~ a#4@4 ~@4 a4@4 ~ g4@12 d5@13 d#5@4 ~@5]/3", H: "d5@4 d#5@4 ~@5 d5@3", I: "[~ g4@25 d5@13 a#4@4 ~@5]/3",
  J: "a4 g4@3", K: "[~ a#4@13 a4@4 ~@4 a#4@4 c5@4 ~@2]/2", L: "[~@3 d#5@4 c#5@13 d5@12]/2",
  M: "[~ d5@13 a#4@4 ~@4 a4@4 g4@13 d5@13 d#5@4 ~@5 d5@3]/4", N: "[~ d#5@4 ~@4 d5@4 ~ g4@25 d5@13 a#4@4 ~@5 a4@3]/4",
  O: "[~ g4@13 a#4@12 a4@4 ~@2]/2", P: "~@3 a#4@4 c5@4 ~@5", Q: "d#5 c#5@3", R: "[~ d5@13 d5@12 a#4@4 ~@2]/2",
  S: "[~@3 a4@4 g4@13 d5@12]/2", T: "[~ d#5@4 ~@4 d5@4 ~ d#5@4 ~@4 d5@4 g4@26 d5@12]/4",
  U: "[~ a#4@4 ~@4 a4@4 ~ g4@12 a#4@13 a4@4 ~@5]/3", V: "a#4@4 c5@4 ~@5 d#5@3", W: "[~ c#5@13 d5@12 d5@13 a#4@4 ~@5]/3",
  X: "[~ d5@13 d#5@4 ~@4 d5@4 d#5@4 ~@2]/2", Y: "~@3 d5@4 d#5@4 ~@5",
  Z: "[~ d#5@4 ~@4 d5@4 ~ d#5@4 ~@4 d5@4 d#5@4 ~@2]/2",
  AA: "[~@3 d5@4 d#5@4 ~@4 d5@4 e5@4 ~@4 d#5@3 e5@4 ~@4 d#5@4 f5@4 ~@2]/3",
  AB: "[~ e5@4 f5@4 ~@3 e5@3 f#5@3 ~@4 f5@3 f#5@3 ~@4]/2", AC: "f5@3 g5@3 ~@4 f#5@3 g5@3",
  AD: "[~@3 f#5@3 g5@3 ~@3 f#5@3 g5@3 ~@3 f#5@3 g5@3 ~@2 f#5@3]/2", AE: "g5@3 ~@3 f#5@3 g5@3 ~@2 f#5@2",
  AF: "~ g5@3 ~@2 f#5@3 g5@3 ~@2 f#5@2", AG: "[g5@3 ~@2 f#5@3 g5@2 ~@3 f#5@2 g5@2 ~@3 f#5@2 g5@2 ~@3 f#5@2 g5@2 ~]/2",
  AH: "~ f#5 ~@6",
  AI: "[~@10 f4@16 f4@5 f4@5 ~ [a4,c5]@5 f4@5 f4@5 ~ [f4,c5]@5 g4@5 g4@5 ~ [c5,g5]@5 f4@5 f4@5 ~ [f4,c5]@5 f4@5 f4@5 ~ [a4,c5]@5 f4@5 f4@5 ~ [f4,c5]@5 g4@5 g4]/8", // Am F5 C5 F5 Am F5
  AJ: "[~@5 [c5,g5]@5 f4@5 f4@5 ~ [f4,c5]@5 f4@5 f4@5 ~ [a4,c5]@5 f4@5 f4@5 ~ [f4,c5]@5 g4@5 g4@5 ~ [c5,g5]@5 f4@5 f4@5 ~ [f4,c5]@5 f4@5 f4@5 ~ [a4,c5]@5 f4@5 f4@5 ~ [f4,c5]@5 g4@5 g4]/8", // C5 F5 Am F5 C5 F5 Am F5
  AK: "[~@5 [c5,g5]@5 f4@5 f4@5 ~ [f4,c5]@5 g4@5 g4@5 ~ [b4,d5]@5 g4@5 g4@5 ~ [g4,d5]@5 a4@5 a4@5 ~ [d5,a5]@5 g4@5 g4@5 ~ [g4,d5]@5 g4@5 g4@5 ~ [b4,d5]@5 g4@5 g4@5 ~ [g4,d5]@5 a4@5 a4]/8", // C5 F5 Bm G5 D5 G5 Bm G5
  AL: "[~@5 [d5,a5]@5 g4@5 g4@5 ~ [g4,d5]@5 a4@5 a4@5 ~ [d5,a5]@5 g4@5 g4@5 ~ [g4,d5]@5 a4@5 a4@5 ~ [d5,a5]@5 a4@5 a4@5 ~ [d5,a5]@5 a4@5 a4@3 a4@5 a4@3 a4@5 a4]/7", // D5 G5 D5 G5 D5
  AM: "[~@2 a4@5 g4@3 g4@16 ~@6]/2",
})).s("gm_marimba").gain(0.48)

// other · timpani
const timpani = note(`<
  ~@8 A@2 B A@3 C D A@2 B A@3 C D A@2 B A@3 C D ~@16 A@2 B A@3 C D A@2 B A@3 C ~ C ~ C@4 E@2 B A@3 C A@3 B A@3 C F ~@8
  G@4 H@8 I@8 J@8 K@8 L@8 M@8 N@7 O@8 ~@4 P@8 Q@8 R@8 S@8 T@2 U@6
>`.pickRestart({
  A: "d3 g2", B: "a2 c3", C: "a2 d3", D: "g2", E: "g2 d3", F: "~ g2", G: "[~@14 g2@25 d3@25]/4",
  H: "[~ a2@25 d3@26 g2@26 d3@25 a2@25]/8", I: "[~ g2@25 g2@26 d3@26 a2@25 d3@25]/8",
  J: "[~ g2@25 d3@26 a2@26 g2@25 g2@25]/8", K: "[~ d3@25 a2@26 d3@26 g2@25 d3@25]/8",
  L: "[~ a2@25 g2@26 g2@26 d3@25 a2@25]/8", M: "[~ d3@25 g2@26 d3@26 a2@25 a2@25]/8",
  N: "[~ a2@25 a2@25 a#2@23 b2@21 c3@17]/7", O: "[~@3 c#3@19 c#3@18 c#3@17 c#3@16 c#3@15 c#3@14 c#3@14 ~@12]/8",
  P: "[~@5 c3@4 f2@4 c3@4 f2@4 g2@4 a#2@4 c3@4 f2@4 c3@4 f2@4 c3@4 f2@4 g2@4 c3@4 ~@3]/8",
  Q: "[~ f2@4 c3@4 f2@4 c3@4 f2@4 g2@4 a#2@4 c3@4 f2@4 c3@4 f2@4 c3@4 f2@4 g2@4 c3@4 ~@3]/8",
  R: "[~ f2@4 f2@4 c3@4 f2@4 c3@4 g2@4 a#2@4 c3@4 f2@4 c3@4 f2@4 c3@4 f2@4 g2@4 c3@4 ~@3]/8",
  S: "[~ f2@4 g2@4 d3@4 g2@4 d3@4 a2@4 c3@4 d3@4 g2@4 d3@4 g2@4 d3@4 g2@4 a2@4 d3@4 ~@3]/8",
  T: "[~ g2@4 a2@4 d3@4 ~@3]/2", U: "[~@2 g2@8 a2@8 d3@8 a2@8 d3@8 a2@8 a2@8 a2@8 a2@8 g3@11 g2@5 ~@6]/6",
})).s("gm_timpani").gain(0.72)

// drums · kick
const kick = s("bd").struct("<~@40 A@23 ~ A ~ A@11 ~ A@7 ~@120>".pickRestart({
  A: "x ~@4 x ~@5 x ~@4",
})).gain(0.34)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@165 A B@6 C A B@6 C A B@6 C A B@6 C A C A B@2 D E ~>".pickRestart({
  A: "~@10 x ~@4 x", B: "~@5 x ~@4 x ~@4 x", C: "~@5 x ~@10", D: "~@2 x ~@4 x ~@2 x ~@4 x", E: "~@2 x ~@4 x ~@8",
})).gain(0.23)

// drums · snare
const snare = s("sd").struct(`<
  A@2 B A@3 B C A@2 B A@3 B C A@2 B A@3 B C A@2 B A@3 B C A@2 B A@3 B C A@2 B A@3 B C A@2 B A@3 B C A@2 B A@3 B ~ B ~
  B@4 A@2 B A@3 B ~ A@2 B A@3 B ~ C@2 D C E F G H I ~@110
>`.pickRestart({
  A: "x ~@4 x ~@2 x ~@2 x ~ x ~@2", B: "x ~@2 x ~ x ~@2 x ~@4 x ~@2", C: "x ~@4 x ~@2 x!8",
  D: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", E: "x ~@5 x ~@2 x!7", F: "x!2 ~@5 x ~@2 x!6", G: "x!5 ~@2 x ~@2 x ~@2 x ~@2",
  H: "~ x ~@2 x ~@2 x ~@3 x ~@2 x ~", I: "~@2 x ~@2 x ~@4 x ~@5",
})).gain(0.34)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@94 A B C D E F G H E B G H I J G H E K C D L K G D L M N D L O C H E B C D E F P Q E B G H L K G H E K G H E B R S T
  U V W X Y Z AA AB AC AD ~@4 AE AF AG AH AF@2 AG AH AI AF AG AH AF@2 AG AH AI AF AG AH AF@2 AG AH AI AF AG AH AF@2 AG
  AH AJ AH AJ AK@2 AG AL ~
>`.pickRestart({
  A: "~@7 x", B: "~@6 x ~@3 x ~@4 x", C: "~@3 x ~@3 x ~@8", D: "x ~@3 x ~@3 x ~@4 x ~@2", E: "~ x ~@3 x ~@3 x ~@4 x ~",
  F: "~@3 x ~ x ~@2", G: "~@3 x ~@3 x ~@4 x ~@3", H: "x ~@3 x ~@8 x ~@2", I: "~ x ~@7 x ~@4 x!2", J: "x!11 ~@5",
  K: "~ x ~ x ~ x ~@2", L: "~ x ~@7 x ~@4 x ~", M: "~@6 x ~@3 x ~ x!4", N: "x!8 ~@8", O: "~@2 x ~@3 x ~@3 x ~@4 x",
  P: "~@3 x ~@3 x!4 ~ x!4", Q: "x!5 ~@8 x ~@2", R: "~@3 x ~@3 x ~@7 x", S: "~@3 x ~@3 x ~@3 x ~@2 x ~",
  T: "~@6 x ~@3 x ~@2 x ~@2", U: "~ x ~@3 x ~@6 x ~@2 x", V: "~@3 x ~@2 x ~@2 x ~@6",
  W: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", X: "~@3 x ~@2 x ~@2 x ~@2 x ~@2 x", Y: "~@5 x ~@2 x ~@2 x ~ x ~@2",
  Z: "x ~@5 x ~@2 x ~ x ~@2 x ~", AA: "~ x ~@4 x ~@2 x ~ x ~@2 x ~", AB: "x ~@4 x ~@2 x ~ x ~@2 x ~ x",
  AC: "~@4 x ~ x ~@2 x ~ x ~ x ~@2", AD: "~ x ~@6", AE: "~@10 x ~@4 x", AF: "~@2 x ~@2 x ~ x ~@2 x ~@4 x",
  AG: "~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x", AH: "~@2 x ~@4 x ~@2 x ~@4 x", AI: "~@2 x!9 ~@4 x", AJ: "~@2 x!9 ~@2 x ~ x",
  AK: "~@2 x ~@4 x ~@2 x ~@2 x ~ x", AL: "~@2 x ~@2 x ~ x ~@2 x ~@5",
})).gain(0.17)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@40 A B C ~ A B D ~ A B C ~ A B D ~ A B C ~ A B D ~ D ~ D@4 A B C ~ A B D ~ A B C ~ A B D ~@66 E F G H I J K L M N
  ~@4 O P Q R O P S T U P Q R O P S T U P Q R O P S T U P Q R O P S T V T V W@3 X ~
>`.pickRestart({
  A: "x ~@4 x ~@2 x!8", B: "x ~@2 x ~ x ~@2 x ~@4 x ~@2", C: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  D: "x ~@2 x ~@4 x ~@2 x ~@4", E: "~@15 x", F: "~@3 x ~@2 x ~@2 x ~@6", G: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2",
  H: "~@3 x ~@2 x ~@2 x ~@2 x ~@2 x", I: "~@5 x ~@2 x ~@2 x ~ x ~@2", J: "x ~@5 x ~@2 x ~ x ~@2 x ~",
  K: "~ x ~@4 x ~@2 x ~ x ~@2 x ~", L: "x ~@4 x ~@2 x ~ x ~@2 x ~ x", M: "~@4 x ~ x ~@2 x ~ x ~ x ~@2", N: "~ x ~@6",
  O: "~@10 x ~@4 x", P: "~@2 x!9 ~@2 x ~ x", Q: "~@2 x ~@4 x ~@2 x ~@2 x ~ x", R: "~@2 x ~@2 x ~ x ~@8",
  S: "~@2 x ~@4 x ~@2 x ~@2 x ~@2", T: "~@2 x ~@2 x ~@4 x ~@4 x", U: "~@2 x!9 ~@4 x", V: "~@2 x!9 ~@2 x ~@2",
  W: "~@2 x ~@2 x ~@4 x ~@2 x ~@2", X: "~@2 x ~@2 x ~@10",
})).gain(0.34)

// drums · china
const china = s("cr").struct("<~@203 [~@5 x ~@2] ~>").gain(0.34)

// drums · ride
const ride = s("rd").struct(`<
  ~@43 A ~@3 A ~@3 A ~@3 A ~@3 A ~@13 A ~@7 A ~@86 B C ~@6 B C ~@6 B C ~@6 B C ~@11
>`.pickRestart({
  A: "x ~@4 x ~@5 x ~@4", B: "~@10 x ~@4 x", C: "~@5 x ~@10",
})).gain(0.34)

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

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<~@203 [~@5 x ~@2] ~>").gain(0.49)

// drums · woodblocks
const woodblocks_2 = s("woodblock:4").struct("<~@39 [~@11 x ~ x ~@2] ~@7 [~@11 x ~ x ~@2] ~@7 [~@11 x ~ x ~@2] ~@149>")
  .gain(0.49)

stack(
  glockenspiel, vibraphone, marimba, timpani, kick, kick_soft, snare, snare_soft, high_tom, china, ride, guiro,
  woodblocks, woodblocks_2
)