0:00/0:00
// The Best of Times — Styx
// 80 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 38, 4/4 at bar 39) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 86 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · piano · "A.PIANO 2"
const piano = note(`<
A@6 B@3 C@5 D E F@8 G@8 H@3 I J@2 K L@2 M@2 N O P Q R@4 S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ@2 AK AL AM@2 AN
AO AP@2 AQ AR AS@2 AT AU ~@2
>`.pickRestart({
A: "[~@11 [a3,c4,e4,g4,a4,c5]@33 ~ f#4@3 ~ f#4@4 f#4@4 f#4@4 f#4@2 ~@3 f#4@4 f#4@4 f#4@4 g4@2 ~@2 g4@4 ~ g4@2 ~@2 g4@4 g4@2 ~@2 g4@4 g4@2 ~@3 g4@4 g4@2 ~@2 g4@4 c5@4 ~ c5@2 [c5,d5]@2 ~@4 d5@4 ~@4 b4@4 ~@5 e4@4 ~@4 e4@4 ~@5 e4@4 e4 ~@3 e4@4 [e2,e4,g#4,b4,d5]@4 g#2@2 ~@3 [b2,e4,g#4,b4,d5]@2 ~@2, ~@45 [d2,d3]@33 [g2,g3]@17 [f2,f3]@17 [c3,c4]@25 [b2,g3,c5]@9 [f2,f3]@33 ~@13, ~@45 [a4,c5,e5]@8 [a4,c5,e5]@8 [a4,c5,d5]@8 ~ [a4,c5,d5]@8 [b4,d5]@8 ~ [b4,d5]@8 [b4,d5]@8 [b4,d5]@8 ~ [c5,e5]@8 [g4,e5]@8 ~ [g4,e5]@8 ~@9 [f4,a4]@8 [f4,a4]@8 [f4,a4]@8 ~ [f4,a4]@8 ~@13]/6", // Am7 Csus2 E7 D G F C Cmaj7 …
B: "[[e2,e3,e4,g#4,c5]@11 ~@2 [e2,e3,d4,g#4,b4]@4 f3@8 ~@13 f5@17 [g3,d4,g4,b4,d5]@30 ~@8 [c5,e5]@3, ~@17 f2@38 ~@41, ~@17 a4@12 c4@2 f4@3 a4@21 ~@41, ~@17 [c4,f4]@10 a3@9 c5@19 ~@41, ~@25 f3@29 ~@35 a3@7]/3", // Eaug E7 G C F5
C: "[~ c5@4 [a4,c5]@4 a3@8 ~ a3@8 ~@4 [a4,c5]@4 ~@5 e4@4 a3@8 a3@7 ~@6 [c5,e5]@4 c5@4 [a4,c5]@5 a3@8 a3@8 ~@5 [a4,c5]@4 ~@4 e4@4 [f2,c3,c4,f4,a4]@9 [g2,d3,d4,g4,b4]@8 ~@4 a4@4 ~@5 a4@4 a4@4 a4@4 a4@4 ~ a4@3, ~ [a3,e5]@8 [b4,d5]@25 ~@9 [g4,b4]@25 ~@9 [b4,d5]@25 ~@25 [c5,e5]@8 [c5,e5]@9 [c5,e5]@8 [c5,e5]@8, ~@26 a3@9 [a3,a4,c5]@9 ~@16 a3@8 [a3,e5]@9 ~@16 a3@9 [a3,a4,c5]@9 ~@16 [a2,a3]@33]/5", // Am C Am F G A5 Bm G …
D: "~ f#4@2 ~@2 f#4@4 [f#4,a4]@4 [f#4,a4]@4 ~ f#4@3 ~ f#4@4 [f#4,a4,c5,d5]@4 [f#4,a4]@2, ~ [d2,d3]@31, ~ [a4,c5,e5]@8 [c5,e5]@8 ~ [a4,c5,d5]@8 ~@6", // F#m D7 F#m D Am C D7
E: "~@2 g4@2 ~@3 g4@4 g4@4 g4@4 g4@2 ~@2 g4@4 ~ [g4,b4,d5]@4, ~@2 [g2,g3]@17 [f2,f3]@13, ~@2 [b4,d5]@8 ~ [b4,d5]@8 [b4,d5]@8 ~@5", // G F Bm
F: "[g4@4 g4@2 ~@3 g4@4 g4@4 g4@4 g4@2 ~@2 g4@4 ~ g4@2 ~@2 g4@4 e5@4 ~@8 a4@4 ~@13 g4@4 ~@13 a4@4 ~@13 g4@3 ~@14 a4@4 ~@4 g4@4 ~ g4@4 g4@4 e5@4 a4@4 a4@4 a4@4 ~@5 e4@4 e4@4 e4@4 ~ e4@2 ~@2 e4@4 e4@4 e4@4 e4@2 ~@3 e4@4 e4@4 e4@4 e4@2 ~@2 e4@4 ~ e4@4 e4@4 f#4@2 ~@2 e4@4 e4@4 ~ e4@4 [f2,f3,a3,c4,f4]@8 [f2,f3,a3,c4,f4]@8, ~@4 [c3,c4]@17 [c3,g3,c5,e5]@9 [b2,g3,b4,e5]@8 c5@8 [c5,e5]@8 ~ [b4,d5,g5]@8 [b4,d5,g5]@8 ~ [c5,e5]@8 [c5,e5]@9 ~@4 g4@8 ~@9 a4@8 ~@38 [g#4,b4,e5]@8 [g#4,b4,e5]@9 [a4,c5,e5]@8 [a4,c5,e5]@8 [g#2,g#3]@17 [g2,g3]@17 [f#2,f#3]@17 ~@16, ~@4 [c5,e5]@9 [c5,e5]@8 ~@17 [f2,f3]@17 [f2,f3]@17 [f2,f3]@16 [f2,f3]@16 ~ [f2,f3]@17 [f2,f3]@17 [a2,e3]@17 [e2,b2]@17 [a2,a3]@17 ~@33 [a4,c5,e5]@8 [a4,c5,e5]@8 ~@17, ~@42 a4@8 ~@9 g4@8 ~@9 a4@8 ~@4 [b4,d5]@8 ~ [b4,d5]@7 ~ [c5,e5]@9 [c5,e5]@8 [b4,d5,g5]@9 [b4,d5,g5]@8 c5@8 [c5,e5]@8 ~@34 [g#4,c5,e5]@8 ~ [g#4,c5,e5]@8 [g4,c5,e5]@8 ~ [g4,c5,e5]@9 ~@32]/8", // F C Em C G C E Am …
G: "[[f2,f3,a3,c4,f4]@8 [f2,f3,a3,c4,f4]@8 [a3,c4,d4,g4]@2 ~@2 d2 ~ [d2,d3,a3,g4]@4 ~@2 [g2,g3,b3,d4,g4]@18 ~@2 [c2,c3]@3 ~ [c2,c3]@4 [c2,c3,c4,e4,g4]@4 [c2,c3]@3 ~ c2@4 [c2,c3]@3 ~ c2@4 [c2,c3]@3 ~ [c2,c3]@4 [c2,c3]@4 c3@4 c3@4 c3@4 c3@4 c3@3 ~ c3@4 [c2,c3]@3 ~ c3@4 [c3,c4,e4,g4]@4 [c2,c3]@3 ~ c2@4 c3@4 ~@4 c3@2 c3@2 a2@3 ~ a2@4 [a2,a3,c4,e4]@4 g2@3 ~ g2@4 g2@4 g2@3 ~ g2@4 [c2,c3]@4 c2@3 ~ [c2,c3,c4,e4,g4]@4 [c2,c3]@3 ~ c2@4 [c2,c3]@3 ~ [c2,c3]@4 [c2,c3]@3 ~ c3@4 c3@4 c3@3 ~ c3@4 c3@4 c3@4 [c2,c3]@3 ~ [c2,c3]@4 [c2,c3]@3 ~ c3@4 [c3,c4,e4,g4]@4 [c2,c3,b3,d4,g4]@4, ~@16 [d2,d3]@4 ~@2 [c4,d4]@2 ~@24 [c4,e4,g4]@8 ~@4 [b3,d4,g4]@8 [c4,e4,g4]@8 [c4,f4]@36 [c4,e4,g4]@8 ~@4 [b3,d4,g4]@8 [c4,e4,g4]@7 ~ [b3,d4,g4]@4 ~@32 [c4,e4,g4]@7 ~@5 [b3,d4,g4]@8 [c4,e4,g4]@8 ~@36 [c4,e4,g4]@8 ~@8, ~@19 a3@7 a3@2 ~@8 [a3,c4,e4]@2 ~ [g3,b3,d4]@3 [g3,b3,d4]@2 ~@7 [a3,c4,f4]@3 ~@4 [a3,c4,f4]@2 ~@4, ~@44 c2@12 ~@2 c2@4 ~@4 c2 ~ c2@4 ~@32 c2@4 [c2,a3,c4,f4]@8 ~@6 c2@4 ~@2]/8", // F Am7 Dsus4 G C Am C G …
H: "[c3@4 c3@3 ~ c3@4 [c3,b3,d4,g4]@4 a2@4 a2@3 ~ [a2,a3,c4,e4]@4 g2@3 ~ g2@4 g2@4 g2@3 ~ g2@3 ~@5 g4@4 c4@4 c4@2 ~@6 [c4,g4]@4 c4@4 c4@2 ~@6 [c4,g4]@4 c4@4 c4@4, c2@11 ~ c2 ~@35 [f2,c3,f3]@14 g3@10 g3@7 ~@17, ~@4 [c4,e4,g4]@8 ~@4 [a3,c4,e4]@7 ~@5 [g3,b3,d4]@19 ~ [a3,c4]@8 g4@12 ~@4 g4@12 ~@4 g4@8, ~@28 a3@3 c4@3 ~@5 c4@3 ~@6, ~@64 [e2,e3]@15 ~ [d2,d3]@16]/3", // G Am C5 F5 C Am G Am …
I: "[g2,d3,f3,a3,c4]@4 [g2,d3,b3,d4]@4 ~@2 g3!2 ~@2 g3!2, ~ g2, ~@2 d4 [d4,g4,b4]", // Dm7 G
J: "[f4@3 ~ [f3,g4]@4 ~@4 c4@2 ~@6 [c4,g4]@4 ~@4 c4@2 ~@6 c4@4 d3@4 d3@4 [f2,c3,a3,c4,e4]@8 [e2,b2,g3,b3,d4]@8, f2@14 c4@5 ~@5 c4@4 ~@2 c4@5 ~@5 [c4,g4]@8 ~@16, [a3,c4]@8 g4@11 ~@5 g4@16 ~@24, ~@8 a3@7 ~@3 e3@8 e3@5 ~@3 d3@6 ~@24, ~@8 c4@2 f3@5 ~ e2@15 ~ d2@16 ~@16]/2", // Fsus2 C5 Fmaj7 Em7 C5 Am
K: "~ d3 ~ d3 [d3,a3,c4,d4,g4]@2 ~ d3, [d2,a2]@15 ~ g2@16, [f3,a3,c4]@7 ~ [f3,a3,c4]@8 ~@8 [a3,c4,d4,g4]@8", // Dsus4 D5 F Am7
L: "[c3@2 ~@2 c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ [d4,g4,b4,d5]@3 ~ c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ c3@2 ~@2 g2@2 a2 ~, ~@24 c3 ~@3 [c4,f4,a4,c5]@36]/2", // G F
M: "[c3 ~@3 c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ c3@2 ~@2 c3 ~ c3 ~ [d4,g4,b4,d5]@2 c3 ~ [f2,f3]@2 ~@2 [f2,f3]@2 ~@2 [f2,f3]@4 [f2,f3]@4 [f2,f3]@4 [e2,e3]@2 ~@2 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4, ~@24 c3 ~@3 [c4,f4,a4,c5]@12 [c4,f4,a4,c5]@8 [e4,g#4,b4,d5]@16]/2", // G F E F E7
N: "[e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5]@2 ~@2 [e4,a4,c5]@3 ~, a2@31 ~, e3@13 ~@3", // Am
O: "[d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [g#4,b4] ~@3 [d4,g#4,b4]@4, e3, e2@7 ~, ~@12 d4 ~@3", // G#dim G#m G#dim
P: "[e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,c5]@2 ~@2 [a4,c5] ~@3, [a2,e3]@7 ~, ~@24 a4 ~@3 e4@2 ~@2", // Am C Am A5
Q: "[d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3, [e2,e3]@29 ~@3", // G#dim E
R: "[~@4 [f3,c4,g4]@4 ~@4 c5@2 ~@6 [c4,g4]@3 ~@5 c5@2 ~@6 [c4,g4]@3 ~@5 c5@4 [d4,g4]@3 ~ [g3,d4,g4]@4 ~@4 d5@2 ~@6 [c4,g4]@3 ~@5 c5@2 ~@6 [c4,g4]@3 ~ [c4,g4]@4 c5@2 ~@6 [c4,g4]@3 ~@5 [d3,c5]@4 [f2,f3,f4,a4,c5,e5]@8 [e2,e3,e4,g4,b4,d5]@8, f2@14 c5@6 ~@4 [c4,g4]@6 c5@6 ~@4 [c4,g4]@7 ~@9 [g3,d4,g4]@7 ~@5 f3@10 c5@6 ~@10 c5@5 ~@29, ~@8 [c4,g4]@8 ~@2 e3@8 e3@5 ~@5 d3@11 ~@15 d5@5 ~@5 [c4,g4]@8 ~@4 e3@12 ~@4 d3@4 [c4,g4]@8 ~@16, ~@10 f3@6 e2@15 ~ d2@15 ~ g2@15 ~ f2@16 e2@16 d2@16 ~@16]/4", // Fsus2 C5 G5 C5 D7 Fmaj7 Em7 C5 …
S: "[d2,d3,d4,f4,a4]@16 [g2,a3,c4,d4,g4]@15 ~, c5 ~@3", // Dm Gsus4
T: "~@2 [c5,e5]@2 [c5,e5]@2 [a4,c5]@2 ~@7 g3, [a2,e3]@7 e3, ~ [b4,d5]", // C Am A5 Bm
U: "~@4 [a4,c5]@3 ~ a4@4 e4@4 ~@4 c4@4 b3@4 g3@4, a3@5 ~@3, ~ c5 [g4,b4]@2", // Am G
V: "~@4 [c5,e5]@3 ~ [c5,e5]@4 [a4,c5]@4 ~@4 g3@4 e3@4 d3@2 c3@2, [f2,c3]@5 ~@3, ~@16 [b4,d5]@15 ~", // C Am F5 Bm
W: "~@4 [a4,c5]@3 ~ [a4,c5]@4 e4@4 [f2,c3,c4,f4,a4]@8 [g2,d3,d4,g4,b4]@8, [a2,e3] ~", // Am F G A5
X: "e4 ~ e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 e4@2, [a2,a3], [a4,c5]!4", // A Am
Y: "f#4@2 ~@2 f#4@4 [f#4,a4]@4 [f#4,a4]@3 ~ f#4@2 ~@2 f#4@4 f#4@4 f#4@3 ~, [d2,d3]@31 ~, [a4,c5,e5]@8 [c5,e5]@7 ~ [a4,c5,d5]@8 [a4,c5,d5]@7 ~", // F#m D Am C D7
Z: "g4 ~ g4@2 g4@2 g4@2 d5@2 g4@2 g4@2 g4@2, [g2,g3] [f2,f3], [b4,d5]!2 b4 [b4,d5], ~@8 g4 ~@7", // G F Bm
AA: "e5@4 g4@4 g4@4 g4@3 ~ g4@2 ~@2 g4@4 g4@2 ~@2 g4@4, [c3,c4]@15 ~ g3@16, c5@8 [c5,e5]@7 ~@17, g4 ~@7 [c3,c5,e5]@4 [b2,b4,e5]@4", // C E5
AB: "e5@4 ~@8 f4@3 ~ g5@4 g4@4 g4@4 g4@3 ~, [f2,f3]@15 ~ [f2,f3]@15 ~, [a4,c5]@8 [a4,c5,e5]@7 ~ [b4,d5]@8 [b4,d5,g5]@7 ~, ~ f4@2 ~@5", // F Am Bm G
AC: "[a4,c5,e5]@8 f4@4 f4@4 g4@2 ~@2 g4@4 [g4,b4]@4 [g4,b4]@3 ~, [f2,f3]@16 [f2,f3]@15 ~, ~@8 [a4,c5,e5]@8 [b4,d5]@8 d5@7 ~", // Am G F Am Bm
AD: "~ f4!3 ~ g4!3, [f2,f3]!2, [a4,c5,e5]!2 [b4,d5,g5]!2", // F Am G
AE: "~ a4!3 ~ e4 [e4,g#4]!2, [a2,a3] [e2,b2], [c5,e5]!2 [g#4,b4,e5] [b4,e5]", // E A E5 C E E5
AF: "a4 ~ a4@2 a4@2 a4@2 g#4 ~ g#4@2 [g#4,c5]@2 [g#2,g#3,g#4,c5]@2, [a2,a3]@4 [g#2,g#3]@3 ~, [c5,e5]!3 e5", // G# A G# C
AG: "g4@2 ~@2 g4@4 g4@4 g4@3 ~ f#4@2 ~@2 f#4@4 f#4@4 f#4@3 ~, [g2,g3]@15 ~ [f#2,f#3]@15 ~, [c5,e5]@8 [a4,c5,e5]@7 ~ [a4,c5,e5]@8 [a4,c5,e5]@7 ~", // G F# C Am
AH: "a3@2 ~@2 a3@4 a3@4 ~@2 f2@2 [f2,f3,a3,c4,f4]@8 a3@3 ~ a3@3 ~, [f2,f3]@12 [f3,a3]@4 ~@8 [f2,f3,c4,f4]@7 ~, [c4,f4]!2 ~@2", // F F5
AI: "[g2,a3,c4,d4,g4]@4 ~@2 [g2,a3,c4,d4,g4]@4 ~@2 [g2,b3,d4,g4]@17 ~@3", // Gsus4 G
AJ: "[[c3,e4,g4,c5]@8 [c3,e4,g4,c5]@4 [c2,c3]@3 ~ [c2,c3]@4 [c2,c3]@3 ~@5 c3@3 ~ c3@4 c3@4 c3@4 c3@4 ~@8 c3@3 ~ c3@3 ~, c2@12 [d4,g4,b4]@8 [e4,g4,c5]@7 ~ [c4,f4,a4]@28 [c4,f4,a4]@7 ~, ~@24 c2@16 c2@12 c2@11 ~, ~@6 c3 ~]/2", // C G C F
AK: "c3@3 ~ c3@3 ~ [c2,c3,e4,g4,c5]@4 c3@3 ~ c3@4 c3@4 c3@4 [c3,d4,g4,b4]@3 ~, [c2,c4,e4,g4]@7 ~@5 c2@19 ~, ~@12 [d4,g4,b4]@8 [e4,c5]@11 ~, ~@5 g4@2 ~", // C G C G C
AL: "a2@4 a2@4 [a2,a3,c4,e4,a4]@4 b3@3 ~@5 g3@4 ~@4 g3@3 ~, [a3,c4,e4,a4]@8 ~@4 g2@19 ~, ~@3 [d4,g4]@3 ~@2, ~@3 g3@2 ~@3, ~@16 b3@8 [b3,d4,g4]@7 ~", // Am G5 G
AM: "[c3@3 ~ c3@3 ~ [c2,c3,e4,g4,c5]@4 ~@4 c3@4 c3@3 ~ c3@3 ~ c3@3 ~ c3@4 c3@4 c3@3 ~ c3@4 c3@4 c3@4 c3@4 [c3,c4,f4,a4]@4, [c2,c4,e4,g4]@7 ~@5 c2@15 ~ c2@36, ~@12 [d4,g4,b4]@8 [e4,g4,c5]@7 ~ a4@32 ~@4, ~@7 [c4,f4]@5 [c4,f4]@3 ~]/2", // C F C G C F5
AN: "c3@3 ~ c3@4 [c2,e4,g4,c5]@4 c3@3 ~ c3@4 c3@3 ~ c3@3 ~ [c3,d4,g4,b4]@4, [c2,c4,e4,g4]@8 c3 ~@3 c2@16 ~@4, ~@12 [d4,g4,b4]@8 [e4,g4,c5]@7 ~@5", // C G C G C
AO: "a2@3 ~ a2@4 [a2,a3,c4,e4,a4]@4 g3@3 ~ g3@4 g3@3 ~ g3@2 ~@2 g3@4, [a3,c4,e4,a4]@8 ~@4 [g2,b3,d4,g4]@11 ~ [g2,b3,d4,g4]@8", // Am G
AP: "[~@4 c3@4 [c2,c3,e4,g4,c5]@3 ~ c3@3 ~ c3@3 ~ [c2,c3]@3 ~ c2@4 [c2,c3]@3 ~ [c2,c3]@4 [c2,c3]@4 c3@2 ~@2 c3@4 c3@4 c3@4 c3@2 ~@2 c3@4, c4@11 ~@9 [e4,g4,c5]@8 [c4,f4,a4]@12 ~@24, [c2,e4,g4]@8 ~@4 [c2,d4,g4,b4]@7 ~@21 [c2,c4,f4,a4]@16 [c2,c4,f4,a4]@8]/2", // C F C G F
AQ: "c3@3 ~ c3@3 ~ [c2,e4,g4,c5]@4 c3@3 ~ c3@4 c3@3 ~ c3@4 [c3,d4,g4,b4]@4, [c2,c4,e4,g4]@7 ~ c3 ~@3 c2@19 ~, ~@3 [d4,g4,b4]@2 [e4,c5]@3, ~@5 g4@2 ~", // C G C G C
AR: "~@4 a3@4 [a2,a3,c4,e4,a4]@4 g3@3 ~ g3@4 g3@3 ~ g3@2 ~@2 g3@3 ~, [a2,c4,e4,a4]@8 ~@4 [g2,b3,d4,g4]@11 ~ [g2,b3,d4,g4]@7 ~", // Am G
AS: "[c3@4 c3@4 [c2,c3,e4,g4,c5]@3 ~ c3@3 ~ c3@3 ~ [c2,c3]@4 c2@3 ~ c3@3 ~ c3@4 c3@4 c3@3 ~ c3@4 c2@4 ~@4 c3@2 ~@2 c3@3 ~, c4@11 ~@9 [e4,g4,c5]@8 [c4,f4,a4]@28 [c4,f4,a4]@7 ~, [c2,e4,g4]@2 ~ [c2,d4,g4,b4]@2 ~@2 c2@5 c3@2 ~@2, ~@52 c2@11 ~]/2", // C F C G
AT: "c3@3 ~ c3@4 [e4,g4,c5]@4 c3@3 ~ c3@4 c3@2 ~@2 c3@3 ~ [c2,d4,g4,b4]@2 c3 ~, [c2,c4,e4,g4]@8 c2@2 ~@2 [c2,d4,g4,b4]@8 [c2,e4,g4,c5]@7 ~@5, ~@8 c3 ~@23", // C G C G C
AU: "[a2,c4,e4,a4]@8 [a2,a3,c4,e4,a4]@3 ~ g3@8 g3@3 ~ [g2,g3,b3,d4,g4]@8, ~@12 [g2,b3,d4,g4]@11 ~@9", // Am G
})).s("gm_piano").gain(0.44)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@8 A@6 B@2 C@8 D@2 E F G H E F G I J K L M N O P Q R S T S U V W X Y Z AA AB AC AD AE AF AG AH AI@3 AJ AK AL AM AN AO
AP AQ AR AS AT AU AV AO AP AQ AR AS AT AU AV ~@2
>`.pickRestart({
A: "[~@33 a3@8 a3@8 ~ a3@4 e3@4 ~@8 a3@8 ~ a3@8 a3@4 e3@5 ~@8 a3@8 ~ a3@8 a3@4 e3@5 a2@8 a3@8 f1@9 g1@8 a1@33, ~@24 a2@17 ~@17 a2@17 ~@17 a2@17 ~@83]/6",
B: "[~ d2@34 g1@16 f1@13]/2",
C: "[~@4 c2@17 c2@8 b1@9 f1@17 f2@17 f1@16 f2@17 f1@17 f2@17 a1@16 e2@17 a1@17 ~ g#1@16 g1@17 f#1@17 f1@3 ~ f1@3 ~ f1@3 ~ f1@4]/8",
D: "[f1@3 ~ f1@3 ~ f1@4 f1@3 d2@4 ~ d2@2 d2@4 d2@2 g1@8 g1@4 g1@3 ~ g1@2 a1@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2]/2",
E: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", F: "c2 ~ c2 ~ c2 ~ g1 a1 c2 ~ c2 ~ c2 ~ c2 ~",
G: "c2 ~ c2 ~ c2 ~ c2 ~ a1 ~ a1 ~ a1 ~ g1 ~", H: "g1 ~ g1 ~ g1 ~ g1 a1 c2 ~ c2 ~ c2 ~ c2 ~",
I: "g1@2 ~@2 g1@2 ~@10 f2@7 ~ f2@8", J: "e2@7 ~ e2@8 d2@7 ~ d2@8", K: "g1!2 g2!2", L: "f2!2 e2!2", M: "d2!2 f2 e2",
N: "d2@7 ~ d2@8 g1@8 g1@7 ~", O: "c2@3 ~ c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~",
P: "c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 g1@2 a1@2",
Q: "c2@3 ~ c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@4 f2@4",
R: "f1@4 f2@3 ~ f2@3 ~ f2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~", S: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
T: "e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2 ~@3",
U: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", V: "f2@8 f2@8 e2@7 ~ e2@8", W: "d2@8 d2@8 g2@4 g1@3 ~ g1@3 ~ g1@4",
X: "f2@7 ~ f2@8 e2@8 e2@7 ~", Y: "d2@7 ~ d2@8 f2@8 e2@8", Z: "d2@16 g1@15 ~", AA: "a2@14 e3 g3",
AB: "a3@19 ~ c4@4 b3@4 g3@4", AC: "a3@10 g3@2 e3@2 d3 c3", AD: "a2@12 g2 a2 g2 ~ f2@8 g2@7 ~", AE: "a1", AF: "d2",
AG: "g1 f1", AH: "c2@2 c2 b1", AI: "f1 f2", AJ: "a1 e2",
AK: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ g#1@3 ~ g#1@3 ~ g#1@3 ~ g#1@3 ~",
AL: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ f#1@3 ~ f#1@3 ~ f#1@3 ~ f#1@3 ~",
AM: "f1 ~ f1@3 ~ f1@2 f1@3 ~ f1 ~ f1 ~ f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~",
AN: "d2@3 ~ d2 ~ d2@5 ~ g1@7 ~ g1@3 ~ g1@3 ~ g1@2 a1@2",
AO: "c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@2 ~@2 c2@3 ~",
AP: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 g1 ~ a1@2",
AQ: "c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~",
AR: "a1@3 ~ a1@2 ~@2 a1@2 ~@2 g1@3 ~ g1@3 ~ g1@2 ~@2 g1@2 ~@2 g1@2 a1@2",
AS: "c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2",
AT: "c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 g1@2 a1 ~",
AU: "c2@3 ~ c2@3 ~ c2@2 ~@2 c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@3 ~", AV: "a1 ~ a1 ~ a1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 a1",
})).s("gm_fretless_bass").gain(0.38)
// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
~@23 A B@8 C@2 D E F G H ~@8 I J I K L ~@12 M N O P Q@2 R S T@3 U Q@2 R S T@3 V ~@2
>`.pickRestart({
A: "~@4 [f3,c4,f4]!4", // F5
B: "[[f3,c4,f4]@4 [f3,c4,f4]@4 [f3,c4,f4]@4 [f3,c4,f4]@2 ~@2 [d3,a3,d4]@3 ~@3 d3@4 [d3,a3,d4] ~ [g2,d3,g3]@12 ~@4 g2@2 a2@2 [c3,g3,c4]@20 [c3,g3,c4]@5 ~@3 [f3,a3,c4,f4]@29 ~@3 g2@2 a2@2 [c3,g3,c4]@20 [c3,g3,c4]@8 [f#3,c4] ~@3 [a2,e3,a3]@11 ~ [g2,d3,g3]@13 ~@3 g2@2 a2@2 [c3,g3,c4]@19 ~ [g3,c4]@5 ~@3 [f3,a3,c4,f4]@30 ~@3 a2@2 ~ [g3,c4]@16, ~@19 a3@6 ~@231, ~@19 d3@2 ~@174 c3@5 ~@36 g2@2 ~ c3@17, ~@10 d4@3 ~@115]/8", // F5 D5 G5 C5 F C5 F#dim A5 …
C: "[~@4 [c3,g3,c4]@8 c4 ~@3 [a2,e3,a3]@10 ~@2 [g2,d3,g3]@12 [g2,d3,g3]@6 g2 ~ [f3,a3,c4,f4]@8 [f3,a3,c4,f4]@6 [c4,f4] ~]/2", // C5 A5 G5 F F5
D: "[e3,g3,c4,e4]@8 [e3,g3,c4,e4]@6 [c4,e4] ~ [a3,c4,f4]@8 [a3,c4,f4]@6 [d3,g3,b3] ~, ~@16 d3@13 ~@3", // C F G
E: "[g2,d3,g3]@7 ~ [g2,d3,g3]@7 ~ g2 ~ a2@2 b2@2 c3@2 d3@2 e3@2 f3@2 g3@2", // G5
F: "[a3,c4,f4]@4 [f3,a3]@3 [c4,f4] [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4, ~@8 [c4,f4]@5 ~@19", // F F5 C F5
G: "[a3,c4,f4]@8 [a3,c4,f4]@8 [f3,a3,c4]@7 ~ [e3,g3]@8, d3@15 ~@17", H: "[d3,c4]@4 [g2,d3] [g2,d3,g3]!3, a3@13 ~@19",
I: "f3!2 e3!2", J: "d3!2 g2!2", K: "d3!2 f3 e3", L: "d3 g2",
M: "~@4 c4@4 ~@4 c4@4 g#3@3 ~ g#3@4 ~@4 c4@3 ~, a3@2 ~ e4@2 c4@2 ~, ~@3 g#3",
N: "~@3 [c4,e4] ~ c4 [f#3,c4] [f#3,c4,e4], g3@7 ~ g3@8 f#3@7 ~@9, ~ [c4,e4]@2 ~@2 e4@2 ~", // C F#dim F#m7b5 C
O: "[f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4] ~", // F5
P: "[d3,a3,d4]@3 ~@3 d3@4 [d3,a3,d4] ~ [g2,d3,g3]@12 ~@4 g2@2 a2@2, ~@3 a3@6 ~@23, ~@3 d3@2 ~@27, ~@2 d4@3 ~@11", // D5 G5
Q: "[[c3,g3,c4]@20 [c3,g3,c4]@5 ~@3 [f3,a3,c4,f4]@29 ~@3 g2@2 a2@2]/2", R: "[c3,g3,c4]@20 [c3,g3,c4]@8 [f#3,c4] ~@3",
S: "[a2,e3,a3]@11 ~ [g2,d3,g3]@13 ~@3 g2@2 a2@2", // A5 G5
T: "[[c3,g3,c4]@19 ~ [g3,c4]@5 ~@3 [f3,a3,c4,f4]@30 ~@3 a2@2 ~ [g3,c4]@20 [c3,g3,c4]@8 c4 ~@3, ~@19 c3@5 ~@36 g2@2 ~ c3@20 ~@13]/3", // C5 F C5
U: "[a2,e3,a3]@10 ~@2 [g2,d3,g3]@13 ~@3 g2@2 a2@2", V: "[a2,e3,a3]@10 ~@2 [g2,d3,g3]@13 ~@3 g2@2 a2 ~",
})).s("gm_distortion_guitar").gain(0.4).pan(0.4)
// chords · distortion guitar · "DISTORTION" · soft notes
const distortion_guitar_soft = note("<~@28 A ~@3 B ~@5 C ~@25 D ~@6 E ~@3 F ~@3 E ~@3 F ~@2>".pickRestart({
A: "~@25 d#3 g#3 g#2 ~@4", B: "~@26 [d#3,g#3] [g2,g#2,d3,g3] ~@4", C: "~@4 g3 ~@3", D: "~ a3 ~@2, ~ e4@2 ~@5",
E: "~@9 d#3 g#3 g#2 ~@20", F: "~@10 [d#3,g#3] [g2,g#2,d3,g3] ~@20",
})).s("gm_distortion_guitar").gain(0.18).pan(0.4)
// other · lead 1 square · "SQUAREWAVE"
const lead_1_square = note("<~@12 A@2 B@2 C D@4 E@3 ~@62>".pickRestart({
A: "[~@31 a4@4 g4@4 a4@4 ~ g4@4 a4@4 g4@4 a4@4 g4@4]/2",
B: "[~ a4@4 f#4@4 a4@4 f#4@4 ~ a4@4 f#4@4 a4@4 f#4@4 g4@4 ~ d4@4 g4@4 d4@4 g4@4 d4@4 ~ g4@4]/2",
C: "d4@4 g4@4 e4@4 g4@4 ~ e4@4 g4@4 e4@4 g4@3",
D: "[~@2 e4@4 a4@4 f4@4 a4@4 f4@5 g4@4 f4@4 g4@4 f4@4 a4@4 ~ f4@4 a4@4 f4@4 g4@4 ~ f4@4 g4@4 f4@4 a4@4 f4@4 ~ a4@4 f4@4 g4@4 f4@4 g4@4 ~ f4@4 a4@4 e4@4 a4@4 e4@4 ~ g#4@4]/4",
E: "[e4@4 g#4@4 e4@4 a4@17 g#4@17 g4@17 f#4@17 f4@6 ~@10]/3",
})).s("gm_lead_1_square").gain(0.2).pan(0.3)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@42 A B C D E F@2 G H I J@2 K L ~@8 M N O P ~ Q@2 R S T@2 ~@11>".pickRestart({
A: "~@10 e3 ~ g#3 ~ b3 ~", B: "d4@2 e4@8 a4@2 d4@3 c4", C: "e4@2 d4@15 ~@2 [a3,d4,e4] a4@4 d4@7 c4",
D: "d4@3 ~ e4 ~@7 e4@8 g4@4 e4@5 d4 c4 ~", E: "e4 ~ d4@14 e3@2 g3@2 a3@2 b3 ~ c4 ~ d4 ~ e4 ~ g4 ~",
F: "[f4@7 ~ g4@4 a4@4 c4@5 c4@2 d4@3 e4@2 ~@2 e4@6 c4@2 ~@2 d4@2 c4@2 a3@2 a3@3 ~ g3@2 e3@2 d3 ~ d3@2 c3@2 c3@2 c4@2]/2",
G: "~@2 [d3,d4]@2 [d3,d4]@2 [e3,e4]@2 [e3,e4]@2 [f3,f4]@2 [f3,f4]@2 [f#3,g3,f#4,g4]@2 [g3,g4] ~ [c3,c4]@2 [c3,c4]@2 [c#3,c#4] ~ d4@2 [d#3,d#4] ~ e4@2 [d4,d#4]@2, ~@11 d3@2 e3@2 ~, ~@11 d4 ~ e4 ~@2", // D E F Gmaj7 G C C# D# …
H: "[d3,d4]@2 [d4,f4]@2 g4 f4 [d4,f4]@2 a4@2 f4 [f#4,g4] b4@2 g4 [g#4,a4], ~@2 d4 ~@5", // D Dm Gmaj7 Amaj7
I: "c5@4 a4 a#4 b4@2 d5@4 b4@2 c5@2 e5@7 ~ d5 e5@3 g5@2 ~@2",
J: "[a5@19 ~ g5 ~@3 d5@3 ~ c5 ~ d5@4 c5@2 a4@16 e4@3 ~ d4@4 b3@2 ~ b3, ~@24 e5 ~@39]/2",
K: "c4@20 b3@3 ~ a3@3 ~ g3@2 e3@2", L: "d3 e3@11 d3 e3 d3 ~ c3@8 d3@7 ~", M: "a2@17 ~@15", N: "g2@17 ~@15",
O: "~ f2!2 ~", P: "d3@11 ~ g2@16 ~@4", Q: "[~@4 f4@8 a4@8 c4@8 ~@4 c4@31 ~, ~@28 g4@35 ~]/2",
R: "~@6 g4@6 f4 e4 d4 c4", S: "g3@7 ~", T: "[~@3 f4@9 g4@8 f4@8 c5@32 ~@4]/2",
})).s("gm_overdriven_guitar").gain(0.44)
// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@49 A ~ B ~@4 C ~@7 D E F ~@19>".pickRestart({
A: "~@15 [d3,d#3]", B: "~@25 d#5 ~@6", C: "e3@11 ~@5, d3 ~@15", D: "~ g#2", E: "~@16 f#2@15 ~",
F: "f2@4 f2@4 ~@16 f2@7 ~",
})).s("gm_overdriven_guitar").gain(0.27)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@47 A@2 B@2 C D@4 E@2 F G@4 H I J K L M@4 N@8 O@4 ~@2>".pickRestart({
A: "[~ c7@11 g6@4]/2", B: "[c7@25 ~ e6@2 g6@4]/2", C: "a6 g6", D: "[a6@119 ~ g6@8]/4", E: "a6/2", F: "g6 f6",
G: "[g6@127 ~]/4", H: "e6", I: "a6 g#6", J: "g6 f#6", K: "f6@3 g6", L: "c7@16 g6@11 ~ g6@2 a6@2",
M: "[c7@56 g6@6 g6 a6]/4", N: "[c7@54 d7@8 g6 a6]/4", O: "[c7@27 d7@4 ~]/4",
})).s("gm_string_ensemble_1").gain(0.16)
// other · celesta
const celesta = note("<~@17 A@2 B C ~@39 D E F ~@23>".pickRestart({
A: "[~@15 g7@7 ~@8 [d6,d7]@8 ~@10 g7@7 ~@9, ~@14 g6@8 ~@25 g6@9 ~@8]/2", B: "~ d7@9 ~@7 [g6,g7]@8 ~@7, d6@9 ~@23",
C: "~ [d6,d7]@4 ~@11", D: "~@8 [g6,g7]@8 ~@7 [d6,d7]@8 ~", E: "~@8 g7@7 ~@9 d7@8, ~@7 g6@8 ~@8 d6@8 ~",
F: "~@8 [g6,g7]@8 ~@8 d7@7 ~, ~@23 d6@8 ~", // G
})).s("gm_celesta").gain(0.27).pan(0.6)
// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@59 A@2 ~@25>".pickRestart({
A: "[~@12 c5@2 d5@2 e5@4 d5@4 c5@4 b4 ~@2 b4@2 a4@13 ~@18, ~@15 c5 ~@16]/2",
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
~@25 A B C D E B F B@3 G B H I J ~ J K B@7 H B ~@12 L@2 M N B O B P B Q B R B O B P B Q B R ~@2
>`.pickRestart({
A: "~ x", B: "x!2", C: "x ~@2 x!2 ~@3", D: "x ~@7 x ~@5 x!2", E: "x!5 ~@3", F: "x!2 ~ x!2 ~@3", G: "x ~@3 x ~@2 x",
H: "x ~ x!2", I: "x ~@5 x!2", J: "~@6 x!2", K: "~@7 x", L: "x!8", M: "x!2 ~ x!2 ~ x!10", N: "x!3 ~@13",
O: "x ~@6 x!2 ~ x ~@5", P: "x ~@5 x!3 ~ x ~ x ~ x ~", Q: "x ~@6 x!2 ~ x ~ x ~ x ~", R: "x ~@6 x",
})).gain(0.44)
// drums · snare
const snare = s("sd").struct(`<
~@25 A B@3 C B@3 D B E B@2 F ~@3 G B@3 H B I B J ~@13 B@2 ~ K B@3 L B@3 M B@3 N B@3 M ~@2
>`.pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@2 x!2 ~@2 x ~", D: "~@2 x!2 ~@8 x ~@3", E: "~@4 x ~@2 x!3 ~@6", F: "~@3 x!2 ~@11",
G: "x ~ x ~ x ~ x ~ x!2 ~@6", H: "~@4 x ~@6 x!3 ~@2", I: "~@4 x ~@5 x!3 ~@3", J: "~ x ~@2", K: "~@2 x ~@6 x!3 ~@4",
L: "~@4 x ~@7 x!2 ~@2", M: "~@4 x ~@4 x ~@6", N: "~@8 x ~@7 x!2 ~ x!3 ~ x ~@8",
})).gain(0.49)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@64 [x!2 ~ x!3 ~ x]!2 ~ [~@19 x ~@12] ~@18>").gain(0.22)
// drums · low tom
const low_tom = s("lt").struct(`<
// … 51 more lines
More by Styx
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.