Strudelify

Round & Round

Ratt

KeyE minorTempo129 bpm
0:00/0:00
// Round & Round — Ratt
// 129 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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.

// chords · distortion guitar
const distortion_guitar = note(`<
  A B C D E F G H I J K L I J K L I J K L I J K L M N O@2 P N Q@3 A B C D E F G H I J K L I J K L I J K L I J K L M N
  O@2 P N Q@3 A B C D E F G R@2 ~ S R@2 ~ T ~ U ~ V ~ U ~ W ~ X ~ Y@2 I J K L I J K L I J K L I J K Z M N O@2 P N Q@3 A
  B C D E F G H
>`.pickRestart({
  A: "[e3,e4,b4,e5]@3 ~@5 e3 ~ e3 ~@5", B: "~@2 [e4,b4,e5,g5] ~@5 [d4,a4,d5,g5] ~@5 [c4,g4,c5,f#5]@2",
  C: "~@4 c4 ~ c4 ~@5 c4 ~ [c4,g4,c5,f#5]@2", D: "~@4 [c4,g4,c5,e5]@3 ~@3 [d4,a4,d5,f#5] ~@5",
  E: "~@2 [e4,b4,e5,a5] ~@11 [e4,b4,e5,g5]@2", F: "~@4 [e4,b4,e5,f#5]@3 ~@3 [d4,a4,d5,f#5] ~@5",
  G: "~@2 [c4,g4,c5,e5] ~@5 c4 ~ c4 ~@5", H: "~@2 [c4,g4,c5,f#5] ~@5 [d4,a4,d5,g5] ~@3 e4 ~ e4 ~",
  I: "~@4 d4@3 ~@7 d4 ~", J: "~@4 c#4 ~@3 c#4 ~@3 a3 ~@3", K: "~@4 d4@3 ~@7 d4@2", L: "~@10 [a3,e4,a4] ~@5",
  M: "~@8 d4 ~@7", N: "~@2 e5 ~@3 c#5 ~@3 b4 ~@3 e5 ~",
  O: "[b4@10 [b4,e5,a5] ~@3 [b4,e5,g#5]@5 ~@5 [e4,b4,e5,a5] ~@7, e5@5 ~@27]/2", P: "[d4,a4,d5]@5 ~@11",
  Q: "~@2 e5 ~@3 d#5 ~@3 b4 ~@3 e5 ~", R: "[[a3,e4,a4]@21 ~@5 [d4,a4,d5,f#5] ~@5]/2", S: "~@10 [d4,a4,d5,f#5] ~@5",
  T: "~@12 [g3,d4,g4]@3 ~", U: "[g3,d4,g4]@11 ~@5", V: "~@8 [a3,e4,a4] ~ [g3,d4,g4] ~@5", W: "~@5 [g3,c4,g4]@2 ~",
  X: "[e3,b3,e4,g4]@11 ~@5", Y: "[[b3,g4]@21 ~@7 [d4,a4,d5]@3 ~, d4@7 ~]/2", Z: "d4 ~@9 [a3,e4,a4] ~@5",
})).s("gm_distortion_guitar").gain(0.41).pan(0.2)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  A B C D E F G H I J K L I J K L I J K M I J K M N O P@2 Q O R@3 A B C D E F G H I J K L I J K L I J K M I J K M N O
  P@2 Q O R@3 A B C D E F S ~ T U@2 ~ T V@2 W ~ V@2 W ~ V@2 W ~ X ~ Y I J K L I J K L I J K M I J K M N O P@2 Q O R@3 A
  B C D E F G H
>`.pickRestart({
  A: "~@4 e3 ~ e3 ~@5 e3 ~ [e4,b4,e5,g5]@2", B: "~@4 [e4,b4,e5,f#5]@3 ~@3 [d4,a4,d5,f#5] ~@5",
  C: "~@2 [c4,g4,c5,e5] ~@5 c4 ~ c4 ~@5", D: "~@2 [c4,g4,c5,f#5] ~@5 [d4,a4,d5,g5] ~@5 [e4,b4,e5,a5]@2",
  E: "~@4 [e4,b4,e5,g#5]@5 ~@7", F: "~@2 [e4,b4,e5,g5] ~@5 [d4,a4,d5,g5] ~@5 [c4,g4,c5,f#5]@2",
  G: "~@4 c4 ~ c4 ~@5 c4 ~ [c4,g4,c5,f#5]@2", H: "~@4 [c4,g4,c5,e5]@3 ~@3 [d4,a4,d5,f#5] ~@2 d4 ~ d4",
  I: "~@8 d4@3 ~@5", J: "~@2 d4 ~@3 a3 ~@3 b3 ~@3 g3 ~", K: "~@8 c#4@3 ~@5", L: "~@2 c#4@3 ~@3 [g3,d4,g4] ~@7",
  M: "~@2 c#4@3 ~@11", N: "[d4,a4,d5]@5 ~@5 c#4 ~@5", O: "~@4 b4 ~@3 e5 ~@3 c#5 ~@3",
  P: "[e4@19 ~ [e4,b4,e5,a5] ~@5 [e4,b4,e5,g#5] ~@5, e3@11 ~@21]/2", Q: "~@8 d4 ~ c#4 ~@5",
  R: "b4 ~@3 b4 ~@3 e5 ~@3 d#5 ~@3", S: "~@4 c4 ~ c4 ~@5 c4 ~@3", T: "~@8 [d4,a4,d5,g5] ~@7",
  U: "[[a3,e4,a4]@21 ~@3 [d4,a4,d5,f#5] ~@7]/2", V: "[[a3,e4,a4]@21 ~@11]/2", W: "[f3,c4,f4]@11 ~@5",
  X: "[c4,g4,c5]@11 ~@5", Y: "~@8 [b3,f#4,b4]@3 ~@5",
})).s("gm_distortion_guitar").gain(0.41).pan(0.8)

// chords · piano
const piano = note(`<
  ~@8 A@2 ~ B A@2 ~ B A@2 ~ C A@2 ~ C D@2 E@2 D@2 ~@11 A@2 ~ B A@2 ~ B A@2 ~ C A@2 ~ C D@2 E@2 D@2 ~@31 A@2 ~ B A@2 ~ B
  A@2 ~ C A@2 ~ C D@2 E@2 D@2 ~@11
>`.pickRestart({
  A: "[[e4,b4,e5]@27 ~@5]/2", B: "~@8 [g4,d5,g5] ~@7", C: "~@10 [a3,e4,a4] ~@5", D: "[~@8 d4 ~@5 [a3,e4,a4]@13 ~@5]/2",
  E: "[~@14 [e4,b4,e5,g#5]@5 ~@5 [e4,b4,e5,a5] ~@7]/2", // E Esus4
})).s("gm_piano").gain(0.41)

// chords · piano
const piano_2 = note(`<
  ~@10 A@2 ~@2 A@2 ~@2 B@2 ~@2 B@2 C ~ D E C ~@14 A@2 ~@2 A@2 ~@2 B@2 ~@2 B@2 C ~ D E C ~@34 A@2 ~@2 A@2 ~@2 B@2 ~@2 F G
  C ~ D E C ~@12
>`.pickRestart({
  A: "[[g4,d5,g5]@21 ~@5 [a4,e5,a5] ~@5]/2", B: "[[g4,d5,g5]@21 ~@11]/2", C: "[d4,a4,d5]@5 ~@5 c#4 ~@5",
  D: "[e4,b4,e5,g#5]@5 ~@5 [e4,b4,e5,a5] ~@5", E: "~@4 [e4,b4,e5,a5]@3 ~@3 [e4,b4,e5,g#5] ~@5", F: "[g4,d5,g5]",
  G: "[g4,d5,g5]@5 ~@11", // G5
})).s("gm_piano").gain(0.41)

// bass · electric bass pick
const bass = note(`<
  A B C D E F G H E I J K I@2 J K I@2 J K I@2 J K L M N@2 L M O@2 P A B C D E F G H I@2 J K I@2 J K I@2 J K I@2 J K L M
  N@2 L M O@2 P A B C D E F G Q R Q@3 R Q S T J U V T J U V T I W X Y I@2 J K I@2 J K I@2 J K I@2 J K L M N@2 L M O@2 P
  A B C D E F G H
>`.pickRestart({
  A: "e2@3 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", B: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ c3@2",
  C: "~@2 c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", D: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ b2 ~ a2 ~ e2@2",
  E: "~@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", F: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ f#2 ~ a2 ~ c3@2",
  G: "~@2 c3 ~ c3 ~ c3 ~ c3 ~ c4 ~ c3 ~ c3@2", H: "~@2 c3 ~ c3 ~ c4 ~ c3 ~ c4 ~ c3 ~ e2@2",
  I: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", J: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  K: "g2 ~ g2 ~ g2@3 ~ g2 ~ a2 ~ a2 ~ a2 ~", L: "d2@3 ~ d2@3 ~ d2 ~ c#2 ~@3 a1@2",
  M: "~@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", N: "[e2@3 ~ e2@3 ~ e2 ~ e2 ~ e2 ~ e2@5 ~ e2@3 ~ e2 ~ e2 ~ e2 ~ e2 ~]/2",
  O: "b1@11 ~@5", P: "b1@5 ~@3 a1@3 ~ b1@3 ~", Q: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  R: "a2 ~ a2 ~ a2 ~ a2 ~ d3 ~ d3 ~ d3 ~ d3 ~", S: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a3 ~ g2 ~ g2 ~",
  T: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~", U: "a2 ~ a2 ~ a2 ~ a3 ~ a2 ~ a2 ~ a3 ~ a2 ~",
  V: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~ g2 ~ g2 ~", W: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~",
  X: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", Y: "b2 ~ b2 ~ b2 ~ b2 ~ b2@3 ~ d3@3 ~",
})).s("gm_electric_bass_pick").gain(0.41)

// bass · acoustic bass
const bass_2 = note(`<
  A B C D E F G H E I J K I@2 J K I@2 J K I@2 J K L M N@2 L M ~@3 A B C D E F G H I@2 J K I@2 J K I@2 J K I@2 J K L M
  N@2 L M O@2 P A B C D E F G Q R Q@3 R Q S T J U V T J U V T I W X Y I@2 J K I@2 J K I@2 J K I@2 J K L M N@2 L M ~@3 A
  B C D E F G H
>`.pickRestart({
  A: "e1@3 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", B: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ c2@2",
  C: "~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", D: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ b1 ~ a1 ~ e1@2",
  E: "~@2 e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", F: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ f#1 ~ a1 ~ c2@2",
  G: "~@2 c2 ~ c2 ~ c2 ~ c2 ~ c3 ~ c2 ~ c2@2", H: "~@2 c2 ~ c2 ~ c3 ~ c2 ~ c3 ~ c2 ~ e1@2",
  I: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", J: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  K: "g1 ~ g1 ~ g1@3 ~ g1 ~ a1 ~ a1 ~ a1 ~", L: "d1@3 ~ d1@3 ~ d1 ~ c#1 ~@3 a0@2",
  M: "~@2 a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~ a0 ~", N: "[e1@3 ~ e1@3 ~ e1 ~ e1 ~ e1 ~ e1@5 ~ e1@3 ~ e1 ~ e1 ~ e1 ~ e1 ~]/2",
  O: "b0@11 ~@5", P: "b0@5 ~@3 a0@3 ~ b0@3 ~", Q: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  R: "a1 ~ a1 ~ a1 ~ a1 ~ d2 ~ d2 ~ d2 ~ d2 ~", S: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a2 ~ g1 ~ g1 ~",
  T: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", U: "a1 ~ a1 ~ a1 ~ a2 ~ a1 ~ a1 ~ a2 ~ a1 ~",
  V: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ g1 ~ g1 ~ g1 ~", W: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  X: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", Y: "b1 ~ b1 ~ b1 ~ b1 ~ b1@3 ~ d2@3 ~",
})).s("gm_acoustic_bass").gain(0.41)

// other · overdriven guitar
const overdriven_guitar = note("<~@81 A B@2 C D@2 E F G H I J K ~@33>".pickRestart({
  A: "c7@8 ~@4 c7@3 ~", B: "[b6@8 ~@4 a6 b6 a6@10 ~@8]/2", C: "g6 a6 g6 f6 g6 f6 e6 f6 e6 d6 e6 d6 c6 d6 c6 b5",
  D: "c6@5 ~@5 d6@3 ~ e6 ~", E: "c6@11 ~@5", F: "~@2 a4 ~ c5 ~ e5 ~ b5 ~ d6 ~ c6 ~ b5 ~", G: "a5@8 ~@4 c6@3 ~",
  H: "b5@8 ~@4 a5 ~ b5 ~", I: "c6@3 ~ c6@3 ~ c6@3 ~ c6@3 ~", J: "b5@5 ~@3 c6 b5 a5@4 ~@2", K: "d6 b5 a5 ~ b5 ~ g6 ~@9",
})).s("gm_overdriven_guitar").gain(0.41).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  A B@2 C B@2 D E F G F G F G F G F G F G F G F G H F H I H F J K L A B@5 D E F G F G F G F G F G F M F G F N H F H O H
  F J ~ P A B@5 E F M Q@2 F M Q M R@2 S T R@2 S U R@3 V W Q G F G F G F G X V@2 W A B@5 D Y E B Z AA B@2 D AB E B AC AA
  B
>`.pickRestart({
  A: "x ~@2 x ~ x ~ x", B: "~ x ~@2 x!2 ~ x", C: "~ x ~@5 x", D: "~ x ~@2 x!2 ~@2", E: "~ x ~ x ~ x ~ x",
  F: "~ x ~@2 x ~@3", G: "x!2 ~@3 x ~ x", H: "x!2 ~@2 x ~@2 x", I: "~ x ~ x ~@4", J: "x!2", K: "x", L: "~@2 x!2",
  M: "x!2 ~@2 x!2 ~ x", N: "x!2 ~@3 x ~@2", O: "~ x ~ x!2 ~@3", P: "x ~ x!2", Q: "x!2 ~@2 x ~@3", R: "x ~@4 x!2 ~",
  S: "x!2 ~@2 x!2 ~@2", T: "~@4 x!4", U: "x!2 ~ x!5", V: "x ~ x!2 ~ x ~@2 x ~ x!2 ~ x ~@2", W: "x ~@4 x ~ x",
  X: "~@2 x!2 ~ x ~@2 x ~ x!2 ~ x ~@2", Y: "~@7 x", Z: "~@3 x!3 ~ x", AA: "~ x ~@2 x ~@2 x", AB: "~ x ~ x ~@3 x",
  AC: "~ x ~ x!2 ~@2 x",
})).gain(0.41)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@25 A ~@4 B C ~@26 A ~@4 B ~ C ~@6 D ~@19 B ~@4 B ~@4 B ~@22 E ~>".pickRestart({
  A: "~@7 x", B: "~@7 x ~@8", C: "~@3 x ~@4", D: "~@3 x ~ x ~@2", E: "~@5 x ~@2",
})).gain(0.2)

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

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@31 [~@4 x!2 ~@2] ~@32 [x!2 ~@6] ~@40 [~@3 x] ~@21>").gain(0.2)

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@3 A ~@7 B ~@13 C ~@3 D ~ E F ~@7 G ~@7 H ~@13 D ~ I ~@48 J ~@7 K ~@3 L ~
>`.pickRestart({
  A: "~@6 x!3 ~@7", B: "~@11 x ~@4", C: "x!2 ~@14", D: "~@14 x!2", E: "~@6 x!2", F: "x!4 ~@4", G: "~@3 x",
  H: "~@12 x!2 ~@2", I: "~@2 x!6", J: "~@3 x ~ x ~@2", K: "~@4 x!3 ~", L: "~@13 x!2 ~",
})).gain(0.31)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@31 [~@4 x!2 ~@2] ~@32 [x!2 ~@6] ~@62>").gain(0.2)

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

// drums · high tom
const high_tom = s("ht").struct("<~@27 A ~@12 B ~@62 C ~@9 D ~@7 E ~@3 F ~>".pickRestart({
  A: "~@6 x!3 ~ x!3 ~@3", B: "~@5 x ~@2", C: "~@5 x ~ x ~@8", D: "~ x ~ x ~@4", E: "~@3 x ~@4", F: "~@12 x!2 ~@2",
})).gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  A ~ B@2 ~ B ~ C ~ B ~ B ~ B ~@3 B ~ B ~ B ~ B A ~@3 B ~@3 D A ~ B@2 ~ B ~ B ~@3 B ~ B ~ B ~ B ~ B ~ B ~@2 A ~@2 B@2
  ~@3 D A ~ B@2 ~ B@2 ~ E A ~@2 E A ~@3 A E A ~@2 F A ~ A ~ G A B ~ B ~ B ~ B ~ H ~ I A ~ B@2 ~ B ~ B A B J B ~ B ~ B A
  B@2 K ~
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~@4 x ~@2 x", D: "~@2 x!2", E: "~ x", F: "~@5 x ~ x", G: "x ~ x!2", H: "~ x ~@2",
  I: "x ~@3 x ~ x!2", J: "~@3 x ~@3 x", K: "~@4 x ~ x!2",
})).gain(0.41)

// drums · ride bell
const ride_bell = s("rd").struct(`<
// … 12 more lines