0:00/0:00
// Loco in Acapulco — Four Tops
// 122 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
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.
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~ A B C D A B C E F G H I H G H I H J H K H G H K H L H M H G H N A B C D C O A E H G H K H G H I P Q R S T U V W X@2
Y Z AA@2 AB AC AD@2 AE AF AG AH AG AI AJ AK AJ AI AJ AI AL AM AN AO AP AQ AN AR AS AT G H M H L AU AV H G H M AU L H K
H G AW M H L AU I H G H M H G H AX
>`.pickRestart({
A: "e1 ~@2 a1 ~ a1 ~ f#1", B: "~@6 f#1@2 b1@5 ~@3", C: "e1@3 ~@3 a1@2 ~@2 a1@2 ~@2 f#1@2", D: "~ a1 ~ f#1 ~ b1@3",
E: "~@2 a1@2 ~@2 f#1@2 ~@2 b1@5 ~", F: "e1@2 f#1@2 g#1 ~ a1@3 ~ a1@2 g#1@2 f#1@2", G: "~ f#1 c#2 f#1 b1 c#2 b1 c#2",
H: "e1@2 f#1@2 g#1@2 a1@3 ~ a1@2 g#1@2 f#1@2", I: "~@2 f#1@2 c#2@2 f#1@2 b1@3 ~ b1@2 ~@2",
J: "~@2 f#1@2 c#2@2 f#1@2 b1@2 c#2@2 b1@2 e2 ~", K: "~@2 f#1@2 c#2@2 f#1@2 b1@3 ~ b1@3 ~",
L: "~ f#1 c#2 f#1 b1 c#2 b1 g#1", M: "~ f#1 c#2 f#1 b1 ~ b1 ~", N: "~@2 f#1@2 c#2@2 f#1 ~ b1@3 ~ b1@2 ~@2",
O: "~@6 f#1@2 b1@2 ~@2 b1@3 ~", P: "e1@3 ~@4 e1 d2@2 e1@2 g1@2 d2@2", Q: "e1 ~ e1@2 ~@3 e1 d2@2 e1@2 ~@2 e1@2",
R: "e1@4 ~@3 e1 d2@2 e1@2 g1@2 d2@2", S: "e1@3 ~@4 e1!2 ~ e1@2 g1@2 d2@2", T: "e1@4 ~@3 e1 d2@2 e1@2 g1@2 e1 ~",
U: "e1 ~ e1@2 ~@3 e1 d2@2 e1@2 g1@2 e1@2", V: "a1@5 ~@2 a1@3 g1@2 a1@2 g1@2", W: "b1@5 ~@2 b1 d2@2 b1@2 a1 d2 b1 a1",
X: "[b1@6 c2@2 ~@2 b1@2 ~@2 a1@7 ~@2 g1 a1 ~ a1@2 g1 a1 c2 ~]/2", Y: "a1@5 ~@2 g1 a1 ~ a1@3 ~ a1@2",
Z: "b1 ~ b1@3 ~ a1@3 ~ b1@3 ~ a1 ~", AA: "[b1@5 ~ c2@3 ~ b1@4 a1@7 ~ g1 a1 b1 ~ a1 ~ g1 ~ a1 ~]/2",
AB: "b1@3 ~ b1 ~ a1@2 b1 ~ b1@2 d2 a1 b1 a1", AC: "b1 ~ b1@4 a1@2 b1 ~ d2@4 b1@2",
AD: "[a1@2 a1@2 ~@2 a1 ~ a1 ~ a1@3 ~ b1@7 ~ b1 ~ b1 ~ b1@3 ~ b1@2]/2", AE: "e1 ~@2 a1 ~@3 f#1",
AF: "~@8 b1@2 ~@2 b1@3 ~", AG: "e1@2 ~@4 a1@3 ~@5 f#1@2", AH: "~ b1", AI: "~@8 b1@3 ~ b1@2 ~@2",
AJ: "e1@3 ~@3 a1@3 ~@5 f#1@2", AK: "~@8 b1@5 ~@3", AL: "g#1@4 ~@2 g#1@3 ~ g#1@2 b1@4",
AM: "c#2@4 ~@2 g#1@2 c#2 ~ c#2@2 b1@2 c#2@2", AN: "f#1@6 c#2@2 f#2 ~ f#2@2 c#2@2 f#1@2",
AO: "b1 ~ b1@3 ~ b1 ~ b1 ~ b1@3 ~ b1@2", AP: "g#1@5 ~ g#1@3 ~ g#1@2 b1@2 g#1@2",
AQ: "c#2@5 ~ c#2@3 ~ c#2@2 g#1@2 c#2@2", AR: "b1 ~ b1@3 ~ b1@3 ~ b1@2 b2@2 b1 ~", AS: "b1 ~ b1@3 ~ b1@3 ~ b1@6",
AT: "e1 ~ f#1@2 g#1@2 a1@3 ~ a1@2 g#1@2 f#1@2", AU: "e1 f#1 g#1 a1 ~ a1 g#1 f#1",
AV: "~@2 f#1@2 c#2@2 f#1 ~ b1@2 ~@2 b1@2 ~@2", AW: "e2 ~ f#1@2 g#1@2 a1@3 ~ a1@2 g#1@2 f#1@2",
AX: "~@2 f#1@2 c#2@2 f#1@2 b1@2 ~@2 b1@3 ~",
})).s("gm_electric_bass_finger").gain(0.51)
// other · brass section · "BRASS"
const brass_section = note(`<
~ A@2 B@2 C D E@2 ~@7 F ~@17 G ~@3 G ~@32 H@2 I@2 C J K@2 ~@10 L ~@3 G ~@3 G ~@3 M ~@2 N O P@2 C D E@2 N Q R@2 C O S@2
>`.pickRestart({
A: "[b4@18 a4!2 a4@2 g#4!3 ~ f#4!2 f#4@2 e4 f#4]/2", B: "[g#4 ~ e4@2 ~@2 b3@21 ~@5]/2",
C: "e4 f#4 g#4 ~@5 e4 f#4 g#4 ~@5", D: "~@2 a4!3 ~ g#4!3 ~ f#4!3 ~ e4 f#4", E: "[g#4 ~ b4 ~@3 b4@25 ~]/2",
F: "~@12 [b4,b5]!2 ~@2", G: "~@6 [b4,b5] ~", H: "[b4@18 a4!3 ~ g#4!2 g#4@2 f#4!2 f#4@2 e4 f#4]/2",
I: "[g#4 ~ [e4,f#4] ~@3 b3@24 ~@2]/2", J: "~@2 a4 [a4,b4] a4@2 g#4!3 ~ f#4!2 f#4@2 e4 f#4",
K: "[g#4 ~ b4 ~@3 b4@26]/2", L: "~@12 [b4,b5] ~@3", M: "~@6 b5 ~, ~@12 b4 ~@3", N: "b4",
O: "~@2 a4!3 ~ g#4!3 ~ f#4!2 f#4@2 e4 f#4", P: "[g#4 ~ e4@2 ~@2 b3@26]/2",
Q: "~@2 a4!3 ~ g#4!2 g#4@2 f#4!2 f#4@2 e4 f#4", R: "[g#4 ~ e4 ~@3 b3@26]/2",
S: "[g#4 ~ b4@2 ~@2 b4@20 ~@2 [b4,b5] ~@3]/2", // B
})).s("gm_brass_section").gain(0.46).pan(0.7)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@9 A@2 B@2 C D E F ~@32 G H I@3 J@7 K@2 L@4 ~@11 M N O P@2 Q@2 R@3 S@2 T@2 U@2 V@2 W@2 X Y Z AA AB AC AD@2 AE AF AG
AH AI AJ AK AL AM Y AN AO AP AQ
>`.pickRestart({
A: "[[e4,e5,e6]@6 [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@4 ~@10 [b3,b4,b5]@2 [c#4,c#5,c#6] ~]/2", // E B C# E C# B C# E …
B: "[[g#3,e4,e5,g#5]@3 ~@3 [a3,c#4,e4,a4,c#5,e5]@4 ~@4 [c#3,f#3,a3,c#4,f#4,a4,c#5]@4 ~@4 [b3,b4,b5] [c#4,c#5,c#6] [e4,e5] ~ [g#4,g#5] ~ [f#4,f#5,f#6] [e5,e6] [c#5,c#6] [b4,b5], g#4 ~@23 e6@2 g#6@2 ~@4]/2", // C#m A F#m B C# E G# F# …
C: "[e4,e6]@5 ~ [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e6]@2, e5 ~@13 e5 ~", // E B C# E C# B C# E
D: "~@8 [b3,b4,b5]@2 [c#4,c#5,c#6]@2 [g#3,g#4,g#5]@2 [c#4,c#5,c#6] ~", // B C# G# C#
E: "[e4,g#4,e5,g#5]@2 ~@4 [a3,c#4,a4,c#5,a5]@3 ~@5 [f#3,c#4,f#4,a4,f#5,a5,c#6]@2, ~@14 c#5 ~", // E A F#m
F: "~@8 [e5,e6] [c#5,c#6] [b4,b5] [g#4,g#5] [c#5,c#6] [b4,b5] [g#4,g#5] ~", G: "[g3,b3,g4,b4,e5], e3@3 ~@13, e4 ~@15",
H: "[f#3,a3,d4,f#4,a4,d5]", I: "[~@2 e6@5 [e5,e6]@5 ~@12, e4, [g3,g4]@23 ~, e5!2 ~@10, ~ [b3,b4]@45 ~@2]/3",
J: "[[f#3,f#4,d6]@14 [c5,c6] [b4,b5] [e3,c4,e4,c6]@15 ~ b5@4 [d5,d6]@3 ~ [b4,b5]@2 a5@2 [b4,b5]@3 ~ [b4,b5]@6 [e3,g3,c4,e4,g4,c6]@3 ~ [d3,f#3,b3,d4,f#4,a4,b5]@4 c5@3 c5@3 ~@2 [e5,e6]@4 [c5,c6]@2 a5@2 ~@8 [e5,g5,e6,g6]@4 [c5,e5,c6,e6]@3 ~ b4@2 f#4@10 ~ [b4,b5]@3 [d5,d6]@2, a3@54 c5 ~@3 [b4,a5] ~@3 c6@3 c4@30 ~ b4@2 ~@8 f#4@6, a4@32 b4 ~@9 a4@16 ~@4 a4@14 a4@2 [c5,c6]@2 [e5,e6]@4 [g3,g4]@10 [d5,b5,d6]@12 f#5@2 ~@4, d4@16 ~@15 [f#3,f#4]@22 ~@9 a3@50, d5 ~@15 c5 ~@15 [d3,b3,d4]@22 ~@8 [e3,e4]@33 ~ [d3,f#3,b3,d4]@16]/7", // D C B C D B C Bm7 …
K: "[[b4,d5,b5,d6]@6 [e3,g3,c4,e4,g4,e5,c6,e6]@3 ~ [d3,f#3,b3,d4,f#4,d5,b5,d6]@3 c5 [e5,c6,e6]@8 [e5,g5,e6,g6]@4 [e5,c6,e6]@6, ~@6 c5 ~@3 [a3,a4]@19 ~@3, ~@10 b4 ~@2 [e3,c4,e4]@16 ~@3, ~@14 [g3,g4]@15 ~@3, ~@14 c5 ~@11 c5@3 ~@3]/2", // Bm C Bm C Em C A C …
L: "[[b4,f#6]@14 [d5,b5,d6]@3 ~ [f#5,f#6,a6] ~ [d5,f#5,d6,f#6] ~ [d5,b5,d6] ~ [f#5,f#6] ~ [d5,f#5,d6,f#6] ~ [b4,d5,f#5,b5,d6,f#6] ~ [a4,d5,e5,a5,d6,e6]@2 [e5,a5]@2 [a4,d5,e5,a5,d6,e6] ~@3 [a4,d5,e5,a5,d6,e6] ~@3 [a4,d5,e5,a5,d6,e6] ~@3 [c4,b4,c5] ~ b6 f#6 e6 [f#5,f#6] e6 [b4,b5] [e5,e6] [f#5,f#6] [b5,b6] [f#5,f#6] [e5,e6] [b4,b5] ~@4, d4@45 ~@4 f#5@2 ~@13, [b3,f#4]@31 ~ [a3,e4]@13 ~ [b3,e4,f#4]@18, a4@24 a5@6 ~@2 a4 ~@13 [e5,f#5]@4 e5@2 e5@2 ~@10, [d5,f#5,a5,d6]@7 b4@2 a5@2 b4 a6 ~@10 b5 b5 ~@7]/4", // B5 G F#m D G F# D Bm …
M: "~@14 [e4,e5] [f#4,g#4,f#5,g#5]", N: "b4@3 b3@5, b5, ~@3 b4@3 ~@2", O: "[g#3,g#5]@3 [e3,e4,e5], g#4 ~@15",
P: "[f#4 ~@15 [b3,d#4,b4,d#5]@15 [g#3,g#4], [f#3,f#5]@31 ~]/2", // B G# F#
Q: "[[b3,b4,b5]@11 [g#3,g#5]@3 [e3,e4,e5]@2, ~@22 g#4 ~@9]/2", R: "[[f#3,f#4,f#5]@7 [b3,b4,b5]@17]/3",
S: "[[e4,e5,e6]@6 [b3,b4,c#5,b5,c#6] [c#4,c#5,e5] e4@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@10 [b3,b4,b5]@4 [c#4,c#5,c#6]@2 ~@2, ~@7 e6@2 ~@23, ~@8 e5 ~@23]/2", // E Bsus2 C#m C# B C# E B …
T: "[[g#3,e4,g#4,e5,g#5]@3 ~@3 [a3,c#4,e4,a4,c#5,e5]@4 ~@4 [f#3,a3,c#4,f#4,a4,c#5]@4 ~@6 [b3,f#4,b4,f#5] ~@3 [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6] ~]/2", // C#m A F#m B5 B C# E
U: "[[e4,e5,e6]@6 [b3,b4,b5] [c#4,c#5,c#6] [e4,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@8 ~@2 [b3,b4,b5]@2 [c#4,c#5,c#6] ~ [g#4,g#5]@2 [b4,b5] ~, ~@8 e5 ~@23]/2", // E B C# E C# B C# E …
V: "[[e3,e4,e5]@4 ~@2 [c#4,a4,c#5] ~@7 [f#3,a3,c#4,f#4,a4,c#5]@4 ~@4 [b3,f#4,b4,f#5]@2 ~@4 [e5,e6] [c#5,c#6] [b4,b5] [g#4,g#5], ~@3 [a3,a5]@2 ~@11]/2", // E F#m B5 E C# B G# A
W: "[[e5,e6]@6 [b3,b4,b5] [c#4,c#5,c#6] [e4,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@10 ~@4 [b3,b4,b5]@2 [c#4,c#5,c#6] ~, ~@8 e5 ~@23]/2", // E B C# E C# B C# E …
X: "[e4,g#4,e5,g#5]@3 ~@3 [c#4,e4,c#5,e5]@3 ~@5 [f#3,a3,c#4,f#4,a4,c#5]@2", // E C#m F#m
Y: "~@8 [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6] ~ [g#4,g#5,g#6] [f#4,f#5,f#6] [e5,e6] [c#4,c#5,c#6]", // B C# E G# F# E C#
Z: "[e4,e5,e6]@5 ~ [b3,b4,b5] [c#4,c#5,c#6] [e4,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@2, ~@8 e5 ~@7", // E B C# E C# B C# E
AA: "~@8 [b3,b4,b5]@2 [c#4,c#5,c#6]@2 [g#3,g#4,g#5]@2 [b3,b4,b5] ~", // B C# G# B
AB: "[e3,e4,g#4,e5,g#5]@2 ~@4 [a3,c#4,a4,c#5,a5]@3 ~@5 [c#4,f#4,a4,f#5,a5,c#6]@2, ~@14 c#5 ~", // E A F#m
AC: "~@8 [e5,e6] [c#5,c#6] [b4,b5] [g#4,g#5] [c#5,c#6] [b4,b5] [c#5,c#6] ~, ~@7 c#4", // E C# B G# C# B C#
AD: "[[e4,e5,e6]@6 [b3,b4,b5] [c#4,c#5,c#6] [e4,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@4 ~@10 [b3,b4,b5]@2 [c#4,c#5,c#6] ~, ~@8 e5 ~@23]/2", // E B C# E C# B C# E …
AE: "[c#4,e4,g#4,c#5,e5,g#5] ~@5 [a3,c#4,e4,a4,c#5,e5]@2 ~@6 [f#3,a3,c#4,f#4,a4,c#5]@2", // C#m A F#m
AF: "~@8 [b4,b5] [c#5,c#6] [e5,e6] ~ [g#5,g#6] [f#5,f#6] [e5,e6] [c#4,c#5,c#6]", // B C# E G# F# E C#
AG: "[e4,e5,e6]@6 [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e6]@2, ~@14 e5 ~", // E B C# E C# B C# E
AH: "~@8 [b3,b4,b5]@2 [c#4,c#5,c#6] ~ [g#3,g#4,g#5]@2 [b3,b4,b5] ~", // B C# G# B
AI: "[e3,e4,g#4,e5,g#5]@3 ~@3 [a3,c#4,a4,c#5,a5]@3 ~@5 [c#4,f#4,a4,c#5,f#5,a5,c#6]@2", // E A F#m
AJ: "~@6 [b3,f#4,f#5,b5]@3 ~@3 [b3,f#4,b4,f#5,b5] ~@3, ~@6 b4 ~@9", // B5
AK: "[e4,e5,e6]@5 ~ [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e5,e6]@2", // E B C# E C# B C# E
AL: "~@12 [b3,b4,b5]@2 [c#5,c#6] ~", // B C#
AM: "[e4,g#4,e5,g#5]@2 ~@4 [a3,c#4,e4,a4,c#5,e5]@3 ~@5 [f#3,a3,c#4,f#4,a4,c#5]@2", // E A F#m
AN: "[e4,e5,e6]@5 ~ [b3,b4,b5] [c#4,c#5,c#6] [e4,e5,e6]@2 [c#4,c#5,c#6] [b3,b4,b5] [c#4,c#5,c#6]@2 [e4,e6]@2, ~@14 e5 ~", // E B C# E C# B C# E
AO: "~@8 [b3,b4] ~ [c#4,c#5,c#6] ~ [g#3,g#5]@2 [a3,a4,b4,b5] ~, ~@8 b5@2 ~@2 g#4 ~@3", // B C# G# Asus2
AP: "[e3,e4,e5] ~@2 [a3,c#4,a4,c#5,a5] ~@3 [f#3,c#4,f#4,a4,c#5,f#5,a5]", // E A F#m
AQ: "~@8 [f#3,f#4,f#5] [g#3,g#4,g#5] [b3,b4,b5] ~@5", // F# G# B
})).s("gm_string_ensemble_1").gain(0.24)
// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@8 A ~@23 B C ~@6 D E ~@24 F G ~@6 H I ~@11 J K ~@31>".pickRestart({
A: "~@7 [d4,e4] [f4,g4] [a4,b4] [c5,d5] [e5,f5,g5] [a5,b5] [c6,d6,e6] [f6,g6] [a6,b6]", // Dsus2 Fsus2 Asus2 Csus2 Em Asus2 C Fsus2 …
B: "~@10 [b4,c5] d5 [e5,f5] [g5,a5] [b5,c6] [d6,e6,f6]", C: "[g6,a6] ~@15",
D: "~@11 [c5,d5] e5 [f5,g5] [a5,b5] [c6,d6,e6]", E: "[f6,g6] a6 ~@14", F: "~@10 b4 c5 d5 [e5,f5] [g5,a5] [b5,c6,d6]",
G: "[e6,f6,g6] a6 ~@14", H: "~@13 c5 [d5,e5] [f5,g5,a5,b5]", I: "[c6,d6,e6,f6] [g6,a6] ~@14",
J: "~@11 [b4,c5] [d5,e5] [f5,g5] [a5,b5,c6] [d6,e6,f6]", K: "[g6,a6,b6] ~@15",
})).s("gm_orchestral_harp").gain(0.31)
// chords · pad halo · "SYNTH PAD"
const pad_halo = note("<~@49 A B C@2 D E@2 F G@8 H@2 ~@12 I@6 J@3 ~@32>".pickRestart({
A: "[b3,e4,g4]", B: "[a3,d4,f#4]", C: "[g3,b3,e4]/2", D: "[b3,e4,g4]@15 ~", E: "[[d4,f#4] [c4,e4], a3@31 ~]/2",
F: "[f#3,b3,d4]", // Bm
G: "[~@6 [g3,c4,e4]@3 ~ [f#3,b3,d4]@3 ~@5 g3@30 [b3,d4,f#4]@22 [c4,e4,g4]@3 ~ [b3,d4,f#4]@3 [a3,c4,e4,g4]@18 ~ [a3,b3,d4]@31 ~, ~@13 e4@34 ~@48 f#4@31 ~@2, ~@14 a3@55 ~@59, ~@7 c4@16 ~@41]/8", // C Bm C Bm Am7 Bm7
H: "[[a3,d4,e4,a4]@13 ~ [b3,e4,f#4,b4]@18]/2", // Asus4 Bsus4
I: "[b3@16 ~@16 a3@15 ~ e4@7 d#4@8 ~@17 c#4@16, [e4,g#4] f#4 [e4,g#4], ~ c#4@2 b3@2 ~]/6", // E
J: "[a3@15 ~ e4@21 d#4@10 ~, f#4, ~@16 b3@31 ~]/3",
})).s("gm_pad_halo").gain(0.36)
// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
~@36 A ~ B ~ C ~@11 D@8 ~@10 E F G H I J K L M ~@2 N O P Q R ~ S T U V W X Y Z AA AB ~@3 AC AD AE AF AG AH AI AJ AK AL
AM AN ~ AO AP AQ AR AS AT AU
>`.pickRestart({
A: "~@8 g#5!2 f#5 ~ f#5 ~ f#5 ~", B: "~@12 f#4 g#4 ~ g#4", C: "~@9 f#4 g#4 ~ g#4 ~ f#4 g#4",
D: "[e3 b2 d3 b2 e3 b2 ~ e3 ~ b2 d3 b2 g3 [b2,g3] [d3,e3] b2 ~@112, ~@5 d#3@59]/8", E: "~@9 b2 b3 ~ b3 ~ b3 ~",
F: "~@2 g#3 f#3 e3 ~@11", G: "~ c#3 ~ e3 ~ e3 ~@6 g#3 f#3 ~ e3", H: "~@6 a2 ~@8 a3",
I: "f#3 ~ f#3 ~@6 b3 ~ b3 b2!2 g#3 ~", J: "e3 ~@5 a3 ~@9", K: "~@2 f#3 ~ f#2 f#3 ~ b2 ~ b2 b3 ~ g#3 f#3 e3 g#3",
L: "~ [d3,e3] ~@12 f#2 ~", M: "~@2 f#3 ~@6 b2 g#3 [f3,f#3] e3 c#3 ~ e3", N: "[c#5,e5]!2 ~ [c#5,e5] ~@10 c#5 ~",
O: "[c#5,e5] [a4,c#5] ~ [a4,c#5] ~@12", P: "e5 ~@15", Q: "[c#5,e5]!2 ~ [c#5,e5] ~@12",
R: "[c#5,e5]!2 ~ [c#5,e5] ~@6 c#5 ~ c#5 [c#5,e5] ~ [c#5,e5]", S: "~@4 b3 ~ b3!2 b2 b3 ~ b3 ~ g#3 f#3 e3",
T: "e3 ~@9 c#5!2 ~ c#5 b4 ~", U: "~@9 b4 c#5 e5 ~@4", V: "~@10 c#5!2 ~ c#5 b4 ~",
W: "~@8 [g#4,c#5] [f#4,b4] ~@3 f#4 g#4 c#5", X: "~@12 b4 c#5 e5 ~", Y: "~@7 [c#5,e5] ~ [c#5,e5] c#5 ~@3 c#5 b4",
Z: "~ c#5 ~ c#5 ~@12", AA: "~@9 c#4 e4 g#4 b4 e5 c#5 b4", AB: "c#5 b4 ~ b4 ~@12", AC: "~@10 c#5 ~@2 b4 ~@2",
AD: "~@9 b5 [g5,g#5] e5 g#5 e5 c#5 e5", AE: "~ e5 ~ c#5 e5 ~@11",
AF: "~ [b4,e5] ~@2 [g#4,c#5]@2 [f#4,b4] ~@2 [e4,g#4] ~@2 f#4 ~ e4 ~", AG: "~ g#4 [e4,g#4] g#4 ~@12",
AH: "~ e5 c#5 b4 c#5 b4 ~@6 g#4 f#4 e4 g#4", AI: "~@15 [e4,e5]",
AJ: "~ [e4,e5] [c#4,c#5] ~@5 e5!2 c#5 ~ b4 ~ g#4 f#4", AK: "e4 ~@15", AL: "~@2 a4!3 ~ g#4!3 ~ f#4!3 ~ e4 f#4",
AM: "g#4 ~ b4 ~@6 e5 c#5 b4 e5 c#5 ~ f#5", AN: "~@2 e5 ~ c#5 b4 ~ g#4 ~ f#4 e4 c#4 e4 f#4 g#4 ~",
AO: "~@9 b3 ~ b3 b2 g#3 f#3 e3", AP: "~@14 [f#2,f#3] ~", AQ: "~@9 b3 ~@2 g#3 ~ f#3 ~", AR: "e3 ~@15",
AS: "~@14 b4 [b4,e5]", AT: "[b4,e5] ~ [c#5,e5] ~@3 [b4,e5]@4 [c#5,e5] ~@5, ~@6 c#5 ~@9",
AU: "~@9 b4 c#5 e5 c#5 b4 ~@2",
})).s("gm_electric_guitar_jazz").gain(0.31).pan(0.8)
// chords · piano · "A.PIANO"
const piano = note(`<
~ A B C D E F G H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U V W X U Y Z AA M@2 AB@2 AC@2 AD@2 AE AF AG@2 AE AF
AH AI AJ@2 AK AI AL@2 AM@2 AN@2 AO AP AO AQ AR AS AO AT AO AU AO AV AW AX AY AZ BA BB BC BD BE BF@2 P@2 BG@2 P@2 AC@2
BH@2 BI@2 BJ@2 AC@2 R@2 BK@2 BL@2 AC@2 BM@2 AC@2 BN@2
>`.pickRestart({
A: "[b3,e4,g#4] ~@2 [c#4,e4,a4] ~ [c#4,e4] ~ [a3,c#4,f#4], ~@10 a4 ~@5", B: "~@8 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4]@2 ~@2",
C: "[b3,e4,g#4]@2 ~@4 [c#4,e4,a4]@2 ~@2 [c#4,e4,a4] ~@3 [a3,c#4,f#4] ~", // E A F#m
D: "~@2 [c#4,e4,a4] ~@3 [a3,c#4,f#4] ~@3 [d#4,f#4,b4]@5 ~", // A F#m B
E: "[b3,e4,g#4]@2 ~@4 [c#4,e4,a4]@2 ~@2 [e4,a4] ~@3 [a3,c#4,f#4]@2, ~@5 c#4 ~@2", // E A A5 F#m
F: "~@8 [b3,d#4,f#4]@2 ~@2 [d#4,f#4] ~@3, ~@6 b3 ~", // B D#m
G: "[b3,e4,g#4] ~@2 [c#4,e4,a4] ~ [c#4,e4] ~ [c#4,f#4], ~@10 a4 ~@3 a3 ~", // E A C#m F#5
H: "~@2 [e4,a4] ~@3 [a3,c#4,f#4] ~@3 [b3,d#4,f#4]@4 ~@2, ~ c#4 ~@6", // A5 F#m B
I: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [a3,c#4,f#4]@9 ~ [b3,d#4,f#4]@6 ~@2]/2", // E A F#m B
J: "[[b3,e4,g#4]@4 ~@2 [c#4,e4,a4]@6 ~@2 [a3,c#4,f#4]@9 ~ [b3,d#4,f#4]@2 ~@2 [d#4,f#4] ~@3, ~@14 b3 ~]/2", // E A F#m B D#m
K: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [a3,c#4,f#4]@9 ~ [b3,d#4,f#4]@7 ~]/2", // E A F#m B
L: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@6 ~@2 [a3,c#4,f#4]@8 ~@2 [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4] ~@3]/2", // E A F#m B
M: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@6 ~@2]/2", // E A F#m B
N: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@7 ~@3 [d#4,f#4,b4]@3 ~ [f#4,b4] ~@3, ~@14 d#4 ~]/2", // E A F#m B B5
O: "[[b3,e4,g#4]@4 ~@2 [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@6 ~@2]/2", // E A F#m B
P: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@2 ~@2 [f#4,b4] ~@3, ~@14 d#4 ~]/2", // E A F#m B B5
Q: "[[b3,e4,g#4]@4 ~@2 [c#4,e4,a4]@7 ~ [c#4,a4]@9 ~ [d#4,f#4,b4]@6 ~@2, ~@14 f#4@7 ~@11]/2", // E A F#m B
R: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@2 ~@2 [d#4,f#4,b4] ~@3]/2", // E A F#m B
S: "[[b3,g#4]@4 ~@2 [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@6 ~@2, e4 ~@15]/2", // E A F#m B
T: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@7 ~@3 [d#4,f#4,b4]@2 ~@2 [d#4,f#4,b4] ~@3]/2", // E A F#m B
U: "[b3,e4,g#4] ~@2 [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,f#4,a4]", // E A F#m
V: "~@6 [c#4,f#4,a4] ~ [d#4,b4]@2 ~@2 [d#4,f#4,b4] ~@3, ~@8 f#4 ~@7", // F#m G#m B
W: "[b3,e4,g#4]@2 ~@4 [c#4,a4]@2 ~@2 [e4,a4] ~@3 [a3,c#4,f#4] ~, ~@6 e4 ~@3 c#4@2 ~@4", // E F#m A5 F#m
X: "~@2 [c#4,e4,a4] ~@3 [a3,c#4] ~@3 [b3,d#4,f#4]@5 ~, ~@3 f#4 ~@4", // A B
Y: "~@6 [c#4,f#4,a4] ~ [d#4,b4]@2 ~@2 [f#4,b4] ~@3, ~@8 f#4 ~@3 d#4@2 ~@2", // F#m G#m B5
Z: "[b3,e4,g#4]@2 ~@4 [c#4,a4]@2 ~@2 [c#4,e4,a4]@2 ~@2 [c#4,f#4,a4] ~, ~@6 e4 ~@9", // E F#m A F#m
AA: "~@2 [c#4,e4,a4] ~@3 [c#4,f#4] ~@3 [d#4,f#4,b4]@4 ~@2, ~@3 a4 ~@4", // A F#5 B
AB: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@7 ~@3 [d#4,f#4,b4]@5 ~@3]/2", // E A F#m B
AC: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@9 ~ [d#4,f#4,b4]@6 ~@2]/2", // E A F#m B
AD: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@2 ~@2 [d#4,f#4,b4]@2 ~@2]/2", // E A F#m B
AE: "[b3,e4,g4]@15 ~", AF: "[a3,d4,f#4]@15 ~", AG: "[[b3,e4,g4]@29 ~@3]/2", AH: "[a3,c4,e4]@15 ~",
AI: "[a3,b3,d4,f#4]@15 ~", AJ: "[[a3,b3,d4,f#4]@5 ~ [g3,c4,e4]@2 ~@2 [a3,b3,d4,f#4]@2 ~@2 [g3,a3,c4,e4]@17 ~]/2",
AK: "[g3,a3,c4,e4]@15 ~", // Am7
AL: "[[a3,b3,d4,f#4]@5 ~ [g3,c4,e4]@2 ~@2 [d4,f#4]@2 ~@2 [g3,a3,c4,e4]@17 ~, ~@10 [a3,b3] ~@21]/2", // Bm7 C D Am7 Asus2
AM: "[[a3,b3,d4,f#4]@7 ~]/2", AN: "[[a3,d4,e4,a4]@11 ~@3 [b3,e4,f#4,b4]@15 ~@3]/2",
AO: "[b3,e4,g#4] ~@2 [c#4,e4,a4] ~@3 [c#4,f#4,a4]", AP: "~@8 [d#4,f#4,b4]@5 ~@3",
AQ: "~@8 [d#4,f#4] ~@3 [d#4,b4]@2 ~@2, ~@8 b4@2 ~@2 f#4 ~@3", AR: "[b3,e4,g#4] ~@5 [c#4,e4,a4]@2 ~@6 [c#4,f#4,a4]@2",
AS: "~@8 [d#4,f#4,b4]@3 ~@5", AT: "~@4 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~",
AU: "~@8 [d#4,f#4,b4]@2 ~@2 [f#4,b4] ~@3, ~@6 d#4 ~", AV: "~@8 [d#4,f#4,b4]@2 ~@2 [d#4,f#4,b4] ~@3",
AW: "[b3,e4,g#4]@7 ~", AX: "[b3,c#4,e4,g#4]@7 ~",
AY: "[a3,c#4]@10 ~@2 c#4@2 e4 ~, f#3@15 ~, [e4,f#4]@3 ~, ~@10 a3@5 ~", AZ: "[f#3,b3,d#4,f#4]@15 ~",
BA: "[b3,e4,g#4]@7 ~, g#3", BB: "[b3,c#4,e4,g#4]@7 ~, e3 ~@3", BC: "[f#3,a3,c#4,e4,f#4]@13 ~@3",
BD: "[b3,c#4]@10 ~@2 b3@2 [c#4,f#4] ~, [e4,f#4]@12 c#4 ~@3, ~@5 f#3@2 ~", // Bsus2 F#5 Esus2
BE: "[f#3,b3,c#4]@5 ~@3 [f#3,b3,d#4,f#4]@6 ~@2, [e4,f#4]@7 ~@9", // F#sus4 B Esus2
BF: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@9 ~ [b3,d#4,f#4]@7 ~]/2", // E A F#m B
BG: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@7 ~@3 [d#4,f#4,b4]@7 ~]/2", // E A F#m B
BH: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@2 ~@2 [d#4,b4]@2 ~@2, ~@28 f#4 ~@3]/2", // E A F#m B G#m
BI: "[[b3,e4,g#4]@4 ~@2 [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@9 ~ [d#4,f#4,b4]@6 ~@2]/2", // E A F#m B
BJ: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@3 ~ [f#4,b4] ~@3, ~@14 d#4 ~]/2", // E A F#m B B5
BK: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@9 ~ [d#4,f#4,b4]@7 ~]/2", // E A F#m B
BL: "[[b3,e4,g#4]@4 ~@2 [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4,b4]@2 ~@2 [f#4,b4] ~@3, ~@14 d#4 ~]/2", // E A F#m B B5
BM: "[[b3,e4,g#4]@5 ~ [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@8 ~@2 [d#4,f#4] ~@3 [d#4,b4]@2 ~@2, ~@24 b4@2 ~@2 f#4 ~@3]/2", // E A F#m D#m G#m
BN: "[[b3,e4,g#4]@4 ~@2 [c#4,e4,a4]@7 ~ [c#4,f#4,a4]@7 ~@3 [d#4,f#4] ~@3 [d#4,f#4,b4]@2 ~@2, ~@12 b4 ~@3]/2", // E A F#m D#m B
})).s("gm_piano").gain(0.36).pan(0.3)
// … 197 more lines
More by Four Tops
Standing In The Shadows Of Love1967 · B♭ major · 114 bpmReach Out I'll Be ThereE minor · 122 bpmIt's the Same Old SongB major · 132 bpmStanding in the Shadow of LoveA minor · 114 bpmAin't No Woman (Like the One I've Got)A minor · 97 bpmBaby I Need Your Lovin'E♭ major · 124 bpmBernadetteE♭ major · 112 bpmCan't Help MyselfG major · 123 bpm
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.