0:00/0:00
// Confusion — Electric Light Orchestra
// 112 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 9, 4/4 at bar 9, 2/4 at bar 25, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 101 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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 · epiano2 · "Piano"
const epiano2 = note(`<
A B@2 C@3 ~@20 D E@2 F@3 ~@21 G H I J K ~@21 L@2 M@2 N@2 M@2 O@2 P@2 Q@2 P@2 Q@2 P@2 R@2
>`.pickRestart({
A: "~@21 [a4,c5,f5,a5] ~ [a4,c5,f5,a5]", // F
B: "[[a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5] [a4,c5,a5] e5]/2", // F Am C Am
C: "[[a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11 ~ [g4,g5]@3 [c5,e5,a#5,c6]@24 ~@15]/3", // Am A5 Em G C7
D: "~@23 [a4,c5,f5,a5]", // F
E: "[[c5,f5,a5] a4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5]]/2", // F Am C Am
F: "[[a4,c5,e5,a5] ~ [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11 ~ [g4,g5]@3 [c5,e5,a#5,c6]@24 ~@13]/3", // Am A5 Em G C7
G: "~ [a4,c5,f5,a5] ~ [a4,c5,f5,a5] [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4", // F
H: "[a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@2", // F Am C
I: "~ [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5] ~ [a4,c5,e5,a5] [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4", // Am
J: "[a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11 ~ [g4,g5]@2", K: "~ [c5,e5,a#5,c6]@23",
L: "[~@16 [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11]/2", // F Am C
M: "[~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5]!2 ~ [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11]/2", // C Am A5 Em
N: "[~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11]/2", // Em F Am C
O: "[~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@2]/2", // Em F Am C
P: "[~ [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5]!2 ~ [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@2]/2", // C Am A5 Em
Q: "[~ [g4,b4,e5,g5]@11 ~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@2]/2", // Em F Am C
R: "[~ [g4,b4,e5,g5]@11 ~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 ~@5]/2", // Em F
})).s("gm_epiano2").gain(0.35).pan(0.3)
// bass · electric bass finger · "Bass"
const bass = note(`<
~ A B C D E F@2 G H I J K L I M K N I O P Q R S T U@2 V@8 W@2 X@2 Y@2 Z AA AB AC AD AE AF AG AH AI AJ@2 ~ AK AL AM@3
AN AO AP@2 AQ AR AS AT AQ AU AS AV AW@2 AX AY@2 AZ@2 BA@2 BB BC BD BE BF BC BD BE BG@8 BH@5
>`.pickRestart({
A: "~@12 [c2,c3]@8 ~ [c2,c3]@3", B: "[c2,c3]@5 ~@7 [a1,a2]@8 ~ [a1,a2]@3", C: "[a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3",
D: "[e2,e3]@5 ~ [e2,e3]@5 ~ [c2,c3]@8 ~ [c2,c3]@3", E: "[c2,c3]@5 ~@4 c2@3 f2@11 ~",
F: "[e2@11 ~ d2@3 d2@5 ~ c2@5 ~@10 f2@11 ~]/2", G: "e2@11 ~ d2@3 d2@8 ~", H: "g1@19 ~@2 g1@3",
I: "[c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@7", J: "[a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@4 [a1,a2]@3",
K: "[d2,d3]@8 ~ [d2,d3]@3 [d2,d3]@5 ~@7", L: "[g1,g2]@8 ~ [g1,g2]@3 [g1,g2]@5 ~@4 [g1,g2]@3",
M: "[a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7", N: "[g1,g2]@8 ~ g2@3 [g2,g3]@5 ~ [f2,f3]@5 ~",
O: "c3@8 ~ c3@3 c3@5 ~ c3@5 ~, a#3@11 ~", P: "[f2,f3]@5 ~ f3@3 f2@3 [f2,f3]@5 ~@7",
Q: "[f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~ [g2,g3]@5 ~", R: "f3@11 ~ e3@11 ~", S: "d2@3 d2@5 ~ c2@5 ~@10",
T: "f2@11 ~ e2@11 ~", U: "[[d2,d3]@3 [d2,d3]@5 ~@4 [g1,g2]@22 ~@14]/2",
V: "[~@14 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@7 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~ [e2,e3]@5 ~ [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ c3@5 ~@4 f1@3 a1@3 c2@5 ~@4 f1@3 ~@6 d2@3 d2@3 d2@3 c2@3 c2@3 d#2@3 e2@3 ~@3 g1@3 b1@3 c2@3 ~@6 g1@3 ~@6 d2@3 d2@3 d2]/8", // C A E C
W: "[~@2 [g2,g3]@5 ~ [g2,g3]@5 ~ [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@5]/2", // G C
X: "[~@2 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@4 [a1,a2]@3 [d2,d3]@8 ~ [d2,d3]@3 [d2,d3]@5 ~@5]/2", // A D
Y: "[~@2 [g1,g2]@8 ~ [g1,g2]@3 [g1,g2]@5 ~@4 [g1,g2]@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@5]/2", // G C
Z: "~@2 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@5", AA: "~@2 [d2,d3]@8 ~ [d2,d3]@3 [d2,d3]@5 ~@5",
AB: "~@2 [g1,g2]@8 ~ g2@3 [g2,g3]@5 ~ [f2,f3]@4", AC: "~@2 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@5",
AD: "~@2 c3@8 ~ c3@3 c3@5 ~ c3@4, ~ a#3@11", AE: "~@2 [f2,f3]@5 ~ f3@3 f2@3 [f2,f3]@5 ~@5",
AF: "~@2 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~ [g2,g3]@4", AG: "~@2 [f2,f3]@11 ~ [e2,e3]@10",
AH: "~@2 [d2,d3]@3 [d2,d3]@5 ~ [c2,c3]@5 ~@8", AI: "~@2 [f2,g#3]@11 ~ [e2,g3]@10",
AJ: "[~@2 [d2,d3]@3 [d2,d3]@5 ~@4 [g1,g2]@22 ~@12]/2", AK: "~ g1@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@3",
AL: "~@4 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@3", // A
AM: "[~@4 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~ [e2,e3]@5 ~ [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ c3@5 ~@4 f1@3 a1@3 c2@5 ~@4 f1@2]/3", // E C
AN: "~@7 d2@3 d2@3 d2@3 c2@3 c2@3 d#2@2", AO: "~ e2@3 ~@3 g1@3 b1@3 c2@3 ~@6 g1@2",
AP: "[~@7 d2@3 d2@3 d2@3 [g2,g3]@5 ~ [g2,g3]@5 ~ [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [c2,c3]@8]/2", // G C
AQ: "~ [c2,c3]@3 [c2,c3]@5 ~@7 [a1,a2]@8", AR: "~ [a1,a2]@3 [a1,a2]@5 ~@4 [a1,a2]@3 [d2,d3]@8",
AS: "~ [d2,d3]@3 [d2,d3]@5 ~@7 [g1,g2]@8", AT: "~ [g1,g2]@3 [g1,g2]@5 ~@4 [g1,g2]@3 [c2,c3]@8",
AU: "~ [a1,a2]@3 [a1,a2]@5 ~@7 [d2,d3]@8", AV: "~ g2@3 [g2,g3]@5 ~ [f2,f3]@5 ~ [c2,c3]@8",
AW: "[~ [c2,c3]@3 [c2,c3]@5 ~@7 c3@8 ~ c3@3 c3@5 ~ c3@5 ~ [f2,f3]@5 ~ f3@2, ~@8 a#3@11 ~@5]/2", // C F
AX: "~ f2@3 [f2,f3]@5 ~@7 [f2,f3]@8", // F
AY: "[~ [f2,f3]@3 [f2,f3]@5 ~ [g2,g3]@5 ~ [f2,f3]@11 ~ [e2,e3]@11 ~ [d2,d3]@3 [d2,d3]@5]/2", // F G F E D
AZ: "[~ [c2,c3]@5 ~@10 [f2,g#3]@11 ~ [e2,g3]@11 ~ [d2,d3]@3 [d2,d3]@5]/2", BA: "[~ [g1,g2]@6 ~@5]/2",
BB: "~@4 g1@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5", BC: "~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5",
BD: "~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5", BE: "~@7 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5",
BF: "~@7 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5", // C
BG: "[~@4 [f2,f3]@3 [f2,f3]@5 ~@4 [f2,f3]@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~@7 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~@7 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~@7 [f2,f3]@5]/8", // F C B A E F C B …
BH: "[~@4 [f2,f3]@3 [f2,f3]@5 ~@7 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~@7 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~@12]/5", // F C B A E F
})).s("gm_electric_bass_finger").gain(0.35)
// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
~ A@5 B C B D E F G H I F G J I E K L M N O P ~ Q@5 ~@4 R S T U V S T W V R X Y Z AA Z AB ~@2 AC@5 ~@3 AD AE@2 AF@4 AG
AH@2 AI AJ AK AL AM AL AN ~ AO AP AQ AR AS AP AQ AR AT AU AV AW AX AY AV AW AX AY AV AW AZ
>`.pickRestart({
A: "[~@12 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3]/5", // C5 A5 E5 C5 F5
B: "[c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@3", // C5 D5
C: "[c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3", // C5 F5
D: "[g3,d4,g4]@5 ~ [g3,d4,g4]@3 [g3,d4,g4]@8 ~ [g3,d4,g4]@5 ~", // G5
E: "[c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~", F: "[a3,e4,a4]@5 ~ [a3,e4,a4]@16 ~@2",
G: "[d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~ [d4,a4,d5]@5 ~", H: "[g3,d4,g4]@5 ~ [g3,d4,g4]@16 ~@2",
I: "[c4,g4,c5]@5 ~ [c4,g4,c5]@16 ~@2", J: "[g3,d4,g4]@5 ~ [g3,d4,g4]@3 [g3,d4,g4]@8 ~ [f3,c4,f4]@5 ~",
K: "[f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~", // F5
L: "[f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [g3,d4,g4]@5 ~", // F5 G5
M: "[f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~", // F5 C5
N: "[d4,a4,d5]@5 ~ [d4,a4,d5]@5 ~ [c4,g4,c5]@11 ~", O: "[f3,c4,f4]@5 ~ [f3,c4,f4]@5 ~ [c4,g4,c5]@11 ~",
P: "[d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~@7", // D5
Q: "[~@14 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~@11]/5", // C5 A5 E5 C5
R: "~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@4", S: "~@2 [a3,e4,a4]@5 ~ [a3,e4,a4]@16",
T: "~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~ [d4,a4,d5]@4", U: "~@2 [g3,d4,g4]@5 ~ [g3,d4,g4]@16",
V: "~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@16", W: "~@2 [g3,d4,g4]@5 ~ [g3,d4,g4]@3 [g3,d4,g4]@8 ~ [f3,c4,f4]@4",
X: "~@2 [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@4", // F5
Y: "~@2 [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~@5", // F5
Z: "~@2 [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@4", // F5 C5
AA: "~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@4", // D5 C5
AB: "~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~@5", // D5
AC: "[~@4 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~@21]/5", // C5 A5 E5 C5
AD: "~@16 [c4,g4,c5]@5 ~ [c4,g4,c5]@2", // C5
AE: "[~ [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@16 ~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@2]/2", // C5 A5 D5
AF: "[~ [d4,a4,d5]@8 ~ [d4,a4,d5]@5 ~ [g3,d4,g4]@5 ~ [g3,d4,g4]@16 ~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@16 ~@2 [a3,e4,a4]@5 ~ [a3,e4,a4]@16 ~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@2]/4", // D5 G5 C5 A5 D5
AG: "~ [d4,a4,d5]@8 ~ [d4,a4,d5]@5 ~ [g3,d4,g4]@5 ~ [g3,d4,g4]@2", // D5 G5
AH: "[~ [g3,d4,g4]@8 ~ [f3,c4,f4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@16 ~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@2]/2", // G5 F5 C5
AI: "~ [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", // C5 F5
AJ: "~ [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", // F5
AK: "~ [f3,c4,f4]@8 ~ [g3,d4,g4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", // F5 G5 F5
AL: "~ [f3,c4,f4]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [d4,a4,d5]@5 ~ [d4,a4,d5]@2", // F5 C5 D5
AM: "~ [d4,a4,d5]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", AN: "~ [d4,a4,d5]@8 ~@15",
AO: "~@7 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8", AP: "~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8",
AQ: "~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8", // A5 E5
AR: "~ [e3,b3,e4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8", // E5 F5
AS: "~ [f3,c4,f4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8", // F5 C5
AT: "~ [f3,c4,f4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 c4@3 [c4,g4,c5]@5, ~@2 [f3,f4]", // F5 C5 F
AU: "~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5, ~ [f3,f4]@5 ~@18", // C5 A5 F
AV: "~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5", // A5 E5
AW: "~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [f3,c4,f4]@5", // E5 F5
AX: "~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~ [c4,g4,c5]@5", // F5 C5
AY: "~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5", AZ: "~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.2)
// chords · acoustic guitar steel · "Guitar2"
const acoustic_guitar_steel_2 = note(`<
~ A@5 B C B D E F G H I J K L I M N O P@2 Q R ~ S@5 ~@4 T@2 U@3 V@3 W X@3 Y@3 Z ~@2 AA AB AC AD AE ~@3 AF AG AH AI AJ
AK AL AM AN AO AP AQ AR AS AT AU AV ~ AW@8 AX@8 AY@5
>`.pickRestart({
A: "[~@12 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@3]/5", // C Am Em Edim F
B: "[e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@3", // C F
C: "[e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,g#4,c5]@8 ~ [f4,g#4,c5]@3", // C Fm
D: "[f4,g4,c5]@8 ~ [f4,g4,c5]@5 ~ [f4,g4,c5]@5 ~ [f4,g4,c5]@3", // Fsus2
E: "[e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3", F: "[e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@8 ~",
G: "[f4,a4,d5]@8 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@3", // Dm
H: "[d4,g4,b4]@8 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3", I: "[e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@8 ~",
J: "[e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3", // Am
K: "[d4,f4,a4]@8 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@3", // Dm
L: "[g4,b4,d5]@8 ~ [g4,b4,d5]@5 ~ [g4,b4,d5]@3 [f4,a4,c5]@5 ~", // G F
M: "[e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3", // Edim
N: "[f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3", // F
O: "[f4,g#4,c5]@8 ~ [f4,g#4,c5]@5 ~ [f4,g#4,c5]@3 [d4,g4,b4]@5 ~", // Fm G
P: "[f4,a4,c5]@8 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3", // F C
Q: "[f4,g#4,c5]@8 ~ [f4,g#4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3", R: "[f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~@10",
S: "[~@14 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 ~@10]/5", // C Am Em Edim
T: "[~@2 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@7]/2", // C Am
U: "[~@2 [f4,a4,d5]@8 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@3 [d4,g4,b4]@8 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@7]/3", // Dm G C
V: "[~@2 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [d4,f4,a4]@8 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@3 [g4,b4,d5]@8 ~ [g4,b4,d5]@5 ~ [g4,b4,d5]@3 [f4,a4,c5]@4]/3", // Am Dm G F
W: "~@2 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@7", // C
X: "[~@2 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [f4,g#4,c5]@8 ~ [f4,g#4,c5]@5 ~@8]/3", // Edim F Fm
Y: "[~@2 [f4,a4,c5]@8 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,g#4,c5]@8 ~ [f4,g#4,c5]@3 [e4,g4,c5]@10]/3", // F C F C Fm C
Z: "~@2 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~@8", AA: "~@4 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5",
AB: "~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5", // C Am
AC: "~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5", // Am Em
AD: "~ [e4,g4,b4]@3 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5", AE: "~ [e4,g4,a#4]@3 ~@20", AF: "~@2 [e4,g4,c5]",
AG: "~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8", AH: "~ [e4,a4,c5]@5 ~ [e4,a4,c5]@8 ~ [f4,a4,d5]@8",
AI: "~ [f4,a4,d5]@5 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@3 [d4,g4,b4]@8", // Dm G
AJ: "~ [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 [e4,g4,c5]@8", AK: "~ [e4,g4,c5]@5 ~ [e4,g4,c5]@8 ~ [e4,a4,c5]@8",
AL: "~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [d4,f4,a4]@8", // Am Dm
AM: "~ [d4,f4,a4]@5 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@3 [g4,b4,d5]@8", // Dm G
AN: "~ [g4,b4,d5]@5 ~ [g4,b4,d5]@3 [f4,a4,c5]@5 ~ [e4,g4,c5]@8", AO: "~ [e4,g4,c5]@5 ~ [e4,g4,c5]@8 ~ [e4,g4,a#4]@8",
AP: "~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 [f4,a4,c5]@8", // Edim F
AQ: "~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [f4,g#4,c5]@8", // F Fm
AR: "~ [f4,g#4,c5]@5 ~ [f4,g#4,c5]@3 [d4,g4,b4]@5 ~ [f4,a4,c5]@8", // Fm G F
AS: "~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,a4,c5]@8", // F C F
AT: "~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,g#4,c5]@8", AU: "~ [f4,g#4,c5]@3 [e4,g4,c5]@11 ~ [f4,a4,c5]@8",
AV: "~ [f4,a4,c5]@5 ~@18", // F
AW: "[~@7 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@2]/8", // C Am Em F C Am Em F
AX: "[~@4 [f4,a4,c5]@3 [f4,a4,c5]@8 ~ c5@3 c5@3 [f4,a4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@5, ~@16 [f4,a4]@5 ~@7 [f4,a4]@3 ~@161, ~@19 [e4,g4]@8 ~@165]/8", // F C Am Em F C Am Em …
AY: "[~@4 [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 ~@5]/5", // F C Am Em F
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.8)
// chords · recorder · "Flute"
const recorder = note("<~@5 A@3 B@2 ~@21 C@5 ~@22 D E@2 F@2 ~@38>".pickRestart({
A: "[~@18 c6@11 ~ a5@3 g5@3 e5@3 g5@3 a5@3 c5@13 ~@5 [f5,g#5]@3 [f5,g#5]@3 [f5,g#5]@3]/3", // Fm
B: "[[e5,g5]@3 [e5,g5] e5 g5 [e5,g5]@3 [e5,g5]@3 [d5,f5]@3 [d5,f5]@3 [d5,f5]@3 [c5,f5,a5]@24 ~@3]/2", // Em Dm F
C: "[~@20 c6@11 ~ a5@3 g5@3 e5@3 g5@3 a5@3 c5@13 ~@5 [f5,g#5]@3 [f5,g#5]@3 [f5,g#5]@3 [e5,g5]@3 [e5,g5]!2 ~ [e5,g5]@3 [e5,g5]@3 [d5,f5]@3 [d5,f5]@3 [d5,f5]@3 [c5,f5,a5]@24 ~]/5", // Fm Em Dm F
D: "~@10 c6@11 ~ a5@2",
E: "[~ g5@3 e5@3 g5@3 a5@3 c5@13 ~@5 [f5,g#5]@3 [f5,g#5]@3 [f5,g#5]@3 [e5,g5]@3 [e5,g5] ~ [e5,g5] [e5,g5]@2]/2", // Fm Em
F: "[~ [e5,g5]@3 [d5,f5]@3 [d5,f5]@3 [d5,f5]@3 [c5,f5,a5]@24 ~@11]/2", // Em Dm F
})).s("gm_recorder").gain(0.35).pan(0.4)
// other · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
~@27 A@5 ~@12 B C D E F G H I@3 J K L@3 ~@11 M N@2 O P@2 Q@2 R@2 S T U V S T U V W@8 X@5
>`.pickRestart({
A: "[~@14 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~@7 [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~ [e3,e4]@5 ~ [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ c4@5 ~@11]/5", // C A E C
B: "~@2 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~@5", C: "~@2 c4@8 ~ c4@3 c4@5 ~ c4@4, ~ a#4@11",
D: "~@2 [f3,f4]@5 ~ f4@3 f3@3 [f3,f4]@5 ~@5", E: "~@2 [f3,f4]@8 ~ [f3,f4]@3 [f3,f4]@5 ~ [g3,g4]@4",
F: "~@2 [f3,f4]@11 ~ [e3,e4]@10", G: "~@2 [d3,d4]@3 [d3,d4]@5 ~ [c3,c4]@5 ~@8", H: "~@2 [f3,g#4]@11 ~ [e3,g4]@10",
I: "[~@2 [d3,d4]@3 [d3,d4]@5 ~@4 [g3,c4]@37 ~@21]/3", J: "~@4 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~@3",
K: "~@4 [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@3", // A
L: "[~@4 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~ [e3,e4]@5 ~ [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ c4@5 ~@21]/3", // E C
M: "~@2 [c3,c4]", N: "[~ [c3,c4]@3 [c3,c4]@5 ~@7 c4@8 ~ c4@3 c4@5 ~ c4@5 ~ [f3,f4]@5 ~ f4@2, ~@8 a4@11 ~@5]/2",
O: "~ f3@3 [f3,f4]@5 ~@7 [f3,f4]@8", // F
P: "[~ [f3,f4]@3 [f3,f4]@5 ~ [g3,g4]@5 ~ [f3,f4]@11 ~ [e3,e4]@11 ~ [d3,d4]@3 [d3,d4]@5]/2", // F G F E D
Q: "[~ [c3,c4]@5 ~@10 [f3,g#4]@11 ~ [e3,g4]@11 ~ [d3,d4]@3 [d3,d4]@5]/2", R: "[~@4 [g2,g3]@35 ~@9]/2",
S: "~@7 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5", T: "~ [b2,b3]@5 ~ [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5",
U: "~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5", V: "~@7 [f3,f4]@8 ~ [f3,f4]@3 [f3,f4]@5",
W: "[~@4 [f3,f4]@3 [f3,f4]@5 ~@4 [f3,f4]@3 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ [b2,b3]@5 ~ [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~@7 [f3,f4]@8 ~ [f3,f4]@3 [f3,f4]@5 ~@7 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ [b2,b3]@5 ~ [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~@7 [f3,f4]@5]/8", // F C B A E F C B …
// … 102 more lines
More by Electric Light Orchestra
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.