0:00/0:00
// Rock Me Gently — Andy Kim
// 122 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 92, 4/4 at bar 93) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Rhythm Double.
setcpm(122/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.
// other · lead 5 charang · "Synth Lick"
const lead_5_charang = note("<~@23 A B ~@6 A C ~@24 A B ~@6 A C ~@30 D E F ~@5>".pickRestart({
A: "e6@2 e6@2 d6 ~ e6@2 ~@2 c6@2 ~@4", B: "c6!2 a5 c6 ~ a5 ~ g5", C: "c6@2 c6@2 a5@2 c6 ~@3 a5@2 ~@4",
D: "~@8 e6@2 e6@2 d6 ~ e6@2", E: "~ c6 ~@2 c6!2 a5 c6", F: "~ a5 ~@6",
})).s("gm_lead_5_charang").gain(0.22).pan(0.7)
// chords · electric guitar clean · "Breakdown"
const electric_guitar_clean = note("<~@72 A B C D E F G H@2 I J K L M N ~@18>".pickRestart({
A: "~@14 d2 a1", B: "c2@2 [c3,c4] ~ [c3,f3]@2 ~ g2 [d#3,a#3] ~ [a#2,f3] d#3 [c3,g3] ~ c2 ~, ~@3 [a#2,g3] ~@4",
C: "[d#3,a#3] [a#2,f3] [b2,f#3] [c3,g3]@2 [g2,d#3] [c3,g3] [a#2,f3] [d#3,a#3] f3 [c3,g3] a#2 [g2,d#3] c3 ~ a#1, ~@7 [d#2,g2]", // D#5 A#5 B5 C5 Cm C5 A#5 D#5 …
D: "c2@2 c3 ~ c3@2 g2 ~ c2@3 c3 d#3 ~ c4 ~",
E: "[f1,c4]@2 d#3 [f3,c4] f2 d#3 [f3,c4] d#3 [f#3,c4] f3 [f1,d#3] c3 [f2,c4] a#2 [d#2,d#3,a#3] [a#1,a#2]", // F5 F#dim F7 F5 D#5 A#
F: "c2@2 c3 ~ [d#3,c4]@2 c3 g2 c2@2 f3 g3 [a#1,a#3] g3 [g1,c4] g3", // Cm A# C5
G: "[f1,d#4] c4 d4 ~ [f2,f3,c4]@2 g3 d#3 [f1,f3] ~ [f1,d#3] [f2,c3]@2 ~ c3 g2", // F7 F5 F F7 F5
H: "[[e3,c4]@2 c3 ~ [e3,c4]@2 c3 g2 a#2 ~ [d#2,d#3,g3]@2 [e2,e3,g#3]@2 [f2,f3,a3]@4 f2 ~ c3 ~ a#2 c3 [f3,a3] g3 d#3 ~ [c3,a3]@2 a#2 f2]/2", // C D# E F
I: "c3@3 g2 [c3,g3,c4,e4] ~ [c3,g3] ~@3 [d#2,d#3,g3]@2 [e2,e3,g#3]@2 [f2,f3,a3]@2", // C C5 D# E F
J: "~@2 [f2,c3] ~ f3@2 c3 a2 f2 ~ [c3,a3,d#4]@2 ~ [c3,g3,d4] ~ [a#2,a3], ~ a3 ~@2", // F5 Adim Csus2 A#maj7
K: "[c2,e3,c4]@2 ~@2 [e3,c4] ~ [c2,c3,a3]@2 [e3,g3,c4]@2 [a2,a3]@2 [a2,e3,g3,c4]@2 c3 a2", // C F C A Am7
L: "[f2,f3,a3]@2 c3 ~ [c3,f3,a3]@2 f2 ~ [g2,f3,a3]@2 ~@3 f2 d#2 ~, ~@6 [c3,f3,a3] ~", // F Dm F
M: "~@3 c3 ~ [f2,a4,d5] [d#2,g4] c4 [c2,d#4,c5] e4 c4 [c3,f4,a#4] g4 c4 [d#2,e4,g4] [e2,f4], c2 ~@3, ~ [a#4,d#5] ~@6", // Dm D# Cm Fsus4 D# Fmaj7 D#5
N: "[a3,f4,a4]@3 ~@13", // Dm
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.4)
// bass · electric bass finger · "Bass Guitar"
const bass = note(`<
~ A B C D E F G H I J I J I J K L K L K L K L K L M N M N M N M O P Q R Q R Q S@2 ~@2 I J I J I J K T K L K L K L K L
M N M N M N M U P Q R Q R Q ~@2 V W V X Y Z V AA AB AC AD AE@3 AF AG AH AI AJ AI AJ AK AJ AL AM AI AJ AI AJ AN
>`.pickRestart({
A: "c2 ~ c2 ~ c2@2 ~@4 g2@2 c3@2 b2 ~", B: "a2@2 f2 ~ c2@2 ~@4 a1@2 d2@2 a1@2",
C: "c2@2 c2 ~ c2@2 ~@4 g2@2 c3@2 b2 ~", D: "a2@2 f2 ~ c2@2 ~@4 a1@2 d2 ~ a1@2", E: "c2@2 c2@2 c2 ~@5 g2@2 c3@2 b2 ~",
F: "a2@2 f2 ~ c2 ~@5 c2@2 d2@2 a1@2", G: "c2@2 c2 ~ c2 ~@5 g2@2 c3@2 b2 ~", H: "a2@2 f2 ~ c2@2 ~@4 a#1@2 d2@2 a#1@2",
I: "c2@2 c2 ~@3 c2@2 c2@2 g2 ~ c3@2 ~@2", J: "f2@2 f2 ~@3 f2@2 ~@2 a1@2 d2@2 a1@2",
K: "c2@2 c2 ~@3 c2@2 c2@2 g2@2 c3@2 g2 ~", L: "f2@2 f2 ~@3 f2@2 ~@2 c2@2 d2@2 a1@2",
M: "c2@2 c2 ~@3 c2@3 ~ g2@2 c3@2 g2 ~", N: "f2@2 f2 ~ a1@2 ~@4 c2@2 d2@2 a1@2", O: "f2@3 ~ f2@2 g1@5 ~ g2 f2 g1@2",
P: "c2@2 c2 ~ c2@2 ~@4 g2@2 c3@2 g2@2", Q: "a2 ~ f2 ~ c2@2 ~@4 a1@2 d2@2 a1@2",
R: "c2@2 ~ c2 c2@2 ~@4 g2@2 c3@2 g2@2", S: "[c2@5 ~@3]/2", T: "f2@2 f2 ~@5 e2@2 c2@2 d2@2 a1@2",
U: "f2@3 ~ a1@2 g1@3 ~@3 a2 f2 a1@2", V: "c2@2 ~@2 c2@2 ~@4 c2@2 a1 ~ g1@2",
W: "f1@2 f1@2 ~@2 f1@2 ~@2 f1 ~ f1@2 a#1@2", X: "f1@2 f1@2 ~@2 f1@2 ~@2 f1 ~ f1@2 a1@2",
Y: "c2@2 ~@2 c2@2 ~@4 c2@2 a1@2 g1 ~", Z: "f1 ~ f1 ~ f2 ~ f1@2 f1 ~ f1 ~ a1 ~ a#1 ~",
AA: "f1 ~ f1 ~ f2 ~ f1@2 f1 ~ f1 ~ a1@2 a#1@2", AB: "c2@3 ~ c2@3 ~ c2 ~ c2@2 a1@2 ~@2",
AC: "f1 ~ f1 ~@3 f1@2 f1 ~ f1 ~ g1 ~ a1 ~", AD: "c2 c3 a2 g2 e2 d2 c2 a1",
AE: "d2@2 d2 ~ a1@2 g1@2 ~@2 f2 ~ g2@2 a2 ~", AF: "d2@2 d2 ~ d2 ~ d2 ~ d2@2 d2@2 d2@2 d2@2", AG: "d2!8",
AH: "d2@2 a1@2 a1@2 a1@2 c3@2 c3 ~ c3@2 ~@2", AI: "~@2 g2@2 c3@2 g2@2 a2 ~ f2 ~ c2@2 ~@2",
AJ: "~@2 a1@2 d2@2 a1@2 c2@2 c2 ~ c2@2 ~@2", AK: "~@2 g2@2 c3@2 g2@2 a2@2 f2 ~ c2@2 ~@2",
AL: "c2@2 c2 ~ c2@2 c2@2 c2@2 c2@2 c2@2 c2@2", AM: "c2@2 c2@2 c2@2 c2@2 c3@2 c3 ~ c3@2 ~@2", AN: "~ g2 ~@6",
})).s("gm_electric_bass_finger").gain(0.46)
// chords · electric guitar clean · "Fender"
const electric_guitar_clean_2 = note(`<
~@5 A B A B A B A B A B A C D@2 E@2 F@2 G@2 H@6 I@2 J@2 K@2 L@2 M@2 N@2 O P Q P Q P Q R D@2 E@2 S@2 T@2 U@2 V@2 W@2
X@2 J@2 Y@2 L@2 Z ~@12 AA AB AC AD ~ AE AF AG AH AI AJ AK@2 AL AF AG AH AI AM
>`.pickRestart({
A: "~@4 [g4,c5,e5] ~@11", B: "~@4 [a4,c5,f5] ~@11", C: "~@8 [g4,c5,e5] ~@3 [f4,a4,d5] ~@3",
D: "[[e4,g4,c5]@4 [e4,g4,c5] ~@5 [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~@3 [g4,c5,e5] ~@3 [f4,a4,d5] ~@3]/2", // C Em7 F C Dm
E: "[[e4,g4,c5]@4 [e4,g4,c5] ~ [c3,c4,e4,g4] ~ [e4,g4,c5] ~ [e4,g4,d5]@2 e4 ~ [f4,a4,c5]@6 [f4,a4,c5] ~ [c4,f4,a4] ~ [g4,c5,e5] ~@3 [f4,a4,d5] ~@3]/2", // C Em7 F C Dm
F: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [c3,e4,g4,c5] ~ [e4,g4,d5]@2 e4 ~ [f4,a4,c5]@6 [f4,a4,c5] ~ [c3,c4,f4] ~ [g4,c5,e5] ~@3 [f4,a4,d5] ~@3]/2", // C Em7 F F5 C Dm
G: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [c4,e4,g4] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [c4,f4,a4] ~ [g4,c5,e5]@3 ~ [f4,a4,d5] ~@3]/2", // C Em7 F C Dm
H: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~@3 a3@2 c4@2 d4@4]/2", // C Em7 F
I: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [g4,d5]@4 [g4,d5]@4 ~@2]/2", // C Em7 F G5
J: "[[e4,g4,c5]@9 ~ [e4,g4,c5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [c4,f4,a4] ~ [g4,c5,e5]@2 ~@2 [f4,a4,d5] ~@3]/2", // C F C Dm
K: "[[e4,g4,c5]@2 [e4,g4,c5] [c4,e4] [e4,g4,c5]@2 [e4,g4,c5]@3 ~ [d4,g4]@3 ~ [f4,a4,c5]@8 ~@2 [g4,c5,e5]@2 ~@2 [f4,a4,d5] ~@3]/2", // C G5 F C Dm
L: "[[e4,g4,c5]@9 ~ [d4,g4,c5]@3 ~ [f4,a4,c5]@8 ~@2 [g4,c5,e5]@2 ~@2 [f4,a4,d5]@2 ~@2]/2", // C Csus2 F C Dm
M: "[[c4,g4]@7 ~@9, c3@13 ~@3]/2", N: "[[g4,c5]@23 ~ [g4,c5,e5]@2 ~@2 [f4,a4,d5]@2 ~@2]/2",
O: "[e4,g4,c5]@4 [e4,g4,c5] ~@5 [e4,g4,c5]@2 [e4,g4,c5] ~@3", P: "~@4 [f4,a4,c5] ~@5 [f4,a4,c5]@2 [f4,a4,c5] ~@3",
Q: "~@4 [e4,g4,c5] ~@5 [e4,g4,c5]@2 [e4,g4,c5] ~@3", // C
R: "~@2 [g3,c4,f4] ~ [f4,a4,c5] ~ [c4,f4] ~ [f4,a4,c5] ~@3 [f4,a4,d5]@2 ~@2, ~@4 e5@3 ~", // Csus4 F F5 F Dm
S: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [c3,e4,g4,c5] ~ [e4,g4,d5]@2 e4 ~ [f4,a4,c5]@6 [f4,a4,c5] ~ [c3,a4,c5] ~ [g4,c5,e5] ~@3 [f4,a4,d5] ~@3]/2", // C Em7 F C Dm
T: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [c4,f4,a4] ~ [f4,a4,c5]@3 ~ [f4,a4,d5] ~@3]/2", // C Em7 F Dm
U: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~ [d4,g4,c5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [f4,a4] ~ [a3,c4,f4,a4,c5] ~ [c4,f4,a4] ~ [f4,a4]@2 ~@2, ~@7 d4]/2", // C Csus2 F
V: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [c4,f4] ~ [a3,f4,a4,c5] ~ [c4,f4,a4,c5] ~ [f4,a4]@2 ~@2, ~@7 d4]/2", // C Em7 F F5 F
W: "[[e4,g4,c5]@4 [e4,g4,c5] ~ [g3,c4] ~ [e4,g4,c5] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5] ~ [c4,f4] ~ [a3,f4,a4,c5] ~ [c4,f4,a4,c5] ~ d4@4, ~@14 f4 ~, ~@28 a4 ~@3]/2", // C C5 C Em7 F F5 F
X: "[[e4,g4,c5]@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~ [e4,g4,d5]@2 ~@2 [f4,a4,c5]@6 [f4,a4,c5]@3 ~ [d4,g4,b4]@2 g3 ~ [d4,g4,b4]@3 ~]/2", // C Em7 F G
Y: "[[e4,g4,c5]@3 ~ [e4,g4,c5] [c4,e4] [e4,g4,c5]@3 ~ [d4,g4,c5]@3 ~ [f4,a4,c5]@8 ~@2 [g4,c5,e5]@2 ~@2 [f4,a4,d5] ~@3]/2", // C Csus2 F C Dm
Z: "[g3,c4] ~@3", AA: "f4@2 g5@2 d5@2 g4@3 ~ g4@2 g5@2 d5@2", AB: "~@2 d5@2 g5@2 g4@3 ~ g4@2 g5@2 d5@2, f4 ~@3",
AC: "~@4 d5@2 g4@3 ~ g4@2 g5@2 d5@2, f4 ~@3, ~ g5@2 ~@5", AD: "f4 ~@3", AE: "~@2 d5 a4 [g4,c5,e5]@4",
AF: "~@2 [g4,c5,e5]@2 [g4,c5,e5] ~ [g4,c5,e5] ~ [a4,c5,f5]@6 [c4,f4,a4] ~", // C F
AG: "[c5,e5,g5]@2 ~@2 [a4,d5,f5] ~@3 [g4,c5,e5]@3 ~ [g4,c5,e5] ~ [g4,c5,e5]@2", // C Dm C
AH: "~@2 [g4,c5,e5]@2 ~@2 [a4,c5,f5]@6 [a4,c5,f5] ~ [a4,c5,f5] ~", AI: "[c5,e5,g5]@2 ~@2 [a4,d5,f5] ~@3 [g4,c5,e5]@8",
AJ: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5]@2 [a4,c5,f5]@8", // C F
AK: "[~@2 [f4,c5,g5] ~@3 [a4,c5,f5]@2 [g4,c5,e5]@12 ~@2 [e4,g4,c5]!2 [f4,a4,c5]@3 [f4,a4,c5]!2 ~ [f4,a4,c5] [f4,a4]]/2", // Fsus2 F C F
AL: "[f4,a4,c5] [f4,a4] [f4,a4,c5] [f4,a4] [f4,a4,c5] [f4,a4] [f4,a4,c5] [f4,a4] [g4,c5,e5]@8", // F C
AM: "~@2 [g4,c5,e5] ~@13", // C
})).s("gm_electric_guitar_clean").gain(0.44).pan(0)
// chords · epiano1 · "Piano"
const epiano1 = note(`<
~@4 A B C D E F ~@6 G H I J I H K L@2 M@2 N@2 O@2 P@2 Q R S T U V W@2 X Y Z ~ AA AB F AC AD AE H AF AG AH AI AJ AK@2
AL@2 AM@2 AN@2 AO@2 Q R S T U V AP@2 ~@11 AQ AR AS AT@4 AU AV AW AX AY@4 AU AV AZ ~
>`.pickRestart({
A: "~@4 [f3,d4,d5] [f3,c4,f4,c5] [a3,d4,f4,a4]@2, ~@8 [e4,f4] ~@7", B: "d4 e4@12 ~@3, [g3,c4]@7 ~, [c3,g4]@3 ~",
C: "~@4 [a3,f4,d5] ~ [a3,d4,a4] ~", D: "[c3,e4,g4]@3 ~, g3@7 ~, d4 ~@15", E: "~@4 [a3,f4,d5] [d4,a4] [a3,d4,f4]@2",
F: "[c4,e4,g4]@15 ~", G: "~@4 [d4,g4] [c4,f4] [a3,d4,f4]@2", H: "d4 e4@15, [g3,c4,g4], c3@3 ~",
I: "~@4 [d4,g4] [c4,e4] [a3,f4]@2", J: "[g3,c4,e4], c3@3 ~", K: "~@4 [d4,g4] [c4,e4] [a3,d4,f4]@2",
L: "[[g3,c4,e4]@9 ~ [g3,d4]@3 ~ [c4,f4]@10 [c4,g4]@4 [a3,f4]@4, c3@6 ~ a3@4 ~@5]/2", // C G5 F5 C5 Dm
M: "[[g3,c4,e4]@9 ~ [g3,c4,d4]@4 [a3,c4,f4]@8 g3@2 [a3,f4]@2 [c4,e4]@2 [d4,f4]@3 ~]/2", // C Gsus4 F Dm C Dm
N: "[[g3,c4,e4]@9 ~ [g3,d4]@4 [a3,c4,f4]@8 g3@2 a3@2 [c4,e4]@2 [a3,d4,f4]@4, ~@24 f4 ~@7]/2", // C G5 F C Dm
O: "[[g3,c4,e4]@9 ~ [d4,g4]@4 [a3,c4,f4]@8 g3@2 a3@2 [c4,e4]@2 [d4,f4]@3 ~, ~@24 f4 ~@7]/2", // C G5 F C Dm
P: "[~ e4@9 [g3,e4,g4]@4 [c4,f4,a4]@6 [c4,f4,a4] ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@5 ~, [g3,c4]@9 ~@23]/2", // C F G C5
Q: "~@2 e4@2 d4 e4@2 g3, c3@15 ~, [g3,c4]@5 ~@3, ~@4 g4@11 ~", // C5
R: "~@4 [e4,g4] c4 [a3,d4]@2, [f3,a3,c4] ~, ~ f4@3 ~@4, ~ a4 ~@2, ~@3 c5@3 ~@2", // Em D5 F
S: "[c3,g3,c4]@2 [c3,g3,c4,e4]@2 [g3,d4] [c3,g3,e4]@2 [e3,g3,d4]", // C5 C G5 C Em7
T: "[c4,f4]@4 [c4,f4]@3 ~ [e4,g4]@2 [g3,c4]@2 ~@2 f3@2, [f2,f3,a3]@2 g2 [a2,a3,d4]", // F5 Em C5 F D5
U: "[c4,e4]@2 [c4,e4]@2 [c3,e4] d4 c4 e4, [c3,g3]@7 ~ g3@5 ~@3, ~@10 c3@5 ~", // C C5
V: "~ c5 a4 g4 ~ c5 [a2,f3,d4,f4]@2, c3@2 [g2,f3,c4,g4] ~, [f3,c4] ~@3, ~ f4@4 ~@11", // Dm Csus4 F5
W: "[[c3,g3,c4]@21 ~@2 [g3,a3,c4,d4] [a3,d4,f4]@3 ~ [c4,d4,f4]@3 ~]/2", X: "d4 e4@12 ~@3, g3@15 ~, [c3,c4,g4]@13 ~@3",
Y: "~@2 [c4,e4,g4] [a3,d4,f4]", Z: "[g3,c4,e4]@15 ~", AA: "d4 ~ c5@13 ~, [g3,e4,g4]@15 ~",
AB: "~@13 a4@3, ~@12 [d4,f4]@3 ~", AC: "~@5 c5 d5@2, ~@8 [a3,d4,f4]@7 ~, ~@9 a4@6 ~", AD: "[c4,e4,g4]@7 [c4,c5]",
AE: "e5 g5 [e4,e5] [g3,g4] [e4,e5] [f4,f5] ~ [f4,f5], e4 ~ g4 ~@5 c5@4 [d4,a4,d5]@4", // E G E F D5
AF: "~@4 [f3,a3,d4] [g3,e4] [f3,a3,f4]@2", AG: "d4 e4@15, [g3,c4], c3@3 ~",
AH: "~@7 e4 [a3,g4]@2 [c4,f4]@2 [f3,a3,d4]@4, ~@7 d4@3 ~@6", AI: "[g3,c4,e4]@15 ~, c3@3 ~",
AJ: "~@4 [a3,d4,g4] [c4,f4] [f3,a3,d4]@2", // Dsus4 F5 Dm
AK: "[d4 e4@9 [g3,d4,g4]@4 [a3,c4,f4]@4 c4@2 d4@2 [g3,c4,e4]@2 d4@2 c4@2 [a3,d4,f4]@4, [c3,g3,c4]@5 ~@4 [a3,f4]@2 ~ [a3,f4]@2 ~@2]/2", // G5 F C Dm C5 Dm
AL: "[[g3,c4,e4]@9 ~ [d4,g4]@4 [a3,c4,f4]@9 ~ a3@2 [c4,g4]@2 [d4,f4]@3 ~, ~@24 a4 ~@7]/2", // C G5 F C5 Dm
AM: "[[g3,c4,e4]@9 ~ [d4,g4]@4 [a3,c4,f4]@9 ~ a3@2 [c4,g4]@2 [a3,d4,f4]@4, ~@24 a4 ~@7]/2", // C G5 F C5 Dm
AN: "[d4 e4@9 [d4,g4]@4 [a3,c4,f4]@9 ~ a3@2 g4@2 [d4,f4]@3 ~, [g3,c4]@9 ~@15 a4 ~ c4 ~@5]/2", // G5 F Dm C5
AO: "[[g3,c4,e4]@9 ~ [d4,g4]@4 [a3,c4,f4]@7 ~ [b3,d4,g4]@6 [g3,b3,d4]@3 ~]/2", AP: "[[c4,g4]@15 ~@17, c3@21 ~@11]/2",
AQ: "[f3,c4,f4]@5 ~ [g3,b3,d4]@4 c4@2 [b3,d4]@2 g3@2", AR: "[f3,c4,f4]@5 ~ [g3,b3]@3 ~ c4@2 b3@2 g3@2",
AS: "[f3,c4,f4]@5 ~ [g3,b3,d4]@9 ~", // F5 G
AT: "[[f3,c4,f4]@20 ~@2 e4@2 d4 e4@2 g3 [c4,a4,c5]@2 ~ c4, ~@40 c3@15 ~@9, ~@20 [g3,c4]@5 ~@3 [f3,a3]@4, ~@44 g4@11 ~@5 f4@4]/4", // F5 F C5 F
AU: "[e4,g4] [g3,c4] [a3,d4]@2 [c3,g3,c4]@2 [c3,g3,c4,e4]@2", // Em C5 D5 C5 C
AV: "[g3,d4]@2 [c3,g3,e4]@4 [e3,g3,d4]@2 [c4,f4]@4 [c4,f4]@3 ~, ~ [f2,f3,a3]", // G5 C Em7 F5 F
AW: "[e4,g4] [g3,c4] ~ f3 [c4,e4]@2 [c4,e4]@2, g2@4 [a2,a3,d4]@4 [c3,g3]@7 ~", // Em C5 C D5 C5
AX: "[c3,e4] d4 c4 e4 [c3,c4,f4]@4, g3@5 ~@3 f3@5 ~@3, ~@2 c3@5 ~@9", // C F5
AY: "[[g2,f3,c4,g4]@4 [a2,f3,d4,f4]@4 c3@9 ~ c3@4 [e3,g3,d4]@2 [f3,a3,f4]@4 [c4,f4] ~ [e3,c4,e4,g4]@4 [f3,c4,f4,a4]@5 ~@5 e4@4 d4@2 e4@4 g3@2 [c4,a4,c5]@4 ~@2 c4@2, ~@8 [g3,c4,e4]@12 ~@20 c3@15 ~@9, ~@20 [g3,c4]@5 ~@3 [f3,a3]@4, ~@44 g4@11 ~@5 f4@4]/4", // Csus4 Dm Em7 F F5 C F C …
AZ: "[e4,g4]@2 [g3,c4]@2 ~@2 f3@2 [c3,g3]@7 ~, g2 [a2,a3,d4] [c4,e4] ~", // Em C5 D5 C
})).s("gm_epiano1").gain(0.4).pan(0.8)
// chords · acoustic guitar steel · "Acoustic Rhythm"
const acoustic_guitar_steel = note(`<
~@5 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AN H AO AP AQ AR AS
AT O P Q AU S T AV AW AX AY AZ BA BB BC BD AD BE AF BF AH BG ~@12 BH@4 BI BJ BK BL BM BN BO BP BQ BR BK BL BM BS BT
>`.pickRestart({
A: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4] ~ [e3,g3,c4,e4] ~ [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [c3,e3,g3,c4,e4]@2 d3@2", // C
B: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4] ~ [f3,g3,c4,f4]@2 a3@2 g3@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]!2, ~@2 [f3,c4,f4] ~", // F Fsus2 F Fsus2 F5
C: "[g3,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [c3,e3,g3,c4,e4]@2 [d3,g3,c4,e4] [c3,d3,g3,c4,e4], [c3,e3]@3 ~@5, c4 ~@15", // C
D: "[a3,c4,f4]@2 [a3,c4,f4] ~ [f3,a3,c4,f4] ~ [g3,c4,f4]@2 a3@2 g3@2 a3@2 g3@2, f3 ~ [f3,c4,f4]!2", // F Csus4 F5
E: "[g3,c4,e4]@3 ~ [g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2, [c3,e3]@3 ~@5", // C
F: "[f3,a3,c4,f4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,c4,f4]@2 a3@2 g3@2, ~@3 [f3,c4,f4]", // F Csus4 F Csus4 F5
G: "[g3,c4,e4]@4 [g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,c4,e4]@2 [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2, [c3,e3]@6 ~@2 g3 ~@7", // C
H: "[a3,c4,f4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 [a3,c4,f4]@2 [g3,c4,f4]@2 a3@2 g3@2, f3@3 ~ f3@2 [f3,c4,f4]@2", // F Csus4 F Csus4 F5
I: "[g3,c4,e4]@4 [g3,c4,e4] ~ [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2 e3@2 d3@2, [c3,e3]@3 ~@3 [c3,g3,c4,e4]@2", // C
J: "[f3,a3,c4,f4]@4 [c4,f4] ~ [g3,c4,f4]@2 [a3,c4,f4]@2 [g3,c4,f4]@2 a3@2 g3@2, ~@2 f3 [f3,c4,f4]", // F F5 Csus4 F Csus4 F5
K: "[g3,c4,e4]@4 [g3,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [c3,e3,g3,c4,e4]@2 d3@2, [c3,e3]@3 ~@5", // C
L: "[a3,c4,f4]@4 f4 ~ [g3,c4,f4]@2 [f3,c4,f4]@2 c3@2 [d3,c4,f4]@2 a2@2, f3@7 ~@9", // F Csus4 F5 Dm7
M: "[e3,g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [e3,c4,e4]@2 [d3,g3,c4,e4]@2, c3@3 ~@3 c3@2, ~@12 g3 ~@3", // C C5 C
N: "[a3,c4,f4]@2 [a3,c4,f4] ~ [a3,f4] ~ [f3,g3,c4,f4]@2 [c4,f4]@2 [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,c4,f4]@2, f3@5 ~@3 f3@4 ~@4, ~@8 a3 ~@7", // F Dm Fsus2 F5 Csus4 F Csus4
O: "[g3,c4,e4]@4 [g3,c4,e4] ~ [d3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2, [c3,e3]@7 ~ c3@4 ~@4", // C
P: "[a3,c4,f4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 a3@2 g3@2 [a3,c4,f4]@2 [g3,c4,f4]@2, f3@3 ~ [f3,c4,f4]@2 f3@2", // F Csus4 F Csus4 F5
Q: "[g3,c4,e4]@4 g3 ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2, [c3,e3]@3 ~@3 c3@2", // C
R: "[a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [f3,g3,c4,f4]@2 [a3,c4,f4]@2 [g3,c4,f4]@2 a3@2 g3@2, f3@5 ~@3 f3@4 [f3,c4,f4]@4", // F Fsus2 F Csus4 F5
S: "[g3,c4,e4]@3 ~ [g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2, [c3,e3]@3 ~ c3@2 c3@2", // C
T: "[a3,c4,f4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 [a3,c4,e4]@2 [g3,c4,e4]@2 [f3,a3,d4]@3 ~, f3@7 ~ f3@4 ~@4", // F Csus4 Am C Dm
U: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4] ~ [g3,c4,e4] ~ [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2", // C
V: "[a3,c4,f4]@2 [a3,c4,f4] ~ [a3,f4] ~ [f3,g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,f4]@2, f3@3 ~@5", // F Dm Fsus2 F Fsus2 F G7
W: "[c3,e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3]@2", // C Csus2
X: "[a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4] ~ [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2, f3@7 ~@9", // F Am Csus4 F Fsus2 F Fsus2
Y: "[c3,e3,g3,c4,e4]@4 [e3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [c3,e3,g3,c4,e4]@2 [d3,c4,e4]!2", // C
Z: "[f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4] ~ [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2 [f3,a3,c4,f4]@2 g3@2", // F Csus4 F Fsus2 F
AA: "[g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2, [c3,e3]@3 ~@5", // C
AB: "[a3,c4,f4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 [d3,g3,d4,g4]@3 ~ [d3,g3,d4,g4]@2 [d3,g3,d4,g4] [d3,g3,d4], f3@7 ~@9", // F Csus4 G5
AC: "[c3,e3,g3,c4,e4]@2 ~ [c3,e3,g3,c4,e4] [e3,g3,c4,e4] ~ [d3,g3] d3 [c3,e3,g3,c4,e4]@2 d3@2 [c3,c4,e4]@2 d3@2", // C G5 C
AD: "[f3,a3,c4,f4]@3 [f3,a3,c4,f4]!2 ~ [f3,g3,c4] [f3,c4,f4] [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4] [f3,a3,c4,f4]@2 g3@2", // F Fsus2 F5 F
AE: "[c3,e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~ g3 ~ [c3,e3,g3,c4,e4]@2 d3@2 [e3,g3,c4] [e3,g3,c4,e4] [d3,g3,c4,e4]@2, ~@3 c3", // C
AF: "[f3,a3,c4,f4]@3 [f3,a3,c4,f4]!2 ~ [f3,g3,c4,f4]!2 [f3,a3,c4,f4]@2 ~ [c4,f4] [f3,a3,c4,f4]@2 g3@2", // F Fsus2 F F5 F
AG: "[c3,e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~ g3 [d3,g3,c4,e4] [c3,e3,g3,c4,e4]@2 d3@2 [c4,e4] [e3,g3,c4,e4] [d3,g3,c4,e4]@2, ~@3 c3", // C
AH: "[f3,a3,c4,f4]@3 [f3,a3,c4,f4]!2 ~ [f3,g3,c4,f4]!2 [f3,a3,c4,f4]@2 ~ [f3,a3,c4] [f3,a3,c4,f4]@2 g3@2", // F Fsus2 F
AI: "[[c3,e3,g3,c4,e4]@13 ~@3]/2", // C
AJ: "[c3,e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [c4,e4] ~ [d3,g3,c4]@2 e3@2 d3@2 [e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2, ~@2 [c3,g3,c4,e4] c3", // C Csus2 C
AK: "[f3,a3,c4,f4]@2 [f3,a3,c4,f4] ~ [a3,c4,f4] ~ g3@2 a3@2 g3@2 a3@2 g3@2, ~@2 [f3,c4,f4]!2", // F F5
AL: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4]@2 [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2, c3@6 ~@2 e4 ~@7", // C
AM: "[f3,c4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2 [f3,a3]@2 [f3,g3]@2, [a3,f4]@3 ~@9 [c4,f4]@4", // F5 F Csus4 F Fsus2 F Fsus2 Dm …
AN: "[g3,c4,e4]@4 [g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2 [c3,e3]@2 [c3,d3]@2, [c3,e3]@3 ~@3 [g3,c4,e4]@2", // C Csus2 C
AO: "[g3,c4,e4]@2 [g3,c4,e4]@2 [e3,g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,d3,g3,c4,e4]@2 [c3,e3,c4,e4]@2 [d3,g3,c4,e4] ~, [c3,e3]@5 ~@7 g3 ~@3", // C
AP: "[a3,c4,f4]@4 [c4,f4] ~ [f3,g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2 a3@2 g3@2, f3@3 ~@3 [f3,c4,f4]@2", // F F5 Fsus2 F Fsus2 F5
AQ: "[e3,g3,c4,e4]@2 [g3,c4,e4]@2 [e3,g3,e4] ~ [c3,d3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2, c3@3 ~ c3@2 ~@2", // C Em C
AR: "[a3,c4,f4]@4 f4 ~ [g3,c4,f4]@2 [f3,a3,c4,e4]@3 ~ [g3,a3,d4]@4, f3@7 ~@9", // F Csus4 Fmaj7 Gsus2
AS: "[g3,c4,e4]@3 ~ [g3,c4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [e3,c4,e4]@2 [d3,g3,c4,e4]@2, [c3,e3]@3 ~@3 c3@2, ~@12 g3 ~@3", // C C5 C
AT: "[f3,f4]@4 [a3,c4,f4] ~ [f3,g3,c4,f4]@2 [c4,f4]@2 [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,c4,f4]@2, [a3,c4]@3 ~@5 f3@4 ~@4, ~@8 a3 ~@7", // F Fsus2 F5 Csus4 F Csus4 Am
AU: "[f3,c4]@4 [a3,c4,f4] ~ [f3,g3,c4,f4]@2 [a3,c4,f4]@2 [g3,c4,f4]@2 a3@2 g3@2, [a3,f4]@3 ~@5 f3@4 [f3,c4,f4]@4", // F5 F Fsus2 F Csus4 Dm F5
AV: "[g3,c4,e4]@3 ~ [g3,c4,e4] ~ [c3,d3,g3,c4,e4]@2 e3@2 d3@2 [c3,e3,g3,c4,e4]@2 d3@2, [c3,e3]@3 ~ [c3,g3,c4,e4]@2 ~@2", // C
AW: "[a3,c4,f4]@4 [a3,f4] ~ [g3,c4,f4]@2 a3@2 g3@2 a3@2 g3@2, f3@7 ~ [f3,c4,f4]@4 [f3,c4,f4]@4", // F Dm Csus4 F5
AX: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4] ~ [g3,c4,e4] ~ [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [d3,g3,c4,e4]@2", // C
AY: "[a3,c4,f4]@4 [a3,c4] ~ [f3,g3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,g3,c4,f4]@2 [a3,c4,f4]@2 [g3,a3,c4,f4]@2, f3@3 ~@5", // F Am Fsus2 F Fsus2 F
AZ: "[g3,c4,e4]@3 ~ [c4,e4] ~ [c3,d3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 d3@2 [c3,e3,c4,e4]@2 [d3,g3,c4,e4]@2, [c3,e3]@6 ~@6 g3 ~@3", // C
BA: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~ [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,c4,f4]@2 [f3,a3,c4,f4]@2 [g3,c4,f4]@2, f3 ~@3", // F Csus4 F Csus4 F Csus4
BB: "[e3,g3,c4,e4]@4 [g3,c4,e4] ~ [d3,g3,c4,e4]@2 e3@2 d3@2 [c3,e3,g3,c4,e4]@2 d3@2, c3@3 ~ [c3,g3,c4,e4]@2 ~@2", // C
BC: "[a3,c4,f4]@4 [a3,c4,f4] ~ [g3,c4,f4]@2 [b3,d4,g4]@2 [g3,b3,d4,g4]@2 [b3,d4,g4]@2 [g3,b3,d4,g4]@2, f3@7 ~@9", // F Csus4 G
BD: "[c3,e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~ [d3,g3] d3 [c3,e3,g3,c4,e4]@2 d3@2 [c3,c4,e4]@2 d3@2", // C G5 C
// … 155 more lines
More by Andy Kim
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.