Strudelify
Pretzel Logic cover art

Pretzel Logic

Pretzel Logic

Steely Dan

KeyA minorTempo93 bpm
0:00/0:00
// Pretzel Logic — Steely Dan
// 93 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 108 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): GTHARMONIC.
setcpm(93/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@5 A B C B@2 D B@2 E F G H I J I K L M N O A B C B@2 D B@2 E F G H I J I K L P Q@2 A B C B@2 D B@2 E F G H I J I K L
  R A B C S T U T V W F G H I J I K L P Q@2 B X Y Z B X Y Z B X Y Z B X Y Z B X Y Z B X Y Z ~
>`.pickRestart({
  A: "a1@3 ~ a1 ~ a1@3 ~ a1@5 ~ a1 ~ a1@3 ~ a1 ~", B: "a1@2 ~@2 a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1@2 e1 ~ g1@2 g#1@2",
  C: "a1@2 ~@2 a1@5 ~ a1@5 ~ a1 ~ a1@4 a1 ~", D: "f1@2 ~@2 f1 ~ f1@3 ~ f1 ~ f1@3 ~ f1 ~ e1 ~ g1@2 g#1@2",
  E: "d1@2 ~@2 d1 ~ d1@2 ~@2 d1 ~ d1@2 ~@2 d1@2 g1@2 g#1@2 a1@2",
  F: "d1@2 ~@2 d1 ~ d1@2 ~@2 d1 ~ d1@2 ~@2 d1@2 e1@2 g1@2 g#1@2",
  G: "a1@2 ~@2 a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1@2 e1@2 g1@2 g#1@2",
  H: "a1@2 ~@2 a1 ~ a1@2 ~@2 a1 ~ a1@3 ~ a1@2 b1@2 d2@2 d#2@2", I: "e2@6 a1@4 e2 d#2",
  J: "d2@12 g1@4 g1@2 b1 ~ d2@2 b1@2", K: "d2@12 g1@3 ~ g1@2 b1 d2@2 ~ b1@2", L: "e2 a1",
  M: "f2@2 c2 f1 f2 g1@3 d2 g1@2 f1", N: "f1@11 ~", O: "g1@23 ~", P: "f2@2 c2 f1 f2 g1@3 d2 g1@3",
  Q: "[~@2 g2 g1, f1@13 ~@11]/2", R: "f2@2 c2 f1 f2 a#1@3 f2 a#1@2 f2", S: "a1@2 ~@2 a1 ~ a1@3 ~ a1 ~ a1@3 ~ d2@8",
  T: "a1 ~@7", U: "f1 ~ f1 ~@5", V: "a1 ~ b1 ~ c2 ~ c#2 ~",
  W: "d1@3 ~ d1 ~ d1@2 ~@2 d1 ~ d1@2 ~@2 d1@2 g1@2 g#1@2 a1@2",
  X: "a1@2 ~@2 a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1@2 e1 ~ g1@2 a1@2", Y: "f1@2 ~@2 f1 ~ f1@3 ~ f1 ~ f1@3 ~ f1 ~ e1 ~ g1@2 a1@2",
  Z: "g1@3 ~ g1 ~ g1@3 ~ g1 ~ g1@3 ~ g1 ~ e1@2 g1@2 g#1@2",
})).s("gm_electric_bass_finger").gain(0.6).pan(0.6)

// chords · brass section · "BRASS 1"
const brass_section = note("<~@45 A@6 B@6 C D C D C E F@4 G H I J K@4 C D C D C L M@2 N@24 ~>".pickRestart({
  A: "[~@3 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,g4]@2 [c4,e4,a4]@7]/6", // Bm C Bm C Bm C Bm C …
  B: "[~@3 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [c4,f4,a4]@2 [d4,f4,c5]@10 [c4,f4,a4]@2 [d4,f4,c5]@10 [b3,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@7, ~@51 d4@10 ~@11]/6", // Bm C Bm C F Dm7 F Dm7 …
  C: "[f#4,a4]@9 ~ b4@14, ~@10 g#4@9 ~@5", D: "[e4,g4]@9 ~ a4@13 ~, ~@10 f#4@9 ~@5", E: "[c4,e4,g4]@5 [c4,d4,f4,a4]@7",
  F: "[[c4,e4,a4]@3 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@3 [d4,f#4,a4]@3 ~]/4", // Am Bm C Bm C Bm C Bm …
  G: "[c4,e4,a4] ~@7", H: "[d4,f4,a4] ~@2 [d4,f4,a4] ~@8", I: "[c4,e4,a4] ~@11",
  J: "[c4,e4,a4] [d4,f#4,b4] [e4,a4,c5] [f4,a#4,c#5]", // Am Bm Am A#m
  K: "[[f4,a4,d5]@3 [c4,f4,a4]@2 [d4,f4,c5]@10 [c4,f4,a4]@2 [d4,f4,c5]@10 [b3,d4,f#4]@2 [c4,e4,g4]@10 [b3,d4,f#4]@2 [c4,e4,g4]@7]/4", // Dm F Dm7 F Dm7 Bm C Bm …
  L: "[c4,e4,a4]@5 g4@6 ~, ~@5 d4@5 ~@2", // Am
  M: "[[c4,e4,a4]@15 ~@3 [b3,d4]@4 [c4,e4]@6 e4@2 a4@2 g4@2 e4@2 a4@2 g4@2 e4@2 a4 g4@2 ~ e4@2]/2", // Am Bm C
  N: "[[c4,e4,a4]@6 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [a3,c4,f4]@4 ~@18 e4@2 a4@2 g4@2 e4@2 a4@2 g4@2 e4@2 a4 g4@2 ~ e4@2, ~@29 [a3,c4,f4]@10 ~@9]/4", // Am Bm C Bm C F
})).s("gm_brass_section").gain(0.6).pan(0.3)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@5 A@4 B@4 C@2 B@2 ~@8 A@4 B@4 C@2 B@2 ~@8 A@4 B@4 C@2 B@2 ~@6 D@4 E F G H I C B@2 ~@8 J@2 B@2 J@2 B@2 J@2 B@2 J@2
  B@2 J@2 B@2 J@2 B@2 ~
>`.pickRestart({
  A: "[~@6 b3@23 ~ b3@24 b3@22 ~@2 b3@18]/4", B: "~ b3@3", C: "~ e4@3",
  D: "[~@6 b3@23 ~ b3@24 b3@22 ~@2 b3@9 ~ d4@8]/4", E: "a3 ~@7", F: "f3 ~@2 f3 ~@8", G: "a3 ~@11", H: "a3 b3 c4 c#4",
  I: "d4 e4@3", J: "[~@3 b3@11 ~ b3@9]/2",
})).s("gm_overdriven_guitar").gain(0.31).pan(1)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@13 A@2 ~@18 A@2 ~@18 A@2 ~@11 B C ~@3 A@2 ~@35>".pickRestart({
  A: "[~@2 e3@7 ~ e3@6]/2", B: "~@2 a3", C: "a3 ~@11",
})).s("gm_guitar_harmonics").gain(0.38).pan(0.6)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~ A@8 B@8 C D C E F@2 G@2 H@6 I@6 C D C E J@2 K L M@6 I@6 C D C E N@2 O@4 P Q R S T@4 C D C E J@2 K L U@24 ~
>`.pickRestart({
  A: "[~@6 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@3 ~ [c4,e4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@14, ~@11 g4@7 ~@46]/8", // Bm C Bm C Bm C Bm C …
  B: "[~@6 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4]@4 [c4,e4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [e4,g4]@3 ~ [f4,a4]@19 ~ [e4,g4]@4 [f4,a4]@19 ~ [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@14, ~@51 c4@11 ~ c4@11 ~@22]/8", // Bm C Bm C Bm C Bm C …
  C: "a3@2 ~@3 [b3,e4,g#4]@4 b3@2 b3, [d4,f#4]!2 ~ [e4,g#4], ~ a3!2 ~@3", // E D E
  D: "g3@2 g3 [g3,c4,e4]@2 a3@3 ~ d4 ~ a3, [c4,e4]@3 ~@2 f#4@5 ~@2, ~@5 d4@4 ~ [d4,f#4]@2, ~@8 a3@3 ~", // C D
  E: "g3@4 g3@2 [g3,c4,e4]@4 a3@6 ~@2 d4@2 ~ a3@2 ~, [c4,e4]@3 ~@2 f#4@5 ~@2, ~@5 d4@4 ~ [d4,f#4]@2, ~@16 a3@5 ~@3", // C D
  F: "[a3@4 a3@2 ~ a3@3 e4@14 [c4,e4,a4]@4 ~@2 [e4,a4]@2 ~@2 [g3,b3,d4,g4]@6 ~@4 g4@2 b3 ~, [d4,f#4]@3 [d4,f#4]@2 [b3,g#4]@9 c4@2 ~@4 b3@2 ~@2, ~@12 [f3,a3]@5 ~@4 [g3,d4]@2 ~]/2", // Am A5 G D E F G5
  G: "[[c4,e4,a4]@18 [e4,a4]@2 ~@4 g3@4 ~@2 b3@4 b3@2 ~@7 b3@3 d4@2, [f3,a3]@21 ~ g4@26, ~@12 d4@5 d4@3 d4@3 ~, ~@24 b3@6 ~@7 b3@6 ~@5, ~@14 g3@4 g3@3 g3@3]/2", // Am A5 F
  H: "[[c4,e4,a4]@6 [b3,d4,f#4]@4 [c4,e4,g4]@20 ~ d4@3 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4]@4 [c4,e4]@14, ~@15 [b3,f#4]@2 ~@55]/6", // Am Bm C Bm C Bm C Bm …
  I: "[~@6 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [e4,g4]@3 ~ [f4,a4]@19 ~ [e4,g4]@4 [f4,a4]@19 ~ [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@14, ~@27 c4@11 ~ c4@11 ~@22]/6", // Bm C Bm C Em F Em F …
  J: "[a3@4 a3@2 ~ a3@3 e4@14 [a3,c4,e4,a4]@10 [g3,b3,d4,g4]@6 b3@2 g3@6, [d4,f#4]@3 [d4,f#4]@2 [b3,g#4]@9 ~@10]/2", // Am G D E
  K: "[a3,c4,e4,a4]", L: "g3@4 ~@2 b3@4 b3@2 ~@7 b3@3 d4@2, d4@5 d4@3 d4@3 ~, b3@6 ~@7 b3@6 ~@5, ~@2 g3@4 g3@3 g3@3",
  M: "[[c4,e4,a4]@4 ~@2 [b3,d4,f#4]@4 [c4,e4,g4]@20 ~ d4@3 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4]@4 [c4,e4]@14, ~@15 [b3,f#4]@2 ~@55]/6", // Am Bm C Bm C Bm C Bm …
  N: "[a3@4 a3@2 ~ a3@3 e4@14 [a3,c4,e4,a4]@24, [d4,f#4]@3 [d4,f#4]@2 [b3,g#4]@19]/2", // Am D E
  O: "[[c4,e4,a4]@4 ~@2 [b3,d4,f#4]@4 [c4,e4,g4]@20 ~ d4@3 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@20 [b3,d4,f#4]@4 [c4,e4,g4]@14, ~@15 [b3,f#4]@2 ~@31]/4", // Am Bm C Bm C Bm C B5
  P: "[c4,e4,a4] ~@7", Q: "[d4,f4,a4] ~@11", R: "[c4,e4,a4] ~@11",
  S: "[c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4]@2 ~@2 [c4,e4,a4] ~ [c4,e4,a4]@2 ~@2 [c4,e4,a4] ~ [c4,e4,a4]@2 ~@4", // Am
  T: "[[d4,f4,a4]@3 ~@3 [e4,g4]@3 ~ [f4,a4]@19 ~ [e4,g4]@4 [f4,a4]@19 ~ [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@14, ~@3 c4@11 ~ c4@11 ~@22]/4", // Dm Em F Em F Bm C Bm …
  U: "[~@6 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4,f#4]@4 [c4,e4,g4]@17 ~@3 [b3,d4]@4 [c4,e4]@17 ~@3 [e4,g4]@4 [d4,g4]@14]/4", // Bm C Bm C Bm C Em G5
})).s("gm_epiano2").gain(0.5).pan(0.8)

// other · clavinet
const clavinet = note(`<
  ~@5 A B C D@2 E C F G H I C ~@8 A B C D@2 E C F G H I C ~@26 A B C D ~@4 G H I C ~@33
>`.pickRestart({
  A: "a2@2 ~@2 a2@2 f#3@3 ~ g3@5 ~ g3@2 f#3@4 e3@2", B: "a2 ~@3 a2@2 f#3@4 g3@5 ~ g3@2 f#3@4 e3@2",
  C: "a2@2 ~@2 a2@2 f#3@4 g3@5 ~ g3@2 f#3@4 e3@2", D: "a2@3 ~ a2@2 f#3@4 g3@5 ~ g3@2 f#3@4 e3@2",
  E: "f2@3 ~ f2@2 d3@4 e3@5 ~ e3@2 d3@4 c3@2", F: "a2@2 ~@4 f#3@4 g3@5 ~ g3@2 f#3@4 e3 ~, ~ a2 ~@4",
  G: "d2@2 ~@2 d2@2 b2@4 c3@5 ~ c3@2 b2@3 ~ a2@2", H: "d2@3 ~ d2@2 b2@4 c3@5 ~ c3@2 b2@3 ~ a2@2",
  I: "a1@2 ~@2 a2@2 f#3@4 g3@5 ~ g3@2 f#3@4 e3@2",
})).s("gm_clavinet").gain(0.29).pan(1)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@17 A B C D E F G H I ~@11 A B C D E F G J I ~@11 A B C D E K I ~@11 A B C D E F G J ~@25
>`.pickRestart({
  A: "e3@6 e3@3 ~ e3@8 e3@3 ~ e3@2, ~@5 a3@7", B: "d3@2 d3 d3@2 [a3,d4]@7, g3@5 f#3@5 ~@2",
  C: "e3@5 ~ e3@4 b3@14, ~@5 e3@2 ~@5", D: "~ g3@4 ~ g3@4 d4@13 ~, ~@5 a3@5 ~@2", E: "e3@6 e3@4 a3@13 ~, a3 ~@2",
  F: "[a3,c4,e4]@5 [g3,b3]@6 ~, ~@5 d4@7", G: "[f3,a3,c4,e4,g4]", H: "[g3,c4]", I: "[c4,e4]", J: "[a3,c4]",
  K: "[f3,a3,e4,g4]", // Fmaj7
})).s("gm_overdriven_guitar").gain(0.43).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note(`<
  ~@22 A B C D@3 ~@14 A B C D@3 ~@32 A B C D@3 C D@3 C D@3 C D@3 C D@3 C D@3 C ~
>`.pickRestart({
  A: "[c4,f4]@5 [d4,g4]@6 ~", B: "[c4,f4]@23 ~",
  C: "[d4,g4]@5 ~ [a3,d4,a4]@2 [g3,c4,g4]@2 [e3,a3,e4]@2 [a3,d4,a4]@2 [g3,c4,g4]@2 [e3,a3,e4]@2 [a3,d4,a4]@2 [g3,c4,g4]@2 [e3,a3,e4]@2", // G5 D5 C5 A5 D5 C5 A5 D5 …
  D: "[a3@17 ~@7, e4 ~@35]/3",
})).s("gm_overdriven_guitar").gain(0.48).pan(0.4)

// bass · clavinet
const bass_2 = note(`<
  A B C D@2 C D C E F G E H I J E H K L K L M N O P C D C E F G E H I J E H K L K L M N O P C D C E F G E H I J E H K L
  K L M Q C D C R S T S U I J E H K L K L M N O P E F V W E F V W E F V W E F V W E F V W E F V W ~
>`.pickRestart({
  A: "~@11 a2", B: "a1 ~@3 a1@17 ~ a2@2", C: "a1 ~ a1@9 a2", D: "a1@2 ~@2 a1@17 ~ a2@2", E: "a1 ~ a1@8 ~@2",
  F: "a1 ~ a1@8 ~ f2", G: "f1@2 ~@2 f1@17 ~@3", H: "a1 ~ a1@8 ~ a2", I: "d2 ~ d2@8 ~ a2", J: "d2 ~ d2@8 ~ e2",
  K: "e2@2 ~@2 e2@8 a1@9 ~ a2@2", L: "d2 ~ d2@4 g1@4 ~ a2", M: "e2@2 ~@2 e2@8 a1@9 ~@3", N: "f2@9 ~ g2@14",
  O: "f1@23 ~", P: "g1@23 ~", Q: "f2@2 ~@2 f2@8 a#1@11 ~", R: "a1 ~ a1@4 d2@6", S: "a1 ~@7", T: "f1 ~ f1 ~@5",
  U: "a1 c2 a1 b1 d2 b1 c2 e2 c2 c#2 e2 c#2", V: "f1@2 ~@2 f1@17 ~ g2@2", W: "g1@2 ~@2 g1@17 ~@3",
})).s("gm_clavinet").gain(0.35).pan(0.1)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@5 A B@3 A@4 C@2 A@2 ~@8 A B@3 A@4 C@2 A@2 ~@8 A B@3 A@4 C@2 A@2 ~@6 A D@3 E F E G H C A@2 ~@8 I@2 A@2 I@2 A@2 I@2
  A@2 I@2 A@2 I@2 A@2 I@2 A@2 ~
>`.pickRestart({
  A: "~ d4@3", B: "[~@6 d4@20 ~@4 d4@21 ~@3 d4@18]/3", C: "~ g4@3", D: "[~@6 d4@20 ~@4 d4@21 ~@3 d4@9 ~ d4@6 ~@2]/3",
  E: "e4 ~@7", F: "f4 ~ f4 ~@5", G: "e4 f#4 g4 g#4", H: "a4 g4@3", I: "[~@2 d4@7 ~ d4@6]/2",
})).s("gm_distortion_guitar").gain(0.33).pan(0)

// drums · kick
const kick = s("bd").struct("<~@5 A@17 B@3 C A@16 B@3 C A@16 B A@4 D E D A@10 B@3 A@24 ~>".pickRestart({
  A: "x ~ x ~@2 x!2 ~ x ~@2 x", B: "x!4", C: "~@2 x ~@2 x!2 ~ x ~@2 x", D: "x", E: "x!2 ~@2",
})).gain(0.29)

// drums · snare
const snare = s("sd").struct("<~@4 A B@18 ~ A B@18 ~ A B@22 ~@3 B@11 ~ A B@24 ~>".pickRestart({
  A: "~@5 x!7", B: "~@3 x ~@3 x ~ x ~@2",
})).gain(0.33)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@4 A ~@19 A ~@19 A ~@37 A ~@25>".pickRestart({
  A: "x!5 ~@7",
})).gain(0.11)

// drums · low tom
const low_tom = s("lt").struct("<~@23 [~@2 x] ~@19 [~@2 x] ~@37 [~@2 x] ~@26>").gain(0.29)

// drums · hihat
const hihat = s("hh").struct("<~@5 A@2 B@16 ~@2 A@2 B@16 ~@2 A@2 B@16 A@2 B@2 ~@3 B@11 ~@2 B@24 ~>".pickRestart({
  A: "x ~ x ~ x!3 ~ x ~ x!2", B: "x ~ x ~ x!3 ~ x ~@2 x",
})).gain(0.37)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A B ~@18 A B ~@36 A B ~@25>".pickRestart({
  A: "~@17 x!2 ~@5", B: "~@9 x!3",
})).gain(0.29)

// drums · high tom
const high_tom = s("ht").struct("<~@23 A B ~@18 A B ~@36 A B ~@25>".pickRestart({
  A: "~@11 x", B: "x!2 ~@2",
})).gain(0.29)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A B@18 ~@2 B@18 ~@2 B@22 ~ C ~ B@11 ~@3 B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~
>`.pickRestart({
  A: "~@3 x ~@5 x ~ x", B: "x", C: "~@16 x!2 ~@6",
})).gain(0.29)

// drums · ride
const ride = s("rd").struct(`<
  ~@3 A@4 B C@15 ~@2 D A B C@15 ~@2 D A B C@15 D A B C ~ E ~ C@11 ~@2 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 ~
>`.pickRestart({
  A: "x!12", B: "x!10 ~ x", C: "x!10 ~@2", D: "~ x!11", E: "~@17 x!2 ~@5",
})).gain(0.29)

stack(
  bass, brass_section, overdriven_guitar, guitar_harmonics, epiano2, clavinet, overdriven_guitar_2, overdriven_guitar_3,
  bass_2, distortion_guitar, kick, snare, snare_soft, low_tom, hihat, mid_tom, high_tom, crash, ride
)

More by Steely Dan