Strudelify

You and I by Jacob Collier

12alanh225

KeyA♭ majorTempo60 bpm
0:00/0:00
// You and I by Jacob Collier — 12alanh225
// 60 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 56, 5/8 at bar 57, 4/4 at bar 57, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 13 "Euphonium" tuba (copy of ch 9 "Baritone Horn" french horn); ch 14 "Euphonium" tuba (copy of ch 11 "Baritone Horn" french horn); ch 15 "Euphonium" tuba (copy of ch 12 "Baritone Horn" french horn)
// note: Transcription provider: pdmx. https://musescore.com/score/5964638; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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 · trombone · "B♭ Trumpet"
const trombone = note(`<
  ~@11 A B C D E F ~@4 G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH ~ AI AJ AK AL AM@2 AN@4 AO@2 AP
  AQ AR AS AT
>`.pickRestart({
  A: "[db5,f5,ab5]@2 db5 b4, ~ [eb5,gb5,bb5]", B: "db5@3 db5, [bb4,ab5]@7 ~", C: "[g4,bb4,d5,f5] [e4,gb4,bb4,db5]",
  D: "[f4,bb4,d5] ~@15", E: "[f4,bb4] [bb4,d5] eb5 db5, ~ bb4", F: "[b4,db5,gb5]@4 [gb5,bb5] [f5,ab5] [eb5,gb5] ~@9",
  G: "~@4 ab4 gb4 [b3,db4,e4,gb4]@2, ~@2 [c4,e4,b4] ~", H: "db4@4 d4@3 ~, bb4@7 ~",
  I: "[b4,eb5]@10 ~@2 [b4,eb5,db6]@2 ~ [ab5,bb5], ~@7 [b4,eb5]", // B Absus2 B
  J: "[bb4,db5,gb5] ~ [db5,gb5,bb5,db6]@2 [gb5,bb5]@2 ~ ab6, ~@4 gb6@3 ~, ~@3 [f5,gb5,ab5,db6]", // Gb Db
  K: "[gb5,b5]@12 [e5,bb5] [eb5,ab5] [db5,gb5] [b4,eb5], gb6, e5 ~", L: "db5 b4 bb4@2 db5@4 gb5@4 gb5@2 [f5,ab5]@2",
  M: "~@4 d5@4 eb5@4 e5 eb5 db5 b4, gb5, e5 ~", N: "~@10 db5 eb5 [db5,gb5]@2 [eb5,ab5] [gb5,bb5]",
  O: "[e4,gb4,b4]@3 [gb4,ab4,db5]", P: "[f4,b4]@4 ~@4 db5 eb5 gb5 ab5 a5 ab5 [gb5,ab5] [ab5,a5]",
  Q: "[db5,e5,gb5]@10 ~@2 db5 eb5 gb5 ab5", R: "[f5,g5] [d5,e5,bb5]",
  S: "[eb5,f5,g5]@2 ~@2 [gb5,bb5]@2 [d5,g5]@2 [c5,gb5] [bb4,f5] [bb4,d5]@2 [bb4,d5] [g4,c5] [g4,b4]@2", // Eb Gb G5 Cdim Bb5 Bb C5 G
  T: "[bb3,c4,a4]@2 [db4,eb4] [d4,e4], ~ bb3", U: "[eb4,f4] [eb4,e4,gb4] [c4,db4,eb4,f4,ab4] [db4,eb4,gb4,bb4]",
  V: "[eb4,ab4] [gb4,bb4] ~ e5, db5@3 ~, ~ [g4,a4]", W: "[ab4,db5,f5]@7 ~", X: "g4@4 ab4@3 ~, [e4,db5,gb5]@7 ~",
  Y: "[f4,bb4,c5,eb5,g5]@2 [gb4,a4,f5] [a4,eb5], ~ [eb4,b4,db5,gb5]", Z: "ab4@6 a4 ab4 [gb4,b4,db5]@8, [b4,db5,e5] ~",
  AA: "[g4,bb4,d5,eb5]@2 f5 eb5, ~ [gb4,b4]", AB: "[f4,bb4,d5] ~@3 g4 bb4!2 c5 d5@2 bb5@2 g5 f5 [c5,db5] bb4",
  AC: "[bb4,c5] [f5,a5] [e5,a5] [db5,e5]", // Bbsus2 F A5 Dbm
  AD: "[b4,eb5]@4 ~@4 [db4,bb4]@2 [f4,gb4]@2 [eb4,ab4]@2 b4 bb4, ~@7 [gb4,ab4]", // B Gb Gbmaj7 Ab5 Gbsus2
  AE: "eb5@7 f5 eb5 ~@3 [db5,gb5]@4, [gb4,ab4,b4]@5 ~@3", // Gb5 Abm7
  AF: "[b4,eb5]@4 ~@2 [b4,eb5] [db5,f5] [eb5,gb5]@2 [gb5,bb5]@2 [f5,bb5,db6]@2 [ab5,db6,eb6,ab6]@2", // B Db Ebm Gb Bbm Absus4
  AG: "b4@4 bb4 ~ bb4@2 ab4@2 ~@6, [db5,e5,ab5]@5 ~@3, ~@6 b4 ~@9", // Dbm
  AH: "[f5,ab5] [eb5,gb5] [db5,f5] [bb4,eb5] [ab4,db5]@4 db5 b4 bb4 ab4 gb4 ~@3", AI: "~@4 c5@3 ~",
  AJ: "~@12 db5 eb5 gb5 ab5, [ab4,b4,eb5]@7 ~", AK: "[bb4,eb5] [db5,eb5,f5], gb5",
  AL: "[b4,db5,eb5]@2 [b4,db5,eb5] [a4,b4,d5]", AM: "[~@4 [gb4,b4,e5]@2 [gb4,b4,e5] [gb4,b4,e5]@8 ~]/2",
  AN: "[~@2 [d5,f5,a5,c6]@3 [db5,e5,ab5,b5]@3 [b4,d5,gb5,a5]@4 [ab4,bb4,db5,f5,ab5]@14 ~@2 [f4,ab4,c5,eb5]@6 [f4,ab4,c5,eb5]@2 [e4,gb4,a4,db5]@4 [e4,gb4,a4,db5]!2 [e4,gb4,a4,db5,eb5]@2 [gb4,bb4,db5,eb5,f5]@8 [e4,a4,bb4,d5,e5]@6 ~@6]/4", // Dm7 Dbm7 Bm7 Bbm7 Fm7 Gbm7 Gbmaj7 Dsus2
  AO: "[[eb4,gb4,ab4,b4,db5,eb5,gb5,b5,db6,eb6]@12 ~@3 [a4,b4,d5]]/2", // Abm7 Bm7
  AP: "~ [e5,a5,db6]@3 [d5,e5,g5,b5]@3 [db5,gb5]@3 [c5,e5]@3 [eb5,ab5,bb5,db6,eb6]@3", // A Em7 Gb5 C Ebsus4
  AQ: "[db5,f5,ab5,db6]@3 [ab5,db6,f6]@3 [a5,b5,db6,gb6]@3 [d5,g5,b5,e6]@3 ~ [e5,a5,d6]@3", // Db Gbm Em7 Dsus2
  AR: "~ [b4,db5,d5,a5]@8 ~@7", AS: "~ ab5@3, db6, ~ c6@15, ~@2 bb5@13 ~", AT: "[ab5,bb5,c6,db6]@3 ~",
})).s("gm_trombone").gain(0.4)

// chords · trombone · "B♭ Trumpet" · soft notes
const trombone_soft = note("<~@5 A B C D E F ~@5 G H I J K L ~@6 M ~@19 N O P ~@16>".pickRestart({
  A: "d5@2 c5@2 [bb4,eb5]@3 ~, f5@7 ~", B: "[bb4,c5,f5] [a4,b4,eb5]",
  C: "g5@4 ab5@4 db5@3 [f5,gb5] [c5,eb5]@4, b4@4 f5 ~@3", D: "db5, b4 ~", E: "[bb4,db5,f5] [b4,db5]",
  F: "~@5 e5 d5@2, [b4,db5,gb5], ~ ab5", G: "~@7 [db5,f5] ~@4 gb5@4, ~ [b4,eb5]",
  H: "[b3,ab4]@3 [db4,eb4] [ab3,db4] ~ [d4,g4,b4]@2", I: "[gb4,bb4]@4 ab4@2 gb4@2 eb4@5 bb4 ab4 gb4, db4 [b3,db4]",
  J: "~@2 e4@2 [bb4,eb5]@2 [b4,e5] [bb4,eb5,gb5], [a3,c4,eb4] ~", K: "[ab4,db5] [b4,f5] [bb4,db5,gb5]@2",
  L: "[d4,gb4,a4,db5] [db4,f4,a4,c5] ~@2", M: "[bb4,db5,f5]@4 b4@3 ~, ~@2 gb5 ~", N: "~@13 eb4 ab4 bb4",
  O: "[ab4,db5]@2 c5 bb4, ~ eb5", P: "[bb4,eb5]@7 ~, db5 ~",
})).s("gm_trombone").gain(0.2)

// chords · muted trumpet · "B♭ Trumpet"
const muted_trumpet = note(`<
  ~@11 A B C D E F ~@4 G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH ~ AI AJ AK AL AM@2 AN@4 AO@2 AP
  AQ AR AS AT
>`.pickRestart({
  A: "[db4,f4,ab4]@2 db4 b3, ~ [eb4,gb4,bb4]", B: "b4@3 db5, [bb3,ab4]@7 ~", C: "[g4,bb4,d5,f5] [e4,gb4,bb4,db5]",
  D: "[f4,bb4,d5] ~@15", E: "[f3,bb3] [bb3,d4] eb4 db4, ~ bb3", F: "[b3,db4,gb4]@4 [gb4,bb4] [f4,ab4] [eb4,gb4] ~@9",
  G: "~@4 ab4 gb4 [b3,db4,e4,gb4]@2, ~@2 [c4,e4,b4] ~", H: "db4@4 d4@3 ~, bb4@7 ~",
  I: "[b3,eb4]@10 ~@2 [b3,eb4,db5]@2 bb4 ab4, ~@7 [b3,eb4]", // B
  J: "[bb3,db4,gb4] ~ [db4,gb4,bb4,db5]@2 [gb4,bb4]@2 ~ ab5, ~@4 gb5@3 ~, ~@3 [f4,gb4,ab4,db5]", // Gb Db
  K: "[gb4,b4]@12 [e4,bb4] [eb4,ab4] [db4,gb4] [b3,eb4], gb5, e4 ~", // B5 Edim Ab5 Gb5 B
  L: "db4 b3 bb3@2 db5@4 ~@4 gb4@2 [f4,ab5]@2, ~@4 gb5@3 ~", M: "~@4 d4@4 eb4@4 e4 eb4 db4 b3, gb5, e4 ~",
  N: "~@10 db4 eb4 [db4,gb4]@2 [eb4,ab4] [gb4,bb4]", O: "[e4,gb4,b4]@3 [gb4,ab4,db5]",
  P: "[f4,b4]@4 ~@4 db5 eb5 db5 eb5 e5 eb5 [db5,eb5] [eb5,e5]", Q: "[db4,e4,gb4]@10 ~@2 db4 eb4 gb4 ab4",
  R: "[f4,g4] [d4,e4,bb4]", // Fsus2 Em7b5
  S: "[eb4,f4,g4]@2 ~@2 [gb4,bb4]@2 [d4,g4]@2 [c4,gb4] [bb3,f4] [bb3,d4]@2 [bb3,d4] [g3,c4] [g3,b3]@2", // Eb Gb G5 Cdim Bb5 Bb C5 G
  T: "[bb3,c4,a4]@2 [db4,eb4] [d4,e4], ~ bb3", U: "[eb4,f4] [eb4,e4,gb4] [c4,db4,eb4,f4,ab4] [db4,eb4,gb4,bb4]",
  V: "[eb4,ab4] [gb4,bb4] ~ e5, db5@3 ~, ~ [g4,a4]", W: "[ab4,db5,f5]@7 ~", X: "g4@4 ab4@3 ~, [e4,db5,gb5]@7 ~",
  Y: "[f4,bb4,c5,eb5,g5]@2 [gb4,a4,f5] [a4,eb5], ~ [eb4,b4,db5,gb5]", Z: "ab4@6 a4 ab4 [gb4,b4,db5]@8, [b4,db5,e5] ~",
  AA: "[g4,bb4,d5,eb5]@2 f5 eb5, ~ [gb4,b4]", AB: "[f4,bb4,d5] ~@3 g4 bb4!2 c5 d5@2 bb4@2 g4 f4 [c4,db4] bb3",
  AC: "[bb3,c4] [f4,a4] [e4,a4] [db4,e4]", // Bbsus2 F A5 Dbm
  AD: "[b3,eb4]@4 ~@4 [db4,bb4]@2 [f4,gb4]@2 [eb4,ab4]@2 b4 bb4, ~@7 [gb4,ab4]", // B Gb Gbmaj7 Ab5 Gbsus2
  AE: "eb5@7 f5 eb5 ~@3 [db4,gb4]@4, [gb4,ab4,b4]@5 ~@3", // Gb5 Abm7
  AF: "[b3,eb4]@4 ~@2 [b3,eb4] [db4,f4] [eb4,gb4]@2 [gb4,bb4]@2 [f4,bb4,db5]@2 [ab4,db5,eb5,ab5]@2", // B Db Ebm Gb Bbm Absus4
  AG: "b4@4 bb4 ~ bb4@2 ab4@2 ~@6, [db5,e5,ab5]@5 ~@3, ~@6 b4 ~@9", // Dbm
  AH: "[f4,ab4] [eb4,gb4] [db4,f4] [bb3,eb4] [ab3,db4]@4 db4 b3 bb3 ab3 gb3 ~@3", AI: "~@4 c4@3 ~",
  AJ: "~@12 db4 eb4 gb4 ab4, [ab3,b3,eb4]@7 ~", AK: "[bb3,eb4] [db4,eb4,f4], gb4",
  AL: "[b3,db4,eb4]@2 [b3,db4,eb4] [a3,b3,d4]", AM: "[~@4 [gb4,b4,e5]@2 [gb4,b4,e5] [gb4,b4,e5]@8 ~]/2",
  AN: "[~@2 [d4,f4,a4,c5]@3 [db4,e4,ab4,b4]@3 [b3,d4,gb4,a4]@4 [ab3,bb3,db4,f4,ab4]@14 ~@2 [f4,ab4,c5,eb5]@6 [f4,ab4,c5,eb5]@2 [e4,gb4,a4,db5]@4 [e4,gb4,a4,db5]!2 [e4,gb4,a4,db5,eb5]@2 [gb4,bb4,db5,eb5,f5]@8 [e4,a4,bb4,d5,e5]@6 ~@6]/4", // Dm7 Dbm7 Bm7 Bbm7 Fm7 Gbm7 Gbmaj7 Dsus2
  AO: "[[eb4,gb4,ab4,b4,db5,eb5,gb5]@12 ~@3 [a3,b3,d4]]/2", // Abm7 Bm7
  AP: "~ [e4,a4,db5]@3 [d4,e4,g4,b4]@3 [db4,gb4]@3 [c4,e4]@3 [eb4,ab4,bb4,db5,eb5]@3", // A Em7 Gb5 C Ebsus4
  AQ: "[db4,f4,ab4,db5]@3 [ab4,db5,f5]@3 [a4,b4,db5,gb5]@3 [d4,g4,b4,e5]@3 ~ [e4,a4,d5]@3", // Db Gbm Em7 Dsus2
  AR: "~ [b3,db4,d4,a4]@8 ~@7", AS: "~ ab4@3, db5, ~ c5@15, ~@2 bb4@13 ~", AT: "[ab4,bb4,c5,db5]@3 ~",
})).s("gm_muted_trumpet").gain(0.4)

// chords · muted trumpet · "B♭ Trumpet" · soft notes
const muted_trumpet_soft = note("<~@5 A B C D E F ~@5 G H I J K L ~@6 M ~@19 N O P ~@16>".pickRestart({
  A: "d4@2 c4@2 [bb3,eb4]@3 ~, f4@7 ~", B: "[bb3,c4,f4] [a3,b3,eb4]",
  C: "g4@4 ab4@4 db4@3 [f4,gb4] [c4,eb4]@4, b3@4 f4 ~@3", D: "db4, b3 ~", E: "[bb3,db4,f4] [b3,db4]",
  F: "~@5 e4 d4@2, [b3,db4,gb4], ~ ab4", G: "~@7 [db4,f4] ~@4 gb4@4, ~ [b3,eb4]",
  H: "[b3,ab4]@3 [db4,eb4] [ab3,db4] ~ [d4,g4,b4]@2", I: "[gb4,bb4]@4 ab4@2 gb4@2 eb4@5 bb4 ab4 gb4, db4 [b3,db4]",
  J: "~@2 e4@2 [bb3,eb4]@2 [b3,e4] [bb3,eb4,gb4], [a3,c4,eb4] ~", K: "[ab3,db4] [b3,f4] [bb3,db4,gb4]@2",
  L: "[d4,gb4,a4,db5] [db4,f4,a4,c5] ~@2", M: "[bb3,db4,f4]@4 b3@3 ~, ~@2 gb4 ~", N: "~@13 eb3 ab3 bb3",
  O: "[ab3,db4]@2 c4 bb3, ~ eb4", P: "[bb3,eb4]@7 ~, db4 ~",
})).s("gm_muted_trumpet").gain(0.2)

// chords · trumpet · "B♭ Trumpet"
const trumpet = note("<~@14 A ~@7 B C D E F G ~@27 H I J ~@9>".pickRestart({
  A: "g4 ~@3 [g4,c5,eb5] [f4,b4,d5] [eb4,g4,c5] [b3,gb4,b4] [f4,g4] [eb4,gb4] [c4,f4] [bb3,eb4] c4 b3 ~@2", // Cm Bdim Cm B5 Fsus2 Ebm F5 Eb5
  B: "[f4,gb4]@4 ~ ab4 ~ gb4 e4@6 ~@2, ~ eb4 ~@2", // Gbmaj7
  C: "~@4 [ab4,b4,eb5]@2 [gb4,bb4,db5]@2 [gb4,bb4] [eb4,ab4] bb4@2 [ab4,bb4] [gb4,ab4] db4 eb4, ~@4 db5 ~@3, ~@9 [db4,gb4]@3 ~@4", // Abm Gb Ab5 Absus2 Gbsus2 Gb5
  D: "db4 ~@7", E: "~@2 [ab4,db5]@2 [gb4,eb5]@2 [eb4,db5] [gb4,b4]",
  F: "bb4 ab4 gb4@2 ~@4 [gb4,bb4] [ab4,b4] [bb4,db5] [b4,eb5] [bb4,db5] [ab4,b4] [gb4,bb4] [ab4,a4,b4,c5]", // Gb Abm Bbm B Bbm Abm Gb
  G: "[gb4,a4]@6 ab4 a4 gb4@8, [ab4,b4] ~@7 ab4 ~@7", // Gbm Abm
  H: "~ [gb4,a4,db5] [a4,db5,e5] [ab4,b4,eb5] ~ [gb4,a4,db5] [a4,db5,e5] [b4,e5,ab5] ~ [eb5,ab5,b5] [db5,gb5,b5,eb6]@5 ~", // Gbm A Abm Gbm A E Abm B
  I: "~@12 db6 c6 [bb5,db6] [ab5,c6]", // Bbm Ab
  J: "[gb5,bb5,db6,f6] [f5,ab5,c6,eb6] [eb5,gb5,bb5,db6] [c5,f5,ab5,c6] [bb4,eb5,gb5,bb5] [ab4,db5,f5,ab5] [gb4,c5,eb5,gb5] [f4,bb4,db5,f5]@5 ~@4", // Gbmaj7 Fm7 Ebm7 Fm Ebm Db Cdim Bbm
})).s("gm_trumpet").gain(0.45)

// chords · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@5 A ~@3 B C D E F ~@5 G@2 ~@46>".pickRestart({
  A: "~ g3 c4 f4 bb4@3 ~", B: "~@2 eb4 ab4 db5@4 ~@2 db4 gb4 bb4@4", C: "~@2 gb4 bb4 ab4@4 ~@2 e4 ab4 gb4 e4 d4 b3",
  D: "db4 eb4 f4 ab4 db5@4 ~@2 eb4 gb4 bb4@4", E: "gb3 db4 e4 gb4 ab4 db5 bb4 gb4 ab4 e4 b3 gb4 db4@4",
  F: "~ bb3 eb4 g4 c5@4 ~ db4 gb4 b4 ab4@4", G: "[~@7 gb4 bb4@2 ab4@3 gb4 db4@14 ~@4, ~@8 ab4 ~@23]/2",
})).s("gm_trumpet").gain(0.25)

// chords · french horn · "Horn in F"
const french_horn = note(`<
  ~@8 A ~@2 B C D E F G ~ H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL ~ AM AN AO AP AQ@2
  AR@4 AS@2 AT AU AV AW@2
>`.pickRestart({
  A: "~@2 bb4 ab4, ~ db4@3", B: "[db4,f4,ab4]@2 db4 b3, ~ [eb4,gb4,bb4]", C: "b4@3 db5", D: "[d5,f5] [bb4,db5]",
  E: "[bb4,d5] ~@3 f4 g4 bb4 c5!2 bb4 g4 f4 g4 f4 [f4,g4] [eb4,f4]", F: "bb3 d4 eb4 db4", G: "gb4@4 bb4 ab4 gb4 f4 ~@8",
  H: "~@13 bb4 ab4 gb4", I: "~@2 e4@2 eb4@2 e4 gb4, [c4,eb4] ~", J: "db4 f4 gb4@2",
  K: "[a4,db5] [a4,c5] [c4,e4,b4] [e4,gb4]", L: "db4@4 d4@3 ~, bb4@7 ~", M: "eb4@10 ~@2 db5@2 bb4 ab4",
  N: "[db4,gb4] ~ [bb4,db5]@2 bb4@2 [ab4,db5]@2", O: "b4@12 [e4,bb4] [eb4,ab4] [db4,gb4] [b3,eb4]",
  P: "db4 b3 bb3@2 db5@4 ~@4 gb4@2 [f4,ab5]@2, ~@4 gb5@3 ~", Q: "~@4 d4@4 eb4@4 e4 eb4 db4 b3, gb5, e4 ~",
  R: "~@10 db4 eb4 [db4,gb4]@2 [eb4,ab4] [gb4,bb4]", S: "[e4,gb4,b4]@3 [gb4,ab4,db5]",
  T: "[f4,b4]@4 ~@4 db4 eb4 gb4 ab4 a4 ab4 [gb4,ab4] [ab4,a4]", U: "[db4,e4,gb4]@10 ~@2 db4 eb4 gb4 ab4", V: "g4 bb4",
  W: "g4@2 ~@2 bb4@2 g4@2 gb4 f4 d4@2 d4 c4 b3@2", X: "a4 bb3", Y: "f4 gb4 [eb4,f4,ab4] [gb4,bb4]", Z: "db5@3 e5",
  AA: "[db5,f5]@7 ~", AB: "[db5,gb5]@7 ~", AC: "[f4,bb4,c5,eb5,g5]@2 [gb4,a4,f5] [a4,eb5], ~ [eb4,b4,db5,gb5]",
  AD: "ab4@6 a4 ab4 [gb4,b4,db5]@8, [b4,db5,e5] ~", AE: "[g4,bb4,d5,eb5]@2 f5 eb5, ~ [gb4,b4]",
  AF: "[f4,bb4,d5] ~@3 g4 bb4!2 c5 d5@2 bb4@2 g4 f4 [c4,db4] bb3", AG: "[bb3,c4] [f4,a4] [e4,a4] [db4,e4]",
  AH: "[b3,eb4]@4 ~@4 [db4,bb4]@2 [f4,gb4]@2 [eb4,ab4]@2 b4 bb4, ~@7 [gb4,ab4]", // B Gb Gbmaj7 Ab5 Gbsus2
  AI: "eb5@7 f5 eb5 ~@3 [db4,gb4]@4, [gb4,ab4,b4]@5 ~@3", // Gb5 Abm7
  AJ: "[b3,eb4]@4 ~@2 [b3,eb4] [db4,f4] [eb4,gb4]@2 [gb4,bb4]@2 [f4,bb4,db5]@2 [ab4,db5,eb5,ab5]@2", // B Db Ebm Gb Bbm Absus4
  AK: "b4@4 bb4 ~ bb4@2 ab4@2 ~@6, [db5,e5,ab5]@5 ~@3, ~@6 b4 ~@9", // Dbm
  AL: "[f4,ab4] [eb4,gb4] [db4,f4] [bb3,eb4] [ab3,db4]@4 db4 b3 bb3 ab3 gb3 eb3 ~@2", AM: "~@4 c4@3 ~",
  AN: "~@12 db4 eb4 gb4 ab4, [ab3,b3,eb4]@7 ~", AO: "gb4", AP: "[b3,db4,eb4]@2 [b3,db4,eb4] [a3,b3,d4]",
  AQ: "[~@4 [gb4,b4,e5]@2 [gb4,b4,e5] [gb4,b4,e5]@8 ~]/2", // Esus2
  AR: "[~@2 [d4,f4,a4,c5]@3 [db4,e4,ab4,b4]@3 [b3,d4,gb4,a4]@4 [ab3,bb3,db4,f4,ab4]@14 ~@2 [f4,ab4,c5,eb5]@6 [f4,ab4,c5,eb5]@2 [e4,gb4,a4,db5]@4 [e4,gb4,a4,db5]!2 [e4,gb4,a4,db5,eb5]@2 [gb4,bb4,db5,eb5,f5]@8 [e4,a4,bb4,d5,e5]@6 ~@6]/4", // Dm7 Dbm7 Bm7 Bbm7 Fm7 Gbm7 Gbmaj7 Dsus2
  AS: "[[eb4,gb4,ab4,b4,db5,eb5,gb5]@12 ~@3 [a3,b3,d4]]/2", // Abm7 Bm7
  AT: "~ [e4,a4,db5]@3 [d4,e4,g4,b4]@3 [db4,gb4]@3 [c4,e4]@3 [eb4,ab4,bb4,db5,eb5]@3", // A Em7 Gb5 C Ebsus4
  AU: "[db4,f4,ab4,db5]@3 [ab4,db5,f5]@3 [a4,b4,db5,gb5]@3 [d4,g4,b4,e5]@3 ~ [e4,a4,d5]@3", // Db Gbm Em7 Dsus2
  AV: "~ [b3,db4,d4,a4]@8 ~@7", AW: "[~ ab4@6 ~, db5@7 ~, ~ c5@27 ~@4, ~@2 bb4@25 ~@5]/2",
})).s("gm_french_horn").gain(0.35)

// chords · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<~@5 A B C D E F ~@5 G H I ~@9 J ~@19 K L M ~@16>".pickRestart({
  A: "d4@2 c4@2 eb4@3 ~", B: "[c4,f4] [b3,eb4]", C: "b3@2 db4 c4", D: "db4 ~@3", E: "[bb3,db4,f4] [b3,db4]",
  F: "~@5 e4 d4@2, [b3,db4,gb4], ~ ab4", G: "~@3 gb4, ~ eb4", H: "ab4@3 eb4 db4 ~ [g4,b4]@2",
  I: "[gb4,bb4]@4 ab4@2 gb4@2 eb4@5 ~@3", J: "[bb3,db4,f4]@4 b3@3 ~, ~@2 gb4 ~", K: "~@14 ab3 bb3",
  L: "[ab3,db4]@2 c4 bb3, ~ eb4", M: "[bb3,eb4]@7 ~, db4 ~",
})).s("gm_french_horn").gain(0.2)

// chords · french horn · "Horn in F"
const french_horn_2 = note(`<
  ~@8 A B C D E F G H I ~ J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN ~@2 AO AP AQ AR@2
  AS@4 AT@2 AU AV AW AX@2
>`.pickRestart({
  A: "~ db4 bb4 ab4, ~ db4", B: "db3 bb3 ~@6 eb3 ab3 ~@6", C: "d3 db4 ~@7 b3 ~@2 ab3@4, ~@2 e3 ~",
  D: "b3@4 bb3@4 ~ db4 ~@2 gb3@4, ~@2 ab3 ~", E: "[bb3,ab4]@7 ~", F: "[g4,bb4] [e4,gb4]",
  G: "f4 ~@3 f4 g4 bb4 c5!2 bb4 g4 f4 eb4 d4 [f4,g4] [eb4,f4]", H: "f3 bb3 bb3@2", I: "[b3,db4]@4 gb4 f4 eb4 ~@9",
  J: "~@13 bb4 ab4 gb4", K: "~@2 e4@2 bb3@2 b3 [bb3,eb4], [a3,c4] ~", L: "ab3 b3 [bb3,db4]@2",
  M: "[d4,gb4]@2 [db4,f4]@2 ab4 gb4 [b3,db4]@2", N: "bb3@5 bb3 ~ b3 [gb3,c4]@6 ~@2", O: "b3@5 ~ db4 b3",
  P: "bb3 ~ [db4,gb4]@2 gb4@2 [f4,gb4]@2", Q: "gb4@12 b3@2 db4 eb4, e4 ~", R: "gb4 eb4 db4@2 ~@8 gb4@2 f4@2",
  S: "~@4 d4@4 eb4@4 e4 eb4 db4 b3", T: "~@10 db4 eb4 db4@2 eb4 gb4", U: "[e4,gb4]@3 [gb4,ab4]",
  V: "f4@4 ~@4 db4 eb4 db4 eb4 e4 eb4 [db4,eb4] [eb4,e4]", W: "[db4,e4]@10 ~@2 db4 eb4 gb4 ab4", X: "f4 [d4,e4]",
  Y: "[eb4,f4]@2 ~@2 gb4@2 d4@2 c4 bb3 bb3@2 bb3 g3 g3@2", Z: "[bb3,c4]@2 [db4,eb4] [d4,e4]",
  AA: "eb4 [eb4,e4] [c4,db4,eb4] [db4,eb4]", AB: "[eb4,ab4] [gb4,bb4] [g4,a4]@2", AC: "ab4@7 ~",
  AD: "g4@4 ab4@3 ~, e4@7 ~", AE: "[f4,bb4,c5] [eb4,a4,b4,db5]", AF: "ab4@6 a4 ab4 gb4@8", AG: "[g4,bb4] [gb4,b4]",
  AH: "f4 ~@3 g4 bb4!2 c5 d5@2 bb4@2 g4 f4 [c4,db4] bb3", AI: "bb3 f4 e4 db4", AJ: "b3@2 ~@2 db4 f4 ab4 [gb4,ab4]",
  AK: "[gb4,ab4,b4]@5 ~ db4@2", AL: "b3@4 ~@2 b3 db4 eb4@2 gb4@2 [f4,bb4]@2 [ab4,db5]@2",
  AM: "b4@4 bb4 ~ bb4@2 ab4@2 ~@6, ~@6 b4 ~@9", AN: "f4 eb4 db4 bb3 ab3@4 db5 b4 bb4 ab4 gb4 ~@3",
  AO: "~@12 db4 eb4 gb4 ab4, [ab3,b3]@7 ~", AP: "[bb3,eb4] [db4,eb4,f4]", AQ: "b3@2 [b3,db4] [a3,b3]",
  AR: "[~@4 [gb4,b4]@2 [gb4,b4] [gb4,b4]@8 ~]/2", // B5
  AS: "[~@2 [d4,f4,a4,c5]@3 [db4,e4,ab4,b4]@3 [b3,d4,gb4,a4]@4 [ab3,bb3,db4,f4,ab4]@14 ~@2 [f4,ab4,c5,eb5]@6 [f4,ab4,c5,eb5]@2 [e4,gb4,a4,db5]@4 [e4,gb4,a4,db5]!2 [e4,gb4,a4,db5,eb5]@2 [gb4,bb4,db5,eb5,f5]@8 [e4,a4,bb4,d5,e5]@6 ~@6]/4", // Dm7 Dbm7 Bm7 Bbm7 Fm7 Gbm7 Gbmaj7 Dsus2
  AT: "[[eb4,gb4,ab4,b4,db5,eb5,gb5]@12 ~@3 [a3,b3,d4]]/2", // Abm7 Bm7
  AU: "~ [e4,a4,db5]@3 [d4,e4,g4,b4]@3 [db4,gb4]@3 [c4,e4]@3 [eb4,ab4,bb4,db5,eb5]@3", // A Em7 Gb5 C Ebsus4
  AV: "[db4,f4,ab4,db5]@3 [ab4,db5,f5]@3 [a4,b4,db5,gb5]@3 [d4,g4,b4,e5]@3 ~ [e4,a4,d5]@3", // Db Gbm Em7 Dsus2
  AW: "~ [b3,db4,d4,a4]@8 ~@7", AX: "[~ ab4@6 ~, db5@7 ~, ~ c5@27 ~@4, ~@2 bb4@25 ~@5]/2",
})).s("gm_french_horn").gain(0.4)

// chords · french horn · "Horn in F" · soft notes
const french_horn_soft_2 = note("<~@5 A B C D ~@7 E F G ~@9 H ~@19 I J K ~@16>".pickRestart({
  A: "d4@2 c4@2 bb3@3 ~", B: "bb3 a3", C: "b3@2 db4 c4", D: "b3 ~", E: "~@7 db4 b3@8", F: "b3@3 db4 ab3 ~ d4@2",
  G: "db4@8 ~@4 eb4 ~@3, ~ [b3,db4]", H: "[bb3,db4]@4 b3@3 ~", I: "~@13 eb4 ab4 bb4", J: "ab3@2 c4 bb3", K: "bb3@7 ~",
})).s("gm_french_horn").gain(0.2)

// other · french horn · "Baritone Horn"
const french_horn_3 = note(`<
// … 138 more lines