Strudelify

rock around the clock

RP

KeyE♭ majorTempo176 bpm
0:00/0:00
// rock around the clock — RP
// 176 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5855015; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 60 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(176/4)

// 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 · flute · "Flauto"
const flute = note(`<
  A B C D E F G H I J K L M N O P Q@3 ~ R@2 S T U V W X Y Z W X ~@11 AA AB AC AB AC AB AC AB AC AD AC AE AF AG AH@3
>`.pickRestart({
  A: "eb5 ~ eb5 ~ eb5!3 ~", B: "eb5!3 ~ eb5 ~@3", C: "g5 ~ g5 ~ g5!3 ~", D: "g5!3 ~ g5 ~@3", E: "bb5 ~ bb5 ~ bb5!3 ~",
  F: "bb5@2 bb5@2 bb5@2 ~@2 bb5 ~ bb5@2 bb5@2 bb5@2", G: "bb5 ~@2 bb5!2 ~@2 bb5",
  H: "bb5@2 ~@2 bb5@2 bb5 ~@3 bb5@2 bb5@2 bb5@2", I: "eb5 ~ g5 ~ bb5@4", J: "eb5 ~ g5 bb5@2 bb5@2 bb5",
  K: "eb5 ~ g5 ~ bb5@2 c6 bb5", L: "db6 ~ bb5 g5@2 eb5 f5 eb5", M: "bb5 ~@2 ab5 gb5@2 eb5 ~",
  N: "bb5@2 ~@2 ab5@2 gb5 ~@3 bb5@2 bb5@2 bb5@2", O: "bb5 ~ ab5 ~ g5@2 eb5 ~", P: "bb5@4 ab5@2 g5 ~@3 ab5@2 ab5@2 g5@2",
  Q: "[ab5@2 ~@2 ab5@2 g5@2 ab5@2 ~@2 bb5@2 bb5@6 ab5@2 ~@2 gb5@4 eb5@2 eb5@17 ~]/3", R: "eb6@3 ~@7 eb6@6",
  S: "eb6@3 ~@13", T: "db6@15 ~", U: "~@2 c6@3 ~@3 c6@3 ~@5", V: "c6@3 ~@3 c6 ~@9", W: "~@2 bb5@3 ~@3 bb5@3 ~@5",
  X: "bb5@3 ~@3 bb5 ~@9", Y: "bb5", Z: "ab5@15 ~", AA: "~@4 e6!3 ~", AB: "f6@3 ~ f6@3 ~ f6@4 ~@2 f6 ~",
  AC: "~@2 f6 ~@3 f6@2 f6@2 f6@2 f6@2 ~@2", AD: "g6@3 ~ g6@3 ~ g6@4 ~@2 f6 ~", AE: "f6!3 c6 eb6!3 c6",
  AF: "d6!3 bb5 db6!3 b5", AG: "c6@3 ~@13", AH: "[c6@2 d6@2 e6@2 f6 ~@5 c6@21 ~@15]/3",
})).s("gm_flute").gain(0.4)

// other · flute · "Flauto" · soft notes
const flute_soft = note("<~@31 A B C B C B C B C D C E F ~@16>".pickRestart({
  A: "~@5 bb5 c6 ~", B: "eb6@3 ~ eb6@3 ~ eb6@3 ~@3 eb6 ~", C: "~@2 eb6 ~@3 eb6@2 eb6@2 eb6@2 eb6@2 ~@2",
  D: "f6@3 ~ f6@3 ~ f6@3 ~@3 eb6 ~", E: "eb6@3 ~ eb6@3 ~ eb6@3 ~@3 e6 ~", F: "~@2 e6 ~@3 e6@2 ~@8",
})).s("gm_flute").gain(0.15)

// other · clarinet · "Clarinetto 1"
const clarinet = note(`<
  A B A B A C D E F G H I J K L M N@3 ~ O@2 P Q R S T U V W T U ~@11 X Y Z Y Z Y Z Y Z AA Z AB AC AD AE@3
>`.pickRestart({
  A: "eb5 ~ eb5 ~ eb5!3 ~", B: "eb5!3 ~ eb5 ~@3", C: "eb5@2 eb5@2 eb5@2 ~@2 eb5 ~ eb5@2 eb5@2 eb5@2",
  D: "d5 ~@2 d5!2 ~@2 d5", E: "d5@2 ~@2 d5@2 d5 ~@3 d5@2 d5@2 d5@2", F: "eb5 ~ g5 ~ bb5@4",
  G: "eb5 ~ g5 bb5@2 bb5@2 bb5", H: "eb5 ~ g5 ~ bb5@2 c6 bb5", I: "db6 ~ bb5 g5@2 eb5 f5 eb5",
  J: "bb5 ~@2 ab5 gb5@2 eb5 ~", K: "bb5@2 ~@2 ab5@2 gb5 ~@3 bb5@2 bb5@2 bb5@2", L: "bb5 ~ ab5 ~ g5@2 eb5 ~",
  M: "bb5@4 ab5@2 g5 ~@3 ab5@2 ab5@2 g5@2", N: "[ab5 ~ ab5 g5 ab5 ~ bb5 bb5@3 ab5 ~ gb5@2 eb5 eb5@9]/3",
  O: "g5@3 ~@7 g5@6", P: "g5@3 ~@13", Q: "g5", R: "~@2 gb5@3 ~@3 gb5@3 ~@5", S: "gb5@3 ~@3 gb5 ~@9",
  T: "~@2 g5@3 ~@3 g5@3 ~@5", U: "g5@3 ~@3 g5 ~@9", V: "ab5", W: "gb5", X: "~@4 g5!3 ~",
  Y: "f5@3 ~ f5@3 ~ f5@4 ~@2 f5 ~", Z: "~@2 f5 ~@3 f5@2 f5@2 f5@2 f5@2 ~@2", AA: "g5@3 ~ g5@3 ~ g5@4 ~@2 f5 ~",
  AB: "f5!3 c5 eb5!3 c5", AC: "d5!3 bb4 db5!3 b4", AD: "c5@3 ~@13", AE: "[c5@2 d5@2 e5@2 f5 ~@5 g5@22 ~@14]/3",
})).s("gm_clarinet").gain(0.4)

// other · clarinet · "Clarinetto 1" · soft notes
const clarinet_soft = note("<~@31 A B C B C D E B C F E B G ~@16>".pickRestart({
  A: "~@5 bb4 c5 ~", B: "g5@3 ~ g5@3 ~ g5@3 ~@3 g5 ~", C: "~@2 g5 ~@3 g5@2 g5@2 g5@2 g5@2 ~@2",
  D: "gb5@3 ~ gb5@3 ~ gb5@3 ~@3 gb5 ~", E: "~@2 gb5 ~@3 gb5@2 gb5@2 gb5@2 gb5@2 ~@2",
  F: "ab5@3 ~ ab5@3 ~ ab5@3 ~@3 gb5 ~", G: "~@2 g5 ~@3 g5@2 ~@8",
})).s("gm_clarinet").gain(0.15)

// other · clarinet · "Clarinetto 2"
const clarinet_2 = note(`<
  A B A B C D E F G H I J K L M N O@3 ~ P@2 Q R S T S T U V S T ~@11 W X Y X Y X Y X Y Z Y AA AB AC AD@3
>`.pickRestart({
  A: "eb5 ~ eb5 ~ eb5!3 ~", B: "eb5!3 ~ eb5 ~@3", C: "g4 ~ g4 ~ g4!3 ~", D: "g4@2 g4@2 g4@2 ~@2 g4 ~ g4@2 g4@2 g4@2",
  E: "ab4 ~@2 ab4!2 ~@2 ab4", F: "ab4@2 ~@2 ab4@2 ab4 ~@3 ab4@2 ab4@2 ab4@2", G: "eb4 ~ g4 ~ bb4@4",
  H: "eb4 ~ g4 bb4@2 bb4@2 bb4", I: "eb4 ~ g4 ~ bb4@2 c5 bb4", J: "db5 ~ bb4 g4@2 eb4 f4 eb4",
  K: "bb4 ~@2 ab4 gb4@2 eb4 ~", L: "bb4@2 ~@2 ab4@2 gb4 ~@3 bb4@2 bb4@2 bb4@2", M: "bb4 ~ ab4 ~ g4@2 eb4 ~",
  N: "bb4@4 ab4@2 g4 ~@3 ab4@2 ab4@2 g4@2", O: "[ab4 ~ ab4 g4 ab4 ~ bb4 bb4@3 ab4 ~ gb4@2 eb4 eb4@9]/3",
  P: "bb4@3 ~@7 bb4@6", Q: "bb4@3 ~@13", R: "[bb4,g5]", S: "~@2 eb5@3 ~@3 eb5@3 ~@5", T: "eb5@3 ~@3 eb5 ~@9", U: "d5",
  V: "c5", W: "~@4 bb4!3 ~", X: "f5@3 ~ f5@3 ~ f5@4 ~@2 f5 ~", Y: "~@2 f5 ~@3 f5@2 f5@2 f5@2 f5@2 ~@2",
  Z: "e5@3 ~ e5@3 ~ e5@4 ~@2 f5 ~", AA: "f5!3 c5 eb5!3 c5", AB: "d5!3 bb4 db5!3 b4", AC: "c5@3 ~@13",
  AD: "[c5@2 d5@2 e5@2 f5 ~@5 d5@22 ~@14]/3",
})).s("gm_clarinet").gain(0.4)

// other · clarinet · "Clarinetto 2" · soft notes
const clarinet_soft_2 = note("<~@31 A B C D E F G B C H G B I ~@16>".pickRestart({
  A: "~@5 bb4 c5 ~", B: "bb4@3 ~ bb4@3 ~ bb4@3 ~@3 bb4 ~", C: "~@2 bb4 ~@3 bb4@2 bb4@2 bb4@2 bb4@2 ~@2",
  D: "bb4@3 ~ bb4@3 ~ bb4@3 ~@3 db5 ~", E: "~@2 db5 ~@3 db5@2 db5@2 db5@2 db5@2 ~@2", F: "c5@3 ~ c5@3 ~ c5@3 ~@3 c5 ~",
  G: "~@2 c5 ~@3 c5@2 c5@2 c5@2 c5@2 ~@2", H: "d5@3 ~ d5@3 ~ d5@3 ~@3 c5 ~", I: "~@2 bb4 ~@3 bb4@2 ~@8",
})).s("gm_clarinet").gain(0.15)

// other · alto sax · "Sax Contralto"
const alto_sax = note(`<
  ~@2 A B C ~ D@2 E F E G E F E H I@2 E J K@2 L M N O P Q R S P Q ~@11 T U V W X Y Z U V AA Z AB AC AD AE@3
>`.pickRestart({
  A: "g3@3 ~@13", B: "~@5 g3!2 ~", C: "bb3@3 ~@13", D: "~@4 d4@3 ~@5 d4@3 ~", E: "~ eb4@3 eb4@4", F: "eb4@3 eb4@5",
  G: "eb4", H: "eb4@2 eb4 eb4@5", I: "[f4@6 f4 eb4@9]/2", J: "eb4@6 eb4 ~@9", K: "g4@3 ~@7 g4@6", L: "g4@3 ~@13",
  M: "g4", N: "~@2 gb4@3 ~@3 gb4@3 ~@5", O: "gb4@3 ~@3 gb4 ~@9", P: "~@2 g4@3 ~@3 g4@3 ~@5", Q: "g4@3 ~@3 g4 ~@9",
  R: "ab4", S: "gb4", T: "~@4 e4!3 ~", U: "c5@3 ~ c5@3 ~ c5@4 ~@2 c5 ~", V: "~@2 c5 ~@3 c5@2 c5@2 c5@2 c5@2 ~@2",
  W: "c5@3 ~ c5@3 ~ c5@4 ~@2 eb5 ~", X: "~@2 eb5 ~@3 eb5@2 eb5@2 eb5@2 eb5@2 ~@2", Y: "d5@3 ~ d5@3 ~ d5@4 ~@2 d5 ~",
  Z: "~@2 d5 ~@3 d5@2 d5@2 d5@2 d5@2 ~@2", AA: "bb4@3 ~ bb4@3 ~ bb4@4 ~@2 d5 ~", AB: "f4!3 c4 eb4!3 c4",
  AC: "d4!3 bb3 db4!3 b3", AD: "c4@3 ~@13", AE: "[c4@2 d4@2 e4@2 f4 ~@5 eb4@22 ~@14]/3",
})).s("gm_alto_sax").gain(0.4)

// other · alto sax · "Sax Contralto" · soft notes
const alto_sax_soft = note("<~@31 A B C B C B C B C D C E F ~@16>".pickRestart({
  A: "~@5 bb3 c4 ~", B: "eb4@3 ~ eb4@3 ~ eb4@3 ~@3 eb4 ~", C: "~@2 eb4 ~@3 eb4@2 eb4@2 eb4@2 eb4@2 ~@2",
  D: "f4@3 ~ f4@3 ~ f4@3 ~@3 eb4 ~", E: "eb4@3 ~ eb4@3 ~ eb4@3 ~@3 e4 ~", F: "~@2 e4 ~@3 e4@2 ~@8",
})).s("gm_alto_sax").gain(0.15)

// other · tenor sax · "Sax Tenore"
const tenor_sax = note(`<
  A B A C D ~ E@2 F G F H I J F K L@2 F M N O P Q R S T U V@3 ~@12 W X Y X Y X Y X Y Z Y AA AB AC AD@3
>`.pickRestart({
  A: "eb3@3 ~@13", B: "~@5 eb3!2 ~", C: "~@5 g3!2 ~", D: "g3@3 ~@13", E: "~@4 ab3@3 ~@5 ab3@3 ~", F: "~ g3@3 g3@4",
  G: "g3@3 g3@5", H: "g3", I: "~ gb3@3 gb3@4", J: "gb3@3 gb3@5", K: "g3@2 ab3 g3@5", L: "[ab3@6 ab3 gb3@9]/2",
  M: "g3@6 gb3 ~@3 bb3@2 bb3@2 bb3@2", N: "eb3 ~ g3 ~ bb3@4", O: "eb3 ~ g3 bb3@2 bb3@2 bb3",
  P: "eb3 ~ g3 ~ bb3@2 c4 bb3", Q: "db4 ~ bb3 g3@2 eb3 f3 eb3", R: "bb3 ~@2 ab3 gb3@2 eb3 ~",
  S: "bb3@2 ~@2 ab3@2 gb3 ~@3 bb3@2 bb3@2 bb3@2", T: "bb3 ~ ab3 ~ g3@2 eb3 ~", U: "bb3@4 ab3@2 g3 ~@3 ab3@2 ab3@2 g3@2",
  V: "[ab3 ~ ab3 g3 ab3 ~ bb3 bb3@3 ab3 ~ gb3@2 eb3 eb3@9]/3", W: "~@4 bb3!3 ~", X: "f4@3 ~ f4@3 ~ f4@4 ~@2 f4 ~",
  Y: "~@2 f4 ~@3 f4@2 f4@2 f4@2 f4@2 ~@2", Z: "g4@3 ~ g4@3 ~ g4@4 ~@2 f4 ~", AA: "f4!3 c4 eb4!3 c4",
  AB: "d4!3 bb3 db4!3 b3", AC: "c4@3 ~@13", AD: "[c4@2 d4@2 e4@2 f4 ~@5 a3@22 ~@14]/3",
})).s("gm_tenor_sax").gain(0.4)

// other · tenor sax · "Sax Tenore" · soft notes
const tenor_sax_soft = note("<~@31 A B C B C D E B C F E G H ~@16>".pickRestart({
  A: "~@5 bb3 c4 ~", B: "g3@3 ~ g3@3 ~ g3@3 ~@3 g3 ~", C: "~@2 g3 ~@3 g3@2 g3@2 g3@2 g3@2 ~@2",
  D: "gb3@3 ~ gb3@3 ~ gb3@3 ~@3 gb3 ~", E: "~@2 gb3 ~@3 gb3@2 gb3@2 gb3@2 gb3@2 ~@2",
  F: "ab3@3 ~ ab3@3 ~ ab3@3 ~@3 gb3 ~", G: "g3@3 ~ g3@3 ~ g3@3 ~@3 bb3 ~", H: "~@2 bb3 ~@3 bb3@2 ~@8",
})).s("gm_tenor_sax").gain(0.15)

// other · baritone sax · "Sassofono baritono"
const baritone_sax = note(`<
  A B A B A ~ C@2 D@2 E F G H E I J K E L M@2 N F G H O P J K E Q ~@11 R S@4 T@2 S@2 U T V W X Y@3
>`.pickRestart({
  A: "eb3@3 ~@13", B: "~@5 eb3!2 ~", C: "~@4 bb2@3 ~@5 bb2@3 ~", D: "eb3 ~ g2 ~ bb2 ~ g2 ~", E: "eb3 g2 bb2 g2",
  F: "eb3 eb2 f2 g2", G: "ab2 c3 eb3 f3", H: "gb3 f3 eb3 c3", I: "eb3 db3 c3 b2", J: "bb2 d3 f2 bb2",
  K: "ab2 c3 eb3 c3", L: "eb3 bb2 c3 d3", M: "eb3 ~@4 eb3@3", N: "eb3 ~@7", O: "eb2 g2 bb2 g2", P: "eb2 db3 c3 b2",
  Q: "eb3 bb2 ~@2", R: "~ c3 d3 e3", S: "f2@3 ~@3 ab2@2 a2@4 c3@2 ~@2", T: "bb2@3 ~@3 db3@2 d3@4 f3@2 ~@2",
  U: "c3@3 ~@3 eb3@2 e3@4 g3@2 ~@2", V: "f2 a2", W: "bb2 b2", X: "c3@3 ~@5 c3@8",
  Y: "[c3@2 d3@2 e3@2 f3 ~@5 f2@22 ~@14]/3",
})).s("gm_baritone_sax").gain(0.3)

// other · baritone sax · "Sassofono baritono" · soft notes
const baritone_sax_soft = note("<~@31 A B C B D E F B G H I B J ~@16>".pickRestart({
  A: "~@2 c3 d3", B: "eb3 g2 bb2 g2", C: "eb3 c3 bb2 c3", D: "eb3 db3 c3 bb2", E: "ab2 c3 eb3 f3", F: "gb3 f3 eb3 c3",
  G: "eb3 c3 bb2 eb3", H: "bb2 d3 f2 bb2", I: "ab2 gb3 eb3 c3", J: "c3 ~@3",
})).s("gm_baritone_sax").gain(0.15)

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

// other · trumpet · "Tromba 2" · soft notes
const trumpet_soft = note("<~@31 A B C D E F G B C H G I J ~@16>".pickRestart({
  A: "~@5 bb4 c5 ~", B: "bb4@3 ~ bb4@3 ~ bb4@3 ~@3 bb4 ~", C: "~@2 bb4 ~@3 bb4@2 bb4@2 bb4@2 bb4@2 ~@2",
  D: "bb4@3 ~ bb4@3 ~ bb4@3 ~@3 db5 ~", E: "~@2 db5 ~@3 db5@2 db5@2 db5@2 db5@2 ~@2", F: "c5@3 ~ c5@3 ~ c5@3 ~@3 c5 ~",
  G: "~@2 c5 ~@3 c5@2 c5@2 c5@2 c5@2 ~@2", H: "g4@3 ~ g4@3 ~ g4@3 ~@3 c5 ~", I: "bb4@3 ~ bb4@3 ~ bb4@3 ~@3 c5 ~",
  J: "~@2 c5 ~@3 c5@2 ~@8",
})).s("gm_trumpet").gain(0.15)

// other · french horn · "Corno fa"
const french_horn = note(`<
  ~@2 A B C ~ D@2 E F E G E F E H I@2 E J K@2 L M N O P Q R S P Q ~@11 T U V U V U V U V W V X Y Z AA@3
>`.pickRestart({
  A: "g3@3 ~@13", B: "~@5 g3!2 ~", C: "bb3@3 ~@13", D: "~@4 d4@3 ~@5 d4@3 ~", E: "~ eb4@3 eb4@4", F: "eb4@3 eb4@5",
  G: "eb4", H: "eb4@2 eb4 eb4@5", I: "[f4@6 f4 eb4@9]/2", J: "eb4@6 eb4 ~@9", K: "g4@3 ~@7 g4@6", L: "g4@3 ~@13",
  M: "g4", N: "~@2 gb4@3 ~@3 gb4@3 ~@5", O: "gb4@3 ~@3 gb4 ~@9", P: "~@2 g4@3 ~@3 g4@3 ~@5", Q: "g4@3 ~@3 g4 ~@9",
  R: "ab4", S: "gb4", T: "~@4 e4!3 ~", U: "f4@3 ~ f4@3 ~ f4@4 ~@2 f4 ~", V: "~@2 f4 ~@3 f4@2 f4@2 f4@2 f4@2 ~@2",
  W: "g4@3 ~ g4@3 ~ g4@4 ~@2 f4 ~", X: "f4!3 c4 eb4!3 c4", Y: "d4!3 bb3 db4!3 b3", Z: "c4@3 ~@13",
  AA: "[c4@2 d4@2 e4@2 f4 ~@5 eb4@22 ~@14]/3",
})).s("gm_french_horn").gain(0.4)

// other · french horn · "Corno fa" · soft notes
const french_horn_soft = note("<~@31 A B C D C D C D C E C F G ~@16>".pickRestart({
  A: "~@5 bb3 c4 ~", B: "eb4@4 eb4@3 ~ eb4@3 ~@3 eb4 ~", C: "~@2 eb4 ~@3 eb4@2 eb4@2 eb4@2 eb4@2 ~@2",
  D: "eb4@3 ~ eb4@3 ~ eb4@3 ~@3 eb4 ~", E: "f4@3 ~ f4@3 ~ f4@3 ~@3 eb4 ~", F: "eb4@3 ~ eb4@3 ~ eb4@3 ~@3 e4 ~",
  G: "~@2 e4 ~@3 e4@2 ~@8",
})).s("gm_french_horn").gain(0.15)

// other · trombone
const trombone = note(`<
  A B C D E ~ F@2 G H G I J K G L M@2 G N O P Q R S T U V W@3 ~@7 X Y Z AA AB AA AC@4 AD AE AC@2 AF AE AG AH AI AJ@3
>`.pickRestart({
  A: "eb3@3 ~@13", B: "~@5 eb3!2 ~", C: "g3@3 ~@13", D: "~@5 g3!2 ~", E: "bb3@3 ~@13", F: "~@4 ab3@3 ~@5 ab3@3 ~",
  G: "~ bb3@3 bb3@4", H: "bb3@3 bb3@5", I: "db4", J: "~ c4@3 c4@4", K: "c4@3 c4@5", L: "bb3@2 bb3 bb3@5",
  M: "[d4@6 d4 c4@9]/2", N: "bb3@6 bb3 ~@3 bb3@2 bb3@2 bb3@2", O: "eb3 ~ g3 ~ bb3@4", P: "eb3 ~ g3 bb3@2 bb3@2 bb3",
  Q: "eb3 ~ g3 ~ bb3@2 c4 bb3", R: "db4 ~ bb3 g3@2 eb3 f3 eb3", S: "bb3 ~@2 ab3 gb3@2 eb3 ~",
  T: "bb3@2 ~@2 ab3@2 gb3 ~@3 bb3@2 bb3@2 bb3@2", U: "bb3 ~ ab3 ~ g3@2 eb3 ~", V: "bb3@4 ab3@2 g3 ~@3 ab3@2 ab3@2 g3@2",
  W: "[ab3 ~ ab3 g3 ab3 ~ bb3 bb3@3 ab3 ~ gb3@2 eb3 eb3@9]/3", X: "~@4 bb3@3 ~ bb3@3 ~@3 bb3 ~",
  Y: "~@2 bb3 ~@3 bb3@2 bb3@2 bb3@2 bb3@2 ~@2", Z: "d4@3 ~ d4@3 ~ d4@3 ~@3 c4 ~",
  AA: "~@2 c4 ~@3 c4@2 c4@2 c4@2 c4@2 ~@2", AB: "bb3@3 ~ bb3@3 ~ bb3@3 ~@3 c4 ~", AC: "f3@3 ~@3 ab3@2 a3@4 c4@2 ~@2",
  AD: "bb3@3 ~@3 db3@2 d3@4 f3@2 ~@2", AE: "bb2@3 ~@3 db3@2 d3@4 f3@2 ~@2", AF: "c3@3 ~@3 eb3@2 e3@4 g3@2 ~@2",
  AG: "f3 a3", AH: "bb3 b3", AI: "c4@3 ~@5 c3@8", AJ: "[c3@2 d3@2 e3@2 f3 ~@5 a3@22 ~@14]/3",
})).s("gm_trombone").gain(0.4)

// other · trombone · soft notes
const trombone_soft = note("<~@31 A B C D E F G H ~@21>".pickRestart({
  A: "~@5 bb3 c4 ~", B: "bb3@3 ~ bb3@3 ~ bb3@3 ~@3 bb3 ~", C: "~@2 bb3 ~@3 bb3@2 bb3@2 bb3@2 bb3@2 ~@2",
  D: "bb3@3 ~ bb3@3 ~ bb3@3 ~@3 db4 ~", E: "~@2 db4 ~@3 db4@2 db4@2 db4@2 db4@2 ~@2", F: "c4@3 ~ c4@3 ~ c4@3 ~@3 c4 ~",
  G: "~@2 c4 ~@3 c4@2 c4@2 c4@2 c4@2 ~@2", H: "bb3@3 ~@13",
})).s("gm_trombone").gain(0.15)

// … 80 more lines

More by RP