0:00/0:00
// Do Ya — Electric Light Orchestra
// 126 bpm, 4/4, key D 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 25, 4/4 at bar 25) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 117 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(126/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, A@4 for four bars: edit a riff to change every repeat.
// chords · distortion guitar · "Guitar"
const distortion_guitar = note(`<
A B C@6 D ~@2 E F G H I J@2 K@6 ~@2 L@7 M N@2 O P@2 Q R@6 ~ S T@8 ~@3 U@6 ~@2 V@6 W X Y@2 Z ~@2 AA@8 AB ~ AC AD AE
AF@6 AG@2 AH@2 AI@3 ~@11
>`.pickRestart({
A: "~@25 [a3,d4,f#4]@7", B: "~@9 [e3,a3,c#4]@4 [e3,a3,c#4]@4 ~@5 [d3,g3,b3]@10",
C: "[~@14 [c4,e4,g4]@12 ~ [a3,d4,f#4]@8 ~@8 [e3,a3,c#4]@4 [e3,a3,c#4]@4 ~@5 [d3,g3,b3]@12 ~@25 [a3,d4,f#4]@8 ~@8 [e3,a3,c#4]@4 ~ [e3,a3,c#4]@4 ~@4 [d3,g3,b3]@12 ~@13 [c4,e4,g4]@12 [a3,d4,f#4]@8 ~@8 [e3,a3,c#4]@4 ~ [e3,a3,c#4]@4 ~@8]/6", // C D A G D A G C …
D: "[d3,g3,b3] ~@3", E: "f4", F: "~@4 a3@4 [a3,d4]@4 f#4@4 [a3,c#4,e4]@6 [a3,c#4,f#4]@5 [a3,c#4,f#4]@5",
G: "e4@2 d4@2 d4@2 d4@2 [g3,b3,d4]@8 ~ d4@4 e4@4 [a3,c#4,e4]@7, [g3,b3]@8 ~@9 [g3,b3]@8 ~@7", // G A G
H: "~@6 [a3,d4]@5 ~ [a3,d4,f#4]@5 f#4@4 e4@4 e4@4 e4@3, ~@17 [a3,c#4]@8 [a3,c#4]@7", // D5 D A
I: "~ e4@4 d4@4 [g3,b3,d4]@8 d4@4 b3@4 [c#3,e3,a3]@7, ~ [g3,b3]@8 ~@8 g3@8 ~@7", // G A G
J: "[~@3 a3@2 [a3,d4,f#4]@4 f#4@2 e4@2 e4@2 d4@2 d4!4 [g3,b3,d4]@4 ~@2 b3@2 [c#3,e3,a3]@3, ~@9 [a3,c#4]@4 a3@4 [g3,b3]@4 ~@4 d3@4 ~@3]/2", // D G A G
K: "[~@10 [a3,d4,f#4]@4 [a3,d4,f#4]@4 ~ [a3,c#4,e4]@8 [a3,e4]@4 d4@4 e4@4 d4@4 d4@4 d4@4 d4@4 [g3,b3,d4]@8 [a3,e4]@4 ~@8 [a3,d4,f#4]@4 [a3,d4,f#4]@4 f#4@4 e4@4 e4@4 e4@4 e4@4 ~ d4@4 [g3,b3,d4]@8 ~@4 d4@4 d4@4 e4@4 ~@8 [a3,d4,f#4]@4 [a3,d4,f#4]@4 f#4@4 e4@4 e4@4 d4@4 ~@4 [g3,b3,e4]@8 [g3,b3,d4]@4 [g3,b3,d4]@8 ~@4, ~@35 [g3,b3]@8 ~@4 [g3,b3]@8 ~@28 [a3,c#4]@8 [a3,c#4]@8 [g3,b3]@8 ~@9 [g3,b3]@8 a3@8 ~@16 [a3,c#4]@8 a3@8 ~@28]/6", // D A A5 G A5 D G D …
L: "[~@22 [b3,d4,g4]@4 f#4@4 d4@4 [b3,d4,g4]@4 f#4@4 d4@4 [b3,d4,g4]@4 f#4@4 [f#3,a3,d4]@8 [f#3,a3,d4]@8 [e3,a3,c#4]@8 [e3,a3,c#4]@8 [d3,g3,b3]@8 [d3,g3,b3]@8 [d3,g3,b3]@8 [c#3,e3,a3]@8 [a3,f#4,a4]@4 ~ [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 a4@4 a4@8 [b3,g4,b4]@12 [b3,g4]@8 [g3,b3,d4]@4 [a3,c#4,e4]@12 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [d4,a4]@4 [c#4,a4]@8 [b3,a4]@13]/7", // G D A G A D Em G …
M: "~ [g3,b3,d4]!2 [a3,c#4,e4]@3 [a3,f#4,a4]!2", // G A D
N: "[[a3,f#4,a4]!2 [d4,a4] [c#4,a4]@2 [b3,g4,b4]@4 [g3,b3,d4]!2 [a3,c#4,e4]@3 [a3,f#4,a4]!2]/2", // D D5 F#m Em G A D
O: "[a3,f#4,a4]!2 [d4,a4] [c#4,a4]@2 [b3,g4,b4]@3", // D D5 F#m Em
P: "[[b3,g4,b4]@14 ~@2 d4@2 e4@10 ~ [a3,d4,f#4]@8 [a3,d4,f#4]@4 [a3,c#4,e4]@8 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [g3,b3,e4]@4 [g3,b3,d4]@3]/2", // Em D A Em G
Q: "~ [g3,b3,d4]@8 [g3,b3,d4]@8 c#4@4 a3@4 ~@4 [a3,d4,f#4]@3", // G D
R: "[~ [a3,d4,f#4]@4 [a3,c#4,e4]@12 [a3,c#4,e4]@4 [a3,c#4,e4]@4 e4@4 d4@2 d4@2 d4@4 d4@4 d4@4 [g3,b3,d4]@8 ~ [a3,c#4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,c#4,f#4]@4 [a3,c#4,e4]@4 ~@4 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [g3,b3,e4]@4 [g3,b3,d4]@4 [g3,b3,d4]@16 d4@2 [a3,c#4,e4]@10 [a3,d4,f#4]@8 [a3,d4,f#4]@4 f#4@4 e4@4 e4@4 d4@4 [g3,b3,e4]@4 [g3,b3,d4]@8 [g3,b3,d4]@16 ~@10, ~@25 [g3,b3]@8 [g3,b3]@8 ~@97 [a3,c#4]@8 a3@8 ~@38]/6", // D A G A D F#m A Em …
S: "~@27 [b3,d4,g4]@4 f#4", // G
T: "[~@3 d4@4 b3@4 f#4@4 d4@4 [b3,d4,g4]@4 f#4@4 [f#3,a3,d4]@8 [f#3,a3,d4]@8 [e3,a3,c#4]@8 ~ [e3,a3,c#4]@8 [d3,g3,b3]@32 f4@32 [a4,d5,f#5]@32 [a4,c5,f5]@32 ~ [b4,d5,g5]@32 [a4,d5,f#5]@31 ~@4, ~@7 [d4,g4]@8 ~@241]/8", // G D A G D F G D …
U: "[~@26 [a4,f#5]@31 ~ [a4,c5,f5]@31 [b4,d5,g5]@31 ~ [a4,d5]@31 ~@40, ~@121 f#5@63 ~@8]/6", // D F G D5
V: "[~@22 [a4,f#5]@31 ~ [a4,c5,f5]@31 [b4,d5,g5]@31 ~ [a4,d5,f#5]@31 [c3,c4,g4]@32 [a3,d4,f#4]@8 ~@4]/6", // D F G D C5 D
W: "~ [e3,a3,c#4]!2 ~ [d3,g3,b3]@3 ~", X: "~@5 [a3,d4,f#4]@2 ~",
Y: "[~@5 [e3,a3,c#4]@4 [e3,a3,c#4]@4 ~@4 [d3,g3,b3]@12 [e4,g4,c5]@24 [a3,d4,f#4]@8 ~@3]/2", // A G C D
Z: "~@5 [e3,a3,c#4]@4 [e3,a3,c#4]@4 ~@4 [d3,g3,b3]@12 ~@3", // A G
AA: "[~@22 [b3,d4,g4]@4 f#4@4 d4@4 [b3,d4,g4]@4 f#4@4 d4@4 [b3,d4,g4]@4 f#4@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [d4,a4]@4 [c#4,a4]@8 [b3,g4,b4]@12 ~ [b3,g4,b4]@8 [g3,b3,d4]@4 [a3,c#4,e4]@12 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [d4,a4]@4 [c#4,a4]@8 a4@4 a4@10 ~@2 [g3,b3,d4]@4 [g3,b3,d4]@4 [a3,c#4,e4]@12 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [d4,a4]@4 [c#4,a4]@8 [b3,g4,b4]@16 ~ [g3,b3,d4]@4 [g3,b3,d4]@4 [a3,c#4,e4]@12 [a3,f#4,a4]@4 [a3,f#4,a4]@4, ~@147 b3@16 ~@93]/8", // G D D5 F#m Em G A D …
AB: "[a3,f#4,a4]!2 [d4,a4] [c#4,a4]@2 ~@3", AC: "~@24 f#4@4 ~ f#4@3, ~@3 [a3,d4]",
AD: "~ f#4@4 f#4@4 e4@5 e4@5 e4@5 ~ e4@2 d4@2 d4@3, ~ [a3,d4]@8 [a3,c#4]@16 [g3,b3]@7", // D5 A G
AE: "~ d4@4 d4@4 [g3,b3,d4]@8 [a3,c#4]@8 [a3,d4]@7, ~ [g3,b3]@8 ~@23", // G A D5 G
AF: "[~ f#4@2 f#4@2 f#4@4 f#4@4 ~ e4@4 e4@2 e4@2 e4@2 e4@2 e4@4 d4@4 [g3,b3,d4]@8 [g3,b3]@8 [a3,c#4]@12 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@8 [a3,c#4,e4]@4 e4@2 d4@2 d4@4 ~ d4@2 e4@6 [g3,b3]@8 [a3,c#4]@8 ~@4 f#4@2 f#4@2 f#4@2 f#4@2 f#4@2 f#4@2 f#4@2 e4@6 ~@4 e4@2 e4@2 [g3,b3,d4]@6 d4@2 [g3,b3,d4]@8 [g3,b3]@8 [a3,c#4]@8 ~ [a3,f#4,a4]@4, ~ [a3,d4]@8 [a3,c#4]@8 ~ [a3,c#4]@8 [g3,b3]@8 ~@56 [g3,b3]@8 ~ [g3,b3]@8 ~@16 [a3,d4]@8 [a3,d4]@8 [a3,c#4]@8 [a3,c#4]@8 ~@37]/6", // G A D A G A G A …
AG: "[[a3,f#4,a4]@2 [a3,f#4,a4]@2 [a3,f#4,a4]@2 [e4,a4]@2 [e4,a4]@4 [d4,g4]@2 [d4,g4]@5 d4 [b3,d4]@2 [b3,d4,g4]@4 [a3,c#4,f#4]@4 [a3,f#4,a4]@2, ~@12 b4@7 ~@13]/2", // D A5 G5 Bm G F#m D
AH: "[[a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 ~ [e4,a4]@4 [e4,a4]@8 [d4,g4,b4]@16 [g3,b3,d4]@4 [g3,b3,d4]@4 [a3,c#4,e4]@12 [a3,f#4,a4]@3]/2", // D A5 G A D
AI: "[~ [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [e4,a4]@4 [e4,a4]@8 [d4,g4,b4]@16 ~ [b3,d4]@4 [b3,d4,g4]@8 [a3,c#4,f#4]@8 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [a3,f#4,a4]@4 [e4,a4]@4 [e4,a4]@8 d4@4 ~@2]/3", // D A5 G Bm G F#m D A5
})).s("gm_distortion_guitar").gain(0.4)
// bass · electric bass finger · "Bass"
const bass = note(`<
~@4 A@5 B@3 C D E F G H G I@5 J@2 K L@7 M N M N O P O P Q R Q S@5 B T U V@3 W X@5 V Y Z AA@5 V Y AB AC@2 AD@2 AE J
AF@2 AG@6 N AH ~ AI O P O R Q AJ@3 AK@8 AL@2 AM AN AO AP AQ@4
>`.pickRestart({
A: "[~@29 d2@8 ~@8 a2@4 ~ a2@4 ~@4 g2@12 ~@25 d2@8 ~@8 a2@4 ~ a2@4 ~@4 g2@8 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4]/5",
B: "g2!8", C: "d3!2 a2!2", D: "g2@8 g2@8 ~ g2@8 a2@7", E: "~ d3@8 d3@8 a2@8 a2@7", F: "~ g2@8 g2@8 g2@8 a2@7",
G: "~ d3@4 d3@4 a2@4 a2@3", H: "~ g2@4 g2@4 g2@4 a2@3",
I: "[~@3 g2@8 g2@8 g2@8 a2@8 d3@8 d3@8 a2@8 a2@8 g2@8 ~ g2@8 g2@8 a2@8 d3@8 d3@8 a2@8 a2@8 g2@8 g2@4 g2@4 g2@4 g2@4 ~ g2@3]/5",
J: "~ g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@3", K: "~ g2@4 g2@4 g2@4 g2@4 ~ g2@4 g2@10",
L: "[~@2 g2@12 g2@8 d3@8 d3@8 a2@4 a2@4 ~@4 a2@4 g2@8 g2@8 g2@4 g2@4 a2@8 d3@8 ~ d3@8 a2@4 a2@4 ~@4 g2@4 g2@8 g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 a2@4 a2@4 ~@4 g2@4 g2@8 g2@8 g2@4 g2@4 a2@4 a2@4 ~ d3@8]/7",
M: "d3@2 a2!2 ~ g2 g2@2", N: "g2@2 g2!2 a2!2 d3@2", O: "~ d3@8 a2@8 a2@8 g2@7", P: "~ g2@8 g2@4 g2@4 a2@4 a2@4 d3@7",
Q: "~ d3@4 a2@4 a2@4 g2@3", R: "~ g2@4 g2@2 g2@2 a2@2 a2@2 d3@3",
S: "[~@2 g2@8 g2@4 g2@4 ~ g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@12 g2@12 g2@8 d3@8 d3@8 a2@4 ~ a2@4 ~@4 a2@4 g2@4]/5",
T: "g2!7 d3", U: "d3!8", V: "~ d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@3", W: "d3!7 a2",
X: "[a2@4 a2@4 a2@4 a2@4 a2@4 a2@3 a2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@3 g2@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@3 d3@4 d3@4 d3@3]/5",
Y: "~ d3@4 d3@4 d3@4 d3@4 d3@4 d3@3 d3@4 d3@4", Z: "d3!6 a2!2",
AA: "[a2@4 a2@4 a2@4 a2@4 a2@3 a2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@3 g2@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@4 d3@3 d3@4 d3@4 d3@3]/5",
AB: "d3!5 d2@2 ~", AC: "[~ a2!2 ~ g2@3 g2@2 g2!4 d2@2 ~]/2",
AD: "[~@5 a2@4 a2@4 ~@4 g2@12 g2@8 g2@4 g2@4 g2@4 g2@4 d2@8 ~@3]/2", AE: "~@5 a2@4 a2@4 ~@4 g2@8 g2@4 g2@3",
AF: "[~ g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@5]/2",
AG: "[~@2 g2@12 g2@8 d3@8 d3@8 a2@4 a2@4 ~@4 g2@4 g2@8 ~ g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 a2@4 a2@4 ~@4 g2@4 g2@8 g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 a2@4 a2@4 ~@4 g2@4 g2@8 ~]/6",
AH: "d3@2 a2!2 ~ g2 ~@2", AI: "~@3 d3",
AJ: "[~@3 g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 a2@8 a2@8 a2@8 g2@8 g2@4 g2@4 a2@4 a2@4 d3@5]/3",
AK: "[~@4 d3@8 a2@4 a2@4 ~@4 g2@4 g2@8 g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 ~ a2@4 a2@4 ~@4 g2@4 g2@8 g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 a2@4 a2@4 ~@4 g2@4 ~ g2@8 g2@8 g2@4 g2@4 a2@4 a2@4 d3@8 d3@8 a2@4 a2@4 ~@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@2]/8",
AL: "[~@3 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@33]/2", AM: "d2", AN: "f2", AO: "~ g2@31", AP: "~ d#2@31",
AQ: "[~@2 f2@32 g2@65 ~@29]/4",
})).s("gm_electric_bass_finger").gain(0.35)
// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
~@7 A B C@3 ~@12 D E F@2 ~@9 G@2 H I J@5 ~ K@2 L@8 M@8 N@8 O P Q@2 R S@5 T@2 U@2 V W ~ X Y Z AA@6 AB@2 AC@2 AD@6 AE AF
AG AH AI@4
>`.pickRestart({
A: "~@7 g4", B: "~@2 f#4 ~ g4 ~ f#4 ~ g4 ~ f#4 ~ g4 ~ f#4 ~", C: "g4 ~ f#4 ~ g4 ~ f#4 ~ g4 ~ f#4 ~ g4 ~ f#4 ~",
D: "~@21 [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3", // Bm
E: "~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3", // Bm
F: "[~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@2 [b4,d5]@3 ~ [b4,d5,g5]@4 f#5@4 d5@4 [b4,d5,g5]@4 f#5@4 d5@4 [b4,d5,g5]@4 f#5@4 ~@10]/2", // Bm G
G: "[~@29 a4@8 a4@4 a4@8 a4@4 a4@4 g4@4 g4@3]/2", H: "~ g4@8 ~@20 [a4,d5]@3",
I: "~ [a4,d5]@4 [a4,c#5]@12 [a4,c#5]@4 [a4,c#5]@4 [g4,b4]@7", // D5 A G
J: "[~ [g4,b4]@12 [g4,b4]@8 ~ a4@4 ~@4 [a4,d5,f#5]@4 [a4,d5,f#5]@4 [a4,d5,f#5]@4 [a4,c#5,f#5]@4 [a4,c#5,e5]@8 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [g4,b4,e5]@4 [g4,b4,d5]@4 [g4,b4,d5]@16 d5@2 [a4,c#5,e5]@10 [f#5,a5,d6]@8 [f#5,a5,d6]@4 f#5@4 e6@4 e6@4 d6@4 [e5,g5,b5]@4 [d5,g5,b5]@8 [d5,g5,b5]@12 ~@14, ~@53 [a5,c#6]@4 a5@4 ~@19]/5", // G D F#m A Em G A D …
K: "[~@27 [b4,g5]@4 f#5@4 d5@4 [b4,g5]@4 f#5@4 d5@4 [b4,d5,g5]@4 f#5@4 ~@5, ~@39 d5@8 ~@17]/2", // Em G
L: "[~@28 b4@32 c5@16 b4@8 a4@4 g4@4 [d4,f#4,a4]@32 [f4,a4,c5]@32 ~ [g4,b4,d5]@32 [a4,d5,f#5]@31 ~@8 d5@4 d5@4 d5@4 d5@4 d5@4 b4@4 [e4,a4,d5]@4, ~@28 [d4,g4]@56 ~@136 [f#4,a4]@31 ~@5]/8", // D F G D Dsus2 G5 F#m
M: "[~@4 d5@4 b4@4 c#5@8 b4@3 a4@4 c5@8 ~@4 c5@4 c5@4 c5@4 c5@4 c5@12 b4@4 b4@12 a4@3 g4@4 d6@2 c#6@2 d6@2 a5@2 e5@2 d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 a5@2 e5@2 d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 c6@2 e5@2 d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 c6@2 ~ d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 b5@2 e5@2 ~@2 b5@2 c#6@2 d6@2 c#6@2 d6@2 b5@2 e5@2 d5@4 c6@2 d6@2 c#6@2 d6@2 a5@2 e5@2 ~@2 a5@2 c#6@2 d6@2 c#6@2 d6@2 a5@2 ~@3 a5@2 c#6@2 d6@2 ~@2 d5@4 d5@4 d5@4 d5@4 b4@4 d5@4 b4@4 [e4,a4,d5]@8, ~@27 [d4,g4]@27 ~ [d4,g4]@27 ~@8 [f#4,a4]@31 ~ [f4,a4,c5]@31 [g4,b4]@31 ~ [a4,f#5]@31 [f#4,a4]@31 ~@9, ~@146 e5@2 ~@5 d5@10 d5@16 ~@6 d5@10 d5@14 e5@2 ~@45, ~@105 d5@3 ~@20]/8", // Dsus2 G5 F#m F G D F#m
N: "[b4@4 c#5@8 b4@7 a4@4 c5@8 c5@4 ~@8 c5@8 c5@8 b4@8 b4@12 a4@3 g4@4 d6@2 c#6@2 d6@2 a5@2 e5@2 d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 a5@2 e5@2 d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 c6@2 e5@2 d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 c6@2 ~ d5@2 a5@2 c6@2 d6@2 c#6@2 d6@2 b5@2 e5@2 ~@2 b5@2 c#6@2 d6@2 c#6@2 d6@2 b5@2 e5@2 d5@4 c6@2 d6@2 c#6@2 d6@2 a5@2 e5@2 ~@2 a5@2 c#6@2 d6@2 c#6@2 d6@2 a5@2 ~@3 a5@2 c#6@2 d6@2 ~@30 [f#4,a4,d5]@8 ~@4, ~@23 g4@27 ~@36 [f#4,a4]@31 ~ [f4,a4,c5]@31 [g4,b4]@31 ~ [a4,f#5]@62 ~@13, ~@23 d4@16 d4@12 [d4,g4]@27 ~@16 d4@4 d4@20 ~@87 e5@2 ~@49, ~@35 c5@8 ~@99 e5@2 ~@5 d5@10 d5@16 ~@6 d5@10 d5@15 d5@36 ~@14]/8", // D F#m F G D G5
O: "~ [c#4,e4,a4]!2 ~ [b3,d4,g4]@3 ~", P: "~@5 [f#4,a4,d5]@2 ~",
Q: "[~@5 [c#4,e4,a4]@4 [c#4,e4,a4]@4 ~@4 [b3,d4,g4]@12 [e4,g4,c5]@24 [f#4,a4,d5]@8 ~@3]/2", // A G C D
R: "~@5 [c#4,e4,a4]@4 [c#4,e4,a4]@4 ~@4 [b3,d4,g4]@12 ~@3", // A G
S: "[~@17 d5@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 ~ [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5,g5]@4 f#5@4 d5@4 [b4,d5,g5]@4 f#5@4 d5@4 [b4,d5,g5]@4 f#5@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [d5,a5,d6]@4 [c#5,a5,c#6]@8 [b4,g5,b5]@12 ~@2, ~@21 g5@32 ~ g5@32 ~@74]/5", // Bm G D D5 F#m Em
T: "[~@7 [g4,b4,d5]@4 [a4,c#5,e5]@12 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [d5,a5]@4 [c#5,a5,c#6]@8 [a5,c#6]@4 ~@9, ~@39 d6@8 ~@4 b4@12 ~]/2", // G A D D5 F#m A
U: "[~@3 [g4,b4,d5]@4 [g4,b4,d5]@4 [a4,c#5,e5]@12 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [d5,a5,d6]@4 [c#5,a5,c#6]@8 [b4,g5,b5]@12 ~]/2", // G A D D5 F#m Em
V: "~ [g4,b4,d5]!2 [a4,c#5,e5]@3 [a4,f#5,a5]!2", W: "[a4,f#5,a5]!2 [d5,a5,d6] [c#5,a5,c#6]@2 ~@3",
X: "~@24 f#5@4 ~ f#5@3, ~@3 [a4,d5]", // D5
Y: "~ f#5@4 f#5@4 e5@5 e5@5 e5@5 ~ e5@2 d5@2 d5@3, ~ [a4,d5]@8 [a4,c#5]@16 [g4,b4]@7", // D5 A G
Z: "~ d5@4 d5@4 [g4,b4,d5]@8 [a4,c#5]@8 [a4,d5]@7, ~ [g4,b4]@8 ~@23", // G A D5 G
AA: "[~ f#5@2 f#5@2 f#5@4 f#5@4 ~ e5@4 e5@2 e5@2 e5@2 e5@2 e5@4 d5@4 [g4,b4,d5]@8 [g4,b4]@8 [a4,c#5]@8 ~@4 [a4,d5,f#5]@4 [a4,d5,f#5]@4 [a4,d5,f#5]@4 [a4,c#5,e5]@4 [a4,c#5,e5]@8 [a4,c#5,e5]@4 e5@2 d5@2 d5@4 ~ d5@2 e5@6 [g4,b4]@8 [a4,c#5]@8 ~@4 f#5@2 f#5@2 f#5@2 f#5@2 f#5@2 f#5@2 f#5@2 e5@6 ~@4 e5@2 e5@2 [g4,b4,d5]@6 d5@2 [g4,b4,d5]@8 [g4,b4]@8 [a4,c#5]@8 ~ [a4,f#5,a5]@4, ~ [a4,d5]@8 [a4,c#5]@8 ~ [a4,c#5]@8 [g4,b4]@8 ~@56 [g4,b4]@8 ~ [g4,b4]@8 ~@16 [a4,d5]@8 [a4,d5]@8 [a4,c#5]@8 [a4,c#5]@8 ~@37]/6", // G A D A G A G A …
AB: "[[a4,f#5,a5]!3 [e5,a5,d6] [e5,a5,c#6]@2 [d5,g5] [d5,g5]@2 ~ [b4,d5] [b4,d5,g5]@2 [a4,c#5,f#5]@2 [a4,f#5,a5], ~@6 b5@3 ~@7]/2", // D Dsus2 A G5 Bm G F#m D
AC: "[[a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 ~ [e5,a5,d6]@4 [e5,a5,c#6]@8 [d5,g5,b5]@12 ~@4 [g4,b4,d5]@4 [g4,b4,d5]@4 [a4,c#5,e5]@12 [a4,f#5,a5]@3]/2", // D Dsus2 A G A D
AD: "[~ [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [e5,a5,d6]@4 [e5,a5,c#6]@8 [d5,g5,b5]@12 ~@5 [b4,d5]@4 [b4,d5,g5]@8 [a4,c#5,f#5]@8 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [a4,f#5,a5]@4 [e5,a5,d6]@4 [e5,a5,c#6]@8 d5@4 d5@8 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 ~ [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [b4,d5]@4 [d3,g3,c4]@33, ~@15 [g5,b5]@2 ~@15]/6", // D Dsus2 A G Bm G F#m D …
AE: "[d3,g3,b3]", AF: "[d3,f3,a#3]", AG: "~ [d3,g3,a#3]@31", AH: "~ [d#2,d#3,a#3]@31",
AI: "[~@2 [d#2,f3,c4]@32 g2@33 g2@33 ~@28, ~@34 [d2,d3,g3]@65 ~@29]/4", // F7 G5
})).s("gm_string_ensemble_1").gain(0.35)
// drums · kick
const kick = s("bd").struct(`<
~@6 A B C@4 D E@3 F@3 G@2 H@2 I J@2 K L M N@4 O D@3 E@5 F@3 P Q R S G C@4 J@2 C T Q U V W J X C T Q U V W J X Y ~ Z
AA@2 AB J V AC L M N@3 O D@2 AD AE E@3 F@2 G@3 H@2 AA@3 M@2 V Q ~ AF@3 AG@2 AH ~@2
>`.pickRestart({
A: "~@31 x", B: "~@15 x ~@16", C: "x!8", D: "x!4", E: "~ x ~@7 x ~@7 x ~@7 x ~@6", F: "~ x ~@3 x ~@3 x ~@3 x ~@2",
G: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", H: "~ x ~ x ~ x ~ x", I: "~@4 x ~@7 x ~@7 x ~@3 x ~@4 x ~@2",
J: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", K: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@9",
L: "~ x ~@5 x ~@3 x ~@3 x", M: "~@3 x ~@3 x ~@3 x ~@3 x", N: "~@7 x ~@7 x ~@7 x ~@7 x", O: "~@7 x ~@7 x ~@8 x ~@7",
P: "~@2 x ~@7 x ~@8 x ~@7 x ~@3 x", Q: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
R: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4", S: "~@7 x ~@11 x ~@7 x ~@4",
T: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x", U: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~",
V: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", W: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@2",
X: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3", Y: "x!6 ~@2", Z: "~@5 x ~ x",
AA: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", AB: "~@5 x ~@7 x ~@7 x ~@3 x ~@3 x ~@2", AC: "~ x ~ x ~ x ~ x ~ x ~ x ~@4",
AD: "~ x ~ x", AE: "x!2 ~ x", AF: "x", AG: "~ x ~@30", AH: "~ x ~@14",
})).gain(0.3)
// drums · snare
const snare = s("sd").struct(`<
~@4 A ~ B C D@4 E F G H I J I K L M N O P@2 Q R S T U T U V W X W X Y Z Y Z AA AB AA AC AD AE AF AG D@4 P@2 D AH AD AI
AJ AK P AL D AH AD AI AJ AK P AL AM ~ AN AO AP AQ P AJ AR R U T U T AS X AT AU AV Y Z Y AB AA AW AX AG AY AZ AY BA BB
BC@2 AJ AD AS BD@2 BE@2 BF ~@3
>`.pickRestart({
A: "~@21 x ~@10", B: "~@23 x!2 ~@6 x", C: "~@7 x ~@16 x ~@7", D: "x!8", E: "x!2 ~ x", F: "~@8 x ~@16 x ~@6",
G: "~ x ~@7 x ~@15 x ~@6", H: "~@9 x ~@15 x ~@6", I: "~ x ~@3 x ~@7 x ~@2", J: "~@5 x ~@7 x ~@2",
K: "~@11 x ~@15 x ~@4", L: "~@3 x ~@7 x ~@15 x ~@4", M: "~@3 x ~@3 x", N: "~ x ~ x ~@3 x",
O: "~@12 x ~@7 x ~@3 x ~@4 x ~@2", P: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
Q: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@9", R: "~ x ~@5 x ~@3 x ~@3 x", S: "~@7 x ~@7 x", T: "~@15 x ~@7 x ~@7 x",
U: "~@15 x ~@15 x", V: "~@15 x ~@8 x ~@7", W: "x!2", X: "x ~ x!2", Y: "~ x ~@15 x ~@14", Z: "~ x ~@15 x ~@7 x ~@6",
AA: "~ x ~@7 x ~@6", AB: "~ x ~@7 x ~@3 x ~@2", AC: "~@2 x ~@16 x ~@7 x ~@3 x",
AD: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", AE: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4",
AF: "~@7 x ~@11 x ~@7 x ~@4", AG: "~@3 x ~@16 x ~@7 x ~@3", AH: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x",
AI: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~", AJ: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
AK: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@2", AL: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3",
AM: "x!6 ~@2", AN: "~@12 x!2 ~@6 x ~@7 x ~@3", AO: "~@13 x ~@15 x ~@2", AP: "~@13 x ~@7 x ~@7 x ~@2",
AQ: "~@13 x ~@7 x ~@3 x ~@3 x ~@2", AR: "~ x ~ x ~ x ~ x ~ x ~ x ~@4", AS: "~@15 x ~@16", AT: "x ~@7 x ~@3 x!4",
AU: "x ~@3 x!2 ~@2 x!10 ~@2 x!2 ~@2 x!8", AV: "x!6 ~@2 x!6 ~@2 x!6 ~@2 x ~@7", AW: "~@3 x ~@15 x ~@7 x ~@4",
AX: "~@3 x ~@15 x ~@12", AY: "~ x ~@3 x ~@2", AZ: "~ x ~@3 x ~ x", BA: "~@5 x ~@15 x ~@7 x ~@2",
BB: "~@5 x ~@15 x ~@10", BC: "~@3 x ~@7 x ~@3 x", BD: "~ x", BE: "~@17 x ~@14", BF: "~@9 x ~@6",
})).gain(0.25)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~@51 A B@2 C@2 B D C E B D C E B D C E B D C E F ~@44>".pickRestart({
A: "~@14 x!2", B: "x!16", C: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x",
E: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~", F: "x!10 ~@6",
})).gain(0.2)
// drums · open hat
const open_hat = s("oh").struct("<~@109 x ~ x ~@5>").gain(0.4)
// drums · mid tom
const mid_tom = s("mt").struct("<~@54 A B C D@3 E F G H ~@45 I J G K ~@4>".pickRestart({
A: "~@29 x ~ x", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~@3", C: "~@13 x!2 ~",
D: "~@25 x ~ x ~@4", E: "~@13 x ~@2", F: "~@18 x ~@6 x ~@6", G: "~@25 x ~@6",
H: "~@9 x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~@7", I: "~@3 x", J: "x!4", K: "~ x ~@30",
})).gain(0.3)
// drums · high tom
const high_tom = s("ht").struct("<~@53 A ~@11 B C D ~@45 E F ~@2>".pickRestart({
A: "~@29 x ~@2", B: "~@16 x ~@6 x ~@7 x", C: "~@27 x ~@4", D: "~@11 x ~@4", E: "~ x ~@3 x ~@3 x ~@6", F: "~ x ~@14",
})).gain(0.4)
// drums · crash
const crash = s("cr").struct(`<
~@12 A ~ B ~ C ~ C ~ D ~ E ~@3 F G ~ F ~ H ~ I ~ I ~ I ~ J ~ J ~ K ~@3 L M ~@6 N ~@7 I ~@10 O ~ O@2 ~@2 F G ~ H ~ H ~
I ~@2 I ~ J ~ K ~ L ~ N ~ N ~ P ~ Q ~@9 C ~@2
>`.pickRestart({
A: "x", B: "~ x ~@30", C: "~ x ~@14", D: "~@3 x ~@28", E: "~ x ~@6", F: "~@11 x ~@4", G: "~ x ~@5 x ~@3 x ~@4",
H: "~@23 x ~@8", I: "~@3 x", J: "~@25 x ~@6", K: "~@13 x ~@2", L: "~@27 x ~@4", M: "~@7 x ~@11 x ~@7 x ~@4",
N: "~@7 x", O: "~@21 x ~@10", P: "~@29 x ~@2", Q: "~@15 x",
})).gain(0.25)
// drums · ride
const ride = s("rd").struct(`<
~@6 A B C ~@3 D E@3 F@3 G@2 H@2 I ~@3 J K L@4 B D@4 E@4 F@3 M ~@2 N G ~@17 O ~@4 P ~ Q R@2 S ~@3 J K L@3 B D@2 ~ T E@3
F@2 G@3 H@2 R@3 K U ~ A B D@2 E@2 ~@4
>`.pickRestart({
A: "~@31 x", B: "~@7 x ~@7 x ~@8 x ~@7", C: "x", D: "x!4", E: "~ x ~@7 x ~@7 x ~@7 x ~@6",
F: "~ x ~@3 x ~@3 x ~@3 x ~@2", G: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", H: "~ x ~ x ~ x ~ x", I: "~ x ~ x ~@4",
J: "~@11 x ~@3 x", K: "~@3 x ~@3 x ~@3 x ~@3 x", L: "~@7 x ~@7 x ~@7 x ~@7 x", M: "~@2 x ~@7 x ~@8 x ~@12",
N: "~@27 x ~@4", O: "~@15 x", P: "~@5 x ~@2", Q: "~@5 x ~ x", R: "~@5 x ~@7 x ~@7 x ~@7 x ~@2",
S: "~@5 x ~@7 x ~@7 x ~@10", T: "~@3 x", U: "~@3 x ~@3 x ~@3 x ~@4",
})).gain(0.5)
stack(distortion_guitar, bass, string_ensemble_1, kick, snare, pedal_hat, open_hat, mid_tom, high_tom, crash, ride)
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.