Strudelify
Taxi cover art

1970 · Ra‐ta‐ta

Taxi

Antoine

KeyE♭ majorTempo138 bpm
0:00/0:00
// Taxi — Antoine
// 138 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: Full arrangement: all 139 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(138/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.

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@15 A B A@2 C A@2 D E F@2 G@2 H@2 I J K L@2 M N@4 M O P Q R S T U ~ V W X ~@8 Y@4 Z AA AB AC AD AE@2 AF AG AH@2 AI AJ
  AK@2 ~@7 AL@8 AM@8 AN@5 AO AP@2 AQ@4 AR AS@5 ~ AT@5 AO AP@2 AQ@4 AR AS@5
>`.pickRestart({
  A: "~@6 [bb3,d4,g4]@4 [bb3,d4,g4] ~ [g2,d3]@3 [bb3,d4,g4]@3 [g2,d3]@3 [bb3,d4,g4]@3, [g2,d3]@11 ~@13", // Gm G5 Gm G5 Gm G5
  B: "~@3 [bb3,d4] ~@2 [bb3,d4,g4]@3 ~ [bb3,d4,g4]@2 [g2,d3]@3 [bb3,d4,g4]@3 ~@3 [bb3,d4,g4]@2 ~, [g2,d3]@11 ~@7 [g2,d3]@5 ~", // Bb Gm G5 Gm G5
  C: "~@3 bb3 ~@2 [bb3,d4,g4]@3 ~ [bb3,d4,g4] ~ [g2,d3]@3 [bb3,d4,g4]@3 [g2,d3]@3 [bb3,d4,g4]@3, [g2,d3]@11 ~@13", // Gm G5 Gm G5 Gm G5
  D: "~@6 [bb3,d4,g4]@3 ~ [bb3,d4,g4] ~ [g2,d3]@3 [bb3,d4,g4]@3 [g2,d3]@3 [bb3,d4,g4]@2 ~, [g2,d3]@11 ~@13", // Gm G5 Gm G5 Gm G5
  E: "~@6 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3, d3@5 ~@7", // Gbdim
  F: "[~@3 a3 ~@2 [a3,c4,gb4]@4 [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 a3@3 ~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4] ~@2, d3@11 ~@10 [c4,gb4]@6 ~@21, ~@12 d3@5 ~@7]/2", // Gbdim Cdim
  G: "[~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 a3@3 ~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3, d3@11 ~@10 [c4,gb4]@6 ~@21, ~@12 d3@5 ~@7]/2", // Gbdim Cdim
  H: "~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3, d3@5 ~@7", // Gbdim
  I: "~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@2 ~, d3@5 ~@7", // Gbdim
  J: "~@3 a3 ~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~ d3@3 [a3,c4,gb4]@3 d3@3 [a3,c4,gb4] ~@2, d3@5 ~@7", // Gbdim
  K: "[d4,g4]@6 b3@2 ~ [b3,d4,g4]@3 g2@3 ~@6 [b3,d4,g4]@2 ~, g2@10 ~@8 g2@5 ~, b3@3 ~@12 [b3,d4,g4]@5 ~@4", // G5 G
  L: "~@3 [b3,d4,g4]@2 ~@4 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3, g2@6 d3@5 ~ g2@6 d3@5 ~", // G
  M: "~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4] ~@2, g2@5 ~ d3@6 g2@6 d3@5 ~", // G
  N: "~@3 [a3,c4,gb4]@2 ~@4 [a3,c4,gb4]@2 ~@4 [a3,c4,gb4]@2 ~@4 [a3,c4,gb4]@2 ~, a2@5 ~ d2@5 ~ a2@5 ~ d2@5 ~", // Gbdim
  O: "g4@6 c4@2 ~@4 c3@3 ~@6 c4@2 ~, c3@10 ~@5 [c4,eb4]@5 ~@4, c4@4 ~@5 [c4,eb4,g4]@5 ~ g4@7 ~@2, ~@3 c3", // Cm
  P: "d4@4 ~@2 [bb3,d4]@2 ~ [bb3,d4,g4]@3 g2@3 bb3@3 g2@3 bb3@2 ~, g2@10 ~@5 [d4,g4]@7 ~@2", // Bb Gm G5
  Q: "[c4,gb4]@6 a3@2 ~ [a3,c4,gb4]@3 d3@3 [a3,c4]@3 d3@3 a3 ~@2, d3@5 ~@7, a3@4 ~@11 gb4@7 ~@2", // Cdim Gbdim Am
  R: "[d4,g4]@5 ~ [bb3,g4]@2 ~ [bb3,d4,g4]@4 g2@2 [bb3,d4,g4]@3 ~@3 [bb3,d4,g4] ~@2, g2@11 ~@7 g2@5 ~, bb3 ~@7", // G5 Eb Gm
  S: "[c4,eb4]@5 ~ c4@2 ~ [c4,eb4,g4]@3 c3@3 [c4,eb4,g4]@3 ~@3 [c4,g4]@2 ~, c3@10 ~@8 c3@5 ~, g4 ~@3", // Cm C5
  T: "[g3,bb3,d4]@5 ~ [g3,bb3,d4] ~@2 [g3,bb3,d4]@3 g2@3 [g3,bb3]@3 g2@2 ~ g3 ~@2, g2@10 ~@5 d4@6 ~@3", // Gm
  U: "[c4,gb4]@5 ~ a3@2 ~ [a3,c4,gb4]@3 d3@3 [a3,c4,gb4]@3 d3@3 [a3,gb4]@2 ~, d3@3 ~@5, a3 ~@7", // Cdim Gbdim D
  V: "~@3 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5 [g3,b3,d4] ~@2", // G
  W: "~@3 [g3,b3,d4] ~@5 [g3,b3,d4] ~@5 [g3,b3,e4] ~@5 [g3,b3,e4] ~@2", X: "[g3,c4,e4]@9 ~@3 [a3,d4,gb4]@10 ~@2",
  Y: "[~@20 [eb4,g4]@55 ~@21]/4", Z: "~@7 [c3,eb3]@2 [ab3,c4,eb4]@4 ~ [c3,eb3]@3 [ab3,c4,eb4]@5 [c3,eb3]@2",
  AA: "~@5 [c3,eb3]@2 ~ [c4,eb4]@4 [c3,eb3]@3 [ab3,c4,eb4]@5 [c3,eb3]@3 ~, ~@7 ab3@4 ~@13", // Cm Ab Cm
  AB: "~@3 [c3,eb3]@3 [ab3,c4,eb4]@4 ~ [c3,eb3]@2 [ab3,c4,eb4]@5 [c3,eb3]@3 ~@3", // Cm Ab Cm Ab Cm
  AC: "~ [c3,eb3]@2 ~ [ab3,c4,eb4]@4 ~ [c3,eb3]@2 [ab3,c4,eb4]@5 [c3,eb3]@6 ~@2", // Cm Ab Cm Ab Cm
  AD: "[c3,eb3]@2 [ab3,c4,eb4]@4 ~ [c3,eb3]@2 ~ eb4@4 [c3,eb3]@2 ~@6 [c3,eb3]@2, ~@9 [ab3,c4]@4 ~@11", // Cm Ab Cm Ab
  AE: "[[ab3,c4,eb4]@4 ~ [c3,eb3]@3 [ab3,c4,eb4]@4 ~ [c3,eb3]@2 ~@5 [db3,f3]@2 [bb3,db4,f4]@4 ~ [db3,f3]@3 [bb3,db4,f4]@5 [db3,f3]@2 ~@5 db3@3 [f3,ab3,db4]@3]/2", // Ab Cm Ab Cm Db Bbm Db Bbm …
  AF: "~@2 db3@2 [f3,ab3,db4]@5 [bb2,db3]@2 ~@5 [bb2,db3]@3 [f3,ab3,db4]@5, ~ bb2@3 ~@20", // Db Bbm Db
  AG: "[bb2,db3]@2 [f3,ab3,db4]@5 [bb2,db3]@2 ~@6 db3@2 [f3,ab3,db4]@4 ~ [bb2,db3]@2, ~@14 bb2@3 ~@7", // Bbm Db Bbm Db Bbm
  AH: "[[f3,ab3,db4]@5 [bb2,db3]@2 ~@6 [bb2,eb3]@2 [g3,bb3,eb4]@4 ~ [bb2,eb3]@2 ~ [bb3,eb4]@4 [bb2,eb3]@2 ~@6 [bb2,eb3]@2 [g3,bb3,eb4]@4 ~ [bb2,eb3]@2 ~ [g3,bb3,eb4]@3, ~@22 g3@5 ~@21]/2", // Db Bbm Eb5 Eb Eb5 Eb Eb5 Eb
  AI: "~@2 [bb2,eb3]@2 ~@5 [bb2,db3]@2 ~ [ab3,db4]@4 [bb2,db3]@3 [f3,ab3,db4]@4 ~, ~@11 f3@4 ~@9", // Eb5 Bbm Db5 Bbm Db
  AJ: "[bb2,db3]@2 ~@5 [bb2,eb3]@2 ~ [g3,bb3,eb4]@4 ~ [bb2,eb3]@2 [g3,bb3,eb4]@4 ~ [bb2,eb3]@2", // Bbm Eb5 Eb Eb5 Eb Eb5
  AK: "[~@5 [ab2,c3]@2 ~ [ab3,c4,eb4]@4 ~ [ab2,c3]@2 [ab3,c4,eb4]@4 ~ [ab2,c3]@2 ~ [ab2,c3,ab3,c4,eb4]@2 ~@23]/2", // Ab
  AL: "[~@8 [g3,bb3] ~@5 [g3,bb3,eb4]@4 [g3,bb3] eb4 eb3@3 [g3,bb3,eb4]@3 [eb2,eb3]@2 ~ [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 eb3@3 [g3,bb3,eb4]@3 eb3@3 [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 [g3,bb3] ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 [g3,bb3,eb4] ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3] eb4 [eb2,eb3]@3 [g3,bb3,eb4]@3 [eb2,eb3]@3 [g3,bb3,eb4]@3 ~@3 g3 ~@2 [g3,bb3,db4,eb4]@3 ~ [g3,bb3] [db4,eb4] [eb2,eb3]@3 [g3,bb3,db4,eb4]@3 [eb2,eb3]@3 [g3,bb3,db4,eb4] ~@18, ~@8 eb2@15 ~@9 eb2@21 ~@3 [eb2,eb3]@11 ~@13 [eb2,eb3]@11 ~@13 [eb2,eb3]@11 ~@13 [eb2,eb3]@11 ~@13 [eb2,eb3]@10 ~@30, ~@32 eb3@11 ~@149]/8", // Gm Eb Gm Eb Gm Eb Gm Eb …
  AM: "[~@8 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@2 ~ [g3,bb3,db4,eb4] ~@2 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]]/8", // Ab Eb7 Ab
  AN: "[~@2 eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4] ~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]]/5", // Ab Eb7
  AO: "~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4] ~@2 eb2@3 [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]", // Eb7
  AP: "[~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,eb4] ~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4] ~@2 ab2@3 [ab3,c4,eb4] ~@2 eb2@3 [ab3,c4,eb4] ~@2 ab2@3 [ab3,c4,eb4]]/2", // Eb7 Eb Ab
  AQ: "[~@5 [ab3,c4,eb4] ~@2 ab2@3 [ab3,c4,eb4] ~@2 eb2@3 [ab3,c4,eb4] ~@2 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4] ~@2 bb2@3 [g3,bb3,eb4] ~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4], ~@2 eb2@5 ~@89]/4", // Ab Eb
  AR: "~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4] ~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]", // Eb
  AS: "[~@2 eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4]@2 ~ bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4] ~@2 bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4]@2 ~ bb2@3 [g3,bb3,eb4]@2 ~ eb2@3 [g3,bb3,eb4] ~@2 [ab2,ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4] ~@2 [gb3,b3,eb4]@4 ~@2 [gb3,eb4]@6 b2@3 [ab2,ab3,eb4]@2 ~ [ab3,eb4] ~@2 [ab3,eb4]@2 ~ [gb3,eb4]@3 ~@3 [gb3,eb4]@5 ~ b2@2 ~ [ab2,ab3,eb4]@4 ~@12, ~@60 ab2@4 ~ b2@6 ~@13 ab2@4 ~ b2@6 ~@25]/5", // Eb Ab B Ebm Ab5 Ebm Ab5
  AT: "[~@8 ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4]@2 ~ ab2@3 [ab3,c4,eb4]@2 ~ eb2@3 [ab3,c4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4]@2 ~ bb2@3 [g3,bb3,db4,eb4]@2 ~ eb2@3 [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4] ~@2 eb2@2 ~ [g3,bb3,db4,eb4] ~@2 bb2@3 [g3,bb3,db4,eb4]]/5", // Ab Eb7
})).s("gm_acoustic_guitar_steel").gain(0.29).pan(0.6)

// bass · acoustic bass
const bass = note(`<
  ~@14 A B C D@2 B E B F G H G@2 I G J G K L M N O P Q@2 R S T U V W X Y Z AA AB AC AD AE@3 ~@5 AF@4 AG AH@8 AI@3 AJ AK
  AL@8 AM@7 AN@2 AO@2 AP AQ AP AR AS AT AO@2 AP AQ AP AR AS AT AO@2 AP AQ AP AR AU@3 ~ AV AO@2 AP AQ AP AR AS AT AO@2 AP
  AQ AP AR AU@3
>`.pickRestart({
  A: "eb2@11 ~ f2@7 ~@2 f2@2 ~", B: "g2@9 ~ g2 ~ d2 ~@2 d2@4 ~@2 f2@2 ~", C: "g2@2 ~ bb1@6 c2@6 d2@2 ~ eb2 e2 ~ f2@3",
  D: "g2@9 ~ g2 ~ d2@2 ~ d2@6 f2@2 ~", E: "g2@2 ~ bb1@6 c2@5 ~ d2@6 f2@3",
  F: "g2@9 ~ d2 ~ g2 d2 ~ d3 ~@2 c3 f2 ~ bb2 f2 ~", G: "d2@9 ~ d2 ~ a1 ~@2 a1@5 ~ c2@2 ~",
  H: "d2@3 gb2@5 ~ g2@5 ~ a2@2 ~ bb2 b2 ~ c3 ~@2", I: "d2@2 ~ d3@6 c3@4 ~@2 a2@3 g2 a2 ~ c3 ~@2",
  J: "d2@9 ~ d2 ~ a1 ~@2 a1@4 ~@2 c2@2 ~", K: "d2@3 ~@3 a2@3 ~@3 d3@3 ~@3 a2@2 ~@4",
  L: "g2@2 ~ gb2@2 ~ e2@2 ~ d2@2 ~ c2@2 ~ b1@2 ~ a1@2 ~@4", M: "g1 ~ d1 ~ g1 ~ d1 ~",
  N: "g1@3 ~@3 d1@3 ~@3 g2@2 ~ e2@2 ~ d2@2 ~@4", O: "g2@2 ~ d2@2 ~ g2@2 ~ d2@2 ~",
  P: "a2@4 ~@2 d2@4 ~@2 a2@4 ~@2 d2 ~@2 gb2@2 ~", Q: "a2@2 ~ d2@2 ~ a2@2 ~ d2@2 ~",
  R: "a2@3 ~@3 d2@3 ~@3 a2@2 ~ gb2 ~@2 g2@2 ~ a2@2 ~", S: "g2@3 ~@3 d2@3 ~@3 g2 ~@2 e2 ~@2 d2@2 ~@4",
  T: "c2@6 g2@6 c2 ~@2 c2@3 eb2@3 f2@3", U: "g2@3 g2@2 ~ d2@6 g2 ~@2 g2@3 d2@2 ~ g2@2 ~",
  V: "a2@6 d2@6 a2 ~@2 a2@3 d2@3 a2@3", W: "g2@6 d2@2 ~ g2@5 ~ f2@2 ~ eb2@3 d2@3",
  X: "c2@6 g2@2 ~ g2@5 ~ c2@3 eb2@3 f2@3", Y: "g2@6 d2@3 g2@5 ~ d2@2 ~ g2@3 d2@2 ~",
  Z: "a2@5 ~ d2 ~@2 d2@6 a2@3 d2@3 a2 ~@2", AA: "d2@4 ~@2 a2@3 g2@2 ~ gb2@5 ~ e2@5 ~",
  AB: "g1@4 ~@2 d1@4 ~@2 g1@4 ~@2 d1@3 ~@3", AC: "g1 ~@2 e1@2 ~ d1@4 ~@2 g1@4 ~@2 d1@3 ~@3",
  AD: "a1@4 ~@2 d1@3 ~@3 d2 ~@2 c2@2 ~ b1@2 ~ a1@2 ~", AE: "[g1@19 ~@5]/3", AF: "[~@10 eb1@31 ~@7]/4",
  AG: "~@2 ab1@21 ~",
  AH: "[eb1@18 ~@4 ab1@19 ~@4 eb1@21 ~ ab1@20 ~@2 eb1@19 ~@3 bb1@20 ~@2 eb1@18 ~@4 bb1@19 ~@4 eb1@14]/8",
  AI: "[~@4 bb1@10 ~ eb1@10 ~ bb1@10]/3", AJ: "~@2 eb1@19 ~@3", AK: "~ ab1@13 ~ eb1@5 ~@3 ab1",
  AL: "[~@11 ab1@9 ~@2 eb1@9 ~@3 ab1@10 ~@2 eb1@10 ~@2 ab1@10 ~@2 eb1@10 ~@2 bb1@11 eb1@5 ~@7 bb2@9 ~@3 eb2@11 ~ bb2@10 ~@2 eb2@51]/8",
  AM: "[~@8 eb2@9 ~@2 eb2 bb1 ~@2 bb1@5 ~ db2@2 ~ eb2@9 ~@2 eb2 bb1 ~@2 bb1@6 db2@2 ~ eb2@2 ~ eb3@6 db3@4 ~@2 bb2@3 ab2 ~ bb2 db3 ~@2 eb2@9 ~@2 eb2 bb1 ~@2 bb1@5 ~ db2@2 ~ eb2@9 ~@2 eb2 bb1 ~@2 bb1@4 ~@2 db2@2 ~ eb2@9 ~@2 eb2 bb1 ~@2 bb1@4 ~@2 db2@2 ~ eb2@3 ~@3 bb2@3 ~@3 eb3@3 ~]/7",
  AN: "[~@2 bb2@2 ~@4 ab2@2 ~ g2@2 ~ f2@3 eb2@3 db2@3 c2@3 bb1@6 ab1@3 ~@3 eb1@3 ~@3 ab1@3 ~]/2",
  AO: "[~@2 eb1@3 ~@3 ab1@3 ~@3 eb1@3 ~@3 ab2@2 ~ f2@2 ~ eb2@2 ~@4 ab2@4 ~@2 eb2@4 ~@2 ab2@4]/2",
  AP: "~ eb2@2 ~ bb2@2 ~ eb2@2 ~ bb2@2", AQ: "~@2 eb2 ~@2 g2@2 ~ bb2@4 ~@2 eb2@4 ~@2 bb2@4",
  AR: "~@2 eb2@5 ~ bb2@3 ~@3 eb2@3 ~@3 bb2@2 ~ g2", AS: "~@2 ab2@2 ~ bb2@2 ~ ab2@3 ~@3 eb2@3 ~@3 ab2 ~@2 g2",
  AT: "~@2 f2 ~@2 eb2@2 ~ ab1@3 ~@3 eb1@3 ~@3 ab1@3 ~",
  AU: "[~@2 ab2@2 ~ bb2@2 ~ ab1@4 ~@2 ab1@2 ~ b1@4 ~@2 b1@4 ~@2 b1@2 ~ ab1@3 ~@3 ab1@3 b1@4 ~@2 b1@4 ~@2 b1@2 ~ ab1@3 ~@13]/3",
  AV: "~@8 ab1@3 ~@3 eb1@3 ~@3 ab1@3 ~",
})).s("gm_acoustic_bass").gain(0.48)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A@6 B@2 C@3 D E@2 F@6 G@8 ~ H I J K L J M N O ~@11 P@2 Q@6 R@4 S@5 T U V@2 W@2 X@2 Y Z AA AB@2 AC AD@3 AE@8 AF@8
  AG@8 AH@7 AI@3 ~ AJ@8 AH@7 AI@3
>`.pickRestart({
  A: "~@3 [bb4,d5,g5,bb5] ~@5 [bb4,d5,g5,bb5] ~@5 [bb4,d5,g5,bb5] ~@5 [bb4,d5,g5,bb5] ~@2", // Gm
  B: "~@3 [a4,d5,gb5] ~@5 [a4,d5,gb5] ~@5 [a4,d5,gb5] ~@5 [a4,d5,gb5] ~@2", // D
  C: "~@3 [g4,c5,eb5] ~@5 [g4,c5,eb5] ~@5 [g4,c5,eb5] ~@5 [g4,c5,eb5] ~@2", D: "[g4,bb4,eb5] [a4,c5,f5]",
  E: "[[bb4,d5,g5]@47 ~]/2", F: "[g4,bb4,g5]/6", G: "[gb5@143 ~ [c5,gb5]@48, [d5,d6]]/8", H: "g5@2 a5 b5, b4",
  I: "d6@23 ~", J: "e5", K: "gb5 e5", L: "c5", M: "gb5@23 ~", N: "gb5 e5 d5 c6", O: "b5@7 ~@5", P: "[bb4,eb5,bb5]/2",
  Q: "[~@22 [ab2,eb3,ab3,b3,eb4]@22 ~ [gb2,db3,bb5]@24 b5@24 bb5@8 b5@9 bb5@7 ab5@24 eb5@3, ~@22 ab5@23 [gb3,bb3,db4]@22 ~@2 [e2,b2,e3,ab3,b3]@75]/6", // Abm Gb E
  R: "[~@3 eb5@7 ~ eb5@8 [bb2,e5]@21 ~ [bb2,eb5]@35 ~@15 b4@3 c5@2, ~@19 [eb2,eb3,g3,bb3]@57 ~@20]/4", // Bbdim Eb5 Eb
  S: "[~@2 eb5@30 ~@7 b4@4 c5@3 f5@29 ~@8 b4@3 ~ c5@4 eb5@7 c5@7 ~ ab4@7 c5 ~@3 bb4 ~@2]/5",
  T: "ab4 ~@3 g4 ~@3 f4 ~@2 eb4 ~@3 f4 ~@6 db4 ~", U: "~@6 bb3 ~@17", V: "[~@4 c5@4 db5@3 f5@32 ~@5]/2",
  W: "[c5@4 db5@4 g5@33 ~@4 c5@3]/2", X: "[db5@4 f5@7 ~ db5@7 bb4@7 g4@7 ~ bb4@7 f5@7]/2", Y: "~ eb5@22 c5",
  Z: "~@3 b4 ~ c5 ~ b4 ~ c5 ~ eb5 ~ eb5!2 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~",
  AA: "~@2 b4 ~ c5 ~ b4 ~ c5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~",
  AB: "[~@2 b4 ~ c5 ~ b4 ~ c5 ~ eb5@4 c5@4 ab4@4 eb4@8 c5@4 db5@12 ~@2]/2", AC: "~ c5 ~ db5 ~ c5 ~ db5 ~ f5@11 ~@4",
  AD: "[~ c5 ~ db5 ~ c5 ~ db5@2 g5 ~ g5 ~ g5 ~ g5 ~ g5 ~ g5 ~ [db5,g5]@51]/3", // Dbdim
  AE: "[~@8 [eb5,g5,bb5]@167 ~ ab5@12 bb5@4]/8", // Eb
  AF: "[~@2 c6@6 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@20 ~@4 g5@6 f5@6 eb5@6 db6@6 c6@14 ~@2]/8",
  AG: "[~@8 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@22 ~@2 g5@6 f5@6 eb5@6 db6@6 c6@14 ~@2]/8",
  AH: "[~@8 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@22 ~@2 g5@6 f5@6 eb5@4]/7",
  AI: "[~@2 g5@5 ~ [eb5,ab5]@3 ~@3 [eb5,gb5] ~@2 [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@2 ~ [eb5,ab5]@3 ~@3 [eb5,ab5]@2 ~ [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@3 ~@3 [eb5,gb5,b5]@2 ~ [eb5,ab5]@3 ~@13, ~@7 ab5 ~@28]/3", // Ab5 Ebm B Ab5 B Ab5
  AJ: "[~@2 c6@6 eb6@23 ~ f5@23 ~ g5@12 f5@12 db5@24 f5@23 ~ g5@22 ~@2 g5@6 f5@6 eb5@6 db6@6 c6@14 ~@2]/8",
})).s("gm_string_ensemble_1").gain(0.45).pan(0.7)

// other · oboe
const oboe = note(`<
  [g3@2 ~ d5 ~@2 d4@2 ~ d5 ~@2 g3@2 ~ d5 ~@2 d4@2 ~ d5 ~@2]!6
  [g3@2 ~ d5 ~@2 d3@2 ~ d5 ~@2 g3@2 ~ d5 ~@2 d3@2 ~ d5 ~@2]!3
  [a3@2 ~ d5 ~@2 d3 ~@2 d5 ~@2 a3@2 ~ d5 ~@2 d3 ~@2 d5 ~@2]!2
  [g3@2 ~ c5@2 ~ c3@2 ~ c5@2 ~ g3@2 ~ c5@2 ~ c3@2 ~ c5@2 ~]
  [g3@2 ~ c5 ~@2 c3@2 ~ c5 ~@2 g3@2 ~ c5 ~@2 c3@3 c5 ~@2]!2
  ~@125
>`).s("gm_oboe").gain(0.45).pan(0.8)

// chords · flute
const flute = note("<~@25 A@6 B ~@54 C D@5 E F ~@45>".pickRestart({
  A: "~@9 [gb4,a4,d5] ~@11 [gb4,a4,d5] ~@2", B: "~@3 [gb4,a4,d5] ~@5 [gb4,a4,d5] ~@5 [gb4,a4,d5] ~@5 [gb4,a4,d5] ~@2",
  C: "~@17 [g4,bb4,eb5] ~@6", D: "~@5 [g4,bb4,eb5] ~@11 [g4,bb4,eb5] ~@6",
  E: "~@5 [g4,bb4,eb5] ~@5 [g4,bb4,eb5] ~@5 [g4,bb4,eb5] ~@5 [g4,bb4,eb5]", F: "~@5 [g4,bb4,eb5] ~@18",
})).s("gm_flute").gain(0.52).pan(0.7)

// other · trombone
const trombone = note(`<
  ~@14 A ~@16 B C D E F G H I J K ~@51 L M@4 N@4 O P@3 N@4 O P@3 N@4 Q ~@3 P@3 N@4 O P@3 N@4 Q ~@2
>`.pickRestart({
  A: "[eb3,g3,bb3]@11 ~ [f3,a3,c4]@12", B: "d2@3 ~@3 a2@3 ~@3 d3@3 ~@3 a2@4 ~@2",
  C: "g3@2 ~ gb3@2 ~ e3@2 ~ d3@2 ~ c3@2 ~ b2@2 ~ a2@5 ~", D: "~@12 d3@7 ~@5", E: "~@6 gb3@2 ~ g3@2 ~ e3@6 ~@6",
  F: "e3@4 ~@2 d3@3 ~@3 d4@4 ~@2 db4@4 ~@2", G: "c4@4 ~@2 b3@4 ~@2 a3@7 ~@5", H: "~@6 c3@3 ~@3 e3@8 ~@4",
  I: "~@6 c3@4 ~@2 gb3@7 ~@5", J: "~@6 c3@4 ~@2 e3@5 ~ eb3@5 ~", K: "d3@4 ~@2 d3@4 ~@2 g3@5 ~@7",
  L: "~@8 eb2@3 ~@3 bb2@3 ~@3 eb3@3 ~",
  M: "[~@2 bb2@2 ~@4 ab3@2 ~ g3@2 ~ f3@2 ~ eb3@2 ~ db3@2 ~ c3@2 ~ bb2@5 ~@13 eb3@7 ~@11 g3@2 ~ ab3@2 ~ f3@6 ~@6 f3@4 ~@2 eb3@3 ~@3 eb4@4]/4",
  N: "[~@2 d4@4 ~@2 db4@4 ~@2 c4@4 ~@2 bb3@7 ~@11 db3@3 ~@3 f3@8 ~@10 db3@4 ~@2 g3@7 ~@11 db3@4 ~@2 f3@4]/4",
  O: "~@2 e3@5 ~ eb3@4 ~@2 eb3@4 ~@2 ab3@4", P: "[~@20 eb3@7 ~@11 g3@2 ~ ab3@2 ~ f3@6 ~@6 f3@4 ~@2 eb3@3 ~@3 eb4@4]/3",
  Q: "~@2 e3@5 ~@17",
})).s("gm_trombone").gain(0.6).pan(0.2)

// other · string ensemble 1
const string_ensemble_1_2 = note("<~@9 A B ~@56 C@2 D@4 E@2 ~@2 F G@3 H I@5 ~@52>".pickRestart({
  A: "~ ab6@2 ~ gb6@2 ~ e6@2 ~ d6@2 ~ c6@2 ~ bb5@2 ~ ab5@2 ~ gb5@2, a6@2 ~ g6@2 ~ f6@2 ~ eb6@2 ~ db6@2 ~ b5@2 ~ a5@2 ~ g5@2 ~",
  B: "~ e5@2 ~ d5@2 ~ c5@2 ~ bb4@2 ~ ab4@2 ~ gb4@2 ~ e4@2 ~ d4@2, f5@2 ~ eb5@2 ~ db5@2 ~ b4@2 ~ a4@2 ~ g4@2 ~ f4@2 ~ eb4@2 ~",
  C: "[~@4 [eb2,eb3]@7 [ab2,ab3]@7 ~ c4@22 eb4@7]/2", D: "[~@8 c5@7 db5@22 g3@22 ~@8 db4@7 ab3@7 ~ f4@7 db4@7]/4",
  E: "[eb4@4 ~@11 f4@7 ~ eb4@7 bb4@7 g4@7 ~@4]/2", F: "~ c4@2 ~ c4@2 ~@2 b3@3 ~ c4 ~@2 c4@2 ~@2 c4@2 ~@2 ab3",
  G: "[~@3 b3 ~ c4 ~ b3 ~ c4 ~ ab2@3 c5 ~ bb4 ~ ab4 ~ g4 ~ f4@12 ab2@4 eb5 ~ db5 ~ c5 ~ bb4 ~ ab4@11 ~ ab2@3 ~ ab3 ~ bb3 ~ c4 ~ db4 ~ eb2@2, ~@11 eb4 ~@10 eb2@3 ~@21 eb2@4 ~@20 c5 ~]/3",
  H: "bb4 ~ ab4 ~ g4 ~ f4 ~ eb4 ~ f4 eb4 ~ db4 ~ c4 ~ bb3 ~ ab3 ~ [eb2,g3]@3, ~@5 bb2@2 ~@5", // Eb
  I: "[~@9 [bb2,bb3]@4 eb4 ~@3 f4 ~@3 g4@2 ~@2 [f4,ab4]@2 ~@2 a4@2 ~@2 [g4,bb4]@2 ~@2 [ab4,c5]@2 ~@2 [bb4,db5]@2 ~@2 [eb3,bb4]@53 ~@22, ~@21 eb3@7 ~@5 bb3@6 ~@81, ~@21 eb4 ~@7 gb4 ~@90]/5", // Bb Fm Gm Ab Bbm Eb5
})).s("gm_string_ensemble_1").gain(0.48).pan(0.3)

// chords · trumpet
const trumpet = note(`<
  ~@14 A B@2 ~@21 C ~@2 D E F G D E F@2 H I J K@3 ~@14 L M ~@6 N ~@3 O P Q@4 ~@30 R@3 ~@16 R@3
>`.pickRestart({
  A: "[eb4,g4,bb4]@11 ~ [f4,a4,c5]@12", B: "[bb4,d5]/2",
  C: "~@3 [a4,d5,a5] [d5,a5]!2 ~@3 [a4,d5,a5]!2 [a4,d5,a5]@6 ~@7, ~@2 a4 ~@9", // D5
  D: "[eb4,g4,c5,eb5] ~@8 [eb4,g4,c5,eb5]@14 ~", E: "[d4,g4,bb4] ~@8 [d4,g4,bb4,d5]@14 ~",
  F: "[d4,gb4,a4] ~@8 [d4,gb4,a4,d5]@14 ~", G: "[d4,g4,bb4] ~@8 [f4,g4,b4,d5]@12 ~@3",
  H: "~@3 [d4,g4,b4]@2 ~ [d4,g4,d5]@6", I: "~@2 [d4,g4,b4] ~ [d4,g4,b4,e5]@3 ~",
  J: "[g4,c5,e5]@10 ~@2 [gb4,a4,d5]@9 ~@3", K: "[[bb3,eb4,g4]@59 ~@13]/3", L: "~@20 [bb4,db5] ~ db5@2, ~@22 bb4 ~",
  M: "~@3 [bb4,db5] ~@2 db5@2 ~@3 [bb4,db5] ~ [bb4,db5]@5 ~@6, ~@6 bb4 ~@17", // Bbm
  N: "~ [c5,eb5] ~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5]", // Cm
  O: "~@10 [bb4,db5]!2 ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~@2", // Bbm
  P: "~@9 [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5] ~ [db5,f5]@2 ~", // Db
  Q: "[~@9 [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5] ~ [eb5,g5]@53 ~@22]/4", // Eb
  R: "[~@8 [ab3,eb4,ab4] ~@2 [ab3,eb4,ab4]!2 ~ [ab3,eb4,ab4] ~@2 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4] ~@2 [ab3,eb4,ab4] ~@2 [ab3,eb4,ab4]!2 ~ [ab3,eb4,ab4] ~@2 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4] ~@2 [ab3,eb4,ab4]@3 ~@13, ~@53 b4@2 ~@17]/3", // Ab5 B Ab5 B Ab5
})).s("gm_trumpet").gain(0.46).pan(0.7)

// chords · rock organ
const rock_organ = note(`<
  ~@14 A B@8 C@8 D E F@3 G@4 H I J K L I J K@2 F M N ~@34 O@7 P@2 Q@2 R S T U V W Q@2 R S@2 T V W Q@2 R S T U X ~@3 W
  Q@2 R S@2 T V W Q@2 R S T U X ~@2
>`.pickRestart({
  A: "[eb5,g5,bb5] [f5,a5,c6]", B: "[[g5,bb5] [d5,g5,bb5]@3, d6@191 ~]/8", C: "[gb5,a5,d6]/8", D: "[gb5,a5,d6]",
  E: "[g5,b5]", F: "~@3 [g5,b5,d6] ~@5 [g5,b5,d6] ~@5 [g5,b5,d6] ~@5 [g5,b5,d6] ~@2",
  G: "~@3 [a5,d6,gb6] ~@5 [a5,d6,gb6] ~@5 [a5,d6,gb6] ~@5 [a5,d6,gb6] ~@2", // D
  H: "~@3 [b5,d6,g6] ~@5 [b5,d6,g6] ~@2 [b5,d6,g6] ~@11", I: "[eb5,g5,c6] ~@8 [eb5,g5,c6]@14 ~",
  J: "[d5,g5,bb5] ~@8 [d5,g5,bb5]@14 ~", K: "[d5,gb5,a5] ~@8 [d5,gb5,a5]@14 ~", L: "[d5,g5,bb5] ~@8 [d5,f5,b5]@13 ~@2",
  M: "~@3 [g5,b5,d6] ~@5 [g5,b5,d6] ~@5 [g5,b5,e6] ~@5 [g5,b5,e6] ~@2", N: "[g5,c6,e6]@11 ~ [a5,d6,gb6]@11 ~",
  O: "[~ eb6@18 db6@2, ~ [g5,bb5]@20]/7", // Gm
  P: "[~@8 [ab5,c6,eb6]@25 ~@2 [ab5,c6,eb6] ~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6]]/2", // Ab
  Q: "~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6] ~@5 [ab5,c6,eb6]", // Ab
  R: "~@5 [ab5,c6,eb6] ~@5 [g5,bb5,eb6] ~@5 [g5,bb5,eb6] ~@5 [g5,bb5,eb6]", // Ab Eb
// … 110 more lines

More by Antoine