0:00/0:00
// Forever Your Girl — Paula Abdul
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 158 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
~ A@4 B@4 C@2 D E F@2 G@2 H@4 I@4 H@4 I@4 J@4 K@3 L C@2 D E F@2 G@2 H@4 I@4 H@4 I@4 J@4 K@3 L C@2 D E F@2 G@2 C@2 D E
F@2 G@2 M N O@2 M@2 O@2 P@4 Q@3 R S@3 T C@2 D E F@2 G@2 C@2 D E F@2 G@2 A@4 B@4 C@2 D E F@2 G@2 C@2 D E F@2 G@2 C@2 D
E F@2 G@2 ~
>`.pickRestart({
A: "[[f#4,a4,d5,f#5,a5]@12 ~@2 [e4,a4,c#5,e5]@15 ~ [d4,g4,b4,d5]@15 ~ [a3,d4,g4,b4,d5]@17 ~]/4", // D A G
B: "[[f#4,a4,d5,f#5,a5]@13 ~ [c#4,e4,a4,b4,c#5,e5]@15 ~ [d4,e4,g4,b4,d5]@15 ~ [a3,d4,g4,b4,d5]@17 ~]/4", // D A Em7 G
C: "[[f#4,a4,d5,f#5,a5]@6 ~ [e4,a4,c#5,e5]@3 [f#4,b4,d5] ~@4 [e4,a4,c#5,e5]@8 ~ [f#4,d5,f#5]@3 [e4,c#5,e5]@3 [f#4,a4,d5,f#5] ~, ~@5 d4 ~@6 a4@3 ~]/2", // D A Bm A D C#m D
D: "[d4,g4,a4,b4,d5]@2 ~ [d4,g4,a4,b4,d5]@7 ~@6", E: "[g3,b3,d4,e4] [a3,d4,f#4] [b3,d4,e4,g4] [c#4,e4,a4]",
F: "[~@2 [f#4,a4,d5,f#5] ~@2 [f#4,a4,d5,f#5] ~@2 [e4,b4,e5]@2 [f#4,a4,d5,f#5] ~@4 [e4,a4,c#5,e5]@8 ~ [f#4,a4,d5,f#5]@3 [e4,a4,c#5,e5]@3 [f#4,a4,d5,f#5] ~]/2", // D E5 D A D A D
G: "[[e4,g4,b4,d5]@15 [g3,a3,b3,d4]@2 ~ [g3,a3,b3,d4]@13 ~]/2", // Em7 G
H: "[[d4,f#4,a4,d5,f#5]@14 [c#4,e4,a4,b4,c#5,e5]@16 [g3,d4,g4,a4,b4,d5]@15 ~ [a3,e4,g4,a4,b4,d5]@17 ~]/4", // D A G Em7
I: "[[d4,f#4,a4,d5,f#5]@13 ~ [b3,f#4,a4,b4,c#5,e5]@15 ~ [g3,d4,g4,a4,b4,d5]@16 [a3,e4,g4,a4,b4,d5]@17 ~]/4", // D F#m7 G Em7
J: "[[b3,d4,f#4,b4,d5,f#5]@9 ~ [b3,d4,f#4,f#5] ~@3 [a3,d4,f#4,a4,b4,d5,f#5]@11 ~ [a3,a4,b4,d5,f#5]@2 ~@2 [g#3,b3,e4,g#4,b4,e5]@11 ~ [g#3,b3,e4,g#4,e5]@2 ~@2 [g#3,b3,d4,e4,g#4,b4,d5]@11 ~ [g#3,b3,d4,e4,g#4,b4,d5]@6, ~@10 [b4,d5]@2 ~@14 [d4,f#4] ~@15 b4 ~@21]/4", // Bm Bm7 E E7 Bm D
K: "[[g3,b3,d4,e4,g4,b4,d5]@7 ~ [g3,b3,d4,e4,g4,b4,d5] ~ [g3,b3,d4,e4,g4,b4,d5]@3 ~ [a3,d4,f#4,a4,d5]@9 ~ [a3,f#4,a4,d5]@2 [a3,d4,f#4,a4,d5]@3 ~ [g3,d4,g4,a4,b4,d5]@9 ~ [g4,a4,b4,d5]@2 [g3,d4,g4,a4,b4,d5]@5 ~, ~@24 d4 ~@15 [g3,d4] ~@7]/3", // Em7 D G G5
L: "[a3,e4,g4,a4,b4,d5]@3 ~ [a3,e4,g4,a4,b4,d5]@3 ~ [a3,e4,g4,a4,b4,d5]@3 ~ [a3,e4,g4,a4,b4,d5]@3 ~", // Em7
M: "[b3,d4,f#4,b4,d5,f#5]@15 ~", N: "[b3,d4,f#4,b4,d5,f#5]", O: "[[e4,g#4,b4,d5,e5]@29 ~@3]/2",
P: "[[b3,d4,f#4,b4,d5,f#5]@8 ~@2 [b4,d5,f#5]@2 ~@2 [a3,d4,f#4,a4,d5,f#5]@10 ~@2 [a3,d4,f#4,a4,d5,f#5]@2 ~@2 [g#3,b3,e4,g#4,b4,e5]@11 ~ [g#3,b3,e4,g#4,b4,e5]@2 ~@2 [g#3,b3,d4,e4,g#4,b4,d5]@16 ~@2, ~@10 [b3,d4,f#4] ~@53]/4", // Bm D E E7 Bm
Q: "[[g3,g4,b4,d5]@13 ~ [f#3,a3,d4,a4,d5]@15 ~ [g3,b3,d4,g4,b4,d5]@17 ~, [b3,d4,e4]@11 ~@37]/3", // G D G E7
R: "[a3,d4,g4,b4,d5]@15 ~", S: "[[g3,b3,d4,e4,g4,b4,d5]@12 ~@2 [f#3,a3,d4,a4,d5]@15 ~ [g3,b3,d4,g4,b4,d5]@17 ~]/3",
T: "[a3,d4,g4,b4,d5]@3 ~ [a3,d4,g4,b4,d5]@3 ~ [a3,d4,g4,b4,d5]@2 ~@2 [a3,d4,g4,b4,d5]@2 ~@2", // G
})).s("gm_epiano2").gain(0.31).pan(0.7)
// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
A B@2 C@2 D@2 E F G@2 H I J@4 K L M@2 N@2 O@2 P L M@2 N@2 Q@2 R@3 S T@2 U V W@2 X I J@4 K L M@2 N@2 O@2 P L M@2 N@2
Q@2 R@3 S T@2 U V W@2 X I J@4 W@2 X I J@4 Y Z AA AB AC AD AA AE R@3 S T@2 U V T@2 U V W@2 X I J@4 W@2 X I J@4 AF@2 C@2
D@2 E F W@2 X I J@4 W@2 X I J@4 W@2 X I AG@4 ~
>`.pickRestart({
A: "~@14 d2 [a0,b0]", B: "[[d1,d2]@22 ~ d3 ~ d3 b2 a2 d3 b2 a2 [a0,b0], c#1 ~@31]/2",
C: "[[d1,d2]@15 d1@16 ~, c#1 ~@31]/2", D: "[d1@23 d3 ~ d3 b2 a2 d3 b2 a2 [a0,b0]]/2", E: "e1, c#1 ~@15",
F: "e1 e2@2 e1 f#1 f#2@2 f#1 g1 g2@2 g1 a1 a2@2 a1",
G: "[d2 a1 b1 d2 ~@2 a1 b1 d2!2 b1 b2 ~@2 b1 a1@3 a1 ~@3 g1!2 b1@2 ~ a1@3 b1 ~]/2",
H: "g1@2 ~ g1 ~@2 g1!2 g2@2 ~ g2!2 ~ g2 ~",
I: "~ e2 ~ e2 ~ f#2 ~ f#2 ~ g2 ~ g2 ~ a2 ~ a2, e1@3 ~ f#1@2 ~@2 g1@2 ~@2 a1@2 ~@2",
J: "[d2 a1 b1 d2 ~@2 a1 b1 d2!2 b1 b2 ~@2 b1 a1@2 ~ a1 ~@3 a1!2 b1@2 ~ a1@3 b1 e1@3 e1 ~@3 e1!2 e2!2 ~ e2 ~ d2 e2 e1@2 e2@2 e2 ~ f#2 ~ f#2 ~ g2@2 g2 ~ a2 ~ a2, ~@52 f#1@2 ~@2 g1@2 ~@2 a1@3 ~]/4",
K: "[d2,d3]@2 ~@4 [a1,a2] [b1,b2] [d2,d3] ~ [d2,d3] ~@3 [c#2,c#3]@2", // D A B D C#
L: "~@6 [e1,e2] [f#1,f#2] ~ [a1,a2] ~ [a1,a2] ~ [a1,a2] [b1,b2] [a1,a2]", // E F# A B A
M: "[[g1,g2]@2 ~@4 [e1,e2] [f#1,f#2] [g1,g2] ~ [g1,g2] ~ [g#1,g#2] ~ [a1,a2]@4 [a2,a3] [a1,a2] ~ [a1,a2]@2 ~ [a1,a2] [b1,b2] [d2,d3]!2 ~ [d2,d3] [b1,b2] [a1,a2]]/2", // G E F# G G# A B D …
N: "[[d2,d3]!2 [d1,d2]!2 ~@4 [d1,d2] ~ [f#1,f#2]@2 [a1,a2]@2 [b1,b2]@6 ~@2 [e1,e2] [f#1,f#2] ~ [a1,a2] ~ [b1,b2] ~ [b1,b2] [a1,a2] [f#1,f#2]]/2", // D F# A B E F# A B …
O: "[[g1,g2]@4 ~@6 [g1,g2] ~ [g#1,g#2] ~ [a1,a2]@4 [a2,a3] ~@5 [a1,a2] ~ [a1,a2] ~ [a1,a2] [b1,b2]!2 [d2,d3]]/2", // G G# A B D
P: "[d2,d3] ~@5 [a1,a2] [b1,b2] [d2,d3] ~ [d2,d3] ~@3 [c#2,c#3]@2", // D A B D C#
Q: "[[g1,g2]@4 ~@6 [g1,g2] ~ [g#1,g#2] ~ [a1,a2]@4 [a2,a3] ~@5 [a1,a2] ~ [a1,a2] ~ [a1,a2] [b1,b2] [d2,d3] [b1,b2]]/2", // G G# A B D B
R: "[b1@5 ~@2 b1!2 ~ b1 ~@3 a1@6 ~@3 a1!2 ~ a1 ~@3 g#1 g#1@7 g#1!2 ~ g#1!3 b0 c#1 d1@2]/3",
S: "e1@7 ~ e1 ~ e1@3 ~ e1!2", T: "[e1@6 ~ e1!2 ~ e1@2 ~@2 e1 f#1@6 ~ f#1!3 ~ f#1@2 ~@2 f#1!2]/2",
U: "g1@6 ~ g1!2 ~ g1 ~@3 g1 ~", V: "a1@3 ~ a1@3 ~ a1@2 ~@2 a1 b1 d2 b1",
W: "[d2 b1 a1 d2@2 ~ a1 b1 d2 b1 a1 a2 ~@2 g1 a1@2 ~ a1 ~@3 a1!2 b1@2 ~ a1@3 b1 ~]/2",
X: "g1@2 ~ g1 ~@2 g1!2 g2@2 ~ g2 ~@2 g2 ~", Y: "b1 ~ b1 ~ b1 ~ b1 ~ b1 b2 b1 b2 b1 ~ a1 ~",
Z: "a1 ~ a1 ~ a1 ~ a1 a2 a1 ~ a1 ~ a1 ~ a1 a2", AA: "e1 ~ e1 ~ e1 ~ e1 e2 b0@2 c#1@2 d1 ~ e1 ~",
AB: "e1 e2 e1 e2 e1 ~ e1@2 b0@2 e1@2 d1@2 e1 ~", AC: "b1 ~ b1 ~ b1 ~ b1 b2 b1 b2 b1 b2 b1 ~ a1 ~",
AD: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 a2 a1 ~ a1 ~",
AE: "e1 e2 e1 e2 e1 ~ e1@2 b2@2 [g2,a2] [d2,e2,f2] [a1,b1,c2] [f1,g1] [c1,d1,e1] [a0,b0]", // Gsus2 Dm Am Fsus2 C Asus2
AF: "[[d1,d2]@22 ~ d3 ~ d3 b2 a2 d3 b2 a2 [a0,b0]]/2", // D Asus2
AG: "[d2 a1 b1 d2 ~@2 a1 b1 d2!2 b1 b2 ~@2 b1 a1@2 ~ a1 ~@3 a1!2 b1@2 ~ a1@3 b1 e1@3 e1 ~@3 e1!2 e2!2 ~ e2 ~ d2 e2 e1@2 e2@2 e2 ~@12]/4",
})).s("gm_synth_bass_2").gain(0.49)
// chords · slap bass 2 · "SLAPBASS 2"
const slap_bass_2 = note(`<
~@9 A@2 B ~ C@2 ~ D ~@8 E ~@3 F ~@3 G@4 H@3 I A@2 B ~ C@2 ~ D ~@3 J K@4 L M@3 L N@3 G@4 O@3 I A@2 B ~ C@2 ~ D A@2 B ~
C@2 ~ D ~@8 P@4 Q@2 ~ R S@3 T A@2 B ~ C@2 ~ D A@2 B ~ C@2 ~ D ~@8 A@2 B ~ C@2 ~ D A@2 B ~ C@2 ~ D A@2 B ~ C@2 ~ U ~
>`.pickRestart({
A: "[~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~ [a3,c#4,e4]@3 [a3,d4,f#4] ~@4 [a3,c#4,e4]@3 [a3,c#4,e4] ~@5 [a3,d4,f#4]@2 ~ [a3,c#4,e4]@3 [a3,d4,f#4] ~]/2", // D A D A D A D
B: "[g3,b3,d4]@3 [g3,b3,d4] ~@12", // G
C: "[~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,e4] ~ [a3,d4,f#4] ~@4 [a3,c#4,e4]@2 ~ [a3,c#4,e4] ~@11 [b3,d4,f#4] ~, ~@4 c#4 ~@11]/2", // D A5 D A Bm
D: "~@2 [g3,b3,d4]@3 ~@4 [g3,b3,d4] ~@3 [g3,b3,d4]@2 ~", // G
E: "~@2 [d4,f#4,a4] d2 d4 d3 [d4,f#4,a4] d2 [a3,c#4,e4]@3 ~@5", // D A
F: "~@2 [d4,f#4,a4] d2 [d4,f#4] d3 [d4,f#4,a4] d2 [a3,c#4,e4]@3 ~@5", // D A
G: "[[b3,d4,f#4]@7 ~@3 [d4,f#4] ~@3 [a3,d4,f#4]@7 ~@5 [d4,f#4] ~@3 [g#3,b3,e4]@8 ~@4 [b3,e4] ~@3 [g#3,b3,e4]@10 ~@2 [g#3,b3,e4] ~@5, ~@5 b3 ~@7 a3 ~@7 g#3 ~@10]/4", // Bm D E E5 E
H: "[[g3,b3,d4]@4 ~ [g3,b3,d4] ~@2 [g3,b3,d4]@3 ~@3 [f#3,a3,d4]@6 ~ [f#3,a3,d4] ~@2 [f#3,a3,d4]@2 ~@4 [g3,b3,d4]@6 ~ [g3,b3,d4] ~@2 [g3,d4]@2 [g3,b3,d4]@2 ~@4, ~@40 b3 ~@7]/3", // G D G G5 G
I: "[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@2 ~@2", J: "~@8 a1 b1 d2 b1 d2!2 b1 a1",
K: "[d2!2 [d1,a3,d4,f#4] [d1,d3] ~ [a3,d4,f#4] d3 ~ [a3,c#4,e4]@2 [a3,d4,f#4] ~@3 [b2,a3,c#4,e4]@4 [a3,c#4,e4] b2 ~ [a3,c#4,e4] b2 ~ [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [g2,g3,b3,d4]@5 ~@6 [g3,b3,d4] g2 ~ [g3,b3,d4]@2 [a2,g3,b3,d4]@4 ~@10 a3 d4 b3 a3]/4", // D A D A G
L: "~@2 [a3,d4,f#4] ~ d3 [a3,d4,f#4] ~ d3 [c#4,e4]@2 [a3,d4,f#4] ~@3 [a3,c#4,e4]@2, ~@8 a3 ~@7", // D C#m D A
M: "[~@2 [a3,c#4,e4] ~@7 [a3,c#4,e4] ~@3 [g3,a3,d4]@5 ~ [g3,a3,d4] ~ g2 [g3,a3,d4] ~ g2 [g3,a3,d4] ~@3 [a2,g3,a3,d4]@6 ~@5 [g3,a3,d4] ~ a2 ~@4]/3", // A Gsus2 Dsus4 Gsus2
N: "[~@2 [a3,c#4,e4] ~ c#3 [a3,c#4,e4] ~ c#3 [c#4,e4]@2 [a3,c#4,e4] ~@3 [g3,a3,d4]@5 ~ [g3,a3,d4] ~ g2 [g3,a3,d4] ~ [g3,a3,d4] ~ g2 ~@2 [a2,g3,a3,d4]@13 ~@5, ~@8 a3 ~@5 g2 ~@33]/3", // A C#m A Gsus2 Dsus4
O: "[[g3,b3,d4]@4 ~ [g3,b3,d4] ~@2 [g3,b3,d4]@3 ~@3 [f#3,a3,d4]@6 ~ [f#3,a3,d4] ~@2 [f#3,a3,d4]@2 ~@4 [g3,b3,d4]@6 ~ [g3,b3,d4] ~@2 [g3,d4]@2 [g3,b3,d4] ~@5, ~@40 b3 ~@7]/3", // G D G G5 G
P: "[[a3,b3,d4,f#4]@5 ~@5 [a3,b3,d4,f#4] ~@3 [a3,d4,f#4]@6 ~@6 [d4,f#4] ~@3 [g#3,b3,e4]@6 ~@6 [g#3,b3] ~@3 [g#3,b3,d4,e4]@7 ~@5 [g#3,b3,d4,e4] ~@5, ~@13 a3 ~@7 e4 ~@10]/4", // Bm7 D E G#m E7
Q: "[[g3,b3,d4]@4 ~ [g3,b3,d4] ~@2 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [f#3,a3,d4]@6 ~ [f#3,a3,d4] ~@2 [f#3,a3]@2 [f#3,a3,d4] ~@5, ~@24 d4 ~@7]/2", // G D F#m D
R: "~@2 [g3,b3,d4] a2 ~ a2 ~ a2 [g3,b3,d4]@2 [g3,b3,d4] ~@5", // G
S: "[[g3,b3,d4]@4 ~ [g3,b3,d4] ~@2 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [f#3,a3,d4]@6 ~ [f#3,a3,d4] ~@2 [f#3,a3]@2 [f#3,a3,d4] ~@3 [g3,b3,d4]@6 ~ [g3,b3,d4] ~@2 [g3,b3,d4]@2 [g3,b3,d4] ~@5, ~@24 d4 ~@23]/3", // G D F#m D G
T: "[g3,b3,d4]@3 ~ [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 ~@6", U: "~@2 [g3,b3,d4]@3 ~@11",
})).s("gm_slap_bass_2").gain(0.36).pan(0.3)
// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
~ A@3 B@5 ~@8 C D@3 E@8 F@4 G@3 H I J K L@4 M@4 ~ N@4 O P@3 Q R S T U@2 V@2 W@2 X@2 I Y K Z@8 AA@4 AB@4 ~ AC@2 AD@2
AE@2 AF@2 AG@3 AH AI@4 AJ@2 K AK@8 AL@4 AM@5 AN AO AP AQ@2 AR@6 ~@2 AS@6 ~@2 AT@2 ~@10
>`.pickRestart({
A: "[~@12 b4@2 a4@4 b4@6 ~@3 a3 b3 d4 e4 g4@3 f#4@14]/3",
B: "[~@4 d4@2 e4@2 g4@2 f#4@2 d4@2 d4@10 ~@4 b3 d4 e4 g4@3 f#4@9 a3 b3 d4 e4 g4@3 f#4@8 a3@2 a3@2 a3 a3@17]/5",
C: "a4!2 f#4 b4 a4@2 b4@2", D: "[a4@2 b4@2 g4 f#4 d4 b3@2 d4!2 b3 e4@2 d4@6 ~@4]/3",
E: "[~ a3 f#4!3 f#4@2 g4@2 f#4@2 a3 f#4 e4 d4 d4@5 a3!2 f#4 e4@5 f#4 a4 f#4 a4@2 b4@4 f#4!2 g4@2 f#4@2 d4 a3@3 b3@2 d4!2 b3 e4@2 d4@3 [d4,f#4]!2 [e4,f#4] [d4,g4] [d4,f#4] [a3,d4,f#4]!2]/8", // D Esus2 G5 D
F: "[[f#3,a3,d4]@3 a3 b3 d4!2 e4@2 d4@2 d4 a4 f#4!2 e4@2 d4@3 [b3,d4] [c#4,e4] [d4,f#4] [e4,g4]@3 [d4,f#4]@2 [b3,e4]@2 [a3,d4]@2]/4", // D Bm C#m D Em D E5 D5
G: "[f#4!7 b4@2 f#4!2 e4 d4@6 b4@2 f#4 e4 d4 e4]/3", H: "f#4 e4 d4 d4@3 d4 e4", I: "f#4 e4 d4 d4@3 b3 d4",
J: "f#4@2 a4 b4@2 f#4@3", K: "[g4,b4] [f#4,a4] [d4,a4] [e4,a4]",
L: "[[g4,b4]@2 [f#4,a4]@2 [d4,a4]@2 [d4,d5] [d4,d5]@3 ~@3 a3!2 b3@2 d4!2 f#4 g4 f#4 d4 e4@2 f#4 d4@6]/4", // G F#m D5 D
M: "[~@4 a4@2 b4@2 f#4@2 e4@2 d4@2 d4@13 b3 d4 e4 f#4 g4@2 f#4@3 d4@2 f#4@2 g4@2 f#4@2 d4@2 d4@18]/4",
N: "[a4!2 f#4 b4 a4@2 f#4 e4@6 a3@2 b3@2 d4!2 b3 e4@2 d4@8 ~@2]/4", O: "f#4!4 g4 f#4 e4!2",
P: "[d4 d4@2 d4 f#4 e4 d4 d4@6 a3 f#4 e4@9]/3", Q: "~ f#4!3 f#4@2 f#4!2", R: "g4@2 f#4 d4 a3@3 a3",
S: "b3 d4!2 b3 e4@2 d4@2", T: "d4@4 d4@2 d4@2 [g4,b4]@2 [f#4,a4]@2 [d4,a4]@2 [d4,a4] [b3,g4]",
U: "[[a3,f#4]@2 a3!2 b3 d4 f#4 e4@2 d4!3 a4 f#4!2 e4]/2", // D
V: "[d4 [a3,d4,a4]!4 [a3,e4,a4] [a3,f#4,a4] [b3,g4,b4]@3 [a3,f#4,a4]@2 [g3,e4,g4]@2 [a3,d4,a4]@2]/2", // D5 A5 D Em D C D5
W: "[f#4!4 b4 f#4!2 e4@2 e4@5 b3 d4]/2", X: "[b4!4 f#4 e4 d4 b3@2 d4@5 d4 e4]/2", Y: "f#4@2 a4@3 f#4@3",
Z: "[[g4,b4]@4 [f#4,a4]@4 [d4,a4]@4 [d4,d5]@2 [d4,d5]@6 ~@6 a3@2 a3@2 b3@4 d4@2 d4@2 f#4@2 g4@2 f#4@2 d4@2 e4@4 f#4@2 d4@16 a4@2 b4@2 f#4@2 e4@2 d4@2 d4@13 b3 d4 e4 f#4 g4@3 f#4@2 d4@2 f#4@2 g4@2 f#4@2 d4@2 d4@18]/8", // G F#m D5 D
AA: "[~@2 a4 b4 f#4 d4 e4 [f#4,a4,d5]@2 [g4,b4,e5]@3 ~ a3!2 b3@2 d4!2 f#4 g4 f#4 d4 e4@2 f#4 d4@6]/4", // D Em
AB: "[~@4 a4@2 b4@2 f#4@2 e4@2 d4@2 d4@13 b3 d4 e4 f#4 g4@3 f#4@2 d4@2 f#4@2 g4@2 f#4@2 d4@2 d4@18]/4",
AC: "[~@5 f#4!2 b4@2 f#4@2 e4@2 e4 f#4@2]/2",
AD: "[e4@2 d4 d4@2 ~ d4 [d5,f#5]@2 [b4,e5]@2 [a4,d5]@2 [f#4,b4] [f#4,a4]@2, ~@5 b3@2 ~@9]/2", // D E5 D5 B5 F#m
AE: "[~ b4!2 b4@4 f#4@2 d4 f#4 e4@2 d4 f#4@2]/2", AF: "[e4@4 d4@2 d4@2 b3@21 ~@3]/2",
AG: "[[f#4,a4,b4,d5]!2 f#4!5 e4@2 e4 f#4 d4@4 [g#3,d4,f#4,b4]@2 [g#3,d4,f#4,b4] f#4@2 e4 d4 b3 d4]/3", // Bm7 G#m7b5
AH: "f#4 e4 d4 d4@5", AI: "[[g4,b4]!2 g4!4 a4 f#4@2 e4 d4@5 g4@2 g4!2 a4 f#4 e4 d4 e4@9]/4",
AJ: "[g4 g4@2 g4 b4 a4 f#4 e4@2 d4@7]/2",
AK: "[[g4,b4]@4 [f#4,a4]@4 [d4,a4]@4 [d4,d5]@2 [d4,d5]@6 ~@7 a3 b3 d4 e4 g4@3 f#4@7 ~@2 a3 b3 d4 e4 g4@3 f#4@8 ~ a3 b3 d4 e4 g4@3 f#4@2 a4@2 b4@2 f#4@2 e4@2 d4@2 d4@11 ~@2 a3 b3 d4 e4 g4@3 f#4@8 ~ a3 b3 d4 e4 g4@3 f#4@8 ~ a3 b3 d4 e4 g4]/8", // G F#m D5 D
AL: "[~@2 f#4@2 a4@2 b4@2 f#4@2 e4@2 d4@2 d4@12 ~ a3 b3 d4 e4 g4@3 f#4@8 ~ a3 b3 d4 e4 g4@3 f#4@8 ~ a3 b3 d4 e4 g4]/4",
AM: "[~ f#4 a4 b4 f#4 e4 d4 [f#4,a4,d5]@2 [g4,b4,e5] a3 f#4 d4@6 d4!2 f#4 g4 f#4 a4@17]/5", // D Em
AN: "~@4 d4@2 d4@2 f#4@3 f#4@3 d4@2", AO: "~ d4 b3 a3@9 ~@4", AP: "~@5 d4 d4@2 a4@3 f#4@3 d4 b3",
AQ: "[a3@12 b4@2 a4@4 b4@2 [d4,a4,d5]@2 [d4,a4,d5]@2 [f#4,b4,f#5]@3 [f#4,a4,d5]@2 [f#4,a4,d5]@2 [d4,b4,e5]]/2", // D5 B5 D E7
AR: "[[d4,a4,d5]@6 [d4,f#4,d5]@3 [e4,a4,e5]@2 a3 b3 d4 e4 g4@3 f#4@2 d4@2 d4@2 f#4@2 g4@2 f#4@8 [d4,f#4]@2 [d4,f#4]@2 [f#4,a4]@2 [g4,b4]@2 [f#4,a4]@2 [a4,d5]@12 a3@2 a3@2 b3@4 d4@2 d4@2 f#4@2 g4@2 f#4@2 d4@2 e4@4 f#4@2 d4@12]/6", // D5 D A5 D F#m G F#m D5
AS: "[~@3 f#4 g4 f#4 d4 d4@3 d4!2 f#4 g4 f#4@4 d4!2 f#4 g4 f#4 [a4,d5]@6 a3!2 b3@2 d4!2 f#4 g4 f#4 d4 e4@2 f#4 d4@6]/6", // D5
AT: "[~@3 f#4 g4 f#4 d4 d4@9]/2",
})).s("gm_epiano1").gain(0.25)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~@5 A B C D E F G H I F J K ~@24 L M N O P Q R S ~@24 L M N O P Q R S L M N O P Q R S T U@2 V@2 W@2 X ~@12 L M N O P Q
R S L M N O P Q R S Y@3 Z Y@3 AA L M N O P Q R S L M N O P Q R S L M N O P Q R AB ~
>`.pickRestart({
A: "~@6 a3 d4 ~ d4 b3 a3 ~@4", B: "~@5 a3 ~ d4 ~@8", C: "~@5 a3 ~ d4 ~ d4 ~@6", D: "~@5 a3 ~ d4 ~ d4 e4@2 ~ e4 d4 b3",
E: "d4 ~@7 d4@2 b3 ~@5", F: "~ b3 ~@2 b3 ~@11", G: "b3@3 b3 ~@2 a3 b3 d4 ~ d4 b3 ~ b3 ~@2",
H: "~@2 b3 ~@7 f#4 ~ e4 d4 b3 d4", I: "~@2 b3 ~@5 d4@2 b3 ~@5", J: "~@2 a3 b3 d4 ~ d4 b3 ~ b3 ~@4 b3!2",
K: "~ b3 ~@7 f#4@2 ~ e4 d4 b3 d4", L: "d4 ~ d4 ~@3 a3 b3 d4!2 b3 ~@3 d4!2", M: "~ d4 ~@5 b3 d4!2 b3 ~ [b3,d4] ~@3",
N: "~ d4 ~@5 b3 d4!2 b3 ~@3 d4 a3", O: "~ d4 ~@4 d4!2 ~ d4 ~@2 d4 ~@3", P: "~@2 d4 ~@3 a3 b3 d4!2 b3 ~@3 d4!2",
Q: "~ d4 ~@4 a3 b3 d4!2 b3 ~ d4 ~ a3 d4", R: "~ d4 ~@2 d4 ~ a3 b3 d4!2 b3 ~@3 d4!2",
S: "~ d4 ~@4 d4!2 ~ b3 d4 ~ d4 ~@3", T: "a3@15 ~",
U: "[~@6 b3 ~ [d4,g#4] ~ [e4,g#4] ~ [f#4,g#4] ~ e4@3 d4 b3@7 ~@7, ~@14 g#4@11 ~@7, ~@14 g4 ~@17]/2", // Ddim E F#sus2
V: "[~@6 b3 ~ d4 ~ e4 ~ f#4 ~ [e4,g#4]@4 b3@6 ~@8]/2", // E
W: "[~@6 b3 ~ [d4,g#4] ~ [e4,g#4] ~ [f#4,g#4] ~ e4@3 d4 b3@7 ~@6 f#3, ~@14 g#4@11 ~@7, ~@14 g4 ~@17]/2", // Ddim E F#sus2
X: "b3 e4 d4@5 ~ b3 ~@3 c#4@2 ~@2", Y: "~@2 a3 b3 d4!2 a3 b3 d4!2 b3 ~@5", Z: "~@2 a3 b3 d4!2 a3 b3 d4!2 e4@2 ~@4",
AA: "~@2 b3 d4 ~ d4 b3 a3 e4@2 ~@6", AB: "~ d4 ~@14",
})).s("gm_electric_guitar_muted").gain(0.31).pan(0.6)
// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note(`<
~@2 A B ~@2 A B ~@9 C ~@5 D ~@8 E ~@9 F G ~ H I ~@2 C ~@5 D ~@8 E ~@9 F G ~ H I ~@3 F G ~ H I ~@9 J K D ~@11 F G ~ H I
~@3 F G ~ H I ~@11 F G ~ H I ~@3 F G ~ H I ~@3 F G ~ H I ~@3
>`.pickRestart({
A: "~@4 [d5,d6] ~ [e5,e6] ~ [g5,g6] ~ [f#5,f#6] ~ [d5,d6] ~ [e5,e6] ~", B: "~@2 [f#5,f#6] ~ [d5,d6] ~@11",
C: "[a5,a6] ~@15", D: "~@12 [f#5,f#6] ~ [e5,e6] ~", E: "[g5,g6] ~@3 [f#5,f#6] ~@3 [d5,d6] ~@3 [e5,e6] ~@3",
F: "~@4 d6 ~ f#6 ~ g6 ~ f#6 ~ d6 ~ e6 ~", G: "~@2 f#6 ~ d6 ~@11", H: "d6 ~@15",
I: "~@4 d6 ~ f#6 ~ g6 ~ f#6 ~ d6 ~ d6 ~", J: "[b4,b5] ~@3 [c#5,c#6] ~@3 [d5,d6] ~@3 [e5,e6] ~@3", K: "[f#5,f#6] ~@15",
})).s("gm_glockenspiel").gain(0.28).pan(0.3)
// chords · brass section · "BRASS 1"
const brass_section = note(`<
~@12 A ~@30 B C D ~ E F ~@26 B C D ~ E F ~@2 B C D ~ E F ~@22 B C D ~ E F ~@2 B C D ~ E F ~@33
>`.pickRestart({
A: "[g3,b3,e4] [a3,d4,f#4] [b3,d4,g4] [c#4,e4,a4]", B: "~@5 a4 b4 d5 g5 f#5 d5 ~ e5@2 f#5 d5",
C: "~ a5 ~ a5 ~ a5 ~@2 [b3,d4,g4]@4 [c#4,e4,a4]@4, [g3,b3,e4] [a3,d4,f#4] ~@2", D: "[d5,a5,d6] ~@7",
E: "~@8 g5 f#5 d5 ~ e5@2 f#5 [f#5,a5]", F: "~ [f#5,a5] ~ [f#5,a5] ~ b4 d5 g5@3 f#5 ~ e5@2 f#5 ~",
})).s("gm_brass_section").gain(0.4).pan(0.4)
// other · trumpet
const trumpet = note(`<
~@36 A@5 B ~ C D B ~ E F ~@19 A@5 B ~ C D B ~ E F B ~ C D B ~ E F ~@11 G@5 H@4 B ~ C D B ~ E F B ~ C D B ~ E F ~@8 B ~
C D B ~ E F B ~ C D B ~ E F B ~ C D B ~ E I ~
>`.pickRestart({
A: "[~@12 d5 e5 ~@14 a5 b5 ~@14 d6 e6 ~@14 a6 b6 a6@15 ~@3, ~@14 d5@63 ~@3, ~@30 a5@47 ~@3, ~@46 d6@31 ~@3]/5",
B: "[d5,a5,d6] ~@7", C: "~@6 [b3,b4] [d4,d5] [g4,g5] [f#4,f#5] [d4,d5] ~ [e4,e5]@2 [f#4,f#5] [d4,d5]",
D: "~ [a4,a5] ~ [a4,a5] ~ [a4,a5] ~@10", E: "~@8 [g4,g5] [f#4,f#5] [d4,d5] ~ [e4,e5]@2 [f#4,f#5] [f#4,a4,f#5,a5]",
F: "~ [f#4,a4,f#5,a5] ~ [f#4,a4,f#5,a5] ~ [b3,b4] [d4,d5] [g4,g5]@3 [f#4,f#5] ~ [e4,e5]@2 [f#4,f#5] ~", // F#m B D G F# E F#
G: "[~@12 d5 e5 ~@14 a5 b5 ~@14 d6 e6 ~@14 a6 b6 a6@18, ~@14 d5@65 ~, ~@3 a5@5, ~@23 d6@17]/5",
H: "[~@12 a5 b5 ~@14 d6 e6 d6@34, d5, ~@7 a5@25]/4", I: "~ [f#4,a4,f#5,a5] ~ [f#4,a4,f#5,a5] ~@12",
})).s("gm_trumpet").gain(0.4).pan(0.3)
// other · shamisen
const shamisen = note("<~ A@6 B A C D@6 E ~@108 A@6 B A ~@25>".pickRestart({
A: "~@2 d5!4 a4!2 ~@2 d5!4 a4!2", B: "~ a4 d5!4 a4!2 ~@2 d5!4 a4!2", C: "~@2 d5!4 a4!4 d5!3 ~ a4!2",
D: "a4!2 d5!4 a4!4 d5!4 a4!2", E: "a4!2 d5!4 a4!4 d5!6",
})).s("gm_shamisen").gain(0.2).pan(0.6)
// other · shamisen · soft notes
const shamisen_soft = note("<~ A B@5 C B D ~@115 A B@5 C B ~@25>".pickRestart({
A: "d5!2 ~@6 a4!2 ~@6", B: "a4!2 ~@6 a4!2 ~@6", C: "a4 ~@7 a4!2 ~@6", D: "~@13 d5 ~@2",
})).s("gm_shamisen").gain(0.08).pan(0.6)
// other · lead 3 calliope · "CALLIOPE"
const lead_3_calliope = note("<~@34 A@2 ~@30 A@2 ~@90>".pickRestart({
A: "[~@8 b4@2 d5 ~ f#5@2 e5@4 f#5 ~@13]/2",
})).s("gm_lead_3_calliope").gain(0.28).pan(0.6)
// … 99 more lines
More by Paula Abdul
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.