Strudelify

Early Autumn

Herman

KeyE♭ majorTempo68 bpm
0:00/0:00
// Early Autumn — Herman
// 68 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 56 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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.

// bass · acoustic bass · "Jazz Bass"
const bass = note(`<
  A B C D E F G H I J C K E L M N O P Q P R S T U V J C W E L G X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR@5
>`.pickRestart({
  A: "~@24 eb2@6 g2@6 ab2@6 ~ b2@5", B: "bb1@4 f2 bb1", C: "a1@2 e2 eb2", D: "ab2@44 eb2@3 ~", E: "g2@2 d2 db2",
  F: "gb2@39 ~@5 gb2@4", G: "f2@18 ~@2 f2@3 ~ c2@12 b1@12", H: "bb1@18 ~@2 bb1@3 ~ g2@24", I: "c2@2 ab2!2",
  J: "bb1@39 ~@5 bb1@4", K: "ab2@4 eb3 ab2", L: "gb2@10 ~ gb2", M: "f2@2 c2 b1", N: "bb1@40 bb0@4 bb1@3 ~",
  O: "bb1@2 bb1 eb2", P: "ab2 db2", Q: "gb2 ab2", R: "gb2@18 ~@2 gb2@3 ~ gb2@18 ~@2 gb2@3 ~",
  S: "gb2@18 ~@2 gb2@3 ~ b1@18 ~@2 b1@3 ~", T: "e2 c2", U: "a1 ab2 g2 gb2", V: "f2@24 e2@18 ~@2 e2@3 ~",
  W: "ab2@10 ~ ab2", X: "g2 c2 f2 bb1", Y: "c2@12 b1@12 bb1@18 ~@2 bb1@3 ~", Z: "bb1@44 f1@3 ~", AA: "bb1 gb2",
  AB: "gb2@11 db2", AC: "gb2@37 ~@3 bb2@2 ~@2 f2@2 ~@2", AD: "gb2 b1", AE: "e2@18 ~@2 e2@3 ~ gb2@24",
  AF: "gb2@24 b1@18 ~@2 b1@3 ~", AG: "e2@18 ~@2 e2@3 ~ e2@24", AH: "e2 a1", AI: "d2@18 ~@2 d2@3 ~ bb1@24",
  AJ: "db2 gb2 b1 e2", AK: "eb2 ab2 d2!2", AL: "g2@12 ab2@12 ab2@18 ~@2 ab2@3 ~", AM: "ab2@15 ~@5 g2@11 ~ d2@15 ~",
  AN: "d2@12 gb2@12 gb2@18 ~@2 gb2@3 ~", AO: "f2@2 gb2 b1", AP: "e2 db2", AQ: "c2@12 f2@13 bb1@13 eb2@10",
  AR: "[~@18 eb2@209 ~@13]/5",
})).s("gm_acoustic_bass").gain(0.5).pan(0.6)

// chords · piano · "Acoustic"
const piano = note(`<
  ~ A B C D E F G H I B C D J K L M N O P Q R S T U V W X@2 Y Z AA AB AC AD AE@2 AF AG AH AI AJ AK AL AM AN AO AP AQ AR
  AS@5 ~
>`.pickRestart({
  A: "[a3,bb3,d4,f4]@8 ~@3 d4, bb2, ~@2 f3, ~@36 a3@11 ~, ~@40 bb3@7 ~", // Bbmaj7
  B: "g3@7 ~@13 db4@4 [e2,g3,b3,d4,e4]@12 [eb2,g3,bb3,db4,f4]@12, a2@23 ~@25, [b3,db4,e4]@12 ~@4 b3@7 ~@25, ~@8 g3@15 ~@25", // Em7 Eb7 Dbm7
  C: "[ab3,c4,g4,bb4]@21 ~@23 ab3@4, ab2, ~@21 ab3@23 ~@4, ~ [c4,g4,bb4], ~@2 eb4", // Abmaj7 C7
  D: "b3@7 ~@13 f4@4 [d3,c4,d4,f4,a4]@12 [db3,b3,eb4,f4,ab4]@12, g2@23 ~@25, [d4,f4,a4]@12 ~@4 d4@7 ~@25, ~@8 b3@15 ~@25", // Dm7 Db7 Dm
  E: "[f4,ab4,bb4,db5]@41 ~@3 [f4,ab4,bb4,db5]@3 ~, gb2", // Bbm7
  F: "a3@7 ~@13 eb4@4 [c3,bb3,c4,eb4,g4]@12 [b2,a3,db4,eb4,gb4]@12, f2@23 ~@25, [c4,eb4,f4]@12 ~@4 c4@7 ~@25, ~@8 a3@15 ~@25", // Cm7 B7 F7
  G: "a3@7 ~@13 d4@4 ~@8 [bb3,d4,f4,g4]@16, bb2@23 ~ g2@24, [bb3,d4,f4]@12 ~@4 bb3@7 ~@25, ~@8 a3@15 ~@25", // Gm7 Bb
  H: "~@2 [bb3,c4,eb4,g4]@4 [ab2,c4,eb4,gb4,ab4]@3 [ab2,c4,eb4,g4,bb4]@3, c3 ~", // Cm7 Ab7 Abmaj7
  I: "[d4,f4,a4,c5]@33 ~@11 f4@4, bb2@3 ~@3 a3@2, ~@40 d4@7 ~", // Dm7
  J: "gb2@8 [db4,f4,ab4,bb4]@21 ~@3 gb2@4 [db4,f4,ab4,bb4]@4 ~@8", // Bbm7
  K: "~@2 [a3,c4,eb4,f4]@4 [c3,bb3,c4,eb4,g4]@3 [b2,a3,db4,eb4,gb4]@3, f2 ~", // F7 Cm7 B7
  L: "[bb2,bb3,d4,f4]@28 ~@4 bb2@3 ~ [bb3,d4,f4]@4 ~@8", // Bb
  M: "~@2 [f3,bb3,d4,f4]@4 [bb2,ab3,bb3,d4,f4]@3 [eb2,gb3,bb3,db4,eb4]@3, bb2 ~", // Bb Bb7 Ebm7
  N: "b3@7 ~@13 gb4@4 b3@7 ~@13 f4@4, ab2@23 ~ db3@23 ~, [eb4,gb4,ab4]@12 ~@4 eb4@7 ~ [eb4,f4,ab4]@12 ~@4 eb4@7 ~, ~@8 b3@15 ~@9 b3@15 ~", // Ab7 Fm7
  O: "bb3@7 ~@13 f4@4 c4@7 ~@13 gb4@4, gb2@23 ~ ab2@23 ~, [db4,f4,ab4]@12 ~@4 db4@7 ~ [eb4,gb4,bb4]@12 ~@4 eb4@7 ~, ~@8 bb3@15 ~@9 c4@15 ~", // Db Ebm
  P: "~ ab3 ~ ab3, [ab2,b3,eb4,gb4,ab4] [db3,b3,db4,f4,ab4]", // Abm7 Db7
  Q: "bb3@7 ~@13 f4@4 ~@8 [bb3,db4,eb4,gb4]@16, gb2@23 ~ gb2@24, [db4,f4,ab4]@12 ~@4 db4@7 ~@25, ~@8 bb3@15 ~@25", // Ebm7 Db
  R: "~ gb3 ~ gb3, [gb2,a3,db4,e4,gb4] [b2,a3,b3,eb4,gb4]", S: "~@3 e3@3 ~@2 [bb3,d4,e4,g4]@4, [e2,ab3,b3,eb4,gb4] c3",
  T: "[a2,g3,a3,db4,e4] [ab2,c4,eb4,gb4,ab4] [g2,b3,d4,f4,g4] [gb2,bb3,db4,e4,gb4]", // A7 Ab7 G7 Gb7
  U: "~ [ab3,c4,eb4,f4]@2 ~ [ab3,b3,d4,gb4]@2, f2 e2", // Fm7 Abm7b5
  V: "~@24 [f3,a3,bb3,d4]@4 a5@2 [f3,a3,bb3,d4]@3 a5 [g5,ab5] f5 [f3,a3,bb3,d4]@4 a5@2 [f3,a3,bb3,d4]@3 [ab5,a5] g5 f5", // Bbmaj7 Abmaj7 Bbmaj7 Amaj7
  W: "[e3,g3,b3,db4]@4 a5@2 [e3,g3,b3,db4]@2 a5 [g5,ab5] f5 ~ [e3,g3,b3,db4]@3 ~ g5@2 [e3,g3,b3,db4]@2 [gb5,g5] f5 e5 ~ [e3,g3,b3,d4]@3 g5@2 ~@3 [gb5,g5] [e5,f5] ~@2 [eb3,g3,bb3,db4]@3 g5 ~@4 f5 eb5 ~@2, ~@15 [e3,g3,b3,d4]@2 ~@4 [eb3,g3,bb3,db4]@2 ~, ~@43 gb5@2 ~@3", // Dbm7b5 Abmaj7 Dbm7b5 Gmaj7 Em7 Gmaj7 Fmaj7 Eb7 …
  X: "[[eb3,g3,ab3,c4]@4 ~@3 [d5,eb5] db5 c5@21 bb4 ~ ab4@3 ~ g4@4 bb4@3 c5@4 ~@4 [d3,f3,g3,b3]@6 ~ g5@2 a5@8 d6@11 a5 ~@2 g5@14, ~@31 a4@2 ~@14 d5@9 ~ f5@2 ~@21 f5@2 ~@14, ~@81 ab5@2 ~@13]/2", // Abmaj7 Ebmaj7 G7
  Y: "~@12 [ab4,bb4,db5,f5]@2 ~@2 [db4,f4,ab4,bb4,db5,f5,ab5]@2 ~ [bb3,db4,f4,gb4,bb4]@8 ~ [db4,f4]@3 [db4,f4,ab4,bb4,db5,f5,ab5]@2 ~@3 g4@12, ~@12 [db4,f4,ab5]@4 ~@2 [db5,f5]@9 [ab4,bb4,db5,f5,ab5]@4 ~@3 [bb3,db4,f4,bb4,db5,f5]@14", // Bbm7 Gbmaj7 Db Bbm7 Db Bbm7 Bbm
  Z: "[f4,ab4,a4,c5,eb5]@4 eb5@2 [f4,ab4,a4,c5]@2 [a3,d4,g4,c5,f5]@15 ~ [c4,e4,f4,g4,bb4,eb5]@4 ~@2 [c4,e4]@2 ~@2 [a3,eb4,g4,a4,d5]@14, ab5@7 ~ ab5 ~@19 [f4,bb4,eb5]@4 [ab3,db4,gb4,ab4,db5]@4 ~@12", // F7 F Dm7 C7 C Dsus4 Ebsus2 Dbsus4
  AA: "~@10 [d4,g4,bb4]@2 [a4,d5,f5,a5]@4 [c5,e5,a5,c6]@8 [eb3,f3,ab3,c4,eb5,g5]@5 bb5@3 [d3,f3,ab3,c4,g4,bb4,d5,g5]@16, ~@3 d3@2 ~ [e3,g3,bb3,d4]@6 ~@12, ~@2 [g3,bb3] ~@9", // Gm Dm Am Fm7 Dm7b5 Em7b5 Gm
  AB: "~@9 d6@2 ~ [a3,f6]@7 e6 d6@3 ~@13 bb3@5 ~@7, ~@3 c3@9 ~@8 [bb2,d3,f3,a3]@16 ~@12, ~@6 g4@4 ~ [eb3,gb3,d4]@8 ~@29, ~@7 [c5,eb5,g5]@3 ~@38, ~@8 bb5@2 ~@10 eb6 ~@3 f6@20 ~@4", // Dm Bbmaj7 Ebm Cm
  AC: "[bb2,db4,f4,ab4,c5]@28 ~@4 bb2@3 ~ [db4,f4,ab4,c5]@4 ~@8", // Bbm7 Dbmaj7
  AD: "ab3@7 ~@13 db4@4 ~@12 gb3@12, bb2@23 ~ [gb2,bb3,db4,f4,ab4]@24, [c4,db4,f4]@12 ~@4 c4@7 ~@25, ~@8 ab3@15 ~@25", // Gbmaj7 Dbmaj7
  AE: "[~@12 f4@7 ~@2 [db4,f4,ab4,bb4]@66 ~@9, ~@8 bb3@13 ~@75]/2", // Bbm7
  AF: "~ [a3,db4,e4,gb4]@2 ~ [a3,db4,eb4,gb4]@2, gb2 b2", AG: "~ [ab3,b3,eb4,gb4]@2 ~ [bb3,db4,e4,ab4]@2, e2 gb2",
  AH: "a3@7 ~@13 e4@4 ~@8 [a3,db4,eb4,gb4]@16, gb2@23 ~ b2@24, [db4,e4,gb4]@12 ~@4 db4@7 ~@25, ~@8 a3@15 ~@25", // Ebm7b5 Gb7
  AI: "~ [ab3,b3,eb4,gb4]@2 ~ [ab3,b3,db4,e4]@2, e2!2", AJ: "~ e3 ~ e3, [e2,g3,b3,d4,e4] [a2,g3,bb3,db4,e4]",
  AK: "~@3 a3@3 ~@2 [ab3,c4,d4,f4]@4, [d3,db4,d4,gb4,a4] bb2", // Dm7b5 Dmaj7
  AL: "[db3,b3,db4,e4,ab4] [gb2,bb3,db4,e4,gb4] [b2,a3,b3,d4,gb4] [e2,ab3,b3,d4,e4]", // Dbm7 Gb7 Bm7 E7
  AM: "[eb2,gb3,bb3,db4,eb4] [ab2,c4,eb4,gb4,ab4] [d3,g3,a3,c4,e4] [d3,c4,d4,gb4,a4]", // Ebm7 Ab7 Am7 D7
  AN: "[g2,b3,d4,gb4,a4]@3 [ab2,c4,eb4,g4,bb4]@3 ~@2 [c4,eb4,g4,bb4]@4, ~ ab2", // Gmaj7 Abmaj7 Cm7
  AO: "c4@7 ~ c4@11 ~ [g2,b3,db4,f4,g4]@12 [d3,c4,e4,gb4,ab4]@15 ~, ab2@19 ~@29, [eb4,g4,bb4] ~@3", // G7 Eb
  AP: "[d3,c4,e4,gb4,ab4]@12 [gb2,bb3,db4,f4,ab4]@12 bb3@7 ~@13 f4@4, ~@24 gb2@23 ~, ~@24 [db4,f4,ab4]@12 ~@4 db4@7 ~, ~@32 bb3@15 ~", // Gbmaj7 Db
  AQ: "~@2 [a3,c4,eb4,gb4]@4 [gb2,a3,db4,e4,gb4]@3 [b2,a3,b3,eb4,gb4]@3, f2 ~", // Adim Gbm7 B7
  AR: "~@2 [ab3,b3,eb4,gb4]@4 ~@3 ab3@3, e2 [db3,b3,db4,e4,ab4]", // Abm7 Dbm7
  AS: "[[c3,bb3,c4,eb4,g4]@12 [f2,a3,c4,eb4,f4]@13 [bb2,ab3,bb3,db4,f4]@13 [eb2,g3,bb3,db4,eb4]@28 ~@14 eb3@150 ~@10, ~@22 [eb2,g3,bb3,db4,eb4]@55 ~@3]/5", // Cm7 F7 Bbm7 Eb7
})).s("gm_piano").gain(0.32).pan(0.4)

// chords · acoustic guitar nylon · "Acoustic"
const acoustic_guitar_nylon = note(`<
  ~ A B C D E F G H I J K D L M N O P Q R S T U V W X Y C Z AA AB AC AD AE AF AG@2 AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV@4 ~
>`.pickRestart({
  A: "~@5 bb3@5 ~@2, ~@4 bb2@39 ~@5, ~@4 f3@17 ~@3, ~@3 a3@7 ~@2",
  B: "~@5 e3 [g3,b3,d4,e4]@3 [g3,bb3,db4,f4]@3, a2 ~, ~ [g3,db4]@2 ~@3", // Em7 Gm7b5 Gdim
  C: "~@8 eb4@3 ~, ab2@23 ~, ~@4 c4@19 ~, ~@3 g4@8 ~, ~@5 bb4@4 ~@3",
  D: "~@5 d4 [c4,d4,f4,a4]@3 [b3,eb4,f4,ab4]@3, g2 ~, f4@3 ~@5, ~ b3@2 ~@3", // Dm7 Fm7b5
  E: "bb3@5 ~@39 bb3@4, [gb2,f4], ~@4 bb3@17 ~@3, ~ db4@3, ~@5 ab4@7", // Gbmaj7
  F: "~@5 c4 [bb3,c4,eb4,g4]@3 [a3,db4,eb4,gb4]@3, ~ f2@5 ~@6, ~ f3@2 ~@3, ~ a3 ~@2", // Cm7 Ebm7b5
  G: "~@5 d4 ~@5 f4, f3@6 ~ g2@5, ~ a3@2 ~ g3@2, ~ bb3 ~ bb3, ~@5 d4",
  H: "[g3,bb3,c4]@2 [c4,eb4,gb4,ab4] [c4,eb4,g4,bb4]", I: "~@11 f4, ~ bb2@3 d4@2, ~ f3@3, ~@5 a3@7, ~ bb3",
  J: "[e3,g3,b3]@2 [g3,b3,d4,e4] [g3,bb3,db4,f4]", K: "c4@5 ~@39 c4@4, [ab2,g4], ~@4 c4@17 ~@3, ~ eb4@3, ~@5 bb4@7",
  L: "~@5 bb3 ~@2 bb3 ~@2 bb3, ~ gb2@5, ~@4 gb3@7 ~ gb3@4, ~@8 db4@7 ~",
  M: "[a3,c4,eb4,f4]@2 [bb3,c4,eb4,g4] [a3,db4,eb4,gb4]", N: "~@20 d4@23 ~@5, bb2@7 ~, ~@8 f3@35 ~@5, ~@2 bb3@5 ~",
  O: "~@5 d4 [ab3,bb3,d4,f4]@3 [gb3,bb3,db4,eb4]@3, ~ bb2@5 ~@6, ~ f3@2 ~@3, ~ bb3 ~@2", // Bb7 Ebm7
  P: "~@5 ab3 ~@5 eb4, ab2@6 ~ db3@5, ~ [b3,gb4]@2 ~ ab3@2, ~@3 b3", // B5
  Q: "~@5 gb3 [bb3,c4,eb4]@6, gb2 ~, ~ [bb3,f4]@2 ~@3", // Cm7 Bb5
  R: "~@5 gb4 [b3,db4,f4,ab4]@6, ~ ab2@5 ~@6, ~ ab3@2 ~@3, ~ b3 ~@2, ~@2 eb4 ~@3", // Db7
  S: "~@5 f4 ~@5 db4, ~ gb2@5 gb2@6, ~ gb3@2 ~ gb3@2, ~ bb3 ~ bb3, ~@16 db4@8 db4@13 ~@11",
  T: "~@5 gb3 ~@5 eb4, gb2@3 ~ a3@2, ~ [a3,e4]@2 gb3@3, ~@3 b3", U: "[e3,ab3,b3] [bb3,d4,e4,g4]",
  V: "[g3,a3,db4,e4] [c4,eb4,gb4,ab4] [b3,d4,f4,g4] [bb3,db4,e4,gb4]", // A7 Ab7 G7 Gb7
  W: "~@5 c4 ~@5 b3, f2 e2, eb4@9 ~@7 e3@8, ~@2 ab3@4 b3@3 ab3@3",
  X: "a3@2 ~@3 bb3@6 f3, bb2, ~@2 f3@5 ~@5, ~@6 a3@17 ~", Y: "[e3,g3,b3]@2 [g3,b3,d4,e4] [g3,bb3,db4,eb4]",
  Z: "~@5 d4 [c4,d4,f4,a4]@3 [b3,db4,f4,ab4]@3, g2 ~, d4 b3 ~@2, ~ a3@2 ~@3", // Dm7 Db7
  AA: "bb3@2 ~@3 db4@6 gb3, gb2, ~@2 gb3@5 ~@5, ~@6 bb3@17 ~",
  AB: "~@5 f3 [bb3,c4,eb4,g4]@3 [a3,db4,eb4,gb4]@3, f2 ~, ~ [a3,eb4]@2 ~@3", // Cm7 Ebm7b5 Adim
  AC: "[bb3,d4,f4,g4] [bb3,c4,e4,g4] [ab3,c4,eb4,f4] [ab3,bb3,d4,f4]", // Gm7 C7 Fm7 Bb7
  AD: "[bb3,c4,eb4,g4]@3 [a3,b3,eb4,gb4]@3 ~@5 f3, ~ bb2, ~@2 [a3,d4]", // Cm7 B7 D5
  AE: "~@5 ab3 ~@2 ab3 ~@2 ab3, ~ bb2@5, ~@4 f3@7 ~ f3@4, ~@8 c4@7 ~",
  AF: "~@5 db4 [bb3,db4,f4,ab4]@6, f3 ~, ~ ab3@2 ~@3, ~ c4 ~@2", // Bbm7
  AG: "[db4@2 ~@21 db4, gb2@37 ~@3 gb2@8, ~@8 gb3@65 ~@11 gb3@11 ~, ~@3 bb3@18 ~ bb3@2, ~@5 db4@16 ~@3]/2",
  AH: "~@5 db4 [gb3,a3,db4]@6, ~ gb2@5 ~@6, ~ gb3@2 ~@3, ~ a3 ~@2", // Gbm
  AI: "~@5 eb4 ~@5 db4, ~ e2@5 ~ gb2@5, ~ e3@2 ~ gb3@2, ~ ab3 ~@2, ~@4 b3@2 ~@3 bb3@3",
  AJ: "[gb3,a3,db4] [a3,db4,eb4,gb4]", AK: "[e3,ab3,b3]@6 ~@5 b3, ~@7 e2@5, ~@2 e3, ~@3 ab3",
  AL: "[e3,g3,b3] [e3,g3,bb3]", AM: "~@5 d4 ~@5 f3, d3 bb2, d4 db4 ~@2, ~ a3@2 ~ [ab3,d4]@2",
  AN: "[b3,db4,e4,ab4] [bb3,db4,e4,gb4] [a3,b3,d4,gb4] [ab3,b3,d4,e4]", // Dbm7 Gb7 Bm7 E7
  AO: "[gb3,bb3,db4,eb4] [c4,eb4,gb4,ab4] [g3,a3,c4,e4] [c4,d4,gb4,a4]", // Ebm7 Ab7 Am7 D7
  AP: "[b3,d4,gb4,a4]@3 [c4,eb4,g4,bb4]@3 ~@5 eb4, ~@7 ab2@5, ~@2 ab3, ~@3 c4", // Bm7 Cm7
  AQ: "~@8 [c4,g4]@11 ~ [b3,db4,f4,g4]@11 ~ [c4,e4,gb4,ab4]@15 ~, ab2@19 ~@29", // C5 Db7 Caug
  AR: "[c4,e4,gb4,ab4] [bb3,db4,f4,ab4] [bb3,db4,f4,ab4]@2", // Caug Bbm7
  AS: "~@5 c4 [a3,db4,e4,gb4]@3 [a3,b3,eb4,gb4]@3, ~ f2@5 ~@6, ~ f3@2 ~@3, ~ a3 ~@2", // Gbm7 B7
  AT: "~@5 b3 ~@5 ab3, ~ e2@5 ~@6, ~ e3@2 db3@3, ~@3 ab3@3 ~@2 [b3,e4]@4", // E5
  AU: "[bb3,c4,eb4,g4]@12 [a3,c4,eb4,f4]@13 [ab3,bb3,db4,f4]@13 [g3,bb3,db4,eb4]@10", AV: "[~@6 [eb3,g3,bb3]@55 ~@3]/4",
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.4)

// chords · string ensemble 1 · "String Se"
const string_ensemble_1 = note(`<
  ~ A B C D E F G H I J C D K L M N ~@16 O P Q@2 R S T U V W X Y Z AA AB AC AD AE AF@4 ~
>`.pickRestart({
  A: "[d6,f6]", B: "[db6,e6]@2 [g5,d6] [db6,f6]", C: "[c6,g6]", D: "[b5,f6]@2 [c6,f6] [b5,f6]", E: "[bb5,f6]",
  F: "[a5,eb6]@2 [eb6,g6] [a5,eb6]", G: "[a5,d6] [bb5,f6]", H: "[eb6,g6]@2 [c6,gb6] [c6,g6]", I: "[a5,d6]",
  J: "[g5,db6]@2 [d6,e6] [db6,f6]", K: "[f6,ab6]", L: "[a5,eb6]@2 [eb6,g6] [eb6,gb6]", M: "f5@23 ~ bb5@24, d6",
  N: "[d6,f6]@2 [ab5,d6] [gb5,db6]", O: "[db6,f6]", P: "[ab5,db6] [bb5,f6]", Q: "[~ bb5, [f6,ab6]]/2",
  R: "[a5,e6] [a5,eb6]", S: "[eb6,gb6] [bb5,e6]", T: "[a5,e6] [eb6,gb6]", U: "[ab5,eb6] [db6,e6]",
  V: "[g5,d6] [g5,db6]", W: "[db6,gb6] [e6,f6]", X: "[e6,ab6] [bb5,e6] [a5,d6] [d6,e6]",
  Y: "[db6,eb6] [c6,gb6] [g5,c6] [c6,gb6]", Z: "[b5,gb6] [g6,bb6] [c6,g6]@2",
  AA: "[c6,g6]@19 ~ [b5,f6]@11 ~ [gb6,ab6]@15 ~", AB: "[gb6,ab6] [f6,ab6] [f6,ab6]@2",
  AC: "[eb6,gb6]@2 [a5,e6] [a5,eb6]", AD: "[ab5,eb6] [b5,e6]", AE: "[bb5,eb6]@12 [a5,eb6]@13 [ab5,db6]@13 [g5,db6]@10",
  AF: "[~@6 [g5,db6]@55 ~@3]/4", // Gdim
})).s("gm_string_ensemble_1").gain(0.15).pan(0.6)

// other · alto sax · "Lead Alto"
const alto_sax = note(`<
  A B C D E F G H I B C D E F G J K L M N@2 O P@2 Q@2 ~@7 R S T@3 U V W ~@4 X Y@4 Z AA@4 ~
>`.pickRestart({
  A: "~@4 f4 gb4 g4 ab4", B: "a4@2 f4@2 d4@2 bb3@2 a4 bb4 c5 bb4 a4@4",
  C: "~@11 db4@3 e4@3 g4@3 bb4@4 a4@2 g4@3 f4@3 ~ e4@3 a4@6 db4@6",
  D: "~ g4@11 eb4@5 c4@4 ab3@4 g4@2 ab4@3 bb4@3 c5@3 g4@11 ~",
  E: "~@11 b3@3 d4@3 f4@3 ab4@3 g4@4 f4@3 eb4@3 d4@3 g4@6 b3@6",
  F: "~ f4@11 db4@5 bb3@4 gb3@3 f4@4 ~ gb4@3 ab4@4 f4@12", G: "~@12 a3@2 c4@4 eb4@3 gb4@3 f4@3 eb4@3 d4@3 c4@3 f4@12",
  H: "d4@4 c5 bb4 d4 eb4", I: "d4@23 ~@13 g4@6 ab4@6", J: "d4", K: "~@30 d4@6 eb4@6 f4@5 ~",
  L: "gb4@20 eb4@5 bb4@8 a4@2 ab4@2 g4@11", M: "~@9 f4@7 ab4@4 gb4@5 f5@9 e5@2 ~ d5@10 ~, ~@18 eb5 ~@5",
  N: "[eb5@16 db5@2 b4@3 bb4@9 ab4@7 bb4@6 db5@4 ab4@26 ~@5 db4@10 eb4@4 f4@4]/2", O: "gb4@19 e4@5 ab4@20 gb4@4",
  P: "[g4@8 ab4@6 b4@4 eb5@5 gb5@17 f5 ~ d5@5 eb5@24 e5@25, ~@41 eb5@2 ~@53]/2",
  Q: "[bb4@8 ~ bb4@9 bb4@6 b4@6 a4@3 ab4@2 gb4@3 e4@3 d4@3 db4@3 c4@37 ~@12]/2",
  R: "~@3 eb4 db4 c4 db4 eb4 f4 eb4 db4 c4", S: "bb3 c4 db4 c4 bb3 ab3 gb3 ab3 bb3 ab3 gb3 f3",
  T: "[eb3@5 ~ db3@6 eb3@12 db3@23 eb3@24 e3@24 db4@49]/3", U: "eb4@24 db4@23 ~", V: "e4@23 ~ eb4@24", W: "ab4 gb4",
  X: "~ gb4@6 g4@5 ~ g4@23 c4@6 f4@3 eb4@3",
  Y: "[g3@6 eb4@6 b3@24 ~ eb4@4 ~@3 d4@16 gb3@11 ~ bb3@3 db4@3 f4@3 ab4@3 f4@3 db4@4 bb3@4 c4@25 db4@23 eb4@48 ~]/4",
  Z: "eb4@12 g4@13 f4@13 g4@10", AA: "[~@9 g4@83 ~@4]/4",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "3rd Tenor"
const tenor_sax = note(`<
  A B C D E@2 F G H B C D E@2 F I J K ~@3 L M@2 N@2 ~@9 O@2 P Q R S ~@4 T U@2 V W X@5 ~
>`.pickRestart({
  A: "~@23 db4@7 d4@6 eb4@6 e4@6", B: "f4@6 d4@6 bb3@6 g3@6 f4@3 g4@3 a4@3 g4@3 f4@11 ~",
  C: "~@12 a3@3 db4@3 e4@3 g4@3 gb4@3 e4@3 d4@2 db4@3 ~ f4@7 bb3@5",
  D: "eb4@12 c4@5 ab3@4 f3@4 eb4@3 f4@2 g4@3 ab4@3 eb4@11 ~",
  E: "[~@12 g3@3 b3@3 d4@2 f4@3 e4@3 d4@3 ~ c4@3 b3@3 eb4@6 ab3@5 db4@12 ~ bb3@5 gb3@4 eb3@3 db4@4 eb4@4 f4@4 db4@12]/2",
  F: "~@4 f3 a3 c4 eb4 d4 c4 b3 bb3 db4@2 d4@2", G: "a3@4 c5 bb4 d4 eb4", H: "d4@23 ~@13 eb4@6 e4@6", I: "a3 ~",
  J: "~@7 f3@17 ab3@12 bb3@12", K: "b3", L: "~ a3", M: "[~ b3@22 e4@24 db4@12 ~ c4@12 b3@12 bb3@11 ~]/2",
  N: "[c4@24 d4@23 a3@49]/2", O: "[~@47 ab3@24 ~ a3@24]/2", P: "~ a3@47", Q: "b3@25 bb3@23", R: "db4@24 db4@23 ~",
  S: "eb4@25 b3@23", T: "~ d4@5 ~ eb4@6 eb4@24 c4@5 f4@3 eb4@3",
  U: "[g3@6 eb4@6 b3@24 eb4@4 ~@4 d4@15 gb3@13 ~ bb3@2 db4@3 f4@3 ab4@3 f4@3 eb4@3 db4@3 bb3@3]/2", V: "~ a3@23 a3@24",
  W: "b3@47 ~", X: "[bb3@12 eb4@12 db4@13 ~ f4@14 ~@14 d4@167 ~@7]/5",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "4th Tenor"
const tenor_sax_2 = note(`<
  A B C D E F G H I B C D E F G H J K ~@3 L M N O P ~@10 Q R S T U ~@4 V ~@2 W X Y@5 ~
>`.pickRestart({
  A: "~@24 bb3@5 b3@7 c4@6 db4@6", B: "d4@2 bb3@2 g3@2 f3@2 d4 eb4 e4 eb4 d4@4",
  C: "~@12 a3@3 b3@3 db4@2 ~ e4@3 d4@6 c4@3 bb3@3 db4@7 g3@5", D: "c4@12 ab3@5 f3@4 eb3@4 c4@3 db4@2 ~ d4@3 f4@3 c4@11",
  E: "~@12 f3@3 a3@3 b3@3 d4@2 c4@6 ~ a3@3 g3@3 b3@6 ~ f3@5", F: "bb3@12 ~ gb3@5 eb3@3 db3@4 bb3@4 b3@3 c4@4 bb3@12",
  G: "~@4 eb3 g3 a3 c4 bb3@2 ab3 g3 a3@4", H: "f3@23 ~@25", I: "d4@4 ~@2 c4 db4", J: "~@7 d3@16 ~ d3@12 gb3@11 ~",
  K: "ab3", L: "~ eb3", M: "ab3@23 ~ g3@24", N: "g3@12 gb3@11 ~ f3@12 e3@12", O: "eb3 ab3", P: "f3", Q: "b3 e3",
  R: "e3@25 eb3@23", S: "ab3 e3", T: "a3@47 ~", U: "b3@25 ab3@23", V: "~ b3@6 c4@5 c4@23 ~@13",
  W: "~ eb3@23 e3@11 ~ gb3@12", X: "ab3@47 ~", Y: "[g3@6 a3@6 ab3@7 db4@7 ~@7 b3@83 ~@4]/5",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  A B C D E F G H I B C D E F G J K L ~ M N@2 O@2 P Q ~@7 R S T U V W@2 X Y Z@2 AA AB AC@2 AD AE@2 AF@4 ~
>`.pickRestart({
  A: "~@23 eb3@7 g3@6 ab3@6 b3@6", B: "bb3@6 g3@6 f3@6 d3@6 bb3@3 c4@3 db4@3 c4@3 bb3@11 ~",
  C: "~@4 e3 g3 b3 c4 bb3@2 a3 g3 eb3@2 f3@2", D: "ab3@12 f3@5 eb3@4 c3@3 a3@3 bb3@3 b3@3 db4@3 a3@12",
  E: "~@12 d3@3 f3@2 a3@3 b3@2 ~ a3@7 g3@3 f3@3 db3@6 eb3@6", F: "gb3@11 ~ eb3@5 db3@4 bb2@4 g3@4 ab3@3 a3@4 gb3@12",
  G: "~@12 c3@3 eb3@3 g3@2 a3@3 g3@7 f3@3 eb3@3 b2@12", H: "bb2@4 c4 bb3 d3 eb3", I: "d3@4 ~@2 ab3 a3", J: "bb2 ~",
// … 133 more lines

More by Herman