0:00/0:00
// Aja — Steely Dan
// 110 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 33, 4/4 at bar 33, 3/4 at bar 62, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 3 "Lead Gtr" named as a guitar, played on overdriven guitar (its lead 8 bass lead patch is not one)
// note: Full arrangement: all 216 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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 · tenor sax
const tenor_sax = note("<~@136 A B C D E@2 F G H I J K L M N O@2 P@2 Q R S T U@2 V W X Y Z AA ~@49>".pickRestart({
A: "~@12 f#5@2 ~ e5", B: "f#5@4 ~@2 b5 f#5@4 ~ e5 ~ f#5@2", C: "~@2 b5 ~@7 f#5 ~ e5 ~ f#5@2",
D: "~@2 c#6 ~ f#5@3 ~ e5 ~ f#5@3 ~ c#6 ~",
E: "[~@5 c#6 ~ b5 f#5@3 ~@3 b5@6 b5 a#5 g#5 [e5,f#5] [b4,c#5,d#5] [f#4,g#4,a#4] [d#4,e4] ~@5]/2", F: "~@3 d#6",
G: "~@2 b5@3 ~ g#5@5 ~ f#5 ~ d#5 ~", H: "c#5@3 ~@6 e5 g5 a5 g5@2 ~ g#5",
I: "f5 c#5 a#4 ~@3 c#6 ~ a#5@2 ~ f#5@2 f#5@2 ~", J: "f5@2 ~ d#5@2 ~@9 d#6 [a#5,c6]",
K: "g5 ~@5 c#6 [a5,b5] f#5 ~ c6 [g#5,a#5] f5 ~@3", L: "b5 [g5,a5] e5 ~@13", M: "~@4 g#4@5 ~ a#4@6",
N: "b4@4 a#4@3 ~@9", O: "[~@8 e5@19 ~@5]/2", P: "[~@4 f#5@2 ~ e5 f#5@4 ~@2 b5 f#5@4 ~ e5 ~ f#5@3 ~ b5 ~@5]/2",
Q: "~@2 f#5 ~ e5 ~ f#5@3 ~ c#6 ~ f#5@3 ~", R: "e5 ~ f#5@3 ~ c#6 ~@6 c#6 ~ b5",
S: "f#5@3 ~@3 b5@6 b5 a#5 g#5 [e5,f#5]", T: "[b4,c#5,d#5] [f#4,g#4,a#4] [d#4,e4] ~@13",
U: "[~@4 d#6@5 ~ b5@3 ~ g#5@5 ~ f#5 ~ d#5 ~ c#5@3 ~@5]/2", V: "~ e5 g5 a5 g5@2 ~ g#5 f5 c#5 a#4 ~@3 c#6 ~",
W: "a#5@2 ~ f#5@2 f#5@2 ~ f5@2 ~ d#5@2 ~@3", X: "~@6 d#6 [a#5,c6] g5 ~@5 c#6 [a5,b5]",
Y: "f#5 ~ c6 [g#5,a#5] f5 ~@3 b5 [g5,a5] e5 ~@5", Z: "~@3 g#4", AA: "~@2 a#4@6 b4@4 a#4@3 ~",
})).s("gm_tenor_sax").gain(0.35)
// chords · acoustic guitar steel · "Rhythm Gtr"
const acoustic_guitar_steel = note(`<
~@2 A B ~@2 A B C@2 D E F@2 G@2 H@2 I@2 J@2 K L M N O@2 P@2 Q R@5 S T C U V W F X G Y H Z I AA J AB AC AD M AE O AF P
AG@7 AH@10 AI AJ@2 AK@2 AL@3 AM AN AO@5 AP@2 AQ AR@2 AS@4 AT AU@8 AV AW AX AY AZ@2 BA BB@3 BC BD@2 BE BF BG BH@8 BI@8
BJ@2 BK BL@4 BM@8 BN@2 BO@2 BP@7 BQ@8 BR BS Y H Z I AA J AB AC BT@2 BU O AF P BV@6 BW@2 BX BY BW@2 BX BY BW@2 BX BY
BW@2 BX BY BW@2 ~
>`.pickRestart({
A: "~@2 c#6 ~ a#5 ~ g#5@3 ~ g#5@3 ~ f#5 ~", B: "f5@2 f#5 ~ f5 ~ d#5@7 ~@3",
C: "[b3,d#4,f#4,a#4]@3 ~ [b3,d#4,f#4,a#4]@3 ~ [b3,d#4,f#4,a#4]@3 ~ [b3,d#4,f#4,a#4]@3 ~", // Bmaj7
D: "[a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~", // Am
E: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,g#3,b3]@3 ~ [f#3,g#3,b3]@3 ~", // B G#m7
F: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~", // A
G: "[c4,e4,g4,b4]@3 ~ [c4,e4,g4,b4]@3 ~ [c4,e4,g4,b4]@3 ~ [c4,e4,g4,b4]@3 ~", // Cmaj7
H: "[c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~", // F#m7
I: "[d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,f#4]@3 ~", // D
J: "[d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~", // G
K: "[c#4,e4]@3 ~ [c#4,e4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~", // C#m A#m
L: "[a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~", // A#m
M: "[c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~", // G#7
N: "[c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@7 ~", // G#7
O: "[d4,g#4,b4]@3 ~ [d4,g#4,b4]@3 ~ [d4,g#4,b4]@3 ~ [d4,g#4,b4]@3 ~", // G#dim
P: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~", Q: "[a3,c4,e4]@7 ~ [a3,b3,d4]@7 ~",
R: "[[c4,f4,g4]@8 ~@4 [b3,e4,f#4]@27 ~@5 [f#4,a#4,c#5]@27 ~@7 c#6 ~]/5", S: "a#5 ~ g#5@3 ~ g#5@3 ~ f#5 ~ f5@2 f#5 ~",
T: "f5 ~ d#5@7 ~@3 [b3,d#4,f#4,a#4]@3 ~", // Bmaj7
U: "[b3,d#4,f#4,a#4]@3 ~ [b3,d#4,f#4,a#4]@3 ~ [b3,d#4,f#4,a#4]@3 ~ [a3,c4,e4]@3 ~", // Bmaj7 Am
V: "[a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [f#3,b3,d#4]@3 ~", // Am B
W: "[f#3,b3,d#4]@3 ~ [f#3,g#3,b3]@3 ~ [f#3,g#3,b3]@3 ~ [a3,c#4,e4]@3 ~", // B G#m7 A
X: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [c4,e4,g4,b4]@3 ~", // A Cmaj7
Y: "[c4,e4,g4,b4]@3 ~ [c4,e4,g4,b4]@3 ~ [c4,e4,g4,b4]@3 ~ [c#4,e4,f#4,a4]@3 ~", // Cmaj7 F#m7
Z: "[c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~ [d4,f#4]@3 ~", // F#m7 D
AA: "[d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,f#4]@3 ~ [d4,g4,b4]@3 ~", // D G
AB: "[d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ [c#4,e4]@3 ~", // G C#m
AC: "[c#4,e4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~", // C#m A#m
AD: "[a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~", // A#m G#7
AE: "[c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@7 ~ [d4,g#4,b4]@3 ~", // G#7 G#dim
AF: "[d4,g#4,b4]@3 ~ [d4,g#4,b4]@3 ~ [d4,g#4,b4]@3 ~ [c4,e4,g4]@3 ~", // G#dim C
AG: "[[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [a3,c4,e4]@7 ~ [a3,b3,d4]@7 ~ [c4,f4,g4]@8 ~@4 [b3,e4,f#4]@27 ~@5 [a4,c#5,e5]@4 ~@2 [a4,d5,f#5]@21 ~@11 [e4,a4,c#5]@2]/7", // C Am Bm7 Csus4 Bsus4 A D A
AH: "~@2 [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@2", AI: "~@2 [g4,b4,d5]@5 ~ [a4,c#5,e5]@5 ~@3",
AJ: "~@6 [d4,g4,b4]@3 ~ [f4,a4,c5]@5 ~", AK: "[b4,e5,g#5,b5] ~@5 [b4,e5,g#5,b5]@7 ~@3",
AL: "~@6 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~", AM: "[a4,c#5,e5]@5 ~@9 [d4,g4,b4]@2",
AN: "~@2 [f4,a4,c5]@5 ~@7 [d4,g4,b4]@2", // F G
AO: "[~@2 [f4,a4,c5]@5 ~ [b4,g#5,b5] ~@5 [b4,e5,g#5,b5]@7 ~@3 [b4,e5,g#5,b5] ~@5 [b4,e5,g#5,b5]@7 ~@3 [g4,b4,d5,g5]@27 ~@9 [d5,e5,g5]@4]/5", // F E G Em7
AP: "[~@2 [c5,e5,f#5]@5 ~ [b4,c5,e5]@4 ~@2 [a4,b4,d5]@7 ~@7 [d5,e5,g5]@4]/2", AQ: "~@2 [c5,d5,f#5]@5 ~ [b4,c5,e5]@8",
AR: "[[a4,b4,d5]@27 ~@5]/2", // Bm7
AS: "[[f#4,a#4,c#5]@4 ~@2 [g4,b4,d5]@6 ~@2 [a4,c#5,e5]@6 ~@2 [g4,b4,d5]@5 ~ [b4,e5,g#5,b5]@21 ~@3 [d5,g5,b5]@5 ~@3 [c5,f5,a5]@4]/4", // F# G A G E G F
AT: "~@4 [a5,c6,e6]@5 ~@3 [g5,b5,d6]@4", // Am G
AU: "[~@10 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@7 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~ [a4,c#5,e5]@5 ~@7]/8", // A G A G A G A G …
AV: "~@2 [d4,g4,b4]@3 ~ [f4,a4,c5]@5 ~@5", AW: "~@2 [d4,g4,b4]@3 ~ [f4,a4,c5]@5 ~ [b4,e5,g#5,b5] ~@3",
AX: "~@2 [b4,e5,g#5,b5]@7 ~@3 [b4,e5,g#5,b5] ~@3", AY: "~@2 [b4,e5,g#5,b5]@7 ~@7",
AZ: "~@2 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~@5", BA: "~@2 [e4,a4,c#5]@3 ~ [g4,b4,d5]@5 ~ [a4,c#5,e5]@4",
BB: "[~@10 [d4,g4,b4]@3 ~ [f4,a4,c5]@5 ~@7 [d4,g4,b4]@3 ~ [f4,a4,c5]@5 ~ [b4,g#5,b5] ~@5 [b4,e5,g#5,b5]@6]/3", // G F G F E
BC: "~@4 [b4,e5,g#5,b5] ~@5 [b4,e5,g#5,b5]@6", BD: "[~ [g4,b4,d5,g5]@7]/2", BE: "~@4 e5@3 [c5,e5,f#5], ~ [d5,g5]",
BF: "~@2 b4@3 [a4,b4]@3, ~ [c5,e5]@3", BG: "~@7 c5, ~ [d5,e5,g5]",
BH: "[~@44 [f#4,a#4,c#5]@4 ~@56 [f5,a5]@5 ~@3 [a5,c6,e6]@5 ~@3 [b5,d6]@5 ~@3, ~ e5@29 g5@2, ~ c5@17 b5@6 g5@2 c5@6, ~@2 b4@23 [g4,b4]@39, ~@12 a4@39 ~@7 [a4,c#5]@70]/8", // F# F Am Bm G A
BI: "[b5@5 ~@3 [f5,a5]@5 ~@11 f4@5 ~@3 [a#4,d#5,f5]@11 ~@5 [a#4,d#5,f5] ~@5 a4@12 a4@8 [a4,d5,e5]@12 [a4,d5,e5]@4 [a4,d5,e5]@12 [a4,d5,e5]@4 [a4,d5,e5]@12 [a4,c#5,d5,e5]@10, g5, d5@3 c5@13, ~@8 c5@8 e5@8 a4@8 d5@16 d5@6 [c#5,d5,e5]@20 c#5 ~@11 c#5 ~@3 c#5 ~@11 c#5 ~@3 c#5 ~@21, ~ [g4,b4]@7]/8", // F A#sus4 Asus4 A C#m G
BJ: "[~ [a4,e5]@4 [a4,e5]@6 [a4,e5]@2 [a4,e5]@3, ~@2 c#5@5 ~@3 [c#5,d5] ~@11 [c#5,d5] ~@3 [c#5,d5] ~@5]/2", // A5 Dmaj7
BK: "~@3 [a4,e5]@2 [a4,e5]@3, ~@6 [c#5,d5] ~@3 [c#5,d5] ~@5", // A5 Dmaj7
BL: "[~@22 g#5@22 ~@15 f#5@2 f5@3, ~@3 [a#4,d5]@29, ~@6 f5@55 ~@3, ~@7 [b4,d#5]@25, ~@7 f#5@4 e5@21]/4", // A# B
BM: "[~@8 [g#4,c#5] ~@47 [d5,d#5,f5]@16 d#5@6 [a4,c#5,d5] ~ [a4,c#5,d5,e5]@5 ~@5 [a4,c#5,d5,e5] ~@3 [a4,c#5,d5,e5] ~@3 [a4,c#5,d5,e5] ~@11 [a4,c#5,d5,e5] ~@3 [a4,c#5,d5,e5] ~@11 [a4,c#5,d5,e5] ~, e5@53 ~@75, ~ f5@6 ~@9, ~@7 [f#4,g#4]@57, ~@5 b4@11]/8", // C#5 Dm Dmaj7 A F#sus2
BN: "[~@2 [a4,c#5,d5,e5] ~@11 [a4,c#5,d5,e5]@12 [a4,c#5,d5,e5]@5 ~]/2", // A
BO: "~@2 [a4,c#5,d5,e5] ~@11 [a4,c#5,d5,e5] ~", // A
BP: "[~@2 [a4,c#5,d5,e5] ~@27 g#5@22 ~@15 f#5@2 ~@11 c#5 ~@5 g#4@26, ~ [a#4,d5]@7, ~@14 f5@55 f5@12 ~@31, ~@11 b4@45, ~@11 f#5@4 e5@21 e5@20]/7", // A A#
BQ: "[[c5,f5]@8 ~@52 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,g#3,b3]@3 ~ [f#3,g#3,b3]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~, ~@3 [b4,e5]@29]/8", // F5 B Am B G#m7 A E5
BR: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [c4,e4,g4]@3 ~", // A C
BS: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4,b4]@3 ~", // C Cmaj7
BT: "[[a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [a#3,c#4]@3 ~ [c4,d#4,f#4]@3 ~ [c4,d#4,f#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~, ~@12 g#4@7 ~@13]/2", // A#m Cdim G#7
BU: "[c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [c4,d#4,f#4,g#4]@3 ~ [d4,g#4,b4]@3 ~", // G#7 G#dim
BV: "[[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~@17 f4@8 ~@4 [e4,f#4]@11 ~@5 b4@8 ~@6 d5@17 ~@3 [a4,c5,d#5,e5] ~@5, ~@12 c4@24 ~@20 e5@31 ~@9, ~@20 b3@31 ~@19 c5@13 ~@13]/6", // C Esus2 Am
BW: "~@6 [a4,c5,d#5,e5] ~@3 [a4,c5,d#5,e5] ~@5", BX: "~@6 [a4,c5,d#5,e5] ~ [a4,c5,d5,e5]@5 ~@3",
BY: "~@2 [a4,c5,d5,e5] ~@3 [a4,c5,d5,e5] ~@3 [a4,c5,d#5,e5] ~@5", // Am
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.1)
// other · epiano1 · "ElecPiano"
const epiano1 = note(`<
~@2 A B ~@2 A B ~@2 C ~@2 D E F G H ~@14 I@2 ~ J K L ~ M N ~ O@2 P@2 Q@2 ~@13 R S@2 ~@9 T U V W X ~ Y ~ Z AA AB AC ~
AD ~ AE AF ~ AG@2 AH ~@11 AI AJ AK AL ~ AM AN ~ AO AP AQ AR ~ AS ~ AT AU ~ AV AW@2 ~@45 M N ~ AX@2 P@2 Q@2 ~@13 R AY
~@21
>`.pickRestart({
A: "~@2 a#4 ~ f#5 ~ a#4 ~ g#4 ~ f5@3 ~ g#4 ~", B: "g#4 ~ f5 ~ f#4 ~ d#5@7 ~@3", C: "~@2 e6 [c#6,d6] a5@9 ~@3",
D: "a3@11 ~@5", E: "~@6 a5 [g5,g#5] b5@4 ~@2 a4 [f#4,g4], ~@8 e5 ~@7", F: "b4@11 ~@5, e4 ~@15",
G: "~@6 b5 e5 e6 ~ e5 b4 e5 ~ b4 e4", H: "b4@11 ~@5", I: "[~@2 e4 [f#4,a4] d5@19 ~@9, ~@4 b4 ~@27]/2",
J: "~@14 a#4 ~", K: "f#5 ~ a#4 ~ g#4 ~ f5@3 ~ g#4 ~ g#4 ~ f5 ~", L: "f#4 ~ d#5@7 ~@7", M: "~@14 e6 [c#6,d6]",
N: "a5@9 ~@7", O: "[~@2 e6 [c#6,d6] a5 ~ e5 [c#5,d5] a4 ~ e4 [c#4,d4] a3@11 ~@9]/2",
P: "[~@2 a5 [g5,g#5] b5@4 ~@2 a4 [f#4,g4] b4@11 ~@9, ~@4 e5 ~@7 e4 ~@19]/2", // G#maj7 Gmaj7
Q: "[~@2 b5 e5 e6 ~ e5 b4 e5 ~ b4 e4 b4@11 ~@9]/2", R: "~@14 e4 [f#4,a4]", S: "[d5@19 ~@13, b4 ~@31]/2",
T: "~@14 e5 ~", U: "e5 ~ e5 ~ e5 ~ e5 ~ e5 ~@3 d5 ~ c#5 ~", V: "~@2 d5 ~@5 d5 ~@3 c#5 ~ b4 ~",
W: "~@2 b4 ~@5 d5 ~@3 c#5 ~@3", X: "b4 ~@15", Y: "e5 ~@3 e5 ~ f#5 ~@9", Z: "~@6 e5 ~ e5 ~ e5 ~ e5 ~ e5 ~",
AA: "e5 ~@3 d5 ~ c#5 ~@3 d5 ~@5", AB: "d5 ~@3 c#5 ~ b4 ~@3 b4 ~@5", AC: "d5 ~@3 c#5 ~@3 b4 ~@7",
AD: "~@8 e5 ~@3 e5 ~ f#5 ~", AE: "~@8 d5 ~@5 c#5 ~", AF: "~@4 a4 ~@11",
AG: "[~@8 [b3,c4,e4]@4 ~@2 [a3,b3,d4]@7 ~@7 [d4,e4,g4]@4]/2", AH: "~@2 [c4,d4,f#4]@5 ~ [b3,c4,e4]@5 ~@3",
AI: "~@10 e5 ~ e5 ~ e5 ~", AJ: "e5 ~ e5 ~ e5 ~@3 d5 ~ c#5 ~@3 d5 ~", AK: "~@4 d5 ~@3 c#5 ~ b4 ~@3 b4 ~",
AL: "~@4 d5 ~@3 c#5 ~@3 b4 ~@3", AM: "~@12 e5 ~@3", AN: "e5 ~ f#5 ~@13", AO: "~@2 e5 ~ e5 ~ e5 ~ e5 ~ e5 ~ e5 ~@3",
AP: "d5 ~ c#5 ~@3 d5 ~@5 d5 ~@3", AQ: "c#5 ~ b4 ~@3 b4 ~@5 d5 ~@3", AR: "c#5 ~@3 b4 ~@11",
AS: "~@4 e5 ~@3 e5 ~ f#5 ~@5", AT: "~@4 d5 ~@5 c#5 ~@5", AU: "a4 ~@15", AV: "~@2 [b3,c4,e4]@2 ~ [a3,b3,d4]@3",
AW: "[~@8 [d4,e4,g4]@4 ~@2 [c4,d4,f#4]@5 ~ [b3,c4,e4]@5 ~@7]/2", AX: "[~@12 a3@11 ~@9]/2", AY: "d5, b4 ~@15",
})).s("gm_epiano1").gain(0.35)
// chords · piano
const piano = note(`<
A@2 B@2 C D E@2 F@3 G H@2 I@2 J@2 K L M@2 N@2 O P Q R S T U V@3 W X@3 Y Z@2 AA@8 AB AC AD AE AF AG AH AI@2 AJ@2 AK@3
AL@2 AM AN@10 AO AP@2 AQ@2 AR@3 AS AT AU@5 AV@2 AW AX AY AZ@4 BA BB@8 BC BD BE BF BG@2 BH BI@3 BJ BK@2 BL@2 BM@2 BN@2
BO BP@2 BQ BR BQ BS BT BU BV BW@2 BX BV BW@2 BY@3 BZ CA@3 CB@2 CC CD@2 CE@2 CD@2 CF@3 CG CH CI@2 CJ@3 Y Z@2 AA@8 AB AC
AD AE AF AG AH AI@2 AJ@2 CK@3 BX BV BW@2 CL BV BW@2 CL BV BW@2 CL BV BW@2 CL BV BW@2 ~
>`.pickRestart({
A: "[[f#3,a#3,c#4,d#4]@5 ~@5 f#4 ~ f#5 ~ c#5 d#5@5 ~@2 a#4@3 ~ f#4@3 ~ c#4 ~]/2", B: "[[f#3,a#3,d#4]@27 ~@5]/2",
C: "[f#3,a#3,c#4,d#4]@5 ~@5 f#5@3 ~ c#5 [c5,c#5]", D: "a#4@4 ~@2 f#4 ~ c#4@2 ~ f#4@2 c#4@2 c#4",
E: "[d#4@21 ~@5 f#3 ~ f#4 ~ f#3 ~]/2",
F: "[[a#3,d#4] ~ b3 ~ a#3 ~ [g#3,d#4]@6 ~@2 [a#3,d#4]@5 ~ [b3,d#4]@3 ~ c#4 ~ d#4 ~@3 [a3,c4,e4]@10 ~@4 [a3,c4,e4]@3 ~]/3", // D#5 G#5 D#5 B Am
G: "[f#3,b3,d#4]@5 ~@3 [f#3,g#3,b3]@5 ~@3", H: "[[a3,c#4,e4]@24 ~@4 d4 ~@3]/2", I: "[[g3,b3,e4]@25 ~ g4@3 ~ d4 ~]/2",
J: "[[a3,c#4,e4]@27 ~@5]/2", K: "[d4,f#4]@8 ~@4 [c#4,e4]@3 ~", L: "[b3,d4]@3 ~ [a3,c#4]@3 ~ [b3,d4] ~ [c#4,e4]@5 ~",
M: "[[b3,d4]@4 ~@2 [a3,c#4]@5 ~ [g3,b3]@9 ~@3 [g3,b3]@2 ~ [a3,c#4]@2 [b3,d4]@2 ~]/2", // Bm A G A Bm
N: "[[c#4,e4]@5 ~@3 [a#3,c#4]@11 ~ [c4,d#4]@3 ~ [c#4,e4]@4 ~@2 [c4,d#4] ~]/2", // C#m A#m Cm C#m Cm
O: "[c4,d#4]@5 ~@3 [f#3,a#3,c4] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,d#4] ~", // Cm Cm7b5 F# D#m
P: "~@2 [f#3,a#3,c#4] ~@3 c4 c#4 [f#3,a#3,c4]@5 ~@3", Q: "[d4,f#4]@5 ~@3 [b3,d4]@3 ~ d5 ~ [a4,f#5]@2",
R: "~ [f#4,d5]@6 ~ [g3,b3]@2 ~ [b3,d4]@2 [d4,f#4]@2 ~", S: "[d4,f#4]@5 ~@3 [c4,e4]@2 ~ [f#4,a4]@2 [d4,f#4]@2 ~",
T: "[c4,e4]@8 ~@4 [c4,e4]@3 ~", U: "[a3,c4,e4]@5 ~@3 [a3,b3,d4]@5 ~@3",
V: "[[c4,f4,g4]@8 ~@4 [b3,e4,f#4]@21 ~@5 a#3@3 ~ f#4 ~ [f#3,a#3,c#4]@4]/3", W: "~@6 g#4 ~ f#5 ~ [g#4,c#5] d#5@5",
X: "[~@2 [d#4,g#4]@3 ~ [c#4,f#4]@3 ~ c#4 ~ [f#3,a#3,c#4,d4]@21 ~@5 f#3 ~ f#4 ~ f#3 ~ [a#3,d#4] ~ b3 ~]/3", // G#5 F#5 F# D#5
Y: "a#3 ~ [g#3,d#4]@6 ~@2 [a#3,d#4]@5 ~", // G#5 D#5
Z: "[[b3,d#4]@3 ~ c#4 ~ d#4 ~@3 [a3,c4,e4]@10 ~@4 [a3,c4,e4]@3 ~ [f#3,b3,d#4]@4]/2", // B Am B
AA: "[~@4 [f#3,g#3,b3]@5 ~@3 [a3,c#4,e4]@24 ~@4 d4 ~@3 [g3,b3,e4]@25 ~ g4@3 ~ d4 ~ [a3,c#4,e4]@27 ~@5 [d4,f#4]@8 ~@4 [c#4,e4]@3 ~ [b3,d4]@3 ~]/8", // G#m7 A Em A D C#m Bm
AB: "[a3,c#4]@3 ~ [b3,d4] ~ [c#4,e4]@5 ~ [b3,d4]@4", AC: "~@2 [a3,c#4]@5 ~ [g3,b3]@8",
AD: "~@4 [g3,b3]@2 ~ [a3,c#4]@2 [b3,d4]@2 ~ [c#4,e4]@4", AE: "~@4 [a#3,c#4]@11 ~",
AF: "[c4,d#4]@3 ~ [c#4,e4]@4 ~@2 [c4,d#4] ~ [c4,d#4]@4", // Cm C#m Cm
AG: "~@4 [f#3,a#3,c4] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,d#4] ~@3 [f#3,a#3,c#4] ~", // Cm7b5 F# D#m F#
AH: "~@2 c4 c#4 [f#3,a#3,c4]@5 ~@3 [d4,f#4]@4", // Cm7b5 D
AI: "[~@4 [b3,d4]@3 ~ d5 ~ [a4,f#5]@3 [f#4,d5]@6 ~ [g3,b3]@2 ~ [b3,d4]@2 [d4,f#4]@2 ~ [d4,f#4]@4]/2", // Bm D G Bm D
AJ: "[~@4 [c4,e4]@2 ~ [f#4,a4]@2 [d4,f#4]@2 ~ [c4,e4]@8 ~@4 [c4,e4]@3 ~ [a3,c4,e4]@4]/2", // C F#m D C Am
AK: "[~@4 [a3,b3,d4]@5 ~@3 [c4,f4,g4]@8 ~@4 [b3,e4,f#4]@21 ~@3]/3", // Bm7 Csus4 Bsus4
AL: "[~@2 a#3@3 ~ f#4 ~ [a4,c#5,e5]@4 ~@2 [a4,d5,f#5]@13 ~@3 e3 ~]/2", AM: "~@2 e3 ~ g3@3 ~@7 [e3,a3,c#4]@2",
AN: "~@2 [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@2", AO: "~@2 [g3,b3,d4]@5 ~ [a3,c#4,e4]@5 ~@3",
AP: "~@6 [d3,g3,b3]@3 ~ [f3,a3,c4]@5 ~", AQ: "[b3,e4,g#4,b4] ~@5 [b3,e4,g#4,b4]@7 ~@3",
AR: "~@6 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~", AS: "[a3,c#4,e4]@5 ~@9 [d3,g3,b3]@2",
AT: "~@2 [f3,a3,c4]@5 ~@7 [d3,g3,b3]@2", // F G
AU: "[~@2 [f3,a3,c4]@5 ~ [b3,e4,g#4,b4] ~@5 [b3,e4,g#4,b4]@7 ~@3 [b3,e4,g#4,b4] ~@5 [b3,e4,g#4,b4]@7 ~@3 [g3,b3,d4]@27 ~@9 [d4,e4,g4]@4]/5", // F E G Em7
AV: "[~@2 [c4,d4,f#4]@5 ~ [b3,c4,e4]@4 ~@2 [a3,b3,d4]@7 ~@7 [d4,e4,g4]@4]/2", // D7 Cmaj7 Bm7 Em7
AW: "~@2 [c4,d4,f#4]@5 ~ [b3,c4,e4]@5 ~@3", AX: "[b3,c4,e4]@5 ~@5 a3 [b3,c4] d4 ~ d4 [b3,c4]", AY: "a3@11 ~@5",
AZ: "[[f#3,a#3,c#4]@4 ~@2 [g3,b3,d4]@6 ~@2 [a3,c#4,e4]@6 ~@2 [g3,b3,d4]@5 ~ e4@21 ~@3 [d4,g4,b4]@5 ~@3 [c4,f4,a4]@4]/4", // F# G A G F
BA: "~@4 [f4,a4,c5]@5 ~@3 [d4,g4,b4]@4", // F G
BB: "[~@10 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@7 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~ [a3,c#4,e4]@5 ~@7]/8", // A G A G A G A G …
BC: "~@2 [d3,g3,b3]@3 ~ [f3,a3,c4]@5 ~@5", BD: "~@2 [d3,g3,b3]@3 ~ [f3,a3,c4]@5 ~ [b3,e4,g#4,b4] ~@3",
BE: "~@2 [b3,e4,g#4,b4]@7 ~@3 [b3,e4,g#4,b4] ~@3", BF: "~@2 [b3,e4,g#4,b4]@7 ~@7",
BG: "~@2 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~@5", BH: "~@2 [e3,a3,c#4]@3 ~ [g3,b3,d4]@5 ~ [a3,c#4,e4]@4",
BI: "[~@10 [d3,g3,b3]@3 ~ [f3,a3,c4]@5 ~@7 [d3,g3,b3]@3 ~ [f3,a3,c4]@5 ~ [b3,e4,g#4,b4] ~@5 [b3,e4,g#4,b4]@6]/3", // G F G F E
BJ: "~@4 [b3,e4,g#4,b4] ~@5 [b3,e4,g#4,b4]@6", BK: "[~@4 [g3,b3,d4]@27 ~]/2",
BL: "[~@8 [d4,e4,g4]@5 ~ [c4,d4,f#4]@5 ~ [b3,c4,e4]@4 ~@2 [a3,b3,d4]@6]/2", // Em7 D7 Cmaj7 Bm7
BM: "[~@8 [d4,e4,g4]@4 ~@2 [c4,d4,f#4]@5 ~ [b3,c4,e4]@5 ~@3 [b3,c4,e4]@4]/2", // Em7 D7 Cmaj7
BN: "[~@6 a3 [b3,c4] d4 ~ d4 [b3,c4] a3@11 ~@5 [f#3,a#3,c#4]@4]/2", BO: "~ [g3,b3,d4]@3 ~ [a3,c#4,e4]@3",
BP: "[~@2 [g3,b3,d4]@5 ~ e4@21 ~@3]/2", BQ: "[d4,g4,b4]@5 ~@3 [c4,f4,a4]@5 ~@3",
BR: "[f4,a4,c5]@5 ~@3 [d4,g4,b4]@5 ~@3", BS: "[g3,b3,e4]@5 ~@3 [f3,a3,c4]@5 ~@3", BT: "[a#3,d4,d#4,f4]@11 ~@5",
BU: "[a#3,d4,d#4,f4] ~@5 [a3,c#4,d4,e4]@7 ~@3", BV: "~@2 [a3,c#4,d4,e4] ~@3 [a3,c#4,d4,e4] ~@3 [a3,c#4,d4,e4] ~@5",
BW: "~@6 [a3,c#4,d4,e4] ~@3 [a3,c#4,d4,e4] ~@5", BX: "~@6 [a3,c#4,d4,e4]@7 ~@3",
BY: "[~@6 [a#3,d4,f4]@6 ~@2 [b3,d#4,f#4]@6 ~@2 [e4,g#4,b4]@13 ~@5 [d#4,g4,a#4]@5 ~@3]/3", // A# B E D#
BZ: "[d4,f#4,a4]@5 ~@3 [c#4,e4,g#4]@5 ~@3", // D C#m
CA: "[[c4,e4,g4]@5 ~@3 [c#4,f4,g#4] ~@5 [b3,e4]@21 ~@5 [g3,b3,e4]@5 ~@3, ~@7 g#3@13 ~@4]/3", // C C# E5 Em
CB: "[[a3,c4,e4]@5 ~@3 [a#3,d4,d#4,f4]@11 ~@5 [a#3,d4,d#4,f4] ~@5 [a3,c#4,d4,e4] ~]/2", // Am A# A
CC: "[a3,c#4,d4,e4]@5 ~@5 [a3,c#4,d4,e4] ~@3 [a3,c#4,d4,e4] ~", CD: "~@2 [a3,c#4,d4,e4] ~@11 [a3,c#4,d4,e4] ~",
CE: "[~@2 [a3,c#4,d4,e4] ~@11 [a3,c#4,d4,e4]@7 ~@5 [a3,c#4,d4,e4] ~@3 [a3,c#4,d4,e4] ~]/2", // A
CF: "[~@2 [a3,c#4,d4,e4] ~@11 [a#3,d4,f4]@6 ~@2 [b3,d#4,f#4]@6 ~@2 [e4,g#4,b4]@13 ~@5]/3", // A A# B E
CG: "[d#4,g4,a#4]@5 ~@3 [d4,f#4,a4]@5 ~@3", CH: "[c#4,e4,g#4]@5 ~@3 [c4,e4,g4]@5 ~@3",
CI: "[[c#4,f4,g#4] ~@5 [b3,e4]@21 ~@5, ~@3 g#3@13]/2", // C# E5
CJ: "[[c4,f4,g4]@8 ~@4 [b3,e4,f#4]@8 ~@6 e5 [a5,b5] d6@11 ~@5 [a#3,d#4] ~ b3 ~]/3", // Csus4 Bsus4 Asus2 D#5
CK: "[~@4 [a3,b3,d4]@5 ~@3 [c4,f4,g4]@8 ~@4 [b3,e4,f#4]@24]/3", CL: "~@6 [a3,c#4,d4,e4] ~ [a3,c#4,d4,e4]@5 ~@3",
})).s("gm_piano").gain(0.27).pan(0.9)
// bass · fretless bass · "Bass"
const bass = note(`<
A@2 B@2 A@2 C@2 D@3 E F@2 G@2 H@2 I J K@2 L M N O P Q R@2 S T@7 U V W X@2 Y@2 Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL
AM AN@3 AO@2 AP AQ@10 AR AS@2 AT@2 AU@3 AV AW AX@5 AY@2 AZ BA@2 BB@4 BC BD BE@6 BF BG BH BI BJ BK@2 BL BM BN BO BP
BQ@2 BR@2 BS@4 BT BU@2 BV@3 BW BX BY BZ CA@2 CB BZ CA@2 CC@3 CD CE@3 CF@2 CG CH@2 CI@2 CH@2 CJ@3 CK CL CM@2 CN@3 U V W
X@2 Y@2 Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN@3 CO BZ CP@2 CQ BZ CP@2 CQ BZ CP@2 CQ BZ CP@2 CQ BZ CP@2 CR
>`.pickRestart({
// … 193 more lines
More by Steely Dan
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.