Strudelify

pokemon theme

Torchie

KeyB♭ majorTempo140 bpm
0:00/0:00
// pokemon theme — Torchie
// 140 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/81422; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 37 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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.

// chords · xylophone
const xylophone = note("<A B A B A B A C@2 D A B A B A C A D E@3 F@3 G H@4 I@2 J@2 K@3 L>".pickRestart({
  A: "[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~", // Dm
  B: "[g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~", // G5
  C: "[g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~", // Cm
  D: "[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [f5,d6] ~ [f5,d6] ~", // Dm G5 Dm
  E: "[[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~@3 d6@2 f6@2 g6@4 ~@2 d6@2 d6@2 f6@2 g6@2 ~@2 g6@4 f6@8 ~@6]/3", // Dm
  F: "[~@3 [g5,d6] [bb5,g6] [c6,a6] [d6,bb6] [c6,a6]@2 [bb5,g6]@2 [bb5,f6]@2 d6 f6 g6@3 bb5 [bb5,eb6]@2 [bb5,eb6]@2 [bb5,eb6]]/3", // G5 Eb F Gm F Eb Bb5 Eb5
  G: "[a5,c6]@2 a5 [a5,c6]@2 [a5,c6]!3", // Am
  H: "[[bb5,d6]@3 [c6,eb6]@3 [gb5,d6]@6 ~ d6 f6 g6@2 ~ d6!2 f6 g6 ~ g6@2 f6@4 ~@3]/4", // Bb Cm D
  I: "[~@3 eb6 g6 a6 bb6 a6@2 g6@2 f6@4 ~]/2", J: "[eb6 bb6@2 bb6@2 eb6@2 f6@2 bb6@2 bb6@4 ~]/2",
  K: "[[d6,bb6]@3 [d6,bb6]@3 [eb6,bb6] [d6,a6]@3 a5@2 f5 g5 d6 g5@3 [d5,d6]!2 [f5,f6] [g5,g6] ~ [bb5,bb6]]/3", // Gm Eb5 D5 D F G Bb
  L: "[g5,g6] ~ [d5,d6] [f5,f6] [g5,g6]@2 ~@2", // G D F G
})).s("gm_xylophone").gain(0.4)

// chords · flute
const flute = note("<A B A B A B A C D E@3 F B A C A G H@3 I@2 J K L@3 M N@2 O@2 P@2 Q@2>".pickRestart({
  A: "[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~", // Dm
  B: "[g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~", // G5
  C: "[g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~", // Cm
  D: "[g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~@3 bb5@2", // Cm
  E: "[d6@2 d6 c6@2 bb5 d6@5 ~@2 d5 f5 g5@2 ~ [g5,d6]!3 [g5,d6]@3]/3", F: "[f5,c6]@2 [d5,bb5] [d5,f5]@3 ~@2",
  G: "[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [f5,d6] ~ [f5,d6] ~", // Dm G5 Dm
  H: "[[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~@3 d6@2 f6@2 g6@4 ~@12 g6@4 d6@2 c6@2 bb5@8 ~@2]/3", // Dm
  I: "[~@3 [d5,g5] [g5,bb5] [a5,c6] [bb5,d6] [a5,c6]@2 [g5,bb5]@2 [f5,bb5]@2 ~@3]/2", J: "~@2 g5@5 g5",
  K: "f5 d5@2 c5@3 bb5 c6", L: "[d6@2 d6 c6@2 bb5 d6@6 ~ d6 f6 g6@2 ~@6 g6]/3", M: "f6@2 d6@2 c6@2 d6 c6 bb5@8",
  N: "[~@3 eb5 g5 a5 bb5 a5@2 g5@2 f5@4 ~]/2", O: "[eb5 bb5@2 bb5@2 eb5@2 f5@2 bb5@2 bb5@4 ~]/2",
  P: "[bb5@3 bb5@3 bb5 a5@3 d5!5 eb5]/2", Q: "[eb5@3 c5@3 g5@3 ~ d6 f6 g6@2 ~@2]/2",
})).s("gm_flute").gain(0.4)

// chords · flute
const flute_2 = note("<A@2 B C B C B D@2 E B C B F@2 G@2 H@2 I J I K L M N@3 O P@2 Q R S@2 T@2>".pickRestart({
  A: "[g5,g6]/2", B: "[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~",
  C: "[g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~", // G5
  D: "[g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~", // Cm
  E: "[f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [g5,d6] ~ [g5,d6] ~ [g5,d6] ~ [f5,d6] ~ [f5,d6] ~", // Dm G5 Dm
  F: "[[g5,d6] [g5,d6]@3 [f5,c6]@2 [eb5,bb5] [f5,c6]@4 ~@5]/2", // G5 F5 Eb5 F5
  G: "[~ [g5,bb5] [g5,eb6]!2 [g5,eb6]@2 [bb5,f6] [f5,d6]@2 [f5,c6]@2 [f5,bb5]@2 ~@2 bb5]/2", // Gm Cm Bb5 Dm F5 Bb5
  H: "[d6@2 d6@4 c6@4 bb5@2 d6@12 [f5,d6] ~ [f5,d6] ~ [f5,d6] ~ [f5,d6] ~]/2", // Dm
  I: "[bb4,eb5]@2 bb4 [bb4,eb5]@2 [bb4,eb5]@2 [bb4,eb5]", J: "[bb4,d5]@2 bb4 [bb4,d5]@2 [bb4,d5]@2 [bb4,d5]",
  K: "[c5,f5]@2 c5 [c5,f5]@2 [c5,f5]@2 [c5,f5]", L: "~@2 g5@5 g5", M: "f5 d5@2 c5@3 bb4 c5",
  N: "[d5@2 d5 c5@2 bb4 d5@6 ~ d5 f5 g5@3 ~@5 g5]/3", O: "f5@2 d5@2 c5@2 d5 c5 bb4@8",
  P: "[~@3 g4 bb4 c5 d5 c5@2 bb4@2 a4@4 ~]/2", Q: "eb5", R: "f5", S: "[d6@3 d6@3 eb6 d6@3 gb5 a5 gb5 d5 gb5 g5]/2",
  T: "[g5@3 f5@3 d5@3 ~ d5 f5 g5@2 ~@2]/2",
})).s("gm_flute").gain(0.4)

// chords · clarinet · "Bb Clarinet"
const clarinet = note("<A B A B A B A B C D@3 E F G H F I J@3 K@2 L@2 M@4 N@2 O@2 P@2 Q@2>".pickRestart({
  A: "[a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~", // Dm
  B: "[bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~", // Eb
  C: "[bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~@3 bb3@2", // Eb
  D: "[bb3@3 c4@3 d4@3 ~@4 d4 f4 g4@2 ~ [g4,d5]!3 [g4,d5]@3]/3", E: "[f4,c5]@2 [d4,bb4] [d4,f4]@3 ~@2",
  F: "[bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~", // Bb
  G: "[f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~", // F
  H: "[bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~ [bb4,eb5] ~", // Eb5
  I: "[f4,bb4] ~ [f4,bb4] ~ [f4,bb4] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [f4,a4] ~ [f4,a4] ~", // Bb5 C5 F
  J: "[[f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~@3 d5@2 f5@2 g5@6 d5@2 d5@2 f5@2 g5@2 ~@2 g5@4 f5@8 ~@6]/3", // F
  K: "[~@3 d5 g5 a5 bb5 a5@2 g5@2 f5@2 ~@3]/2", L: "[~@2 d5@2 g5!3 f5@3 c5@2 c5@2 c5@2]/2",
  M: "[d5@3 eb5@3 gb5@6 ~ d5 f5 g5@3 d5!2 f5 g5 ~ g5@2 f5@4 ~@3]/4", N: "[~@3 eb5 g5 a5 bb5 a5@2 g5@2 f5@4 ~]/2",
  O: "[eb5 bb5@2 bb5@2 eb5@2 f5@2 bb5@2 bb5@4 ~]/2",
  P: "[[d5,bb5]@3 [d5,bb5]@3 [eb5,bb5] [d5,a5]@3 gb5 a5 gb5 d5 gb5 g5]/2", Q: "[bb4@3 a4@3 g4@3 ~ d5 f5 g5@2 ~@2]/2",
})).s("gm_clarinet").gain(0.4)

// chords · clarinet · "Bb Clarinet"
const clarinet_2 = note("<A@2 B C B C B C@2 D B E F G@2 H@2 I@2 J@2 K L@2 M N@4 O@2 P@2 Q R S@2>".pickRestart({
  A: "g5/2", B: "[a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [a4,f5] ~",
  C: "[bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~ [bb4,g5] ~", // Eb
  D: "[bb4,f5] ~ [bb4,f5] ~ [bb4,f5] ~ [c5,g5] ~ [c5,g5] ~ [c5,g5] ~ [a4,f5] ~ [a4,f5] ~", // Bb5 C5 Dm
  E: "[g4,d5] ~ [g4,d5] ~ [g4,d5] ~ [g4,d5] ~ [g4,d5] ~ [g4,d5] ~ [g4,d5] ~ [g4,d5] ~", // G5
  F: "[a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~", // D5
  G: "[[g4,d5] [g4,d5]@3 [f4,c5]@2 [eb4,bb4] [f4,c5]@4 ~@5]/2", // G5 F5 Eb5 F5
  H: "[~ [g4,bb4] [g4,eb5]!2 [g4,eb5]@2 [bb4,f5] [f4,d5]@2 [f4,c5]@2 [f4,bb4]@2 ~@2 bb4]/2", // Gm Cm Bb5 Dm F5 Bb5
  I: "[d5@2 d5@4 c5@4 bb4@2 d5@12 [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~]/2", // D5
  J: "[~@2 d4!2 f4 g4 ~ g4@2 f4@4 bb4@2 bb4]/2", K: "[g4,bb4]!4",
  L: "[[a4,c5]@2 [a4,c5]@2 [a4,c5] d5 f5 g5@3 bb4@2 bb4!4]/2", M: "a4!4",
  N: "[bb4@3 c5@3 d5@3 d5!5 f5 g5@3 d4!2 f4 g4 ~ g4@2 f4@4 ~@3]/4", O: "[~@3 eb5 g5 a5 bb5 a5@2 g5@2 f5@4 ~]/2",
  P: "[eb5 bb5@2 bb5@2 eb5@2 f5@2 bb5@2 bb5@4 ~]/2", Q: "bb5 f5 d5 g5 eb5 c5 a5 gb5", R: "d5@2 gb4 a4 gb4 d4 gb4 g4",
  S: "[g4@3 f4@3 d4@3 ~ d5 f5 g5@2 ~@2]/2",
})).s("gm_clarinet").gain(0.4)

// bass · clarinet · "Bass Clarinet"
const bass = note("<A@2 B@2 C@2 D E F G@3 H@2 I J F K@4 L M@3 N@4 O P Q R S@2 T@2>".pickRestart({
  A: "g2/2", B: "[~@3 bb2@2 d2 f2 g2@3 ~@6]/2", C: "[~@5 f2 d2 g2@4 ~@5]/2", D: "~@3 f3@2 c3@2 eb2", E: "eb2 ~",
  F: "bb2 ~", G: "[bb2@3 c3@3 d3@3 ~@4 d2 f2 g2@2 ~@7]/3", H: "[~@5 f3 d3 g3@4 ~@5]/2", I: "~@3 f3@2 c3@2 eb3",
  J: "eb3 ~", K: "[bb2@3 c3@3 d3@3 ~@4 d3 f3 g3@3 d3!2 f3 g3 ~ g3@2 f3@4 bb2@2 bb2]/4", L: "bb2!4",
  M: "[c3@2 c3@2 c3 d3 f3 g3@3 d3@2 g3 bb2 g3 f3@3 a2@2 a2@2 a2@2]/3",
  N: "[bb2@3 eb3@3 d3@3 d3!5 f3 g3@3 d3!2 f3 g3 ~ g3@2 f3@4 f2@3]/4", O: "a2@4 a2 a2@3", P: "a2@4 f2 a2@3",
  Q: "c3@4 g2 c3@3", R: "d3@4 a2 d3@3", S: "[bb2@3 c3@3 d3@3 ~@4 c3 bb2 eb2]/2",
  T: "[eb2@3 f2@3 g2@3 ~ g2!2 g2@2 ~@2]/2",
})).s("gm_electric_bass_finger").gain(0.4)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<A@2 ~ B C D@2 E@2 F@2 G H I@2 E@2 J@4 K L@2 M N@4 O@2 P@2 Q@3 R>".pickRestart({
  A: "g4/2", B: "~ d5!3 d5@2 ~ d5", C: "c5@2 bb4 f4@2 ~@2 bb4", D: "[d5@2 d5@2 c5 bb4 c5@3 ~@7]/2",
  E: "[~ bb4 eb5!2 eb5@2 f5 d5@2 c5@2 bb4@2 ~@2 bb4]/2", F: "[d5@2 d5 c5@2 bb4 d5@5 ~@5]/2", G: "~@2 d5!3 d5@3",
  H: "c5@2 bb4 f4@3 ~@2", I: "[d5 d5@3 c5@2 bb4 c5@4 ~@5]/2",
  J: "[d5 d5@2 c5@2 bb4 d5@6 ~ d4 f4 g4@3 d4!2 f4 g4 ~ g4@2 f4@4 bb3@2 bb3]/4",
  K: "[bb3,eb4]@2 bb3 [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]", // Eb5
  L: "[[c4,f4]@2 c4 [c4,f4]@2 d4 f4 g4@3 bb3 [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]]/2", // F5 Eb5
  M: "[a3,c4]@2 a3 [a3,c4]@2 [a3,c4]!3", // Am
  N: "[[bb3,d4]@3 [c4,eb4]@3 [gb3,d4]@6 ~ d4 f4 g4@3 d4!2 f4 g4 ~ g4@2 f4@4 ~@3]/4", // Bb Cm D
  O: "[~@3 eb4 g4 a4 bb4 a4@2 g4@2 f4@4 ~]/2", P: "[eb4 bb4@2 bb4@2 eb4@2 f4@2 bb4@2 bb4@4 ~]/2",
  Q: "[d4@3 d4@3 eb4 d4@3 d4!2 f4 g4@2 g4@2 ~ d4!2 f4 g4@2 bb4]/3", R: "g4 ~ d4 f4 g4@2 ~@2",
})).s("gm_alto_sax").gain(0.4)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note("<A@2 B@2 C@2 D E F G@3 C@2 D E F H@2 I J K L@2 M N@2 I O P Q R S T@2 U@2>".pickRestart({
  A: "g2/2", B: "[~@3 bb2@2 d2 f2 g2@3 ~@6]/2", C: "[~@5 f2 d2 g2@4 ~@5]/2", D: "~@3 f3@2 c3@2 eb2", E: "eb2 ~",
  F: "bb2 ~", G: "[bb2@3 c3@3 d3@3 ~@4 d2 f2 g2@2 ~@7]/3", H: "[bb2@3 c3@3 d3@3 ~@4 d2 f2 bb2]/2", I: "eb3@4 eb3 eb3@3",
  J: "bb2@4 f2 bb2@3", K: "eb2@4 eb2 eb2@3", L: "[f2@4 ~ d2 f2 g2@3 ~@6]/2", M: "~@6 bb2 c3",
  N: "[d3@2 d3 c3@2 bb2 d3@6 ~ d2 f2 bb2]/2", O: "bb2@4 c3 f2@3", P: "a2@4 a2 a2@3", Q: "a2@4 f2 a2@3",
  R: "c3@4 g2 c3@3", S: "c3@4 a2 c3@3", T: "[bb2@3 c3@3 d3@3 ~@4 c3 bb2 eb2]/2",
  U: "[eb2@3 f2@3 g2@3 ~ g2!2 g2@2 ~@2]/2",
})).s("gm_baritone_sax").gain(0.4)

// other · trumpet · "Bb Trumpet"
const trumpet = note("<A@2 ~ B C D@2 E@2 F@2 G H G H I J K@4 L@2 M N O@3 P Q@2 R S T@3 U>".pickRestart({
  A: "[g4,g5]/2", B: "~ d5!3 d5@2 ~ d5", C: "c5@2 bb4 f4@2 ~@2 bb4", D: "[d5@2 d5@2 c5 bb4 c5@3 ~@7]/2",
  E: "[~ bb4 eb5!2 eb5@2 f5 d5@2 c5@2 bb4@2 ~@2 bb4]/2", F: "[d5@2 d5 c5@2 bb4 d5@5 ~@5]/2", G: "[d4,g4]!4",
  H: "[d4,f4]!4", I: "[bb3,eb4]!4", J: "[bb3,d4]!4",
  K: "[bb3 d4 f4 c4 e4 g4 [d4,f4]@3 d5 d5@2 ~ d5 f5 g5@2 ~@6 g5@2 d5 c5 bb4@4 ~]/4", // Dm
  L: "[~@3 [g4,d5] [bb4,g5] [c5,a5] [d5,bb5] [c5,a5]@2 [bb4,g5]@2 [bb4,f5]@2 ~@3]/2", M: "~@2 g5@5 g5",
  N: "f5 d5@2 c5@3 bb4 c5", O: "[d5@2 d5 c5@2 bb4 d5@6 ~ d5 f5 g5@2 ~@6 g5]/3", P: "f5@2 d5@2 c5@2 d5 c5 bb4@8",
  Q: "[~@3 g4 bb4 c5 d5 c5@2 bb4@2 a4@4 ~]/2", R: "eb5", S: "f5",
  T: "[[bb4,d5]@3 [bb4,d5]@3 [bb4,eb5] [a4,d5]@3 d4!2 f4 g4@2 g4@2 ~ d5!2 f5 [g4,g5]@2 [bb4,bb5]]/3", // Bb Eb5 D5 G Bb
  U: "[g4,g5] ~ [d4,d5] [f4,f5] [g4,g5]@2 ~@2", // G D F G
})).s("gm_trumpet").gain(0.4)

// other · french horn · "F Mellophone"
const french_horn = note("<A@2 ~ B C D@2 E@2 F@2 G H I@2 J@2 K@4 L@2 M N O P@2 Q R@2 S@2 T@2 U V>".pickRestart({
  A: "g4/2", B: "~ d5!3 d5@2 ~ d5", C: "c5@2 bb4 f4@2 ~@2 bb4", D: "[d5@2 d5@2 c5 bb4 c5@3 ~@7]/2",
  E: "[~ bb4 eb5!2 eb5@2 f5 d5@2 c5@2 bb4@2 ~@2 bb4]/2", F: "[d5@2 d5 c5@2 bb4 d5@5 ~@5]/2",
  G: "~@2 [g4,d5]!3 [g4,d5]@3", H: "[f4,c5]@2 [d4,bb4] [d4,f4]@3 ~@2",
  I: "[[g4,d5] [g4,d5]@3 [f4,c5]@2 [eb4,bb4] [f4,c5]@4 ~@5]/2", // G5 F5 Eb5 F5
  J: "[~ [g4,bb4] [g4,eb5]!2 [g4,eb5]@2 [bb4,f5] [f4,d5]@2 [f4,c5]@2 [f4,bb4]@2 ~@2 bb4]/2", // Gm Cm Bb5 Dm F5 Bb5
  K: "[d5 d5@2 c5@2 bb4 d5@6 ~ d4 f4 g4@2 ~@6 g4@2 d4 c4 bb3@4 ~]/4", L: "[~@3 d4 g4 a4 bb4 a4@2 g4@2 f4@2 ~@3]/2",
  M: "~@2 g4@5 g4", N: "f4 d4@2 c4@3 c4@2", O: "bb3@3 [eb3,c4]@3 gb3@2", P: "[gb3!4 ~ d4 f4 g4@2 ~@6 g4]/2",
  Q: "f4@2 d4@2 c4@2 d4 c4 bb3@8", R: "[~@3 eb4 g4 a4 bb4 a4@2 g4@2 f4@4 ~]/2",
  S: "[eb4 bb4@2 bb4@2 eb4@2 f4@2 bb4@2 bb4@4 ~]/2",
  T: "[[d4,bb4]@3 [d4,bb4]@3 [eb4,bb4] [d4,a4]@3 d4!2 f4 g4@2 bb4]/2", U: "g4 ~ d4!2 f4 g4@2 bb4",
  V: "g4 ~ d4 f4 g4@2 ~@2",
})).s("gm_french_horn").gain(0.4)

// chords · trombone
const trombone = note("<A@2 B@2 C@2 D E F G@2 H I J@2 K@2 L@4 M N O P Q@4 R S T U V@3 W>".pickRestart({
  A: "g3/2", B: "[~@3 bb2@2 d2 f2 g2@3 ~@6]/2", C: "[~@5 f2 d2 g2@4 ~@5]/2", D: "~@3 f3@2 c3@2 [eb2,eb3]",
  E: "[eb2,eb3] ~", F: "bb2 ~", G: "[bb2@3 c3@3 d3@3 ~@4 d3 f3 g3]/2", H: "~@2 g3!3 g3@3", I: "f3@2 d3 d3@3 ~@2",
  J: "[g3 g3@3 f3@2 eb3 f3@4 ~@5]/2", K: "[~ g3!3 g3@2 bb3 f3@2 f3@2 f3@2 ~@2 bb3]/2",
  L: "[d4 d4@2 c4@2 bb3 d4@6 ~ d3 f3 g3@3 d3!2 f3 g3 ~ g3@2 f3@4 bb3@2 bb3]/4", M: "[g3,bb3]!4",
  N: "[a3,c4]@2 [a3,c4]@2 [a3,c4] d4 f4 g4", O: "[bb3,d4]!3 [bb3,eb4]", P: "[a3,c4]!4",
  Q: "[[bb3,d4]@3 [c4,eb4]@3 [gb3,d4]@6 ~ d3 f3 g3@3 d3!2 f3 g3 ~ g3@2 f3@4 ~@3]/4", R: "[f3,a3]!2 [g3,bb3]!2",
  S: "[g3,bb3]!2 [a3,c4]!2", T: "[a3,c4]!2 [c4,eb4]!2", U: "[c4,eb4]@2 [c4,eb4]@2 [c4,eb4]!4",
  V: "[[d3,bb3]@3 [eb3,c4]@3 [gb3,d4]@3 ~ d3!2 f3 g3@2 g3@3 [d3,d4]!2 [f3,f4] [g3,g4]@2 [bb3,bb4]]/3", // Gm Cm D F G Bb
  W: "[g3,g4] ~ [d3,d4] [f3,f4] [g3,g4]@2 ~@2", // G D F G
})).s("gm_trombone").gain(0.4)

// chords · tuba · "Euphonium"
const tuba = note("<A@2 B@2 C@2 D ~ E F@2 G H G H I J K@4 L M@3 N@3 O P Q R S T U V W>".pickRestart({
  A: "g3/2", B: "[~@3 bb2@2 d3 f3 g3@3 ~@6]/2", C: "[~@5 f3 d3 g3@4 ~@5]/2", D: "~@3 f3@2 c3@2 eb3", E: "bb2 ~",
  F: "[bb2@3 c3@3 d3@3 ~@4 d3 f3 g3]/2", G: "[d3,g3]!4", H: "[d3,f3]!4", I: "[bb2,eb3]!4", J: "[bb2,d3]!4",
  K: "[bb2 d3 f3 c3 e3 g3 [a2,f3]@3 ~@4 d3 f3 g3@2 ~@6 g3@2 d3 c3 bb2@4 ~]/4", L: "bb2!4",
  M: "[c3@2 c3@2 c3 d3 f3 g3@3 d3@2 g3 bb2 g3 f3@3 [a2,c3]@2 [a2,c3]@2 [a2,c3]@2]/3", // Am
  N: "[bb2@3 eb3@3 d3@6 ~ d3 f3 g3@2 ~@6 g3]/3", O: "f3@2 d3@2 c3@2 d3 c3 bb2@8", P: "[a2,f3]!2 [bb2,g3]!2",
  Q: "[bb2,g3]!2 [c3,a3]!2", R: "[c3,a3]!2 [c3,eb3]!2", S: "[c3,eb3]@2 [c3,eb3]@2 [c3,eb3]!4",
  T: "bb3 f3 d3 g3 eb3 c3 a3 gb3", U: "d3@2 d3!2 f3 g3@2 bb3", V: "g3 ~ d3!2 f3 g3@2 f3",
  W: "g3 ~ [d3,d4] [f3,f4] [g3,g4]@2 ~@2", // D F G
})).s("gm_tuba").gain(0.4)

// bass · tuba · "C Tuba"
const bass_2 = note("<A@2 B@2 C@2 D E F G@3 C@2 D E F H@2 I J I K L M N@2 I O P Q R S T@2 U@2>".pickRestart({
  A: "g2/2", B: "[~@3 bb2@2 d2 f2 g2@3 ~@6]/2", C: "[~@5 f2 d2 g1@4 ~@5]/2", D: "~@3 f2@2 c2@2 eb2", E: "eb2 ~",
  F: "bb1 ~", G: "[bb1@3 c2@3 d2@3 ~@4 d2 f2 g2@2 ~@7]/3", H: "[bb1@3 c2@3 d2@3 ~@4 d2 f2 bb1]/2", I: "eb2@4 eb2 eb2@3",
  J: "bb1@4 f1 bb1@3", K: "f2@4 f2 f2@3", L: "g1@4 g1 g1@3", M: "a1@4 a1@2 a1!2", N: "[bb1@3 c2@3 d2@3 d2!5 f2 bb1]/2",
  O: "bb1@4 c2 f2@3", P: "a1@4 a1 a1@3", Q: "a1@4 f1 a1@3", R: "c2@4 g1 c2@3", S: "c2@4 a1 c2@3",
  T: "[bb1@3 c2@3 d2@3 ~@4 c2 bb1 eb2]/2", U: "[eb2@3 f2@3 g2@3 ~ g1!2 g1@2 ~@2]/2",
})).s("gm_tuba").gain(0.45)

stack(
  xylophone, flute, flute_2, clarinet, clarinet_2, bass, alto_sax, baritone_sax, trumpet, french_horn, trombone, tuba,
  bass_2
)