Strudelify

Save Me

Michael English

KeyF minorTempo123 bpm
0:00/0:00
// Save Me — Michael English
// 123 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 2 "Bass & Lead" named as a bass, played on electric bass finger (its piano patch is not one); ch 4 "Alto Sax" named as a reed, played on alto sax (its piano patch is not one); ch 5 "Muted Gt." named as a guitar, played on electric guitar muted (its piano patch is not one); ch 6 "Jazz Gt." named as a guitar, played on electric guitar jazz (its piano patch is not one); ch 7 "Trombone" named as a brass, played on trombone (its piano patch is not one); ch 9 "Strings" named as a string part, played on string ensemble 1 (its piano patch is not one); ch 12 "Synth Brass 1" named as a brass, played on synth brass 1 (its piano patch is not one); ch 13 "French Horn" named as a brass, played on french horn (its piano patch is not one); ch 14 "Bassoon" named as a reed, played on bassoon (its piano patch is not one); ch 16 "Steel-str. Gt." named as a guitar, played on acoustic guitar steel (its piano patch is not one)
// note: duplicate parts dropped: ch 13 "French Horn" french horn (copy of ch 7 "Trombone" trombone)
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · piano · "Halo Pad"
const piano = note(`<
  A@6 B@2 C@2 D@2 E@4 C@2 F@2 G@4 H I J@2 H I K@2 ~@14 C@2 D@2 E@4 C@2 F@2 G@4 H I J@2 H I K@2 ~@49
>`.pickRestart({
  A: "[~@6 bb3@25 ~@7 bb3@22 d4@4 ~@6 bb3@25 ~, [bb2,f3]@15 ~ [eb3,f3]@7 ~, [c4,f4]@32 f4@63 ~, ~@32 c4@29 ~@3 c4@32]/6", // Bb5 Ebsus2 F5
  B: "[bb2,f3,bb3,c4,f4]/2", C: "[~@6 bb3@25 ~, [c4,f4]]/2", D: "[~@3 bb3@11 d4@2, f4, c4@7 ~]/2",
  E: "[~@6 bb3@57 ~, [c4,f4]@63 ~]/4", F: "[~@7 d4, f4, c4@7 ~, ~@6 bb3@25 ~]/2", G: "[~@3 bb3@29, [c4,f4]]/4",
  H: "[bb3,eb4,f4]", I: "[bb3,d4,f4]", J: "[[bb3,c4,f4]@31 ~]/2", K: "[bb3@15 ~ a3@16, [c4,f4]]/2",
})).s("gm_piano").gain(0.45)

// bass · electric bass finger · "Bass & Lead"
const bass = note(`<
  A B C D E F G B A H A I J K A B@2 L M N O P Q B R S T@2 U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK@2 AL AM Q AN AO
  AP AQ AR AS@2 AQ AT AU AV A B R S T@2 U AW AX@2 Y Z AA AB AC AD AE AF AG AH AI AJ AY AZ BA BB BC BD BE BF BG BH Y Z AA
  AB AC AD AE AF AG AH AI AJ Y Z AA AB AC AD AE AF AG AH AI AJ AY AZ ~
>`.pickRestart({
  A: "bb0@2 ~ bb0@2 ~ bb0@2 ~@6 bb1 f1", B: "bb0@2 ~ bb0@2 ~ bb0@2 ~@8", C: "bb0@2 ~ bb0@2 ~ bb0@2 ~@7 f1",
  D: "bb0@2 ~ bb0@2 ~ bb0@2 ~@3 f1 c2@2 bb1 f1", E: "eb1@2 ~ eb1@2 ~ eb1@2 ~@6 f1 bb1",
  F: "eb1@2 ~ eb1@2 ~ eb1@2 ~@6 bb1 f1", G: "bb0@2 ~ bb0@2 ~ bb0@2 ~@6 db1 f1",
  H: "bb0@2 ~ bb0@2 ~ bb0 ~@2 bb1 c2@4 bb1@2", I: "bb0@2 ~ bb0@2 ~ bb0 ~@2 bb1 c2@4 bb1 f1",
  J: "eb1@2 ~ eb1@2 ~ eb1 ~@2 f2 g2@4 f2 eb2", K: "eb1@2 ~ eb1@2 ~ eb1@2 ~@6 eb1 bb1",
  L: "bb0@2 ~ bb0@2 ~ bb0 ~@2 bb0 g1@4 bb1@2", M: "bb0@2 ~ bb0@2 ~ bb0 ~@2 bb1 c2@4 bb1 g1",
  N: "bb0@2 ~ bb0@2 ~ bb0@2 ~@2 bb1!2 c2@2 bb1 f1", O: "eb1@2 ~ eb1@2 ~ eb1 ~@7 eb2 bb1",
  P: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 g1@4 bb1@2", Q: "bb0@2 ~ bb0@2 ~ bb0@2 ~@6 bb1!2", R: "c1", S: "eb1",
  T: "[d1@5 c2@2 bb1@4 g1@5]/2", U: "c1@13 ~ c1 d1", V: "eb1@13 ~ eb1 e1", W: "f1@10 g1@3 f1 d1@2",
  X: "f1@10 d2@2 c2 bb1 g1@2", Y: "db2@2 ~ db2@2 ~ db2@2 ~@6 eb2 ab1", Z: "bb1@2 ~ bb1@2 ~ bb1@2 ~@6 bb1!2",
  AA: "ab1@2 ~ ab1@2 ~ ab1@2 ~@6 ab1 eb1", AB: "gb1@2 ~ gb1@2 ~ eb1@5 ~ eb1@4", AC: "db1@2 ~ db1@2 ~ db1@2 ~@6 db2 ab1",
  AD: "bb1@2 ~ bb1@2 ~ bb1@2 ~@6 bb1 ab1", AE: "f1@2 ~ f1@2 ~ f1@2 ~@6 f1!2", AF: "gb1@2 ~ gb1@2 ~ gb1@2 ~@6 gb1 eb1",
  AG: "bb0@2 ~ bb0@2 ~ bb0@7 ~ bb0!2", AH: "bb0@2 ~ bb0@2 ~ bb0@6 bb0@3 ~", AI: "c1@2 ~ c1@2 ~ c2@7 ~ c1!2",
  AJ: "c2@2 ~ c2@2 ~ c2@7 ~ c1!2", AK: "db1@2 ~ db1@2 ~ db1@4 db2!2 db1@2 db2!2", AL: "bb0@3 bb0@2 ~ bb0@2 ~@6 bb1 f1",
  AM: "bb0@2 ~ bb0@2 ~ bb0 ~@3 [f1,gb1] ~@3 bb1@2, ~@5 g1@2 ~", AN: "bb0@2 ~ bb0@3 bb0@2 ~@2 c2@4 bb1 eb2, ~@10 b1 ~@5",
  AO: "eb1@2 ~ eb1@2 ~ eb1@2 ~@6 eb2!2", AP: "eb1@2 ~ eb1@2 ~ eb1 ~@7 g1 bb1",
  AQ: "bb0@2 ~ bb0@2 ~ bb0@2 ~@4 bb1!2 ~ bb1", AR: "bb0@2 ~ bb0@2 ~ bb0@2 ~@3 bb0 bb1 ~ bb1@2, ~@13 c2@2 ~",
  AS: "[bb0@2 ~ bb0@2 ~ bb0@2 ~@6 bb1 ~ bb0@2 ~ bb0@2 ~ bb0@2 ~ bb1 c2@4 bb1@2, ~@15 f1@2 ~@15]/2",
  AT: "bb0@2 ~ bb0@2 ~ bb0 ~@3 c2@4 eb2@2, ~@10 bb1 ~@5", AU: "eb1@2 ~ eb1@2 ~ eb1@2 ~@6 eb1 bb0",
  AV: "eb1@2 ~ eb1@2 ~ eb1 ~@3 eb1 g1@3 bb1@2", AW: "eb1@13 ~ f1 g1", AX: "[f1@22 bb2 c3 d3 c3 bb2 g2 f2 d2 c2 bb1]/2",
  AY: "db1@2 ~ db1@2 ~ db1@4 ~@5 ab1",
  AZ: "db2 db3 db2@2 ab1 ~ ab1@2 bb1 ~ bb1@2 c2 ~ c2@2, ~@5 ab2@2 ~@2 bb2@3 ~ c3@3",
  BA: "e1@2 ~ e1@2 ~ e1@2 ~@6 e1 ab1", BB: "db1@2 ~ db1@2 ~ db1@2 ~@6 db1 eb1", BC: "gb1@2 ~ gb1@2 ~ gb1@2 ~@6 gb1 e1",
  BD: "eb1@2 ~ eb1@2 ~ eb1@2 ~@2 eb1 ~ eb2!2 eb1@2", BE: "e1@2 ~ e1@2 ~ e1@2 ~@2 e1 gb1 ab1@2 ab1 b1",
  BF: "db1@2 ~ db1@2 ~ db1@2 ~@6 db1!2", BG: "gb1@2 ~ gb1@2 ~ gb1@2 ~@6 gb1 ~",
  BH: "ab1@2 ~ ab1@2 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1!2",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · electric guitar muted · "Muted Gt."
const electric_guitar_muted = note(`<
  ~@16 A B A C D E F G H I ~@2 H J ~@16 A B A C D E F G A B A C D E F G H I ~@2 H J ~@51
>`.pickRestart({
  A: "~@7 d4", B: "c4 ~ c4@2 bb3 ~ bb3@2 c4 ~ c4@2 d4 ~ d4 ~", C: "c4 ~ c4 ~ bb3 ~ bb3 ~ d4 ~ d4 ~@5", D: "~@14 bb3 ~",
  E: "eb4 ~ eb4 ~@13", F: "~@10 d4 ~@5", G: "~@2 d4 ~ c4 ~ c4 ~ d4 ~ d4 ~@5",
  H: "~@2 [f4,bb4] ~ [f4,bb4] ~ [eb4,f4] ~ f4 ~ [d4,f4] ~ f4 ~ [c4,f4] ~", // Bb5 Ebsus2 Dm F5
  I: "f4 ~ [f4,bb4] ~ [f4,bb4] ~ [eb4,f4] ~ f4 ~ [d4,f4] ~ [c4,f4] ~ [bb3,f4] ~", // Bb5 Ebsus2 Dm F5 Bb5
  J: "f4 ~ [f4,bb4] ~ [f4,bb4] ~ [eb4,f4] ~ [eb4,f4] ~ [d4,f4] ~ [c4,f4] ~ [bb3,f4] ~", // Bb5 Ebsus2 Dm F5 Bb5
})).s("gm_electric_guitar_muted").gain(0.36)

// chords · electric guitar muted · "Muted Gt." · soft notes
const electric_guitar_muted_2 = note("<~@24 A B ~@2 A C ~@32 A B ~@2 A C ~@51>".pickRestart({
  A: "~@8 eb4 ~@3 d4 ~@3", B: "c4 ~@7 eb4 ~@7", C: "c4 ~@15",
})).s("gm_electric_guitar_muted").gain(0.22)

// chords · electric guitar jazz · "Jazz Gt."
const electric_guitar_jazz = note("<~@16 A ~ A ~ B ~ C ~@23 A ~ A ~ B ~ C ~ A ~ A ~ B ~ C ~@58>".pickRestart({
  A: "~@6 [f4,bb4] ~ [bb4,f5] ~ [bb4,f5] ~ [bb4,f5] ~ [bb4,f5] ~", // Bb5
  B: "~@6 [bb3,f4]@2 [f4,bb4] ~ [f4,bb4] ~ [f4,bb4] ~ [f4,bb4] ~", // Bb5
  C: "~@6 [f4,bb4]@2 [bb4,f5] ~ [bb4,f5] ~ [bb4,f5] ~ [bb4,f5] ~", // Bb5
})).s("gm_electric_guitar_jazz").gain(0.35).pan(0.4)

// other · trombone
const trombone = note(`<
  ~@3 A@3 B C ~@17 D E@2 ~@2 F@2 ~@2 G@2 H ~@2 I J@4 K@2 ~@17 D E@2 ~ E@2 ~@3 G@2 H ~@2 I J@4 K@2 L@2 M@2 L@2 N H E@2 ~
  O@3 ~@2 P@2 Q@2 ~@3 O@3 ~@2 P@2 Q@2 ~@3
>`.pickRestart({
  A: "[f4@11 ~@21 g4@6 f4@6 [eb4,bb4]@2 ~@2, ~@12 bb4@31 ~@5]/3", B: "~@12 f4 g4 bb4!2", C: "~ bb4 ~@14", D: "~@3 bb4",
  E: "[f4@7 ~]/2", F: "f4/2", G: "[ab4@6 gb4 f4]/2", H: "eb4", I: "ab4 gb4", J: "[f4@3 eb4@13]/2",
  K: "[db3,ab3,db4,f4]/2", L: "e4/2", M: "gb4/2", N: "gb4", O: "[~@4 db4 eb4 f4 [db4,f4,ab4]@17]/3",
  P: "[[bb2,gb3]@31 ~]/2", Q: "[[c3,ab3]@31 ~]/2",
})).s("gm_trombone").gain(0.46)

// other · piano · "Controls"
const piano_2 = note(`<
  ~@3 A@2 B C D ~@17 E F@2 ~@2 G@2 H ~@2 I ~ J ~ K ~@5 L ~@17 E F@2 ~ M@2 N H ~@2 I ~ J ~ K ~@5 L ~@5 O ~ P H ~ Q@2 R S
  ~ T ~@3 U H ~ Q@2 R S ~ T ~@3 U ~ L ~
>`.pickRestart({
  A: "[f4@11 ~ bb4@20]/2", B: "bb4@11 ~ [eb4,bb4]@2 ~@2", C: "~@12 f4 g4 bb4!2", D: "~ bb4 ~@8 bb5 ~ bb5!2 ~@2",
  E: "~@3 bb4", F: "[f4@7 ~]/2", G: "f4/2", H: "~@9 db6!2 ~ db6!2 ~@2", I: "~@9 db6 ~@2 db6 ~ db6!2", J: "~@5 db6 ~@2",
  K: "~@8 db6!2 ~ db6 ~ db6 ~@2", L: "db6", M: "[~@4 c5@3 ~, f4@7 ~]/2", N: "~@6 c5 d5 f5!2 ~ f5 ~ f5 ~ f5",
  O: "~ ab4@3", P: "~@10 [c5,c6] ~ [c5,c6] ~ [c5,c6] [db5,db6]", Q: "[~@8 ab5@12 ~@5 db6 ~@2 db6 ~ db6!2]/2",
  R: "~@10 ab5 bb5 db6!2 ~@2", S: "~@10 db6@3 ~@3", T: "~@8 ab5!2 ~ ab5 ~ ab5 ~@2", U: "~@2 ab5 ~ ab5 ~@11",
})).s("gm_piano").gain(0.5)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@24 A B C@2 A B D@2 ~@17 E@3 F@2 ~@3 G@5 A B C@2 A B D@2 ~@8 H@2 I@2 J@2 ~@4 K L M N ~@27
>`.pickRestart({
  A: "[c3,bb3,eb4,f4]", B: "[eb3,bb3,d4,f4]", C: "[d3,bb3,c4,f4]/2", D: "[bb3@15 ~ a3@16, [c4,f4], f3@29 ~@3]/2",
  E: "[~ [c5,f5]@2 bb4@3]/3", F: "[f4@15 ~]/2", G: "[~@3 bb4@2, ~@8 bb5@29 ~@43, ~@4 f5@3 ~@3]/5",
  H: "[[gb3,bb3,db4,f4]@3 [gb3,bb3,db4,eb4]@12 ~]/2", I: "[[ab3,c4,f4]@3 [ab3,c4,eb4]@13]/2", J: "[ab3,db4,f4]/2",
  K: "ab5@6 bb5@6 b5@3 ~", L: "b5@6 bb5@6 ab5@3 ~", M: "ab5@3 bb5@3 gb5@2", N: "ab5",
})).s("gm_string_ensemble_1").gain(0.48)

// chords · piano · "Square Wave"
const piano_3 = note(`<
  ~@32 A@2 B C D@2 B C E@2 F@2 G@2 ~@24 A@2 B C D@2 B C E@2 F@2 G@2 H I J K H I J L A@2 B C D@2 B C E@2 F@2 A@2 B C D@2
  B C E@2 F@2 G@2 ~
>`.pickRestart({
  A: "[db4,f4,ab4]", B: "[db4,f4,ab4]@15 ~", C: "[bb3,db4,f4,ab4]@15 ~", D: "[[db4,f4,ab4]@31 ~]/2",
  E: "[[gb3,bb3,db4,f4]@3 [gb3,bb3,db4,eb4]@12 ~]/2", F: "[[ab3,c4,f4]@3 [ab3,c4,eb4]@13]/2", G: "[ab3,db4,f4]/2",
  H: "[b3,e4,ab4]@15 ~", I: "[e4,gb4,ab4,b4]@15 ~", J: "[db4,gb4,ab4,bb4]@15 ~", K: "[db4,eb4,gb4,ab4]@15 ~",
  L: "db4@7 ~ c4@8, [eb4,ab4]", // Ab5
})).s("gm_piano").gain(0.4)

// other · synth brass 1
const synth_brass_1 = note(`<
  ~@3 A@2 B C D ~@24 E ~@2 F ~ G ~ H ~@5 I ~@24 E ~@2 F ~ G ~ H ~@5 I ~@8 E ~ J@2 K L ~ M ~@3 N E ~ J@2 K L ~ M ~@3 N ~
  I ~
>`.pickRestart({
  A: "[f4@11 ~ bb4@20]/2", B: "bb4@6 [eb4,bb4] ~", C: "~@12 f4 g4 bb4!2", D: "~ bb4 ~@8 bb5 ~ bb5!2 ~@2",
  E: "~@9 db6!2 ~ db6!2 ~@2", F: "~@9 db6 ~@2 db6 ~ db6!2", G: "~@5 db6 ~@2", H: "~@8 db6!2 ~ db6 ~ db6 ~@2", I: "db6",
  J: "[~@8 ab5@12 ~@5 db6 ~@2 db6 ~ db6!2]/2", K: "~@10 ab5 bb5 db6!2 ~@2", L: "~@10 db6@3 ~@3",
  M: "~@8 ab5!2 ~ ab5 ~ ab5 ~@2", N: "~@2 ab5 ~ ab5 ~@11",
})).s("gm_synth_brass_1").gain(0.45)

// other · bassoon
const bassoon = note("<~@84 A B C D E B C F ~@27>".pickRestart({
  A: "ab3@3 bb3@3 b3@2", B: "b3@6 bb3@6 ab3@3 ~", C: "ab3@3 bb3@3 gb3@2", D: "ab3@6 bb3@7 ~@3", E: "ab3@6 bb3@6 b3@3 ~",
  F: "ab3",
})).s("gm_bassoon").gain(0.36)

// other · piano · "E. Piano 2"
const piano_4 = note("<~@84 A B C D E B C F ~@27>".pickRestart({
  A: "ab4@3 bb4@3 b4@2", B: "b4@6 bb4@6 ab4@3 ~", C: "ab4@3 bb4@3 gb4@2", D: "ab4@6 bb4@7 ~@3", E: "ab4@6 bb4@6 b4@3 ~",
  F: "ab4",
})).s("gm_piano").gain(0.8)

// other · acoustic guitar steel · "Steel-str. Gt."
const acoustic_guitar_steel = note("<~@54 [f3 ~ f3!5 ~@9]!8 ~@57>").s("gm_acoustic_guitar_steel").gain(0.46)

// drums · kick
const kick = s("bd").struct(`<
  A@11 B A B A@5 B A B A@5 B A B A@5 B A B A@5 B A B A@3 B A B A@5 B A B A C A@3 B A B A@5 B A B A@5 B A B A@3 B A B A@5
  B A B A@5 B A@3 B A B A@5 B A B ~
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~@9", B: "x ~@2 x ~@2 x ~@7 x ~", C: "x ~@2 x ~@2 x ~@6 x!2 ~",
})).gain(0.5)

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

// drums · low tom
const low_tom = s("lt").struct("<~@31 A ~@21 A ~@15 A ~@21 B ~@11 C ~@7 D ~@7>".pickRestart({
  A: "~@7 x", B: "~@5 x!3", C: "~@9 x!2 ~@5", D: "~@14 x!2",
})).gain(0.5)

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

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@23 B ~@37 B ~@33 C ~@7 D ~@7>".pickRestart({
  A: "~@14 x!2", B: "~@6 x ~@2 x ~@6", C: "~@5 x ~@2 x ~@7", D: "~@10 x!4 ~@2",
})).gain(0.5)

// … 28 more lines