0:00/0:00
// Living in the U S A — Steve Miller Band
// 170 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 153 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/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 jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
~@8 A B@3 ~@16 B@4 C D C E C D F@2 G H I J K L M N O P Q@2 R S T U V W X V Y Z C AA AB Z AC@2 ~ AD AE AF X AG AH ~ AI
AJ AI X AK AA C Z C AL AM@2 ~ AN ~ AO ~ AP ~ AN ~ AQ ~ AR ~ AN ~ AS AT AU AV@2 AW AX AY AZ BA BB BC BD BE BF BC@3 BF
BC BE BG@2 BE@3 BF BC@3 BF BE BH@2 BF BC@2 BG@2 BI BC@2 BF BC BJ BG@2 BK@2 ~
>`.pickRestart({
A: "[a2,e3,c#4,g4,c5] ~ [a2,e3,c#4,g4,c5] ~@5", B: "[a2,e3,c#4,g4,c5]@2 ~@2 [a2,e3,c#4,g4,c5]@3 ~@9",
C: "a2@2 ~ c3 g3@2 ~ a2", D: "~@2 a2 ~ a3@2 c3@2 ~@2 c3@2 g3@3 ~", E: "~@2 a2@2 a3@2 c3@2 ~@2 c3@2 g3@3 ~",
F: "[a2@2 ~ c3 g3@2 ~ a2@2 c#3@2 d3@2 d#3@2 e3]/2",
G: "[c#3,g3,c4]@3 ~@3 [g3,c4]@2 [g3,c4]@2 [g3,c4]@2 ~@2 [c#3,g3,c4]@2, ~@3 c#3@3 ~@2", // C C5 C
H: "~@2 [a2,c#3,g3,c4]@2 ~@2 c4@2 c4 ~ [g3,c4]@2 [c#3,g3,c4]@2 ~@2, ~@6 [c#3,g3]@5 ~@5", // A7 C5 C C#dim
I: "[c#3,g3,c4,d#4]@2 ~@4 [c#3,g3,c4]@2 g3@2 [g3,c4] ~@3 [c#3,g3,c4]@2, ~@2 c#3 ~, ~@8 c4 ~@7", // Cm C C5 C
J: "~@2 [c#3,g3,c4]@2 ~@2 [c#3,g3,c4]@4 [g3,c4]@2 [c#3,g3,c4,d4]@2 c4 ~", // C C5 Csus2
K: "[c#3,g3,c4,e4] ~@2 [c#3,g3,c4] c4!2 ~ [c#3,g3,c4], ~@2 [c#3,g3,e4] ~", // C C#dim
L: "~@2 [c#3,g3,c4]@2 ~@2 c4@3 ~ c4@2 [g3,c4]@2 ~@2, ~@3 [c#3,e4]@4 ~, ~@3 g3@3 ~@2", // C C5 C#m
M: "[c#3,g3,c4]@3 ~@3 [g3,c4]@2 [g3,c4,e4]@2 [g3,c4]@2 ~@2 [c#3,g3,c4,e4]@2, e4 ~@5 c#3@6 ~@4", // C C5 C C5 C
N: "~@2 [g3,c4]@2 ~@2 [g3,c4]@4 [c4,e4]@2 [c#3,c4,e4]@3 ~, ~ c#3@2 c#3@3 ~@2, ~@10 g3@5 ~", // C5 C C#m
O: "[a2,c#3,g3,c4]@3 ~@3 [c#3,g3,c4]@2 [c#3,g3,c4]@2 [c#3,g3,c4]@2 ~@2 [a2,c#3,g3,c4]@2, ~@3 a2@3 ~@2", // A7 C A7
P: "~@2 [a2,c#3,g3,c4]@2 ~@2 g3@2 g3@2 [a2,c#3] ~ [a#2,d3,g#3]@3 ~, ~@3 [a2,c#3]@2 ~@3", // A7 A A#7 A
Q: "[[a2,c#3,g3]@3 ~@3 c#3 ~ c#3@2 [a2,c#3,g3,c4]@2 ~@2 [c#3,g3]@4 [c#3,g3] ~@3 [a2,c#3,g3,c4]@4 ~@2 [a#2,d3,g#3,c#4]@3 ~, ~@3 [a2,g3]@2 ~@2 [a2,c4]@3 ~@6]/2", // A7 C#dim A7 A#7 A7 Am
R: "[a2,c#3,g3,c4]@3 ~@13", S: "~@12 [d3,g#3,c#4,f4]@3 ~", T: "[c#3,g3,c4,e4]@3 ~@13",
U: "~@12 [a#2,d3,g#3,c#4,f4]@3 ~", V: "[a2,c#3,g3,c4]@3 ~ [a2,c#3,g3,c4,e4]@3 ~@9",
W: "[a2,c#3,g3,c4,e4]@3 ~ [a2,c#3,g3,c4]@3 ~@9", X: "[a2,c#3,g3,c4]@3 ~ [a2,c#3,g3,c4]@3 ~@9",
Y: "a2@3 ~@3 c3@2 g3@3 ~@3 a2@2", Z: "~@2 a2@2 ~@2 c3@2 ~@2 c3@2 g3@3 ~", AA: "~@2 a2@3 ~ c3@2 ~@2 c3@2 g3@3 ~",
AB: "a2@3 ~@3 c3 ~ g3@3 ~@3 a2@2", AC: "[a2@3 ~@3 c3@2 g3@3 ~@3 a2@4 c#3@3 ~ d3@3 ~ d#3@4 e3@2]/2",
AD: "~@10 a#2 ~ [a#2,d3,g#3,c#4]@3 ~", AE: "[a2,c#3,g3,c4]@3 ~ [a2,c#3,g3]@3 ~@9, ~@4 c4 ~@11",
AF: "~@10 a#2@2 [a#2,d3,g#3]@3 ~", AG: "~@10 [a#2,d3]@2 [a#2,d3,g#3,c#4,f4]@3 ~",
AH: "[a2,c#3,g3,c4] ~ [a2,c#3,g3,c4] ~@5", AI: "[a2,c#3,g3,c4]@2 ~@2 [a2,c#3,g3,c4]@3 ~@9",
AJ: "[a2,c#3,g3,c4,e4]@2 ~@2 [a2,c#3,g3,c4]@3 ~@9", AK: "a2@3 ~@3 c3@2 g3@4 ~@2 a2@2", AL: "~ a2 ~ c3 ~ c3 g3 ~",
AM: "[a2@3 ~@3 c3@2 g3@3 ~@3 a2@4 c#3@4 d3@4 d#3@4 e3@2]/2",
AN: "~@4 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@3 ~ [d4,f#4]@2 [c#4,e4]@2, ~@3 a3", // A D C#m
AO: "~@4 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@3 ~ [a3,d4,f#4]@2 [a3,c#4,e4]@2", // A D A
AP: "~@4 [a3,c#4,e4,a4]@3 ~ [c#4,e4,a4]@4 [a3,d4,f#4]@2 [a3,c#4,e4]@2, ~@4 a3 ~@3", // A D A
AQ: "~@4 [e4,a4]@4 [a3,c#4,e4,a4]@3 ~ [a3,d4,f#4]@2 [a3,c#4,e4]@2, ~@2 [a3,c#4] ~@5", // A5 A D A
AR: "~@4 [a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@3 ~ [a3,d4,f#4]@2 [a3,c#4,e4]@2", // A D A
AS: "~@4 [c#4,e4,a4]@4 [a3,c#4,e4,a4]@3 ~ [d4,f#4]@2 [c#4,e4]@2, ~@2 a3 ~@3 a3@2", // A D C#m
AT: "[a3,d4,f#4]@4 [a3,d4,f#4,a4]@3 [f#4,a4] [a3,d4]@3 [d4,f#4,a4] [a3,d4,f#4,a4]@3 ~, ~@4 [f#4,a4] ~@3", // D F#m D5 D F#m
AU: "[a3,c4,f4]@4 [a3,c4,f4]@3 [c4,f4] [a3,c4,f4] [a3,c4,f4]@3 [a3,c4,f4]@3 ~, f3@7 f3@8 ~", // F F5 F
AV: "[[g3,c4,e4,g4]@4 [g3,c4,e4]@3 [e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 g4@2 g4@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2, ~@2 g4 ~ g3@2 g3@8 g3@2, ~@3 [c4,e4] c4!3 ~]/2", // C Em C Em C
AW: "[d4,f#4,a4]@4 [d4,f#4,a4]@3 [d4,f#4,a4] [f#4,a4] [f#4,a4]@3 [d4,f#4,a4]@3 ~, a3@7 ~, ~@2 d4 ~", // D F#m D
AX: "[c4,f4]@4 [a3,c4,f4]@3 [c4,f4]!2 [c4,f4]@3 [a3,c4,f4]@3 [c4,e4,g4], ~ f3@3, ~@2 a3 ~", // F5 F F5 F C
AY: "[g3,e4,g4]@4 ~ e4@2 g4 [c4,e4,g4] ~ c4@2 [g3,c4,e4,g4]@3 [g3,c4,e4,g4], c4@8 ~ [e4,g4]@3 ~@4, ~ [g3,g4] g3 ~", // C Em G
AZ: "[g3,c4,e4,g4]@4 [g3,c4,e4,g4]@3 [c4,e4,g4] g4 g4@2 ~ [g3,c4,e4,g4]@3 [d4,f#4,a4], ~@2 [g3,c4,e4] ~", // C D C
BA: "[a3,d4,f#4,a4]@4 [a3,d4,f#4,a4]@3 [f#4,a4]!2 [f#4,a4]@3 [d4,f#4,a4] ~@3, ~@4 a3@3 ~, ~@2 d4 ~", // D F#m D
BB: "[a3,c4,f4] [f3,a3,c4,f4]@3 [a3,c4,f4]@3 [c4,f4]!2 [c4,f4]@2 f4 [f3,a3,c4,f4]@2 ~@2, ~ f3@2 ~, ~@2 a3 ~", // F F5 F
BC: "a2 c#3@2 d3@2 d#3@2 e3", BD: "a2@2 ~ c#3@3 d3@4 d#3@4 e3@2", BE: "a2@2 c#3@4 d3@3 ~ d#3@4 e3@2",
BF: "~ f#3@2 g3@2 g#3@2 a3", BG: "[a2 c#3@2 d3@2 d#3@2 e3@2 f#3@2 g3@2 g#3@2 a3]/2",
BH: "[a2 c#3@2 d3@2 d#3@2 ~ a2 c#3@2 d3@2 d#3@2 e3, ~@7 e3@2 ~@7]/2", BI: "a2@2 c#3@3 ~ d3@4 d#3@4 e3@2",
BJ: "a2@2 c#3@3 ~ d3@3 ~ d#3@4 e3@2", BK: "[[a2,e3,a3]@15 ~]/2",
})).s("gm_electric_guitar_jazz").gain(0.28).pan(0.8)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~@8 A@2 B A ~@16 A B@3 C D E F G F G H I@2 J K L M N O P Q R S T Q U V W@3 X C D E F G F G H I@2 J K L M N O Y@2 Z AA
C D E F G F G AB AC AD AE AF AG AH AI AJ AK AH AL AH AM AN AI AO AP AQ AR AS AT AU AV AW AP AQ AX@2 AY@2 AX AZ BA@2
AX@2 AY@2 AX AZ BA@2 AX@2 AY@2 AX AZ BA@2 AX@2 AY@2 AX AZ BA@2 AX@2 AY@2 BB@2 ~
>`.pickRestart({
A: "a1@2 ~@2 a1@3 ~@9", B: "a1@3 ~ a1@3 ~@9", C: "a1@2 ~ c2 g2@2 ~ a1", D: "~@2 a1@3 ~ c2@3 ~ d2 ~ g2@4",
E: "a1@4 ~@2 c2@2 g2@5 ~ a1@2", F: "~@2 a1@3 ~ c2@3 ~ d2 ~ g2@3 ~", G: "a1@5 ~ c2@2 g2@5 ~ a1@2",
H: "~@2 c#2@3 ~ d2@3 ~ d#2@4 ~@2", I: "[a1@4 ~@2 a1 ~ a1@2 a1@3 ~ a1@4 a1@2 c#2 ~ c#2 ~ d2 ~ d2 ~ d#2@2 e2@2]/2",
J: "a1@4 ~@2 a1 ~ a1 ~ a1@3 ~ a1@2", K: "a2@2 g2 ~ e2@2 b2@3 ~ a2@2 g2@3 ~", L: "a1@5 ~ a1 ~ a1 ~ a1@4 a1@2",
M: "~@2 a1@2 c#2 ~ c#2@2 d2@2 d2 ~ d#2@2 e2@2", N: "a1@5 ~ a1 ~ a1@2 a1@3 ~ a1@2", O: "a2@2 g2 ~ e2@2 b2@4 a2@2 g2@4",
P: "a1 a1@2 g1 a1 a1@2 g1", Q: "a1@2 a1@3 ~ a1 ~ c#2@2 d2@2 d#2@4", R: "a1@2 a1@4 g1 ~ a1@2 a1@4 g1@2",
S: "a1@2 a1@3 ~ a1 ~ a2@2 g2@2 e2@4", T: "a1@2 a1@4 g1 ~ a1@2 a1@4 g1 ~", U: "a1 ~ a1@4 g1 ~ a1@2 a1@4 g1 ~",
V: "a1@2 e1@4 f#1@3 ~ g1@4 g#1@2", W: "a1@3 ~ a1@2 c2@2 d2@2 e2@2 g2@2 a2@2", X: "a1 a2 c3 a2 g2 e2 d2 c2",
Y: "a1@3 ~ a1@3 ~ d2@2 e2@2 g2@2 a2@2", Z: "a1@3 ~ a1@3 ~ d2@2 e2@2 g2@4", AA: "a2@2 g2@2 e2@4 a2@2 g2@2 e2@3 ~",
AB: "~@2 c#2@3 ~ d2@3 ~ d#2@5 ~", AC: "a1@2 g1 e1 a1 g1 e1 a1", AD: "~@2 a1 ~ a2@3 ~ a2@4 g2@2 e2@2",
AE: "a1 ~ a1@2 g1@2 e1@2 a1@2 g1@2 e1@2 a1@2", AF: "~@2 a1 ~ a1@3 ~ e2@4 c2@2 a1 ~",
AG: "a1 ~ a1@2 g1@2 e1 ~ a1@2 g1 ~ e1@2 a1@2", AH: "~@2 a1 ~ a1@3 ~ a1@4 g1@2 e1 ~",
AI: "a1 ~ a1@2 g1@2 e1 ~ a1@2 g1@2 e1@2 a1@2", AJ: "~@2 a1 ~ a1@2 ~@2 a1@4 g1@2 e1 ~",
AK: "a1 ~ a1@2 g1@2 e1 ~ a1@2 g1@2 e1 ~ a1@2", AL: "a1 ~ a1@2 g1@2 e1 ~ a1 ~ g1@2 e1 ~ a1@2",
AM: "a1 ~ a1 ~ g1@2 e1@2 a1@2 g1@2 e1@2 a1@2", AN: "~@2 a1 ~ a1@2 ~@2 a1@4 g1@2 e1@2",
AO: "~@2 a1 ~ a2@2 ~@2 a2@4 g2@2 e2 ~", AP: "d2@3 ~ d2@3 ~ d2 ~ d2 ~ d2 ~ d2@2",
AQ: "f1@3 ~ f1@3 ~ f1 ~ f1 ~ f1 ~ f1 ~", AR: "c2 ~ c2@2 c3 ~ c3@2 a#2 ~ a#2@2 g2 ~ g2@2",
AS: "c2 ~ c2@2 c3 ~ c3 ~ a#2 ~ a#2 ~ g2 ~ g2 ~", AT: "d2@3 ~ d2@3 ~ d2 ~ d2 ~ d2 ~ d2 ~",
AU: "f1@3 ~ f1@3 ~ f1 ~ f1 ~ f1 ~ f1@2", AV: "c2 ~ c2@2 c3 ~ c3 ~ a#2 ~ a#2@2 g2 ~ g2@2",
AW: "c2 ~ c2 ~ c3 ~ c3 ~ a#2 ~ a#2 ~ g2 ~ g2@2", AX: "a1 c#2@2 d2@2 d#2@2 e2",
AY: "[a1 c#2@2 d2@2 d#2@2 e2@2 f#2@2 g2@2 g#2@2 a2]/2", AZ: "a1@2 c#2@4 d2@4 d#2@3 ~ e2@2",
BA: "[a1@2 c#2@4 d2@4 d#2@4 e2@4 f#2@4 g2@4 g#2@3 ~ a2@2]/2", BB: "[a1@31 ~]/2",
})).s("gm_electric_bass_finger").gain(0.49)
// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
~@8 A@4 ~@16 B@3 C D E F G F H I J K L M@2 N O P@2 ~@4 Q R ~@2 S@2 T S D E F G F H I J U@2 ~@3 V W ~ S@2 T S D E F G F
H I J ~@3 X ~ X ~ Y ~ Z ~ AA ~ AB ~ AC AD@2 AE@2 AD@2 AE@2 AF@2 AG AH AI@2 AJ@2 AK AL@8 AM@5 AN@7 AO@4 AP@7 ~
>`.pickRestart({
A: "[c#5,e5,g5,c6]@3 ~ [c#5,e5,g5,c6]@3 ~@9", B: "[c#4,g4,a4,c5]@3 ~ [c#4,g4,a4,c5]@3 ~@9",
C: "[c#4,g4,a4,c5]@3 ~ [c#4,g4,a4,c5]@4 ~@8", D: "a4@5 ~ c5@2 g5@4 ~@2 a4@2", E: "~@2 a4@4 c5@4 d5@2 g5@3 ~",
F: "a4@4 ~@2 c5@2 g5@5 ~ a4@2", G: "~@2 a4@4 c5@3 ~ d5@2 g5@3 ~", H: "~@2 a4@4 c5@3 ~ d5 ~ g5@3 ~",
I: "a4@5 ~ c5 ~ g5@6 a4@2", J: "~@2 [c#5,g5]@4 [d5,g5]@4 [d#5,g5]@5 ~",
K: "[a4,c5]@3 ~ c5@2 [a4,c5]@2 d5@2 b4@3 ~ [c5,e5]@2, ~@8 b4 ~@7", L: "~ [c5,e5]@7",
M: "[[a4,c5]@3 ~ c5 ~@3 d5@2 [b4,d5]@3 ~ [c5,e5]@18, ~@8 b4 ~@23]/2", // Am Bm C
N: "[a4,c5]@3 ~ [c5,g5]@2 c5@2 [b4,g5]@2 [b4,d5,g5]@3 ~ [c5,e5,g5]@2, ~@4 a4 ~ g5 ~ d5 ~@7", O: "~@2 [c5,e5,g5]@13 ~",
P: "[[a4,c5,g5]@3 ~@3 c5@2 [b4,d5,g5]@2 [b4,d5,g5]@3 ~ [c5,e5,g5]@16 ~@2]/2", Q: "c5@3 ~@13", R: "~@3 [d4,g#4]",
S: "[c#5,g5,c6]@3 ~ [c#5,g5,c6]@3 ~@9", T: "[c#5,g5,c6]@3 ~ [c#5,g5,c6]@4 ~@8", U: "[a2@7 ~]/2", V: "~@3 [g#4,c#5]",
W: "c5 ~@3", X: "~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@2 g4 e4",
Y: "~@4 [c#5,e5,a5]@3 ~ [a4,c#5,a5]@3 ~ [g4,g5]@2 e4 ~, ~@4 e5@3 ~, ~@12 c#5 ~@3", // A G
Z: "~@4 [a4,c#5,e5,a5]@2 ~@2 [a4,c#5,e5,a5]@3 ~ [g4,a4,e5,g5]@2 [e4,a4]@2, ~@12 c#5 ~ c#5 ~", // A A7 A5
AA: "~@4 [a4,c#5,e5,a5]@2 ~@2 [a4,c#5,e5,a5]@3 ~ [g4,a4,c#5,e5,g5]@2 [e4,a4,c#5,e5]@2", // A A7 A
AB: "~@2 [a4,c#5,e5,a5] ~ [a4,c#5,e5,a5]@2 [g4,a4,e5,g5] [e4,a4,c#5,e5], ~@12 c#5 ~@3", // A A7 A
AC: "~@4 [a4,e5,a5]@2 ~@2 [a4,c#5,e5,a5]@3 ~ [g4,a4,c#5,e5,g5]@2 [e4,a4,e5] ~, ~@4 c#5 ~@9 c#5@2", // A5 A A7 A5
AD: "[[d5,f#5] [c5,f5], [a4,a5]]/2", AE: "[g4,c5,e5,g5]/2", AF: "[[d5,f#5]@16 [c5,f5]@15 ~, [a4,a5]@31 ~]/2",
AG: "a2@2 c#5@3 ~ [d3,d5]@4 d#5@4 [e3,e5] ~, a4 ~@15", AH: "[a2,a4] c#5@2 [d3,d5]@2 [d#3,d#5]@2 e5, ~@14 e3 ~",
AI: "[a2@2 c#5@3 ~ [d3,d5]@4 [d#3,d#5]@4 [e3,e5]@4 [f#3,f#5]@4 [g3,g5]@3 ~ [g#3,g#5]@4 [a3,a5] ~]/2", // D D# E F# G G# A
AJ: "[a2,a4] [c#3,c#5]@2 [d3,d5]@2 [d#3,d#5]@2 e5, ~@14 e3 ~", AK: "[a2,a4] [c#3,c#5]@2 [d3,d5]@2 d#3@2 [e3,e5]",
AL: "[~@2 [f#3,f#5]@4 g5@4 g#5@4 a3 ~ a2@2 c#5@4 [d3,d5]@4 d#5@4 e3 ~ a4@2 ~@4 [d3,d5]@4 d#5@4 e5@2 a2@2 c#5@4 [d3,d5]@4 [d#3,d#5]@4 [e3,e5]@4 [f#3,f#5]@4 [g3,g5]@4 [g#3,g#5]@4 a3 ~ [a2,a4]@2 c#5@4 [d3,d5]@4 d#5@4 [e3,e5] ~ a2@2 [c#3,c#5]@4 [d3,d5]@4 [d#3,d#5]@4 e5 ~ [a2,a4]@2 [c#3,c#5]@4 [d3,d5]@4 [d#3,d#5]@4 [e3,e5]@2, ~@14 a5@53 ~@11 a5@50, ~@46 e3 ~@81]/8", // F# D D# E F# G G# A …
AM: "[~@2 [f#3,f#5]@4 [g3,g5]@4 [g#3,g#5]@4 a3@2 [a2,a4]@2 [d3,c#5]@4 [d3,d5]@4 [d#3,d#5]@4 [e3,e5] ~ [a2,a4]@2 [c#3,c#5]@4 [d3,d5]@4 [d#3,d#5]@3 ~ [e3,e5] ~ [a2,a4]@2 [c#3,c#5]@4 [d3,d5]@4 [d#3,d#5]@4 [f3,e5]@4 [f#3,f#5]@4 [g3,g5]@4 [g#3,g#5]@3 ~ a5@2, ~@14 a5@53 ~@11 a3 ~]/5", // F# G G# A Dmaj7 D D# E …
AN: "[a2@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6] ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 e3@2 [a2,a5]@2 [c3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6]@4 [f#3,f#6]@4 [g3,g6]@4 [g#3,g#6]@4 a3 ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6] ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6] ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6]@2, a6@51 ~@11 a6@50, ~@30 e6 ~@81]/7", // C# D D# E A C# D D# …
AO: "[~@2 [f#3,f#6]@4 [g3,g6]@4 [g#3,g#6]@3 ~ a3 ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6] ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6] ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6]@2, ~@7 a6@25]/4", // F# G G# A C# D D# E …
AP: "[~@2 [f#3,f#6]@4 [g3,g6]@4 [g#3,g#6]@4 a3 ~ [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 e6@2 [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 e6@2 [a2,a5]@2 [c#3,c#6]@4 [d3,d6]@4 [d#3,d#6]@4 [e3,e6]@4 [f#3,f#6]@4 [g3,g6]@4 [g#3,g#6]@4 ~@2 a2@32, ~@14 a6@53 ~@11 a6@34, ~@30 e3 ~@15 e3 ~@65]/7", // F# G G# A C# D D# A …
})).s("gm_rock_organ").gain(0.22).pan(0.2)
// chords · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft = note(`<
~@40 A ~ B ~ C ~ D ~@4 E F G H ~@14 I J@2 K@2 L@2 ~@19 M ~ N ~@16 O P Q ~@3 R S T U Q ~ V W ~@21 X Y@2 ~
>`.pickRestart({
A: "~@2 a4 ~@2 d5@2 ~", B: "~@2 a4 [a4,c5] ~@4", C: "g5@3 ~@3 a4@2 ~@8", D: "~@2 [a4,c5] g5 ~@4, ~@4 g5 ~ a4 ~@9",
E: "~@3 [d4,g#4,c#5]", F: "[c#4,g4] ~@3", G: "~@3 c#5", H: "[c#4,g4,c5] ~@3", I: "~@3 [a#2,d4,g#4,c#5]",
J: "[[c#4,g4,c5] ~@6 [a#2,d4,g#4,c#5], a2@7 ~]/2", K: "[[c#4,g4,c5] ~@6 [a#2,d4], a2@7 ~]/2",
L: "[[c#4,g4] ~@7, a2@15 ~]/2", M: "~@4 a4@2 ~@6 a4@2 [a4,c#5,e5] ~", N: "~@14 e5 ~", O: "~ c#3@2 ~@2 d#3@2 ~",
P: "~ c#3@2 ~@5", Q: "a4 c#3@2 ~@5", R: "~@5 d#5@2 ~", S: "~@3 g3@2 g#3@2 ~", T: "a4@2 c#3@4 ~@4 d#3@3 ~ e5@2",
U: "a2@2 [c#3,c#5]@5 ~@3 d#3@3 ~@3", V: "~@2 c#3@4 ~@4 d#3@3 ~@3", W: "a4@2 ~@12 e3 ~", X: "~@7 a3", Y: "[a5,c#6]/2",
})).s("gm_rock_organ").gain(0.11).pan(0.2)
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
~@8 A@4 ~@16 A@4 ~@8 B@2 C@2 B@2 D@2 ~@8 A@4 ~@8 B@2 C@2 B@2 D@2 A@4 ~@7 E F@2 G@2 H@2 I@2 J@2 K L M@2 N@3 ~@21 O@2
P@2 O@2 P@2 O@2 P@2 O@2 P@2 O@2 P@2 O@2 P@2 ~@3
>`.pickRestart({
A: "[c#4,g4,c5]!2 ~@2", // C
B: "[[a3,c4,e4]@2 [a3,c4,e4]!2 [b3,d4,f#4] [b3,d4,f#4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@5 ~]/2", // Am Bm C
C: "[[a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,e4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@4 [c4,e4,g4]@15 ~@3]/2", // Am Bm C
D: "[[a3,c4,e4]!4 [b3,d4,f#4] [b3,d4,f#4]@2 [c4,e4,g4]@9]/2", E: "~@6 a3 f#3", F: "[a3!2 f#3 e3 a3@2 f#3@4 ~@5 e3]/2",
G: "[a3@2 f#3 e3 a3@2 c#4@4 ~@6]/2", H: "[c4!2 c4@2 c4!2 c4@5 ~@4 g3]/2",
I: "[c4@4 c4@2 c4@2 c4@2 c4@4 d4@4 a3@9 ~@3 g3@2]/2", J: "[c4@2 c4@2 c4@2 c4@2 c4@2 c4@4 c4@11 ~@7]/2",
K: "c4!5 d4@3", L: "a3@11 ~@3 g3@2", M: "[c4!5 c4@2 c4@7 ~@2]/2", N: "[c4@2 d4 c4 d4!2 c4 g4@5 e4 d4 c4@4 ~@6]/3",
O: "[[c#4,e4]@2 [c#4,e4]!2 [d4,f#4] [d4,f#4]@2 [e4,g4]@2 [e4,g4] [e4,g4]@5 ~]/2", // C#m D Em
P: "[[c#4,e4]!4 [d4,f#4] [d4,f#4]@2 [e4,g4]@7 ~@2]/2", // C#m D Em
})).s("gm_epiano1").gain(0.25).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F C G@2 H G H B@5 G B@5 I B A B ~ G H G H G@2 J K J G J L M N M O M O G ~ P G@3 J B G B G B Q K G@2 J K J G
J L M N M O M O G C G B Q K G@2 J K J G J L R S Q S Q S N O Q S N S N S Q N K P C A C@3 T C@2 B@3 U B@3 V B@3 W B@3 V
B@3 X D Y Z AA B@7 V B@2 U AB T ~@2
>`.pickRestart({
A: "x!2 ~@6", B: "x!2 ~ x ~ x ~ x", C: "x!2 ~@2 x!2 ~@2", D: "~ x ~ x!3 ~ x", E: "x!2 ~@3 x ~@2", F: "x!2 ~@2 x ~@3",
G: "x!2 ~ x ~ x ~@2", H: "x!2 ~ x!3 ~@2", I: "x!2 ~ x!2 ~@3", J: "x ~@2 x ~ x ~@2", K: "~ x ~ x ~ x ~@2",
L: "~ x!2 ~ x ~ x ~", M: "x ~@3 x!2 ~ x", N: "~ x ~@2 x!2 ~ x", O: "~ x ~@2 x!2 ~@2", P: "x ~@3 x!2 ~@2",
Q: "x!2 ~@2 x!2 ~ x", R: "x!2 ~@2 x ~@2 x", S: "~ x ~@2 x ~@2 x", T: "x", U: "~ x ~ x ~ x ~ x",
V: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", W: "~@2 x ~@3 x!2 ~@2 x ~@3 x ~", X: "~ x ~ x!2 ~ x!2",
Y: "x ~ x ~@3 x ~@3 x ~@3 x!2", Z: "x ~ x!2 ~ x!3", AA: "~@2 x ~@3 x!2 ~@2 x!2 ~@2 x!2",
AB: "~@2 x!2 ~@2 x ~@3 x ~@3 x ~",
})).gain(0.44)
// drums · snare
const snare = s("sd").struct(`<
A@5 B A C A D@2 A@12 E A F A G H D@2 A@2 H A I A H A J A@3 I A H A K A@3 H A@3 L A@5 H A I A H A J A@3 I A H A H A@5 H
A I A H A M A@16 N D@2 O H@2 I P H@2 A@3 Q A I A R D I A R I@2 A R A@3 S T A U N A@3 L A I A R I A L R ~@3
>`.pickRestart({
A: "~ x ~ x", B: "~@4 x ~ x ~@3 x!5 ~", C: "~ x ~ x ~ x!3", D: "~@4 x ~@7 x ~@2 x", E: "~@4 x ~@4 x!7",
F: "~@4 x!2 ~@2 x!2 ~@6", G: "x!2 ~ x!2 ~ x!2 ~@8", H: "~@4 x ~@7 x ~ x!2", I: "~@2 x ~@3 x!2",
J: "x!2 ~@4 x ~@3 x ~@3 x!2", K: "x!2 ~ x!3 ~@10", L: "~ x!3", M: "x!2 ~@4 x ~@2 x!2 ~@3 x!2",
N: "x ~@3 x ~@3 x ~@3 x ~ x!2", O: "~@4 x ~ x!4 ~@4 x ~", P: "~ x!3 ~@2 x!3 ~@7", Q: "x!2 ~ x", R: "x!4",
S: "x ~ x ~@2 x ~@2", T: "x ~@3 x ~@7 x ~ x!2", U: "~ x ~@2 x ~@3",
})).gain(0.49)
// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
~@8 A B@2 ~@18 B@2 ~@4 C ~@7 C ~@19 C ~@7 C ~@11 C ~@3 D ~@17 B@2 ~@7 A@2 ~ A@2 C ~ E B C ~@2 C@2 ~@2 A@2 ~@3 A ~@2
A@3 ~ A C ~@2 C A ~@5
>`.pickRestart({
A: "~@14 x!2", B: "~@7 x", C: "~@15 x", D: "~@5 x ~ x ~@3 x ~@4", E: "~@2 x!2 ~@12",
})).gain(0.27)
// drums · low tom
const low_tom = s("lt").struct("<~@25 [~@6 x ~@7 x!2] ~ [~@14 x!2] ~@19 [~@11 x ~ x ~ x] ~@105>").gain(0.49)
// drums · hihat
const hihat = s("hh").struct(`<
A B C D E F G H I J K L M J N O P F K Q B N@2 R N H N ~ I J K L S N T L T U T V T W M H X O N ~ P U P V N U N H Y Z Y
AA W ~ A H N H U ~ T W M H X O N AB Y Z Y AA AC E N J N AD N V T AE N AF N AF N AF N AF N AF T AF N AF AG T J L T U T
H AC AH T AI N H AJ J N ~ T E N AF AK AL AM ~ T E N H ~@19
>`.pickRestart({
A: "x ~ x ~ x!4", B: "x!5 ~ x ~", C: "~ x!2 ~ x ~@2 x", D: "x ~ x!2 ~@3 x", E: "x!7 ~", F: "x!4 ~@3 x",
G: "x!4 ~ x!3", H: "x", I: "x ~ x!2 ~ x ~@2", J: "x!5 ~@3", K: "x!6 ~ x", L: "x!4 ~@4", M: "x ~ x!6", N: "x!8",
O: "x!2 ~ x!3 ~@2", P: "~ x!7", Q: "x!2 ~ x!5", R: "x ~@2 x!2 ~@3", S: "~ x!3", T: "~@2 x!6", U: "x!6 ~@2",
V: "x!3 ~@5", W: "~ x!4 ~@3", X: "x!3 ~ x ~ x ~", Y: "~@3 x!5", Z: "~@4 x!4", AA: "x!2", AB: "~@2 x!3 ~@3",
AC: "~@2 x!5 ~", AD: "x!3 ~ x!3 ~", AE: "x!2 ~@4 x!2", AF: "x!2 ~@6", AG: "~@2 x ~ x!4", AH: "~ x!6 ~",
AI: "x!3 ~ x ~@3", AJ: "~@2 x ~ x!3 ~", AK: "~@2 x!3 ~ x ~", AL: "~@2 x!3 ~ x!2", AM: "x!3 ~ x!4",
// … 58 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.