Strudelify

Born Under a Bad Sign

Eric Clapton

KeyB♭ majorTempo108 bpm
0:00/0:00
// Born Under a Bad Sign — Eric Clapton
// 108 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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.

// other · alto sax
const alto_sax = note(`<
  ~@9 A@2 B C D E F@2 G H I J K@2 B C L M N@2 O P Q@2 K@2 R S D T U@2 ~@24 V W X Y@3 Z AA D AB AC AD@3 ~ AE@2 ~@2 AF@2
  AG@2 ~@8
>`.pickRestart({
  A: "[~@2 ab4@2 bb4 ~ bb4 db5@3 bb4@8 ~@14]/2", B: "~@2 eb5@2 db5 ~ e5 [db5,eb5] bb4@5 ~ bb4 ~",
  C: "db5 ~ db5 db5@3 bb4 ~ bb4 ab4 f4@6", D: "~@2 f4!2 ab4@2 f4 ab4@3 f4@6",
  E: "~@2 ab4@2 bb4!2 db5@3 f5@3 eb5@2 db5@2", F: "[eb5 bb4@23 ~@8, ~ db5 ~@30]/2", G: "~@4 ab4 bb4@3 db5@4 ~@4",
  H: "~ f4 ab4 ~ bb4@2 bb4!2 ~@8", I: "~@4 ab4 bb4@3 eb5 db5@4 ~@3", J: "~ ab4 bb4 ~ bb4 ~ bb4 ~ eb4 db4@3 ~@4",
  K: "[~@2 ab4@2 bb4@2 ab4 db5@5 bb4@8 ~@12]/2", L: "~@2 f4!2 ab4@2 f4 ab4@3 f4@5 ~",
  M: "~@2 ab4@2 bb4 ab4 db5@2 ~@2 f5@2 eb5@2 db5@2", N: "[eb5 db5 bb4@22 ~@8]/2",
  O: "~@2 ab4 ~ ab4 ~ ab4 ab4@3 bb4 ~@5", P: "~@2 ab4@2 bb4 ~ bb4 ab4 db5@5 ~@3",
  Q: "[~@2 ab4@2 bb4 ~ bb4@3 ~ bb4 ~ bb4@2 ~@4 eb5@4 db5@2 [e5,f5] [db5,eb5] bb4@6, ~@7 bb5@4 ~@5]/2", // Fmaj7 Dbsus2
  R: "~@2 eb5@2 f5@2 db5 bb4@6 ~ bb4@2", S: "c5@3 f5 c5@4 bb4 ab4 f4@6",
  T: "~@2 ab4@2 bb4 ab4 db5@2 ~ f5@3 f5 ~ f5@2, ~@9 e5 ~@6", U: "[e5 [db5,eb5] bb4@26 ~@4]/2",
  V: "~@4 ab4 ~ ab4 ~ ab4 bb4@7", W: "~@2 ab4@2 bb4 ab4 db5@6 ~@4",
  X: "~@2 ab4@2 bb4 bb4@2 ~ bb4 ab4 bb4 ab4 bb4 ab4 bb4 ~",
  Y: "[~@4 eb5@2 db5@2 e5 [db5,eb5] bb4@8 ab4@2 bb4 ab4 db5@6 bb4@8 ~@12, bb5 ~@7]/3", // Dbsus2
  Z: "~@2 eb5 ~ db5 ~ e5 [db5,eb5] bb4@5 ~ bb4 ~", AA: "db5 ~ db5 db5@2 ~ db5@2 bb4 ab4 f4@6",
  AB: "~@2 ab4@2 bb4 ab4 db5@2 ~ f5@3 eb5 bb4@3, ~@13 db5 ~@2", AC: "~@2 f4!2 ab4@2 f4 ab4@3 f4@3 ~@3",
  AD: "[~@4 eb5 db5 eb5@3 ~ f5@2 eb5 f5 f5@2 eb5 bb4@17 ~@14, bb5@17 ~@7, ~@10 eb5 ~@3 eb5 ~@2 db5 ~@30]/3",
  AE: "[~@8 eb5@4 db5 bb4 db5@4 bb4@10 ~@4]/2", AF: "[~@12 f5 eb5 ~ eb5@3 f5 ~@13, ~@15 db5 ~@16]/2",
  AG: "[~@12 ab5 f5 ~ eb5@2 db5 bb4@10 ~@4]/2",
})).s("gm_alto_sax").gain(0.32)

// chords · rock organ · "ELEC ORGAN"
const rock_organ = note(`<
  ~ A@2 B@2 C@2 D@2 E F G H I J K L M N O P Q R S T U J V@2 W X Y Z AA AB AC AD AE J AF@2 AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT@2 AU@2 AV AW@2 AX AY AZ@3 BA BB BC BD BE BF BG BH BI BJ BK BL@4 BM BN BO BP BQ BR BS BT BU BV BW BX ~@3
>`.pickRestart({
  A: "[[bb4,f5,ab5,bb5]@24 [bb4,f5,ab5,bb5]@3 ~ [bb4,eb5,g5,bb5]@4]/2", B: "[db5 d5@27 ~@4, [ab4,f5,bb5]@7 ~]/2",
  C: "[[bb5,f6,ab6,bb6]@23 ~ [bb5,f6,ab6,bb6]@3 ~ [bb5,eb6,bb6]@4, ~@14 g6 ~]/2", // Bb7 Eb5
  D: "[[ab5,d6,f6,bb6]@7 ~, db6 ~@31]/2", E: "[ab4,d5,f5]@9 ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~",
  F: "db5 d5@5 ~@2 [bb4,f5,ab5]@2 [bb4,f5,ab5] ~ [bb4,eb5,g5]@3 ~, [ab4,f5]@3 ~@5", // Bb7 Eb Db
  G: "[ab4,d5,f5]@9 ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, db5 ~@15", // Ddim Eb
  H: "[ab4,d5,f5]@7 ~@3 [db5,f5,g5,bb5] ~@2 [d5,gb5,ab5,b5]@3, db5 ~@15", // Ddim Gm7b5 Abm7b5
  I: "[eb5,g5,a5,c6]@6 [eb5,g5,ab5,a5,c6] ~@3 [eb5,g5,a5,c6] ~@2 [d5,gb5,ab5,b5]@3", // Am7b5 Abmaj7 Am7b5 Abm7b5
  J: "[db5,f5,g5,bb5]@6 [db5,f5,g5,bb5] ~@9", K: "[bb5,f6,ab6,bb6]",
  L: "[bb5,f6,ab6,bb6]@4 [bb5,f6,ab6,bb6]@4 [bb5,f6,bb6] ~ [bb5,f6,ab6,bb6] ~ [bb5,eb6,g6,bb6]@2 ~@2, ~@4 ab6 ~@3", // Bb7 Bb5 Bb7 Eb
  M: "db5 d5@9 ~@2 [bb4,eb5,g5] ~ [eb5,g5] ~, [ab4,f5]@11 ~@3 bb4@2", // Eb Db
  N: "db5 d5@8 ~ [bb4,e5,ab5,bb5] ~@2 [bb4,eb5,g5,bb5]@2 ~, [ab4,f5]@9 ~@7", // Bbm7b5 Eb Db
  O: "db5 d5@9 [bb4,eb5,g5] ~@2 [bb4,eb5,g5]@3, [ab4,f5,bb5]@9 ~@7", // Eb Bb7
  P: "db5 d5@5 ~@2 [bb4,f5,ab5]@2 [bb4,f5,ab5] ~ [eb5,g5]@2 ~@2, [ab4,f5]@3 ~@3 bb4@2", // Bb7 Eb Db
  Q: "[ab4,d5,f5]@9 ~ [bb4,eb5,g5] ~@3 [eb5,g5] ~, db5 ~@13 bb4@2", // Ddim Eb
  R: "[ab4,f5]@7 ~ [bb4,f5,ab5]@2 [bb4,f5,ab5] ~ [bb4,eb5,g5]@3 ~, d5@5 ~@11, [db5,gb5] ~@15", // Db Bb7 Eb Gb5
  S: "[d5,f5]@8 ~@2 [bb4,eb5,g5] ~@3 [eb5,f5,g5] ~, ab4@5 ~@2 bb4", // Dm Eb
  T: "[ab4,d5,f5]@5 ~ [ab4,c5,d5,f5] ~@3 [db5,g5,bb5] ~@2 [ab5,b5] ~@2, ~@13 d5@2 ~", // Ddim Dm7b5 Gdim Abm
  U: "[eb5,g5,a5,c6]@5 ~ [eb5,g5,a5,c6] ~@3 [eb5,g5,a5,c6] ~@2 [d5,gb5,ab5,b5]@3", // Am7b5 Abm7b5
  V: "[[bb5,f6,ab6,bb6]@24 [bb5,f6,ab6,bb6]@3 ~ [bb5,eb6,g6,bb6]@3 ~]/2", // Bb7 Eb
  W: "[ab5,d6,f6,bb6]@4 ~@6 [bb4,eb5,g5] ~@3 [eb5,g5] ~, db6 ~@13 bb4@2", // Bb7 Eb
  X: "db5 d5@7 ~@2 [bb4,eb5,g5] ~@3 [bb4,eb5]@2, [ab4,f5]@8 ~@6 g5 ~", // Eb Eb5 Db
  Y: "[ab4,d5,f5]@8 ~@2 [bb4,f5,ab5] ~@3 [eb5,g5] ~, db5 ~@13 bb4@2", // Ddim Bb7 Eb
  Z: "[db5,e5] d5@6 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@2 [bb4,eb5,g5]@3, [ab4,f5]@7 ~@9", // Dbm Eb Db
  AA: "db5 d5@7 ~@2 [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, [ab4,f5] ~", // Eb Db
  AB: "[ab4,d5,f5]@6 ~@2 [ab5,bb5]@2 [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, ~@8 [bb4,f5] ~@3 g5@2 ~@2", // Ddim Absus2 Bb7 Eb5 Bb5
  AC: "db5 d5@8 ~ [bb4,eb5,g5] ~@3 [eb5,g5] ~, [ab4,f5,bb5]@9 ~@5 bb4@2", // Eb Bb7
  AD: "[db5,e5] d5@5 [ab4,c5,d5,f5] ~@3 [db5,f5,g5,bb5] ~@2 [d5,gb5,ab5,b5]@2 ~, [ab4,f5]@3 ~@5", // Dbm Dm7b5 Gm7b5 Abm7b5 Db
  AE: "[eb5,g5,a5,c6]@5 ~ [eb5,g5,ab5,a5,c6] ~@3 [eb5,g5,a5,c6] ~@2 [d5,gb5,ab5,b5]@2 ~", // Am7b5 Abmaj7 Am7b5 Abm7b5
  AF: "[[bb5,f6,ab6,bb6]@23 ~ [bb5,f6,ab6,bb6]@4 [bb5,eb6,bb6]@4, ~@14 g6 ~]/2", // Bb7 Eb5
  AG: "db6 d6 ~@2 [ab4,c5,d5,f5]@5 ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, [ab5,f6,bb6] ~@7", // Dm7b5 Eb Bb7
  AH: "db5 d5@5 ~@2 [bb4,ab5,bb5] ~ [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, [ab4,f5]@3 ~ f5 ~ g5 ~", // Bb7 Eb5 Db
  AI: "[ab4,db5,bb5] d5 ~@4 [ab4,c5,d5,f5]@3 ~ [bb4,eb5,g5] ~@3 [eb5,g5] ~, f5 ~@6 bb4", // Bbm7 Dm7b5 Eb
  AJ: "[ab4,d5,f5]@6 ~@2 [bb4,f5,ab5,bb5] ~ [bb4,f5,ab5,bb5] ~ [bb4,f5,ab5,bb5] [bb4,eb5,g5,bb5]@3, db5 ~@15", // Ddim Bb7 Eb
  AK: "[ab4,db5,d5,f5] ~@3 [ab4,c5,d5,f5]@5 ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, ~@4 e5 ~@11", // Db Dm7b5 Eb
  AL: "[ab4,d5,f5]@4 [ab4,d5,f5]@2 ~@2 [bb4,f5,ab5] ~ [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, ~@4 bb5 ~ g5 ~", // Ddim Bb7 Eb5
  AM: "[ab4,d5,f5] ~@5 [ab4,d5,f5]@3 ~ [bb4,eb5,g5] ~@2 [bb4,eb5,g5]@2 ~", // Ddim Eb
  AN: "[ab4,d5,f5]@6 [ab4,c5,d5,f5] ~@3 [db5,f5,g5,bb5]@3 [d5,gb5,ab5,b5] ~@2", // Ddim Dm7b5 Gm7b5 Abm7b5
  AO: "[eb5,g5,a5,c6]@10 [eb5,g5,a5,c6]@3 [d5,gb5,ab5,b5]@2 ~", AP: "[db5,f5,g5,bb5]@7 ~", AQ: "[bb4,f5,ab5,bb5]!2",
  AR: "[bb4,f5,ab5,bb5]!3 ~", AS: "[c5,db5] [c5,d5] f5!2 [c5,db5] [c5,d5] f5 ~ [f5,gb5] g5@3 g5 bb5!2 ~",
  AT: "[c6 ~ eb6 ~ [db6,d6] [d6,f6] [f5,bb5] eb5 ~ d5@3 [f5,gb5] g5 f5@6 f5 g5 bb5 ~ bb5!2 g5 ~ bb5!2 g5 f5]/2", // Dmaj7 Dm Bb5 Gbmaj7
  AU: "[bb5!2 g5 ~ bb5!2 g5 f5 [bb5,b5] c6@3 bb5 c6 bb5@4 ~@6 [db5,d5] ~ eb5 e5 f5 db5 d5 ~]/2", // Bmaj7 Dmaj7
  AV: "~@4 [eb5,gb5,g5,ab5] f5 [f5,ab5]!5 ab5 [f5,ab5]!4", // Ab7 Fm
  AW: "[[f5,ab5]!3 f5 [f5,ab5] ab5 [eb5,g5] ~ [db5,f5] d5 ~@2 db5 d5 ~ db5 d5@2 [c5,eb5] ~ [bb4,d5]@3 [bb4,d5]@5 ~@3 f5, ~@12 f5@2 ~ f5@3 ~@14]/2", // Fm Eb Db Cm Bb
  AX: "ab5 a5 [bb5,f6] [b5,f6] [c6,f6] f5 [bb5,d6] f5 ab5 a5 f5 ~ f5@3 ~, f6@2 ~@6 c6@7 ~", // Bb5 Bdim F5 Bb
  AY: "[db5,f5,g5,c6] ~ [db5,f5,g5,c6] ~ [db5,c6] bb5 ~@2 [f5,g5]@2 [f5,g5]@2 [db5,f5,bb5] ~@3, ~@4 [f5,g5]@2 ~@2 [db5,c6] ~ [db5,c6] ~@5", // Dbmaj7 Fsus2 Bbm Fsus2 Dbmaj7
  AZ: "[[bb5,f6,ab6,bb6]@24 [bb5,f6,ab6,bb6]@4 [bb5,eb6,g6]@3 ~ db6 d6@2 ~@3 [ab4,c5,d5,f5] ~@3 [bb4,eb5,g5] ~@3 [bb4,eb5]@2, ~@14 bb6@3 ~@7, ~@32 [ab5,f6]@3 ~@11 g5 ~]/3", // Bb7 Eb Dm7b5 Eb Eb5 Db
  BA: "[ab4,c5,d5,f5]@6 ~@2 [bb4,f5,ab5,bb5]@2 [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, ~@6 g5 ~", // Dm7b5 Bb7 Eb5
  BB: "[db5,f5] d5 ~@2 [ab4,c5,d5,f5]@5 ~ [bb4,eb5,g5] ~@3 [eb5,g5] ~, ab4 ~@6 bb4", // Db Dm7b5 Eb
  BC: "db5 d5@5 ~@2 [bb4,f5,ab5,bb5]@2 [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, [ab4,f5]@3 ~@3 g5 ~", // Bb7 Eb5 Db
  BD: "[ab4,d5,f5,bb5] ~@3 [ab4,c5,d5,f5]@5 ~ [bb4,eb5,g5] ~@3 [eb5,g5] ~, ~@7 bb4", // Bb7 Dm7b5 Eb
  BE: "db5 d5@5 ~@2 [bb4,f5,ab5]@2 [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, [ab4,f5]@6 ~@2 bb5 ~@3 g5@2 ~@2", // Bb7 Eb5 Db
  BF: "[ab4,d5,f5,bb5] ~@3 [ab4,c5,d5,f5]@5 ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~", // Bb7 Dm7b5 Eb
  BG: "db5 d5@7 ~@2 [db5,f5,g5,bb5]@3 [d5,ab5,b5] ~@2, [ab4,f5]@8 ~@5 gb5@2 ~", // Gm7b5 Abdim Db
  BH: "[eb5,g5,a5,c6]@6 [eb5,g5,ab5,a5,c6] ~@3 [eb5,g5,a5,c6]@3 [d5,gb5,ab5,b5]@2 ~", // Am7b5 Abmaj7 Am7b5 Abm7b5
  BI: "[db5,f5,g5,bb5]@5 ~ [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5]@3 [d5,gb5,ab5,b5]@2 ~", // Gm7b5 Abm7b5
  BJ: "[eb5,g5,a5,c6]@5 ~ [eb5,g5,a5,c6] ~@3 [eb5,g5,a5,c6]@3 [d5,gb5,ab5,b5]@2 ~", BK: "[db5,f5,g5,bb5] ~@15",
  BL: "[[bb5,f6,bb6]@24 [bb5,f6,bb6]@4 [eb6,g6]@4 [f6,ab6]@18 [bb5,f6,ab6,bb6] ~@5 [bb5,f6,ab6,bb6] ~ [bb5,f6,ab6,bb6] ~ [bb5,eb6,g6,bb6]@3 ~, ab6@27 ~ [bb5,bb6]@21 ~@15]/4", // Bb5 Eb Fm Bb7 Eb Bb
  BM: "[ab4,c5,d5,f5]@9 ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, [b4,db5,e5] ~@15", // Dm7b5 Eb Dbm7
  BN: "[ab4,d5,f5]@7 ~ [f5,ab5,bb5] ~ [bb4,f5,ab5] ~ [bb4,eb5,bb5]@4, db5 ~@7 bb4@2 bb5@2 g5@2 ~@2", // Ddim Bb7 Eb5
  BO: "[ab4,bb5]@8 [bb4,eb5,g5,bb5] ~@3 [bb4,eb5,bb5]@4, [d5,f5]@3 ~@3 g5 ~", // Absus2 Eb Eb5 Dm
  BP: "[ab4,d5,f5,bb5]@6 ~@2 [bb4,f5,ab5,bb5] ~ [bb4,f5,ab5,bb5] ~ [bb4,eb5,g5,bb5]@3 ~", // Bb7 Eb
  BQ: "db5 d5@5 ~@2 [bb4,eb5,g5,bb5] ~@3 [bb4,eb5,g5,bb5]@3 ~, [ab4,f5,bb5]@7 ~@9", // Eb Bb7
  BR: "[ab4,d5,f5,bb5]@6 ~@2 [bb4,f5,ab5,bb5] ~ [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, db5 ~@11 g5@2 ~@2", // Bb7 Eb5
  BS: "[ab4,d5,f5,bb5]@7 ~ [bb4,eb5,g5,bb5] ~@3 [bb4,eb5,g5,bb5]@3 ~, db5 ~@15", // Bb7 Eb
  BT: "db5 d5@5 ~@2 [bb4,f5,ab5,bb5] ~ [bb4,f5,ab5,bb5] ~ [bb4,eb5,g5,bb5]@3 ~, [ab4,f5,bb5]@3 ~@5", // Bb7 Eb Bb7
  BU: "[ab4,d5,f5,bb5]@7 ~ [bb4,g5,bb5]@2 ~@2 [bb4,eb5,g5,bb5]@3 ~, db5 ~@7 eb5 ~@7", // Bb7 Eb
  BV: "[ab4,d5,f5,bb5]@7 ~ [bb4,f5,ab5,bb5] ~ [bb4,f5,ab5,bb5] ~ [bb4,eb5,bb5]@4, ~@6 g5 ~", // Bb7 Eb5
  BW: "[ab4,d5,f5,bb5]@7 ~ [bb4,eb5,g5,bb5]@2 ~@2 [bb4,bb5]@4, ~@6 [eb5,g5] ~", BX: "[ab4,d5,f5,bb5] ~, db5 ~@15",
})).s("gm_rock_organ").gain(0.24).pan(0.3)

// chords · brass section · "Brass"
const brass_section = note(`<
  ~ A@2 B@2 C@4 ~@15 D E F G@2 H I H I H I H I J F K@2 ~@7 D J F G@2 L M L M L M L N J F K@2 H I H I H I H D O P E Q R@2
  ~@2 S T S U V T V U W ~@6
>`.pickRestart({
  A: "[[bb2,bb3]@23 ~ [ab2,ab3] [g2,g3] ~@2 [f2,f3] [g2,g3] ~@2]/2", B: "[[bb1,bb2]@7 ~]/2",
  C: "[[bb2,bb3]@20 [ab2,ab3,ab4] [g2,g3,g4] ~@2 [ab2,ab3,ab4] [g2,g3,g4] ~@2 [f2,f3,f4] [g2,g3,g4] ~ [bb1,bb2,bb3]@29 [ab3,c4,f4,bb4]!2 ~@2, bb4@9 ~@23]/4", // Bb Ab G Ab G F G Bb …
  D: "~@10 [db3,g3,bb3]@3 [d3,ab3,b3]@3", E: "[eb3,a3,c4]@2 ~ [eb3,a3,c4] ~@6 [eb3,a3,c4]@3 [d3,ab3,b3]@2 ~",
  F: "[db3,g3,bb3]@3 [db3,g3,bb3] ~@12", G: "[[bb2,bb3,bb4]@26 [ab3,c4,f4,bb4] ~@5]/2",
  H: "~@4 [ab3,d4,f4]@3 [g3,db4,e4] [ab3,d4,f4] ~@7", // Ddim Dbdim Ddim
  I: "~@4 [ab3,d4,f4]@3 [g3,db4,e4] [ab3,d4,f4] [g3,db4,e4] [ab3,d4,f4] ~@5", // Ddim Dbdim Ddim Dbdim Ddim
  J: "[eb3,a3,c4]@3 [eb3,a3,c4] ~@6 [eb3,a3,c4]@3 [d3,ab3,b3]@2 ~", // Adim Abdim
  K: "[[bb2,bb3,bb4]@26 [ab3,c4,f4,bb4] ~ [ab3,c4,f4,bb4]!2 ~@2]/2", L: "~@2 [ab3,d4,f4] ~@3 [ab3,d4,f4] ~@9",
  M: "~@2 [ab3,d4,f4] ~@3 [ab3,d4,f4] ~@3 [ab3,d4,f4] [g3,db4,e4] [ab3,d4,f4] ~@2 [c4,f4,ab4]", // Ddim Dbdim Ddim Fm
  N: "~@2 [ab3,d4,f4] ~@3 [ab3,d4,f4] ~@3 [db3,g3,bb3]@3 [d3,ab3,b3]@2 ~", // Ddim Gdim Abdim
  O: "[eb3,a3,c4]@3 [eb3,a3,c4] ~@6 [eb3,a3,c4]@2 ~ [d3,ab3,b3]@2 ~", // Adim Abdim
  P: "[db3,g3,bb3]@2 ~ [db3,g3,bb3] ~@6 [db3,g3,bb3]@2 ~ [d3,ab3,b3]@2 ~", Q: "[db3,bb3] ~@7, g3 ~@15",
  R: "[[bb2,bb3,bb4]@13 ~@3]/2", S: "~@2 [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~@7",
  T: "~@2 [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] [g3,db4,e4] [ab3,d4,f4] [c4,f4,ab4] ~@2", // Ddim Dbdim Ddim Fm
  U: "~@2 [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] [g3,db4,e4] [ab3,d4,f4] ~@2 [c4,f4,ab4]", // Ddim Dbdim Ddim Fm
  V: "~@2 [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~ [ab3,d4,f4] ~@3 [bb2,bb3,bb4]@2 ~@2", W: "~@2 ab3 ~@13",
})).s("gm_brass_section").gain(0.38).pan(0.8)

// bass · electric bass finger · "E. BASS"
const bass = note(`<
  ~ A B A B A B A B A B A C D E A F G F G A B A B C H I A F G F G A B A B C H J A B A B A B K@8 ~@43
>`.pickRestart({
  A: "bb2@3 eb2 f2 ab2 bb2 db3", B: "bb2@3 eb2 f2 ab2 db3@2", C: "bb2@6 db3 ~@3 eb2@3 e2@3",
  D: "f2@5 ~ f2 ~@3 f2@3 e2@2 ~", E: "eb2@3 db3 eb3 f3 db3@2", F: "bb2@6 eb2@2 f2@2 ab2 ~@3 ab2@2",
  G: "bb2@6 eb2@2 f2@2 ab2 ~@2 f2 ab2@2", H: "f2@6 f2 ~@3 f2@3 e2@2 ~", I: "eb2@5 ~ db3@2 eb3@2 f3@2 db3@4",
  J: "eb2@5 ~ db3@2 eb3@2 f3@2 db3@3 ~", K: "[bb2@3 eb2 eb8@60]/8",
})).s("gm_electric_bass_finger").gain(0.37)

// other · overdriven guitar · "SOLO Guitar"
const overdriven_guitar = note("<~@41 A B@2 C@4 D ~@3 E ~@43>".pickRestart({
  A: "~@4 f5 g5 bb5 f5 c6@3 ~@5", B: "[~ f5 g5 bb5 c6@9 bb5 g5 bb5@3 c6@3 ~@11]/2",
  C: "[~ bb6@2 ~ ab6@3 bb6@3 ab6@3 bb6@5 [f6,gb6,g6] ~ f6@39 ~ gb6 g6 ~@2]/4",
  D: "[c6,db6] d6 f5!2 g5@2 bb5 ~ c6@5 bb5 g5 ~", E: "~@5 bb5 g5@2 bb5@2 c6@4 ~@2",
})).s("gm_overdriven_guitar").gain(0.38)

// other · baritone sax · "BARI SAX"
const baritone_sax = note(`<
  ~ A@2 B@2 C@4 ~@18 D@2 E@3 F@5 ~@2 G@2 ~@10 H@2 F I ~ I ~ I ~ F ~@2 G@2 J E@2 F@5 ~@4 K@2 ~@2 F@3 I ~ F@2 I ~ F@2 L
  M@3
>`.pickRestart({
  A: "[bb2@23 ~ ab2 g2 ~@2 f2 g2 ~@2]/2", B: "[bb2@7 ~]/2",
  C: "[bb2@20 ab2 g2 ~@2 ab2 g2 ~@2 f2 g2 ~ bb2@28 ~ bb2!2 ~@2]/4", D: "[bb2@26 bb2 ~@3 ab2@2]/2", E: "bb2 ~@13 ab2@2",
  F: "bb2 ~@15", G: "[bb2@25 ~ bb2 ~ bb2!2 ~@2]/2", H: "[bb2@25 ~ bb2 ~@5]/2", I: "bb2 ~@14 bb2", J: "~@7 ab2",
  K: "[bb2@13 ~@3]/2", L: "bb2 ~@5 eb2@2 f2@2 ab2@2 bb2@2 db3@2", M: "[bb2@19 ~@5]/3",
})).s("gm_baritone_sax").gain(0.47)

// drums · kick
const kick = s("bd").struct(`<
  A B C D B@2 C D B D C D E@2 B D C D@4 C D C E@2 B D B D@4 C D C E@2 B D F B C D C D C D E@2 B D B@2 G H G H G H E@2 B
  D B D@4 C D C E@4 I B C D J B C D G H C D K H C D@2 L ~ M
>`.pickRestart({
  A: "~@13 x ~@2", B: "x ~@2 x!2 ~@3", C: "x ~@2 x!3 ~@2", D: "x ~@2 x!3 ~ x", E: "x ~@5 x ~@3 x ~@2 x ~@2",
  F: "x ~@5 x ~ x ~@4 x ~@2", G: "x ~@5 x ~ x ~ x ~@4 x", H: "~@3 x!3 ~ x", I: "x ~@10 x ~ x ~@2", J: "x!2",
  K: "x ~@5 x ~@8 x", L: "x", M: "~@3 x ~@4",
})).gain(0.34)

// drums · snare
const snare = s("sd").struct("<A B@3 C B@3 D B@19 C B@11 E B@11 F B@11 D B@11 G B@3 H B@7 I B@4 ~@2 J>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x ~ x!2", D: "~@4 x ~@3 x ~ x ~ x!2 ~@2", E: "~@2 x ~ x!3 ~",
  F: "~@2 x ~@2 x!3", G: "x ~@2 x", H: "~@2 x ~@9 x ~ x!2", I: "~@4 x ~@3 x ~@3 x!2 ~@2", J: "~@3 x ~ x ~@10",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<A B C@3 B C@3 D@7 E D@24 B C@11 B C@11 D@11 F B C@3 B C@10 G ~@3>".pickRestart({
  A: "x!3 ~", B: "~ x!3", C: "x!4", D: "x!8", E: "x!7 ~", F: "x", G: "x!2 ~@2",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@84 [~@15 x] ~@3 [~@15 x] ~@7>").gain(0.34)

// drums · mid tom
const mid_tom = s("mt").struct("<~@76 A ~@3 B ~@3 C ~@3 D ~@7>".pickRestart({
  A: "~@7 x!2 ~@7", B: "~@5 x ~@2", C: "~@13 x ~@2", D: "~@7 x",
})).gain(0.34)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~@7 A ~@11 A ~@11 A ~@11 A ~@11 A ~@11 A ~@3 A ~@10 B A ~@2
>`.pickRestart({
  A: "x", B: "~@3 x!3 ~ x",
})).gain(0.38)

// drums · high tom
const high_tom = s("ht").struct("<~@80 [~@3 x ~@4] ~@3 [~@7 x] ~@3 [~@10 x!2 ~@4] ~@7>").gain(0.34)

// … 9 more lines

More by Eric Clapton