0:00/0:00
// Reelin' In the Years — Steely Dan
// 125 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 26, 4/4 at bar 26, 2/4 at bar 50, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 147 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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 · pan flute
const pan_flute = note(`<
~@17 A B C D E F G H I@2 J@4 K@2 L@2 J@4 I@2 M N@2 O@2 P Q R S T U T V T W T V T U T V T S T ~@33 A X C D Y F G H I@2
J@4 K@2 L@2 J@4 I@2 ~@25
>`.pickRestart({
A: "~@3 e5@2 ~ d5 ~ d5 ~ d5@3 ~ d5 ~ d5 ~ c#5 ~ c#5 ~ c#5 ~", B: "b4@2 b4@3 ~ b4@2 a4@2 a4@6 ~@4 b4 ~ c#5 ~",
C: "d5@2 ~ d5@2 ~ d5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~",
D: "b4@2 b4@2 b4@2 a4@2 a4@6 ~ e5@2 ~ f#5@2 ~ g5@3", E: "~@2 g5!2 ~ g5 g5@2 ~ g5@2 ~ g5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~",
F: "f5@2 ~ f5@2 ~ f5@2 ~ a5@2 ~ e5@6 ~@3 a4@2 ~", G: "d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~",
H: "b4@2 ~ a4@2 ~ a4@4 ~@8 e4@2 ~ e4@2 ~", I: "[f#4@2 ~ a4@2 ~ a4@2 ~ f#4@2 ~ b4@4 ~@2 a4@14 ~@16]/2",
J: "[f#4@2 a4@2 a4@2 a4@2 ~ f#4@2 ~ b4@4 ~@2 a4@14 ~@10 e4@2 ~ e4@2 ~]/2",
K: "[f#4@2 ~ a4@2 ~ b4@2 ~ f#4@2 ~ b4@4 ~@2 a4@14 ~@10 e4@2 ~ e4@2 ~]/2",
L: "[f#4@2 a4@2 a4@2 a4@2 ~ f#4@2 ~ b4@4 ~@2 a4@14 ~@16]/2", M: "~@15 e5@2 ~ d5@2 d5@2 d5@2",
N: "[d5@2 d5@2 d5@2 c#5@2 c#5@2 c#5@2 b4@2 b4@3 ~ b4@2 a4@2 a4@6 ~@6 c#5@2 d5@2 ~ d5@2 ~ d5@2 ~ c#5@2 ~]/2",
O: "[c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~ b4@2 b4@2 b4@2 a4@2 a4@6 ~@4 f#5@2 ~ g5@3 g5@4 ~@2 g5@2 ~ g5@2 ~]/2",
P: "g5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f5@2 ~ f5@2 ~ f5@2 ~ a5@2 ~", Q: "e5@6 ~@3 a4@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~",
R: "c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5@2 ~ b4@2 ~ a4@2 ~ a4@4 ~@2", S: "~@6 e4@2 ~ e4@2 ~ f#4@2 ~ a4@2 ~ a4@2 ~ f#4@2 ~",
T: "b4@2 ~ a4@7 ~@2", U: "~@12 f#4@2 a4@2 a4@2 a4@2 ~ f#4@2 ~", V: "~@6 e4@2 ~ e4@2 ~ f#4@2 a4@2 a4@2 a4@2 ~ f#4@2 ~",
W: "~@6 e4@2 ~ e4@2 ~ f#4@2 ~ a4@2 ~ b4@2 ~ f#4@2 ~", X: "b4@2 b4@3 ~ b4@2 a4@2 a4@6 ~@6 c#5@2",
Y: "~@2 g5@3 ~ g5@2 ~ g5@2 ~ g5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~",
})).s("gm_pan_flute").gain(0.44).pan(0.4)
// other · electric guitar jazz
const electric_guitar_jazz = note(`<
~ A@2 B@2 A@2 B@2 A@2 B@2 A@2 B C@8 D@2 E F G H E F I@2 E F G H E J K@7 L@3 M@2 N@2 M@2 N O M@2 N@2 M@2 P@2 Q R S T Q
U S ~ Q R S T Q U S V W@2 V@2 W@2 V@2 W X V Y W X Z@8 AA@3 E F G H E F I@2 E F G H E J P AB AC AD AE AF AG AD AH AI AJ
AK V AI AJ AK V AI AJ AK V AI AJ AK V AL
>`.pickRestart({
A: "g3@2 ~ a3@2 ~ b3@2 ~ [b3,d4,g4]@5 ~ d4@2 ~ e4@2 ~ d4@2 ~", // G
B: "a3@2 ~ b3@2 ~ c#4@2 ~ [c#4,e4,a4]@5 ~ e4@2 ~ f#4@2 ~ e4@2 ~", // A
C: "[a3@2 ~ b3@2 ~ c#4@2 ~ [c#4,e4,a4]@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@5 ~ e5@2 ~ f#5@2 ~ g5@7 ~@2 a5@2 ~ f#5@7 ~@2 a5@2 ~ f5@7 ~@2 a5@2 ~ e5@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@3]/8", // A
D: "[~@6 a5@2 ~ c#5@19 ~@8 g3@2 ~ g3@2 ~ b3@2 ~ d4@2 ~]/2",
E: "[b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ e4@2 ~ d4@2 ~ g3@2 ~ g3@2 ~ b3@2 ~ d4@2 ~", // G
F: "[b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ e4@2 ~ d4@2 ~ a3@2 ~ a3@2 ~ c#4@2 ~ e4@2 ~", // G
G: "[c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 ~ f#4@2 ~ e4@2 ~ a3@2 ~ a3@2 ~ c#4@2 ~ e4@2 ~", // A
H: "[c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 ~ f#4@2 ~ e4@2 ~ g3@2 ~ g3@2 ~ b3@2 ~ d4@2 ~", // A
I: "[[c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 ~ f#4@2 ~ e4@2 ~ [a3,c#4,e4]@16 ~@8 g3@2 ~ g3@2 ~ b3@2 ~ d4@2 ~]/2", // A
J: "[b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ e4@2 ~ d4@2 ~ f#3@2 ~ f#3@2 ~ [a4,c#5,f#5]@2 ~ [a4,c#5,f#5]@2 ~", // G F#m
K: "[f#3@2 ~ f#3@2 ~ [a4,c#5,f#5]@2 ~ [a4,c#5,f#5]@2 ~ f#3@2 ~ f#3@2 ~ [a4,c#5,f#5]@2 ~ c#5@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@5 ~ e5@2 ~ f#5@2 ~ g5@7 ~@2 a5@2 ~ f#5@7 ~@2 a5@2 ~ f5@7 ~@2 a5@2 ~ e5@3]/7", // F#m
L: "[~@3 d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@19 ~@8]/3",
M: "g3@2 ~ g3@2 ~ b3@2 ~ d4@2 ~ [b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ e4@2 ~ d4@2 ~", // G
N: "a3@2 ~ a3@2 ~ c#4@2 ~ e4@2 ~ [c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 ~ f#4@2 ~ e4@2 ~", O: "[a3,c#4,e4]@2 ~",
P: "f#3@2 ~ f#3@2 ~ [a4,c#5,f#5]@2 ~ [a4,c#5,f#5]@2 ~ f#3@2 ~ f#3@2 ~ [a4,c#5,f#5]@2 ~ [a4,c#5,f#5]@2 ~", // F#m
Q: "b4@2 ~ b4@4 ~ g4 ~ a4 ~ b4@2 ~ b4@4 ~ g4 ~ a4 ~",
R: "b4 ~ c#5 ~ d5 ~ c#5 ~ c#5 ~ a4 ~ g4 ~ a4 ~ b4 ~ c#5 ~ b4 ~ a4 ~",
S: "c#5@2 ~ c#5@4 ~ a4 ~ b4 ~ c#5@2 ~ c#5@4 ~ a4 ~ b4 ~", T: "f#5 e5 c#5 a5 e5 c#5 f#5 e5 c#5 a5 e5 c#5",
U: "b4 ~ c#5 ~ d5 ~ c#5 ~ b4 ~ a4 ~ g4 ~ a4 ~ b4 ~ c#5 ~ b4 ~ a4 ~",
V: "f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~ f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~", W: "d5 b4 a4 f#5 b4 a4 d5 b4 a4 f#5 b4 a4",
X: "d5@2 b4@2 a4@2 f#5@2 b4@2 a4@2 [a4,b4,d5]@3 ~ [b4,c#5,e5]@3 ~ [d5,e5,g5]@3 ~", // Bm7 C#m7 Em7
Y: "f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~ [b4,c#5,e5]@3 ~ [d5,e5,g5]@3 ~ [b4,c#5,e5]@3 ~", // C#m7 Em7 C#m7
Z: "[[b4,c#5,e5]@30 ~@3 c#5@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@5 ~ d5@2 ~ e5@2 ~ f#5@7 ~@2 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@5 ~ e5@2 ~ f#5@2 ~ g5@7 ~@2 a5@2 ~ f#5@7 ~@2 a5@2 ~ f5@7 ~@2 a5@2 ~ e5@5 ~ d5@2 ~ e5@2 ~ f#5@3]/8", // C#m7
AA: "[~@6 a5@2 ~ e5@7 ~@2 a5@2 ~ d5@7 ~@2 a5@2 ~ c#5@19 ~@8 g3@2 ~ g3@2 ~ b3@2 ~ d4@2 ~]/3",
AB: "f#3@2 ~ f#3@2 ~ [a4,c#5,f#5]@2 ~ [a4,c#5,f#5]@2 ~ b4@2 ~ b4@4 ~ g4 ~ a4 ~", // F#m
AC: "b4@2 ~ b4@4 ~ g4 ~ a4 ~ b4 ~ c#5 ~ d5 ~ c#5 ~ c#5 ~ a4 ~",
AD: "g4 ~ a4 ~ b4 ~ c#5 ~ b4 ~ a4 ~ c#5@2 ~ c#5@4 ~ a4 ~ b4 ~",
AE: "c#5@2 ~ c#5@4 ~ a4 ~ b4 ~ f#5 e5 b4 ~ a4 ~ a5 e5 d5 ~ c#5 ~",
AF: "f#5 e5 d5 ~ c#5 ~ a5 e5 d5 ~ c#5 ~ b4@2 ~ b4@4 ~ g4 ~ a4 ~",
AG: "b4@2 ~ b4@4 ~ g4 ~ a4 ~ b4 ~ c#5 ~ d5 ~ c#5 ~ b4 ~ a4 ~",
AH: "c#5@2 ~ c#5@4 ~ a4 ~ b4 ~ f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~",
AI: "f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~ b5@2 a5@2 g5@2 b5@2 a5@2 g5@2", AJ: "b5 a5 g5 b5 a5 g5 b5 a5 g5 b5 a5 g5",
AK: "b5@2 a5@2 g5@2 b5@2 a5@2 g5@2 f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~", AL: "f#5 ~ e5 ~ c#5 ~ a5 ~ e5 ~ c#5 ~@13",
})).s("gm_electric_guitar_jazz").gain(0.27).pan(0.1)
// chords · piano
const piano = note(`<
~ A@2 B@2 A@2 B@2 A@2 B@2 A@2 B C@8 D@2 E F B G E F H@2 E F B G E I J@8 K@2 A@2 B@2 A@2 B L A M@2 N O@8 ~@4 P@7 ~@66
>`.pickRestart({
A: "[a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2 [a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3, [g2,g3]@2 ~ [g2,g3]@2 ~", // Bm7 G
B: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [a2,a3]@2 ~ [a2,a3]@2 ~", // C#m7 A
C: "[[b3,c#4,e4]@2 ~ [b3,c#4,e4]@6 [a2,c#4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [d3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [c#3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@5 ~ [c#3,e4]@2 ~ [d3,f#4]@2 ~ [e3,g4]@5 ~ [b2,e4]@2 ~ [e3,g4]@2 ~ [d#3,f#4]@5 ~ [b2,d#4]@2 ~ [d#3,f#4]@2 ~ [d3,f4]@5 ~ [b2,d4]@2 ~ [d3,f4]@2 ~ [c#3,e4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [c#3,e4]@2 ~ [b2,d4]@3, [a2,a3] ~@31]/8", // C#m7 A Bm C#m D D5 D C#m …
D: "[~@3 [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@19 ~@8 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, ~@9 [g2,g3]@2 ~]/2", // F#7 Bm A Bm7 G
E: "[a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [g2,g3]@2 ~ [g2,g3]@2 ~", // Bm7 G
F: "[a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [g2,g3]@2 ~ [a2,a3]@2 ~", // Bm7 C#m7 G A
G: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [a2,a3]@2 ~ [g2,g3]@2 ~", // C#m7 Bm7 A G
H: "[[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [a2,a3,b3,c#4,e4]@16 ~@8 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [a2,a3]@2 ~@7 [g2,g3]@2 ~]/2", // C#m7 A Bm7 A G
I: "[a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [g2,g3]@2 ~ [f#2,f#3]@2 ~", // Bm7 C#m7 G F#
J: "[[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@5 ~ [a2,c#4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [d3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [c#3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@5 ~ [c#3,e4]@2 ~ [d3,f#4]@2 ~ [e3,g4]@5 ~ [b2,e4]@2 ~ [e3,g4]@2 ~ [d#3,f#4]@5 ~ [b2,d#4]@2 ~ [d#3,f#4]@2 ~ [d3,f4]@5 ~ [b2,d4]@2 ~ [d3,f4]@2 ~ [c#3,e4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@3, [f#2,f#3]@4 ~@2 [f#2,f#3]@3 ~@87]/8", // C#m7 A Bm C#m D D5 D C#m …
K: "[~@3 [a2,c#4]@2 ~ [c#3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@19 ~@8]/2", // A C#m Bm F#7 Bm A
L: "[a2,a3,b3,c#4,e4]@2 ~", // A
M: "[[a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2 [a3,b3,d4]@2 ~ a3@9 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@9 [b3,c#4,e4]@3 [b3,c#4,e4]@9, [g2,g3]@2 ~ [g2,g3]@2 ~ a2@2 ~ a2@2 ~, ~@5 d4@11, ~@5 b3@2 ~ a3@4 a3@4]/2", // Bm7 C#m7 G
N: "[c#4,e4] [c#4,e4]@3 [c#4,e4] [c#4,e4]@3, b3, a3!2, a2@2 ~ a2@2 ~", // C#m
O: "[[a3,b3,d4]@3 [a3,b3,d4]@9 [a3,b3,d4]@3 b3@9 [g2,g3]@8 ~@7 b3@9 [b3,c#4,e4]@3 [b3,c#4,e4]@9 [b3,c#4,e4]@3 e4@9 [f#2,f#3]@8 ~@4 [f#2,f#3]@8 ~@100, [g2,g3]@8 ~@4 [g2,g3]@8 ~@4 b3@15 ~@24 [b3,c#4]@129, ~@5 [a3,d4]@59, ~@9 [g2,g3]@2 ~ [f#2,f#3]@2 ~ [f#2,f#3]@2 ~ e4@30]/8", // Bm7 G C#m7 F# G Bsus2 D5 G …
P: "[[g2,d3,a3,b3,d4]@3 [g2,d3,b3]@9 [g2,d3,b3]@3 [g2,d3]@9 d3@3 ~@21 [a2,e3]@2 ~ [a2,e3]@11 ~ [a2,e3]@9 [a2,e3]@3 [a2,e3]@12 ~@12 g2@11 ~@10 [g2,d3]@2 ~ [g2,d3]@11 ~@34, ~@3 [a3,d4]@12 [a3,d4]@81 b3@62 ~@10, ~@15 b3@33 c#4@110 ~@10, ~@24 g2@24 b3@39 [a2,e3]@71 ~@10, ~@27 d3@83 ~@58]/7", // G G5 A5 G5 D5 A5
})).s("gm_piano").gain(0.27).pan(0.9)
// bass · fretless bass
const bass = note(`<
~ A@2 B@2 C@2 B@2 C@2 B@2 C@2 B D@8 E@2 F G H I F G J@2 F G H I F K L@8 M@2 F@2 H@2 F@2 H N F@2 H@2 F@2 O@2 P@2 Q@2 R
P S Q P@2 Q@2 R P S Q C@2 B@2 C@2 B@2 C T U V W T X@8 Y@3 F G H I F G J@2 F G H I F K Z AA P AB Q AC P AB Q AC P AB Q
AC P AB Q AC P AB Q AC P AB Q AD
>`.pickRestart({
A: "g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~ e3@2 ~ e3@2 ~ d3@2 ~ e3@2 ~",
B: "a2@2 ~ a2@2 ~ a3@2 ~ a3@2 ~ f#3@2 ~ f#3@2 ~ e3@2 ~ e3@2 ~",
C: "g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~ e3@2 ~ e3@2 ~ d3@2 ~ d3@2 ~",
D: "[a2@2 ~ a2@2 ~ a3@2 ~ a2@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@5 ~ c#3@2 ~ d3@2 ~ e3@5 ~ b2@2 ~ e3@2 ~ d#3@5 ~ b2@2 ~ d#3@2 ~ d3@5 ~ b2@2 ~ d3@2 ~ c#3@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@3]/8",
E: "[~@3 f#2@2 ~ b2@2 ~ a2@19 ~@8 g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~]/2",
F: "g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~ g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~",
G: "g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~ a2@2 ~ a2@2 ~ a3@2 ~ a3@2 ~",
H: "a2@2 ~ a2@2 ~ a3@2 ~ a3@2 ~ a2@2 ~ a2@2 ~ a3@2 ~ a3@2 ~",
I: "a2@2 ~ a2@2 ~ a3@2 ~ a3@2 ~ g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~",
J: "[a2@2 ~ a2@2 ~ a3@2 ~ a3@2 ~ a2@16 ~@8 g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~]/2",
K: "g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~ f#2@2 ~ f#2@2 ~ c#3@2 ~ c#3@2 ~",
L: "[e3@2 ~ e3@2 ~ f#3 ~ e3 ~ c#3 ~ f#2@2 ~ f#2@2 ~ c#3@2 ~ a2@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@5 ~ c#3@2 ~ d3@2 ~ e3@5 ~ b2@2 ~ e3@2 ~ d#3@5 ~ b2@2 ~ d#3@2 ~ d3@5 ~ b2@2 ~ d3@2 ~ c#3@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@3]/8",
M: "[~@3 a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@19 ~@8]/2", N: "a2@2 ~",
O: "f#2@2 ~ f#2@2 ~ c#3@2 ~ c#3@2 ~ e3@2 ~ e3@2 ~ f#3 ~ e3 ~ c#3 ~",
P: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~",
Q: "a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~", R: "g2@2 ~ g2@5 ~ g2@2 ~ g2@2 ~ g2@5 ~ g2@2 ~",
S: "a2@2 ~ a2@5 ~ a2@2 ~ a2@2 ~ a2@5 ~ a2@2 ~", T: "g4@2 ~ d4@2 ~ g4@2 ~ d4@2 ~ g2@3 ~ a2@3 ~ c3@3 ~",
U: "a2@2 ~ e4@2 ~ a4@2 ~ e4@2 ~ a4 ~ a4 ~ e4 ~ a4@2 ~ e4@2 ~", V: "a4@2 ~ e4@2 ~ a4@2 ~ g#4@2 ~ a2@3 ~ c3@3 ~ a2@3 ~",
W: "g2@2 ~ d4@2 ~ g4@2 ~ d4@2 ~ g4 ~ g4 ~ d4 ~ g4@2 ~ d4@2 ~",
X: "[a2@30 ~@3 a2@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@5 ~ b2@2 ~ c#3@2 ~ d3@5 ~ a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@5 ~ c#3@2 ~ d3@2 ~ e3@5 ~ b2@2 ~ e3@2 ~ d#3@5 ~ b2@2 ~ d#3@2 ~ d3@5 ~ b2@2 ~ d3@2 ~ c#3@5 ~ b2@2 ~ c#3@2 ~ d3@3]/8",
Y: "[~@3 a2@2 ~ d3@2 ~ c#3@5 ~ a2@2 ~ c#3@2 ~ b2@5 ~ f#2@2 ~ b2@2 ~ a2@19 ~@8 g2@2 ~ g2@2 ~ g3@2 ~ g3@2 ~]/3",
Z: "e3@2 ~ e3@2 ~ f#3 ~ e3 ~ c#3 ~ f#2@2 ~ f#2@2 ~ c#3@2 ~ c#3@2 ~",
AA: "e3@2 ~ e3@2 ~ f#3 ~ e3 ~ c#3 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~",
AB: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~",
AC: "a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~", AD: "a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~@13",
})).s("gm_fretless_bass").gain(0.27)
// chords · ocarina
const ocarina = note(`<
~@24 A B@2 C@2 D@2 E@2 F@2 C@2 D@2 G@2 ~@8 H I J K L I M K N I J K L I M K ~@40 A B@2 C@2 D@2 E@2 F@2 C@2 D@2 G@2 ~@25
>`.pickRestart({
A: "~@18 [a3,c#4]@2 ~ [a3,c#4]@2 ~", // A
B: "[[b3,d4]@2 ~ [c#4,e4]@2 ~ [c#4,e4]@2 ~ [b3,d4]@2 ~ f#4@4 ~@2 f#4@14 ~@16, ~@3 d4@5 ~@4]/2", // Bm C#m Bm
C: "[[b3,d4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2 ~ [b3,d4]@2 ~ d4@6 [c#4,e4]@14 ~@10 [a3,c#4]@2 ~ [a3,c#4]@2 ~, ~@3 f#4 ~@8]/2", // Bm D Bm C#m A
D: "[[b3,d4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2 ~ [b3,d4]@2 ~ f#4@4 ~@2 f#4@14 ~@10 [a3,c#4]@2 ~ [a3,c#4]@2 ~, ~@3 d4@5 ~@4]/2", // Bm D Bm A
E: "[[b3,d4]@2 ~ [d4,f#4]@2 ~ [d4,f#4]@2 ~ [b3,d4]@2 ~ d4@6 [c#4,e4]@14 ~@10 [a3,c#4]@2 ~ [a3,c#4]@2 ~, ~@3 f#4 ~@8]/2", // Bm D Bm C#m A
F: "[[b3,d4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@2 ~ [b3,d4]@2 ~ f#4@4 ~@2 f#4@14 ~@16, ~@3 d4@5 ~@4]/2", // Bm C#m Bm
G: "[[b3,d4]@2 ~ [d4,f#4]@2 ~ [d4,f#4]@2 ~ [b3,d4]@2 ~ d4@6 [c#4,e4]@14 ~@16, ~@3 f#4 ~@8]/2", // Bm D Bm C#m
H: "~@6 [a3,c#4]@2 ~ [a3,c#4]@2 ~ [b3,d4]@2 ~ [c#4,e4]@2 ~ [c#4,e4]@2 ~ [b3,d4]@2 ~", I: "f#4@2 ~ f#4@7 ~@2, d4@5 ~",
J: "~@12 [b3,d4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2 ~ [b3,d4]@2 ~", K: "d4@3 [c#4,e4]@7 ~@2, f#4 ~@5",
L: "~@6 [a3,c#4]@2 ~ [a3,c#4]@2 ~ [b3,d4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2 ~ [b3,d4]@2 ~", // A Bm D Bm
M: "~@6 [a3,c#4]@2 ~ [a3,c#4]@2 ~ [b3,d4]@2 ~ [d4,f#4]@2 ~ [d4,f#4]@2 ~ [b3,d4]@2 ~", // A Bm D Bm
N: "~@6 [a3,c#4]@2 ~ [a3,c#4]@2 ~ [b3,d4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@2 ~ [b3,d4]@2 ~", // A Bm C#m Bm
})).s("gm_ocarina").gain(0.31).pan(0.6)
// chords · piano
const piano_2 = note(`<
~@81 A B@2 C@2 B@2 C@2 B D C E B D F@8 G@3 H I C J H I K@2 H I C J H L M N ~@7 O B P C J B P C J B P C J B P C Q
>`.pickRestart({
A: "[a2,e3]@2 ~ [a2,e3]@7 ~@2 [a2,e3]@2 ~ [a2,e3]@7 ~@2", // A5
B: "[a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [g2,g3]@2 ~ [g2,g3]@2 ~", // Bm7 G
C: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [a2,a3]@2 ~ [a2,a3]@2 ~", // C#m7 A
D: "[a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2 [a3,b3,d4]@3 ~ [b3,c#4,e4]@3 ~ [d4,e4,g4]@3 ~, [g2,g3]@2 ~ [g2,g3]@2 ~", // Bm7 C#m7 Em7 G
E: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [b3,c#4,e4]@3 ~ [d4,e4,g4]@3 ~ [b3,c#4,e4]@3 ~, [a2,a3]@2 ~ [a2,a3]@2 ~", // C#m7 Em7 C#m7 A
F: "[[a2,a3,b3,c#4,e4]@30 ~@3 [a2,c#4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [d3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@5 ~ [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [c#3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@5 ~ [c#3,e4]@2 ~ [d3,f#4]@2 ~ [e3,g4]@5 ~ [b2,e4]@2 ~ [e3,g4]@2 ~ [d#3,f#4]@5 ~ [b2,d#4]@2 ~ [d#3,f#4]@2 ~ [d3,f4]@5 ~ [b2,d4]@2 ~ [d3,f4]@2 ~ [c#3,e4]@5 ~ [b2,d4]@2 ~ [c#3,e4]@2 ~ [d3,f#4]@3]/8", // A Bm C#m D D5 D C#m A …
G: "[~@3 [a2,d4]@2 ~ [d3,f#4]@2 ~ [c#3,e4]@5 ~ [a2,c#4]@2 ~ [c#3,e4]@2 ~ [b2,d4]@5 ~ [f#2,e4]@2 ~ [b2,d4]@2 ~ [a2,c#4]@19 ~@8 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, ~@15 [g2,g3]@2 ~]/3", // D5 D C#m A C#m Bm F#7 Bm …
H: "[a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [g2,g3]@2 ~ [g2,g3]@2 ~", // Bm7 G
I: "[a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [g2,g3]@2 ~ [a2,a3]@2 ~", // Bm7 C#m7 G A
J: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [a2,a3]@2 ~ [g2,g3]@2 ~", // C#m7 Bm7 A G
K: "[[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [a2,a3,b3,c#4,e4]@16 ~@8 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, [a2,a3]@2 ~@7 [g2,g3]@2 ~]/2", // C#m7 A Bm7 A G
L: "[a3,b3,d4]@2 ~ [a3,b3,d4]@6 ~@3 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [g2,g3]@2 ~ [f#2,f#3]@2 ~", // Bm7 C#m7 G F#
M: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@6 ~@3, [f#2,f#3]@2 ~ [f#2,f#3]@2 ~", // C#m7 F#
N: "[b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@14, [f#2,f#3] ~@2", O: "~@12 [a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2, ~@3 [g2,g3]@2 ~",
P: "[a3,b3,d4]@2 ~ [a3,b3,d4]@7 ~@2 [b3,c#4,e4]@2 ~ [b3,c#4,e4]@7 ~@2, [g2,g3]@2 ~ [a2,a3]@2 ~", // Bm7 C#m7 G A
Q: "[b3,c#4,e4]@2 ~ [b3,c#4]@7 ~@14, [a2,a3] ~@2", // C#m7 Bsus2 A
})).s("gm_piano").gain(0.27)
// drums · kick
const kick = s("bd").struct(`<
~ A@16 B@7 C D A@6 E D A@6 F B@8 ~ A@7 ~ A@33 G A G A G H I B@7 C D A@6 E D A@29 E A J
>`.pickRestart({
A: "x!2 ~@2 x!2 ~@2", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~@4", D: "~@4 x!2 ~@2", E: "x!2 ~@2 x ~@3",
F: "x!2 ~@2 x!2 ~ x", G: "x ~@2 x ~@8 x ~@3 x ~@3 x ~@3", H: "x", I: "~@3 x ~ x ~ x", J: "x!2 ~@6",
})).gain(0.35)
// drums · snare
const snare = s("sd").struct("<~ A@23 B C A@6 B C A@15 ~ A@7 ~ A@33 B A B A B ~ B A@7 B C A@6 B C A@31 B>".pickRestart({
A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x",
})).gain(0.35)
// drums · hihat
const hihat = s("hh").struct(`<
~ A@23 B C A@6 D C A@5 B E A@8 ~ A@7 F A@6 ~@2 A@25 G A G A G F H A@7 B C A@6 D C A@5 B ~ C A@7 B ~@16
>`.pickRestart({
A: "x!8", B: "x!4 ~@4", C: "~@4 x!4", D: "x!5 ~@3", E: "~@7 x", F: "x",
G: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@3 x ~@3 x ~@3", H: "~@3 x!5",
})).gain(0.35)
// drums · open hat
const open_hat = s("oh").struct("<~@39 A B ~@23 C@2 ~@54 A C D ~@7 A C@15 D>".pickRestart({
A: "~@2 x!2", B: "x!3 ~", C: "x!4", D: "x!2 ~@2",
})).gain(0.4)
// drums · crash
const crash = s("cr").struct(`<
~@24 A B ~@6 B ~@15 C ~ D ~@6 D@2 ~@7 D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~@7 D E D E D E D A ~@7 A B ~@6 B ~@8 B ~ B ~
B ~ B ~ B ~@7 B@7 ~@2
>`.pickRestart({
// … 9 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.