0:00/0:00
// The Time Warp — Rocky Horror
// 150 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 138 bars on a 16-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): guitar program 25.
setcpm(150/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 · electric guitar muted
const electric_guitar_muted = note(`<
A@6 B@2 C D A@4 B@2 E D F G H A B@2 I D A J K A L M N O P A Q R A S T@2 A S T@2 A U V W X A Q R A@2 N R A J Y A M Z AA
D A AB A@2 B@2 AC AD Y A@3 B@2 I D A Y A@2 B@2 N R A AE AF R A@5 AG V@2 AH A AI D A AG Q R A AG Q AJ A AK AL@2 A S T
AL A AG D@2 A@2 AF AM A@2 N AN A AO ~@2
>`.pickRestart({
A: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5 D A5
B: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", // B5
C: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
D: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5
E: "[g2,d3] ~ [g2,d3] ~ [g2,e3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2", // G5 C G5
F: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3,f#3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5 F#m7 A5 D A5
G: "[a2,g3]@2 [a2,e3] ~ [a2,f#3]@2 [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A7 A5 D A5 D A5
H: "[a2,e3,f#3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // F#m7 A5 D A5 D A5
I: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
J: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,g3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5 A7 A5 D A5
K: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
L: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~", // B5 E B5
M: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~", // B5 E B5 E B5
N: "[c3,f3]@7 ~ [c3,g3]@8", O: "~@2 f#2 ~@5 [d3,a3]@7 ~, [g2,d3]@7 ~ f#3 ~@7",
P: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ a2 ~ e3@2 a2 ~ [a2,f#3] ~ [a2,e3] ~, ~@8 a2 ~@7", Q: "[c3,f3]@7 ~ [c3,g3]@7 ~",
R: "[g2,d3]@8 [d3,a3]@7 ~", S: "[a2,e3] ~@7",
T: "[e2,b2] ~ [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~", // E5 C#m E5 C#m E5
U: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,g3] ~ [a2,g3] ~ [a2,f#3] ~ [a2,e3,f#3] ~", // A5 D A5 A7 D F#m7
V: "[d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,a3] ~", // D5 G D5 G D5
W: "[d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,a3]@2", // D5 G D5 G D5
X: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3,f#3] ~", // A5 D A5 D F#m7
Y: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5
Z: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3]@2", // B5 E B5 E B5
AA: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,e3]@2 [g2,d3] ~", // G5 C G5
AB: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,g3] ~ [a2,f#3] ~", // A5 D A5 A7 D
AC: "[g2,d3] ~ [g2,d3] ~ [g2,e3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5 C G5
AD: "[d3,a3] ~ [d3,a3] ~ [d3,b3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5 G D5
AE: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,g3] ~ [a2,g3] ~ [a2,f#3]@2 [a2,e3] ~", // A5 D A5 A7 D A5
AF: "[c3,f3]@7 ~ g3@8, ~@4 c3@3 ~", // F5
AG: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,g3] ~ [a2,g3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5 A7 D A5
AH: "[a2,e3] ~ [g#2,a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,b2,e3] ~", // A5 Amaj7 D A5 D Asus2
AI: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", AJ: "g2 a3, d3@3 ~ d3@3 ~",
AK: "[a2,e3,f#3] ~@7", AL: "[e2,b2] ~ [e2,b2] ~ [e2,c#3] ~ [e2,b2] ~ [e2,d3] ~ [e2,d3] ~ [e2,c#3] ~ [e2,b2] ~",
AM: "[g2,d3]@8 [d3,a3]@7 ~, ~@8 f#3 ~@7", AN: "[g2,d3]@7 ~ a3@8, ~@4 d3@3 ~",
AO: "[a2,e3]@2 [g#2,d#3] ~ [g2,d3] ~ [f#2,a2,e3]@2 ~@8", // A5 G#5 G5 F#m7
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.7)
// bass · electric bass finger
const bass = note(`<
~@4 A B C D E F G H A H I J E K L M N O P Q R S T U V W X Y Z AA AB M AC AD N AE AF@2 N AE AG AF AH AI AJ@2 AB AK AL
AM AN AO AP AQ AB AR AS AT AU AV R AW AX AY AZ AT P BA R AW BB BC BD BE BF BG BH BI BJ BK BD BL BM BN BO AD BD BP BQ
AD AT BL AT AR BD BR BS BT BU BV BW BX AK BY AL AD BE BZ BQ AM CA CB CC CD BY CE CC CF BD CG CH CI AT CJ AC AD AT CK
AL AD BL CL ~ CM
>`.pickRestart({
A: "a2@7 ~@7 a2 ~", B: "a2@9 ~@7", C: "b2@8 ~@6 b2 ~", D: "b2@5 ~@3", E: "g2@9 ~@5 g2@2", F: "d3@11 ~@5",
G: "a2@8 ~@6 a2 ~", H: "a2@5 ~@3", I: "b2@9 ~@5 b2 ~", J: "b2@11 ~@5", K: "d2@9 ~@7", L: "a2@9 ~@5 a2 ~",
M: "a2 f#2 e2 c#2", N: "a1@3 ~ c#2@3 ~ e2@4 f#2@2 e2@2", O: "a1@2 c#2@2 e2@2 f#2 e2, ~@8 c#2 ~@7",
P: "b1 d#2 f#2 g#2", Q: "b1@4 d#2@4 f#2@4 g#2@2 f#2 ~", R: "g1 b1 d2 e2", S: "d2@4 f#2@4 a2@4 f#2@3 ~",
T: "a2!2 f#2@2 e2@2 f#2 a2", U: "~@2 a2@2 f#2@4 e2@3 ~ c#2@4", V: "a1@3 ~ c#2@3 ~ e2@4 f#2@2 a2@2",
W: "a1@3 ~ c#2@3 ~ e2@4 f#2@2 e2@2, ~@8 c#2 ~@7", X: "b1@3 ~ d#2@3 ~ f#2@4 g#2@2 f#2@2, ~@8 d#2 ~@7",
Y: "b1@2 d#2@2 f#2@2 d#2 ~", Z: "f1@3 ~ c2@4", AA: "g1@7 ~ d2@7 ~", AB: "a1@4 c#2@3 ~ e2@4 f#2@4", AC: "f1@7 ~ c2@8",
AD: "g1@8 d2@7 ~", AE: "a1 ~@3", AF: "e1@4 g#1@3 ~ b1@3 ~ c#2@2 b1@2",
AG: "e1@4 g#1@3 ~ b1@4 c#2@2 b1@2, ~@12 d#2 ~@3", AH: "a1@3 ~ c#2@3 ~ e2@4 f#2@2 e2 ~",
AI: "a1@4 c#2@3 ~ e2@4 f#2@2 e2 ~", AJ: "d2@4 f#2@3 ~ a2@4 b2@2 a2@2", AK: "a2@4 f#2@4 e2@4 c#2@3 ~",
AL: "f1@8 c2@7 ~", AM: "g1 d2", AN: "a1@4 c#2@3 ~ e2@4 f#2@2 e2@2, ~@12 g#2 ~@3", AO: "a1@4 c#2@4 e2@4 f#2@2 e2 ~",
AP: "f2@7 ~ c2@8", AQ: "g1@7 ~ d2@8", AR: "a2 ~ a2@2 f#2@3 ~ e2@4 c#2@4",
AS: "a1@4 c#2@3 ~ e2@3 ~ f#2@2 e2@2, ~@12 g#2 ~@3", AT: "a1@4 c#2@3 ~ e2@4 f#2@2 e2@2",
AU: "b1@4 d#2@3 ~ f#2@4 g#2@3 ~", AV: "b1@4 d#2@3 ~ f#2@4 d#2@4", AW: "d2@4 f#2@3 ~ a2@4 f#2@3 ~",
AX: "a2 ~ a2@2 f#2@4 e2@4 f#2@2 [f#2,a2]@2", AY: "~ a2 f#2@2 e2@2 c#2@2", AZ: "a1@4 c#2@3 ~ e2@4 f#2@2 a2@2",
BA: "b1@4 d#2@3 ~ f#2@4 g#2@2 f#2 ~, ~@8 d#2 ~@7", BB: "a2 ~ a2@2 f#2@4 e2@4 f#2 ~ a2@2",
BC: "~@2 a2@2 f#2@2 g2 ~ e2@4 c#2@3 ~", BD: "a1@4 c#2@3 ~ e2@3 ~ f#2@2 e2@2", BE: "a1@4 c#2@3 ~ e2@3 ~ f#2@4",
BF: "b1@4 d#2@3 ~ f#2@3 ~ g#2@2 f#2@2, ~@8 d#2 ~@7", BG: "b1@4 d#2@3 ~ f#2@4 d#2@3 ~", BH: "g1@4 b1@3 ~ d2@3 ~ e2@4",
BI: "d2@3 ~ f#2@3 ~ a2@4 b2@3 ~, ~@4 d2 ~@11", BJ: "a2 ~ a2@2 f#2@4 e2@4 f#2@2 a2@2",
BK: "~@2 a2@2 f#2@4 e2@4 c#2@3 ~", BL: "a1@4 c#2@3 ~ e2@4 f#2@3 ~", BM: "b1@4 d#2@3 ~ f#2@4 g#2@2 f#2@2",
BN: "b1@4 d#2@3 ~ f#2@4 b1@4", BO: "f1@7 ~ c2@7 ~", BP: "a2 ~ a2@2 f#2@3 ~ e2@4 c#2@3 ~", BQ: "f1 c2",
BR: "a2@3 ~ g2@3 ~ f#2@3 ~ e2@4", BS: "d2 ~ d2@2 b1@4 a1@4 b1@2 d2@2", BT: "~ d2 b1@2 a1@2 b1@2",
BU: "a2@4 f#2@3 ~ e2@4 c#2@3 ~", BV: "a1 ~ a1@2 c#2@3 ~ e2@3 ~ f#2@3 ~", BW: "e2@4 c#2@4 b1@4 c#2@3 ~, f#2 ~@15",
BX: "d2 ~ d2@2 b1@4 a1@4 b1@4", BY: "a1@4 c#2@3 ~ e2@3 ~ f#2@3 ~",
BZ: "a2 ~ a2@2 f#2@3 ~ e2@3 ~ c#2@3 ~, ~@8 f#2 ~@7", CA: "a1 ~ a1@2 c#2@3 ~ e2@3 ~ f#2@4", CB: "a2 ~@3, g#2 ~@15",
CC: "e1@4 g#1@3 ~ b1@3 ~ c#2@3 ~", CD: "d2@3 ~ c#2@3 ~ b1@4 g#1@3 ~", CE: "a1@3 ~@13",
CF: "d2 ~ d2@2 c#2@3 ~ b1@4 g#1@2 ~@2, ~@4 d2 ~@11", CG: "a1@2 c#2@2 e2@2 c#2 ~", CH: "d2@4 f#2@3 ~ a2@4 f#2@4",
CI: "b2 a2 f#2 d2", CJ: "a2 ~ a2@2 f#2@3 ~ e2@4 a1@4", CK: "a2 ~ a2@2 f#2@3 ~ e2@7 ~",
CL: "e1@2 f#1@2 g#1 ~ a1@3 ~@7", CM: "a1@5 ~@11",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@27 A ~@7 B ~@23 C ~@7 D ~@23 E ~@7 C F ~@5 G ~@4 C ~@23 H ~ I>".pickRestart({
A: "~@2 e3 ~ e3@3 ~", B: "~ f#3 ~@6", C: "~@2 e3 ~", D: "~@12 f#3@2 e3 ~", E: "~@8 e3@5 ~@3", F: "~@12 f#3 ~@3",
G: "~@4 e3@2 ~@4 f#3 ~ e3 ~@3", H: "c#4 [f#2,c4] [g#2,b3] ~@5", I: "~ b2 ~@14, [a2,e3]@5 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.9)
// chords · piano
const piano = note(`<
~@19 A B C D@2 E F G H I J K L M N O P Q N R S T U V W X Y Z J AA@2 AB AC AD AE AF@2 AG AH AI AJ AK AL AM D E F G AN
AO J AP D AQ F Z AR AS J D@2 E F G AL AT J AU L AV AW AX@2 AY AZ BA BB J@3 BC BD@2 BE@2 BF BG Z BH BI@4 BJ@2 BK BL BM
BN BO BP BQ BR BO BS BT BU AB BV BW BX BY BZ AG CA CB CC CD CE
>`.pickRestart({
A: "~@2 [a6,b6,c7] [e6,f6,g6] [b5,c6,d6] [f5,g5,a5,d6] [c5,d5,e5] [a4,b4,d5,b6] [f6,g6,a6] [c6,d6,e6] [g5,a5,b5] [e5,f5] [c5,d5] [a4,b4] [f4,g4] [c4,d4,e4]", // Am Em Bm Dm C Bm7 F C …
B: "[g3,a3,b3,e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~", // Em A5
C: "[e5,a5] ~ [e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
D: "[b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~", // B5
E: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G
F: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
G: "~@2 [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~", // D#dim A5 D#dim A5 D#dim
H: "[e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [a4,e5,a5] ~", // A5 D#dim A5
I: "~@2 [a4,e5,a5] ~@3 [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
J: "[a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
K: "~@2 [b4,c5,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~", // B B5
L: "[b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~@3", // B5
M: "[f3,a4,c5,f5]@7 ~ [c3,e5]@7 ~, ~@8 [g4,c5]@5 ~@3", N: "[g3,b4,d5,g5]@7 ~ [d3,a4,d5,f#5]@5 ~@3",
O: "[a3,c#5,f#5]@2 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~, a4 ~@15", // F#m A
P: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // A
Q: "[f3,a4,c5,f5]@7 ~ [c3,g4,c5,e5]@6 ~@2", // F C
R: "[a3,c#5,f#5]@2 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~, a4 ~@15", // F#m A D#dim A5 D#dim
S: "[e5,a5] ~@15", T: "~ e4 [b4,d5] ~ [a4,c#5] [g#4,b4]@2 e4, ~@6 e4@5 ~@5",
U: "~@2 e4@3 ~ [e4,b4,e5] ~ e4 ~ e4 ~ e4 ~ e4 ~", // E5
V: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [f#4,a4,c#5] ~ [f#4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [f#4,a4,c#5] ~ [f#4,a4,c#5] ~", // A F#m A F#m
W: "[e4,a4,c#5] ~@7", X: "~@2 e4@2 [b4,d5]@2 e4@2 [a4,c#5]@2 [g#4,b4]@3 ~ e4@2",
Y: "[b4,d5]@2 e4@3 ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~", // Bm E5
Z: "~@2 [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
AA: "~@2 [d5,a5,d6] ~@5 [d5,a5,d6] ~@3 [d5,a5,d6] ~ [d5,a5,d6] ~", // D5
AB: "~@2 [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~", // A5
AC: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a6,b6] [e6,f6,g6,a6] [a5,b5,c6,d6] [e5,f5,g5] [c5,d5] ~", // A5 Asus2 Fmaj7 D7 Em Csus2
AD: "~ [f4,a4,c5,f5]@7 [g4,c5,e5]@6 ~@2", AE: "~ [d5,g5]@6 ~ [a4,d5,f#5]@6 ~@2, b4@3 ~@5",
AF: "[[c#5,f#5]@2 [a4,c#5,e5]@3 ~@5 [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~@3, a3@29 ~@3, a4 ~@5 a2@22 ~@4]/2", // F#5 A D#dim A5 D#dim A5 D#dim A5
AG: "[f4,a4,c5,f5]@7 ~ [c4,g4,c5,e5]@5 ~@3", AH: "[g3,b4,d5,g5]@7 ~ [d3,d5,f#5]@6 ~@2, ~@2 a4 ~",
AI: "~ e5@2 ~@3 a4@2 ~@2 a4@2 ~@2 a4@2, a5@2 ~ a4@2 e5@2 ~@2 e5@2 ~@2 e5@2 ~, ~@2 a5 ~ a5 ~ a5 ~",
AJ: "~ e5@2 ~@3 a4@2 ~@2 a4@2 ~@2 a4 ~, a5@2 ~ a4@2 e5@2 ~@2 e5@2 ~@2 e5@2 ~, ~@2 a5 ~ a5 ~ a5 ~",
AK: "~@2 [a4,e5,a5] ~ [e5,a5] ~ [a4,e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~", // A5
AL: "[e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~", // A5
AM: "~@2 [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~", // B5
AN: "[e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~", // A5 D#dim A5
AO: "e5 ~ [a4,e5,a5] ~@5 [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
AP: "[b4,f#5] b5 [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,b5] f#5", // B5 B
AQ: "[a4,b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G
AR: "[a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ a4!2 [b6,c7] [g6,a6] [d6,e6,f6] [b5,c6] [g5,a5] [e5,f5] [c5,d5] [b4,d5]", // A5 Cmaj7 Gsus2 Dm Cmaj7 Gsus2 Fmaj7 Csus2 …
AS: "a4 ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
AT: "[e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~", // A5
AU: "[b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,f#5,b5] ~ [b4,g#5,b5] ~ [b4,g#5,b5] ~", // B5 E
AV: "[f3,a4,c5,f5]@8 ~ [g4,e5]@5 ~@2, ~@4 [c3,c5]@3 ~", AW: "[g3,b4,d5,g5]@7 ~ [d3,a4,d5,f#5]@4 ~@4",
AX: "[~@2 [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ c7 b6 [e6,f6,g6,a6] [c6,d6] [g5,a5,b5,d6] [e5,f5,g5] [c5,d5] [a4,b4,d5] ~@2, ~@2 a3@21 ~@9]/2", // D#dim A5 D#dim A5 D#dim A5 Fmaj7 Csus2 …
AY: "~ f4@4 ~@3 [g4,c5,e5]@5 ~@3, [a4,c5,f5]@7 ~@9", AZ: "[b4,d5,g5]@7 ~ [a4,d5,f#5]@7 ~",
BA: "[a4,c#5,f#5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // F#m A
BB: "[d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~", // D#dim A5
BC: "a4 ~ [a6,b6,c7] [d6,e6,f6,g6] [a5,b5,c6] [e5,f5,g5,a5] [b4,c5,d5] [f4,g4,a4] [b6,c7] [f6,g6,a6] [c6,d6,e6] [a5,b5] [f5,g5] [d5,e5] [a4,b4,c5] [e4,f4,g4]", // Am Em7 Am Fmaj7 Bm F Cmaj7 F …
BD: "[[b3,c4,d4] ~ d5@2 [g5,b5]@2 d5@2 [f#5,a5]@2 ~@2 [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [g#5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~, [a5,c6]@2 ~@8 d5@13 ~@9]/2", // Bm G F#m D5 G#dim D5 Am
BE: "[e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~ [e5,a5,c#6] ~", // A
BF: "[a#5,e6] ~ [b5,e6] ~ [b5,e6] ~ [b5,e6] ~ [b5,e6] ~ [b5,e6] ~ [b5,e6] ~ [b5,e6] ~, e5@15 ~", // A#dim E5
BG: "[d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~ [d5,a5,d6] ~", // D5
BH: "[a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] f#5 [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~@3", // A5
BI: "[[a4,c5,f5]@7 ~ [c4,g4,c5,e5]@6 ~@2 [d4,b4,d5,g5]@7 ~ [d4,a4,d5,f#5]@5 ~@5 [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ a3@2 [e5,a5] ~ [e5,a5] ~ [e5,a5] ~@3, ~@15 g3@7 ~@8 a3@22 ~@8 a3@4, ~@16 e4@11 ~ e4@3 ~]/4", // F C G D D#dim A5 D#dim A5 …
BJ: "[[a4,c5,f5]@7 ~ [c4,g4,c5,e5]@6 ~@2 [d4,b4,d5,g5]@7 ~ [a4,d5,f#5]@6 ~@2, ~@14 g3@9 ~@9]/2", // F C G D
BK: "[c#5,f#5]@2 [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~, a4 ~@15", // F#5 A
BL: "[e4,a4,c#5,e5] ~@15", BM: "~@2 e4 ~ [b4,d5] ~ [b4,d5] ~ [a4,c#5] ~ [e4,g#4,b4] ~@3 e4@2",
BN: "[b4,d5]@2 e4@2 ~@2 e4@3 ~ e4@3 ~ e4 ~", // Bm
BO: "~@2 [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~", BP: "[e5,g5,a5] ~@15",
BQ: "~@2 e4@2 [b4,d5]@2 e4@2 [a4,c#5] ~ b4@2 ~@2 e4@2, ~@10 g#4 ~@5", // Bm A
BR: "~@2 e4@2 ~@2 e4@3 ~ e4@3 ~ e4 ~, ~@2 e5@3 ~@3",
BS: "[e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [b6,c7] [g6,a6] [d6,e6,f6] [b5,c6] [g5,a5] [d5,e5,f5] [a4,b4,c5,d5] g4", // A5 Cmaj7 Gsus2 Dm Cmaj7 Gsus2 Dm D7
BT: "a4 ~ a5 d6 [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~", // D5
BU: "[a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~ [a5,d6] ~", // D5
BV: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,f#6,a6] ~@2 [g6,a6,b6,c7] [e6,f6] [c6,d6] [f5,g5,a5,b5] [d5,e5,a5] [g4,a4,b4,c5] [c4,d4,e4,f4]", // A5 F#m7 Cmaj7 Fmaj7 Csus2 G7 Dsus2 Cmaj7 …
BW: "[a4,c5,f5]@7 ~ [g4,c5,e5]@8, [g3,a3,b3] ~@15", BX: "~ [b4,d5,g5]@6 ~ [a4,d5,f#5]@5 ~@3",
BY: "[c#5,f#5]@2 [a4,c#5,e5]@4 a3@2 [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [d#5,a5]@2, a3@3 ~@5, a4 ~@15", // F#5 A D#dim A5 D#dim
BZ: "[e5,a5] ~ [e5,a5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~@3", // A5 D#dim A5
CA: "[b4,d5,g5]@3 ~ [a4,d5,f#5]@3 ~, g3 ~@7 d3@4 ~@4", // G D
CB: "[a4,f#5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [d#5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] f#5 ~@2, c#5 ~@7", // D A D#dim A5
CC: "[c#5,c#6] ~ [f#3,c5,c6] ~ [g#3,b4,b5] ~@2 [d#5,g#5] ~@8, e3 ~@2 [a3,a4,a5]@5", // C# F#dim G#m G#5 A
CD: "~@5 [b6,c7] a6 [f6,g6,a6] [e6,g6] [c6,d6] [a5,b5,d6] [f5,g5,a5,b5] [e5,g5] [a4,b4,c5,d5] [d4,e4,f4,g4,a4] [g3,a3,b3,c4,d4]", // Cmaj7 F Em Csus2 Bm7 G7 Em D7 …
CE: "f3 [b2,c3,d3,e3,f3,g3,a3] [e2,f2,g2,b2,c3] ~@13, ~ a2@7 ~@8", // Bm7b5 Cmaj7
})).s("gm_piano").gain(0.25).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@20 A B A C D E F G F G A H D@2 E G D@2 I J F G F J I H A@2 D I@3 D@2 F G D@2 F G A C A H A H B A D I A H B A B A@2 H
A H D I E G D H A H D@2 A H D@2 A H K L A L A H I H I@2 E G D@2 E M D@2 A J A D A J K C K L A H A H D F D H D@2 A N
~@2
>`.pickRestart({
A: "x ~@3 x!2 ~@2", B: "x ~@3 x!2 ~ x", C: "x ~@2 x ~ x ~@2", D: "x!2", E: "x!2 ~@2 x ~@2 x", F: "x ~@3 x ~@2 x",
G: "~ x ~@2 x!2 ~@2", H: "x!2 ~ x ~ x ~@2", I: "x!2 ~@2 x ~@3", J: "x", K: "x!2 ~@2 x!2 ~@2", L: "x!2 ~ x ~ x ~ x",
M: "~ x ~@2 x!2 ~ x", N: "x!2 ~ x ~@4",
})).gain(0.35)
// drums · snare
const snare = s("sd").struct(`<
~@12 A B A B@3 A C D@7 E D@3 F ~ G D H ~ I D J D@2 K ~ D@3 L D@3 M ~ N D O ~ P D Q D@7 R D@3 S D@3 T D@7 U D@3 O ~ V D
W ~ X D K D S D Y D@7 Z ~ AA D AB ~ AC F J D@2 AD ~ D@3 F D@3 AE ~ AF D AG ~ AC AG AH ~ AI
>`.pickRestart({
A: "x ~@6 x", B: "x", C: "x ~ x ~ x ~@2 x!9", D: "~ x ~ x", E: "~@4 x ~@2 x ~@4 x!3 ~", F: "~@4 x ~@5 x!3 ~ x ~",
G: "~@11 x!3 ~ x", H: "~@4 x ~@3 x!3 ~ x!3 ~", I: "~@10 x!3 ~ x ~", J: "x ~@2 x", K: "~@4 x ~@5 x!6",
L: "~@2 x ~@7 x!3 ~ x ~", M: "~@4 x ~@3 x!8", N: "~@8 x!2 ~ x!3 ~ x", O: "~@4 x ~@7 x ~ x!2", P: "~@10 x!3 ~ x!2",
Q: "~@4 x ~@3 x!2 ~ x!5", R: "x ~@2 x ~@2 x ~@3 x!6", S: "~@2 x ~@3 x!2", T: "~@4 x ~@3 x ~ x ~ x!4",
U: "~@2 x ~@3 x ~ x!8", V: "~@7 x!3 ~ x!3 ~ x", W: "~@4 x ~@2 x ~@4 x ~ x!2", X: "~@6 x!2",
Y: "~@4 x ~@5 x ~ x ~ x!2", Z: "~@4 x ~@3 x!7 ~", AA: "~@9 x ~ x!3 ~ x", AB: "~@4 x ~@7 x!3 ~", AC: "~@5 x!3",
// … 28 more lines
More by
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.