Strudelify

Babylon Sisters

Steely Dan

KeyB♭ majorTempo120 bpm
0:00/0:00
// Babylon Sisters — Steely Dan
// 120 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 174 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · "Rhodes"
const epiano1 = note(`<
  ~ A B C D E@2 F G H I J K L M N O P Q R S T@3 U V@2 W X Y Z@2 AA AB AC@2 AA AD AE AF AG AH AI AJ AK AL AM AN AO AP@2
  AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH@3 AA BI@2 BJ BK BL BM@2 BN BO BP@2 AA AQ BQ BR BS BT BU BV BW BX
  BY BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS@2 CT BK CU BM@2 CV CW CX@2 CY CZ DA DB DC BT DD DE DF
  DG DH DI AO DJ@2 DK DL DM DN DO DP DQ DR DS DT@3 DU DV DW DX DY DZ EA@2 BZ AO EB EC ED EE EF@2 EG EH EB EI EJ EK@2
>`.pickRestart({
  A: "[gb2,db3]@2 ~@8 [gb2,db3]@13 ~", B: "[gb2,db3] ~@8 eb4@2 ~, ~@10 [gb2,db3]@11 ~@3, ~@18 db4 ~@5",
  C: "[b2,gb3,gb4]@2 ~@4 eb4@4 ~ db4@3 ~@4 eb4@4 ~@2, ~@5 gb3@6 ~, ~@5 b2@3 ~@4", // B5
  D: "c4 eb4 c4 bb3 ~@6 [ab2,eb3]@13 ~, [ab2,eb3]@2 ~@3 c4@18 ~", // Ab5
  E: "[[e2,b2]@2 ~@10 ab3@2 ~@2 b3@2 eb4@2 ~@4 [ab2,eb3]@6 [ab3,eb4]@2 ~@4 [b3,gb4]@6 [ab3,eb4]@3 ~@3, ~@10 [e2,b2]@10 ~@2 [b3,gb4]@7 ~@5 eb3@12 ~@2, ~@17 ab2@5 ~@2]/2", // E5 Ab5 B5 Ab5 E5 B5
  F: "[eb2,bb2,gb4] ~@9 [eb2,bb2]@8 [bb3,f4,gb4] ~@5, [bb3,f4] ~@2 [ab3,bb3,db4,eb4]@5 ~@4", // Ebm Eb5 Gbmaj7 Bb5 Absus4
  G: "eb2@2 ~@9 eb2@11 ~@2, [ab3,bb3,db4,eb4]@23 ~, bb2 ~@9 bb2@11 ~@3", // Absus4
  H: "[gb2,db3] ~@7 gb4 eb4@2 ~, ~@10 [gb2,db3]@11 ~@3", // Gb5
  I: "[b2,gb3,db4]@3 ~@2 eb4@4 ~@3 db4@3 ~@3 eb4@3 ~@3, ~@5 [b2,gb3]@6 ~", // Bsus2 B5
  J: "[c4,eb4] ~ c4 bb3 ~@6 [ab2,eb3]@12 ~@2, [ab2,eb3]@2 c4@5 ~", // Cm Ab5
  K: "~ gb4 eb4 db4 ~@6 [b2,gb3]@13 ~, [b2,gb3]@5 ~@19, eb4 ~@2 eb4@7 ~@2", // B5
  L: "[b4,e5,ab5]@3 ~ [db5,gb5,bb5] ~@5 [e2,b2]@8 ~@6, [e2,b2] ~@5", M: "[e2,b2] ~@4 [a2,db4,eb4]@6 ~, ~@5 g3@5 ~@2",
  N: "[eb2,bb2,bb3]@2 ~@9 [eb2,bb2]@7 [bb3,eb4,f4,gb4] ~@5, [f4,gb4] ~@5 [ab3,bb3,db4,eb4]@10 ~@8", // Eb5 Ebm Gbmaj7 Absus4
  O: "[eb2,bb2] ~@9 [eb2,bb2]@13 ~, [bb3,eb4]@19 ~@5, [ab3,db4]@17 ~@7", // Eb5 Db5
  P: "[e2,b2,b4,e5,ab5]@4 [db5,gb5,bb5] ~@6 b2@10 ~@3, ~@5 e2@5 ~@2", // E Gb
  Q: "[e2,b2]@2 ~@8 [a2,db4,eb4]@13 ~, ~@10 g3@11 ~@3", // E5 Ebm7b5
  R: "[eb2,bb2,f4] ~@17 [eb4,f4,gb4] ~@5, [bb3,gb4] ~@2 [ab3,bb3,db4,eb4]@5 ~ bb3 ~@2, ~@5 [eb2,bb2]@5 ~@2", // Ebsus2 Ebm Absus4 Eb5
  S: "[ab3,bb3,db4,eb4]@5 ~@5 eb3 ~, [eb2,bb2]@3 ~@7 [eb2,bb2]@14, ~@13 eb4@11, ~@16 bb3@7 ~", // Absus4 Eb5
  T: "[bb2@2 ~@8 bb2@2 f2 ~@21 bb2@2 f2@5 ~ bb2@5 ~ bb1@2 ~@22, [ab3,db4,f4]@61 ~@11]/3", U: "[bb3,eb4,g4]@19 ~@5",
  V: "[[g3,c4,db4,f4]@3 ~]/2", W: "[c4,eb4,ab4]@7 ~, bb3@19 ~@5", X: "[gb3,bb3,c4,f4]@23 ~",
  Y: "~ gb3@23, [bb3,db4,eb4]@23 ~", Z: "[[ab3,c4]@23 ~, [db4,f4]@43 ~@5]/2", AA: "[bb3,d4,eb4,g4]@23 ~",
  AB: "[c4,f4]@23 ~, a4@5 ~", AC: "[ab3,c4,db4,f4]/2", AD: "[a3,d4,eb4,g4]@23 ~", AE: "[a3,d4]@23 ~, [c4,f4]@7 ~",
  AF: "~ [c4,d4]@22 ~, ab3@23 ~", AG: "[g3,c4,d4,f4]@11 ~", AH: "[g3,c4,db4,f4]",
  AI: "[d2,a2]@2 ~@10 [g3,ab3] a3@3 c4@2 d4@2 ~@4", AJ: "[d2,a2,a3] ~@5 [d2,a2,g3,c4,f4]@15 ~@3, [c4,f4] ~@11",
  AK: "[eb2,bb2,g5]@4 [c5,f5,a5] ~@4 [eb2,bb2]@12 ~@3, [bb4,eb5] ~@7", // Eb F Eb5
  AL: "[eb2,bb2]@3 ~@6 d5 ~@2 g4 ab4 g4@2 f4 d4@4 c4@2 ~, ~@5 [eb2,bb2]@5 ~@2", // Eb5
  AM: "[d2,a2]@2 ~@10 [g3,ab3] ~@3 c4@2 d4@2 ~@4, d4@5 [d2,a2]@4 ~@3, ~@4 a3 ~@3", // D5 Abmaj7 D5
  AN: "[a2,a3,c4,f4] ~@5 [d2,a2,g3,c4,f4]@16 ~@2, d2 ~@11", // F Dm7
  AO: "[bb4,eb5,g5]@3 ~ [c5,f5,a5] ~@5 [eb2,bb2]@12 ~@2, [eb2,bb2] ~@5", // Eb F Eb5
  AP: "[[eb2,bb2]@3 ~@9 d4@4 f4@5 a3@3 [g2,g3] ~@9 c2@2 ~ g2@2 ~@9, ~@10 [eb2,bb2]@13 ~ c2@2 ~@22, ~@12 g4@8 ~ e4 ~@2 [e3,a3,bb3]@21 ~@3, ~@16 c4@3 ~@2 d4@26 ~]/2", // Eb5 G Eb5 A
  AQ: "[a3,d4,eb4,g4]@11 ~", AR: "[c4,f4,a4]@23 ~", AS: "~@6 [db4,f4]@2 ~@4 [g3,c4,db4,f4]@11 ~, ~@6 [ab3,c4] ~@17",
  AT: "[c4,f4]@2 ~@4 [g3,a3,c4,f4]@15 ~@3, [g3,a3] ~@23", AU: "[c2,e3,a3,bb3,d4] ~@5 [c2,g2,e3,a3,bb3,d4]@14 ~@4",
  AV: "[eb2,bb2,bb4,eb5,g5]@4 [f5,a5] ~@4 eb2@12 ~@3, ~@4 c5@2 ~@3 bb2@10 ~@5", AW: "[eb2,bb2]@2 ~@7 [eb2,bb2]@12 ~@3",
  AX: "[e2,b2,eb5] ~@4 [e2,b2]@5 ~@2, [gb4,b4] ~@5 [gb4,bb4,db5]@15 ~@3", // Emaj7 E5 B5 Gb
  AY: "~ f5@2 ~@3 [ab4,c5,eb5]@5 ~ [bb2,f3,f4,ab4,b4,d5]@11 ~, [gb2,db3]@5 ~@7, [ab4,db5] ~@11", // Ab Bb7 Gb5 Db5
  AZ: "[db4,gb4,bb4]@5 ~", BA: "[db4,eb4,f4,ab4]@19 ~@5", BB: "[bb3,b3,eb4,gb4]@11 ~ [a3,b3,eb4,ab4]@10 ~@2",
  BC: "[ab3,db4,gb4]@10 ~@2 [g3,db4,gb4]@11 ~", // Dbsus4 Gb
  BD: "[eb2,bb2]@2 ~@10 bb3 ~@5 eb4@5 ~, ~@5 [eb2,bb2]@5 ~@2, ~@17 db4@2 ~@5", // Eb5
  BE: "~@12 [gb3,bb3,c4,eb4,gb4]@11 ~, [bb3,db4,gb4]@5 ~@7, f4 ~@2, ~ [eb2,bb2]@23", // Cm7b5 Gb Eb5
  BF: "[a3,db4,eb4]@10 ~@2 [bb3,d4,eb4]@11 ~", BG: "[a3,db4,eb4]@10 ~@2 [ab3,eb4]@11 ~, ~@4 bb3@3 ~",
  BH: "[[ab3,c4,db4,f4]@13 ~@5, bb2 ~@11]/3", BI: "[[g3,c4,db4]@3 ~, f4@5 ~]/2", BJ: "[bb3,c4,eb4]@11 ~, ab4",
  BK: "[gb3,bb3,c4,f4]@11 ~", BL: "[gb3,eb4]@11 ~, bb3@19 ~@5", BM: "[[ab3,c4,db4,f4]@43 ~@5]/2",
  BN: "[bb3,d4,eb4,g4]@5 ~", BO: "[c4,f4,a4]@5 ~", BP: "[[ab3,c4,db4,f4]@15 ~]/2", BQ: "[a3,c4,f4]@11 ~, d4@17 ~@7",
  BR: "[ab3,c4,d4,gb4]@23 ~", BS: "[g3,bb3,d4,eb4,g4]@7 ~", BT: "[g3,c4,db4,f4]@11 ~",
  BU: "[d2,a2,g3,c4,f4] ~@10 [g3,ab3] a3@3 ~@3 d4@3 ~@3, ~@17 c4@2 ~@5", // Dm7 Abmaj7
  BV: "[d2,a2,a3,c4,f4] ~@6 d2@14 ~@3, ~@2 [a2,g3,c4,f4]@5 ~", // Dm7 F
  BW: "[bb4,eb5,g5]@3 ~ a5 [c5,f5] ~@4 [eb2,bb2]@12 ~@2, [eb2,bb2] ~@5", // Eb F5 Eb5
  BX: "[eb2,bb2]@2 ~@4 [g3,c4]@2 ~@2 a3 eb2 [c4,f4]@2 ~@2 g4@2 [c4,f4]@5 ~, ~@10 d4@2 ~@4 d4 ~@7", // Eb5 C5 F5
  BY: "[a3,d4]@11 g3 a3@3 ~@3 d4@2 ~@4, a2@2 ~@10 ab3 ~@4 c4@2 ~@5, d2 ~@10 [d2,a2]@2 ~@11", // D5
  BZ: "[d2,a2,a3,c4] ~@5 [d2,a2,g3,c4,f4]@15 ~@3, f4 ~@11", // D7 Dm7
  CA: "[bb4,eb5,g5]@3 ~ [c5,f5,a5] ~@12 c4 d4@2 ~@4, [eb2,bb2]@2 ~@3 [eb2,bb2]@5 ~@2, ~@18 db4 ~@5", // Eb F Eb5
  CB: "[eb2,bb2]@6 d4@4 [eb2,bb2]@13 ~, f4 ~@11", CC: "[c2,g2]@3 ~@7 [c2,g2]@14, [a3,bb3,d4]@11 ~, e3@5 ~",
  CD: "~ f2@2 ~@7 f2@2 ~@12, [a3,d4,eb4,g4]@11 ~", CE: "[a3,c4,d4,f4], bb2@5 ~@19",
  CF: "~@6 [ab3,c4,db4] ~@5 [g3,c4,db4,f4]@9 ~@3, ~@3 f4 ~@8", CG: "[d2,a2,g3,c4,f4] ~@5 [d2,a2,g3,c4,f4]@15 ~@3",
  CH: "[c2,g2,e3,a3,bb3,d4] ~@5 [c2,g2,e3,a3,bb3,d4]@16 ~@2", // C7
  CI: "[bb4,eb5,g5]@3 ~ [f5,a5] ~@4 [eb2,bb2]@11 ~@4, [eb2,bb2]@2 c5 ~@9", CJ: "~ [eb2,bb2]@2 ~@7 [eb2,bb2]@12 ~@2",
  CK: "[gb4,b4,eb5] [f2,c3] ~@8 [e2,b2]@11 ~@3, ~@3 [bb4,db5]@8 ~, ~@6 gb4@13 ~@5", // B F5 E5 Bbm
  CL: "[gb2,db3]@3 [ab4,c5,eb5]@2 ~ [f4,ab4,b4,d5]@6, [ab4,f5]@2 ~@10 bb2@7 ~@5, db5 ~@23", // Gb5 Ab Fdim Db
  CM: "~ eb2@12 bb2 ~@3 bb2@2 eb2@4 ~, [db4,bb4]@2 ~, gb4@13 ~@11", CN: "~ db2 ~ db2@3 ~@18, [db4,ab4]@5 ~, f4@3 ~",
  CO: "[bb3,b3,eb4,gb4]@11 ~ [a3,ab4]@10 ~@2, ~@3 eb4@2 ~", CP: "[ab3,db4,gb4]@10 ~@2 [a3,eb4,ab4]@9 ~@3",
  CQ: "[ab3,db4,f4]@23 ~", CR: "[bb3,d4,eb4,g4]@7 ~", CS: "[[g3,c4,db4,f4]@7 ~]/2", CT: "[bb3,c4,eb4,ab4]@11 ~",
  CU: "[gb3,bb3]@7 ~, eb4@19 ~@5", CV: "[bb3,d4,eb4,g4]", CW: "[c4,f4,a4]@3 ~", CX: "[[ab3,c4,db4,f4]@11 ~]/2",
  CY: "[bb3,d4,eb4,g4]@11 ~", CZ: "[a3,d4,eb4,g4]@5 ~", DA: "[a3,c4,d4,f4]@3 ~", DB: "[ab3,c4,d4,gb4]@19 ~@5",
  DC: "[g3,bb3,d4,g4]@7 ~", DD: "[d2,a2,f4]@2 ~@10 [g3,ab3] a3@3 c4@2 d4@2 ~@4, [g3,a3,c4] ~@23",
  DE: "[d2,a2,a3,c4] ~@5 [d2,a2,g3,c4,f4]@16 ~@2, f4 ~@11", // D7 Dm7
  DF: "[eb2,bb2,bb4]@4 [c5,f5,a5] ~@5 [eb2,bb2]@11 ~@3, [eb5,g5] ~@7", // Eb5 F Eb5 Eb
  DG: "[eb2,bb2,bb3,eb4,g4]@3 ~ [c4,f4,a4] ~@7 [d4,g4,c5]@3 ~ [a4,d5] ~@7, ~@10 [eb2,bb2]@5 ~ e4@2 ~@6", // Eb F Csus2 D5 Eb5
  DH: "[d2,a2] ~@11 a3@3 ~@3 d4@2 ~@4, ~@10 [d2,a2]@7 ~@7, ~@11 g3@2 ~@11, ~@12 ab3 ~@4 c4@2 ~@5", // D5
  DI: "[a2,c4,f4]@2 ~@5 d2@14 ~@3, [d2,a3] ~@5 [a2,f4]@16 ~@2, ~@3 [g3,c4]@7 ~@2", // F D5 Dm C5
  DJ: "[[eb2,bb2]@3 ~@21 [c2,g2] ~@8 c2@2 ~ g2@6 c2@6, ~@9 [eb2,bb2]@11 a4@22 ~@6, ~@2 d4@5 ~, ~@8 g4@13 ~@3, ~@4 [e4,bb4,d5]@3 ~]/2", // Eb5 C5 Eb5 Em7b5
  DK: "f2@3 ~@7 f2@2 ~@6 f2@5 ~, [a3,d4,eb4,g4]@19 ~@5, ~ c3", DL: "bb2@3 ~@7 bb2@2 f2@12, [a3,c4,d4,f4]",
  DM: "bb2@3 ~@3 [ab3,c4,db4,f4]@2 ~@4 [eb2,g3,c4,db4,f4]@10 ~@2", DN: "[d2,g3,a3,c4,f4] ~@5 [d2,g3,a3,c4,f4]@15 ~@3",
  DO: "[c2,g2,e3,f3,a3,bb3,d4] ~@5 [c2,g2,a3,bb3,d4]@16 ~@2, ~@3 e3@7 ~@2", // C7 Gm
  DP: "[eb2,bb2,bb4,eb5,g5]@2 [c5,a5] ~@2 [eb2,bb2]@6 ~, ~@4 f5 ~@19", DQ: "[eb2,bb2] ~@4 [eb2,bb2]@6 ~",
  DR: "[d2,a2]@2 ~@10 [g3,ab3] a3@3 ~ c4@2 d4@2 ~@3, ~@5 [d2,a2]@5 ~@2", // D5 Abmaj7 D5
  DS: "[d2,a2,a3] ~@5 [d2,a2,c4,f4]@15 ~@3, [c4,f4]@2 ~@4 g3@13 ~@5", // D5 Dm7 F5
  DT: "[[f2,c3,c5,g5]@4 [a5,b5] ~@13 b5@2 ~ a5 ~ g5@2 ~ f5 ~@3 [f5,a5]@3 ~@3 [eb5,g5]@3 ~ f5 eb5@2 ~@5 [d2,a2]@2 ~@11 [g3,ab3] ~@3 c4@2 d4@2 ~@3, b5@3 ~ c6@2 ~@12 g5 ~ c6@2 ~ f2@8 ~@5 [eb2,bb2]@10 ~@12 d2@10 ~@4, a5 ~@9 [f2,c3]@12 ~ c3@10 ~@26 a2@9 ~@4, ~@23 b5 ~@3 a5@2 g5@2 ~@8 a5@2 ~@5 [e5,f5,a5]@13 ~@2 a3@3 ~@8, ~@14 b5 ~@21]/3", // Fsus2 Asus2 F Eb D5 Abmaj7 Eb5 F5 …
  DU: "[d2,c4,f4] ~@2 [d2,a2,g3,c4,f4]@8 ~, [a2,a3] ~@23", // Dm7 A
  DV: "[eb2,bb2]@4 [c5,f5] ~@5 eb2@12 ~@2, [bb4,g5]@3 ~@6 bb2@11 ~@4, eb5 ~@3 a5@2 ~@18", // Eb5 F5 Eb
  DW: "[eb2,bb2]@3 ~@7 [ab2,gb3,c4,d4]@14", // Eb5 Ab7
  DX: "~ a2@2 ~@9 [g3,ab3] ~@3 c4@2 d4@2 ~@4, d2 ~@4 [d2,a2]@5 ~@2, ~@4 a3 ~@3", // Abmaj7 D5
  DY: "[d2,a2,a3,c4] ~@5 [d2,a2,g3,c4,f4]@14 ~@4, f4 ~@11", // D7 Dm7
  DZ: "[f2,c3,c5,g5,b5]@4 [a5,c6] ~@13 [g5,b5] ~ c6@2 g5@2, ~@5 [f2,c3]@6 ~, ~@20 a5 ~ b5 ~", // Fsus2 Am G F5
  EA: "[~@2 a5@2 [g5,b5] ~ [f2,f5,a5]@2 ~@3 [eb5,g5]@4 a5@2 ~ a5 ~@4 [d2,a2]@3 ~@10 [f3,ab3] ~@3 c4@2 d4@2 ~@4, c3@3 ~@9 g3 ~@3, f2@5 ~@6 [eb2,bb2]@10 ~@12 [d2,a2]@10 ~@5, ~@2 f5 ~@12 f5 ~ eb5@2 ~@2 [e5,f5,a5]@12 ~@15]/2", // G F Eb D5 Fm Eb5 D5 Fmaj7
  EB: "[eb2,bb2] ~@4 [ab2,gb3,c4,d4]@7", EC: "~ a2@2 ~@8 g3 a3@3 ~ c4@2 d4@2 ~@4, d2 ~@4 [d2,a2]@5 ~@2, ~@12 ab3 ~@11",
  ED: "[d2,a2,a3,c4,f4] ~@5 [d2,a2,g3,c4,f4]@15 ~@3", // Dm7
  EE: "[f2,c3,c5,g5]@4 [a5,b5,c6] ~@13 b5@2 c6@2 [g5,b5] ~, b5@3 ~@7 [f2,c3]@12 ~@2, ~@18 g5 ~ a5 ~@3", // Fsus2 Am G F5
  EF: "[~@2 a5@2 [g5,b5]@2 [f2,f5]@2 ~@4 [eb5,g5]@4 [f5,a5]@2 eb5@2 ~@2 g5 ~ [d2,a2]@3 ~@7 c2 ~ [g3,ab3] a3@3 c4@2 d4@2 ~@4, c3@3 ~@13, f2@2 ~@4 [eb2,bb2]@5 ~@6 [d2,a2]@5 ~@2, ~@2 f5 ~@3 a5 ~@15 [e5,f5,a5]@12 ~@14]/2", // G F Eb F D5 Abmaj7 Eb5 D5 …
  EG: "[a2,a3,c4,f4] d2 ~@5 d2@15 ~@2, ~@3 [a2,c4,f4]@8 ~, ~@3 g3@7 ~@2", // F
  EH: "[bb4,eb5,g5]@3 ~ [c5,f5,a5] ~@5 [eb2,bb2]@11 ~@3, [eb2,bb2] ~@5", // Eb F Eb5
  EI: "[d2,a2]@2 ~@10 ab3 a3@3 c4@2 ~ d4@2 ~@3, ~@5 [d2,a2]@5 ~@2, ~@6 g3 ~@5", // D5
  EJ: "[a2,a3,c4] ~@5 [d2,a2,c4,f4]@15 ~@3, [d2,f4]@2 ~@4 g3@13 ~@5", // Am Dm7 Dm
  EK: "[[f2,c3,c5,g5,b5]@4 [a5,c6] ~@13 b5@2 [a5,c6]@2 ~@2 f2@9 ~@15, ~@9 [f2,c3]@12 ~@2 c3@10 ~@15, ~@18 g5 ~@3 [g5,b5]@2 ~@24]/2", // Fsus2 Am F5 G
})).s("gm_epiano1").gain(0.56).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R O S@2 T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX AY AZ BA BB AU BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV@2 BW BX BY BZ CA CB CC@2 CD CE
  CF CG AT CH CI CJ O CK CL CM CN CO CG BA CP AQ CQ CR CS CT CU CV CW CX CY@2 CZ DA DB DC DD DE DF DG@2 DH DI DJ DK DL
  DM DN CG DO DP DQ CG DR DS DT DU DV DW DX DY DZ EA EB EC ED EE EF EG EH EI EJ EK EL EM EN EO EP EQ ER ES ET EU@2 EV EW
  EX EY ES ET ~
>`.pickRestart({
  A: "~ gb1 ~@7 gb1@12 ~@3", B: "gb1 ~@4 gb1@6 ~", C: "b1@3 ~@7 b1@13 ~", D: "ab1@3 ~@6 ab1@14 ~", E: "e1@2 ~@7 e1@15",
  F: "ab1@2 ~@7 ab1@10 ~@5", G: "eb2@3 ~@7 eb2@11 ~@3", H: "eb2 ~@4 eb2@7", I: "gb1@2 ~@8 gb1@13 ~",
  J: "b1@2 ~@7 b1@13 ~@2", K: "ab1@2 ~@7 ab1@14 ~", L: "b1!2 ~@8 b1@13 ~", M: "e2@2 ~@8 e2@11 ~@3", N: "e2@3 ~@7 a1@14",
  O: "eb2@2 ~@8 eb2@11 ~@3", P: "~ eb2@2 ~@7 eb2@12 ~@2", Q: "e1 ~@2 e1@4 ~", R: "e1@3 ~@7 a1@14",
  S: "[eb2@2 ~@9 eb2@15 bb1@4 ~@5 bb1@2 f2@5 ~@6]/2", T: "bb2@3 ~@7 bb2@2 f2@6 bb1@2 ~@2 bb1@2",
  U: "~@10 bb1 ~ f2@6 bb1@4 ~@2", V: "c2@2 ~@3 c2 g2@3 c2@3", W: "eb2@4 ~@6 eb2@2 ~@5 eb2 ~@3 eb2 ~@2, ~@13 bb2@9 ~@2",
  X: "~@10 eb2@2 bb2@6 eb2@5 ~", Y: "~ db2@4 ~@5 db2@2 ~ ab2@5 db2@6", Z: "~ ab2@4 ~@5 ab2@2 eb2@6 ab2@5 ~",
  AA: "gb2@5 ~@5 gb2@2 db2@5 ~ gb2@5 ~", AB: "bb2@2 ~@4 bb2@3 c3@2 ~ db3@3 ~ c3@2 bb2@3 ~@3",
  AC: "bb2@3 ~@2 f2@6 ~ db2@6 bb1@6", AD: "c2@4 ~@5 c2@2 ~ g2@6 c2@6", AE: "d2@5 ~@5 d2@2 a2@6 d2@6",
  AF: "bb1@4 ~@6 bb1@2 ~ f2@5 bb2@3 ~ bb2@2", AG: "~@5 bb2 f2@3 bb1@3", AH: "~ c2@5 ~@4 c2 ~@2 g2@5 c2@6, ~ d2 ~@22",
  AI: "f2@7 ~@3 f2@2 ~ c2@5 f2@6", AJ: "~ bb2@6 ~@2 bb2@2 ~ f2@6 f2@5 ~",
  AK: "gb2@6 ~@4 bb1@2 ~ d2@3 ~@3 eb2@2 ~ d2@2, ~@13 db2 ~@10", AL: "~ g2@2 ~@6 eb2@2 ~ eb2@12",
  AM: "a2@4 ~@6 a2@3 e2@10 ~", AN: "d2@3 ~@10 a1@4 b1@2 d2@3 ~@2", AO: "f2 ~@2 d2@9", AP: "eb2@3 ~@7 eb2@9 ~@5",
  AQ: "eb2@3 ~@7 eb2@12 ~@2", AR: "d2@3 ~@7 d2@2 ~ a1@3 c2@2 d2@3 ~@3", AS: "d2@3 ~@3 d2@16 ~@2",
  AT: "eb2 ~@4 eb2@5 ~@2", AU: "eb2@3 ~@7 eb2@14", AV: "c2@3 ~@6 c2@2 ~ g2@6 c2@6", AW: "f2@4 ~@6 f2@2 c2@5 ~ a1@6",
  AX: "bb1@5 ~@4 bb1@2 ~ f2@6 bb2@5 ~", AY: "bb1@11 ~ eb2@11 ~", AZ: "d2@2 ~@4 d2@15 ~@3", BA: "c2@2 ~@4 c2@17 ~",
  BB: "eb2 ~@4 eb2@4 ~@3", BC: "e2 ~@4 e2@7", BD: "gb2@3 ~@9 a2@5 ~@7", BE: "~@2 d2@4 ~@5 eb2@2 bb2@5 eb2@3 ~@3",
  BF: "db2@4 ~@5 db2@2 ab2@6 db2@4 ~@3", BG: "b1@12 ~@2 eb2@2 ~ b1@6 ~", BH: "e2@2 ~@2 e2@8 a2@5 a2@7",
  BI: "~ eb2@3 ~@8 eb2@9 ~@3", BJ: "eb2@2 ~@11 eb2@9 ~@2", BK: "~ eb2@2 ~@7 eb2@2 bb1@5 ~ c2@2 ~@4",
  BL: "eb2@3 ~@6 eb2 ~@2 eb2@6 f2@5 ~", BM: "bb1@3 ~@7 bb1@7 ~ f2@3 ~@3",
  BN: "bb2@3 ~@3 bb2@4 c3@2 db3@4 c3@2 bb2@4 ~@2", BO: "bb2@3 ~@7 f2@2 db2@5 ~ bb1@5 ~",
  BP: "c2@4 ~@6 c2@2 g2@6 c2@5 ~", BQ: "f2@2 eb2@4 ~@4 eb2@2 bb2@9 ~ eb2 ~",
  BR: "eb3@2 ~@2 eb3 ~@4 eb3@2 ~ bb2@4 ~@2 gb2@4 ~@2", BS: "~ c2@2 ~ db2@3 ~@2 db2@2 ~ ab2@8 ~ db2@3, ~ db2 ~@22",
  BT: "ab2@5 ~@4 ab2@2 ~ eb2@6 ab2@5 ~", BU: "gb2@4 ~@5 gb2@2 db2@6 ~ gb2@6",
  BV: "[bb1@4 ~@2 bb1@3 c2@2 ~ db2@3 ~ c2@2 bb1@11 ~ f2@4 ~@2 db2@5 ~ bb1@5 ~]/2", BW: "c2@5 ~@5 c2@2 g2@6 c2@5 ~",
  BX: "d2@5 ~@5 d2@2 a2@5 ~ d2@4 ~@2", BY: "bb1@7 ~@3 bb1@2 ~ f2@5 bb2@3 ~ bb2@2", BZ: "~@5 bb2 f2@3 bb1@2 ~",
  CA: "c2@4 ~@6 c2@2 ~ eb2@5 e2@5 ~", CB: "f2@7 ~@3 f2@2 c2@11 ~",
  CC: "[bb1@6 ~@4 bb1@2 f2@6 bb1@8 eb2@4 ~@3 e2@2 ~ e2@11 ~]/2", CD: "eb2@5 ~@4 eb2@2 ~ bb1@6 eb2@6",
  CE: "a2@8 ~@2 a2@2 eb2 a1@10 ~", CF: "d2@3 ~@10 a1@3 c2@2 d2@3 ~@3", CG: "d2@2 ~@4 d2@17 ~", CH: "eb2@3 ~@7 eb2@13 ~",
  CI: "d2@3 ~@7 d2@12 ~@2", CJ: "d2 ~ d2@6", CK: "eb2@2 ~@8 eb2@13 ~", CL: "c2@3 ~@7 c2@2 g2@5 ~ c2@5 ~",
  CM: "f2@4 ~@6 f2@2 c2@6 a1@5 ~", CN: "bb1@5 ~@5 bb1@2 f2@12", CO: "~@4 bb1@2 ~@2 bb1@3 ~@2 eb2@11, ~@13 db2 ~@10",
  CP: "eb2@3 ~@7 eb2@10 ~@4", CQ: "e2@3 ~@7 e2@13 ~", CR: "gb2@2 ~@4 a2@3 ~ bb2@2",
  CS: "~ eb2@3 ~@6 eb2 ~ bb2@6 eb2@4 ~@2", CT: "db2@6 ~@4 db2 ~ ab2@5 ~ db2@4 ~@2", CU: "b1@9 ~@3 b1@10 ~@2",
  CV: "e2@12 a2@4 ~ a2 a2@2 ~ bb2@3, ~@18 ab2 ~@5", CW: "~@2 eb2@4 ~@3 bb2@14 ~",
  CX: "c2@7 ~@3 c2@2 g2@4 ~@2 c2@4 ~@2, d2 ~@23",
  CY: "[~@2 f2@4 eb2 ~@2 eb2@2 ~ bb2@7 ~@2 bb2 ~ eb2@6 ~@5 eb2@2 bb2@5 ~ eb2@4 ~@2]/2",
  CZ: "~ db2@5 ~@4 db2@2 ~ ab2@5 ~ db2@5", DA: "ab2@4 ~@5 ab2@2 ~ eb2@6 ab2@5 ~", DB: "~ gb2@3 ~@6 gb2@2 db2@6 gb2@5 ~",
  DC: "bb2@4 ~@5 bb2@2 ~ db3@4 ~ c3@6 ~", DD: "bb2@4 ~@2 f2@3 ~@3 db2@2 ~@2 db2@2 bb1@5 ~",
  DE: "c2@4 ~@5 c2@2 g2@6 c2@6 ~", DF: "d2@3 ~@6 d2@2 ~ a2@6 d2@5 ~",
  DG: "[bb1@5 ~@5 bb1@2 f2@4 bb1 ~ bb2@4 ~ bb2@2 ~@9 bb2@2 f2@6 bb1@4 ~@2]/2", DH: "c2@3 ~@7 c2@2 g2@6 ~ c2@5",
  DI: "f2@5 ~@5 f2@2 c2@6 a1@6", DJ: "bb1@4 ~@5 bb1@2 ~ f2@6 bb1@6", DK: "e2@5 ~@5 e2@2 ~ bb2@5 e2@6",
  DL: "~ eb2@5 ~@4 eb2@2 bb2@6 eb2@6", DM: "a2@6 ~@3 a2 eb2@2 a1@10 c2@2", DN: "~ d2@3 ~@9 a1@3 c2@2 d2@3 ~@3",
  DO: "~ eb2@2 ~@7 eb2@10 ~@4", DP: "eb2@2 ~@9 eb2@11 ~@2", DQ: "d2@3 ~@8 d2 ~ a1@4 c2 ~ d2@2 ~@3",
  DR: "f2 ~@4 eb2@5 ~@2", DS: "~ eb2@2 ~@7 eb2@14", DT: "c2@5 ~@4 c2@2 ~ g2@6 c2@6", DU: "f2@4 ~@5 f2@2 ~ c2@6 a1@6",
  DV: "~ bb1@5 ~@4 bb1@2 f2@12", DW: "bb1@2 ~@4 bb1@3 ~@3 eb2@11 ~", DX: "d2 ~@2 d2@9", DY: "~ c2@2 ~@4 c2@17",
  DZ: "[eb2,bb2] ~@2 [eb2,bb2]@4 ~", EA: "[eb2,bb2]@2 ~@8 [eb2,bb2]@11 ~@3",
  EB: "[d2,a2]@2 ~@9 [d2,a2]@2 a1@3 c2 ~ d2@2 ~@4", EC: "d2@2 ~@4 [d2,a2]@17 ~", ED: "c3@2 ~@8 [f2,c3]@11 ~@3, f2 ~@23",
  EE: "[f2,c3] ~@5 [eb2,bb2]@5 ~", EF: "[d2,a2] ~@4 [d2,a2]@5 ~@2", EG: "[d2,a2] ~@5 [d2,a2]@16 ~@2",
  EH: "[eb2,bb2] ~@4 [eb2,bb2]@5 ~@2", EI: "[eb2,bb2]@3 ~@7 ab2@4 ab2@8 ~@2", EJ: "[d2,a2]@2 ~@9 [d2,a2]@10 ~@3",
  EK: "[d2,a2] ~@5 [d2,a2]@17 ~", EL: "[f2,c3]@2 ~@7 [f2,c3]@11 ~@4", EM: "[f2,c3] ~@4 [eb2,bb2]@6 ~",
  EN: "[d2,a2]@3 ~@7 [d2,a2]@11 ~@3", EO: "[d2,a2] ~@2 [d2,a2]@9", EP: "~ bb2@2 ~@6 [eb2,bb2]@12 ~@3, ~ eb2 ~@22",
  EQ: "[eb2,bb2]@3 ~@7 [ab2,eb3]@13 ~", ER: "~ [d2,a2]@2 ~@8 a2@11 ~@2, ~@10 d2@11 ~@3",
  ES: "[d2,a2]@2 ~@4 [d2,a2]@17 ~", ET: "c3 ~@4 [f2,c3]@6 ~, f2 ~@23",
  EU: "[[f2,c3]@2 ~@8 [eb2,bb2]@12 ~ [d2,a2]@2 ~@9 [d2,a2]@10 ~@4]/2", EV: "[d2,a2] ~@2 [d2,a2]@8 ~",
  EW: "[eb2,bb2]@2 ~@7 [eb2,bb2]@12 ~@3", EX: "[eb2,bb2]@3 ~@7 [ab2,eb3]@14", EY: "[d2,a2] ~@4 [d2,a2]@6 ~",
})).s("gm_electric_bass_finger").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~ A@4 B A C A@3 D A E ~@160>".pickRestart({
  A: "x ~@4 x ~@6", B: "x ~@10 x ~@12", C: "~ x ~@8 x ~@13", D: "x ~@2 x ~@4", E: "x",
})).gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<[~@5 x] ~@173>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@3 x!2 ~] ~@173>").gain(0.46)

stack(epiano1, bass, kick, low_tom, mid_tom)

More by Steely Dan