0:00/0:00
// Rock'n Me — Steve Miller Band
// 117 bpm, 4/4, key B major. Source: mcgill + 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: duplicate parts dropped: ch 3 electric guitar clean (copy of ch 1 electric guitar muted); ch 6 acoustic bass (copy of ch 2 electric bass finger)
// note: Full arrangement: all 95 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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 · electric guitar muted
const electric_guitar_muted = note(`<
A B C@2 D E@2 F@4 G H I@2 J@2 K@2 L@2 M N O P Q R S T U V W X Y@5 Z@3 AA AB AC AD AE AF AG AH@8 AI@5 AJ AK AL AM AN AO
AP AQ AR AS AT AU AV AW AX AY AZ BA AF BB BC@7 BD@2 BE BF BG BH ~
>`.pickRestart({
A: "~@15 [e3,a3] ~ [e3,a3]@5 ~ [b2,f#3,b3]@7 [a#2,e3,f3,a#3] ~, ~@15 a2@7 ~@10", // A5 B5 A#
B: "~@6 [b2,f#3] ~ b3 [b3,e4]@2 ~ [b2,f#3,b3]@4, ~@8 e3@3 ~@5, ~@16 e4 ~@15", // B5 E5 B5
C: "[~@25 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 ~ g#3@2 ~@2 f#3@2 g#3@2 [b3,e4]@2 ~@2 [b2,f#3,b3]@4 f3 ~, ~@25 b3@4 [b3,e4]@6 [b3,e4]@6 [b3,e4]@6 ~ [b3,e4]@6 ~@10]/2", // E5 B5 E5
D: "~@19 [a2,e3,a3] ~ [a2,e3,a3]@4 ~@2 [b2,f#3,b3]@5", // A5 B5
E: "[[f3,a#3] [a2,a#2,e3,a3] g#2 ~@13 [b2,f#3]@2 ~@2 e4 ~ b3@4 ~@2 [b2,f#3,b3]@7 [a#2,e3,f3,a#3] ~@24 f#3@2 g#3@2, ~@19 e3@6 ~@39, ~@19 b3@2 e4@4 ~@35 b3@4]/2", // A#5 A B5 A#
F: "[~@3 f#3@2 ~@3 f#3@3 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 [b3,e4]@2 ~@2 [b2,f#3,b3]@6 [a#2,f3] ~@14 a2 ~@3 e3@2 [e3,a3]@4 ~@2 [b2,f#3,b3]@6 [a#2,f3,a#3] ~@14 f#3 ~@3 [b3,e4]@2 [b3,e4]@4 ~@2 [b2,f#3,b3]@5 ~@28, e4@5 g#3@2 b3@6 [b3,e4]@6 [b3,e4]@6 ~@29 a2@6 ~@22 b2@2 ~@3 e3@6 ~@35, ~ b3@5 e4@6 ~@42 a3 ~@73]/4", // E5 B5 A#5 A5 B5 A#5 E5 B5 …
G: "~@2 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 b3@2 f#3@2 g#3@2 ~ e4@3, [f#3,b3]@2 b3@6 [b3,e4]@3 ~ b3@3 ~, ~@4 e4@6 e4@5 ~@7 e4@7 ~@3", // B5 E5
H: "~ f#2@4 a2@4 b2@4 d3@6 ~@2 a2@3 ~ a#2@6 ~",
I: "[~@2 f#2@4 a2@4 b2@4 d3@5 ~@3 a2@4 ~@4 a#2@4 f#3@7 ~ [b2,g#3]@3 ~ b2@4 b2@3 ~ b2@3 ~ [b2,g#3]@3 ~@3, ~@34 b2@3 ~@13 f#3@7 ~@7]/2", // E
J: "[~@2 f#3@7 ~@2 [b2,g#3]@3 b2@4 ~ b2@4 b2@3 ~ [b2,g#3]@4 b2@3 ~ a2@4 a2@2 ~@2 [a2,f#3]@4 ~@4 a2@4 a2@4 [a2,f#3]@4 ~, ~@2 b2@3 ~@14 f#3@7 ~@9 e3@7 ~@9 e3@7 ~@6]/2", // E D
K: "[~@3 [a2,e3]@7 ~ [a2,f#3]@4 a2@4 a2@4 a2@3 ~ [a2,f#3]@4 a2@3 ~ [e2,b2]@4 e2@4 ~ c#3@3 ~@5 [e2,b2]@4 e2@3 ~ [e2,c#3]@4, ~@19 e3@7 ~@17 e2@4 ~@17]/2", // A5 D E5 C#m
L: "[~@4 [e2,b2]@4 e2@4 [e2,c#3]@4 e2@3 ~ [e2,b2]@4 [e2,b2]@3 ~ e2@8 b2@4 b2@3 ~ [b2,g#3]@4 b2@4 b2@3 ~ b2@3 ~ [b2,g#3]@4, ~@8 b2@2 ~@18 c#3@3 ~@5 f#3@7 ~@9 f#3@7 ~@5]/2", // E5 C#m E5 E
M: "b2@3 ~ [b2,f#3]@4 b2@3 ~ [b2,g#3]@4 b2@4 b2@4 b2@3 ~ [b2,g#3]@4, ~@20 f#3@7 ~@5", // B5 E
N: "b2@3 ~ [b2,f#3]@4 ~ f#3@3 ~ g#3@3 ~ b2@3 ~ f#3@4 b2@3 ~ g#3@3, ~@8 b2@3 ~ b2@4 ~@4 b2@3 ~@5 b2@4", // B5
O: "b2@3 ~@2 f#3@3 b2@3 ~@2 g#3@3 b2@3 ~ [b2,f#3]@4 ~ f#3@3 ~ g#3@3, ~ b2 ~ b2 ~@2 b2!2", // B5
P: "f#3@4 a2@3 ~ a2@3 ~@2 f#3@4 a2@3 ~ e3@3 ~ e3@3 ~ [a2,f#3]@3, b2@2 ~@2 e3@8 a2@4 ~@4 a2@4 a2@3 ~@5", // D
Q: "~ a2@3 ~ e3@3 a2@4 ~ f#3@3 a2@4 a2@4 a2@4 [a2,f#3]@4, ~@4 a2@4 ~@4 a2@4 ~@4 e3@7 ~@5", // D
R: "~ f#3@3 ~ b2@3 e2@4 ~ [e2,c#3]@3 ~ e2@3 ~ [e2,b2]@4 [e2,b2]@4 [e2,c#3]@3, a2 e2 ~@6", // C#m E5 C#m
S: "~ e2@4 [e2,b2]@4 [e2,b2]@4 [e2,c#3]@4 e2@3 ~ b2@4 [e2,b2]@4 [e2,c#3]@3, ~@5 e2 ~@2", // E5 C#m E5 C#m
T: "~ e2@3 ~ f#3@3 ~ f#3@3 ~ g#3@3 ~ b2@3 ~@5 b2@3 ~ [b2,g#3]@3, ~@4 b2@4 b2@3 ~ b2@4 ~@4 b2@4 ~@8, ~@21 f#3@7 ~@4", // E
U: "~ b2@3 ~@5 b2@3 ~ g#3@3 ~ b2@3 [b2,f#3]@4 ~ f#3@3 [b2,g#3]@4, ~ b2 ~ b2 ~@2 b2 ~, ~@5 f#3@7 ~@20", // B5 E
V: "b2@3 ~ b2@8 [b2,g#3]@4 b2@4 b2@4 b2@4 [b2,g#3]@4, ~@4 f#3@4 ~@12 f#3@7 ~@5", // E
W: "[b2,f#3]@4 [b2,f#3]@4 [b2,f#3]@4 b2@4 [b2,a3]@7 ~ [b2,a3]@4 [b2,g#3]@4, ~@6 g#3 ~@9", // B5 B7 E
X: "[b2,g#3]@3 ~ [a2,e3]@3 ~ a2@4 [a2,f#3]@4 a2@3 ~ a2@3 a2@4 ~ [a2,f#3]@4, ~@20 e3@7 ~@5", // E A5 D
Y: "[a2@3 ~ e3@3 [a2,e3]@4 [a2,f#3]@4 ~ g3@7 [a2,g3]@4 ~ f#3@3 ~ f#3@3 ~ b2@3 ~@4 e2@7 ~ [e2,b2]@4 ~@4 e2@8 [e2,b2]@4 [e2,b2]@3 ~ [e2,c#3]@4 [e2,d3]@8 [e2,d3]@4 [e2,c#3]@4 [e2,c#3]@3 ~ [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 b2@3 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 b2@4 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 ~@2 a3@4 a3@2 a3@2 [b2,a3]@2 [b2,g#3]@4 [b2,g#3]@2, ~@3 a2@4 ~@8 a2@8 ~@4 a2@4 a2@4 e2@7 ~ c#3@3 ~@13 c#3@3 ~@80 b2@6 b2@4 ~@8]/5", // A5 D A7 E5 C#m E7 C#m B5 …
Z: "[~@2 [b2,f#3]@4 [b2,f#3]@3 ~ [b2,g#3]@3 ~ b2@3 ~ [b2,f#3]@4 b2@3 ~ [b2,g#3]@4 b2@4 [b2,f#3]@4 b2@3 ~ [b2,g#3]@4 b2@3 ~ [b2,f#3]@4 [b2,f#3]@3 ~ g#3@3 ~ f#3@3 ~@4 a2@3 ~@2 f#3@4 a2@3 ~ e3@3 ~ e3@3 ~ f#3@2 ~ a2@3, ~@57 b2@4 b2@2 ~@2 a2@3 ~@5 a2@4 ~@4 a2@3 ~ a2@3 ~ a2@3 ~@4, ~@33 e3@4 ~@11]/3", // B5 E B5 E B5 E B5
AA: "~ [a2,e3]@4 a2@4 [a2,f#3]@4 a2@4 a2@4 a2@3 ~ [a2,f#3]@4 [a2,f#3]@3, ~@17 e3@7 ~@8", // A5 D
AB: "~ [e2,b2]@4 e2@4 [e2,c#3]@3 ~ e2@3 ~ [e2,b2]@4 [e2,b2]@4 [e2,c#3]@4 e2@3", // E5 C#m E5 C#m
AC: "~ [e2,b2]@4 [e2,b2]@4 [e2,c#3]@4 e2@4 [e2,b2]@4 [e2,b2]@4 [e2,c#3]@3 ~ e2@3", // E5 C#m E5 C#m
AD: "~ f#3@3 ~ f#3@3 ~ g#3@3 b2@3 ~@5 b2@3 ~ [b2,g#3]@3 ~ b2@3 ~, b2@4 b2@3 ~ b2@3 ~@5 b2@4 ~@12, ~@17 f#3@7 ~@8", // E
AE: "b2@3 ~ b2@3 ~ [b2,g#3]@4 b2@3 ~ [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 b2@3 ~, f#3@7 ~@25", // E B5 E
AF: "b2@2 [b2,g#3] b2!3 [b2,g#3] [b2,f#3], f#3@4 ~@12 f#3@7 ~@9", // E B5
AG: "[b2,f#3]@3 ~ f#3@3 ~ g#3@2 ~@2 a3@7 [b2,a3]@4 [b2,g#3]@4 [b2,g#3]@3 ~ a2, ~@3 b2@4 b2@4 b2@7 ~@14", // B5 B7 E
AH: "[e3@3 a2@4 [a2,f#3]@4 a2@3 ~@5 a2@4 [a2,f#3]@4 a2@4 [a2,e3]@4 [a2,e3]@4 [a2,f#3]@4 [a2,g3]@8 [a2,g3]@4 [a2,f#3]@4 [a2,f#3]@4 e2@7 ~ e2@7 ~ [e2,b2]@4 ~@4 e2@8 [e2,b2]@4 [e2,b2]@3 ~ c#3@3 [e2,d3]@8 [e2,d3]@4 [e2,c#3]@4 ~ [e2,c#3]@3 ~ [b2,f#3]@3 [b2,f#3]@4 [b2,g#3]@4 b2@4 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 b2@4 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 ~@2 a3@4 a3@2 a3@2 [b2,a3]@2 [e3,a3] ~ [e3,a3]@5 ~ b3@6 [a#2,e3,f3,a#3] ~@13 [b2,f#3]@2 ~@2 b3@2 [b3,e4]@4 ~@2 [b2,f#3,b3]@8 ~@24 [f#3,b3]@2, ~@15 a2@4 ~@44 b2@3 ~@5 c#3@3 ~@13 c#3@3 ~@12 e2@4 ~@108 e4 ~@41, ~@16 e3@7 ~@147 b2@6 b2@4 ~@2 a2@7 [b2,f#3]@7 ~@18 e3@6 ~@36]/8", // D A5 D A7 D E5 E7 C#m …
AI: "[g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 g#3@2 ~ b3@2 ~@2 [b2,f#3,b3]@4 f3 ~@19 [a2,e3,a3] ~ [a2,e3,a3]@4 ~@2 [b2,f#3,b3]@5 [f3,a#3] [a2,a#2,e3,a3] g#2 ~@12 [b2,f#3]@2 ~@2 b3@2 [b3,e4]@4 ~@2 [b2,f#3,b3]@7 [f3,a#3] [a#2,e3] ~@23 f#3@2 g#3@2 ~@4 g#3@2 ~@2 f#3@2 g#3@2 ~@2 f#3@2 ~ g#3@2 ~ f#3@2 g#3@2 ~ [b3,e4]@2 ~@2, ~@2 [b3,e4]@6 [b3,e4]@6 [b3,e4]@6 e4@6 e4@2 ~@59 e4 ~@39 b3@4 e4@5 ~@7 e4@6 ~@11, ~@21 b3@5 ~@61 e3@6 ~@39 b3@5 [b3,e4]@6 ~ b3@6 [b3,e4]@6 ~@4, ~@67 f#3 ~@12]/5", // B5 A5 B5 A#5 A B5 E5 B5 …
AJ: "f#2@4 a2@3 ~ b2@4 d3@8 a2@3 ~ a#2@6 ~@2", AK: "f#2@4 a2@4 b2@4 d3@7 ~ a2@4 ~@4 a#2@4",
AL: "f#3@7 ~ [b2,g#3]@3 ~ b2@4 b2@3 ~ b2@3 ~ [b2,g#3]@3 ~@5, b2@3 ~@13 f#3@7 ~@9", // E
AM: "f#3@7 ~ [b2,g#3]@4 b2@4 b2@4 b2@3 ~ [b2,g#3]@4 b2@3 ~, b2@3 ~@13 f#3@7 ~@9", // E
AN: "a2@2 a2 ~ [a2,f#3]@2 ~@2 a2@2 a2@2 [a2,f#3]@2 ~@2, e3@7 ~@9 e3@7 ~@9", // D
AO: "[a2,e3]@7 ~ [a2,f#3]@4 a2@4 a2@4 a2@3 ~ [a2,f#3]@4 a2@3 ~, ~@16 e3@7 ~@9", // A5 D
AP: "[e2,b2]@4 e2@4 [e2,c#3]@4 ~@4 [e2,b2]@4 e2@3 ~ [e2,c#3]@4 ~@4", // E5 C#m E5 C#m
AQ: "[e2,b2]@4 e2@4 [e2,c#3]@4 e2@3 ~ [e2,b2]@4 [e2,b2]@3 ~ e2@8, ~@4 b2@2 ~@18 c#3@3 ~@5", // E5 C#m E5
AR: "b2@4 b2@3 ~ [b2,g#3]@4 b2@4 b2@3 ~ b2@3 ~ [b2,g#3]@4 b2@3 ~, f#3@7 ~@9 f#3@7 ~@9", // E
AS: "[b2,f#3]@4 b2@3 ~ [b2,g#3]@4 b2@4 b2@4 b2@3 ~ [b2,g#3]@4 b2@4, ~@16 f#3@7 ~@9", // B5 E
AT: "[b2,f#3]@4 [b2,f#3]@3 ~ [b2,g#3]@4 b2@3 ~ [b2,f#3]@4 b2@3 ~ [b2,g#3]@4 b2@4", // B5 E B5 E
AU: "[b2,f#3]@4 b2@3 ~ [b2,g#3]@4 b2@4 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 f#3@4, ~@14 b2 ~", // B5 E B5 E
AV: "a2@3 ~ a2@3 ~ [a2,f#3]@4 a2@3 ~ [a2,e3]@4 [a2,e3]@3 ~ [a2,f#3]@3 ~ a2@3 ~, e3 ~@3", // D A5 D
AW: "[a2,e3] a2 [a2,f#3] a2!3 [a2,f#3]!2, ~@16 e3@7 ~@9", // A5 D
AX: "[e2,b2]@4 e2@4 [e2,c#3]@3 ~ e2@3 ~ [e2,b2]@4 [e2,b2]@4 [e2,c#3]@4 e2@4", // E5 C#m E5 C#m
AY: "[e2,b2]!2 [e2,c#3] e2 [e2,b2]!2 [e2,c#3] e2", // E5 C#m E5 C#m
AZ: "[b2,f#3]@4 [b2,f#3]@3 ~ [b2,g#3]@4 b2@3 ~ b2@4 b2@3 ~ [b2,g#3]@3 ~ b2@3 ~, ~@16 f#3@7 ~@9", // B5 E
BA: "b2@4 b2@3 ~ [b2,g#3]@4 b2@3 ~ [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 b2@3 ~, f#3@7 ~@25", // E B5 E
BB: "[b2,f#3]@4 [b2,f#3]@3 ~ g#3@2 ~@2 [b2,a3]@7 [b2,a3]@4 [b2,g#3]@4 [b2,g#3]@3 ~ a2, ~@7 b2@4 ~@21", // B5 B7 E
BC: "[e3@3 a2@4 [a2,f#3]@4 a2@3 ~@5 a2@4 [a2,f#3]@4 a2@4 [a2,e3]@4 [a2,e3]@4 [a2,f#3]@4 [a2,g3]@8 [a2,g3]@4 [a2,f#3]@4 [a2,f#3]@4 e2@7 ~ e2@7 ~ [e2,b2]@4 ~@4 e2@8 [e2,b2]@4 [e2,b2]@3 ~ c#3@3 ~ [e2,d3]@7 [e2,d3]@4 [e2,c#3]@4 ~ [e2,c#3]@3 ~ [b2,f#3]@3 [b2,f#3]@4 [b2,g#3]@4 b2@4 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 b2@4 [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 ~@2 a3@4 a3@2 a3@2 [b2,a3]@2 [b2,g#3]@4 [b2,g#3]@3 ~ [b2,f#3]@4 [b2,f#3]@3 ~ [b2,g#3]@3 ~ b2@3 ~ [b2,f#3]@4 b2@3 ~ [b2,g#3]@3 b2@3 ~@2 f#3@2, ~@15 a2@4 ~@44 b2@3 ~@5 c#3@3 ~@13 c#3@3 ~@12 e2@4 ~@118, ~@16 e3@7 ~@147 b2@6 b2@4 ~@41 b2@3]/7", // D A5 D A7 D E5 E7 C#m …
BD: "[~ b2@3 ~@2 g#3@3 b2@3 ~ [b2,f#3]@4 [b2,f#3]@4 [b2,g#3]@4 f#3@4 a2@3 ~ a2@3 ~ [a2,f#3]@4 a2@2 ~@2 [a2,e3]@4 [a2,e3]@3 ~ [a2,f#3]@3 ~ a2@3 ~ [a2,e3]@3, ~@5 b2@4 ~@16 b2@2 ~@2 e3@8 ~@27]/2", // B5 E D A5 D A5
BE: "~ a2@4 [a2,f#3]@4 a2@4 a2@4 a2@3 ~ [a2,f#3]@4 [a2,f#3]@3 ~ [e2,b2]@3, ~@13 e3@7 ~@12", // D E5
BF: "~ e2@4 [e2,c#3]@3 ~ e2@3 ~ [e2,b2]@4 [e2,b2]@4 [e2,c#3]@4 e2@4 [e2,b2]@3", // C#m E5 C#m E5
BG: "~ [e2,b2]@3 ~ c#3@3 e2@4 [e2,b2]@4 [e2,b2]@4 [e2,c#3]@3 ~ e2@4 [b2,f#3]@4, ~ e2 ~@6", // E5 C#m B5
BH: "[b2,f#3]@3 ~ [b2,g#3]@3 ~ b2@3 ~ b2@4 b2@3 ~ [b2,g#3]@3 ~ b2@3 ~@5, ~@12 f#3@7 ~@13", // B5 E
})).s("gm_electric_guitar_muted").gain(0.36).pan(0.3)
// chords · electric guitar muted · soft notes
const electric_guitar_muted_2 = note(`<
A ~@2 B C ~ D ~ E ~ F ~@3 G@4 H ~@2 I J K L M ~ N O ~ I ~ P ~ Q R S ~ T@2 U V W X ~@2 Y ~ Z ~ AA ~ AB ~ AC ~@2 AD ~ AE
~@3 AF AG AH ~ AI ~@2 AJ AK AL AM AN AO AP ~@2 Y ~ Z ~ AA ~ AB ~ AQ AR AS AT AU AV ~@2
>`.pickRestart({
A: "~@30 [a2,d#3,a3] [g2,g#2]", B: "~@31 [a2,a#2,d#3,e3,a3,a#3]", C: "[g2,g#2,d3] ~@31",
D: "~@4 [g#2,a2,d3,d#3] ~@27", E: "~@4 [g#2,a2,d#3,e3] [g2,d3] ~@26", F: "~@4 [a#2,e3,f3,a#3] ~@27",
G: "[~@31 b2@2 ~@30 f#3@3 ~@13 a2@2 ~@14 [a2,e3]@4 ~@29]/4", H: "~@16 e2@3 ~@13", I: "~@8 f#3@3 ~@21",
J: "~ f#3@3 ~@21 f#3@3 ~@4", K: "~ f#3@4 ~@4 f#3@3 ~@5 f#3@3 ~@12", L: "~@17 e3@3 ~@12",
M: "~ e3@3 ~@5 e3@3 ~@5 e3@3 ~@12", N: "~ b2@2 ~@29", O: "~ b2@4 ~@27", P: "~@2 e3 ~@5", Q: "~@23 e2@3 ~@6",
R: "b2 ~@15", S: "~@15 f#3@3 ~@14", T: "[~@22 f#3@3 ~@5 f#3@4 ~@4 f#3@3 ~@5 f#3@3 ~@15]/2", U: "~@14 e3@3 ~@13 e3@2",
V: "~@5 e3@4 ~@4 e3@4 ~@15", W: "~@15 b2", X: "~@29 b2@3", Y: "~@4 f#3@3 ~@25", Z: "~@4 e3@3 ~@25",
AA: "~@19 e2@3 ~@5 b2@2 ~@3", AB: "~@5 f#3@2 ~@9", AC: "~@5 [g2,g#2,a2,d#3,a3] ~@26",
AD: "~@3 [a#2,a#3] [g2,g#2,a2,d3,d#3,e3,a3] ~@27", AE: "~@7 [g#2,a2,d3,d#3] ~@24", AF: "~@14 b2 ~",
AG: "~@28 f#3@3 ~", AH: "~@6 a2 ~@7 [a2,e3]@2", AI: "~@12 e2@3 ~@17", AJ: "~@4 f#3@3 ~@21 f#3@4",
AK: "~@20 f#3@3 ~@5 f#3@4", AL: "~@4 f#3@3 ~@5 f#3@4 ~@16", AM: "~@12 e3@3 ~@13 e3@3 ~", AN: "~ e3 ~ e3 ~@4",
AO: "~@29 b2@2 ~", AP: "~@7 b2", AQ: "~@18 f#3@3 ~@5 f#3@4 ~@2", AR: "~@2 f#3@3 ~@5 f#3@3 ~@19",
AS: "~@10 e3@3 ~@12 e3@3 ~@4", AT: "~ e3@4 ~@4 e3@4 ~@19", AU: "~@25 b2@2 ~@5", AV: "~@25 b2@3 ~@4",
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.3)
// bass · electric bass finger
const bass = note(`<
~@4 A B@2 C@4 D E F@5 G H I J K L M N O P Q R S T U V@5 W@4 X Y Z T AA AB AC@8 AD@4 AE AF AG AH AI AJ AK AL AM AI AN
AH AO AJ AP H AQ AR AS AH AT@6 AU@2 AV AW AX X AY AZ ~
>`.pickRestart({
A: "~@15 e1@4 b1@8 b1@5", B: "[~@2 g#1 ~@12 b1@2 ~@3 e2@2 e2@5 ~ b1@7 g#1 ~@24 e2@3 ~]/2",
C: "[e2@2 d#2@4 ~ e2@2 d#2@4 e2 ~ d#2@4 e2@2 d#2@4 e2@3 ~ b1@5 ~ g1 ~@18 e2@2 a1@6 b1@7 ~ g#1 ~@11 e1@4 ~ e1@2 e1@6 b1@6 g1 ~@26]/4",
D: "e1@4 e1@2 e1@4 e1@2 e1@4 e1@2 ~ e1@4 e1@2 e1@4 e1@3", E: "~ f#1@4 a1@4 b1@4 d2@7 ~@2 a1@3 a#1@7",
F: "[~@2 f#1@4 a1@4 b1@3 ~ d2@7 ~ a1@5 ~@3 a#1@4 b1@4 b1@4 b1@4 ~ b1@4 b1@4 b1@4 b1@4 b1@3 b1@4 b1@4 ~ b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~ a1@4 a1@4 a1@4 a1@3 ~ a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 ~]/5",
G: "a1@3 e1@4 ~ e1@4 e1@4 e1@4 e1@4 e1@4 e1@4", H: "e1!8", I: "e1@3 ~ b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4",
J: "b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 ~ b1@4 b1@3", K: "~ b1@3 b1@4 ~ b1@4 b1@4 b1@4 b1@4 b1@4 b1@3",
L: "~ b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@3", M: "~ e1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@3",
N: "~ a1@4 a1@3 a1@4 ~ a1@4 a1@3 d2@4 ~ a1@3 d2@4", O: "a1@3 ~@2 e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@3",
P: "~ e1@4 e1@4 e1@4 e1@4 e1@4 e1@3 e1@4 ~ e1@3", Q: "~ e1@3 ~ b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 b1@4",
R: "b1@4 ~ b1@3 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4", S: "b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~ b1@4 b1@4",
T: "b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~", U: "e1 a1!7",
V: "[a1@3 a1@3 ~ a1@4 d2@4 ~ a1@3 a1@4 a1@4 d2@4 a1@3 ~ e1@4 e1@4 e1@4 e1@4 e1@3 ~ e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@3 b1@4 ~ b1@4 b1@4 b1@4 b1@4 b1@3 b1@4 b1@4 b1@4 ~ b1@3 b1@4 b1@4 b1@4 b1@3 ~ b1@4 b1@2]/5",
W: "[~@2 a#1@4 b1@3 ~ b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~ e1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@3 a1@4 a1@4 a1@4 a1@4 a1@4 a1@3]/4",
X: "~ e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@3", Y: "~ e1@4 e1@4 e1@4 e1@4 e1@4 e1@4 e1@3 ~ e1@3",
Z: "~ b1@4 b1@4 b1@4 b1@4 b1@3 b1@4 b1@4 b1@4", AA: "a#1@8 b1@3 ~ b1@4 a#1@8 b1@3 b1@4 ~",
AB: "a#1@8 b1@3 b1@4 f#2@4 ~ g2@3 g#2@8 ~",
AC: "[a1@4 a1@3 a1@4 ~ a1@3 g#1@7 ~ a1@4 a1@3 ~ g#1@8 a1@4 a1@3 ~ e2@4 f2@4 f#2@8 e1@4 e1@3 ~ e1@4 e1@4 e1@4 e1@3 ~ e1@4 e1@4 e1@4 e1@4 e1@6 ~@2 b1@4 c2@4 c2@7 ~ b1@3 b1@4 b1@4 b1@4 b1@3 ~ b1@4 b1@8 b1@7 ~ f2@4 g2@4 g#2@4 b2@4 c#3@4 a1@4 b1@10 ~@10 b1@4 e1@2 e1@6 b1@7 g#1 ~@24 e2@2]/8",
AD: "[~@2 e2@2 d#2@4 e2@2 ~ d#2@6 d#2@4 e2@2 d#2@4 e2@3 ~ b1@6 g#1 ~@17 a1@8 b1@6 ~ g#1 ~@12 b1@4 e1@8 b1@7 g#1 ~@25]/4",
AE: "e1 e1@4 ~ e1@2 e1@3 e1@2 ~ e1@4 e1@2 e1@4 e1@4 e1@4", AF: "f#1@4 a1@3 ~ b1@4 d2@8 a1@3 ~ a#1@7 ~",
AG: "f#1@4 a1@3 ~ b1@4 d2@7 ~ a1@5 ~@3 a#1@4", AH: "b1!8", AI: "b1@4 b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~ b1@4",
AJ: "a1!8", AK: "a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@3 ~ a1@3 ~",
AL: "e1@3 ~ e1@4 e2@3 ~ e1@4 e2@3 ~ e1@4 d2@3 ~ b1@3 ~", AM: "e1@4 e1@4 e2@4 e1@4 e2@4 e1@3 d2@3 ~@2 b1@4",
AN: "b1@4 b1@4 b1@4 b1@3 ~ e2@4 b1@4 e2@4 b1@4", AO: "b1@3 ~ b1@4 b1@4 b1@4 e2@3 ~ b1@4 e2@4 b1@4",
AP: "a1@4 a1@4 a1@3 ~ a1@4 d2@4 a1@4 d2@4 a1@4", AQ: "e1@4 e1@4 e1@4 e1@4 e2@3 ~ e1@4 e2@4 e1@4",
AR: "b1@3 ~ b1@4 b1@4 b1@4 b1@3 ~ b1@4 b1@3 ~ b1@4", AS: "b1!4 e2 b1 e2 b1",
AT: "[b1@4 b1@4 b1@4 b1@4 e2@3 ~ b1@3 e2@4 b1@3 ~ a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 d2@3 ~ a1@4 d2@4 a1@3 ~ e1@4 e1@3 ~ e1@3 ~ e1@3 ~ e1@3 ~ e1@4 e1@3 e1@4 e1@4 e1@4 e1@4 e1@4 e2@3 ~@2 e1@3 e2@3 ~ e1@3 ~ b1@4 b1@4 b1@4 ~ b1@3 b1@4 b1@4 b1@4 b1@4 b1@2]/6",
AU: "[~@2 b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~ b1@3 ~ a#1@4 b1@4 b1@4 b1@4 b1@3 ~ b1@4 b1@4 b1@3 b1@3]/2",
AV: "~ b1@3 ~ e2@4 b1@4 e2@4 b1@3 ~ d2@3 ~ b1@3 ~ a1@3", AW: "~ a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@4 a1@3",
AX: "~ a1@4 a1@4 a1@4 d2@4 a1@3 d2@4 a1@4 ~ e1@3", AY: "e1@4 ~ e2@3 ~ e1@3 e2@4 e1@4 e2@3 ~ e1@3 ~ b1@4",
AZ: "b1@4 b1@4 b1@4 b1@4 b1@4 b1@3 ~ b1@4 ~@4",
})).s("gm_electric_bass_finger").gain(0.36)
// chords · piano
const piano = note("<~@30 A@2 B@5 ~@8 C D E@2 F@2 G@4 ~@2 H@3 ~ I@2 ~@15 J K L@2 M@6 N O P Q@2 R ~>".pickRestart({
A: "[~ [a3,c#4,f#4] [b3,d#4,f#4] [b3,d#4,g#4] [b3,d#4,f#4]@3 [b3,d#4,f#4]@2 ~@5 [a3,e4,g#4]!2]/2", // F#m B G#m B Amaj7
B: "[[a3,e4,g#4]@4 [a3,e4,f#4]@4 [b3,e4,g#4]@4 [b3,f#4,g#4]@4 [b3,e4,g#4]@12 [b3,e4,g#4]@8 ~@19 [a3,e4,f#4]@4 [a3,e4,f#4]@4 [a3,e4,f#4]@4 [a3,e4,f#4]@4 [b3,e4,g#4]@4 [c#4,e4,g#4]@4 [e4,g#4]@4 [f#4,a4]@4 [e4,g#4]@4 [b3,e4,g#4]@8 ~@20 [a3,d#4]@4 [a3,d#4]@4 [a3,d#4]@4 [a3,d#4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [d#4,f#4]@4 [e4,g#4]@3 [d#4,f#4]@4 [b3,d#4,f#4]@6, ~@79 b3@12 ~@52 b3@11 ~@6]/5", // Amaj7 F#m7 E G#m7 E F#m7 E C#m …
C: "~@5 [a3,c#4]!3", D: "[a3,c#4,f#4] [b3,d#4,f#4] [b3,d#4,g#4] [b3,d#4,f#4]@3 [b3,d#4,f#4]@2",
E: "[~@20 [a3,c#4,f#4]@3 [a3,c#4,f#4]@4 [a3,c#4,f#4]@4 [a3,c#4,e4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 d#4@4 d#4@4 d#4@4 [b3,d#4,f#4]@8 ~, ~@43 [b3,f#4]@12 ~@9]/2", // F#m A B B5
F: "[~@19 [a3,e4,g#4]@4 [a3,e4,f#4]@4 [a3,e4,f#4]@4 [a3,e4,f#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [e4,g#4]@4 [f#4,a4]@4 [e4,g#4]@4 [b3,e4,g#4]@8 ~, ~@43 b3@12 ~@9]/2", // Amaj7 F#m7 E F#m E
G: "[~@9 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [d#4,f#4]@2 [e4,g#4]@2 [d#4,f#4]@2 [b3,d#4,f#4]@4 [d4,f#4,a4]@2 [c#4,f4,g#4]@2 [d4,f#4,a4]@2 [c#4,f4,g#4]@2 [d4,f#4,a4]@2 [c#4,f4,g#4]@2 [b3,d#4]@2 [a3,c#4]@2 b3@2 b3@4 ~@11, ~@21 b3@6 ~@37]/4", // D#dim B D#m E D#m B D C# …
H: "[~@19 a4@4 g4@4 f#4@4 g4@4 a4@8 ~@8 [f#4,a4]@4 [e4,g#4]@4 [d4,f#4]@4 [e4,g#4]@8 [f#4,a4]@8 ~@17]/3", // F#m E D E F#m
I: "[d#5@12 [e4,b4]@12 [e4,g#4]@4 [d#4,f#4]@12 b3@4 a3@4 f#3@2 e3@2 d#3@11 ~]/2", J: "~@5 [a3,c#4,e4]!3",
K: "[a3,c#4,e4] [b3,d#4,f#4]!2 [b3,d#4,f#4]@3 [b3,d#4,f#4]@2", // A B
L: "[~@20 [a3,c#4,e4]@3 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@12 [b3,d#4,f#4]@8 ~]/2", // A B
M: "[~@19 [a3,e4,g#4]@4 [a3,e4,g#4]@4 [a3,e4,g#4]@4 [a3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@8 [c#4,f#4,a4]@2 [b3,e4,g#4]@2 [a3,d4,f#4]@4 [g#3,c#4,e4]@8 ~@15 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [a3,c#4,e4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [a3,c#4,e4]@4 [b3,d#4,f#4]@4 [d4,f#4,a4]@4 [c#4,f4,g#4]@4 [d4,f#4,a4]@4 [c#4,f4,g#4]@4 [d4,f#4,a4]@4 [c#4,f4,g#4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@12 [b3,d#4,f#4]@8 ~@2]/6", // Amaj7 E F#m E D C#m A B …
N: "~@17 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@3", // A
O: "~ [b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@12 [b3,d#4,f#4]@8 ~@3", // B
P: "~@17 [a3,e4,g#4]@4 [a3,e4,g#4]@4 [a3,e4,g#4]@4 [a3,e4,g#4]@3", // Amaj7
Q: "[~ [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@8 [c#4,f#4,a4]@2 [b3,e4,g#4]@2 [a3,d4,f#4]@3 [g#3,c#4,e4]@12 ~@12 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4 [a3,c#4,e4]@4]/2", // E F#m E D C#m A
R: "[b3,d#4,f#4]!2 [a3,c#4,e4] [b3,d#4,f#4]!2 [a3,c#4,e4] [b3,d#4,f#4] ~", // B A B A B
})).s("gm_piano").gain(0.28)
// drums · kick
const kick = s("bd").struct(`<
~ A B C D E F G H I ~ J K L M N O@2 P Q@3 R S T S T S T S Q@3 U O@3 V@3 W X@2 Y Z AA@2 AB AC@3 AD@2 AE H AF AG AH I AH
AI AJ AK AL AJ AA@15 AM AN AC@2 AO AD@3 AP@4 AQ AR ~
>`.pickRestart({
A: "~@3 x ~ x!2 ~", B: "~@21 x ~@3 x ~@6", C: "~@7 x ~@5 x ~@2", D: "~@27 x ~@4", E: "~@23 x ~@4 x ~@3", F: "~@7 x",
G: "~@25 x ~@3 x ~@2", H: "~@9 x ~@3 x ~ x", I: "~@19 x ~@7 x ~@3 x", J: "x ~@4 x ~ x", K: "~ x ~@15 x ~@14",
L: "~ x ~@30", M: "~ x ~@7 x ~@2 x ~@2 x", N: "~@2 x ~@16 x ~@5 x ~@5 x", O: "~@3 x ~@11 x ~@3 x ~@5 x ~@5 x",
P: "~@3 x ~@11 x ~@4 x ~@5 x ~@5", Q: "x ~ x ~@5 x ~ x ~@2 x ~@2", R: "x ~@3 x ~@12 x ~@3 x ~@5 x ~@4",
S: "~ x ~@3 x ~@10 x ~@3 x ~@5 x ~@5", T: "~ x ~@3 x ~@11 x ~@3 x ~@5 x ~@4", U: "x ~@3 x ~@10 x ~@3 x ~@5 x ~@5 x",
V: "~ x ~@5 x ~ x ~@2 x ~@2 x", W: "~@2 x ~@11 x ~@3 x ~@4 x ~@5 x ~@2", X: "~ x ~@11 x ~@3 x ~@5 x ~@5 x ~@2",
Y: "~ x ~@11 x ~@3 x ~@4 x ~@6 x ~@2", Z: "~ x ~@10 x ~@3 x ~@5 x ~@5 x ~@3", AA: "x ~@5 x ~ x ~@2 x ~@2 x ~",
AB: "x ~@11 x ~@3 x ~@4 x ~@6 x ~@2 x", AC: "~@11 x ~@3 x ~@5 x ~@5 x ~@3 x", AD: "~@5 x ~ x ~@2 x ~@2 x ~ x",
AE: "~@5 x ~ x ~@7 x", AF: "~@15 x", AG: "~@7 x ~@5 x ~ x", AH: "~@31 x", AI: "~@15 x ~@6 x ~@5 x ~@3", AJ: "x!2",
AK: "x", AL: "x ~@7 x ~@2 x ~@2 x ~", AM: "x ~@11 x ~@3 x ~@4 x ~@6 x ~@3", AN: "x ~@10 x ~@3 x ~@5 x ~@5 x ~@3 x",
AO: "~@11 x ~@2 x ~@5 x ~@5 x ~@3 x ~", AP: "~@9 x ~@3 x ~@5 x ~@5 x ~@3 x ~@2", AQ: "~@4 x ~ x ~@2 x ~@2 x ~ x ~",
AR: "~@4 x ~ x ~@2 x ~@2 x ~@3",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct(`<
A B C D E F G H I J K L M N O P@3 Q R@3 S T S T S T S T R@3 P@4 U@3 V M@2 W@2 X@2 Y Z@3 AA I AB I AC I AD Z AE AF X AG
X AG X@15 Y Z@3 AA I@3 AH H@3 AI@2 ~
>`.pickRestart({
A: "~@7 x!9 ~@3 x ~@12", B: "x!2", C: "x ~@16 x ~@14", D: "~ x ~@16 x ~@13", E: "~@2 x ~@16 x ~@12",
F: "~@3 x ~@15 x ~@12", G: "~@2 x ~@3 x ~ x ~ x!4 ~@2", H: "~@5 x ~@15 x ~@10", I: "~@3 x ~@7 x ~@4",
J: "~@6 x ~@16 x ~@8", K: "~@7 x ~@7 x ~ x ~ x ~@2 x ~ x ~@3 x ~@3", L: "~@8 x ~@16 x ~@6", M: "~@9 x ~@15 x ~@6",
N: "~@5 x ~@3 x!7", O: "x ~@4 x ~@7 x ~@2", P: "~@11 x ~@15 x ~@4", Q: "~@11 x ~@16 x ~@3", R: "~@3 x ~@3 x",
S: "~@13 x ~@15 x ~@2", T: "~@13 x ~@14 x ~@3", U: "~@5 x ~@7 x ~@2", V: "~@10 x ~@14 x ~@6", W: "~@9 x ~@14 x ~@7",
X: "~ x ~ x", Y: "~@8 x ~@14 x ~@8", Z: "~@7 x ~@15 x ~@8", AA: "~@7 x ~@14 x ~@9", AB: "~@3 x ~@5 x ~ x!4 ~",
AC: "~@3 x ~ x ~ x!2 ~@4 x ~@2", AD: "~@7 x ~@3 x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2",
AE: "~@7 x ~@7 x ~@5 x ~ x ~@3 x ~@4", AF: "~@7 x ~@16 x ~@7", AG: "~@4 x ~ x ~ x!8", AH: "~@6 x ~@14 x ~@10",
AI: "~ x ~@3 x ~@2",
})).gain(0.44)
// drums · low tom
const low_tom = s("lt").struct("<~@2 A ~ B C ~ D ~@47 E F ~@38>".pickRestart({
A: "~@13 x ~@18", B: "~@7 x ~@8", C: "~@15 x ~@16", D: "~@17 x ~@14", E: "~@9 x!4 ~@3", F: "~@11 x ~@4",
})).gain(0.27)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~@55 [~@3 x ~@7 x ~@4] ~@6 [~ x ~ x] ~ [~@3 x] ~@30>").gain(0.27)
// drums · mid tom
const mid_tom = s("mt").struct("<~@2 A ~ B C ~ D ~@48 E ~@38>".pickRestart({
// … 39 more lines
More by Steve Miller Band
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.