0:00/0:00
// Easy Livin' — Uriah Heep
// 126 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 74 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Dat Guitar.
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: edit a riff to change every repeat.
// chords · distortion guitar · "Guitar"
const distortion_guitar = note(`<
A B@6 C D@2 E@3 F@3 G@6 H I@2 J K@5 L@3 M N O P Q@2 R S T U V@2 R W@2 M X@2 M Y Z AA@3 J AB@5 L@3 M Y Z C AC@3
>`.pickRestart({
A: "~@8 f#3 e3 d3 e3 d3 c#3 d3 c#3",
B: "[b2 a2@2 c#3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3] [d3,a3]@2 b2 [e3,b3]@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3] f#3 e3 d3 e3 d3 c#3 d3 c#3]/3", // B5 D5 E5 B5
C: "b2 a2@3 f#3 e3 d3 e3 d3 c#3 d3 c#3 b2 a2@3",
D: "[f#3 e3 d3 e3 d3 c#3 d3 c#3 b2 a2@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3]/2", // B5
E: "[[b2,f#3] [b2,f#3]@3 [d3,a3]@9 [d3,a3]@2 [c#3,g#3]@3 [b2,f#3]@3 f#2 b2@2 f#2 d3@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3]/3", // B5 D5 C#5 B5
F: "[[b2,f#3]@2 [b2,f#3]@6 [d3,a3]@18 [d3,a3]@4 [c#3,g#3]@6 [b2,f#3]@20 [e3,b3]@18 ~ [e3,b3]@4 [d3,a3]@4 ~ [b2,f#3]@12]/3", // B5 D5 C#5 B5 E5 D5 B5
G: "[[b2,f#3]@2 [d3,a3]@6 [e3,b3]@16 ~@3 [e3,b3]@4 [d3,a3]@4 ~ [b2,f#3]@12 [b2,f#3]@2 [d3,a3]@6 [e3,b3]@16 ~@3 [f#3,b3]@4 [d3,a3]@24 ~ [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [d3,a3]@4 b2@2 [e3,b3]@6 [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 f#3@2 e3@2 d3@2 e3@2 d3@2 c#3@2 d3@2 c#3@2]/6", // B5 D5 E5 D5 B5 D5 E5 B5 …
H: "b2 a2@2 c#3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]", // B5
I: "[[b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@3 [d3,a3]@9 [d3,a3]@2 [c#3,g#3]@3 [b2,f#3]@3 f#2 b2@2]/2", // B5 D5 C#5 B5
J: "f#2 d3@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]", // B5
K: "[[b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@6 ~ d3@17 ~ d3@3 [c#3,g#3]@6 ~ b2@19 [e3,b3]@16 ~@3 [e3,b3]@4 [d3,a3]@4 ~ [b2,f#3]@12 [b2,f#3]@2 [d3,a3]@6 [e3,b3]@16 ~@3 [e3,b3]@4 [d3,a3]@4 ~ [b2,f#3]@12, ~@12 a3@9 a3@2 ~@3 f#3@10 ~@44]/5", // B5 C#5 E5 D5 B5 D5 E5 D5 …
L: "[[b2,f#3]@2 [d3,a3]@6 [e3,b3]@16 ~@3 [f#3,b3]@4 [d3,a3]@24 ~ [b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@2 [d3,a3]@4]/3", // B5 D5 E5 B5 D5 B5 D5
M: "b2 [e3,b3]@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]", // E5 B5
N: "f#3 e3 d3 e3 d3 c#3 d3 c#3 b2 a2@2 c#3 [f#3,a3]@2 [f#3,a3] ~", // F#m
O: "~ [f#3,a3]@3 [f#3,a3] [f#3,a3]@3 [d3,f#3]@2 [d3,f#3] ~@2 [d3,f#3]@3", // F#m D
P: "[d3,f#3] [d3,f#3]@3 [f#3,a3]@2 [f#3,a3] ~@2 [f#3,a3]@3 [f#3,a3] [f#3,a3]@3", // D F#m
Q: "[[d3,f#3]@2 [d3,f#3] ~@2 [d3,f#3]@3 [d3,f#3] [d3,f#3]@3 [f#3,a3]@3 [c#3,f#3]@3 [e3,g#3]@3 [f#3,a3]@3 [e3,g#3]@3 [b2,e3]@3 [d#3,f#3]@2]/2", // D F#m F#5 E F#m E E5 D#m
R: "~ [e3,g#3]@3 d3@3 a2@3 f#3@3 e3@3", S: "d3@3 e3@3 f#3@3 g#3@3 [g#3,b3]@2 [g#3,b3] ~",
T: "~ [g#3,b3]@3 [g#3,b3] [g#3,b3]@3 [e3,g#3]@2 [e3,g#3] ~@2 [e3,g#3]@3", // G#m E
U: "[e3,g#3] [e3,g#3]@3 [g#3,b3]@2 [g#3,b3] ~@2 [g#3,b3]@3 [g#3,b3] [g#3,b3]@3", // E G#m
V: "[[e3,g#3]@2 [e3,g#3] ~@2 [e3,g#3]@3 [e3,g#3] [e3,g#3]@3 [f#3,a3]@3 [c#3,f#3]@3 [e3,g#3]@3 [f#3,a3]@3 [e3,g#3]@3 [b2,e3]@3 [d#3,f#3]@2]/2", // E F#m F#5 E F#m E E5 D#m
W: "[d3@3 e3@3 f#3@3 g#3@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3] [d3,a3]@2]/2", // B5 D5
X: "[f#3 e3 d3 e3 d3 c#3 d3 c#3 b2 a2@2 c#3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3] [d3,a3]@2]/2", // B5 D5
Y: "f#3 e3 d3 e3 d3 c#3 d3 c#3 b2 a2@3 f#3 e3 d3 e3", Z: "d3 c#3 d3 c#3 b2 a2@3 f#3 e3 d3 e3 d3 c#3 d3 c#3",
AA: "[b2 a2@3 [b2,f#3]@2 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@2 [b2,f#3]@3 [b2,f#3] [b2,f#3]@3 [d3,a3]@9 [d3,a3]@2 [c#3,g#3]@3 [b2,f#3]@3 f#2 b2@2]/3", // B5 D5 C#5 B5
AB: "[[b2,f#3]@4 [b2,f#3]@2 [b2,f#3]@4 [b2,f#3]@6 [b2,f#3]@2 [b2,f#3]@6 ~ d3@17 ~ d3@3 [c#3,g#3]@6 ~ b2@19 [e3,b3]@18 ~ [e3,b3]@4 [d3,a3]@4 ~ [b2,f#3]@12 [b2,f#3]@2 [d3,a3]@6 [e3,b3]@16 ~@3 [e3,b3]@4 [d3,a3]@4 ~ [b2,f#3]@12, ~@12 a3@9 a3@2 ~@3 f#3@10 ~@44]/5", // B5 C#5 E5 D5 B5 D5 E5 D5 …
AC: "[[b3,d#4,b4]@3 [b3,d#4,c#5]@3 [b3,d#4,d#5]@3 [b3,d#4,e5]@3 [b3,d#4,f#5]@6 [b3,d#4] ~@5]/3", // B Emaj7 B
})).s("gm_distortion_guitar").gain(0.64).pan(0.3)
// chords · rock organ · "Organ"
const rock_organ = note(`<
A B@2 C D@2 C E F G H@2 I J@8 C K L@2 M N@7 O P Q@3 R@6 S@4 O P T U P V W X L@2 Y N@7 O P V W E Z@3
>`.pickRestart({
A: "~@8 f#5 e5 d5 e5 d5 c#5 d5 c#5",
B: "[b4 a4@2 c#5 b4@2 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4 [d5,e5,f#5,a5]@2 b4 [g#4,b4,e5,g#5]@3 b4@2 [b4,d5,f#5,b5] ~]/2", // Bm D E Bm
C: "~ b4@3 [b4,d5,f#5,b5] ~@2 b4 f#5 e5 d5 e5 d5 c#5 d5 c#5", // Bm
D: "[b4 a4@2 c#5 b4@2 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4 [d5,f#5,a5]@2 b4 [g#4,b4,e5,g#5]@3 b4@2 [b4,d5,f#5,b5] ~]/2", // Bm D E Bm
E: "b4 a4@3 f#5 e5 d5 e5 d5 c#5 d5 c#5 b4 a4@3",
F: "f#5 e5 d5 e5 d5 c#5 d5 c#5 b4 a4@3 [b4,d5,f#5,b5]@2 [b4,d5,f#5,b5]@2", // Bm
G: "~ [b4,d5,f#5,b5]@3 [d5,b5] [e5,a5]@2 [b4,f#5,a5] [b4,d5,f#5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3, ~@4 [b4,f#5]@3 ~ b5 ~@7", // Bm G A5 B7 Bm B5
H: "[[b4,d5,f#5,b5] [b4,d5,f#5,b5]@3 [a4,d5,f#5,a5]@9 [a4,d5,f#5,a5]@2 [g#4,c#5,e5,g#5]@3 [f#4,b4,d5,f#5]@3 f#4 [b4,d5,f#5,b5]@2 f#4 [a4,c#5,e5,a5]@3 [b4,d5,f#5]@2 [b4,d5,f#5,b5]@2, ~@28 b5 ~@3]/2", // Bm D C#m Bm A Bm
I: "~ [b4,d5,f#5,b5]@3 [d5,b5] [e5,c#6]@2 [b4,f#5,a5] [b4,d5,f#5,b5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3, ~@4 [b4,f#5]@3 ~@9", // Bm G C#m B7 Bm B5
J: "[[b4,d5,f#5,b5]@2 [b4,d5,f#5,b5]@6 [a4,d5,f#5,a5]@18 [a4,d5,f#5,a5]@4 [g#4,c#5,e5,g#5]@6 [f#4,b4,d5,f#5]@20 [g#4,b4,e5,g#5]@18 ~ [g#4,b4,e5,g#5]@4 [f#4,b4,d5,f#5]@4 ~@2 [f#4,b4,d5,f#5]@19 [g#4,b4,e5,g#5]@18 ~ [g#4,b4,e5,g#5]@4 [f#4,b4,d5,f#5]@4 ~@2 [f#4,b4,d5,f#5]@19 [g#4,b4,e5,g#5,b5]@19 [g#4,b4,e5,g#5,b5]@4 [f#4,b4,d5,f#5,a5]@25 b4@4 [b4,d5,f#5,b5]@2 ~@4 b4@6 [b4,d5,f#5,b5]@2 ~@4 b4@6 [b4,d5,f#5,b5]@2 ~@4 b4@2 [d5,e5,f#5,a5]@4 b4@2 [g#4,b4,e5,g#5]@6 b4@4 [b4,d5,f#5,b5]@2 ~@2]/8", // Bm D C#m Bm E Bm E Bm …
K: "b4 a4@2 c#5 [b4,d5,f#5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3 [d5,b5] [e5,c#6]@2 [b4,f#5,a5], ~@4 b5 ~@7 [b4,f#5]@3 ~", // Bm G C#m B7 B5
L: "[[b4,d5,f#5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5] [b4,d5,f#5,b5]@3 [a4,d5,f#5,a5]@9 [a4,d5,f#5,a5]@2 [g#4,c#5,e5,g#5]@3 [f#4,b4,d5,f#5]@3 f#4 [b4,d5,f#5,b5]@2, b5 ~@31]/2", // Bm D C#m Bm
M: "f#4 [a4,c#5,e5,a5]@3 [b4,d5,f#5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3 [d5,b5] ~@2 [b4,f#5], ~@4 b5 ~@7 [b4,f#5]@3 ~, ~@13 e5@3, ~@27 a5@5", // A Bm G B5
N: "[[b4,d5,f#5,b5]@4 [b4,d5,f#5,b5]@6 [b4,d5,f#5,b5]@6 [b4,d5,f#5,b5]@2 [b4,d5,f#5,b5]@6 [a4,d5,f#5,a5]@18 [a4,d5,f#5,a5]@4 [g#4,c#5,e5,g#5]@6 [f#4,b4,d5,f#5]@20 [g#4,b4,e5,g#5]@18 ~ [g#4,b4,e5,g#5]@4 [f#4,b4,d5,f#5]@4 ~@2 [f#4,b4,d5,f#5]@19 [g#4,b4,e5,g#5]@18 ~ [g#4,b4,e5,g#5]@4 [f#4,b4,d5,f#5]@4 ~@2 [f#4,b4,d5,f#5]@19 [g#4,b4,e5,g#5,b5]@19 [g#4,b4,e5,g#5,b5]@4 [f#4,b4,d5,f#5,a5]@25 b4@4 [b4,d5,f#5,b5]@2 ~@2]/7", // Bm D C#m Bm E Bm E Bm …
O: "~ b4@3 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4 [d5,e5,f#5,a5]@2", // Bm D
P: "b4 [g#4,b4,e5,g#5]@3 b4@2 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4", // E Bm
Q: "[f#5@2 e5@2 d5@2 e5@2 d5@2 c#5@2 d5@2 c#5@2 b4@2 ~ a4@3 c#5@2 [a4,c#5,f#5,a5]@24 [f#4,a4,d5,f#5]@24 [a4,c#5,f#5,a5]@24]/3", // F#m D F#m
R: "[[f#4,a4,d5,f#5] [f#4,a4,c#5,f#5] [e4,g#4,b4,e5] [d4,f#4,a4,d5]@2 [b4,d#5,g#5,b5] [g#4,b4,e5,g#5] [b4,d#5,g#5,b5]]/6", // D F#m E D G#m E G#m
S: "[[g#4,b4,e5,g#5]@12 [f#4,a4,c#5,f#5]@12 [e4,g#4,b4,e5]@12 [d4,f#4,a4,d5]@24 b4@2 [b4,d5,f#5,b5] ~]/4", // E F#m E D Bm
T: "f#5 e5 d5 e5 d5 c#5 d5 c#5 b4 a4@2 c#5 b4@2 [b4,d5,f#5,b5] ~", // Bm
U: "~ b4@3 [b4,d5,f#5,b5] ~@2 b4@3 [b4,d5,f#5,b5] ~@2 b4 [d5,f#5,a5]@2", // Bm D
V: "f#5 e5 d5 e5 d5 c#5 d5 c#5 b4 a4@3 f#5 e5 d5 e5", W: "d5 c#5 d5 c#5 b4 a4@3 f#5 e5 d5 e5 d5 c#5 d5 c#5",
X: "b4 a4@3 [b4,d5,f#5,b5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3 [d5,b5] [e5,a5]@2 [b4,f#5,a5], ~@12 [b4,f#5]@3 ~", // Bm G A5 B7 B5
Y: "f#4 [a4,c#5,e5,a5]@3 [b4,d5,f#5]@2 [b4,d5,f#5,b5]@3 [b4,d5,f#5,b5]@3 [d5,b5] [e5,c#6]@2 [b4,f#5,a5], ~@4 b5 ~@7 [b4,f#5]@3 ~", // A Bm G C#m B7 B5
Z: "[[b4,d#5,f#5,b5]@3 [b4,d#5,f#5,b5]@3 [b4,d#5,f#5,b5]@3 [b4,d#5,f#5,b5]@3 [b4,d#5,f#5,b5,d#6,f#6]@6 [b4,d#5,f#5,b5] ~@5]/3", // B
})).s("gm_rock_organ").gain(0.64).pan(0.7)
// bass · electric bass pick · "Bass"
const bass = note(`<
A B@2 C B@2 C D E F G@2 F H@3 I@5 C J K@2 L K@2 M@3 N@2 O P Q R S T@2 U V W X Y@2 U Z O P AA O P AB AC AD K@2 L K@2
M@3 N@2 O P AB AC D AE AF@2
>`.pickRestart({
A: "~@8 f#2 e2 d2 e2 d2 c#2 d2 c#2",
B: "[b1 a1@2 c#2 b1@2 b1 ~@2 b1@3 b1 ~@2 b1@3 b1 ~@2 b1 d2@2 b1 e2@3 b1@2 b1 ~]/2",
C: "~ b1@3 b1 ~@2 b1 f#2 e2 d2 e2 d2 c#2 d2 c#2", D: "b1 a1@3 f#2 e2 d2 e2 d2 c#2 d2 c#2 b1 a1@3",
E: "f#2 e2 d2 e2 d2 c#2 d2 c#2 b1 a1@3 b1@2 b1 ~", F: "~ b1@3 b1 ~@2 b1 b1@2 b1 ~@2 b1@3",
G: "[b1 b1@3 d2@9 d2@2 c#2@3 b1@3 f#1 a1@2 f#1 e2@3 b1@2 b1 ~]/2",
H: "[b1@2 b1@6 d2@18 d2@4 c#2@6 b1@6 f#1@2 a1@4 f#1@2 e2@6 e2@4 e2@2 f#1@6 ~ a1@3 f#1@2 ~ b1@4 b1@5 b1@2 ~ a1@4 ~ b1@2 ~@2]/3",
I: "[d2@6 b1@2 e2@4 e2@2 f#1@6 ~ a1@3 f#1@2 ~ b1@4 b1@5 b1@2 ~ a1@4 ~ b1@2 ~@2 d2@5 ~@3 e2@4 e2@2 f#1@6 ~ a1@3 f#1@2 ~ b1@4 a1@5 ~ a1@2 d2@4 ~@2 c#2@5 ~@2 a1@4 b1@4 b1@2 ~@4 b1@6 b1@2 ~@4 b1@6 b1@2 ~@4 b1@2 d2@4 b1@2 e2@6 b1@4 b1@2 ~@2]/5",
J: "b1 a1@2 c#2 b1@2 b1 ~@2 b1@3 b1 ~@2 b1", K: "[b1@2 b1 ~@2 b1@3 b1 b1@3 d2@9 d2@2 c#2@3 b1@3 f#1 a1@2]/2",
L: "f#1 e2@3 b1@2 b1 ~@2 b1@3 b1 ~@2 b1",
M: "[f#1@2 e2@6 e2@4 e2@2 f#1@6 ~ a1@3 f#1@2 ~ b1@4 b1@5 b1@2 ~ a1@4 ~ b1@2 ~@2 d2@6 b1@2 e2@4 e2@2 f#1@6 ~ a1@3 f#1@2 ~ b1@4 b1@5 b1@2 ~ a1@4 ~ b1@2 ~@2]/3",
N: "[d2@5 ~@3 e2@4 e2@2 f#1@6 ~ a1@3 f#1@2 ~ b1@4 a1@5 ~ a1@2 d2@4 ~@2 c#2@5 ~@2 a1@4 b1@4 b1@2 ~@2]/2",
O: "~ b1@3 b1 ~@2 b1@3 b1 ~@2 b1 d2@2", P: "b1 e2@3 b1@2 b1 ~@2 b1@3 b1 ~@2 b1",
Q: "f#2 e2 d2 e2 d2 c#2 d2 c#2 b1 a1@2 c#2 f#1@2 f#1 ~", R: "f#2@2 c#2@3 f#2@3 d2@2 d2 ~ a1@2 d2@2",
S: "~ e2@3 f#1@2 f#1 ~ f#2@2 c#2@3 f#2@3",
T: "[d2@2 d2 ~ a1@2 d2@3 e2@3 f#2@2 f#2 c#2@3 e2@3 f#2@3 e2@2 e2 b1@3 d#2@2]/2", U: "~ e2@3 d2@2 d2 a1@3 f#2@3 e2@3",
V: "d2@3 e2@3 f#2@3 g#2@3 g#1@2 g#1 ~", W: "g#2@2 d#2@3 g#2@3 e2@2 e2 ~ b1@2 e2@2",
X: "~ f#2@3 g#1@2 g#1 ~ g#2@2 d#2@3 g#2@3",
Y: "[e2@2 e2 ~ b1@2 e2@3 f#2@3 f#2@2 f#2 c#2@3 e2@3 f#2@3 e2@2 e2 b1@3 d#2@2]/2",
Z: "d2@3 e2@3 f#2@3 g#2@3 b1@2 b1 ~", AA: "f#2 e2 d2 e2 d2 c#2 d2 c#2 b1 a1@2 c#2 b1@2 b1 ~",
AB: "f#2 e2 d2 e2 d2 c#2 d2 c#2 b1 a1@3 f#2 e2 d2 e2", AC: "d2 c#2 d2 c#2 b1 a1@3 f#2 e2 d2 e2 d2 c#2 d2 c#2",
AD: "b1 a1@3 b1@2 b1 ~@2 b1@3 b1 ~@2 b1", AE: "b1!4 a1 f#1 b1!4 a1 f#1 b1!4",
AF: "[a1 f#1 b1!4 a1 f#1 b1@12 b1@2 ~@10]/2",
})).s("gm_electric_bass_pick").gain(0.64)
// other · distortion guitar · "Dat Guitar"
const distortion_guitar_2 = note("<~@27 [~@2 f#4@2 f#4@4 d#4@3 c#4@5] ~@46>")
.s("gm_distortion_guitar").gain(0.64).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
A B C D B C E F G H I J H I C K I L M N C D B C K O C P I L K Q L H N R S T U V W X S T U V W X H N R H N Y Z B C K O
C P I L K Q L H N AA AB H AC AD AE
>`.pickRestart({
A: "~@8 x ~@2 x ~@2 x ~", B: "~ x ~@2 x ~@4 x ~@2 x ~@2 x", C: "~@2 x ~@2 x ~@6 x ~@3",
D: "~ x ~@2 x ~@2 x!2 ~@2 x ~@2 x ~", E: "~ x ~@2 x ~@2 x ~@6 x ~", F: "~ x ~@8 x ~@2 x ~@2",
G: "~@6 x ~@2 x ~@2 x ~@3", H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", I: "~@8 x ~@12 x ~@3 x ~@4 x ~",
J: "~@2 x ~@2 x!2 ~ x ~@3 x ~@3", K: "~@5 x ~@3 x ~@4 x ~@5 x ~@5 x ~ x ~@3", L: "~@2 x ~@2 x!2 ~@5 x ~@3",
M: "~@5 x ~@3 x ~@5 x ~@4 x ~@5 x ~ x ~@3", N: "~@4 x ~@4 x ~@2 x ~@2 x", O: "x ~@3 x ~@4 x ~@2 x ~@2 x",
P: "~@5 x ~@3 x ~@4 x ~@5 x ~@5 x ~@5", Q: "~@8 x ~@12 x ~@3 x ~@5 x", R: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
S: "~@3 x ~@12 x ~@10 x ~@4", T: "~@8 x ~@10 x ~@12", U: "x ~@10 x ~@12 x ~@7", V: "~@4 x ~@11 x ~@4 x ~@6 x ~@3",
W: "~@2 x ~@2 x ~@2", X: "~@6 x ~@2 x ~@8 x ~@5 x ~@7", Y: "~@6 x ~@2 x ~@6", Z: "~@2 x ~@2 x ~@8 x ~",
AA: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", AB: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", AC: "x ~@2 x ~@2 x ~",
AD: "~ x ~@2 x ~@3", AE: "~ x ~@2",
})).gain(0.52)
// drums · snare
const snare = s("sd").struct(`<
A B C D B C D E F G H I G H J K L M K N C D B C K O C P Q M K L M G R S T U V W X Y T U V W X Z G R AA G R AB A AC C K
O C P Q M K L M G R AB A E ~ AD AE
>`.pickRestart({
A: "~@8 x!3 ~@5", B: "~@7 x ~@5 x ~@2", C: "~@3 x ~@2 x ~@2 x ~ x ~@3 x", D: "~@5 x ~@2 x!3 ~@5", E: "~@4 x!3 ~@9",
F: "x!3 ~@8 x ~@3 x", G: "~@5 x ~@5 x ~@2 x ~", H: "~@2 x ~@3 x ~@7 x ~@12 x ~@4", I: "~@9 x ~@5 x",
J: "~@12 x!2 ~ x ~ x ~ x ~@10 x ~", K: "~@11 x ~@20", L: "x ~@13 x ~@12 x ~@4", M: "~@8 x ~@6 x",
N: "x ~@6 x ~@5 x ~@2", O: "~ x ~@5 x ~@5 x ~@2", P: "~@11 x ~@16 x!2 ~ x", Q: "~ x ~ x ~@10 x ~@12 x ~@4",
R: "~ x ~ x ~@3 x ~@5 x ~@2", S: "x ~ x ~ x ~@26 x", T: "~@11 x ~@11 x ~@8", U: "~@3 x ~@11 x ~@11 x ~@4",
V: "~@7 x ~@11 x ~@11 x", W: "~@10 x ~@12 x ~@8", X: "~@2 x ~@12 x ~@10 x ~@5", Y: "x!2 ~@2 x ~@26 x",
Z: "x!2 ~@2 x ~@25 x ~", AA: "x!3 ~@12 x", AB: "x!3 ~@9 x!3 ~", AC: "~@3 x ~@3 x ~@5 x ~@2", AD: "~@12 x!3 ~",
AE: "x ~@3 x!2 ~@26",
})).gain(0.52)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C A B C ~ D E F G E F H I J H I A B C A K I L K I J H I J M E L N O P Q R S T O P Q R S U E L D E L ~@2 A K I L
K I J H I J M E L ~@6
>`.pickRestart({
A: "~@6 x!2 ~ x ~@2 x!2 ~ x", B: "~@2 x ~@2 x ~@2 x ~@5 x!2", C: "~ x ~@2 x!2 ~ x ~@8", D: "~@14 x!2",
E: "~ x ~@2 x!2 ~ x ~@2 x ~@2 x ~@2", F: "x ~@15 x ~@2 x ~@5 x ~@6", G: "~@7 x ~@2 x ~@5 x ~@11 x ~ x ~",
H: "~@7 x ~@2 x ~@21", I: "x ~@2 x ~@5 x ~@13 x ~@2 x ~@5", J: "~@16 x ~@2 x ~@5 x ~@6", K: "~@2 x ~@2 x ~@2 x ~@7",
L: "x ~@5 x!2 ~ x ~@2 x!2 ~ x", M: "~@7 x ~@2 x ~@17 x ~ x ~", N: "~@29 x ~@2", O: "~@21 x ~@10", P: "~@13 x ~@18",
Q: "~@5 x ~@23 x ~@2", R: "~@21 x ~@9 x", S: "~@13 x ~@9 x ~@8", T: "x ~@3 x ~@6 x ~ x ~ x ~@13 x ~@2",
U: "x ~@3 x ~@6 x ~ x ~ x ~@12 x ~ x ~",
})).gain(0.52)
// drums · low tom
const low_tom = s("lt").struct("<~@14 A ~@13 B ~@32 B ~@10 C ~>".pickRestart({
A: "~@21 x ~ x ~@8", B: "~@5 x ~ x ~@24", C: "~@10 x ~ x ~ x ~@3 x!6 ~@6 x ~",
})).gain(0.52)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~ A ~@2 A ~@2 B C ~@2 D ~@2 D E ~ D E A ~@2 A ~ E ~@2 E ~ D E ~ F ~@2 G ~@14 G ~@2 H I J ~ E ~@2 E ~ D E ~ F ~@2 G K L
M N O
>`.pickRestart({
A: "~ x!3 ~@12", B: "~@2 x!2 ~@10 x!2", C: "~@5 x ~@2", D: "~@7 x ~@24", E: "~@23 x ~@8",
F: "~@7 x ~@10 x ~ x ~ x ~@9", G: "~@9 x!3 ~@4", H: "~@10 x!2 ~@4", I: "~@6 x!2 ~@8", J: "~ x ~@6", K: "~@5 x!3 ~@8",
L: "~ x!3 ~@9 x!3", M: "~@9 x!3 ~ x!3", N: "x!2 ~ x!2 ~@11", O: "~ x ~ x ~@12",
})).gain(0.52)
// drums · open hat
const open_hat = s("oh").struct(`<
~ A B C A B C ~ D E F G E F H I F J I A B C A K I A K L F J I F G E A M N O P Q R S N O P Q R T E A ~ E A ~@2 U K I A
K L F J I F G E A ~@6
>`.pickRestart({
A: "~@5 x ~@2", B: "x ~@2 x ~@2 x ~@9", C: "~ x ~@6", D: "~@11 x ~@4", E: "~@2 x ~@5 x ~@2 x ~@2 x ~",
F: "~@14 x ~@6 x ~@5 x ~@4", G: "~@3 x ~@4", H: "~@15 x", I: "~@5 x ~@5 x ~@16 x ~@3", J: "~@6 x ~@8 x",
K: "x ~@2 x ~@2 x ~@8 x", L: "~@5 x ~@5 x ~@20", M: "~@31 x", N: "~@5 x ~@5 x ~@11 x ~@5 x ~@2",
O: "~@3 x ~@4 x ~@6 x ~@5 x ~@5 x ~@4", P: "x ~@6 x ~@5 x ~@5 x ~@11 x", Q: "~@4 x ~@5 x ~@12 x ~@4 x ~@3",
R: "~@2 x ~@2 x ~@2 x ~@6 x ~@4 x ~@5 x ~@5", S: "~@6 x ~@11 x ~@12 x", T: "~@3 x ~@5 x ~@6", U: "~@3 x ~@6 x ~@5",
})).gain(0.52)
// drums · high tom
const high_tom = s("ht").struct(`<
A B ~ A B ~ A C D ~@7 E ~@4 A B ~@6 F ~@5 D ~@14 D ~@2 G H B ~@6 F ~@5 G H C I ~@2
>`.pickRestart({
A: "~@11 x!5", B: "x", C: "x ~@6 x!6 ~@3", D: "~@3 x!6 ~@7", E: "~ x!3 ~@12", F: "~@9 x!3 ~@4", G: "~@3 x!6 ~@6 x",
H: "x!5 ~@6 x!5", I: "~ x!5 ~ x!2 ~@7",
})).gain(0.52)
// drums · crash
const crash = s("cr").struct(`<
~ A B ~ A B C D E ~ F G ~ F H I J K L M B ~ A B I N B I O K I P K ~ N Q R ~ Q R ~ Q R ~ Q R ~ Q ~ N Q ~ N S T N B I N
B I O K I P K ~ N ~@3 U V A
>`.pickRestart({
A: "~ x ~@2", B: "~@9 x ~@2 x ~@3", C: "~@7 x", D: "~ x ~@8 x ~@2 x ~@2", E: "~@6 x ~@2 x ~@2 x ~@3",
F: "~ x ~@2 x ~@10 x", G: "~@2 x ~@6 x ~@2 x ~@3", H: "~ x ~@4 x ~", I: "~@7 x ~@2 x ~@5", J: "x ~@3 x ~@10 x",
K: "~ x ~@2 x ~ x ~", L: "~@15 x ~@4 x ~@11", M: "x!2 ~@2", N: "~ x ~@2 x ~@11", O: "~@4 x ~@10 x",
P: "x ~@7 x ~@22 x", Q: "~@3 x", R: "~ x", S: "~@6 x ~@2 x ~@6", T: "~@2 x ~@2 x ~@8 x ~", U: "x ~@2 x ~@2 x ~",
V: "~ x ~@2 x ~@3",
})).gain(0.66)
// … 4 more lines
More by Uriah Heep
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.