Strudelify
For Once in My Life cover art

1968 · For Once in My Life

For Once in My Life

Stevie Wonder

KeyB♭ minorTempo107 bpm
0:00/0:00
// For Once in My Life — Wonder Stevie
// 107 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Pick Gtr.
setcpm(107/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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass · "Bass Gtr"
const bass = note(`<
  ~@7 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@2 AG@2 AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK AG@6 BL
>`.pickRestart({
  A: "~@13 c1 d1 e1", B: "f1 ~ f1@4 ~@2 f1@3 a1 d2 a1 c2@2", C: "f2@4 ~ e2 ~ a1 d2@2 a1@2 gb1@2 a1@2",
  D: "g1@5 ~ c2 db2 d2@2 ~ d2@3 f2 gb2", E: "g2@2 ~ g2@2 f2 e2 eb2 d2 ~ d2@2 a1@2 ab1@2",
  F: "g1@4 ~ a1 gb1 g1@3 ~ f1@3 gb1@2", G: "g1@4 bb1@2 b1 ~ c2@3 e2 ~ c2 f2 d2, ~@8 d2 ~@7",
  H: "f2@2 ~ f2 a1@2 bb1@2 c2@2 ~ c2@2 ~@2 e2", I: "f2@4 ~ a1 d2 b1 c2@4 ~ e1 g1 e1",
  J: "f1@3 ~ f1@2 ~ f1 f1@2 ~ f1 a1 bb1 b1 c2", K: "f1@4 a1@2 d2@2 c2@2 d2 e2 f2 a1 c2@2",
  L: "bb1@7 f2 f2@4 g2@2 a2@2, ~@8 g2 ~@7", M: "bb2@5 g2 f2 a1 bb1@2 f1@2 bb1@2 g1@2",
  N: "a1@6 ~ a1!2 ~ a1@2 c2@2 db2@2", O: "d2@4 ~ a2@2 a1 a1@2 d2@2 f1 ~ gb1@2", P: "g1@3 bb1 g1@3 bb1 a1@2 ~ a1 a1@4",
  Q: "bb1@2 ~@2 e2 ~ eb2 ~ d2@2 ~ g1@2 ~ c2 ~", R: "f2 ~ f2@3 ~@2 f2 a1@2 bb1@2 c2@2 d2 e2",
  S: "f2@2 f1@4 ~ a1 gb1 ~ gb1@2 a1@2 gb1@2", T: "g1@4 bb1 d2@2 g2@2 ~ d2@4 b1@2", U: "c2@4 ~ bb1 e1@6 f1@2 gb1@2",
  V: "g1@6 ~ bb1 g1@4 f1@2 gb1@2", W: "g1@5 ~ bb1 b1 c2@3 ~ c2 d2 f2 d2", X: "f2@6 ~ f2!2 a1@3 bb1@2 b1 d2",
  Y: "c2@2 ~ eb2 eb2@2 e2@2 f2@3 ~ d2 c2 f1@2", Z: "f1@5 ~@2 f1 f1@2 a1@2 d2@2 c2@2",
  AA: "f2@5 d2 c2 f1 f1@5 a1 bb1 g1", AB: "bb1@6 ~ d2@2 a1 f2 ~ bb2@2 a2@2", AC: "g2@4 d2@3 a1 g1@2 a1@2 b1@2 g1 d2",
  AD: "c2@2 ~ c2 c2@3 db2 d2@2 ~ db2 d2@3 gb2", AE: "g2@2 ~ f2 g2@2 ~ d2 c2@3 ~ c2@2 eb2@2",
  AF: "[f2@3 ~ f2 ~ eb2@3 ~ ab2@2 ~@2 db2@4 ~@2 db2 ~ c2@8 ~@2]/2",
  AG: "[gb2@2 ~@2 gb2 ~ e2@2 ~@2 a1@2 ~@2 d2@4 ~@2 d2 ~ db2@4 ~@2 db2 eb2 gb2 eb2]/2",
  AH: "gb1@4 ~ bb1@2 ~ b1@2 c2@2 db2@2 f2@2", AI: "gb2@5 f2 e2 eb2 eb2@2 ~ eb2@2 ~ bb2 a2",
  AJ: "ab2@3 ~ ab2@2 ~ eb2 eb2@5 g2 gb2 g2", AK: "ab2@2 ~@2 ab2@2 ~ eb2 eb2@2 b1@2 bb1@2 ab1 ~",
  AL: "ab1@7 b1@3 eb2@3 ~ bb2@2", AM: "ab2@3 ~ ab2@3 eb2 db2@2 ~ db2!2 eb2 gb2 eb2",
  AN: "gb2@5 eb2 c2 db2 db2@5 eb2 f1@2", AO: "gb1@4 bb1@2 b1 c2 db2@3 eb2 db2 eb2 gb2 eb2",
  AP: "gb2 ~ gb2@3 ~@2 gb2 gb2@2 ~ bb1 bb1@2 b1 db2", AQ: "gb1@5 ~@2 gb1 gb2@3 gb1!2 ab1 bb1 ab1",
  AR: "b1@5 ~@2 eb2@3 e2@2 gb2@2 ab2@2", AS: "b1@4 ~ bb2@3 ab2@2 gb2@2 b1@2 ab1@2",
  AT: "bb1@5 ~@2 db2!2 ~ db2@2 f2@2 e2@2", AU: "eb2@5 bb2@2 bb1 bb1@2 bb2@2 eb2@2 a1@2",
  AV: "ab1@2 ~@2 ab1@2 ~ ab1 bb1@2 ~ bb1 bb1@3 ~", AW: "b1@2 ~@2 f2 ~ e2 ~ eb2@2 ~ ab1@2 ~ db2 ~",
  AX: "gb1 ~ gb1@4 ~ bb1 gb1@2 bb1@2 b1@2 db2@2", AY: "gb1@2 ~@2 gb2 f2@2 gb2 g2@2 ~ g2 eb2@2 g2@2",
  AZ: "ab2@3 ~ b1 eb2@2 a1 ab1@2 ~ ab1 b1@2 c2@2", BA: "db2@4 ~@2 b2 ab2!2 ~ db2 ~ db3 f1 gb1 g1",
  BB: "ab1 ~ ab1@4 ~ ab1 ab1@2 ~ gb1 gb1@2 g1@2", BC: "ab1@3 b1@3 c2@2 db2@2 ~ db2!2 eb2 gb2 eb2",
  BD: "gb2@5 ~@2 gb2 bb1 ~ bb1@2 b1@2 c2@2", BE: "db2@2 ~ db2@2 ~ db2@2 gb1@2 ~ bb1 gb1@2 ~@2",
  BF: "gb1 ~ gb1@5 bb1 bb1@2 b1@2 c2@2 db2@2", BG: "gb2@2 ~@2 gb2 db2@3 gb1@2 ~@2 gb1@2 bb1@2",
  BH: "b1@5 ~@2 eb2@3 e2@2 gb2@4", BI: "ab2@4 ~ ab2@3 b1 ~ eb2@2 ab1@2 c2@2",
  BJ: "db2 ~ db2@3 eb2 db2 d2 eb2 ~ eb2@3 ~ eb2 a1", BK: "ab1@2 ~ ab1 b1@2 c2@2 db2@2 ~ eb2 db2 eb2 gb2 eb2",
  BL: "~@4 gb2@3 ~@9",
})).s("gm_acoustic_bass").gain(0.5)

// chords · piano · "Ac.Piano"
const piano = 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@2 AF@2 AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AG AW AX AY AZ BA BB BC BD BE BF@2 BG BH BI BJ BK@4 BL
>`.pickRestart({
  A: "~@2 [ab4,c5] a4 ~ [ab4,c5] [ab4,a4] f4 [ab4,a4] ~@2 [ab4,a4] ~ f4 [ab4,a4] ~, [f3,a3,c4]@7 ~ [f3,a3,db4]@7 ~", // Ab Amaj7 F Faug
  B: "a4@3 f4 ab4 [a4,d5] ~@6 [gb4,a4,eb5] ~ [gb4,a4,eb5] ~, [f3,a3,d4]@7 ~ [gb3,a3,eb4]@7 ~, ab4 ~@6 [gb4,a4,eb5]@4 ~@5", // D5 Ebdim Dm Ebdim
  C: "[f4,g4,bb4,d5]@3 ~ [f4,g4,bb4,d5]@3 ~@3 [gb4,bb4] ~@2 [gb4,bb4] ~@2, [g3,bb3,d4]@7 [gb4,bb4,d5]@2 ~ d5@2 ~ d5@2 ~, ~@8 [gb3,bb3,d4]@7 ~", // Gm7 Gb Gm Gbaug
  D: "[f4,g4,bb4,d5] ~@2 f4 db5 d5 [f4,f5] db5 [db5,d5] [bb4,d5,f5] f4 ~@2 [gb4,bb4,d5,gb5] ~@2, [f3,bb3,d4]@7 ~ [gb3,bb3,d4]@7 ~", // Gm7 F Dmaj7 Bb Gbaug Bb Gbaug
  E: "[g4,bb4,d5,g5]@3 ~ [g4,bb4,d5,g5]@2 ~@4 [gb4,bb4]@2 ~@2 [gb4,bb4] ~, [g3,bb3,d4]@7 [d5,gb5]@8 ~, ~@7 [gb4,bb4]@2 ~@7, ~@8 [gb3,bb3,d4]@7 ~", // Gm Gb Gm D Gb Gbaug
  F: "[f4,d5,f5]@4 db5 d5 [bb4,db5] f4 ~ [eb4,e4] ~@2 [eb4,e4] ~ c4 a3, [f3,bb3,d4]@7 ~ [e3,bb3,c4]@7 ~, db5 ~@8 g4@2 ~ g4@2 ~@2", // Dm Bbm Emaj7 Bb C7
  G: "[c4,a4]@2 ~@2 [c4,ab4,a4] ~@2 [e4,ab4,c5,e5] ~@2 [e4,ab4,c5,e5]@2 ~@2 [e4,ab4,c5,e5] f4, [f3,a3]@7 ~ [e3,ab3,c4]@8, ab4 ~@15", // F Eaug F Eaug
  H: "a4@3 f4 [ab4,c5] [a4,c5]!3 ab4 a4 ~ [a4,c5] [ab4,a4] [f4,ab4] g4 ~, [f3,a3,c4]@15 ~, ab4 ~@7 c5@2 ~@2 c5@3 ~", // Ab Am Amaj7 Fm F
  I: "ab4 a4@2 [ab4,a4] ~ f4 ~ c4 f4 ~ ab4 a4 ~ ab4 a4 ~, [f3,a3]@15 ~, c4@2 ~@8 c4@2 ~ c4@2 ~", // Amaj7 F
  J: "~@3 [ab4,a4,db5] ~ f4 [f4,a4,db5] db4 ~ f4@2 [ab4,a4,db5] ~@2 [ab4,a4,db5] ~, [f3,a3]@7 ~, db4@3 ~@5", // Amaj7 Faug Amaj7 F
  K: "[d4,f4,a4,d5]@4 ~@2 [f4,d5,f5] ~@2 [d5,f5]@2 ~ a4 bb4 d5 f5, a3@7 ~, ~@9 [f4,db5] ~@6", // Dm Db
  L: "[d4,g4,bb4,f5]@2 ~@2 [bb4,d5]@2 ~ [f4,g4,bb4,d5] ~ bb4 [f4,g4] ~ [f3,bb3,d4,f4]@3 ~, [g3,bb3]@11 ~@5, ~@4 [f4,g4] ~@7 bb4 ~@3", // Gm7 Bb Gm7 Fsus2 Bb Gm Fsus2
  M: "~@3 f4 [ab4,c5] [a4,c5]!3 [ab4,c5] [a4,c5] ~ [ab4,a4,c5] [c4,f4,ab4] f4 g4 ~, [e3,a3,e4]@15 ~, c4@3 ~, ~@4 g4@3 ~", // Ab Am Ab Am Ab Fm A5
  N: "[f4,ab4,a4,d5] ~ [f4,ab4,a4] f4 ~@3 [f4,ab4,a4,d5] ~ f4 [d4,f4,a4] [f4,a4]@2 ~@3, [f3,a3]@7 ~, d4@5 ~@3, ~ d5 ~@6", // Dm F Dm F
  O: "[f3,bb3,d4,f4] [c4,e4,g4], ~@4 g3@3 ~", P: "[a3,d4,f4,a4] ~@3 [ab3,d4] ~ [g3,db4] ~ [gb3,c4]@2 ~ [f3,bb3]@3 c3 ~",
  Q: "~@4 ab4@2 f4 a4 ~ f4 [db4,f4,a4]!2 ~ [db4,f4,a4] ~@2, [f3,c4]@8 [f3,a3]@7 ~, a3@3 ~ db4 ~@3, ~@4 a4 ~@11", // Dbaug F5 F
  R: "a4@2 ~ f4 ab4 a4 ~@2 eb4@2 [eb4,gb4,ab4,a4] ~@2 [eb4,gb4,ab4,a4] ~@2, [f3,a3,d4]@8 [gb3,a3]@7 ~, ab4 ~@15", // Ebdim Dm Gbm
  S: "f4 ~@2 f4 ~ [d5,f5] ~ [d5,f5] ~@2 f4 ~ f4 ~ f4 ~, [f3,bb3,d4]", // Dm Bb
  T: "~@2 [c5,eb5] e5 ~ [d5,f5] ~@2 bb5 ~@2 f5 ~ e5 ~@2, [e3,bb3,c4]@15 ~", // Cm Dm C7
  U: "[db5,d5,g5] ~@4 [g4,bb4,d5] ~ [gb4,bb4,d5] ~@2 [gb4,bb4,d5] ~@3 [gb4,bb4,d5] ~, [g3,bb3,d4] [gb3,bb3], ~@4 d4@3 ~", // G Gm Gbaug Gm Gb
  V: "[bb4,d5]@2 ~@2 d5 [d5,f5] bb4 g4 ~@2 [g4,bb4,e5] ~@3 [g4,bb4,e5] ~, [f3,bb3,d4]@7 ~ [g3,bb3,e4]@8, [f4,g4] ~@15", // Bb Dm Edim Bb Edim Fsus2
  W: "[e3,a4,c5,e5]@3 ~ [a4,c5,e5]@2 ~ [f4,a4,d5] ~@2 [f4,a4,d5]@2 ~@2 [f4,a4,d5] ~, [f3,a3,e4] [a3,d4], ~@4 f3@3 ~", // Am Dm Fmaj7 D5
  X: "[g4,bb4,c5,eb5]@3 ~ [g4,bb4,c5,eb5]@2 ~ [f4,a4,c5,eb5] ~@2 [f4,a4,c5,eb5]@2 ~@4, [bb3,eb4] ~, g3@6 ~@2 [f3,a3,eb4]@7 ~", // Cm7 F7 Eb5 F7
  Y: "c4@2 [c4,a4,c5]@3 a4 [a4,c5]!5 ab4 ~ f4 g4 f4, [f3,a3]@15 ~, ~@2 ab4 ~@9 [a4,c5]@2 ~@2", // F Am F Am
  Z: "~@2 [ab4,a4,db5] ~ [a4,db5]@2 ~@2 [a4,db5]@3 [a4,db5]@2 f4 ~@2, [f3,a3,db4]@15 ~, ~@4 ab4 ~@3 ab4 ~@2 ab4 ~@4", // Amaj7 A Faug
  AA: "[d4,f4]@5 ~ f4@2 ~@4 bb4 ~ g4 ~, [f3,a3]@15 ~, db4 ~@15", // Dm F
  AB: "f4@2 [f4,b4,d5]@2 ~ [f4,bb4,d5] ~@2 [f4,b4,d5]@2 ~ [b4,d5]@2 ~ g4 ~, [f3,b3,d4]@15 ~, ~@2 bb4 ~@2 b4@2 ~ bb4 ~@2 [f4,bb4] ~@4", // Bdim Bb Bdim Bm Bdim Bb5
  AC: "[c2,c4,f4,a4]@3 ~ [c4,a4]@2 ~ [a3,d4,f4]!2 ~ [a3,c4,d4,f4]@2 ~ [c4,d4,f4]@2 ~, [f3,a3]@7 ~ f3@7 ~, ab4 ~@3 c2@3 ~ d2@2 ~@2 d2@3 ~, ~@4 [f4,ab4] ~@2 c4@2 ~@4 a3 ~@2", // F Dm Dm7 F Fm
  AD: "[g3,bb3,d4,f4]@2 ~@2 [g2,bb3,d4]@3 [f3,bb3,d4,f4] [bb3,d4,f4] ~ [f3,bb3,d4,f4]@2 c2@2 [f3,bb3,d4,f4] ~, f3@7 ~ c2@2 ~@6, g2@4 [g3,f4] ~@3 g3@7 ~", // Gm7 Gm Bb G7
  AE: "[[c4,f4,a4]@2 ~@2 [c4,f4,a4] ~ [bb3,eb4,g4]@3 ~ [f4,bb4]@2 ~@2 [c4,f4,ab4]@4 ~@2 [c4,f4,ab4] ~ [e4,a4]@8 ~@2, ~@11 db4@3 ~@2]/2", // F Eb Bb5 Fm A5
  AF: "[[db4,gb4,bb4]@2 ~@2 [db4,bb4] ~ [b3,ab4]@2 ~@2 [gb4,b4]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ [f4,bb4]@7 ~@3, ~@4 gb4@2 e4 ~@15 d4@5 ~@5]/2", // Gb E B5 Gbm Bb5
  AG: "[gb3,bb3,db4]@4 [gb3,bb3,db4]@2 ~ [gb3,bb3,d4] [gb3,bb3,d4]@2 [gb3,bb3,d4]@3 ~ [gb3,bb3,d4] ~", // Gb Gbaug
  AH: "[gb3,bb3,eb4]@4 [gb3,bb3,eb4]@2 ~ [g3,bb3,db4,e4] [g3,db4,e4]@2 [g3,bb3,db4,e4]@3 ~ [g3,bb3,db4,e4] ~", // Ebm Gdim Dbdim Gdim
  AI: "[gb3,ab3,b3,eb4]@2 ~@2 [ab3,eb4]@2 ~ [g3,b3,eb4] [g3,b3,eb4]@6 ~@2, ~@4 [gb3,b3] ~@11", // Abm7 Ab5 Gaug B5
  AJ: "[ab3,b3,eb4]@4 [gb3,ab3,b3,eb4]@2 ~ [g3,b3,eb4] [g3,b3,eb4]@6 ~@2, gb3 ~@7", // Abm Abm7 Gaug
  AK: "[ab3,b3,eb4,ab4]@3 ~ [ab3,b3,eb4,ab4]@2 ~ [g3,b3,eb4,g4] [b3,eb4]@2 [g3,b3,eb4,g4]@3 ~ [g3,b3,eb4,g4] ~, ~@8 g4 ~@7", // Abm Gaug B Gaug
  AL: "[b3,eb4,gb4]@4 [gb3,ab3,b3,eb4,gb4]@2 ~ [f3,ab3,b3,f4] [ab3,b3,f4]@2 [f3,ab3,b3,f4]@3 ~ [f3,ab3,b3,f4] ~, [gb3,ab3] ~@7", // B Abm7 Fdim Gbsus2
  AM: "[bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4] ~@2 [f3,ab3,a3,db4] [f3,a3,db4]@2 [f3,a3,db4]@3 ~ [f3,a3,db4] ~, gb3@7 ~@3 ab3 ~@5", // Gb Db Faug
  AN: "[bb3,db4]@4 [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, gb3@7 ~, gb4 ~@7", // Bbm Gb
  AO: "[bb3,db4,gb4]@3 ~ [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, bb4@15 ~", // Gb
  AP: "[bb3,d4,gb4]@4 [bb3,d4,gb4]@2 ~ [bb3,d4,gb4] ~@2 [bb3,d4,gb4]@2 ~@2 [bb3,d4,gb4] ~, bb4@15 ~", // Bbaug
  AQ: "[eb4,gb4,bb4]@4 [bb3,eb4,gb4,bb4]@2 ~ [bb3,eb4,gb4,bb4] ~@2 [bb3,eb4,gb4,bb4]@2 ~ [bb3,gb4,bb4]@2 ~, bb3@2 ~@11 eb4 ~@2", // Ebm
  AR: "[ab3,b3,eb4,ab4]@3 ~ [ab3,b3,eb4,ab4]@2 ~ [ab3,b3,eb4,ab4] ~@2 [ab3,b3,eb4,ab4]@2 gb4@2 [ab3,b3,eb4,ab4] ~", // Abm
  AS: "[bb3,db4,f4]@4 [bb3,db4,f4,ab4]@2 ~ [bb3,db4,f4,ab4] ab4@2 [bb3,db4,f4,ab4]@3 [bb3,f4,ab4] ~@2, [f3,ab3]@15 ~, ~@13 db4@2 ~", // Bbm Bbm7 Bb7 Fm
  AT: "[gb3,bb3,db4,eb4,gb4]@2 ~@2 [gb3,bb3,db4,eb4,gb4]@3 [gb3,bb3,db4,eb4,gb4] ~@2 [gb3,bb3,db4,eb4,gb4]@5 ~", // Ebm7
  AU: "[eb3,gb3,b3,eb4,ab4]@4 ab3@2 ab3 ~, ~@4 [f3,db4,f4,bb4]@3 ~", // Abm7 Bbm
  AV: "[gb3,bb3,eb4]@2 ~@2 [a3,eb4] ~ [ab3,d4] ~ [g3,db4]@2 ~ [gb3,b3]@3 db3 ~", // Ebm Adim Abdim Gdim B5
  AW: "[gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~ [g3,bb3,db4,e4] [g3,db4,e4]@2 [g3,bb3,db4,e4]@2 ~ [g3,bb3,db4,e4] ~@2", // Ebm Gdim Dbdim Gdim
  AX: "[gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4]@2 ~ [gb3,b3,eb4] ~@2 [gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4] ~", // B
  AY: "[ab3,b3,f4]@3 ~ [ab3,b3,f4]@2 ~ [ab3,b3,f4] ~@2 [ab3,b3,f4]@3 ~ [ab3,b3,f4] ~, db4@15 ~", // Fdim
  AZ: "[b3,eb4,ab4] ~ [b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4] ~ [b3,eb4,g4]@2 ~ [b3,eb4,g4]@2 ~, ~@4 g4 ~@3", // Abm B Baug
  BA: "[b3,eb4,gb4]@2 ~@2 [b3,eb4,gb4]@2 ~ [ab3,b3,f4] [ab3,b3,f4]@2 [ab3,b3,f4]@3 ~ [ab3,b3,f4] ~", // B Fdim
  BB: "[gb3,bb3]@4 [gb3,bb3,db4,f4]@2 ~ [gb3,bb3,eb4] [gb3,bb3,eb4]@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4] ~, [db4,f4] ~@7", // Gb Gbmaj7 Ebm Db
  BC: "[e3,ab3,b3,e4]@3 ~ [e3,ab3,b3,e4]@2 ~ [gb3,ab3,bb3,e4] [gb3,e4] ~ [gb3,ab3,bb3,e4]@2 ~ [gb3,ab3,bb3,e4]@2 ~, ~@4 bb3 ~@3", // E Gb7
  BD: "[gb3,bb3,db4]@2 ~@2 [gb3,bb3,db4]@2 ~ [gb3,bb3,db4] ~@2 [gb3,bb3,db4]@2 gb2 [gb3,bb3,db4] gb2 ~, gb2@11 ~@5", // Gb
  BE: "[e3,gb3,bb3,d4]@2 ~@2 [e3,gb3,bb3,d4]@2 ~ [e3,gb3,bb3,d4] ~@2 [gb2,e3,gb3,bb3,d4]@2 ~ [e3,gb3,bb3,d4] ~@2, gb2@9 ~@4 gb2@2 ~", // Daug Gbaug Daug
  BF: "[[b3,bb4]@4 b3@2 ~ b3 ~ b3 ~@2 [b2,b3] bb3 [a2,a3] ab3 [gb3,ab3,c4,eb4,gb4]@2 ~@2 [gb3,ab3,c4,eb4,gb4]@2 ~ [gb3,ab3,c4,eb4,gb4] ~@2 [gb3,ab3,c4,eb4,gb4] ~ [gb3,ab3,c4,eb4,gb4] ab2@2 ~, [bb3,eb4,gb4]@7 ~@9, b1@12 ~ bb2@2 ab2@10 ~ ab2@2 ~@4]/2", // Bmaj7 B A Ab7 Ebm
  BG: "[db2,gb3,bb3,db4,gb4,bb4]@3 ~ [gb3,bb3,db4,gb4,bb4]@2 ~ [gb3,bb3,db4,gb4,bb4] [eb2,bb3,db4,gb4]@2 [gb3,bb3,db4,gb4,bb4]@2 ~ [gb3,bb3,db4,gb4,bb4] ~@2, ~@4 db2@3 ~ eb4@7 ~, ~@8 gb3 ~@3 eb2@3 ~", // Gb Ebm7 Gb
  BH: "[ab2,gb3,ab3,b3,eb4,gb4]@3 ~ [ab2,gb3,ab3,eb4,gb4]@3 [gb3,ab3,b3,eb4,gb4] [db2,b3,eb4,gb4]@2 [gb3,ab3,b3,eb4,gb4]@2 ~ [ab3,b3,eb4,gb4]@2 ~, ~@4 b3 ~@3 gb3 ~@3 db2@3 ~, ~@13 gb3 ~@2", // Abm7 Ab7 Abm7 B Abm7
  BI: "[db4,gb4,ab4,bb4]@2 ~@2 [db4,gb4,ab4,bb4] ~ [e4,gb4,ab4]@2 ~@2 [e4,a4,b4,db5]@2 ~@2 [db4,gb4,a4]@2, ~@6 b3 ~@9", // Gb E A Gbm
  BJ: "~@4 [db4,gb4,a4] ~ [d4,f4,bb4]@8 ~@2", // Gbm Bb
  BK: "[[db4,gb4,ab4,bb4]@2 ~@2 [db4,gb4,ab4,bb4] ~ [e4,gb4,ab4]@2 ~@2 [a4,db5]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ [d4,f4,bb4]@8 ~@2, ~@6 b3 ~@3 [e4,b4] ~@21]/2", // Gb E A Gbm Bb E5
  BL: "~@2 [db4,gb4,ab4,bb4] ~@5", // Gb
})).s("gm_piano").gain(0.45)

// other · electric guitar muted · "Pick Gtr"
const electric_guitar_muted = note("<~@2 A ~@16 B ~@11 C ~@3 D ~ E ~@15 F ~@11 G ~@3 H ~ I ~@7>".pickRestart({
  A: "[c4,f4,a4] ~@2 [c4,f4,a4]!2 ~@2 [c4,f4,a4] ~ [c4,f4,a4]@2 ~ [c4,f4,a4] ~@3", B: "g4@2 ~ g4 g4@2 ~ g4@2 ~ g4 ~@5",
  C: "~@7 f4@2 ~@7", D: "~@7 g4 ~ g4 ~ g4!2 ~@3", E: "~@9 g4 ~ g4!2 ~ g4 ~", F: "ab4@2 ~ ab4 ab4@2 ~ ab4@2 ~ ab4 ~@5",
  G: "~@7 gb4@2 ~@7", H: "~@7 ab4 ~ ab4 ~ ab4!2 ~@3", I: "~@14 ab4 ~",
})).s("gm_electric_guitar_muted").gain(0.4)

// chords · electric guitar clean · "El. Gtr1"
const electric_guitar_clean = note(`<
  ~@3 A@5 B C D E D F G A@2 H I@2 J K L M B N O P D F Q R A H K S T I ~@4 U V W X W Y Z AA@2 AB AC@2 AD AE AF AG U AH AI
  AJ W Y AK AL AA AB AE AM AN AO@3 ~@5
>`.pickRestart({
  A: "[a3,c4,f4]!16", B: "[a3,c4,f4]!8 [a3,db4,f4]!8", C: "[a3,d4,f4]!8 [a3,eb4,gb4]!8",
  D: "[bb3,d4,g4]!8 [bb3,d4,gb4]!8", E: "[bb3,d4,f4]!8 [bb3,d4,gb4]!8", F: "[bb3,d4,f4]!8 [g3,bb3,e4]!8",
  G: "[a3,c4,f4]!8 [ab3,c4,e4]!8", H: "[a3,db4,f4]!16", I: "[bb3,d4,f4]!16", J: "[a3,c4,e4]!16", K: "[a3,d4,f4]!16",
  L: "[bb3,d4,f4]!8 [c4,e4,g4]!6 ~ [d4,e4,f4,a4], ~@7 [c4,e4,g4]", M: "[d4,f4,a4] ~@15",
  N: "[a3,d4,f4]!8 [a3,eb4,gb4]!5 [a3,gb4] [a3,eb4,gb4]!2", O: "[bb3,d4,g4]!14 [d4,g4] [bb3,d4,g4]",
  P: "[g3,bb3,e4]!16", Q: "[a3,c4,e4]!6 ~ [f3,a3,d4]!9, ~@3 [a3,c4,e4] ~@4",
  R: "[g3,bb3,eb4]!8 [f3,a3,eb4]!4 [a3,eb4] [a3,eb4,f4]!3, ~@3 f3", S: "[b3,d4,f4]!6 [d4,f4] [b3,d4,f4]!9",
  T: "[a3,c4,f4]!8 [a3,c4,d4,f4]!8", U: "[bb3,db4,gb4]!8 [bb3,d4,gb4]!8", V: "[bb3,eb4,gb4]!8 [bb3,e4,g4]!8",
  W: "[b3,eb4,ab4]!8 [b3,eb4,g4]!8", X: "[b3,eb4,gb4]!8 [b3,eb4,g4]!8", Y: "[b3,eb4,gb4]!8 [ab3,b3,f4]!8",
  Z: "[bb3,db4,gb4]!8 [a3,db4,f4]!8", AA: "[bb3,db4,gb4]!16", AB: "[bb3,d4,gb4]!16", AC: "[b3,eb4,gb4]!16",
  AD: "[bb3,db4,f4]!16", AE: "[bb3,eb4,gb4]!16",
  AF: "[b3,eb4,gb4]!8 [db4,f4,ab4]!6 ~ [eb4,f4,gb4,bb4], ~@7 [db4,f4,ab4]", AG: "[eb4,gb4,bb4] ~@15",
  AH: "[bb3,eb4,gb4]!8 [bb3,e4,g4]!5 [bb3,g4] [bb3,e4,g4]!2", AI: "[b3,eb4,ab4]!14 [eb4,ab4] [b3,eb4,ab4]",
  AJ: "[ab3,b3,f4]!16", AK: "[bb3,db4,f4]!6 ~ [gb3,bb3,eb4]!9, ~@3 [bb3,db4,f4] ~@4",
  AL: "[ab3,b3,e4]!8 [gb3,bb3,e4]!4 [bb3,e4] [bb3,e4,gb4]!3, ~@3 gb3", AM: "[c4,eb4,gb4]!6 [eb4,gb4] [c4,eb4,gb4]!9",
  AN: "[bb3,db4,gb4]!8 [bb3,db4,eb4,gb4]!8", AO: "[[b3,eb4,gb4]!15 [b3,eb4,gb4]@32 ~]/3",
})).s("gm_electric_guitar_clean").gain(0.3)

// other · electric guitar clean · "El. Gtr2"
const electric_guitar_clean_2 = note("<~@4 [f3 ~ f3@11 c4 d4 f4]!2 [g4@2 f4@11 a3 bb3 c4] [f3 ~ f3@11 c4 d4 f4] ~@71>")
  .s("gm_electric_guitar_clean").gain(0.4)

// other · french horn · "Horns"
const french_horn = note("<~@23 A ~@2 B C ~@10 D@2 E@2 ~@15 F G ~ H I ~@10 J@6 K>".pickRestart({
  A: "~@4 d4 ~ f4 ~ a4@2 ~ c5@2 b4 a4@2, ~@14 bb4 ~", B: "a4@2 ~@2 gb4 ~@2 g4@8 ~", C: "~@2 a4 ~ a4 gb4 ~ g4@6 ~@3",
  D: "[c5@2 ~@2 c5@2 bb4@3 ~ bb4@2 ~@2 ab4@4 ~@2 ab4 ~ [a4,db5]@8 ~@2]/2", // A
  E: "[ab4@3 ~ ab4 ~ gb4@2 ~@2 b4@3 ~ a4@4 ~@2 a4 ~ [bb4,d5]@8 ~@2]/2", // Bb
  F: "~@4 eb4 ~ gb4 ~ bb4@2 ~ db5@2 c5 bb4@2, ~@14 b4 ~", G: "bb4@3 ~@5", H: "bb4@2 ~@2 g4 ~@2 ab4@8 ~",
  I: "~@2 bb4 ~ bb4 g4 ~ ab4@6 ~@3", J: "[[gb4,db5]@2 ~@2 [gb4,db5]@2 b4@3 ~ b4@3 ~ a4@4 ~@2 a4 ~ [bb4,d5]@8 ~@2]/2",
  K: "~@2 [gb4,db5] ~@5", // Gb5
})).s("gm_french_horn").gain(0.35)

// other · trombone
const trombone = note("<~@22 A B C ~@13 D E F@2 ~@14 G H I ~@13 J K J K J K ~>".pickRestart({
  A: "bb3@8 c4@7 ~", B: "d4@2 ~@2 d4 ~ db4 ~ c4@2 ~ bb3@5", C: "a3@3 ~@5", D: "c4@2 ~@2 c4 ~ bb3@3 ~ c4@2 ~@2 c4@2",
  E: "~@4 c4 ~ a4@7 ~@3", F: "[db4@2 ~@2 db4@2 b3@2 ~@2 db4@2 ~@2 db4@4 ~@2 db4 ~ bb4@7 ~@3]/2", G: "b3@8 db4@7 ~",
  H: "eb4@2 ~@2 eb4 ~ d4 ~ db4@2 ~ b3@4 ~", I: "db4@3 ~@5", J: "db4@2 ~@2 db4 ~ b3@3 ~ db4@2 ~@2 db4@2",
  K: "~@4 db4 ~ bb4@7 ~@3",
})).s("gm_trombone").gain(0.4)

// other · string ensemble 1 · "String 1"
const string_ensemble_1 = note(`<
  ~@22 A B C D E F G H I J ~@6 K@2 L@2 ~@4 M N ~@9 O P Q R S T U V W ~@6 X@4 Y Z AA
>`.pickRestart({
  A: "d6 e6", B: "f6@3 ~ [d5,d6] ~ [f5,f6] ~ a6@2 ~ [c6,c7]@2 ~ [a5,a6]@2, ~@8 a5 ~@7", C: "c5@8 db5@7 ~", D: "d5 eb5",
  E: "~@3 d5 bb4 d5 f5 a5 c6 bb5 c6@3 bb5 f5 d5", F: "c5@4 ~ bb4 d5 f5 a5 bb5 g5@5 ~",
  G: "g5@4 ~ g5 d5 bb4 gb5@4 ~ gb5 d5 bb4", H: "f5@4 ~ f5 d5 bb4 e5@7 ~", I: "e5 d5", J: "eb5@15 ~",
  K: "[[f5,f6]@2 ~@2 [f5,f6] ~ [eb5,eb6]@2 ~@2 [ab5,ab6]@2 ~@2 [f5,f6]@4 ~@2 [f5,f6] ~ [a5,a6]@7 ~@3]/2", // F Eb Ab F A
  L: "[[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@4 ~@2 [gb5,gb6] ~ [bb5,bb6]@6 ~@4]/2", // Gb E A Gb Bb
  M: "[ab5,ab6] [g5,g6]", N: "[gb5,gb6]@7 ~ [f5,f6]@8",
  O: "~@4 [eb5,eb6] ~ [gb5,gb6] ~ bb6@2 ~ [db6,db7]@2 ~ [bb5,bb6]@2, ~@8 bb5 ~@7", P: "db5 d5", Q: "eb5 e5",
  R: "~@3 eb5 b4 eb5 gb5 bb5 db6 b5 db6@3 b5 gb5 eb5", S: "db5@4 ~ b4 eb5 gb5 bb5 b5 ab5@5 ~",
  T: "ab5@4 ~ ab5 eb5 b4 g5@4 ~ g5 eb5 b4", U: "gb5@4 ~ gb5 eb5 b4 f5@7 ~", V: "f5@8 eb5@7 ~", W: "e5@15 ~",
  X: "[[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@4 ~@2 [gb5,gb6] ~ [bb5,bb6]@8 ~@2]/2", // Gb E A Gb Bb
  Y: "[gb5,gb6]@2 ~@2 [gb5,gb6] ~ [e5,e6]@2 ~@2 [a5,a6]@2 ~@2 [gb5,gb6]@2", Z: "~@4 [gb5,gb6] ~ [bb5,bb6]@8 ~@2",
  AA: "~@2 [gb5,gb6] ~@5", // Gb
})).s("gm_string_ensemble_1").gain(0.35)

// chords · string ensemble 1 · "String 2"
const string_ensemble_1_2 = note(`<
  ~@16 A B C@2 D E F G H I J K L M N O ~@6 P@2 Q@2 R S T@3 U V@5 W X Y Z AA R S AB AC AD AE AF AG B AH AI Y ~@2 AJ@4 ~@2
  AK
>`.pickRestart({
  A: "c4@15 ~", B: "db4", C: "[d4@31 ~]/2", D: "e4", E: "f4", F: "d5 e5", G: "f5 ~@3 d4 ~ f4 ~ a4@2 ~ c5@2 ~ a4@2",
  H: "c4 db4", I: "d4 eb4", J: "~@3 d6 bb5 d6 f6 a6 c7 bb6 c7@3 bb6 f6 d6", K: "c6@4 ~ bb5 d6 f6 a6 bb6 g6@5 ~",
  L: "g6@5 g6 d6 bb5 gb6@4 ~ gb6 d6 bb5", M: "f6@5 f6 d6 bb5 e6@7 ~", N: "e6@8 d6@7 ~", O: "eb6@15 ~",
  P: "[[c4,f4,a4]@2 ~@2 [c4,f4,a4] ~ [bb3,eb4,g4]@2 ~@2 [eb4,ab4,c5]@2 ~@2 [c4,f4,ab4]@4 ~@2 [c4,f4,ab4] ~ [e4,a4,db5]@7 ~@3]/2", // F Eb Ab Fm A
  Q: "[[db4,gb4,bb4]@3 ~ [db4,gb4,bb4] ~ [b3,e4,ab4]@2 ~@2 [e4,a4,db5]@2 ~@2 [db4,gb4,a4]@4 ~@2 [db4,gb4,a4] ~ e4@4 gb4@3 ~@3, ~@22 [bb4,d5]@7 ~@3]/2", // Gb E A Gbm Bb
// … 83 more lines

More by Stevie Wonder