0:00/0:00
// Josie — Steely Dan
// 124 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(124/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 · "C1-P5-Piano"
const epiano1 = note(`<
~@6 A B@2 C@14 D E F@2 G H C I J K L M N O P Q R S C@10 D E F@2 T U C I J K V W X Y Z AA AB AC ~@6 AD AE J AF J AF@2
AG AH AI AF@2 AJ AK J I AL AM AN AO AP@2 AQ AR AS AT ~@5 A AU@2 AF@24 ~@5 A AV@2
>`.pickRestart({
A: "[g3,a3,c4,e4]@3 ~ [f#2,a3,d4,a4]@4, f2@4 f#4@3 ~", // Am7 D
B: "[[g2,g3,c4,d4,f#4]@6 g4@10 ~@3 g6 ~ g6@11, ~@3 [g#2,g#3,c4,d#4]@7 c7@6, ~ g5, ~@17 c6@15, ~@9 d6@7]/2", // Gsus4 G#
C: "~@4 [g3,b3,d4]@2 ~ [g3,b3,d4] ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~", D: "[a3,d4,f#4]@6 [g3,c4,e4]@9 ~",
E: "[g3,b3,d4]@6 [f3,a3,c4]@9 ~", F: "~@4 [g3,b3,d4]@3 [g3,b3,d4] ~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~",
G: "~@4 [e3,g3,a3,c#4]@3 [e3,g3,a3,c#4] ~@2 [e3,g3,a3,c#4] ~@5", H: "[d3,g3,b3]@4 [f#3,a3,d4]@4 [e3,g3,c4]@7 ~",
I: "[d4,f#4,a4]@8 [e4,g#4,b4]@7 ~", J: "~@4 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~",
K: "[d4,g4,b4]@7 ~ [c4,e4,g4]@8", L: "~@6 a5@2 g5@3 ~ e5@2 ~@2, ~ a4@5 ~@2, ~@4 d5@8 d#5 ~@3",
M: "[g#4,a4] ~ g4@2 a4@2 g4@4 ~@6, a#4 ~@7", N: "~@4 g5@7 ~ [b4,e5]@2 [d5,g5] ~, a4@5 ~@3, ~@2 d5@9 ~@5",
O: "[e5,a5]@4 g5 ~ c#5@4 ~@4 e5@2, a4@5 a4@3, ~@3 a5@5, ~@3 c#5", P: "[c5,a5]@5 ~ [d5,f#5,a5]@9 ~",
Q: "[a4,d5,f#5]@3 [g4,c5,e5]@4 ~", R: "~@12 a5@2 g#5 ~, ~ a#4, ~@5 e5@2 ~",
S: "[a4,d5,g5]@3 ~ [a4,d5,g5]@4 [a4,d5,g5]@3 ~ [a4,d5,g5]@3 ~", // Dsus4
T: "~@4 [e3,g3,a3,c#4]@3 [e3,g3,a3,c#4] ~@2 [e3,g3,a3] ~@5, ~@5 c#4 ~@2", // A7
U: "[d3,g3,b3]@2 [f#3,a3,d4]@2 [e3,g3,c4]@3 ~", V: "a4 a5@3 g5@4", W: "[b4,d5,e5]@2 g5 [a4,c5,e5]@3 ~@2",
X: "~@2 a5@2 a5 ~ a5@2 g5@2 e5@2 d5@2 b4@2, a4@5 ~@3", Y: "a4 b4 a4 [e4,g4]@4 ~", Z: "[c5,e5,a5]@6 [d5,f#5,a5]@9 ~",
AA: "[a4,d5,f#5]@6 [g4,c5,e5]@9 ~", AB: "~@12 a5@2 g#5 ~, ~@4 a#4@3 ~, ~@10 e5@5 ~",
AC: "[a4,d5,g5]@4 [a4,d5,g5]@3 ~ [a4,d5,g5]@3 ~ [a4,d5,g5]@3 ~", AD: "[a#3,c#4,e4,g4,a4]@15 ~",
AE: "[a3,d4,g4]@3 ~ [a3,d4,g4]@3 ~ [a3,d4,g4]@3 ~ [a3,d4,g4]@3 ~", // Dsus4
AF: "~@4 [d4,g4,b4]@3 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~", // G
AG: "~@4 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@5", AH: "[d4,f#4,a4,c#5]@3 [c4,e4,g4,b4]@4 ~",
AI: "[b3,d4,a4]@6 [a3,c4,e4,g4]@9 ~, f#4 ~@3", AJ: "~@4 [c#4,e4,g4,a4]@3 [c#4,e4,g4,a4] ~@2 [c#4,e4,g4,a4] ~@5",
AK: "[d4,g4,b4]@3 ~ [d4,f#4,a4]@4 [c4,e4,g4]@7 ~", AL: "~@4 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4] ~",
AM: "[d4,g4,b4]@7 ~ [c4,e4,g4]@7 ~", AN: "~@2 a5 d6@2 b5@2 ~",
AO: "e4@2 f#4@2 [d5,f#5,a5]@2 [c5,e5,g5,b5]@9 ~, ~@4 b4 ~@11", // D Cmaj7
AP: "[[f#4,g4,a#4,d5]@3 ~ [d5,e5,g5]@4 ~@4 [b4,d5,e5]@2 g5@2 [b4,f#5]@2 [a4,b4,g5]@2 [a4,b4]@2 [g4,b4,c#5,e5]@4 e4@2 [b4,d5,e5]@4, ~@12 g4 ~ d5@7 ~@11, ~@14 g4 ~ a4 ~@3 f#5 ~@11]/2", // Gm Em7 E7 B5 Em Asus2 C#m7b5 E7
AQ: "[e5,g5,a5,c6]@5 ~ [e5,f#5,a5,c6]@9 ~", AR: "[b4,d5,g5,a5]@5 ~ [d5,e5,g5,b5]@8 ~@2",
AS: "~@8 a#4@2 ~@2 a5@2 g#5 ~, ~@10 e5@5 ~", AT: "[a4,d5,g5]@3 ~ [a4,d5,g5]@3 ~ [a4,d5,g5]@3 ~ [a4,d5,g5]@3 ~",
AU: "[[g2,g3,c4,d4,f#4]@6 ~@13 g6 ~ g6@11, ~@3 [g#2,g#3,c4,d#4,g4]@7 c7@6, ~ g5, ~@17 c6@15, ~@9 d6@7]/2", // Gsus4 G#maj7
AV: "[[g2,g3,c4,d4,f#4]@3 [g#2,g#3,c4,d#4,g4]@13, ~@6 e4 ~@25]/2", // Gsus4 G#maj7
})).s("gm_epiano1").gain(0.36).pan(0.6)
// chords · electric guitar muted · "C2-P29-Rhythm Guitar"
const electric_guitar_muted = note(`<
~ A@2 B@2 ~ C D@2 E@14 F G H@2 I J H K L M N O N P Q R S T E@3 U E V E V E@2 F G H@2 W J H K L M N O N P Q R S T X@6 ~
Y E@6 F G H@2 W J H K L M N O N P Z R S T A@2 B@2 AA AB D@2 E@24 A@2 B@2 ~ C D@2
>`.pickRestart({
A: "[~ d4@2 [f#3,c#4]@4 [d#3,a#3]@2 [e3,b3]@6 ~, e3@3 ~@13]/2", // F#5 D#5 E5
B: "[~@2 d4@4 [f#3,c#4]@8 [d#3,a#3]@8 [b2,f#3]@4 [d3,a3]@5 ~, e3@3 ~@13]/2", C: "[g3,a3,c4,e4] [f#3,a3,d4,a4]",
D: "[[g3,a3,d4,f#4]@6 [g#3,c4,d#4,g4]@25 ~]/2", E: "~@4 [d4,g4,b4]@3 [d4,g4,b4]!2 ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~",
F: "[d4,f#4,a4,c#5]@5 ~ [c4,e4,g4,b4]@8 ~@2", G: "[b3,d4,f#4,a4]@5 ~ [a3,c4,e4,g4]@9 ~",
H: "~@4 [d4,g4,b4]@3 [d4,g4,b4]!2 ~ [d4,g4,b4] ~@3 [d4,b4] ~", // G
I: "~@4 [b3,c#4,e4,g4]@3 [b3,c#4,e4,g4]!2 ~ [b3,c#4,e4,g4] ~@5", J: "[b3,d4,g4]@3 ~ [d4,f#4,a4]@3 ~ [c4,e4,g4]@7 ~",
K: "[d4,f#4,a4]@7 ~ [e4,g#4,b4]@7 ~", L: "~@4 [d4,g4,b4]@3 [d4,g4,b4]!2 ~ [d4,g4,b4]@3 ~ [d4,g4,b4] ~",
M: "[d4,g4,b4]@3 ~ [c4,e4,g4]@3 ~", N: "[f#3,a3,c#4,e4]@7 ~ [g3,b3,d#4]@7 ~", O: "[e3,g3,b3,d4]@7 ~ [f3,a3,c4,e4]@8",
P: "[e3,g3,b3,d4]@8 [e3,g3,a3,c#4]@7 ~", Q: "[g3,a3,c4,e4]@5 ~ [a3,c4,d4,f#4]@9 ~",
R: "[g3,b3,d4,f#4]@6 [g3,b3,c4,e4]@9 ~", S: "~@2 [a#3,c#4,e4,a4]@5 ~",
T: "[a3,d4,g4]@3 ~ [a3,d4,g4]@3 ~ [a3,d4,g4]@3 ~ [a3,d4,g4]@3 ~", // Dsus4
U: "~@4 [d4,g4,b4]@3 [d4,g4,b4]!2 ~ [d4,g4,b4] ~@3 [d4,g4,b4]@2", // G
V: "~@2 [d4,g4,b4] ~ [d4,g4,b4]@3 [d4,g4,b4]!2 ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~", // G
W: "~@4 [a3,c#4,e4,a4]@3 [a3,c#4,e4,a4]!2 ~ [a3,c#4,e4,a4] ~@5", // A
X: "[~@4 [e4,a4,c#5]@2 [f#4,b4,d5]@12 [b4,d5]@2 [e4,a4,c#5]@2 [d4,f#4,b4]@14 [e4,a4,c#5]@2 [f#4,b4,d5]@12 [e4,a4,c#5]@4 [b4,d5,e5,a5]@13 ~ [e4,a4,c#5]@2 [f#4,b4,d5]@12 ~@14, ~@2 g4@7 g4@9 g4@9 ~@7 g4@7 ~@7, ~@18 f#4 ~@77]/6", // A Bm A Bm A Bm A Bm7 …
Y: "~@4 [g4,d5]@3 ~ [g4,d5]@4 [g4,d5]@3 ~", Z: "[g3,a3,c4,e4]@5 ~ [a3,c4,d4,f#4]@9 ~, ~@6 f4 ~@9",
AA: "~@3 a3@2 g#3@3 g3@3 f#3@3 b3@2, e3 ~", AB: "[g3,a3,c4,e4]@7 ~ [f#3,a3,d4,a4]@8",
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.3)
// bass · electric bass finger · "C3-P34-Bass"
const bass = note(`<
~@6 A B@2 C D C D C D C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AE F AG AH Q AI AJ AK AL AM AN
AO S AP AQ AR AS AT W AU AV AW AX AY AZ BA BB BC BD BE BF BG BH@2 BI@2 BJ BK BL BM BN BO BP BQ BR AP BS BT BU V W X BV
BW BX AY ~@5 A BY@2 BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ BR CR BR CS BR CI ~@5 A BY@2
>`.pickRestart({
A: "f1@7 ~ f#1@7 ~", B: "[g1@6 g#1@13 ~@13]/2", C: "e1@2 ~@4 c#2@2 d2 ~ e1@2 ~@2 [d#3,f#3] ~",
D: "[e3,g3]@4 ~ [d3,d#3,f3,f#3] [c3,c#3,e3] [b2,d3,d#3] ~ c3 a#2 ~@5", E: "e1@2 ~@5 e2 b1@2 d2@2 ~@2 e2@2",
F: "e1@2 ~@5 e2 d2 ~ c#2@2 ~@2 e2@2", G: "e1 ~ d2 ~ e1 ~ c#2 ~ d2@2 ~@2 e1 ~ e2@2",
H: "~@6 e2 ~@3 c#3@2 ~@2 d3@2, ~@2 f#2 g2", I: "e1@3 ~@4 e2 b1@2 d2@2 ~@2 e2@2",
J: "e1@3 ~@4 e2 d2 ~ c#2 ~ c#2@2 d2 ~", K: "d2@3 ~ c#2@2 c2@9 ~", L: "g1@4 f#1@2 f1@9 ~",
M: "e1@2 ~@5 e2 b1@2 d2@2 ~@2 e2 ~", N: "e1@2 ~@4 e1 ~ b1@2 d2 ~@3 g1@2", O: "a1@6 e1 ~ e1@2 ~@4 a1@2",
P: "c2@4 g2@3 ~ f2@4 ~@4", Q: "e1@2 ~@5 e2 b1@2 d2 ~@3 e2 ~", R: "g1@8 a1@7 ~", S: "e1@2 ~@5 e2 b1@2 d2@3 ~ e2 ~",
T: "e1@4 ~@4 f1@7 ~", U: "f#1@7 ~ b1@8", V: "e2 f2", W: "f#2 b1", X: "e1@2 ~@2 a1@3 e2",
Y: "a2 ~ b2@2 c#3 ~ d3@4 a2@2 d2@2 f#2@2", Z: "g2 a2 b2 c3@4 ~", AA: "f#1@2 f#2@5 ~",
AB: "b1@2 b2@2 c2 ~ c3@2 c#2@2 c#3@2 d2@2 d3@2", AC: "e1@2 ~@6 b1@2 d2@3 ~ e2@2",
AD: "e1@2 ~@4 [d#3,f#3] ~ [e3,g3]@2 [d#3,f#3]@2 e3@2 [d3,f#3]@2, ~@12 g3 ~@3", AE: "e1@2 ~@6 b1@2 d2 ~@3 e2@2",
AF: "e1@2 ~@4 [d#3,f#3] ~ g3@2 [d#3,f#3] ~ [e3,g3]@4, ~@8 e3 ~@7", AG: "e1 ~ d2 ~ e1 ~ c#2@2 d2@2 ~@2 e1 ~ e2@2",
AH: "~@7 e2 ~@2 c#3@2 ~@2 d3@2, ~@2 f#2 g2", AI: "e1@2 ~@5 c#2 d2@2 c#2@3 ~ d2 ~",
AJ: "d2@3 ~ c#2@2 c2@3 ~ e1@2 ~ f#1@3", AK: "g1@3 g1 f#1 ~ f1@9 ~", AL: "e1@2 ~@5 e2 b1 ~ d2@3 ~ e2@2",
AM: "e1@2 ~@4 e1 ~ b1 ~ d2 ~ e1 ~ g1@2", AN: "a1@6 e1 ~ e1@2 ~@4 a1 ~", AO: "c2@2 g2@2 f2@3 ~", AP: "g1 a1",
AQ: "e1@2 ~@5 e1 b1@2 d2@3 ~ e2 ~", AR: "e1@3 ~@5 f1@7 ~", AS: "f#1@8 b1@7 ~", AT: "e2@4 f2@3 ~", AU: "e1@3 ~ a1@4",
AV: "a2 ~ b2@2 c#3@2 d3@4 a2@2 d2@2 f#2 ~", AW: "g2@2 a2 ~ b2 ~ c3@9 ~", AX: "f#1@3 ~ f#2@11 ~",
AY: "b1@3 ~ b1@3 ~ b1@3 ~ b1@4", AZ: "g2@2 a2 ~@7 d2@2 ~@2 e2 ~", BA: "~@2 g2@3 ~@11",
BB: "g2@2 a2@2 ~@6 d2@2 ~@2 e2 ~", BC: "~@2 g2 ~@5 a1@2 b1 ~@5", BD: "g2 ~ a2 ~@7 d2@2 ~@2 e2 ~", BE: "~ g2 ~@6",
BF: "f#2 ~ c#3 ~ f#3 ~ c#3@2 e3 ~ f#3@2 ~@2 f#1@2, ~@10 e3 ~@5", BG: "b1@2 f#2@2 [c#3,d3] ~ f#2@2 b1 ~@7",
BH: "[e2 ~ d2 ~ e2@2 c#2 ~ d2@2 ~@4 e3 ~ e3@8 f#2@2 c#3@2 ~@2 d3 ~, ~@12 e2@11 ~@5 g2@4]/2",
BI: "[e2@2 d2 ~ e2@2 c#2 ~ d2 ~@5 e3 ~ e3@8 f#2@2 c#3 ~@3 d3 ~, ~@3 e2@3 ~ g2]/2",
BJ: "e2@2 d2 ~ e2@2 c#2 ~ d2@2 ~@2 e2@2 e3@2", BK: "e3@7 ~ f#2@2 c#3 ~@3 d3 ~, ~@3 g2",
BL: "d2@3 ~ c#2@2 c2@4 e1@2 ~ f#1!3", BM: "g1@2 f#1 f1@5", BN: "e1 ~@3 b1 d2 ~ e2", BO: "~@6 e1 ~ e1@2 ~@4 g1@2",
BP: "a1@5 ~ e1 ~ e1@2 ~@4 a1@2", BQ: "c2@4 g2@4 f2@7 ~", BR: "e1@4 ~@4 b1@2 d2@3 ~ e2 ~", BS: "~@6 b1 e2",
BT: "~@8 f1@7 ~", BU: "f#1 b1", BV: "a2@2 b2@2 c3@2 d3@4 a2 ~ d2@2 f#2 ~", BW: "g2@2 a2 ~ b2@2 c3@8 ~@2",
BX: "f#1@4 f#2@11 ~", BY: "[g1@5 ~ g#1@25 ~]/2", BZ: "e1@2 ~@6 b1 ~ d2@3 ~ e2@2", CA: "~@7 b1 d2@2 c#2@3 ~ b1 ~",
CB: "~@8 b1 ~ d2@3 ~ e2@2", CC: "~@8 [e3,g3] ~ [d#3,f#3] ~ [e3,g3]@4", CD: "e1@2 ~@6 b1 ~ d2@3 ~ e2 ~",
CE: "e1@2 ~@6 d2@2 c#2@3 ~ e2@2", CF: "e1@2 ~@6 b1@2 d2@3 ~ e2 ~",
CG: "e1@2 ~@6 [e3,g3] ~ d#3@2 [e3,g3]@3 ~, ~@10 f#3 ~@5", CH: "e2 ~ d2@2 e2 ~ c#2 ~ d2 ~@3 e1 ~ [e2,e3]@2",
CI: "e1@2 ~@6 f#2@2 c#3@2 ~@2 d3 ~, ~@3 g2", CJ: "e2 ~ d2@2 e2@2 c#2@2 d2@3 ~ e1 ~ e2@2",
CK: "~@4 f#2 c#3 ~ d3, ~@3 g2", CL: "e2 ~ d2@2 e2 ~ c#2@2 d2 ~@3 e1 ~ [e2,e3]@2",
CM: "e1@2 ~@2 c#3@4 f#2@2 c#3@2 g2@2 d3 ~", CN: "e2@2 d2@2 e2 ~ c#2 ~ d2@2 ~@2 e1 ~ [e2,e3]@2",
CO: "e1@2 ~@6 f#2 ~ c#3 ~ g2@2 d3@2", CP: "e1@4 ~@4 b1 ~ d2@3 ~ e2@2", CQ: "~@7 b1 d2@2 c#2@3 ~ e2@2",
CR: "e1@3 ~@5 g3@2 d#3@2 [e3,g3]@2 d#3@2, ~@8 e3 ~ f#3 ~@3 f#3 ~", CS: "e1@3 ~@4 b1 d2@2 c#2@3 ~ e2 ~",
})).s("gm_electric_bass_finger").gain(0.42)
// other · electric guitar jazz · "C6-P27-Lead Guitar"
const electric_guitar_jazz = note(`<
~ A@2 B@2 C D E@2 ~@67 F G@2 H I J@2 K@3 L@2 M@2 N@3 ~@8 A@2 B@2 C D E@2 ~@2 O P ~ Q R S T@2 U@2 ~@2 V W ~ X@2 Y Z AA
AB ~ A@2 B@2 C D E@2
>`.pickRestart({
A: "[~@2 d4@4 [f#3,c#4]@8 [d#3,a#3]@4 [e3,b3]@13 ~, e3@3 ~@13]/2", // F#5 D#5 E5
B: "[~ d4@2 [f#3,c#4]@4 [d#3,a#3]@4 [b2,f#3]@2 [d3,a3]@3, e3@3 ~@13]/2", C: "~@3 a3@2 g#3@3 g3@3 f#3@3 b3@2, e3 ~",
D: "[g3,a3,c4,e4] [f#3,a3,d4,a4]", E: "[[g3,a3,d4,f#4]@3 [c4,d#4]@13, ~@3 [g#3,g4]@12 ~]/2", F: "~@6 d5 e5",
G: "[f#5@8 e5@4 d5@2 e5@4 b4@3 ~@5 d5@3 ~ d4@2]/2", H: "~@2 c#5 d#4 ~@2 g4 e4", I: "~@2 a4@5 g4 e5@2 b4@2 d5@4",
J: "[~@4 e5@2 b4@2 d5@2 ~@4 c#5@4 e5@2 a4@2 c#5@2 b4@2 e4@5 ~]/2",
K: "[a4 ~@2 g4 a4 ~ a4!2 b4 ~@2 c5 d5@18 [d5,g5]@6 ~@2 e5@4 ~@2 e5@2 b4 ~, ~ e4 ~@3 b4 ~@18]/3", // G5
L: "[d5@2 b4 ~ d5@3 b4 e5@10 ~@6 a4@2 e5@2 ~@2 d5@2, ~@9 c#5@4 ~@3]/2",
M: "[f#5@2 ~@2 e5@2 g5@6 g5@11 ~ a5@3 g5 e5@3 ~]/2",
N: "[~@2 f#5@2 f#5@4 e5@2 d5@2 e5 ~ e5@7 a4 ~ d5 g4@10 b4@2 ~@12]/3", O: "~@9 [b3,b4] [d4,d5]@6",
P: "[b3,b4] ~ [b3,b4]@2 [d4,d5]@3 ~@5 a4@2 g4 e4", Q: "a4@10 a4@2 a4!4", R: "a4!5 a4@2 ~ a4@2 g4 e4 g4@3 ~",
S: "e4 d4 b3@2 d4@8 e4 ~ g4 ~", T: "[~@8 a5@12 a5@3 g5 e5@4 d5@2 b4 ~]/2",
U: "[~@10 g4@3 ~ a#4@4 g4@4 a4@4 d4 ~ d4@4]/2", V: "~@12 e5@3 ~", W: "e5@10 d5@2 d4@3 ~",
X: "[~@2 d4 e4 ~ f#4 ~ a4 ~@2 c#5@2 d5@2 ~ d5@7 b4 a4 b4@6 a4 g4, ~@6 g4@2 ~ b4@2 ~@21]/2", Y: "a4 ~@7",
Z: "~@5 [d4,d5]@3", AA: "~@2 [d4,d5]!3 ~ d4 ~ d5@2 ~ [e4,e5]@4 ~, ~@5 [d4,d5]@2 d4@3 ~@6", AB: "~ d4@2 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.36).pan(0.6)
// other · string ensemble 2 · "C7-P50-Strings"
const string_ensemble_2 = note("<~@61 A B@2 C D E ~@26 A B@2 C F E ~@42>".pickRestart({
A: "a6 g6", B: "[b5@7 c6@8 ~@9 d#6@8, e6@3 ~]/2", C: "b5", D: "c6@3 d6", E: "b5@13 ~@3", F: "c6@12 ~ c#6 ~@2, ~@3 d6",
})).s("gm_string_ensemble_2").gain(0.26).pan(0.2)
// chords · tenor sax · "C9-P67-Saxes"
const tenor_sax = note("<~@37 A B ~@23 C ~@2 D E F G ~@25 H ~@2 I J K L ~@8 M@2 N@16 O@5 ~@9>".pickRestart({
A: "[e3,a3]@3 a3@3 ~@2, ~@3 f#3@2 ~@3", B: "[d3,f#3]@5 ~ [c3,e3]@5 ~@5", C: "~@8 c4@7 ~", D: "~@10 e3@5 ~",
E: "~@10 b3@3 ~ g3@2", F: "a3 ~@3 a3@6 ~@6", G: "[g3,d4]@3 ~ [g3,d4]@3 ~ [g3,d4]@3 ~ [g3,d4]@3 ~",
H: "e3@8 f3@7 ~, b3@15 ~", I: "~@5 e3@3", J: "~@5 b3@2 g3", K: "a3 ~@3 a3@11 ~",
L: "[b3,d4]@3 ~ [b3,d4]@3 ~ [b3,d4]@8", M: "[~@28 f#4@2 e4 ~, ~@3 g4@5]/2",
N: "[~@2 a4 ~ f#4@2 g4@38 ~@16 f#4@2 e4 ~, g4@6 e4 ~@37 g4@20]/4",
O: "[~@2 a4 ~ f#4@2 e4 ~@53 f#4@2 e4 ~@3 a4 ~ f#4@2 e4 ~@9, g4@37 ~@3]/5",
})).s("gm_tenor_sax").gain(0.42).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
~@8 A B C@5 B D C@2 B E C F G@2 C F D@2 C D@7 G@2 H ~ C@3 D I D J D C D K@2 C L M D@3 I D ~@3 F G@2 H N O P Q R S T
O@2 C U@2 C D@2 G@2 C J B V W D C O D C D C G@2 H X ~@5 D K ~ C@2 D@2 C@2 D@3 C@2 D@2 Y D@10 ~@5 D K ~
>`.pickRestart({
A: "~@13 x!2 ~", B: "x ~@2 x!2 ~@2 x", C: "x ~@3 x ~@2 x", D: "x!2", E: "x ~@3 x ~ x!2", F: "~ x",
G: "x ~@2 x ~ x ~@2", H: "x!2 ~@2", I: "x ~@6 x!2 ~@7", J: "x ~@2 x!2 ~@3", K: "x ~@2 x ~@4", L: "x ~ x!2",
M: "x ~@2 x!4 ~", N: "x ~@3 x ~@3 x ~@2 x!5", O: "x", P: "~@4 x!2 ~@2", Q: "x!2 ~@2 x!2 ~ x", R: "~ x ~@2 x!2 ~@2",
S: "x!2 ~@3 x ~ x", T: "~@2 x ~@10 x ~@2", U: "~@4 x ~@2 x", V: "x ~ x!3 ~@2 x", W: "x ~@6 x", X: "x!4",
Y: "x ~@3 x!2 ~@2",
})).gain(0.44)
// drums · rim
const rim = s("rim").struct("<A ~@45 B ~@2 C ~@8 D ~@6 B ~@16 B ~@17 E ~@11 F ~@3 G ~@8 C H ~@14>".pickRestart({
A: "x!4", B: "~@3 x", C: "~ x ~@2", D: "~@3 x!2 ~@6 x!2 ~@3", E: "~@11 x ~@4", F: "~ x ~@6", G: "~@10 x!6",
H: "~@9 x ~@2 x ~ x ~",
})).gain(0.34)
// drums · snare
const snare = s("sd").struct(`<
~@9 A@7 B A@11 C A D E F A@5 G F H A@3 I A F A J K A@4 L A M L ~ A N A@3 O F A F P A@5 ~ Q R A@5 S F@2 A T E A@2 U A F
A@4 F@3 ~@8 V A@2 M W A@3 F A@5 X A@3 Y A@3 U A@2 ~@8
>`.pickRestart({
A: "~ x ~ x", B: "~@4 x ~@2 x!7 ~@2", C: "~@4 x ~@4 x!4 ~@3", D: "~@4 x ~@7 x ~@2 x", E: "x!2 ~ x", F: "~ x ~@2",
G: "~@10 x!6", H: "x ~@11 x!2 ~@2", I: "~@7 x!5 ~@4", J: "~@4 x ~@2 x!4 ~ x ~@3", K: "~@3 x",
L: "~@4 x ~@2 x ~@4 x ~@3", M: "~@4 x ~@2 x!6 ~@3", N: "~@4 x ~@2 x ~@8", O: "~@2 x ~@3 x!2", P: "~ x ~@4 x ~",
Q: "x!2", R: "x ~ x!6 ~@8", S: "~@4 x ~@2 x!6 ~ x!2", T: "~@4 x ~@5 x!6", U: "~@4 x ~@7 x!4", V: "x!4 ~ x!4 ~@7",
W: "~@4 x ~@2 x!6 ~ x ~", X: "~@4 x ~@3 x!5 ~ x!2", Y: "~@4 x ~@4 x ~@2 x ~ x ~",
})).gain(0.44)
// drums · low tom
const low_tom = s("lt").struct("<~@8 A ~@51 B ~@39 C ~@38 D ~>".pickRestart({
A: "~@13 x!2 ~", B: "~@14 x!2", C: "~@3 x", D: "x!4 ~@12",
})).gain(0.39)
// drums · hihat
const hihat = s("hh").struct(`<
~ A@5 ~@3 B C@2 D E C@2 F G H@2 I J H F K B C L ~ G F M N ~@9 O P F Q R P F P H K@2 S J T ~ U ~ V ~ W@2 X Y Z AA ~@2
AB A@4 AC ~@2 AD AE AF AG AH Y K@2 AI AJ AK AC AK ~ AL ~@5 K@2 ~@2 AB A@4 ~@3 AM AN F AO AP J H F B AQ AR AS AT AU AV
AN AW AX AY AZ BA BB AM BC AB A@4 ~@3
>`.pickRestart({
A: "x!4", B: "~@7 x ~@2 x ~@3 x ~", C: "~@2 x ~@4 x ~@2 x ~@3 x ~", D: "~@2 x ~@5 x!2 ~@4 x ~",
E: "~@2 x ~@5 x!3 ~@3 x ~", F: "~ x ~@6", G: "~@5 x ~ x", H: "~ x ~@3 x ~ x", I: "~ x ~@3 x ~@2", J: "x!2 ~@3 x ~ x",
K: "~@3 x", L: "~@2 x ~@2 x!11", M: "~ x ~ x ~ x ~ x", N: "~ x ~ x ~@4", O: "x!3 ~@2 x ~@2", P: "x!3 ~@2 x ~ x",
Q: "~@7 x", R: "~@5 x ~@2", S: "~@7 x!2 ~ x ~@5", T: "x ~ x ~@2 x!11", U: "~@4 x!4", V: "~@5 x!3", W: "x!4 ~@2 x!2",
X: "x!2 ~ x!5", Y: "x!3 ~@5", Z: "~@6 x!2", AA: "x!4 ~@2 x ~", AB: "~ x!3", AC: "x", AD: "~@5 x!2 ~",
AE: "x ~ x ~ x ~@2 x!2 ~ x ~ x ~@3", AF: "x ~ x ~ x ~@2 x!2 ~ x ~ x ~ x ~", AG: "x ~ x ~ x ~@2 x!4 ~ x ~@3",
AH: "x ~ x ~ x ~@5 x ~ x ~@2 x", AI: "~@10 x ~ x!2 ~@2", AJ: "x ~ x ~ x ~@2 x!2 ~ x ~@5", AK: "~@7 x!2 ~ x ~ x!2 ~@2",
AL: "~@7 x!2 ~ x ~ x ~@3", AM: "~@4 x!3 ~", AN: "x!3 ~ x!4", AO: "~@4 x!2 ~@2", AP: "~@8 x!3 ~@5",
AQ: "~ x!2 ~@2 x ~ x", AR: "~@2 x ~@5 x!3 ~ x ~@3", AS: "x ~ x ~@5 x!3 ~@3 x ~", AT: "~ x ~@2 x!3 ~",
AU: "x ~ x!3 ~@3", AV: "~@8 x ~ x ~ x!2 ~@2", AW: "~@2 x ~ x ~@3 x!5 ~ x ~", AX: "~@7 x!6 ~ x!2", AY: "x ~@3 x!3 ~",
AZ: "x ~ x ~ x ~@3 x!3 ~ x!2 ~@2", BA: "x ~ x ~ x ~@3 x!5 ~ x ~", BB: "x!3 ~ x ~@3", BC: "x!3 ~ x!3 ~",
// … 49 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.