Strudelify

All I want for christmas is You scores

MARIAH CAREY and WALTER AFANASIEFF

KeyB♭ majorTempo146 bpm
0:00/0:00
// All I want for christmas is You scores — MARIAH CAREY and WALTER AFANASIEFF
// 146 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5332552; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(146/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · flute · "Fuvola"
const flute = note(`<
  A@2 B@2 C D E ~ F@2 G@2 H@2 I J ~@4 K@2 C L M N ~@6 O@2 P Q R ~@3 B@2 C L S ~@14 T U V W X Y@2 Z@2 AA@2 AB AC AD@2 ~@2
  K@2 AE AF AG AH AI AJ AK AL@2 AM ~
>`.pickRestart({
  A: "[bb4@2 ~@2 c5@2 ~@2 a4@2 bb4 ~@3 g4@6 a4@2 gb4@2 gb4@4 ab4@2 ~@2]/2",
  B: "[f4@2 ~@2 g4@2 ~@2 bb4@2 f5@2 ~@2 eb5@11 ~@7]/2", C: "d5 c5 bb4 g4", D: "gb4 ~@2 c5 c5@4", E: "c5@15 ~",
  F: "[bb4@2 ~@2 d5@2 ~@2 f5@2 ~@2 a5@2 bb5@6 a5@2 ~@2 g5@2 f5 ~@5]/2",
  G: "[c6@4 bb5@2 ~@2 bb5@2 a5 ~@3 bb5@6 a5@2 g5@2 g5@4 ~@4]/2",
  H: "[~@4 g5@2 ~@2 bb5@4 c6@2 d6@6 c6@2 ~@2 bb5@2 g5 ~@5]/2", I: "eb5@2 ~@2 gb5@2 ~@2 bb5@2 c6 ~@3 db6@2",
  J: "~ c6 ~ ab5 gb5@4", K: "[f4@2 ~@2 g4@2 ~@2 bb4@2 f5@2 ~@2 eb5@13 ~@5]/2", L: "gb4@2 ~@2 c5@3 ~@5 d5@4",
  M: "c5 bb4 bb4@4 bb4 d5", N: "bb4@4 g4@11 ~", O: "[~@4 g4@2 ~@2 bb4@4 c5@2 d5@6 c5@2 ~@2 bb4@2 g4 ~@5]/2",
  P: "eb4@2 ~@2 gb4@2 ~@2 bb4@2 c5 ~@3 db5@2", Q: "db5@2 c5 bb4 ~ ab4 gb4 f4", R: "f4@15 ~", S: "c5@2 bb4@2 bb4@11 ~",
  T: "~@5 g4 a4 bb4", U: "~@8 d5@3 ~ d5@2 d5@2", V: "d5@2 d5@2 d5@3 ~ d5@2 f5 ~@3 g5@2", W: "~@5 d5 f5 ~",
  X: "g5@3 f5 ~@4", Y: "[d5@2 ~@2 c5@2 ~@2 bb4@2 a4 ~@3 bb4@6 a4@2 g4@2 ~@2 f4@6]/2",
  Z: "[~@2 c5@2 bb4@2 a4@2 bb4@2 c5 ~@3 bb4@6 a4@2 g4@2 ~@2 f4@6]/2",
  AA: "[~@4 d5@2 g4@2 bb4@2 c5 ~@3 d5@6 c5@2 bb4 ~@9]/2", AB: "~@2 db5@2 c5@3 ~ bb4@3 ~ c5@3 ~", AC: "db5@2 c5 bb4 ~@4",
  AD: "[bb4@2 ~@2 c5@2 ~@2 a4@2 bb4 ~@3 g4@6 a4@2 gb4@2 gb4@8]/2", AE: "~@12 d5@3 ~", AF: "d5!4 ~@4", AG: "~@12 e5@3 ~",
  AH: "eb5!4 ~@4", AI: "d5@2 ~@2 c5@2 ~@2 bb4@2 g4 ~@3 gb4@2", AJ: "~@3 c5 c5@4", AK: "c5@11 ~@5",
  AL: "[~@14 bb4@6 c5@2 ~@2 d5@2 f5 ~@3 g5@2]/2", AM: "~@8 g5@3 ~@3 g5@2",
})).s("gm_flute").gain(0.4)

// other · flute · "Fuvola" · soft notes
const flute_soft = note("<~@60 [d5!4 ~@4] ~@17 [~@2 d5!4 ~@2] ~ [~@2 e5!4 ~@2] ~@8>").s("gm_flute").gain(0.2)

// other · trumpet · "B trombita"
const trumpet = note(`<
  A@2 B@2 C D E ~ F@2 G@2 H@2 I J ~@4 K@2 C L M N ~@6 H@2 I O P ~@3 B@2 C L Q ~@14 R S T U V W@2 X@2 Y@2 Z AA AB@2 ~@2
  K@2 AC AD AE AF AG AH AI AJ@2 AK ~
>`.pickRestart({
  A: "[bb4@2 ~@2 c5@2 ~@2 a4@2 bb4 ~@3 g4@6 a4@2 gb4@2 gb4@4 ab4@2 ~@2]/2", B: "[f4 ~ g4 ~ bb4 f5 ~ eb5@6 ~@3]/2",
  C: "d5 c5 bb4 g4", D: "gb4 ~@2 c5 c5@4", E: "c5",
  F: "[bb3@2 ~@2 d4@2 ~@2 f4@2 ~@2 a4@2 bb4@6 a4@2 ~@2 g4@2 f4 ~@5]/2",
  G: "[c5@4 bb4@2 ~@2 bb4@2 a4 ~@3 bb4@6 a4@2 g4@2 g4@4 ~@4]/2",
  H: "[~@4 g4@2 ~@2 bb4@4 c5@2 d5@6 c5@2 ~@2 bb4@2 g4 ~@5]/2", I: "eb4@2 ~@2 gb4@2 ~@2 bb4@2 c5 ~@3 db5@2",
  J: "~ c5 ~ ab4 gb4@4", K: "[f4 ~ g4 ~ bb4 f5 ~ eb5@7 ~@2]/2", L: "gb4@2 ~@2 c5@3 ~@5 d5@4", M: "c5 bb4 bb4@4 bb4 d5",
  N: "bb4 g4@3", O: "db5@2 c5 bb4 ~ ab4 gb4 f4", P: "f4", Q: "c5 bb4 bb4@6", R: "~@5 g4 a4 bb4",
  S: "~@8 d5@3 ~ d5@2 d5@2", T: "d5@2 d5@2 d5@3 ~ d5@2 f5 ~@3 g5@2", U: "~@5 d5 f5 ~", V: "g5@3 f5 ~@4",
  W: "[d5@2 ~@2 c5@2 ~@2 bb4@2 a4 ~@3 bb4@6 a4@2 g4@2 ~@2 f4@6]/2",
  X: "[~@2 c5@2 bb4@2 a4@2 bb4@2 c5 ~@3 bb4@6 a4@2 g4@2 ~@2 f4@6]/2",
  Y: "[~@4 d5@2 g4@2 bb4@2 c5 ~@3 d5@6 c5@2 bb4 ~@9]/2", Z: "~@2 db5@2 c5@3 ~ bb4@3 ~ c5@3 ~", AA: "db5@2 c5 bb4 ~@4",
  AB: "[bb4@2 ~@2 c5@2 ~@2 a4@2 bb4 ~@3 g4@6 a4@2 gb4@2 gb4@8]/2", AC: "~@12 d5@3 ~", AD: "d5!4 ~@4", AE: "~@12 e5@3 ~",
  AF: "eb5!4 ~@4", AG: "d5@2 ~@2 c5@2 ~@2 bb4@2 g4 ~@3 gb4@2", AH: "~@3 c5 c5@4", AI: "c5@3 ~",
  AJ: "[~@14 bb4@6 c5@2 ~@2 d5@2 f5 ~@3 g5@2]/2", AK: "~@8 g5@3 ~@3 g5@2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B trombita" · soft notes
const trumpet_soft = note("<~@60 [d5!4 ~@4] ~@17 [~@2 d5!4 ~@2] ~ [~@2 e5!4 ~@2] ~@8>").s("gm_trumpet").gain(0.2)

// other · trumpet · "B trombita"
const trumpet_2 = note(`<
  A@2 B@2 C D E ~ F@2 G@2 H@2 I J ~@4 K@2 C L M N ~@6 H@2 O P Q ~@3 B@2 C L R ~@3 S@2 T@2 ~@7 U V W X Y Z@2 AA@2 AB@2 AC
  AD AE@2 ~@2 K@2 AF AG AH AI AJ AK AL AM@2 AN ~
>`.pickRestart({
  A: "[bb4@2 ~@2 c5@2 ~@2 a4@2 bb4 ~@3 g4@6 a4@2 gb4@2 gb4@4 ab4@2 ~@2]/2", B: "[f4 ~ g4 ~ bb4 d5 ~ b4@6 ~@3]/2",
  C: "d5 c5 bb4 g4", D: "gb4 ~@2 a4 a4@4", E: "a4",
  F: "[bb3@2 ~@2 d4@2 ~@2 f4@2 ~@2 a4@2 bb4@6 a4@2 ~@2 g4@2 f4 ~@5]/2",
  G: "[c5@4 bb4@2 ~@2 bb4@2 a4 ~@3 bb4@6 a4@2 g4@2 g4@4 ~@4]/2",
  H: "[~@4 g4@2 ~@2 bb4@4 c5@2 d5@6 c5@2 ~@2 bb4@2 g4 ~@5]/2", I: "eb4@2 ~@2 gb4@2 ~@2 bb4@2 c5 ~@3 db5@2",
  J: "~ c5 ~ ab4 gb4@4", K: "[f4 ~ g4 ~ bb4 d5 ~ b4@7 ~@2]/2", L: "gb4@2 ~@2 c5@3 ~@5 d5@4", M: "c5 bb4 bb4@4 bb4 d5",
  N: "bb4 g4@3", O: "eb4@2 ~@2 gb4@2 ~@2 gb4@2 ab4 ~@3 bb4@2", P: "bb4@2 ab4 gb4 ~ ab4 gb4 f4", Q: "f4",
  R: "c5 bb4 bb4@6", S: "[~@4 d5@2 d5 eb5@2 d5 ~ c5 ~ bb4@3]/2", T: "[g4@2 a4 bb4 ~ c5 ~ c5@3 bb4@4 ~@2]/2",
  U: "~@5 g4 a4 bb4", V: "~@8 bb4@3 ~ bb4@2 bb4@2", W: "bb4@2 bb4@2 bb4@3 ~ bb4@2 d5 ~@3 eb5@2", X: "~@5 bb4 d5 ~",
  Y: "eb5@3 d5 ~@4", Z: "[bb4@2 ~@2 a4@2 ~@2 g4@2 f4 ~@3 g4@6 f4@2 f4@2 ~@2 f4@6]/2",
  AA: "[~@2 a4@2 g4@2 f4@2 g4@2 a4 ~@3 g4@6 f4@2 f4@2 ~@2 f4@6]/2",
  AB: "[~@4 bb4@2 g4@2 g4@2 a4 ~@3 bb4@6 bb4@2 g4 ~@9]/2", AC: "~@2 bb4@2 ab4@3 ~ gb4@3 ~ ab4@3 ~",
  AD: "bb4@2 ab4 gb4 ~@4", AE: "[bb4@2 ~@2 c5@2 ~@2 a4@2 bb4 ~@3 g4@6 a4@2 gb4@2 gb4@8]/2", AF: "~@12 bb4@3 ~",
  AG: "bb4!4 ~@4", AH: "~@12 c5@3 ~", AI: "b4!4 ~@4", AJ: "d5@2 ~@2 c5@2 ~@2 bb4@2 g4 ~@3 gb4@2", AK: "~@3 a4 a4@4",
  AL: "a4@3 ~", AM: "[~@14 g4@6 a4@2 ~@2 bb4@2 d5 ~@3 e5@2]/2", AN: "~@8 e5@3 ~@3 e5@2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B trombita" · soft notes
const trumpet_soft_2 = note("<~@60 [bb4!4 ~@4] ~@17 [~@2 bb4!4 ~@2] ~ [~@2 c5!4 ~@2] ~@8>").s("gm_trumpet").gain(0.2)

// other · tenor sax · "Tenorszaxofon"
const tenor_sax = note(`<
  A@2 B@2 C D E ~@4 F G H I ~ J@2 K@2 ~@8 L@2 M@2 N ~@3 O@2 P@2 ~@2 Q R ~ S T@2 E ~@3 U@2 V W X@2 Y@2 ~ Z@2 AA AB@2 AC@2
  AD@2 AE AF AG ~ P@2 ~ AH AI AJ AK ~ AL AM AN AO AP AQ AR
>`.pickRestart({
  A: "[ab3@2 ~@2 ab3@2 ~@2 ab3@2 ab3 ~@3 f3@6 f3@2 e3@2 e3@4 e3@2 ~@2]/2", B: "[bb3@4 gb3!2 ~ b3@6 ~@3]/2",
  C: "bb4 a4 g4 eb4", D: "c4 ~@2 a3 a3@4", E: "a3", F: "~@6 f4 eb4", G: "eb4@4 c4@3 c4", H: "c4!2", I: "c4@6 c4!2",
  J: "[bb3@2 ~@2 c4@2 ~@2 a3@2 bb3 ~@3 g3@6 a3@2 gb3@2 gb3@8]/2",
  K: "[~@2 bb3@2 ~@2 c4 ~ a3@2 bb3 ~@3 g3@6 a3@2 gb3@2 gb3@8]/2",
  L: "[bb3@2 ~@2 d4@2 ~@2 f4@2 ~@2 a4@2 bb4@6 a4@2 ~@2 g4@2 f4 ~@5]/2",
  M: "[c5@4 bb4@2 ~@2 bb4@2 a4 ~@3 bb4@6 a4@2 g4@2 g4@4 f4@2 eb4@2]/2", N: "eb4",
  O: "[c4@2 ~@2 d4@2 ~@2 d4@2 d4 ~@3 bb3@6 d4@2 c4@2 c4@8]/2",
  P: "[~@2 c4@2 ~@2 d4 ~ d4@2 d4 ~@3 bb3@6 d4@2 c4@2 c4@8]/2", Q: "bb4 g4 f4 eb4", R: "c4@4 eb4@3 ~@9", S: "~@6 d4 ~",
  T: "[bb3 c4 ~ eb4 ~ f4 ~ g4@4 gb4 ~ eb4 ~ c4]/2", U: "[~@8 c4@2 d4 ~@3 f4@6 d4@2 c4@2 ~@2 a3@2 bb3@2 c4@2]/2",
  V: "d4 f4 g4 d4 f4 d4 bb3 g3", W: "g3 ~", X: "[bb3@6 bb3 bb3@4 bb3 ~@4]/2",
  Y: "[~ a3 bb3 c4 d4 f4 ~ g4@2 d4 c4 bb3 bb3@2 ~@2]/2", Z: "[~@7 g4@3 f4 d4 f4 d4 f4 ~]/2", AA: "g4@3 f4 ~@4",
  AB: "[g4@2 ~@2 f4@2 ~@2 f4@2 d4 ~@3 f4@6 d4@2 d4@2 ~@2 f4@6]/2",
  AC: "[~@2 f4@2 f4@2 d4@2 d4@2 eb4 ~@3 f4@6 d4@2 d4@2 ~@2 f4@6]/2",
  AD: "[~@4 g4@2 g4@2 eb4@2 f4 ~@3 g4@6 g4@2 eb4 ~@9]/2", AE: "~@2 gb4@2 f4@3 ~ eb4@3 ~ f4@3 ~",
  AF: "gb4@2 f4 eb4 ~ ab4 gb4 f4", AG: "f4@3 ~", AH: "~@5 g4 d4 f4", AI: "f4", AJ: "~@5 d4 f4 g4", AK: "g4",
  AL: "bb4@2 ~@2 g4@2 ~@2 f4@2 eb4 ~@3 c4@2", AM: "~@3 a3 a3@4", AN: "a3@3 ~",
  AO: "bb3@2 ~@2 d4@2 ~@2 f4@2 a4 ~@3 f4@2", AP: "~@7 e4", AQ: "~@8 e4@3 ~@3 e4 ~", AR: "e4",
})).s("gm_tenor_sax").gain(0.4)

// other · trombone · "Harsona"
const trombone = note(`<
  A@2 B@2 C D C ~ E F G@2 ~@3 H I J I K L M N O ~ P Q R E S T@2 U V W@2 ~@4 L M X Y Z AA ~@2 AB AC C AD AE@2 AF AG AH@2
  C ~ AI AJ AK AL AM@2 AN@2 AO@2 AP AQ AR@2 AS ~ L M ~@11
>`.pickRestart({
  A: "[d4@2 ~@2 d4@2 ~@2 db4@2 db4 ~@3 b3@6 b3@2 bb3@2 bb3@4 bb3@2 ~@2]/2", B: "[d4@4 f4!2 ~ eb4@6 ~@3]/2", C: "d4",
  D: "c4 ~@2 d4 d4@4", E: "d4@6 d4!2", F: "d4!2", G: "[f4 ~@3 d4@3 d4@4 d4 ~@4]/2", H: "~ eb4", I: "d4@4 d4@3 d4",
  J: "~@3 e4@3 eb4@2", K: "~@3 eb4 eb4@2 c4@2", L: "d4@8 d4@2 f4 ~@3 eb4@2", M: "eb4@3 ~", N: "d4 c4 bb3 eb4",
  O: "eb4@4 eb4@3 ~@9", P: "~@4 g3 ~ bb3 ~", Q: "d4@4 d4 f4 d4 ~", R: "d4@3 c4 ~@4", S: "d4@4 d4 ~@3",
  T: "[f4@4 d4@3 d4@4 d4 ~@4]/2", U: "~@4 d4@3 f4", V: "f4@8 f4@2 d4 ~@5",
  W: "[c4@8 eb4@2 eb4 ~@3 f4@6 eb4@2 db4@2 ~@8]/2", X: "eb4 bb3", Y: "c4@4 c4@3 ~@9", Z: "~@5 d4 c4 ~",
  AA: "bb3@2 a3 g3 g3@4", AB: "~@7 eb4", AC: "eb4", AD: "d4@4 ~@2 d4 ~", AE: "[eb4@6 eb4 f4@4 f4 ~@4]/2",
  AF: "~@2 d4 ~ d4 ~@2 d4", AG: "d4 ~", AH: "[~@4 gb3@2 ~@2 bb3@2 c4 ~@3 db4@6 c4@2 bb3@2 ~@2 c4@6]/2",
  AI: "~@8 d4@3 ~ d4@2 d4@2", AJ: "d4@2 d4@2 d4@3 ~ d4@2 f4 ~@3 eb4@2", AK: "~@5 c4 eb4 ~", AL: "eb4@3 eb4 ~@4",
  AM: "[d4@2 ~@2 c4@2 ~@2 d4@2 c4 ~@3 d4@6 c4@2 d4@2 ~@2 d4@6]/2",
  AN: "[~@2 c4@2 d4@2 c4@2 d4@2 d4 ~@3 d4@6 d4@2 d4@2 ~@2 d4@6]/2",
  AO: "[~@4 d4@2 d4@2 d4@2 eb4 ~@3 d4@6 bb3@2 bb3 ~@9]/2", AP: "~@2 db4@2 c4@3 ~ bb3@3 ~ c4@3 ~",
  AQ: "db4@2 c4 bb3 ~@4", AR: "[d4@4 c4 ~@2 bb3@4 e4@3 eb4 ~]/2", AS: "d4 ~@7",
})).s("gm_trombone").gain(0.4)

// other · trombone · "Harsona" · soft notes
const trombone_soft = note("<~@60 A ~@17 B A B A ~ C D E@2 F ~>".pickRestart({
  A: "d4!4 ~@4", B: "~@4 d4@2 d4@2 d4@2 d4@2 d4@3 ~", C: "~@3 d4 d4@4", D: "d4@3 ~",
  E: "[f4@2 ~@2 f4@2 ~@2 f4@2 f4 ~@3 f4@6 f4@2 ~@2 f4@2 f4 ~@3 e4@2]/2", F: "~@8 e4@3 ~@3 e4@2",
})).s("gm_trombone").gain(0.2)

// bass · tuba
const bass = note(`<
  A B C@2 D E F ~ G@3 H I@2 J@2 G K L M N O P Q R L P E G@3 H I@2 J@2 G K L M N O P S R L T@2 U V W X U@2 W Y J@2 N L
  P@2 N@2 Z AA Z AB AC AD AE AF Z AG AH AI AJ@2 AK AL AM AN AO AP AQ AR@2 AS AT
>`.pickRestart({
  A: "bb3 ~ bb3 ~ a3 ~ a3 ~", B: "g3 ~@2 gb3@3 gb3 ~", C: "[bb3 ~ bb3 ~ ab3!2 ~ g3@3 g3@2 bb2@2 bb2@2]/2", D: "c3!2",
  E: "f3 ~@2 f3 f3@4", F: "f3", G: "bb2 ~ bb2 ~ bb2 ~ bb2 ~", H: "bb2 ~ c3 ~ db3 ~ d3 ~", I: "eb3 ~ eb3 ~ eb3 ~ eb3 ~",
  J: "gb3 ~ gb3 ~ gb3 ~ gb3 ~", K: "bb2 ~ bb2 ~ d3 ~ d3 ~", L: "g3 ~ g3 ~ g3 ~ g3 ~", M: "g3 ~ g3 ~ gb3 ~ gb3 ~",
  N: "f3 ~ f3 ~ f3 ~ f3 ~", O: "g3 ~ g3 ~ g3 ~ b2 ~", P: "c3 ~ c3 ~ c3 ~ c3 ~", Q: "f3 ~ f3 ~ f3@2 ~@2",
  R: "bb3 ~ bb3 ~ bb3 ~ bb3 ~", S: "f3 ~ f3 ~@5", T: "[c3!2 ~ c3 ~ c3 ~ f3@4 f3 ~ f3 ~ f3]/2", U: "d3 ~ d3 ~ d3 ~ d3 ~",
  V: "d3 ~ c3 ~ bb2 ~ a2 ~", W: "g2 ~ g2 ~ g2 ~ g2 ~", X: "g2 ~ g2 ~ g2 ~ c3 ~", Y: "g2 ~ g2 ~ g2 ~ g3 ~",
  Z: "bb2 c3 d3 f3", AA: "bb3 a3 g3 f3", AB: "bb2 c3 db3 d3", AC: "eb3!2 bb3 bb2", AD: "eb3 bb2 eb3 f3",
  AE: "gb3 db3 gb3 db3", AF: "gb3 db3 bb2 db3", AG: "bb2!2 d3!2", AH: "g3 d3 bb2 d3", AI: "g3@2 g3!2 g3@2 g3@2",
  AJ: "[f3@4 f3@4 f3@2 f3 ~@3 g3@6 d3@4 g3@4 g3@4]/2", AK: "c3 eb3 g3 c3", AL: "f3 c3 f2 f3", AM: "d3 f3 a3 d3",
  AN: "g3 d3 bb2 g3", AO: "c3 d3 eb3 c3", AP: "f3 c3 f3 c3", AQ: "f3 c3 f3 a3",
  AR: "[bb3@2 ~@2 f3@2 ~@2 bb3@2 bb3 ~@3 bb3@6 f3@2 ~@2 bb3@2 bb3 ~@3 bb3@2]/2", AS: "~@4 bb2@3 ~ bb2@2 bb2 ~@3 bb2@2",
  AT: "bb2",
})).s("gm_tuba").gain(0.3)

// drums · kick
const kick = s("bd").struct("<[x!2]!7 ~ [x!2]!78 [x!2 ~@2] [x ~@7 x ~@2 x ~ x ~@2] [x!3 ~]>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 [~@4 x!2 ~ x!2 ~@2 x ~ x ~@2] ~@78 [~@6 x!2] ~ [~@4 x!8 ~@4]>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@88 [~@3 x]>").gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@7 [x!2 ~ x ~@12] ~@52 [x!5 ~ x!2] ~@25 [~@4 x!2 ~@2] ~ [x!4 ~@12]>").gain(0.3)

// drums · ride
const ride = s("rd").struct(`<
  [x!4]!7
  [x ~@3 x!2 ~@2 x ~@2 x ~ x ~@2]
  [x!4]!52
  [x!5 ~ x!2]
  [x!4]!26
  [x!4 ~@4 x ~@2 x ~ x ~@2]
  ~
>`).gain(0.3)

stack(
  flute, flute_soft, trumpet, trumpet_soft, trumpet_2, trumpet_soft_2, tenor_sax, trombone, trombone_soft, bass, kick,
  mid_tom, crash, high_tom, ride
)