Strudelify

Le Jazz Hot

Henry Mancini

KeyD minorTempo180 bpm
0:00/0:00
// Le Jazz Hot — Henry Mancini
// 180 bpm, 4/4, key D minor. 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, 6/4 at bar 55, 4/4 at bar 57) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 174 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/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 · piano
const piano = note(`<
  ~@23 A@2 B@3 ~ C@2 D E F G H I ~@3 J ~@9 K L ~@3 M@2 N@6 O@2 ~@14 P@2 Q R S@4 T@2 ~@2 U V W X Y Z Y AA ~@30 AB ~ AC AD
  AE AF@4 AG@7 AH AI AJ AK AL AM AN@5 AO AP AQ@2 AR@7 AS@3 ~@3 AT
>`.pickRestart({
  A: "[~@4 [f6,a6,d7]@9 ~ [e6,g6,a6,db7]@9 ~ [d6,f6,a6,c7]@8]/2", // Dm A7 Dm7
  B: "[~ [db6,e6,g6,a6,b6]@9 ~ [d6,f6,a6]@9 ~ [bb5,c6,e6,g6]@9 ~ [a5,c6,f6]@9 [g5,a5,db6,e6]@8]/3", // Dbm7b5 Dm C7 F A7
  C: "[~@14 ab4 a4@2 ~ c5 ~ d5@4 ~ f5 [a4,c5] f5 [c5,f5] c5 [a4,f5] [a4,c5]]/2", // Am F5 Dm Am
  D: "f5 [a4,c5] a4 c5 [a4,c5] a4 [a4,c5] f5 [a4,c5] [a4,c5,f5] f5 [a4,c5] g6@2 ~@2", E: "e6@3 d6@3 ~@2",
  F: "a5 [f5,a5] d6 [a5,d6] [f5,a5] d6 [f5,a5] d6 [f5,a5] f5 [f5,a5] a5 f5 [f5,a5] d6 [f5,a5]", // F D5 F
  G: "[f5,a5,d6] d6 [f5,a5] [f5,d6] a5 [f5,d6] a5 d6 [f5,a5] [f5,d6] [a5,d6] [f5,a5] f5 a5 f5 [f5,a5]", // Dm F Dm F Dm D5 F
  H: "~@7 [a5,b5] [b5,f6] [a5,b5,d6] a5 [b5,d6,f6] a5 [b5,d6,f6] [a5,d6,f6] b5", // Asus2 Bdim Bm7 Bdim Dm
  I: "[a5,b5,f6] [a5,f6] b5 [a5,f6] [b5,f6] [a5,d6] [a5,b5,f6] [b5,d6,f6] a5 [b5,d6,f6] f6 [b5,d6] ~@4", // Bm7b5 Dm Bdim D5 Bm7b5 Bdim Bm
  J: "~@2 [c4,e4,g4,bb4] ~", K: "~@3 db4@5 d4@2 ~@2 e4@2 ~@2", L: "f4 ~@7",
  M: "[[gb4,ab4,c5,eb5]@4 [f4,g4,b4,d5]@4 [e4,gb4,bb4,db5]@4 [eb4,f4,a4,c5]@19 ~]/2", // Ab7 G7 Gb7 F7
  N: "[[d4,gb4,a4,c5]@27 ~ [d4,f4,g4,b4]@55 ~ [d4,f4,g4,b4]@3 ~ [d4,f4,g4,b4]@3 ~ [d4,f4,g4,b4]@4]/6", // D7 G7
  O: "[db4,e4,gb4,bb4]/2", P: "[[gb4,ab4,c5,eb5] [f4,g4,b4,d5] [e4,gb4,bb4,db5] [eb4,f4,a4,c5]@3 [d4,e4,ab4,b4]@2]/2",
  Q: "[db4,eb4,g4,bb4]", R: "[d4,gb4,a4,c5]", S: "[[d4,f4,g4,b4]@7 [bb3,db4,eb4,g4]@9]/4", T: "[a3,c4,f4]/2",
  U: "[g3,bb3,d4,f4]@7 ~ [g3,bb3,c4,e4]@7 ~", V: "[g3,bb3,db4,eb4]@6 ~ [g3,bb3,db4,eb4] ~@3 [g3,bb3,db4,eb4]@4 ~",
  W: "[f3,a3,c4,d4]@7 ~ [f3,a3,c4,d4]@7 ~", X: "[g3,b3,d4,f4]@6 ~ [g3,b3,d4,f4] ~@3 [g3,b3,d4,f4]@4 ~",
  Y: "[g3,bb3,d4,f4]@15 ~", Z: "[g3,bb3,c4,d4,e4]@15 ~", AA: "[bb3,c4,d4,e4,g4]", AB: "~@2 [gb5,bb5,db6,gb6] ~@5",
  AC: "~@3 [f5,bb5,db6,f6]@2 ~@11", AD: "~@15 [g4,a4,db5,e5]",
  AE: "~@3 [gb4,ab4,c5,eb5]@3 [f4,g4,b4,d5]@4 [e4,gb4,bb4,db5]@6", // Ab7 G7 Gb7
  AF: "[~@6 [eb4,f4,a4,c5]@7 ~ [d4,e4,ab4,b4]@15 ~ [eb4,g4,bb4,db5]@15 [eb4,gb4,ab4,c5]@19]/4", // F7 E7 Eb7 Ab7
  AG: "[~@9 [b3,d4,e4,ab4]@35 [bb3,db4,gb4]@31 [c4,eb4,gb4,ab4]@31 [ab3,b3,eb4,gb4]@6]/7", // E7 Gb Ab7 Abm7
  AH: "~@2 [ab3,b3,db4,f4]@7 ~ [ab3,b3,d4,e4]@6", AI: "~ [ab3,b3,d4,e4] ~@2 [ab3,b3,d4,e4]@4 ~@2 [gb3,bb3,db4,eb4]@6",
  AJ: "~@2 [gb3,bb3,db4,eb4]@7 [ab3,c4,eb4,gb4]@6 ~", // Ebm7 Ab7
  AK: "[ab3,c4,eb4,gb4] ~@3 [ab3,c4,eb4,gb4]@4 ~ [ab3,b3,eb4,gb4]@7", // Ab7 Abm7
  AL: "~ [ab3,b3,db4,eb4,f4]@7 ~ [ab3,b3,eb4,gb4]@7", AM: "[b3,db4,eb4,f4,ab4]@7 ~@5 [bb3,d4,f4,ab4] ~@3",
  AN: "[[bb3,d4,f4,ab4]@6 ~@2 [bb3,d4,f4,ab4]@5 ~ [bb3,d4,f4,ab4]@4 ~@2 [bb3,d4,f4,ab4] ~@7 [bb3,db4,eb4,f4,g4] ~@2 [bb3,db4,eb4,f4,g4]@6 ~@2 [bb3,db4,eb4,f4,g4]@5 ~@2 [bb3,db4,eb4,f4,g4]@4 ~ [bb3,db4,eb4,f4,g4] ~@7 [ab3,bb3,c4,eb4,gb4] ~@3 [ab3,bb3,c4,eb4,gb4]@2 [ab3,bb3,c4,eb4,gb4] ~@5 [ab3,bb3,c4,eb4,gb4]@6 [ab3,bb3,c4,eb4,gb4]@3]/5", // Bb7 Eb7 Ab7
  AO: "~@2 [ab3,bb3,c4,eb4,gb4] ~@7 [ab3,b3,db4,eb4,f4] ~@3 [ab3,b3,db4,eb4,f4]@2", // Ab7 Db7
  AP: "~ [ab3,b3,db4,eb4,f4] ~@4 [ab3,b3,db4,eb4,f4]@6 [ab3,b3,db4,eb4,f4]@4", // Db7
  AQ: "[~@2 [ab3,b3,db4,eb4,f4] ~@3 [gb3,bb3,db4,eb4]@20 ~@6]/2", // Db7 Ebm7
  AR: "[[bb3,db4,eb4,gb4]@24 ~@7 [db4,eb4,gb4,bb4]@24 ~@7 [eb4,gb4,bb4,db5]@24 ~@6 [gb4,bb4,db5,eb5]@20]/7", // Ebm7
  AS: "[~@11 [bb4,db5,eb5,gb5]@24 ~@10 [b4,eb5,gb5,a5,db6]@2 ~]/3", AT: "~@7 [gb1,gb2,eb4,gb4,bb4,db5] ~@8",
})).s("gm_piano").gain(0.3).pan(0.3)

// chords · piano · soft notes
const piano_soft = note("<~@30 A B ~ C D E F ~@137>".pickRestart({
  A: "~@9 a4 ~@2 a4 ~@3", B: "~@2 f5 ~ f5!2 ~@10", C: "[f5,d6] ~@2 f5 ~@5 d6 ~ d6!2 ~@3",
  D: "~@3 a5 ~@2 f5 ~@5 d6 ~ d6 ~", E: "[a5,d6] [f5,d6] [f5,a5] d6 [f5,a5] [f5,a5,d6] ~ [d6,f6] ~@2 f6 ~@5",
  F: "d6 ~ d6 ~ d6 ~@4 a5 [a5,b5] ~ [a5,d6,f6] [b5,f6] [a5,d6] [a5,b5,f6]", // Asus2 Dm Bdim D5 Bm7b5
})).s("gm_piano").gain(0.15).pan(0.3)

// bass · acoustic bass
const bass = note(`<
  ~@22 A B@2 C@8 D@5 ~@8 E@2 F ~@2 G@4 H@2 I J@2 K@2 L M@2 N O P ~@7 G@4 Q@2 R S K@2 R@2 T@2 U V W X Y Z AA S AB AC AD
  ~@13 AE AF AG AH AE AI AJ AK AL@3 AM AN@2 AO AP M AQ@3 AR@7 AS@6 AT AU AV AW AX AY AZ@8 BA@3 BB@2 BC@5 ~@3 BD
>`.pickRestart({
  A: "~@10 b1@2 ~ c2@2 ~", B: "[~ db2@2 ~ d2@9 ~ e2@9 ~ f2@8]/2",
  C: "[~ e2@9 ~ d2@9 ~ c2@9 ~ f2@6 g2@3 a2@5 ~@2 a2@3 d2@9 ~ e2@9 ~ f2@9 c2@9 ~ f2@19 a2@9 ~ d2@9 ~]/8",
  D: "[g2@37 ~@2 g2@39 ~@2]/5", E: "~@3 a1 bb1 ~@2 b1 c2 ~@7", F: "~@3 eb2 d2 ~@2 db2 c2 ~@7", G: "f2 c2",
  H: "[ab2@4 g2@4 gb2@4 f2@11 ~ f2@2 ~@2 f2@4]/2", I: "d2 e2", J: "[f2@4 gb2 ~ g2@6 d2@4]/2", K: "g2 d2",
  L: "g2@2 ~@2 g2@3 ~ g2@3 ~ g2@4", M: "gb2 db2", N: "~@4 c2 ~@7 db2 ~@3", O: "~@4 c2 ~@6 eb2 d2 ~@2 db2", P: "c2 ~@15",
  Q: "[ab2@4 g2@4 gb2@4 f2@6 ~@2 f2 ~@2 f2 e2@2 ~@2 e2@4]/2", R: "eb2 bb1", S: "d2 e2 f2 gb2", T: "d2 a2", U: "g2 a2",
  V: "bb2 b2", W: "g2 c2", X: "eb2 bb2", Y: "d2@7 ~ d2@8", Z: "g2@7 ~ g2@8", AA: "g1 a1 b1 c2", AB: "g2 f2 e2 d2",
  AC: "c2 bb1 a1 g1", AD: "f1 ~@7", AE: "d2@3 ~ d2@3 ~ e2@3 ~ e2@3 ~", AF: "f2@3 ~ f2@3 ~ e2@3 ~ e2@3 ~",
  AG: "d2@3 ~ d2@3 ~ c2@3 ~ c2@3 ~", AH: "f2@2 ~ f2 g2@2 ~ a2@2 ~@2 a2@4 ~", AI: "f2@3 ~ f2@3 ~ a2@3 ~ g2@3 ~",
  AJ: "f2@3 ~ f3@3 ~ f2@3 ~ f3@3 ~", AK: "a2@4 e3@2 ~ d3@2 ~@7", AL: "g2@7 ~ d2@7 ~", AM: "g2@7 ~ g2@7 ~",
  AN: "c3@2 ~@9 a2 bb2 ~@2 b2", AO: "c3@2 ~@5 c3@2 ~@7", AP: "d3@2 ~ c3@2 ~@2 a2@2 ~@2 g2@5",
  AQ: "[gb2@7 db2@8 gb2@8 db2@8 gb2@8 db2@8 a2]/3",
  AR: "[~@3 ab2@3 g2@4 gb2@12 f2@8 e2@7 ~ e2@8 eb2@7 eb2@4 bb2@4 ab2@8 eb2@8 ab2@8 eb2@7 e2@8 b2@8 e2@4]/7",
  AS: "[~@4 e2@3 ~ e2@3 ~ eb2@8 bb2@7 eb2@8 bb2@8 ab2@8 bb2@8 b2@8 c3@7 ab2@8 db2@8 e2@6]/6", AT: "~ e2@4 eb2@3",
  AU: "~@2 eb2@7 ab2@7", AV: "~ ab2@7 ~ ab2@7", AW: "~ db2@7 ~ ab2@7", AX: "db3@4 gb2@4 bb2@7 ~", AY: "bb2@7 ~ bb2@7 ~",
  AZ: "[bb2@4 f2@4 eb2@4 f2@3 g2@4 ab2@4 bb2@4 c3@4 db3@4 eb3@4 ab2@4 eb2@4 f2@4 gb2@4 ab2@3 bb2@4 b2@4 c3@4 db3@4 b2@4 bb2@4 ab2@4 gb2@4 f2@4 eb2@4 db2@4 gb2@6 ~ e2@6 ~@2 eb2@5 ~ db2 ~@4]/8",
  BA: "[gb2@10 ~@2 e2@6 ~ eb2@5 ~@2 db2 ~@4 gb2@10 ~ e2@6]/3", BB: "[~@2 eb2@5 ~ db2 ~@5 gb2@10 ~ e2@6 ~]/2",
  BC: "[~ eb2@5 ~ db2 ~@4 gb2@10 ~@2 e2@6 ~ eb2@5 ~@2 db2 ~@4 gb2@10 ~ e2@6 ~@2 eb2@5 ~ db2@7 ~@2 b1 ~@2]/5",
  BD: "~@7 gb1@2 ~@7",
})).s("gm_acoustic_bass").gain(0.45)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@6 B@4 C@7 D@3 E@3 F@2 G@3 H@4 I@6 ~@13 J K L K M@2 N@3 ~@15 J K L K O@2 P Q@2 ~ R S T ~@3 U V W X ~@62 Y ~@16
>`.pickRestart({
  A: "[~@12 [d4,f4]@62 ~@2 f4@8 ~@3 g4@8 ~, ~@11 [d3,a3]@63 d3@10 ~ [c3,bb3]@10 ~, ~@75 [a3,d4]@9 ~@2 [c4,e4]@9 ~]/6", // Dm D5 C7 D5 C
  B: "[~ f4@10 ~@3 e4@8 ~@2 f4@39 ~, [f2,a3,c4]@11 ~ [a2,g3]@10 ~ [d3,a3,d4]@40 ~, ~@13 [a3,db4]@9 ~@42]/4", // F A7 D5 A
  C: "[~ f4@19 ~@2 [f4,a4]@9 ~@2 gb4@8 ~@3 f4@68, [f2,a3,c4]@20 ~ [a2,db4]@10 d3@10 ~ [g2,a3]@70, ~@32 [a3,d4]@9 ~@2 [b3,d4]@69]/7", // F A Gsus2 D5 Bm
  D: "[~@5 [d3,f3,g3,b3,d4] ~ [db3,e3] [gb3,bb3,db4] ~ [c3,eb3,f3,a3,c4] ~@2 [b2,d3,e3,ab3,b3] ~@2 [g3,bb3]@16 ~@16, ~@5 [bb2,db3,eb3]@6 ~@5]/3", // G7 Dbm Gb F7 E7 Gm Eb7
  E: "[~@11 a4@13 ~@3 g4@13 ~@2 [d3,gb3]@2 ~@2 g3@2, ~@9 [a2,eb3]@15 ~ [e3,bb3]@15 ~ b2@2 ~@2 [c3,eb3]@2 ~, ~@5 eb4@7 ~ [db4,e4]@7 ~@4]/3", // D Adim Edim Cm Dbm
  F: "[~ [e3,ab3]@2 ~@2 [d4,f4]@7 ~@3 g4@7 ~@2 [a3,d4,f4]@7 ~, db3@2 ~ d3@9 ~ db3@9 ~ [c3,f3]@9, ~@2 [f3,a3]@4 ~ [g3,a3,e4]@4 ~@5]/2", // E Dm F5 F A7
  G: "[~@2 [e4,g4]@7 ~@3 f4@8 ~@2 g4@7 ~@2 [c4,f4]@8 ~@2 e4@7, ~ [db3,g3,a3]@8 ~ d3@9 ~ [c3,bb3]@9 ~ [f2,a3]@9 ~ [a2,g3,a3,db4]@8, ~@11 [a3,d4]@9 ~ [c4,e4]@8 ~@19]/3", // Em F5 A7 C7 F A7 D5 C
  H: "[~@2 [a3,d4,f4]@37 ~@2 [a3,c4,f4]@18 ~@2 a4@3, ~ d3@38 ~ f2@19 ~ [a2,db4,f4]@4]/4", // Dm F Aaug
  I: "[~@7 gb4@8 ~@2 f4@36 ~@3 f4@36 ~@4, ~@5 d3@9 ~ [g2,a3]@38 ~ [g2,a3]@38 ~@4, ~@6 [a3,d4]@9 ~ [b3,d4]@37 ~@2 [b3,d4]@37 ~@4]/6", // Gsus2 D5 Bm
  J: "~@4 [f3,a3,c4] ~@6 [f3,a3,c4] ~@4", K: "[f3,a3,c4]@6 ~ [f3,a3,c4]@4 ~ [f3,a3,c4] ~@3",
  L: "~@4 [f3,a3,c4] ~@6 [f3,a3] ~@4", // F
  M: "[~ eb4@3 ~ d4@3 ~ db4@3 ~ c4@13 ~ [eb3,f3,a3,c4]!2 ~@3, [gb3,ab3,c4]@4 [f3,g3,b3]@4 [e3,gb3,bb3]@4 [eb3,f3,a3]@13 ~@7]/2", // F7 Ab7 G7 Gb7 F7
  N: "[[d3,gb3,a3,c4]@27 ~@2 b3@6 ~@13, ~@28 [d3,f3,g3]@7 ~@13]/3", // D7 G7
  O: "[~ eb4@3 ~ d4@3 ~ db4@3 ~ c4@13 ~ [d3,e3,ab3,b3]!2 ~@3, [gb3,ab3,c4]@4 [f3,g3,b3]@4 [e3,gb3,bb3]@4 [eb3,f3,a3]@13 ~@7]/2", // E7 Ab7 G7 Gb7 F7
  P: "~ db4@15, [eb3,g3,bb3]@15 ~", Q: "[~ c4@19 ~@12, [d3,gb3,a3]@19 ~@13]/2",
  R: "~@4 [eb3,db4] ~@7 [eb3,bb3,db4] ~@3", S: "~@4 [g3,bb3] ~@7 [eb3,db4] ~@3", T: "~@4 [a3,c4] ~@11",
  U: "~@4 [d3,f3,g3,bb3] ~@7 [c3,e3,g3,bb3] ~@3", V: "~@4 [eb3,bb3] ~@7 [db3,eb3,g3,bb3] ~@3",
  W: "~@4 [c3,d3,a3] ~@7 [c3,d3,f3,a3] ~@3", X: "~@4 [f3,b3] ~@7 [f3,g3,b3] ~@3",
  Y: "~@7 db5, ~@6 [eb4,g4] ~, ~@13 bb4@2 ~", // Eb
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.7)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@20 A@2 ~@31 B ~@5 C@3 ~ D@2 ~@12 B ~@5 C E F G H I ~@3 J K L ~@79
>`.pickRestart({
  A: "[~@5 a3@7 ~@4]/2", B: "~@11 c4 ~@4", C: "~@4 [d3,f3,g3,b3] ~@7 [d3,f3,g3,b3] ~@3",
  D: "~@4 [db3,e3,gb3,bb3] ~@7 [db3,e3,gb3,bb3] ~@3", E: "~@4 [d3,f3,g3,b3] ~@7 [eb3,g3,bb3,db4] ~@3",
  F: "~@4 [g3,bb3] ~@7 g3 ~@3", G: "~@4 [eb3,db4] ~@7 [g3,bb3] ~@3", H: "~@4 f3 ~@7 [f3,a3,c4] ~@3",
  I: "~@4 [f3,a3,c4] ~@7 [f3,a3,c4] ~@3", J: "~@4 [db3,g3] ~@11", K: "~@4 f3 ~@11", L: "~@4 [d3,g3] ~@7 d3 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@119 A B C@4 D ~@3 E@2 F@2 G@4 H@4 I J@2 K L M N O P Q@5 ~@3 R@2 S@7 T@3 ~@4
>`.pickRestart({
  A: "[f5,a5,c6]@15 ~", B: "[db5,f5,a5]@6 [a4,c5,d5,gb5]@3 ~@7",
  C: "[b3@7 ~@49 a6@7 ~, [g2,g3]@63 ~, a4@24 g5@24 f6@15 ~, f4@16 e5@24 d6@23 ~, d4@8 c5@24 b5@31 ~]/4", // G
  D: "[c3,c4,bb5,c6,e6,g6] ~@7", E: "[~@11 [db5,gb5,bb5,db6]@17 ~@4]/2",
  F: "[~@11 [db5,gb5,bb5,db6]@17 ~@2 [g5,a5,db6,e6]@2]/2", // Gb A7
  G: "[~@2 [gb5,ab5,c6,eb6]@3 ~ [f5,g5,b5,d6]@3 ~ [e5,gb5,bb5,db6]@11 ~ [f5,a5,c6,eb6]@7 ~ [ab5,b5,d6,e6]@15 [g5,bb5,db6,eb6,f6]@15 ~@4]/4", // Ab7 G7 Gb7 F7 E7 Gm7b5
  H: "[~@5 [ab4,bb4,eb5,gb5]@19 d4@23 ~@12 eb6@2 ~@2 [eb5,gb5,bb5], ~@24 b4@35 ~@5, ~@24 ab4@31 ~ bb5@6 ~@2, ~@24 e4@27 ~ gb5@10 ~@2, ~@24 eb5@7 ~]/4", // Ebm
  I: "~ [db5,f5,ab5] [eb5,gb5,bb5] [f5,ab5,c6] ~ [eb5,gb5,bb5] [f5,ab5,c6] [gb5,bb5,db6] [f5,ab5,c6] ~ [gb5,bb5,db6] [ab5,c6,eb6] [gb5,bb5,db6] ~ [ab5,c6,eb6] [bb5,db6,f6]", // Db Ebm Fm Ebm Fm Gb Fm Gb …
  J: "[[ab5,c6,eb6] ~ [bb5,db6,f6] [c6,eb6,gb6] [bb5,db6,f6] ~ [c6,eb6,gb6] [db6,f6,ab6] [c6,eb6,gb6] [db6,f6,ab6] ~ [eb6,gb6,bb6]@18 ~ [a5,a6]@2]/2", // Ab Bbm Cdim Bbm Cdim Db Cdim Db …
  K: "~@2 [ab5,ab6] ~@2 [g5,g6]@5 [ab5,b5,eb6,gb6] ~@5", L: "~ [ab5,b5,db6,f6] ~@8 [ab5,b5,d6,e6,gb6] ~@5",
  M: "[ab5,b5,d6,e6,ab6] ~@4 [ab5,b5,d6,e6,g6] ~@3 [bb5,db6,eb6,f6,gb6] ~@6", // E7 Ebm7
  N: "[bb5,db6,eb6,f6] ~@8 [ab5,b5,eb6,gb6] ~@6", O: "[ab5,b5,eb6,ab6] ~@4 [ab5,b5,eb6,g6] ~@3 [ab5,b5,eb6,gb6]@7",
  P: "[ab5,b5,db6,eb6,f6]@7 ~ [ab5,b5,eb6,gb6]@7 ~", // Db7 Abm7
  Q: "[[b5,db6,eb6,f6,ab6]@7 ~ [bb5,d6,f6,ab6]@31 [bb5,db6,eb6,f6,g6]@31 ~@10, ~@4 bb6@31 ~@5]/5", // Db7 Bb7 Eb7
  R: "[~@5 [bb4,db5,eb5]@25 ~@2]/2", // Eb7
  S: "[[bb4,db5,eb5,gb5]@29 ~@2 [db5,eb5,gb5,bb5]@29 ~ [eb5,gb5,bb5,db6]@29 ~@2 [gb5,bb5,db6,eb6]@20]/7", // Ebm7
  T: "[~@11 [bb5,db6,eb6,gb6]@33 ~ [b5,eb6,gb6,a6,db7]@2 ~]/3", // Ebm7 B7
})).s("gm_string_ensemble_1").gain(0.35)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@113 A B C D A E ~@18 F@2 ~@3 G@2 ~@14 H@2 ~@14>".pickRestart({
  A: "[f5,a5,d6]@7 ~ [e5,g5,a5,db6]@7 ~", B: "[d5,f5,a5,c6]@7 ~ [e5,g5,a5,db6]@7 ~",
  C: "[f5,a5,d6]@7 ~ [e5,g5,bb5,c6]@7 ~", D: "[c5,f5,a5]@6 [e5,g5,a5,db6]@5 ~@5",
  E: "[d5,f5,a5,c6]@7 ~ [c5,e5,g5,bb5]@7 ~", F: "[~@5 c5@19 ~@8]/2", G: "[~@11 [ab4,c6]@18 ~@3]/2",
  H: "[~@5 gb4@25 ~@2]/2",
})).s("gm_string_ensemble_1").gain(0.2)

// other · clarinet
const clarinet = note("<~@57 A@3 ~@23 B C@3 D E F G H I H I J@2 K L M ~@74>".pickRestart({
  A: "[~@3 f6 e6@2 ~ d6@3 ~ db6 c6@2 ~ ab5@4 g5 f5@2 ~ d5@16 ~@9]/3", B: "~@4 f4@8 d4 ~@3",
  C: "[f4@2 d4@2 f4@2 a4@4 g4@2 f4@2 db4@9 ~]/3", D: "~@2 c4@4 d4 ~", E: "e4 f4 g4 ab4", F: "a4",
  G: "~@3 ab4@5 g4 ~@3 gb4 ~@3", H: "f4@6 ~ e4@6 ~@3", I: "f4@6 ~ g4@5 gb4@4",
  J: "[~@7 d6@5 g5@2 ~ bb5@5 g5 a5 ~ g5 d5@2 ~ f5 ~@4]/2", K: "g5@4 a5@2 ~ bb5@4 a5 g5 a5 ~ bb5",
  L: "a5 g5 ~ f5 e5@2 ~ g5@3 ~ g5 a5@2 ~@2", M: "c6 ~@7",
})).s("gm_clarinet").gain(0.45)

// other · muted trumpet
const muted_trumpet = note("<~@6 A B@2 ~@165>".pickRestart({
  A: "~@4 f5 ~@2 g5 ~@2 f5 ~@2 e5 ~@2", B: "[a4 ~ db5 ~@2 e5 ~ d5 ~ e5 d5@17 ~@5]/2",
})).s("gm_muted_trumpet").gain(0.45)

// other · alto sax
const alto_sax = note(`<
  ~@46 A ~@15 B ~@2 C D E F E G H I J ~@12 K ~@17 L M N O L P Q R S ~@3 T ~@3 U V ~@4 W X Y Z ~ AA AB@5 AC AD AE AF ~@7
  AG AH AI ~@3 AJ@2 AK AL ~@5 AM@7 ~@3 AN
>`.pickRestart({
  A: "~@3 a4 bb4 ~@2 b4 c5 ~@7", B: "~@4 e4 ~@11", C: "~@4 c4 ~@7 db4 ~@3", D: "~@4 eb4 ~@6 eb4 d4 ~@2 db4",
  E: "c4 ~@15", F: "~@11 eb4 d4 ~@2 db4", G: "~@11 e4 f4 ~@2 gb4", H: "g4 ab4 ~ a4 bb4 ~@7 b4 c5 ~ db5",
  I: "d5 ~@7 db5 d5 ~ eb5 e5 ~@3", J: "f5@5 [d5,e5] [b4,c5] ~@9", K: "~@4 e4@2 ~ f4 ~@3 e4 f4 ~@3",
  L: "~@11 ab4 a4 bb4 ~ c5", M: "f5 ~@15", N: "~@11 ab3 a3 bb3 ~ c4", O: "f4 ~@15", P: "f5 ~@10 ab3 a3 bb3 ~ c4",
  Q: "f4 ~@10 ab4 a4 bb4 ~ c5", R: "f5 ~@2 ab3 a3 bb3 ~ c4 f4 ~@2 ab4 a4 bb4 ~ c5", S: "f5@2 ~ d5 ~@3 e5 ~@3 e5@5",
  T: "~@3 f4 ~@3 g4 ~@3 g4@4 ~", U: "~@10 gb4@3 f4 e4 [c4,d4]", V: "b3 ~@15", W: "~@11 eb4 e4 ~@2 f4",
  X: "gb4@2 ~@6 gb4@2 ~ g4 ab4@2 ~@2", Y: "ab4@2 ~@9 b4@5", Z: "~@2 db5 ~@5", AA: "~@3 db5@2 ~@11",
  AB: "[~@15 g4@4 gb4@3 f4@4 e4@12 eb4@8 d4@15 ~ db4@15 ~@3]/5", AC: "~@5 eb4@2 ~ eb4 ~@7", AD: "~@5 eb4@2 ~@9",
  AE: "~@4 gb4 ~@3 gb4@2 ~ gb4 ~@4", AF: "~@3 gb4 ~@3 gb4!2 ~@3 gb4@2 ~@2", AG: "~@9 eb4@7", AH: "~ eb4@7 ~ eb4@7",
  AI: "f4 ~", AJ: "[~@11 gb4 ~@3 f4@2 gb4 ~@3 f4 ~ gb4@3 eb4@2 ~ c4 ~@2]/2", AK: "~@10 f4 ~@3 e4@2",
  AL: "~ f4 ~@3 e4 f4@4 db4@2 b3 ~@3", AM: "[~@14 gb4@28 ~@2 gb4@28 ~@3 gb4@33 ~ gb4@2 ~]/7", AN: "~@7 eb4@2 ~@7",
})).s("gm_alto_sax").gain(0.4).pan(0.3)

// other · alto sax · soft notes
const alto_sax_soft = note(`<
  ~@55 A@2 B@6 C@2 ~@8 D ~@5 E@2 F G ~@38 H ~@5 I J ~@15 K L M N O ~@9 P@2 Q@4 ~@10
>`.pickRestart({
  A: "[gb4 f4 e4 eb4@3 e4@2]/2", B: "[d4@28 f4@54 ~@3 f4@3 e4 f4@3 e4 f4@3]/6", C: "e4/2", D: "~@7 [f4,g4,a4] ~@8",
  E: "[gb4 f4 e4 eb4@3 d4@2]/2", F: "db4", G: "c4", H: "[g3,a3] ~@15", I: "~@3 f4 gb4@2 ~ g4 ~@7 g4",
  J: "~@3 a4 ~@3 bb4 ~@8", K: "~@10 eb4 ~@5", L: "~ db4 ~@8 e4 ~@5", M: "~ e4 ~@8 eb4 ~@5", N: "eb4 ~@8 eb4 ~@6",
  O: "eb4 ~@4 eb4 ~@10", P: "[~@3 gb4@12 ~]/2", Q: "[gb4@28 ~@3 gb4@28 ~@5]/4",
})).s("gm_alto_sax").gain(0.25).pan(0.3)

// other · tenor sax
const tenor_sax = note(`<
  ~@46 A ~@18 B C D E F G H I J ~@12 K ~@17 L M L M L N@2 O P ~@3 Q ~@3 R ~@7 S T ~ U V@5 W X Y Z ~@3 AA AB AC AD AE AF
  AG AH AI@4 AJ AK ~@5 AL@7 ~@3 AM
>`.pickRestart({
  A: "~@3 a3 bb3 ~@2 b3 c4 ~@7", B: "~@4 c4 ~@7 db4 ~@3", C: "~@4 c4 ~@6 db4 c4 ~@2 b3", D: "bb3 ~@15",
  E: "~@11 a3 bb3 ~@2 b3", F: "c4 ~@15", G: "~@11 c4 db4 ~@2 d4", H: "eb4 e4 ~ f4 gb4 ~@7 g4 ab4 ~ a4",
  I: "bb4 ~@7 b4 c5 ~ db5 d5 ~@3", J: "eb5@6 d5 ~@9", K: "~@4 c4@2 ~ db4 ~@3 c4 db4 ~@3", L: "~@12 a3 bb3 ~ c4",
  M: "f4 ~@15", N: "f4 ~@11 a3 bb3 ~ c4", O: "f4 ~@3 a3 bb3 ~ c4 f4 ~@3 a3 bb3 ~ c4", P: "f4@2 ~ d4 ~@3 a3 ~@3 b3@5",
  Q: "~@3 c4 ~@3 db4 ~@3 db4@4 ~", R: "~@10 c4@3 [a3,b3] [e3,f3,g3] ~", S: "ab3@2 ~ b3 ~@3 c4 ~@3 d4@5",
  T: "~@2 gb4 ~@5", U: "~@3 bb3@2 ~@11", V: "[~@15 db4@4 c4@3 b3@4 bb3@12 a3@8 ab3@15 ~ g3@15 ~@3]/5",
// … 222 more lines

More by Henry Mancini