Strudelify

What Would the World Be Without Music Let the Music Take Your Mind Medley

Kool & The Gang

KeyD♭ majorTempo115 bpm
0:00/0:00
// What Would the World Be Without Music   Let the Music Take Your Mind Medley — Kool & The Gang
// 115 bpm, 4/4, key C# 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 198 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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 · epiano1 · "#FM+SA EP"
const epiano1 = note(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E D E D E D F G F G F G F G H I
  ~@24 J@2 K L J@2 K L ~@33 M N O P@4 Q@2 R S T U V W X@6 Y Z AA@5 AB@7 AC AD@2 AE@3 AF AG@2 AH@2 AI@2 AJ AK AL@4 AM
  AN@2 AO@4 AP AQ@4 AR@2 AS@2 AT@4
>`.pickRestart({
  A: "[ab3,b3,db4,e4] ~@2 [ab3,db4,e4]@2 ~ [ab3,b3,db4,e4] ~@2 [ab3,db4]@2 ~ [ab3,b3,db4,e4] ~@2 [b3,db4]@2 ~ [ab3,b3,db4,e4] ~@2 [ab3,b3,e4] ~@2, ~@3 b3 ~@5 [b3,e4] ~@5 [ab3,e4] ~@5 db4@2 ~", // Dbm7 Dbm Dbm7 Db5 Dbm7 Bsus2 Dbm7 E …
  B: "[ab3,bb3,db4,e4] ~@2 [ab3,bb3,db4,e4] ~@2 [ab3,bb3,e4] ~@2 [ab3,bb3,db4,e4] ~@2 [ab3,db4]@2 ~ [ab3,db4]@2 ~ [ab3,db4]@2 ~ [ab3,bb3,db4]@2 ~, ~@6 db4@2 ~@4 [bb3,e4] ~@2 [bb3,e4] ~@2 [bb3,e4] ~@2 e4 ~@2", // Bbm7b5 Db5 Bbm7 Bbdim
  C: "[g3,b3,c4,e4]@3 ~ [g3,b3,c4,e4] ~@4 [gb3,a3,b3,d4] ~@2 [g3,b3,c4,e4]@4 [g3,b3,c4,e4]@5 ~@3", // Cmaj7 Bm7 Cmaj7
  D: "[a3,b3,d4,gb4] ~@2 [a3,b3,d4,gb4] ~@2 [a3,b3,d4,gb4] ~@2 [b3,d4,e4,g4]@13 ~@2", // Bm7 Em7
  E: "[g3,b3,c4,e4]@4 [g3,b3,c4,e4] ~@4 [gb3,a3,b3,d4] ~@2 [g3,b3,c4,e4]@4 [g3,b3,c4,e4]@5 ~@3", // Cmaj7 Bm7 Cmaj7
  F: "[bb3,d4,eb4,g4]@4 [bb3,d4,eb4,g4] ~@4 [a3,c4,d4,f4] ~@2 [bb3,d4,eb4,g4]@4 [bb3,d4,eb4,g4]@5 ~@3", // Ebmaj7 Dm7 Ebmaj7
  G: "[c4,d4,f4,a4] ~@2 [c4,d4,f4,a4] ~@2 [c4,d4,f4,a4] ~@2 [d4,f4,g4,bb4]@13 ~@2", // Dm7 Gm7
  H: "[bb3,d4,eb4,g4]@3 [gb3,a3,b3,db4] ~@2 [gb3,a3,b3,db4] ~@2 [gb3,a3,b3,db4] ~@2 [gb3,a3,b3,db4] ~@2 [gb3,a3,b3,db4] ~@2 [gb3,a3,b3,db4] ~@2 [gb3,a3,b3,db4] ~@2, [gb3,a3,b3,db4] ~@23", // Ebmaj7 Gbm
  I: "[gb3,a3,b3,db4] ~ [gb3,a3,b3,db4] ~ [gb3,a3,b3,db4] ~ [gb3,a3,b3,db4] ~ [gb3,a3,b3,db4] ~ [gb3,a3,b3,db4] ~ [gb3,a3,b3,db4]@3 ~@9", // Gbm
  J: "[[a3,b3,d4,gb4]@11 ~]/2", K: "[g3,b3,d4,gb4]@11 ~", L: "[gb3,a3,db4,e4]@19 ~@5", M: "~@21 [f3,ab3,db4]@2 ~",
  N: "[f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3", // Db Gb Db Gb Db
  O: "~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~", // Ab Db
  P: "[[gb3,bb3,db4]@2 [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 [gb3,bb3,db4]@3 ~@2]/4", // Gb Db Gb Db Ab Db Gb Db …
  Q: "[~ [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 [f3,ab3,db4]@2 ~ [gb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@3, ~@37 bb3 ~@10]/2", // Db Gb Db Ab Db Gb5 Gb Db
  R: "~@3 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13", // Gb Db Ab
  S: "~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,db4]@2 [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~@2, ~@10 bb3 ~@13", // Db Gb5 Gb Db
  T: "[gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@3", // Gb Db Ab
  U: "~ [f3,ab3,db4]@2 [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~", // Db Gb Db Gb
  V: "[f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~", // Db Ab Db
  W: "[f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3", // Db Gb Db Gb Db
  X: "[~ [ab3,c4,eb4]@13 ~ [gb3,bb3,db4]@19 ~@3 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@11 ~@3 [gb3,bb3,db4]@19 ~@4 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@11 ~@3 [gb3,bb3,db4]@19 ~@3 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@10]/6", // Ab Gb Db Ab Gb Db Ab Gb …
  Y: "~@4 [gb3,bb3,db4]@19 ~", Z: "~@3 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@11 ~@2",
  AA: "[~ [gb3,bb3,db4]@19 ~@3 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@11 ~@3 [gb3,bb3,db4]@19 ~@4 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@11 ~@3 [gb3,bb3,db4]@19 ~@3 [ab3,db4,f4]@7 ~]/5", // Gb Db Ab Gb Db Ab Gb Db
  AB: "[~ [ab3,c4,eb4]@11 ~@2 [gb3,bb3,db4]@19 ~@4 [ab3,db4,f4]@7 ~ [ab3,c4,eb4]@11 ~@17 bb3@4 c4@3 ~@15 g3@4 bb3@4 [g3,bb3,eb4]@19 ~@4 [a3,c4,f4]@21 ~ [bb3,db4,f4]@19 ~, ~@59 [ab3,eb4]@21 ~ [ab3,c4,eb4]@16 ~@71, ~@59 c4@17 ~@92]/7", // Ab Gb Db Ab Eb F Bbm Ab5 …
  AC: "~@2 [bb3,eb4,ab4]@3 ~@3 [bb3,eb4,ab4]@3 ~@2 [bb3,eb4,ab4] ~@2 [bb3,eb4,ab4] ~@2 [bb3,eb4,ab4]@3 ~@2", // Ebsus4
  AD: "[~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4]/2", // Db Gb Db Gb Db Ab
  AE: "[[f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~@2 [ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~, ~@50 bb3 ~@21]/3", // Db Gb Db Gb Db Ab Db Gb5 …
  AF: "[ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 [gb3,db4]@2, ~@22 bb3 ~", // Ab Db Gb5
  AG: "[~ [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~@2 [ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@2]/2", // Gb Db Gb Db Ab Db Gb
  AH: "[~@3 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@3]/2", // Db Gb Db Ab Db Gb
  AI: "[[f3,ab3,db4]@4 ~ [gb3,bb3,db4]@4 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4]/2", // Db Gb Db Ab Db Gb Db
  AJ: "~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~", // Gb Db Ab
  AK: "~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 [gb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@2, ~@8 bb3 ~@15", // Db Gb5 Gb Db Gb
  AL: "[~@3 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@4 ~ [f3,ab3,db4]@3 ~]/4", // Db Ab Db Gb Db Gb Db Ab …
  AM: "[ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2", // Ab Db Gb
  AN: "[~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,db4]@2 [gb3,bb3,db4]@3, ~@43 bb3 ~@4]/2", // Gb Db Gb Db Ab Db Gb5 Gb
  AO: "[~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@3 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4]/4", // Db Gb Db Ab Db Gb Db Gb …
  AP: "~ [gb3,bb3,db4]@4 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~", // Gb Db Ab
  AQ: "[~@2 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,db4]@2 [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 [f3,ab3,db4]@2, ~@53 bb3 ~@42]/4", // Db Gb Db Gb Db Ab Db Gb5 …
  AR: "[~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3 ~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2]/2", // Gb Db Gb Db Ab Db Gb
  AS: "[[gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 [f3,ab3,db4]@2 ~ [gb3,bb3,db4]@2 ~ [gb3,bb3,db4]@3]/2", // Gb Db Gb Db Ab Db Gb
  AT: "[~@2 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@4 [f3,ab3,db4]@2 ~ [f3,ab3,db4]@2 ~ [gb3,db4]@2 [gb3,bb3,db4]@3 ~@3 [f3,ab3,db4]@4 ~@2 [gb3,bb3,db4]@3 ~ [f3,ab3,db4]@3 ~ [ab3,c4,eb4]@13 ~@22, ~@39 bb3 ~@56]/4", // Db Gb Db Ab Db Gb5 Gb Db …
})).s("gm_epiano1").gain(0.3)

// bass · electric bass finger · "Fing.Bass"
const bass = note(`<
  A ~ B@2 C D ~@2 E F G F G F G F G F G F G F G F G F G F G F G F G F G F G F G F G H I J K L M N O P Q R S T Q P U V W
  ~@31 X Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AN AO@2 AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC@2 BD BE BF@4
  BG@2 BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI@2 CJ@3 CK CL@2 CM@2 CN@2 CO
  CP@2 CQ@3 CR CS@2 CT@3 CU CV CW@2 CX@2 CY@2 CZ@2 DA@4
>`.pickRestart({
  A: "~@13 c2 [db2,d2,eb2,e2,f2] gb2@2 ~ gb2 e2 [b1,c2,db2,d2,eb2] [g1,ab1,a1,bb1] gb1 ~",
  B: "[~@9 db4@14 ~, ~@18 b3 ~@29]/2", C: "~@19 [f1,gb1,g1] [ab1,a1,bb1,b1,c2] db2@2 ~",
  D: "db2@2 [b1,c2] [gb1,g1,ab1,a1,bb1] [d1,eb1,e1,f1] db1 ~@18", // Cmaj7
  E: "~@18 db3 [bb2,b2,c3] [ab2,a2] [f2,gb2,g2] [d2,eb2,e2] ~", F: "db2@3 ~@3 e2@3 ~@3 gb2@3 ~ ab2@6 ~@2",
  G: "db2 ~@2 db2 ~@2 e2 ~@2 e2 gb2@2 ~@12", H: "a1@2 ~@2 a1@2 ~ a1 ~ g1@2 ~ a1@2 ~@7 a1 bb1@2",
  I: "b1@2 ~@2 b1@2 ~@3 e2@8 ~ b1@3 ~@3", J: "a1@3 ~ a1 ~@2 a1 ~ g1 ~@2 a1@2 ~@7 a1 bb1@2",
  K: "b1@3 ~ b1@7 ~ e2 ~@2 e2 ~@2 b1 ~@2 b1 ~@2", L: "a1@2 ~@2 a1 ~@2 a1 ~ g1@2 ~ a1@2 ~@7 a1 bb1@2",
  M: "b1@2 ~@2 b1@2 ~@3 e2@9 b1@3 ~@3", N: "a1@3 ~ a1 ~@2 a1 ~ g1@2 ~ a1@2 ~@7 a1 bb1@2",
  O: "b1@2 ~@2 b1@7 ~ e2 ~@2 e2 ~@2 b1 ~@2 b1 ~@2", P: "c2@2 ~@2 c2 ~@2 c2 ~ bb1@2 ~ c2@2 ~@8 db2 ~, ~@21 c2@2 ~",
  Q: "d2@2 ~@2 d2 ~@4 g2@9 d2@3 ~@3", R: "c2@2 ~@2 c2 ~@2 c2 ~ bb1@2 ~ c2@2 ~@8 db2@2, ~@21 c2@2 ~",
  S: "d2@2 ~@2 d2@7 ~ g2 ~@2 g2@2 ~ d2 ~@2 d2 ~@2", T: "c2@2 ~@2 c2 ~@2 c2 ~ bb1 ~@2 c2@2 ~@7 c2 db2 ~",
  U: "d2@2 ~@2 d2@7 ~ g2 ~@2 g2 ~@2 d2 ~@2 d2 ~@2", V: "b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2",
  W: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 ~@10", X: "~@9 a1 ~@2 a1 ~@2 a1 ~@2 b1 ~@2 a1 ~@2",
  Y: "f2@5 ~@7 c2@4 ~@2 db2@4 ~@2", Z: "~ eb2@6 ~@6 bb1@3 ~@3 c2@3 ~@2", AA: "~ f1@7 ~@5 c2@3 ~@4 db2@3 ~",
  AB: "~ eb2@3 ~@8", AC: "~@2 f2@5 ~@8 c2@4 ~@2 db2@3", AD: "~@3 eb2@6 ~@6 bb1@3 ~@4 c2@2",
  AE: "~@4 f1@7 ~@5 c2@3 ~@3 db2@2", AF: "~@2 eb2@3 ~@7", AG: "~@5 f1@4 ~@8 c2@3 ~@2 c2@2",
  AH: "~@3 bb1@3 ~@12 bb1@4 ~@2", AI: "[c2@4 ~@2 f2@4 ~@9 c2@3 ~ c2@3 ~@2 eb2@3 ~@12 eb2@3 ~@2]/2",
  AJ: "~ eb2@3 ~@4 f1@4 ~@8 c2@3 ~", AK: "~ c2@2 ~@2 bb1@3 ~@13 bb1@3", AL: "~@3 c2@4 ~@2 f2@4 ~@8 c2@3",
  AM: "~@2 c2@3 ~ eb2@3 ~@13 eb2@2", AN: "~@4 eb2@3 ~@3 f1@4 ~@8 c2@2",
  AO: "[~@3 c2@2 ~@3 bb1@3 ~@12 bb1@4 ~@2 c2@4 ~@2 f2@4 ~@9]/2", AP: "c2@3 ~ c2@3 ~@2 eb2@3 ~@12",
  AQ: "eb2@3 ~@4 eb2@3 ~@3 f1@4 ~@7", AR: "~ c2@3 ~@2 c2@2 ~@2 bb1@3 ~@11", AS: "~ bb1@2 ~ c2@2 ~ f2@2 ~@3",
  AT: "~@2 c2@3 ~@2 c2@3 ~@2 eb2@3 ~@9", AU: "~@3 eb2@3 ~@3 eb2@3 ~@3 f1@4 ~@5", AV: "~@4 c2@3 ~ c2@2 ~@3 bb1@3 ~@8",
  AW: "~@4 bb1@4 ~@2 c2@4 ~@3 f2@4 ~@3", AX: "~@5 c2@3 ~@2 c2@3 ~ eb2@3 ~@7", AY: "~@6 eb2@3 ~@3 eb2@3 ~@3 f1@4 ~@2",
  AZ: "~@6 c2@3 ~@2 c2@2 ~@2 bb1@3 ~@6", BA: "~@7 bb1@4 ~@2 c2@4 ~@2 f2@4 ~", BB: "~@7 c2@3 ~@2 c2@3 ~@2 eb2@3 ~@4",
  BC: "[~@8 eb2@3 ~@3 eb2@3 ~@3 f1@6 ~@19 f1 ~@2]/2", BD: "f1@2 ~ gb1 ~@2 gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~",
  BE: "~ ab1@13 ~@4 f1 ~@2 f1@2 ~",
  BF: "[gb1 ~ gb1@3 ~@3 f1@2 ~@3 gb1@4 ~ f1@2 ~@2 ab1@13 ~@3 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@12 ~@5 f1 ~@2 f1@2 ~ gb1@2 gb1@3 ~@2]/4",
  BG: "[~ f1@2 ~@3 gb1@4 ~ f1@2 ~@2 ab1@13 ~@4 f1 ~ f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~]/2",
  BH: "~@3 gb1@4 f1@2 ~@2 ab1@12 ~", BI: "~@4 f1 ~@2 f1@2 ~ gb1@2 gb1@3 ~@3 f1@2 ~@4", BJ: "gb1@4 f1@2 ~@2 ab1@13 ~@3",
  BK: "~ f1 ~ f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4", BL: "f1@2 ~@2 ab1@12 ~@5 f1 ~@2",
  BM: "f1@2 ~ gb1 ~ gb1@3 ~@3 f1@2 ~@4 gb1@4 f1@2 ~", BN: "~ ab1@12 ~@2 ab1 ~@2 ab1 ~ ab1 ~@2 ab1",
  BO: "~@2 ab1@3 ~@3 ab1@3 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~ ab1 ~ ab1", BP: "~@11 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~ ab1@2",
  BQ: "~@4 ab1@3 ~@3 ab1 ~ ab1 ~@2 ab1 ~@2 ab1!2 ~@4", BR: "~@8 ab1 ~@2 ab1 ~ ab1 ~@2 ab1 ~@2 ab1@3 ~@2",
  BS: "~ ab1@3 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~ ab1 ~ ab1 ~@7", BT: "~@4 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~ ab1@3 ~@3 ab1@3",
  BU: "~@3 ab1 ~ ab1 ~@2 ab1 ~@2 ab1!2 ~@11", BV: "~ ab1 ~@2 ab1 ~ ab1 ~@2 ab1 ~@2 ab1@3 ~@3 ab1@3 ~@2 ab1",
  BW: "~@2 ab1 ~@2 ab1 ~ ab1 ~ ab1 ~@11 ab1 ~@2", BX: "ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1@3 ~@2 ab1@3 ~@3 ab1 ~ ab1 ~",
  BY: "~ ab1 ~@2 ab1!2 ~@12 ab1 ~@2 ab1 ~ ab1", BZ: "~@2 ab1 ~@2 ab1@3 ~@3 ab1@3 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~",
  CA: "~ ab1!2 ~@11 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1", CB: "~@2 ab1@3 ~@2 ab1@3 ~@3 ab1 ~ ab1 ~@2 ab1 ~@2 ab1!2 ~",
  CC: "~@11 db2@3 ~@3 db2@3 ~@2 db2@2", CD: "~@4 db2@4 ~ c2 ~@2 c2 ~@2 c2 ~@2 c2!2 ~@4",
  CE: "~@7 f1@3 ~@3 f1@3 ~@3 f1@3 ~@2", CF: "f1@2 ~@4 f1 ~ f1 ~@2 f1 ~@2 f1!2 ~@8",
  CG: "~@4 bb1@3 ~@3 bb1@3 ~@2 bb1@3 ~@3 bb1@3", CH: "~@2 eb2@2 ~@4 eb2@3 ~@2 eb2@3 ~@3 eb2 ~@4",
  CI: "[~@3 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@13 ~@4]/2",
  CJ: "[f1 ~@2 f1@2 gb1@2 ~ gb1@3 ~@3 f1@2 ~@3 gb1@4 f1@2 ~@3 ab1@12 ~@4 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2]/3",
  CK: "ab1@13 ~@4 f1 ~@2 f1@2 gb1 ~",
  CL: "[~ gb1@3 ~@3 f1@2 ~@3 gb1@4 f1@2 ~@3 ab1@13 ~@3 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@2]/2",
  CM: "[~@3 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@12 ~@5 f1 ~@2 f1@2 gb1@2 ~ gb1@3 ~@3]/2",
  CN: "[f1@2 ~@3 gb1@4 ~ f1@2 ~@2 ab1@13 ~@3 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@2]/2",
  CO: "~@2 gb1@4 f1@2 ~@2 ab1@13 ~",
  CP: "[~@3 f1 ~@2 f1@2 gb1@2 ~ gb1@3 ~@3 f1@2 ~@3 gb1@4 ~ f1@2 ~@2 ab1@13 ~@3 f1]/2",
  CQ: "[~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@12 ~@5 f1 ~@2 f1@2 gb1@2 ~ gb1@3 ~@3 f1@2 ~@3 gb1@4 ~ f1@2 ~@2]/3",
  CR: "ab1@13 ~@3 f1 ~@2 f1@2 ~ gb1@2",
  CS: "[~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@13 ~@4 f1 ~@2 f1@2 ~ gb1@2 gb1@3]/2",
  CT: "[~@3 f1@2 ~@3 gb1@4 ~ f1@2 ~@2 ab1@13 ~@3 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@11]/3",
  CU: "~@6 f1 ~@2 f1@2 ~ gb1@2 gb1@3 ~@3 f1@2 ~@2", CV: "~ gb1@4 ~ f1@2 ~@2 ab1@13 ~",
  CW: "[~@2 f1 ~@2 f1@2 ~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@13 ~@4 f1]/2",
  CX: "[~@2 f1@2 ~ gb1@2 gb1@3 ~@3 f1@2 ~@3 gb1@4 ~ f1@2 ~@2 ab1@13 ~@4 f1 ~ f1@2]/2",
  CY: "[~ gb1@2 ~ gb1@3 ~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@12 ~@5 f1 ~@2 f1@2 ~ gb1@2]/2",
  CZ: "[gb1@3 ~@3 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@13 ~@4 f1 ~ f1@2 ~ gb1@2 ~ gb1@3]/2",
  DA: "[~@2 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@13 ~@4 f1 ~@2 f1@2 ~ gb1@2 gb1@3 ~@3 f1@2 ~@4 gb1@4 f1@2 ~@2 ab1@13 ~@22]/4",
})).s("gm_electric_bass_finger").gain(0.45)

// bass · synth bass 1 · "Synth.Bas"
const bass_2 = note("<~@59 A B C D A E C F A B C G A H C I A E J K A E C I A H C K A E L M ~@107>".pickRestart({
  A: "b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@5 b1 ~@2 b1 ~@2", B: "a1 ~@2 b1 ~@2 b1 ~@5 b1 ~@2 b1 ~@2 a1 ~@2 a1 ~@2",
  C: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
  D: "gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2",
  E: "a1 ~@2 b1 ~@2 b1 ~@5 b1 ~@2 b1 ~@2 a1 ~@2 a1 d2 ~",
  F: "a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 e2 gb2 ~",
  G: "gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 a1 ~@2 db2 ~@2",
  H: "a1 ~@2 b1 ~@2 b1 ~@5 b1 ~@2 db2 ~@2 d2 ~@2 a1 ~@2",
  I: "a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 gb1 ~@2 gb1 ~@2",
  J: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 e1 ~@2 e1 ~@2",
  K: "gb1 ~@2 gb1 ~@2 gb1 ~@2 gb1 ~@2 e2 gb1 ~ gb1 ~@2 gb1 ~@2 gb1 ~@2",
  L: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 b1 ~@2", M: "a1 ~@2 a1 ~@2 a1 ~@17",
})).s("gm_synth_bass_1").gain(0.4)

// chords · electric guitar clean · "#Chrs.Gtr"
const electric_guitar_clean = note(`<
  ~@7 A B A B A B A B A B A B A B A B A B ~@8 A B A B A B A B C D C D C D C D E F E G E F E G H ~@8 I ~@11 J ~@7 J ~@38
  K@2 L@2 ~@2 M ~ N O P ~@2 Q R ~@20 S@2 T@2 ~@2 U@2 ~@2 V ~@2 W@2 ~@2 X Y ~@2 Z@2 ~@2 AA ~@2 AB@2 ~@2 AC@2 ~@2 AD ~
>`.pickRestart({
  A: "[b3,e4,ab4,db5]@11 ~", B: "[bb3,e4,ab4,db5]@11 ~",
  C: "~@3 [c4,e4,g4,b4] ~@3 [c4,e4,g4,b4] ~@7 [c4,e4,g4,b4] ~@3 [c4,e4,g4,b4] ~@4", // Cmaj7
  D: "[d4,gb4,a4,db5] ~@2 [d4,gb4,a4,db5] ~@2 [d4,gb4,a4,db5] ~@2 [e4,g4,b4,d5]@14 ~", // Dmaj7 Em7
  E: "[d4,d5]@3 [d4,d5]!2 ~@2 [d4,d5] ~ [d4,d5]!2 ~ [d4,d5] ~@2 [f4,f5] ~@2 [d4,d5] [d4,d5]@2 [bb3,bb4] ~@2", // D F D Bb
  F: "d5!2 ~ [d4,d5]!2 ~@2 [d4,d5] ~ [bb3,bb4]!2 ~ [bb3,bb4] ~@2 [f4,f5]@3 [d4,d5] [d4,d5]@2 [bb3,bb4] ~@2, d4 ~@7", // D Bb F D Bb
  G: "d5!2 ~ [d4,d5]!2 ~@2 [d4,d5] ~ [bb3,bb4]!2 ~ [bb3,bb4] ~@2 [g3,g4]@3 [f3,f4] [f3,f4]@2 [d3,d4] ~@2, d4 ~@7", // D Bb G F D
  H: "d4 ~@7", I: "~@21 e2 ~@2", J: "~@12 e2 ~@11",
  K: "[~@17 [bb4,db5]@4 [f4,ab4]@2 [ab4,c5]@2 ab4@10 ~@13, ~@25 c5@8 ~@15]/2", // Bbm Fm Ab
  L: "[~@13 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ ab4@10 ~@16, ~@9 [f4,ab4] ~ c5@4 ~@9]/2", // Bbm Ab Fm
  M: "~@6 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ [ab4,c5]@9, ~@11 [f4,ab4]@2 ~@11", // Bbm Ab Fm
  N: "~@3 [bb4,db5]@4 [f4,ab4]@2 [ab4,c5]@2 ab4@10 ~@3, ~@11 c5@8 ~@5", O: "~@7 [bb4,db5]@13 ~@4",
  P: "[bb4,db5]@4 ~ [ab4,c5]@2 ~ ab4@10 ~@6, ~@2 [f4,ab4] ~ c5@4 ~@4", // Bbm Ab Fm
  Q: "[bb4,db5]@14 ~@3 [bb4,db5]@4 ~ [ab4,c5]@2, ~@21 [f4,ab4]@2 ~", R: "~ ab4@10 ~@13, ~ c5@8 ~@15",
  S: "[~@23 [bb4,db5]@4 ~ [ab4,c5]@2 ~ ab4@10 ~@7, ~@27 [f4,ab4]@2 ~@2 c5@8 ~@9]/2", // Bbm Ab Fm
  T: "[~@19 [bb4,db5]@4 [f4,ab4]@2 [ab4,c5]@2 ~ c5@8 bb4@3 eb5@2 ~@7, ~@14 ab4@5 ~@5]/2", // Bbm Fm Ab
  U: "[~@12 [bb4,db5]@4 [f4,ab4]@2 [ab4,c5]@2 ~ ab4@10 ~@17, ~@21 c5@8 ~@19]/2", // Bbm Fm Ab
  V: "~@5 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ ab4@10, ~@5 [f4,ab4] ~ c5@4 ~", // Bbm Ab Fm
  W: "[~@22 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ ab4@10 ~@7, ~@27 [f4,ab4]@2 ~@2 c5@8 ~@9]/2", // Bbm Ab Fm
  X: "~@15 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~, ~@10 [f4,ab4] ~", Y: "ab4@5 ~@7, c5 ~@2",
  Z: "[~@8 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ ab4@10 ~@21, ~@13 [f4,ab4]@2 ~@2 c5@8 ~@23]/2", // Bbm Ab Fm
  AA: "~ [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ ab4@10 ~@4, ~@3 [f4,ab4] ~ c5@4 ~@3", // Bbm Ab Fm
  AB: "[~@18 [bb4,db5]@4 ~@2 [ab4,c5]@2 ~ ab4@10 ~@11, ~@23 [f4,ab4]@2 ~@2 c5@8 ~@13]/2", // Bbm Ab Fm
  AC: "[~@12 [bb4,db5]@4 ~ [ab4,c5]@2 ~ ab4@10 ~@18, ~@8 [f4,ab4] ~ c5@4 ~@10]/2", // Bbm Ab Fm
  AD: "~@5 [bb4,db5]@4 ~ [ab4,c5]@2 ~ ab4@10 ~, ~@9 [f4,ab4]@2 ~@2 c5@8 ~@3", // Bbm Ab Fm
})).s("gm_electric_guitar_clean").gain(0.04).pan(0.6)

// chords · brass section · "#Brass 2"
const brass_section = note(`<
  ~@8 A ~ A ~@2 B C B C ~@25 D E ~@2 D E ~@9 F G ~@35 H ~@3 I@2 ~@2 J K ~@15 L ~@8 M@3 ~@28 N ~@14 O P Q ~@5 R@2 ~@5 S
  T@2 ~@6
>`.pickRestart({
  A: "~@6 [db5,db6] ~", B: "~@3 [db5,gb5]!2 ~ [db5,gb5] [db5,gb5]@4 ~ [db5,gb5]!2 ~ [db5,gb5] [db5,gb5]@4 ~@4",
  C: "[db5,gb5] ~@2 [db5,gb5] ~@2 [db5,gb5] ~@2 [db5,gb5] gb5@2 ~@12, ~@10 db5 ~@13", D: "~@18 e5 gb5 ~ g5 a5 ~",
  E: "b5 ~@23", F: "e5 ~@2 e5 ~@2 e5 ~@2 e5 ~@2 e5 ~@2 e5 ~@2 e5 ~@2 e5 ~@2",
  G: "b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5@4 ~@8", H: "~@14 [eb5,eb6]@3 ~@3 [eb5,eb6]@3 ~",
  I: "[~@17 [eb5,eb6]@3 ~@3 [eb5,eb6]@3 ~@22]/2", J: "~@19 [eb5,eb6]@3 ~@2", K: "~ [eb5,eb6]@3 ~@20",
  L: "~@2 [eb5,eb6] ~ [eb5,eb6] ~@3", // Eb
  M: "[~@12 [eb5,gb5]@3 ~@2 [db5,f5]@3 ~@3 [c5,eb5]@3 ~@2 [bb4,db5]@3 ~@3 [ab4,c5]@3 [bb4,db5] ~@2 [c5,eb5] ~ [eb4,ab4]@11 ~@19]/3", // Ebm Db Cm Bbm Ab Bbm Cm Ab5
  N: "~@13 [ab4,ab5] ~@2 [ab4,ab5] ~@2 [ab4,ab5] ~@4", O: "~@7 [eb5,gb5]",
  P: "~@2 [db5,f5]@3 ~@3 [c5,eb5]@3 ~@2 [bb4,db5]@3 ~@3 [ab4,c5]@3 [bb4,db5] ~", Q: "[c5,eb5] ~@2 [eb4,ab4]@11 ~@10",
  R: "[~@7 [eb5,gb5]@3 ~@2 [db5,f5]@3 ~@3 [c5,eb5]@3 ~@2 [bb4,db5]@3 ~@3 [ab4,c5]@3 [bb4,db5] ~@2 [c5,eb5] ~ [eb4,ab4]@11]/2", // Ebm Db Cm Bbm Ab Bbm Cm Ab5
  S: "~@17 [eb5,gb5]@3 ~@2 [db5,f5]@2", // Ebm Db
  T: "[~@4 [c5,eb5]@3 ~@2 [bb4,db5]@3 ~@3 [ab4,c5]@3 [bb4,db5] ~@2 [c5,eb5] ~ [eb4,ab4]@11 ~@14]/2", // Cm Bbm Ab Bbm Cm Ab5
})).s("gm_brass_section").gain(0.35)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@58 B@33 C D E F G H I J K L M N O P Q R S T B U D V F G H W J X Y Z AA AB AC AD AE AF AG AH AI K AJ AK AL AM AN AO
  J AE AF AM AH AI AD AE AK AG AH AN AO AJ AK AF AM AN M AD AE AF AP AH AI K AJ AK AG AQ AN AO AJ AE AF AM AR AI AD AE
  AK AG AH AS AO AJ AK D AM AN AO AD AE AF AP AH AI AD AJ ~
>`.pickRestart({
// … 127 more lines

More by Kool & The Gang