0:00/0:00
// Come Sail Away — Styx
// 140 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: pitch bends are ignored
// note: Full arrangement: all 191 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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 1"
const piano = note("<A@3 B@4 C@8 D@7 E@7 F@5 G@7 H@6 I@8 J@5 K@6 L@7 M@6 N@7 ~@105>".pickRestart({
A: "[~@29 g4@4 ~@3 g4@4 c4@3 g4@4 ~@7 f4@4 a4@3 ~@8 f5@3, ~@18 [c4,e5]@19 ~@10 d4@18 a4@7, ~@22 g4@7 ~@4 c6@7 e5@7 f5@21 d4@4, ~@25 e4@4 ~@4 e4@15 ~@2 a4@7 ~@4 f4@11, ~@26 d6@8 ~@20 d6@7 c6@7 ~@4]/3", // C
B: "[a4@3 ~@18 b4@4 e4@3 b4@4 ~@7 f4@3 ~@4 c6@4 a4@3 ~@2 b5@2 a5@2 ~@12 g5@3 ~ c4@3 ~@7 g4@2 ~ b4 c5 ~ b4 c5 b4 c5 b4, ~@3 e4@19 ~@10 d4@19 ~@2 d4@5 ~@2 c4@13 ~@2 c5@6 c5@6 ~@9, ~@3 g5@12 ~@2 g4@15 ~@3 a4@7 a4@7 ~@8 a4@4 ~@3 g4@7 g4@7 ~@4 c4@5 ~@2 g3@7, ~@7 b4@4 d6@7 c6@7 g5@7 f5@21 ~ c6@2 ~@3 b5@2 c6@14 ~@21, ~@10 g4@4 b4@7 ~@18 d6@7 f4@15 ~@6 e4@10 ~ e4@11 ~@3 d4@4]/4",
C: "[c5 b4 c5 b4 c5 b4 c5 b4 c5 ~@2 b4@3 a4@3 ~ [d4,b4]@3 c5@4 ~@14 g4@4 ~@3 g4@4 ~@3 g4@4 ~@3 g4@4 e4@4 ~@3 e5@4 g4@3 ~@4 e4@3 ~@4 [e4,c5]@3 ~@4 e4@4 ~@3 [e4,a4]@4 ~@10 [e4,a5]@4 ~@7 d5@4 d4@3 ~@11 [c4,a4]@3 ~@4 c4@3 a3@4 c4@4 ~@3 [c4,f5]@4 e5@3 [c4,c5]@3 ~@4 c4@4 ~@3 c4@4, b3@12 ~@2 b3@7 c4@11 ~@3 g5@14 ~@8 b5@16 ~@69 a3@8 ~@21 a3@5 ~@16, ~@3 d4@4 g3@14 ~@7 c6@15 e5@7 b3@18 g4@5 ~@2 b4@2 ~@8 c4@8 ~@7 c4@8 ~@2 e4@7 ~@8 e4@7 ~@7 c4@7 ~@46, ~@10 d4@7 ~@8 g4@7 g4@4 c4@10 c5@2 ~@2 b4@21 b3@7 [a3,e5]@11 ~@3 [a3,c5]@10 ~@5 a3@7 a3@7 [a3,e5]@7 g3@7 f3@14 f3@14 ~ f3@12 ~@2 f3@11 ~@3, ~@28 e4@12 ~@3 e4@11 ~@3 e4@5 ~@2 g5@10 ~@33 a4@14 ~@14 c5@10 ~@4 a4@16 ~@13 a4@7 f4@7]/8", // G C A5 F F5 C A5 Am …
D: "[~@4 d4@3 ~@4 d4@3 b3@4 d4@3 ~@11 [d4,g5]@4 ~@3 d4@4 ~@3 d4@4 ~@3 d4@3 ~ c5@4 ~@14 g4@3 ~@4 g4@4 ~@3 g4@4 ~@3 g4@4 ~@3 g4@4 [c5,g5]@3 [g4,b4]@4 ~@11 c5@3 ~@11 [e4,a4]@4 ~@3 e4@4 ~@3 e4@4 ~@7 [g3,d5]@3 e4, g3@20 ~ g3@14 ~ g3@11 ~@3 g3@6 ~@8 c6@17 ~ c5@2 ~@16 b5@14 ~@29 a5@14 ~@11, g4@15 ~@10 d4@7 ~@4 g5@7 d5@11 ~@7 g4@7 g4@7 ~@3 [e4,e5]@7 ~@8 e4@5 ~@2 e4@5 ~@13 e4@7 e4@7 e4@7 ~@21 e4@7 ~, ~@7 b3@7 d5@15 b3@7 ~@7 b3@13 ~ c4@14 g5@14 ~@11 e5@10 ~@15 c4@12 ~@2 c4@7 ~@8 c4@7 ~@11, ~@64 e4@7 c4@12 ~@3 [b3,b4]@21 b3@7 [a3,e5]@11 ~@3 [a3,c5]@10 ~@5 a3@12 ~@2 [a3,e5]@7 ~@4]/7", // G5 C5 G A5 G5 E B A5 …
E: "[~@6 c4@4 ~@4 a4@3 ~@4 c4@3 ~@11 f5@4 ~@3 c5@3 ~@4 c4@4 ~@3 c4@4 ~@4 d4@3 ~@4 g5@3 ~@11 d5@3 ~@4 d4@3 ~@18 d4@3 ~@4 e4@4 ~@3 e4@4 ~@11 a5@3 ~@11 e5@3 ~@4 e4@4 [c4,c5], ~@3 f3@14 a4@16 ~@6 e5@7 a4@7 f4@7 g4@11 ~@3 g5@10 ~@4 d5@28 ~@11 c5@3 ~ c5@9 ~@5 a5@10 ~@5 e5@6 ~@2, ~@3 c5@10 ~ c4@5 ~@5 a3@7 ~@8 a3@9 ~@12 g3@20 ~ g3@21 ~ g3@7 g3@7 a3@14 a3@14 a3@14 a3@9, ~@10 a3@7 f3@14 f3@14 ~ f3@11 ~@13 d4@4 ~@4 d4@7 d4@7 ~@7 d4@7 g4@11 a4@10 ~@8 e4@5 ~@2 e4@7 e4@7 e4@7 ~@5, ~@28 c4@5 ~@2 c4@7 c4@7 ~@18 b3@7 b3@12 ~@2 b3@7 b3@11 d4@7 ~@11 c4@12 ~@2 c4@14 c4@14 ~@2]/7", // C
F: "[~@2 [e4,a4]@4 ~@35 d6@4 c6@3 ~@4 d4@4 d5@3 [d4,g4]@4 ~@3 e4@4 ~@3 e4@4 ~@3 e4@4 ~@11 c6@3 a5@4 e5@3 ~@11 e4@4, ~@6 g3@13 ~ g3@14 g3@14 g3@14 ~ a3@14 a3@14 a3@14 a3@11 ~@4, ~@6 d5@9 ~@2 d4@7 d4@7 d4@5 ~@2 d4@7 d4@7 ~@11 a4@10 c5@3 ~ c5@17 ~@12 c5@7 a4@7, ~@9 d4@7 g4@3 ~ g4@9 ~@9 g6@5 ~@6 g5@5 ~@34 e4@7 e4@7 e4@7 e4@7 ~@4, ~@13 b3@14 b3@14 b3@14 ~ b3@7 ~@7 c4@12 ~@2 c4@14 c4@14 c4@7 ~]/5", // A5 G5
G: "[~@10 g4@3 ~@12 g5@3 ~@14 d5@4 ~@7 d4@3 ~@26 g4@3 ~@14 e4@4 ~@4 e5@3 g4@4 ~@10 e4@4 ~@3 e4@4 ~@29 g3@3 d4, g3@13 ~ g3@14 [g3,g5]@14 g3@14 ~@8 e4@7 g5@14 ~@7 b5@14 e4@4 ~@7 e4@7 ~@15 e4@7 e4@7 e4@7 e4@7 ~, d5@11 ~@3 g4@11 ~@32 c5@5 ~@2 c6@17 c5@2 ~@2 b4@18 b3@11 a3@14 a3@14 a3@7 a3@7 [a3,e5]@7 ~@5, ~@3 d4@7 d4@7 d4@7 ~ d4@5 ~@2 d4@7 d4@7 [d4,g4]@5 ~@9 g4@7 g4@7 c4@11 b3@14 g5@10 ~@5 e5@10 c5@3 ~ c5@10 a4@3 ~ a4@11 a5@5 ~@5 d5@5, ~@7 b3@14 b3@14 b3@14 [b3,d5]@7 ~ c4@14 e4@7 [e4,e5]@7 ~@4 g4@3 e4@4 g4@14 b4@2 ~@9 c4@12 ~@2 c4@33]/7", // G A5 G5 Bm E
H: "[~@13 g5@3 ~@4 c4@3 ~@5 c5@3 ~@7 b3@4 ~@14 d4@3 ~@8 e4@3 g4@4 ~@3 g4@4 c4@3 g4@4 ~@7 f4@4 a4@3 ~@11 a4@3 ~@18 b4@4 e4@3 b4@3, ~@3 f3@20 ~ f3@7 g3@14 g3@7 g3@7 ~@15 c6@7 e5@7 f5@21 d4@4 ~@3 e4@19 ~@9, ~@3 c5@10 ~@4 g5@14 g5@28 ~@8 d6@8 ~@20 d6@7 c6@7 ~ f5@7 g5@12 ~@2 g4@13, ~@6 c4@7 c4@4 c5@11 ~@3 d5@12 ~@2 d5@14 ~@4 g4@7 ~@4 e4@15 ~@3 a4@7 ~@3 f4@15 ~@6 g4 d6@7 c6@7 g5@6, ~@10 a3@14 ~@3 c4@4 ~@3 d4@7 ~ d4@7 d4@7 ~@3 [c4,e5]@19 ~@10 d4@18 a4@7 ~@7 b4@7 b4@7 ~@10]/6", // C
I: "[~@8 f4@3 ~@4 c6@4 a4@3 ~@2 b5@2 a5@2 ~@12 g5@3 ~@11 g4@2 ~@2 b4 c5 b4 c5 b4 c5 b4 c5 b4 c5 b4 c5 b4 c5 b4 c5 b4 c5 b4 c5 b4 a4@3 ~ [d4,b4]@3 ~@25 c4@3 ~@26 b3@3 ~@25 a3@3 ~@11 c4@2 ~@5 c4@3, ~ f5@21 ~ c6@2 ~@3 b5@2 c6@14 ~@50 g4@7 c5@14 ~@7 g4@7 b4@14 ~@7 e4@7 a4@14 ~@21, ~ d4@19 ~@2 d4@5 ~@2 c4@13 ~@2 [c4,c5]@7 [c4,c5]@7 g3@13 ~ g3@14 c3@28 ~ b2@28 a2@28 ~ [a2,a3]@14 [a2,a4]@6, ~@4 a4@7 a4@7 ~@8 a4@4 ~@3 g4@7 g4@7 g4@7 ~@11 b3@12 ~@2 b3@7 c4@22 e4@7 b3@21 e4@7 a3@22 c4@7 ~@3 c4@7 ~@10, ~@8 d6@7 f4@15 ~@7 e4@7 ~@17 d4@7 d4@5 ~@3 d4@7 ~@7 e4@7 e4@7 g4@10 ~@4 e4@7 e4@8 g4@10 ~@4 c4@7 c4@7 e4@10 ~@8 e4@6 ~@7]/8", // G C A
J: "[~@4 d4@4 ~@25 f3@2 ~@27 f3@2 ~@26 g3@3 ~@25 g3@2, ~ [g2,g4]@7 f2@27 ~@2 f2@27 ~ g2@27 ~@2 g2@26, ~@8 f3@21 a3@6 ~@2 f3@25 ~@3 g3@21 b3@6 ~@2 g3@21 b3@5, ~@12 a3@7 a3@7 c4@9 ~@5 a3@7 a3@11 a3@6 ~@8 d4@7 g4@13 ~@9 d4@7 g4@12, ~@15 c4@7 f4@13 ~@9 c4@7 [c4,f4]@13 ~@5 b3@7 b3@7 d4@10 ~@4 b3@7 b3@7 d4@9]/5", // G F5
K: "[~@27 c4@3 ~@25 b3@3 ~@26 a3@3 ~@11 c4@2 ~@5 c4@4 ~@3 d4@4 ~@11 c4@3 ~@11 a3@2 ~, ~@2 c3@28 ~ b2@28 a2@28 [a2,a3]@14 ~ [a2,a4]@7 [g2,g4]@7 f2@27 ~, ~@2 c4@21 e4@7 ~ b3@21 e4@7 a3@21 c4@7 ~@4 c4@7 ~@22 f3@10 f3@13 ~, ~@6 e4@7 e4@7 g4@10 ~@4 e4@7 e4@7 g4@10 ~@5 c4@7 c4@7 e4@10 ~@8 e4@6 ~@22 a3@11 a3@7 ~@3, ~@9 g4@7 c5@14 ~@8 g4@7 b4@14 ~@7 e4@7 a4@14 ~@43 c4@7 c4@6 ~]/6", // A G
L: "[~@25 a3@2 ~@27 g3@3 ~@25 g3@3 ~@22 c4@3 ~ [c4,e4,a4]@2 ~@26 a2@3 ~@22 b3@4, [f2,f3]@27 ~@16 g4@13 ~@8 d4@8 g4@14 ~@14 a4@10 ~@4 a4@28 ~@15 g4@11, ~@4 a3@7 a3@11 c4@6 ~ g3@25 ~@3 g2@28 ~ a2@50 a3@7 g2@25, ~@7 c4@11 e4@9 ~@5 b3@7 b3@11 b3@6 ~ g3@22 b3@7 ~@4 c4@7 c4@10 ~@7 c4@4 a3@3 c4@8 e4@14 ~@7 d4@11 d4@7, ~@15 f4@13 ~@8 d4@11 d4@10 ~@4 b3@7 b3@7 d4@11 ~@7 e4@11 e4@7 ~@3 e4@11 a3@7 c4@11 ~@3 b3@7 b3@11 ~@4]/7", // Am F
M: "[~@28 g3@3 ~@22 c4@3 ~ [c4,e4,a4]@2 ~@26 a2@3 ~@54 g3@2, g2@32 a2@50 a3@7 g2@25 g2@30, ~@3 g4@28 ~@15 a4@10 ~@4 a4@28 ~@15 g4@14 g4@27, ~@7 g3@7 g3@4 d4@14 ~@7 e4@11 e4@7 ~@3 e4@11 a3@7 c4@11 ~@3 b3@7 b3@11 b3@7 ~@4 g3@7 g3@3 d4@13, ~@10 b3@11 g3@4 b3@7 ~@3 c4@7 c4@11 ~@7 c4@4 a3@3 c4@7 e4@14 ~@8 d4@10 d4@11 ~@7 b3@11 g3@3 b3@6]/6", // Am
N: "[~@27 c4@3 ~@25 b3@3 ~@25 a3@3 ~@12 c4@2 ~@5 c4@3 ~@4 d4@4 ~@23 f3@2 ~@24 g3@2 ~, ~@2 c3@28 b2@28 ~ a2@28 [a2,a3]@14 [a2,a4]@7 [g2,g4]@7 ~ f2@26 ~ g2@24 ~, ~@2 c4@21 e4@7 b3@21 e4@7 ~ a3@21 c4@7 ~@4 c4@7 ~@18 f3@20 a3@5 ~@2 g3@19 b3@5 ~, ~@5 e4@7 e4@7 g4@10 ~@5 e4@7 e4@7 g4@10 ~@4 c4@7 c4@7 e4@10 ~@8 e4@6 ~@19 a3@7 a3@7 c4@8 ~@5 b3@6 b3@4 d4@11 ~, ~@9 g4@7 c5@14 ~@7 g4@7 b4@14 ~@8 e4@7 a4@14 ~@35 c4@7 f4@12 ~@8 d4@6 g4@11 ~@2]/7", // A G
})).s("gm_piano").gain(0.25).pan(0.6)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@43 A@4 B@8 C@5 D@6 E F@2 G@2 H@2 I J@5 K@7 L M N O P Q R S T U V W T U X Y T U V W T U X Z T U T W T U AA AB@4 AC@4
~@4 AD AE AD AE AD AE AD AE AD AE AD AE AD AE AD AE AD AE AD AF@4 ~@4 AG@2 AH AI AG@2 AH AJ AK AL AH AM AK AL AH AM AK
AN AK AN AK AN AK@3 AN AK AN AK AN AK@2 AO@3
>`.pickRestart({
A: "[~@12 c2@28 d2@27 ~ e2@27 ~]/4", B: "[~ d2@27 ~ c2@27 ~@2 g1@26 ~@2 c2@27 ~@2 b1@27 ~ a1@41 ~@2 a1@6]/8",
C: "[~ g1@5 ~@2 f1@13 ~ c2@9 ~@2 c2@3 ~ f2@14 c2@6 ~ f2@2 ~@2 f#2@2 ~ g2@14 d2@7 ~ g2@3 d2@3 ~ g1@13 ~ g1@7 a1@5]/5",
D: "[~@2 c2@27 ~@2 b1@27 ~ a1@41 ~@2 a1@6 ~ g1@5 ~@2 f1@13 ~ c2@9 ~@2 c2@3]/6", E: "f2@14 ~ c2@6 ~ f2@2",
F: "[~ f#2@2 ~@2 g2@14 d2@7 g2@3 ~ d2@3 g1@13 ~@2]/2", G: "[g1@7 g#1@7 a1@14 e2@10 ~ e2@3 a2@6]/2",
H: "[~ a2@7 ~ e2@6 ~ a2@3 e2@3 ~ g2@13 ~ d2@7 g2@3 ~]/2", I: "d2@3 g1@13 ~@2 g1@6",
J: "[~ g#1@5 ~@2 a1@14 e2@10 ~ e2@3 a2@7 a2@7 ~ e2@6 ~ a2@3 e2@3 ~ g2@13 ~ d2@7 g2@3 ~ d2@3 g1@13 ~ g1@6 ~@2 a1@5]/5",
K: "[~@2 c2@27 ~ b1@27 ~@2 a1@42 a1@6 ~ g1@6 ~@2 f1@2 ~ f1@2 ~ f1@2 ~@2 f1@2 ~ f1@2 ~@2 f1@2 ~ f1@2 ~ f1@2 ~@2 g1@3 g1@3 g1@3 g1@3 g1@3 ~ g1@3 g1@3 g1@3]/7",
L: "c2@7 ~", M: "c2@6 ~@3 c2@7 ~@5 g1@3", N: "c2@7 c3", O: "c2@7 ~@2 c2@7 ~@5 g1@2 ~", P: "c2@11 ~",
Q: "c2@6 ~@3 c2@6 ~@6 g1@2 ~", R: "c2@19 ~@2 c3@3", S: "c2@2 ~ c2@2 ~@2 g1",
T: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~",
U: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ g1 ~ a1",
V: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~",
W: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ g1 a1 ~",
X: "c2@3 c2@2 ~ c2@2 ~ c2 ~@2 c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~",
Y: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ g1@2 ~",
Z: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ g1@3",
AA: "c2@3 c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~",
AB: "g#2@2 ~ d#2@2 ~ c#2@2 ~ g#1@2 ~ g#2@2 ~ d#2@2 ~ c#2@2 ~ g#1@2 ~", AC: "[g#2@91 ~@5]/4",
AD: "g#1 d#2 g#2 d#2 g#2 d#2 g#1 d#2", AE: "g#2 d#2 g#2 d#2 g#1 d#2 g#2 d#2", AF: "g#2/4",
AG: "[c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@3 c2@3 c2@9 ~@15 g1@2 ~]/2",
AH: "c2@3 c2@3 c2@3 c2@3 c2@2 ~ c2@3 c2@2 ~ c2@3", AI: "c2@4 ~@16 g1@3 ~", AJ: "c2@4 ~@17 g1@3", AK: "c2!8",
AL: "c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 g1@2 ~", AM: "c2!7 g1", AN: "c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 g1 a1 ~",
AO: "[c2@5 ~]/3",
})).s("gm_fretless_bass").gain(0.44)
// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
~@86 A B C D E F G H A B C D E F G H I J K L I J K L M N O P Q N O R@2 ~@33 A B C D E F S T U V W X U V W X U V W X M
N O Y M N O Z@4 AA AB AC@6
>`.pickRestart({
A: "[e4,g4]@23 ~", B: "[f4,a4]@4 ~@5 [f4,a4]@4 ~@2 [f4,a4]@4 ~@2 g4 b4 [g4,b4]", C: "[g4,b4]@23 ~",
D: "[f4,a4]@4 ~@5 [f4,a4]@4 ~@2 [f4,a4]@4 ~@2 [e4,g4]!2 ~", E: "[e4,g4]",
F: "[f4,a4]@4 ~@5 [f4,a4]@4 ~@2 [f4,a4]@4 ~@3 [g4,b4]!2", G: "b4",
H: "[f4,a4]@4 ~@5 [f4,a4]@4 ~@2 [f4,a4]@4 ~@2 e4 g4 ~", I: "[e4,g4]@8 ~ [e4,g4]@2 ~ [e4,g4]@9 [f4,a4]@3",
J: "~@3 [f4,a4]@4 ~@2 [f4,a4]@2 ~ [f4,a4]@7 ~@2 [g4,b4]@2 ~", K: "[g4,b4]@7 ~@2 [g4,b4]@2 ~ [g4,b4]@8 ~ [f4,a4]@3",
L: "~@3 [f4,a4]@4 ~@2 [f4,a4]@2 ~ [f4,a4]@8 ~ [e4,g4]@2 ~", // F Em
M: "g5@2 e5 ~ e5 ~@2 e5 ~@2 e5 ~@2 e5 ~ c5@2 e5 g5@2 e5 c5 e5 ~, ~@3 c5@2 ~ g5@2 ~ c5@2 ~ g5@2 ~@10",
N: "~ f5@2 c5@2 f5 a5@2 f5 ~ f5 ~@2 f5 ~@2 f5 ~@2 f5 ~@2 f5@2, a5@2 ~@7 c5@2 ~ a5@2 ~ c5@2 ~ a5@2 ~ c5@2 ~",
O: "~ g5 ~@2 g5@2 b5@2 g5 ~ g5@2 ~ g5 ~@2 g5 ~ b5@2 ~ d5@2 g5, b5@2 ~ d5@2 ~@4 d5@2 ~ b5@2 ~ d5@2 ~@3 g5@2 ~@2",
P: "a5@2 ~ c5 ~ f5 ~ f5 ~ c5@2 f5 ~ f5 ~ c5@2 f5 a5@2 f5 c5 f5 ~, ~ f5 ~ a5 ~@2 a5 ~@5",
Q: "g5@2 e5 ~ e5 ~@2 e5 ~@2 e5 ~@2 e5 ~ c5@2 e5 g5@2 e5 ~ e5 ~, ~@3 c5@2 ~ g5@2 ~ c5@2 ~ g5@2 ~@7 c5@2 ~", R: "d#6/2",
S: "[g4,b4]", T: "[f4,a4]@4 ~@5 [f4,a4]@4 ~@2 [f4,a4]@4 ~@2 e5 g5 ~",
U: "c6@2 g5 e5@2 g5 c6@2 g5 e5@2 g5 ~ g5 ~@2 g5 ~ c6@2 g5 e5@2 g5, ~@12 c6@2 ~ e5@2 ~@7",
V: "~ a5 ~@2 a5 ~@2 a5@2 ~ a5 ~@2 a5 ~@2 a5 ~@2 a5 ~@2 a5 ~, c6@2 ~ f5@2 ~ c6@2 ~ f5@2 ~ c6@2 ~ f5@2 ~ c6@2 ~ f5@2 ~",
W: "d6 b5 ~ g5@2 ~ d6 ~ b5 g5@2 b5 d6 b5 ~ g5@2 b5 d6 ~@2 g5 b5 ~, ~@5 b5@2 ~@13 b5@2 ~@2",
X: "~ a5@2 ~ a5 ~@2 a5@2 f5@2 a5 c6@2 a5 f5@2 a5 c6@2 a5 ~ g5 ~, c6@2 ~ f5@2 ~ c6@2 ~@13 f5@2 ~",
Y: "a5@2 ~ c5 ~ f5 ~ f5 ~@2 f5 ~@2 f5 ~@2 f5 ~@2 f5 ~ c5 f5 ~, ~@2 f5@2 ~@2 a5@2 ~ c5@2 ~ a5@2 ~ c5@2 ~ a5@2 ~@4",
Z: "[a5@3 c4@3 e4@2 ~ g4@2 ~ a4@3 c5@2 ~ e5@2 ~ e5@20 ~ d5 c5 ~ e5@17 ~ d5@3 c5@2 ~ g5@17 ~ a5@4 ~@2 a5@3]/4",
AA: "~ g5@10 ~ a5@3 g5@3 f5@3 e5@3", AB: "c5", AC: "[~@3 g5@4 ~@2 g5@4 ~@2 c6@4 ~@2 c6@34 ~@8 c6@5 ~ c6@63 ~@12]/6",
})).s("gm_overdriven_guitar").gain(0.31)
// chords · flute
const flute = note(`<
~@84 A@2 B ~@6 C D E F G H I J@2 K@2 L M K@2 N M K@2 N M K@2 O@3 ~@44 P Q@2 R@2 S T@3 K@2 U M K@2 U M K@2 V M K@2 U W
~@3
>`.pickRestart({
A: "[~@6 g3@4 g4@35 c4@3]/2", B: "c4", C: "~@11 c4", D: "e4@2 e4 e4@3 c4@2", E: "f4@9 f4@8 ~@4 c4@3",
F: "g4@2 g4 g4@3 g4@2", G: "f4@6 ~@5 c4", H: "e4!3 c4", I: "f4@6 f4@3 f4@8 ~@4 c4@3",
J: "[g4 g4@2 g4@2 g4@2 f4@5 f4 f4@3]/2",
K: "[[e4,g4]@6 [e4,g4]@3 [e4,g4]@3 [e4,g4]@7 ~@2 [f4,a4]@6 [f4,a4]@6 [f4,a4]@3 [f4,a4]@6 c4@6]/2", // Em F
L: "[g4,c5]@6 [g4,c5]@3 [g4,c5]@6 [a4,c5]@6 [d#4,a4]@2 [d4,g4]", M: "[c4,f4]@3 ~",
N: "[g4,c5]@6 [g4,c5]@3 [g4,c5]@6 [a4,c5]@6 [d#4,a4] ~ [d4,g4]", // C5 Am D#dim G5
O: "[[g4,c5]@2 [g4,c5] [g4,c5]@2 [g#4,c5]@2 [g#4,c5]@17]/3", P: "~@21 e4@2 ~",
Q: "[e4@6 e4@5 ~ e4@6 e4@3 f4@12 f4@14 ~]/2", R: "[g4@6 g4@3 g4@6 ~ f4@6 f4@19 ~@5 c4@2]/2", S: "e4@3 e4 e4@2 c4@2",
T: "[f4@9 c4@4 ~@7 c4@3 g4@6 g4@3 g4@6 ~ b4@6 c5@23 ~@4]/3",
U: "[g4,c5]@6 [g4,c5]@3 [g4,c5]@6 [a4,c5]@6 [d#4,a4] [d4,g4] ~", // C5 Am D#dim G5
V: "[g4,c5]@6 [g4,c5]@3 [g4,c5]@6 [a4,c5]@6 ~ [d4,g4] ~, ~@21 [d#4,a4]@2 ~", W: "[c4,f4]",
})).s("gm_flute").gain(0.25)
// other · french horn · "FR.HORN"
const french_horn = note("<~@136 A B C D E F G H I J K ~ L@4 ~@39>".pickRestart({
A: "~@7 d#4", B: "~ g#4@16 ~ a#4@5 ~", C: "f#4@5 ~ f4@2 ~ d#4@8 ~ c#4@5 ~", D: "d#4@17 ~@4 f4@2 ~",
E: "f4@4 ~@2 f#4@2 ~ f#4@6 ~@6 d#4@2 ~", F: "g#4@12 ~@3 a#4@3 ~ g#4@3 ~@2",
G: "c5@2 ~ c#5@4 ~ c5@3 ~ a#4@5 ~ g#4@4 ~@2", H: "d#5@3 ~@5",
I: "f5@10 ~@2 c5 c#5@2 d#5 c#5 ~ c5 c#5 ~@2 c#5 ~, ~@21 d#5@2 ~",
J: "~@12 c5 ~ c#5 ~ c#5 ~ c5@2 c#5 ~ c#5 ~, ~@15 d#5@2 ~@4 d#5@2 ~", K: "~@12 c5 ~ c#5 d#5@2 c#5 c5 ~ c#5 d#5@2 c#5",
L: "d#5/4",
})).s("gm_french_horn").gain(0.31).pan(0.6)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@43 A@4 B@8 C@5 D@4 E@3 F@7 G@5 H@7 ~@31 I@28 J@3 K@4 ~@39>".pickRestart({
A: "[~@11 [c5,g5,c6]@29 [d5,a5,d6]@29 [e5,b5,e6]@27]/4", // C5 D5 E5
B: "[~ [a5,d6]@28 [c5,c6]@28 ~ [d6,g6]@28 c7@29 b6@28 a6@42 a6@7, d5@29 g5@27 ~ g5@28 ~@107]/8", // D5 C G5
C: "[~ g6@7 [f5,f6]@57 [g5,g6]@55]/5", D: "[~@2 c7@28 b6@29 a6@37]/4", E: "[~@5 a6@8 g6@7 [f5,f6]@52]/3",
F: "[~@5 [g5,g6]@57 a6@57 g6@49]/7", G: "[~@8 a6@57 g6@55]/5", H: "[~@2 c7@28 b6@29 a6@56 ~ f6@26 g6@25 ~]/7",
I: "[[c5,d#5] [a#4,c#5,f#5] [c5,d#5] [a#4,c#5,f#5], g#5]/4", J: "[[c5,d#5] [a#4,c#5,f#5] [c5,d#5], g#5]/3",
K: "[c5,c#5,d#5,f5,g#5,a5]/4", // C#maj7
})).s("gm_string_ensemble_1").gain(0.2)
// chords · rock organ · "ORGAN 3"
const rock_organ = note("<~@50 A@5 B@5 C@7 D@7 E@5 F@7 ~@35 G@4 H@4 ~@59 I@3>".pickRestart({
A: "[~@14 [g5,c6]@29 ~ b5@27 [e5,a5]@49, ~@43 g5@28 ~@49]/5", B: "[~@8 [e5,a5]@57 [g5,b5]@55]/5",
C: "[~@2 [g5,c6]@29 [g5,b5]@28 [e5,a5]@57 [e5,a5]@52]/7", D: "[~@5 [g5,b5]@57 [a5,c6]@57 [g5,b5]@49]/7",
E: "[~@8 [a5,c6]@57 [g5,b5,d6]@55]/5", // Am G
F: "[~@2 [e5,g5,c6]@28 [d5,g5,b5]@28 [c5,e5,a5]@56 ~@2 [c5,f5,a5]@25 ~@2 [d5,g5,b5]@25]/7", G: "[g#3,d#4]/4",
H: "[~ [g#3,d#4]@94 ~]/4", I: "[[c5,e5,g5]@5 ~, c6@31 ~@5]/3",
})).s("gm_rock_organ").gain(0.24)
// other · flute
const flute_2 = note("<~@43 A@4 B C@2 D@2 ~@72 E F G H@2 ~@7 I ~@6 J K@2 L M N@4 ~@39>".pickRestart({
A: "[~@12 e5@7 d6@6 c6@7 ~ e5@7 f5@7 d6@7 c6@7 f5@7 g5@7 d6@7 c6@7 ~ g5@6]/4", B: "~ f5@7 d6@7 c6@5 ~@2 c6@2",
C: "[b5 ~@2 b5@2 ~ c6@26 ~ b5 ~ c6 b5 c6 b5 c6 b5 c6 b5 c6 ~ b5 c6 b5, ~ a5 ~@22]/2",
D: "[c6 b5 c6 b5 c6 b5 c6 a5@4 b5@3 c6@21 ~@13]/2", E: "~@22 a#4 c#5",
F: "c5@4 a#4@2 c#5 c5@3 a#4 ~ c#5 c5@3 a#4@2 c#5 c5@3 a#4@2",
G: "c#5 c5@3 a#4@2 c#5 c5@3 a#4@2 c#5 c5@3 ~ a#4 c#5 c5@3 ~ d#5",
H: "[~ c5@3 ~ d#5 c#5 c5@4 d#5 c#5 c5@3 ~@2 [c#5,d#5] c5@3 ~ d#5@2 c5@3 ~@2 d#5 c#5 c5@3 ~ c#5 c5@2 ~@2 d#5 c#5 c5@3 ~@2, c#5@2 ~@23 c#5 ~@10 d#5@2 ~@10]/2", // C#sus2
I: "g#5 a#5 ~ g#5 a#5 ~ g#5 f#5@2 ~ f#5 ~@2 d#5 ~@2 d#5 ~@2 c5@2 a#4 c5 ~, ~@9 f5@2 ~ f5@2 ~ c#5@2 ~ c#5@2 ~@4",
J: "f4 f#4 ~ g#4 a#4 ~ c5 c#5 ~ d#5 f5 ~ f#5 g#5 ~@2 g#5 ~ f#5 f5 ~ d#5 ~ c#5, ~@15 a#5@2 ~@7",
K: "c5 c#5 ~ d#5@2 c#5 c5@2 c#5 d#5 ~ f5 f#5 ~ g#5 ~ g#5 ~ f#5 f5 ~ d#5 ~ c#5, ~@15 a#5@2 ~@7",
L: "c5@2 a#4 g#4 ~ f#4 f4@2 f#4 ~ a#4 ~ c5 c#5 ~ d#5 f5 f#5 ~ g#5 ~@2 g#5@2, ~@9 g#4@2 ~@10 a#5@2 ~",
M: "f#5 f5 ~ d#5 c#5 ~@2 c#5 ~@2 c#5 ~ c5 ~ c#5 d#5@2 c#5 c5 c#5 ~ d#5 c#5 ~, ~@6 c5@2 ~ d#5@2 ~@13", N: "c6/4",
})).s("gm_flute").gain(0.22).pan(0.3)
// chords · lead 5 charang · "CHARANG"
const lead_5_charang = note(`<
~@86 A B C D@2 B C E A B C D@2 B C E F G H I J K L M F G H I J K L N@2 O@2 P@4 ~@27 Q R S T@3 U V A W C D@2 W C E Q R
S X Y G H I F G H I F G H I F G H Z AA@3
>`.pickRestart({
A: "[c4,e4]@23 ~", B: "[c4,f4]@4 ~@5 [c4,f4]@4 ~@2 [c4,f4]@4 ~@2 [d4,g4] ~ [d4,g4]", C: "[d4,g4]",
D: "[[c4,f4]@4 ~@5 [c4,f4]@4 ~@2 [c4,f4]@4 ~@2 [c4,e4]!2 ~ e4@24, ~@23 c4@24 ~]/2", // F5 C
E: "[c4,f4]@4 ~@5 [c4,f4]@4 ~@2 [c4,f4]@4 ~@2 [c4,e4] ~@2", F: "[c4,e4]@7 ~@2 [c4,e4]@2 ~ [c4,e4]@8 ~ [c4,f4]@3",
G: "~@3 [c4,f4]@4 ~@2 [c4,f4]@2 ~ [c4,f4]@9 [d4,g4] ~@2", H: "[d4,g4]@7 ~@2 [d4,g4]@2 ~ [d4,g4]@8 ~ [c4,f4]@3",
I: "~@3 [c4,f4]@4 ~@2 [c4,f4] ~@2 [c4,f4]@7 ~@2 e4@2 ~, ~@21 c4 ~@2", // F5
J: "[c4,e4]@8 ~ [c4,e4]@2 ~ [c4,e4]@8 ~ [c4,f4]@3", K: "~@3 [c4,f4]@4 ~@2 [c4,f4]@2 ~ [c4,f4]@7 ~@2 [d4,g4] ~@2",
L: "[d4,g4]@8 ~ g4@2 ~ [d4,g4]@8 ~ [c4,f4]@3, ~@9 d4 ~@14", M: "~@3 [c4,f4]@4 ~@2 [c4,f4]@2 ~ [c4,f4]@10 ~@2",
N: "[[d#4,g#4,c5]@27 [c#4,f#4,a#4]@4 ~@2 [c#4,f#4,a#4]@3 ~@3 [c#4,f#4,a#4]@3 ~@3 [c#4,a#4] ~@2, ~@45 f#4@2 ~]/2", // G# F#
O: "[[d#4,g#4,c5]@27 [c#4,f#4,a#4]@3 ~@3 [c#4,f#4,a#4]@3 ~@3 [c#4,f#4,a#4]@3 ~@3 [c#4,f#4,a#4] ~@2]/2", // G# F#
P: "[[d#4,g#4,c5]@31 ~]/4", Q: "c3@2 ~ c3@2 ~ c3 ~@2 c3 ~@2 c3 ~@2 c3 ~@2 c3@2 ~ c3 ~@2, [c4,e4]@23 ~",
R: "[c4,f4]@3 c3 ~@2 c3 ~@2 c3@2 ~ c3 ~@2 [c4,f4]@3 c3@2 ~ [c3,d4,g4] [d4,g4] ~, c3@2 ~@6 [c4,f4]@4 ~@3 c3 ~@8", // F5 Csus2 G5 F5
S: "c3@2 ~ c3 ~@2 c3 ~@2 c3 ~@2 c3 ~@3 c3 ~ c3@2 ~ c3 ~@2, [d4,g4]", // G5
T: "[[c4,f4]@3 c3 ~@2 c3 ~@2 [c4,f4]@3 c3 ~@2 [c4,f4]@3 c3@2 ~ [c3,c4,e4] [c4,e4] ~ c3@2 ~ c3 ~@2 c3 ~@2 c3@2 ~ c3 ~@2 c3 ~@2 c3@2 ~ c3 ~@4 c3 ~@3 c3 ~ [c4,f4]@4 c3 ~@2 [c4,f4]@3 c3@2 ~ [c3,d4,g4] [d4,g4] ~, c3@2 ~@7 c3@2 ~@4 c3 ~@7 c4@24 c3@2 ~@7 c3@2 ~@5 c3 ~@8, ~@6 e4@6 [c4,f4] ~@5]/3", // F5 C F5 Csus2 G5 F5
U: "c3 ~@2 c3 ~@2 c3@2 ~ c3 ~@2 c3 ~@2 c3@2 ~ c3 ~@2 c3 ~@2, [d4,g4]", // G5
V: "[c4,f4]@3 c3 ~@2 c3 ~@2 [c4,f4]@3 c3 ~@2 [c4,f4]@3 c3@2 ~ [c3,c4,e4] ~@2, c3@2 ~@7 c3@2 ~@4 c3 ~@8", // F5 C
W: "[c4,f4]@4 ~@4 [c4,f4]@4 ~@3 [c4,f4]@4 ~@2 [d4,g4]!2 ~", // F5 G5
X: "[c4,f4]@3 c3 ~@2 c3 ~@2 [c4,f4]@3 c3 ~@2 [c4,f4]@3 c3@2 ~ [c3,c4,e4] [c4,e4] c4, c3@2 ~@7 c3@2 ~@4 c3 ~@8", // F5 C
Y: "[c4,e4]@3 [c4,e4] c4@3 [c4,f4], ~ e4", Z: "~@3 [c4,f4]@4 ~@2 [c4,f4] ~@2 [c4,f4]@10 ~@2", AA: "[[c4,e4]@5 ~]/3",
})).s("gm_lead_5_charang").gain(0.36).pan(0.9)
// chords · lead 5 charang · "CHARANG"
const lead_5_charang_2 = note(`<
~@86 A B C D C E C F A B C D C E C F G H I J G H I K G H I K G H I L@2 M@2 N@4 ~@4 O P Q P R S T U O P Q U R S T U O P
Q ~@4 A V C D C W C F A V C D C W C F A V C D X H I K G H I K G H I J G H I Y Z@3
>`.pickRestart({
A: "[c3,g3]@23 ~", B: "[c3,g3]@4 ~@5 [c3,g3]@4 ~@2 [c3,g3]@4 ~@2 [c3,g3] c3 g3", C: "[c3,g3]",
D: "[c3,g3]@4 ~@6 g3@4 ~@2 g3@4 ~ [c3,g3]!2 ~, ~@9 c3@4 ~@2 c3@4 ~@5", // C5
E: "~ c3@4 ~@4 [c3,g3]@4 ~@3 g3@4 ~ [c3,g3]!2 ~, g3@4 ~@11 c3@4 ~@5", // C5
F: "[c3,g3]@4 ~@5 g3@4 ~@2 [c3,g3]@4 ~@2 [c3,g3] ~@2, ~@2 c3 ~@3", // C5
G: "[c3,g3]@7 ~@2 [c3,g3]@2 ~ [c3,g3]@8 ~ [c3,g3]@3", H: "~@3 [c3,g3]@4 ~@2 [c3,g3]@2 ~ [c3,g3]@8 ~ [c3,g3]@2 ~",
I: "[c3,g3]@8 ~ [c3,g3]@2 ~ [c3,g3]@8 ~ [c3,g3]@3", // C5
J: "~@3 [c3,g3]@4 ~@2 g3@2 ~ [c3,g3]@8 ~ g3@2 ~, ~@9 c3 ~@11 c3 ~@2", // C5
K: "~@3 [c3,g3]@4 ~@2 [c3,g3] ~@2 [c3,g3]@8 ~ g3@2 ~, ~@21 c3 ~@2", // C5
L: "[[g#3,d#4]@26 ~ [g#3,c#4]@4 ~@2 [g#3,c#4]@4 ~@2 [g#3,c#4]@4 ~@2 c#4@2 ~, ~@45 g#3 ~@2]/2", // G#5 C#5
M: "[[g#3,d#4]@26 ~ [g#3,c#4]@4 ~@2 [g#3,c#4]@3 ~@3 [g#3,c#4]@3 ~@3 [g#3,c#4] ~@2]/2", N: "[[g#3,d#4]@91 ~@5]/4",
O: "g#2@2 ~ d#3 ~@2 g#3@3 d#3 ~@2 g#3@3 d#3 ~@2 g#2@3 d#3 ~@2",
P: "g#3@3 d#3 ~@2 g#3@3 d#3 ~@2 g#2@3 d#3@2 ~ g#3@3 d#3 ~@2",
Q: "g#2@2 ~ d#3@2 ~ g#3@3 d#3 ~@2 g#3@3 d#3@2 ~ g#2@2 ~ d#3 ~@2",
R: "g#2@3 d#3@2 ~ g#3@3 d#3 ~@2 g#3@3 d#3@2 ~ g#2@3 d#3 ~@2",
S: "g#3@3 d#3 ~@2 g#3@3 d#3@2 ~ g#2@2 ~ d#3 ~@2 g#3@3 d#3 ~@2",
T: "g#2@3 d#3 ~@2 g#3@3 d#3 ~@2 g#3@3 d#3@2 ~ g#2@3 d#3@2 ~",
U: "g#3@3 d#3 ~@2 g#3@3 d#3@2 ~ g#2@3 d#3@2 ~ g#3@3 d#3 ~@2",
V: "[c3,g3]@4 ~@5 [c3,g3]@4 ~@2 [c3,g3]@4 ~@2 [c3,g3]!2 ~", // C5
W: "~ c3@4 ~@4 [c3,g3]@4 ~@2 [c3,g3]@4 ~@2 [c3,g3]!2 ~, g3 ~@5", X: "[c3,g3]@3 [c3,g3] [c3,g3]@3 [c3,g3]",
Y: "~@3 [c3,g3]@4 ~@2 [c3,g3] ~@2 [c3,g3]@10 ~@2", Z: "[[c3,g3]@5 ~]/3",
})).s("gm_lead_5_charang").gain(0.31).pan(0.2)
// … 122 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.