0:00/0:00
// B-Day Song — Madonna
// 150 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 97 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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
const bass = note(`<
~ A B C D E B F G H I J K H I J L M N O P Q R S T U V W X Y Z AA Y AB V AC AD H I J K H I J L M N O P Q R S T U V W X
Y Z AA Y AB V AC AE Z V AF AE K R AF AG AH AI AC AE AJ AK AL AM U V W X Y Z AA Y AB V AC AE B V AC AN
>`.pickRestart({
A: "b1@3 ~ f#1@3 ~", B: "b1@10 ~@2 f#1@9 ~@3", C: "e2@9 ~@3 b1@10 ~@2", D: "e1@10 ~@2 f#1@5 ~ g#1@4 ~@2",
E: "a1@3 ~ e1@3 ~", F: "e1@3 ~ b1@3 ~", G: "e1@9 ~@3 b1@8 ~@4", H: "e1@15 ~@3 e1@2 ~@4", I: "c#2@11 ~ g#1@11 ~",
J: "a1@5 ~ a1 ~", K: "b1@11 ~ f#1@11 ~", L: "b1@11 ~ f#1@6 b1@6", M: "a1@15 ~@3 a1@5 ~", N: "b1 f#1",
O: "e1@16 ~@2 e1@5 ~", P: "a1@11 ~ e2@12", Q: "e1@17 ~ e1@5 ~", R: "b1@11 ~ f#1@6 b1@5 ~", S: "e1 b1",
T: "e1@11 ~ b1@6 e1@5 ~", U: "b1@12 f#1@11 ~", V: "b1@11 ~ f#1@5 ~ b1@5 ~", W: "e1@12 b1@11 ~",
X: "e1@11 ~ g#1@6 b1@5 ~", Y: "a1@5 ~ e1@5 ~", Z: "b1@5 ~ f#1@5 ~", AA: "e1@11 ~ b1@10 ~@2",
AB: "e1@10 ~@2 g#1@9 ~@3", AC: "e1@10 ~@2 b1@11 ~", AD: "e1@11 ~ g#1@5 ~ b1@5 ~", AE: "e1@11 ~ g#1@5 ~ a1@5 ~",
AF: "e1@11 ~ b1@11 ~", AG: "e1@11 ~ f#1@5 ~ g#1@6", AH: "a1@10 ~@2 e1@9 ~@3", AI: "a1@11 ~ e1@6 a1@5 ~",
AJ: "b1@9 ~@3 f#1@10 ~@2", AK: "b1@10 ~@2 f#1@5 ~ b1@5 ~", AL: "e1@5 ~ b1@5 ~", AM: "e1@5 ~", AN: "e1@7 ~",
})).s("gm_electric_bass_finger").gain(0.6).pan(0.6)
// chords · accordion
const accordion = note(`<
A B@2 C@2 D E F@2 ~@15 A G@4 H@2 I@2 J@2 K@2 L M@3 L N@3 ~@7 A G@4 H@2 I@2 J@2 O@6 P@2 Q@3 R@2 S T U V@2 G@4 H@2 I@2
J@2 W@2 X@2 Y@2
>`.pickRestart({
A: "~ [b3,e4]@2 [e4,g#4]", B: "[[f#4,a4]@29 ~ [f#4,a4]@6 [e4,g#4]@6 [f#4,a4]@6]/2",
C: "[[g#4,b4]@35 ~ [g#4,b4]@12]/2", D: "[a4,c#5]@17 ~ [a4,c#5]@6",
E: "[g#4,b4]@5 ~ [f#4,a4]@5 ~ e4@5 f#4@6 ~, ~@11 g#4@6 ~@7", F: "[g#4@15 ~]/2",
G: "[[f#4,a4]@29 ~ [f#4,a4]@5 ~ [e4,g#4]@6 [f#4,a4]@5 ~ b4@41 ~ [g#4,b4]@6, ~@47 g#4@42 ~@7]/4", // F#m E F#m G#m
H: "[[a4,c#5]@10 ~@2 a4@6 a4@3 [g#4,b4]@6 ~ [f#4,a4]@13 [e4,g#4]@3 ~ a4@2 ~, ~@12 c#5@9 ~@23 f#4@3 ~]/2", // A G#m F#m E
I: "[b4@5 ~ b4@5 ~ b4@5 e4@3 ~ [a4,c#5]@14 [a4,c#5]@5 ~@2 a4@6, g#4@11 ~ g#4@10 ~@19 c#5@6 ~]/2", // A
J: "[[g#4,b4]@29 ~ [f#4,a4]@3 [g#4,b4]@3 [a4,c#5]@5 ~ [f#4,a4]@6]/2", K: "[[e4,g#4]@47 ~]/2", L: "g#4@17 b4@6 ~",
M: "[c#4@23 ~@18 g#4@6 ~ d#4@24, ~@23 c#4@23 ~ [b3,f#4]@24 ~, ~@23 e4@12 a4@8 ~@29, ~@24 a3@23 ~@25]/3", // B5
N: "[c#4@22 ~@13 b4@5 ~ c#5@6 ~ [d#4,f#4]@22 ~@2, ~@23 c#4@22 ~@27, ~@23 a4@11 ~@13 b4@22 ~@3, ~@24 e4@23 ~@25]/3", // D#m
O: "[[e4,g#4]@30 ~@2 e4@2 ~@2 d#4@5 e4@6 f#4@6 ~ f#4@5 ~ f#4@5 ~ d#4@3 b3@10 ~ f#4@2 ~ e4@6 f#4@6 g#4@5 ~@2 g#4@5 g#4@6 ~ f#4@3 e4@11 ~ e4@2 ~ d#4@6 e4@6]/6", // E
P: "[f#4@5 ~ f#4@5 f#4@6 d#4@3 b3@8 ~@2 b3@5 ~ c#4@8 b3@2 ~@2]/2",
Q: "[b3@30 ~@6 f#4@5 g#4@6 a4@6 ~ c#4@5 c#4@5 ~@2 c#4@5 ~]/3", R: "[e4@5 a4@17 ~ g#4@6 ~ b3@5 ~ b3@5 ~ b3@5 ~]/2",
S: "e4@6 g#4@17 ~", T: "f#4@5 ~ f#4@5 ~ f#4@8 ~ g#4@3", U: "a4@5 ~ a4@5 ~ g#4@5 ~ f#4@6",
V: "[e4@13 ~@2 [b3,e4]@6 [e4,g#4]@3]/2", W: "[[e4,g#4]@30 ~@6 [b3,e4]@6 [e4,g#4]@5 ~]/2",
X: "[[f#4,a4]@28 ~@2 [f#4,a4]@3 [g#4,b4]@3 [a4,c#5]@5 ~ [f#4,a4]@6]/2", Y: "[[e4,g#4]@5 ~@3]/2",
})).s("gm_accordion").gain(0.28).pan(0.3)
// chords · accordion · soft notes
const accordion_soft = note("<~@6 A B@2 C D E F C D E F E G H I H G J@2 ~@20 E G H I H G J@2 ~@44>".pickRestart({
A: "~@3 a4", B: "[e4@15 ~]/2", C: "[g#4,b4,e5]", D: "[g#4,c#5,e5]", E: "[e4,a4,c#5]", F: "[f#4,b4,d#5]",
G: "[d#4,f#4,b4]", H: "[e4,g#4,b4]", I: "[c#4,e4,a4]", J: "[[e4,g#4,b4]@9 ~@7]/2",
})).s("gm_accordion").gain(0.16).pan(0.3)
// chords · pad choir
const pad_choir = note(`<
A B@2 C@2 D@4 ~@8 E@3 F G H@3 I@2 J K ~@4 L@2 M@2 ~@8 E@3 F G H@3 I@2 J K ~@4 L@2 N@8 O@2 P Q R@2 S T U@2 I@2 J K ~@4
L@2 M@2 L@2 M@2
>`.pickRestart({
A: "~@6 [b3,e4]@6 [b3,e4]@5 ~@2 g#4@5, ~@3 e4", B: "[~ a4@28 ~ [f#4,a4]@6 [e4,g#4]@6 [f#4,a4]@5 ~, f#4@7 ~@5]/2",
C: "[[g#4,b4]@35 ~ [g#4,b4]@11 ~]/2", // G#m
D: "[[a4,c#5]@16 ~ [a4,c#5]@6 ~ b4@6 [f#4,a4]@5 [e4,g#4]@6 ~ [f#4,a4]@5 ~ e4@48, ~@23 g#4@6 ~@18 g#4@48 ~]/4", // A F#m E F#m
E: "[c#5@4 ~@2 c#5@2 ~ c#5@8 ~ c#5@5 d#5@6 ~ d#5@2 ~ d#5@8 ~ c#5@2 d#5@2 ~ e5@5 ~@2 e5@5 e5@6 g#5@6 ~]/3",
F: "c#5@17 ~ g#4@3 a4@3", G: "b4@5 ~ b4@5 ~ b4@6 c#5@5 ~", H: "[b4@6 a4@6 g#4@5 f#4@6 g#4@27 ~@22]/3",
I: "[~@6 a3@2 ~ [a3,f#4]@2 ~ [a3,f#4]@5 [g#3,e4]@2 ~@2 [g#3,e4]@5 ~ d#4@10 ~@11, ~@5 f#4@2 ~@19 f#3@12 ~@10]/2", // D C#m
J: "~@5 [b3,g#4]@2 ~@2 b3@2 ~ b3@5 [a3,f#4]@2 ~ [a3,f#4]@4, ~@8 g#4@2 ~ g#4@5 ~@8", // E D
K: "~@3 e4@11 ~@10, ~@2 g#3@11 ~@11", L: "[~@12 [e4,g#4]@5 ~ a4@3 [d#4,f#4]@16 ~@11, ~@17 f#4@3 ~@28]/2",
M: "[~@6 b4@2 ~ b4@2 ~ b4@5 ~ a4@5 ~ g#4@16 ~@8, ~@6 g#4 ~ g#4@2 ~ g#4@5 ~ f#4@5 ~ e4@19 ~@6]/2",
N: "[~@6 b4@2 ~ b4@2 ~ b4@5 ~ a4@5 ~ g#4@9 g#4@2 ~ f#4@6 g#4@5 a4@5 ~@2 a4@5 ~ a4@5 g#4@3 ~ f#4@11 ~ a4@2 ~ g#4@5 a4@5 ~ b4@5 ~ b4@5 ~ b4@6 ~ a4@3 g#4@11 g#4@2 ~ f#4@6 g#4@5 ~ a4@5 ~ a4@5 ~ a4@6 b4@2 ~ a4@8 ~@2 d#4@5 ~ e4@8 ~ d#4@3, ~@6 g#4 ~ g#4@2 ~ g#4@5 ~ f#4@5 ~ e4@19 ~@150]/8",
O: "[g#4@30 ~@6 a4@5 b4@5 ~@2]/2", P: "c#5@6 a4@4 ~ a4@4 ~@2 a4@5 ~@2", Q: "c#5@4 ~ c#5@16 ~@3",
R: "[b4@5 ~ g#4@4 ~ g#4@4 ~@2 g#4@4 ~@2 g#4@5 ~ b4@16 ~@3]/2", S: "a4@5 ~ a4@4 ~@2 a4@8 ~ b4@3",
T: "c#5@5 ~ c#5@5 b4@6 a4@6 ~", U: "[g#4@13 ~@11]/2",
})).s("gm_pad_choir").gain(0.27).pan(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A B@2 C D@3 E F ~@15 A G@2 H I J K L M N O P Q ~@15 A G@2 H I J K L M N O P Q ~@15 A G@2 H I J K L M N O P Q ~@4
>`.pickRestart({
A: "~ [b3,e4]!2 [e4,g#4]", // E5 E
B: "[[f#4,a4] a4 ~ a4!2 [f#4,a4]@2 f#4 [f#4,a4] a4 ~ a4 [f#4,a4] ~ f#4 [f#4,a4]@2 ~@2 f#4 [f#4,a4] a4 f#4 ~ f#4 ~ f#4!2 ~ f#4 [f#4,a4]!3 a4 f#4 [e4,g#4]!2 ~ e4 ~@2 f#4 ~ f#4 ~@3 b4, ~@2 f#4@2 ~@6 f#4@2 ~ [f#4,a4]@2 ~@2 f#4@2 ~@4 [f#4,a4]@2 [f#4,a4]@2 ~@10 [e4,g#4]@2 ~ [e4,g#4]@2 [f#4,a4]@2 ~ [f#4,a4]@2 ~, ~@9 a4 ~@4 a4 ~@8 f#4]/2", // F#m E F#m E F#m
C: "[g#4,b4] [g#4,b4]@2 g#4 b4 [g#4,b4] ~ g#4 [g#4,b4]@2 g#4 ~ g#4 [g#4,b4]@2 g#4 ~ g#4 [g#4,b4]!2 [g#4,b4]@2 g#4 [g#4,b4], ~@6 [g#4,b4]@2 ~@3 [g#4,b4]@2 ~@3 [g#4,b4]@2 ~@6", // G#m
D: "[[g#4,b4] [g#4,b4]@2 g#4 [g#4,b4]@2 ~ g#4 [g#4,b4] b4 g#4 ~ g#4 ~ g#4 [g#4,b4] ~ [g#4,b4]!2 ~@2 g#4@2 ~@3 a4 ~ a4 ~ a4@2 c#5 [a4,c#5]!3 [a4,c#5]@2 a4 ~ a4 ~ a4 ~@2 a4 ~ g#4@2 [g#4,b4] ~ [g#4,b4]!2 ~ f#4@2 a4 [f#4,a4] ~ e4 [e4,g#4] ~ [e4,g#4]!2 g#4 f#4 [f#4,a4] ~@2 f#4 ~ e4, ~@6 [g#4,b4]@2 ~@3 [g#4,b4]@2 [g#4,b4]@2 ~@4 [g#4,b4]@2 ~@3 a4@2 ~ [a4,c#5]@2 [a4,c#5]@2 ~@8 [a4,c#5]@2 [a4,c#5]@2 ~ [a4,c#5]@2 [a4,c#5]@2 ~@5 [f#4,a4]@2 ~@3 [f#4,a4]@2 ~@4 e4@7 ~, ~@20 b4@2 ~ b4@2 c#5@2 ~@41 [f#4,a4]@2 [f#4,a4]@2]/3", // G#m A G#m F#m E F#m G#m A …
E: "e4 ~ e4 ~ e4 ~ e4@2 g#4 [e4,g#4]!4 ~ [e4,g#4]!4 g#4 e4 [e4,g#4]!2 ~ [e4,g#4], ~ g#4@2 g#4@2 [e4,g#4]@2 ~@17", // E
F: "[e4,g#4]@2 e4 ~ e4 ~@2 g#4 ~ [e4,g#4]!5 ~ [e4,g#4]!4 ~ [e4,g#4]!2 g#4 e4, ~@3 g#4@2 [e4,g#4]@2 ~@17, ~@3 e4 ~@8", // E
G: "[[f#4,a4] a4 ~ a4 [f#4,a4]!2 a4 f#4 [f#4,a4]!3 ~@3 f#4 [f#4,a4]@2 f#4 [f#4,a4]!2 [f#4,a4]@2 f#4 ~ f#4 [f#4,a4] a4 f#4 [f#4,a4]!4 ~ [f#4,a4] ~ g#4 [e4,g#4] ~ [e4,g#4]!2 ~ f#4!2 a4 [f#4,a4]!2 a4 ~, ~@2 f#4@2 ~@8 [f#4,a4]@2 ~@9 [f#4,a4]@2 ~@9 [f#4,a4]@2 ~@4 [e4,g#4]@2 ~@6, ~@13 a4@2 ~@33]/2", // F#m E F#m E
H: "[g#4,b4]!4 ~ [g#4,b4]!4 ~ [g#4,b4]!4 ~ [g#4,b4]!4 ~ [g#4,b4]!4", // G#m
I: "[g#4,b4] ~ [g#4,b4]!3 [g#4,b4]@2 g#4 [g#4,b4]!3 b4 g#4 [g#4,b4]!4 ~ [g#4,b4]!3 [g#4,b4]@2 c#5", // G#m
J: "[a4,c#5]!3 ~ [a4,c#5]!2 ~ a4 ~@2 a4 ~ a4 [a4,c#5] c#5 [a4,c#5] ~ [a4,c#5] [g#4,a4] ~ g#4 ~ g#4 [g#4,b4], ~@6 [a4,c#5]@2 ~ [a4,c#5]@2 [a4,c#5]@2 ~@8 b4@2 ~", // A Amaj7 G#m A
K: "[g#4,b4]!2 a4 f#4 [f#4,a4]!4 ~@2 f#4 ~ f#4 [f#4,a4]!2 ~ [f#4,a4] [e4,g#4]!3 [f#4,a4] a4 f#4 [g#4,b4], ~@9 [f#4,a4]@2 [f#4,a4]@2 ~@11", // G#m F#m E F#m G#m F#m
L: "[g#4,b4]!2 ~ b4 ~ g#4 b4!4 ~ g#4 [g#4,b4] ~ g#4 ~ g#4@2 e4!2 [a4,c#5]!2 a4 c#5, ~@2 [g#4,b4]@2 ~@9 [g#4,b4]@2 [g#4,b4]@2 ~@7", // G#m A G#m
M: "[a4,c#5]!4 ~ c#5!2 a4 [a4,c#5]!3 c#5 a4 [a4,c#5]!4 ~ [a4,c#5]!4 [a4,c#5]@2, ~@2 [a4,c#5] ~@9", // A
N: "g#4 [g#4,b4]!4 g#4 b4 [g#4,b4]!3 [g#4,b4]@2 g#4 ~ g#4 ~ g#4 [g#4,b4] ~ [g#4,b4]!4 ~, ~@13 [g#4,b4]@2 [g#4,b4]@2 ~@7", // G#m
O: "[g#4,b4]!4 b4 g#4 ~ f#4 [g#4,b4]!2 g#4 b4 [a4,c#5]!3 [a4,c#5]@2 f#4 ~ f#4 [f#4,a4] ~ [f#4,a4] [e4,g#4], ~@3 [f#4,a4] ~@5 [f#4,a4] ~@2", // G#m A F#m E F#m
P: "~@3 g#4@2 e4 ~ e4 [e4,g#4]@2 e4 ~ e4 ~ e4 ~@2 e4 [e4,g#4]!2 e4 g#4 ~ [e4,g#4], [e4,g#4]@2 e4@2 ~@2 [e4,g#4]@2 ~@3 [e4,g#4]@2 [e4,g#4]@2 ~ [e4,g#4]@2 ~@6, ~ g#4@2 ~@21", // E
Q: "~@3 g#4@2 e4 ~ e4 ~ e4 ~@2 e4 ~ e4 ~@2 e4 [e4,g#4]!2 e4 g#4 [e4,g#4] ~, [e4,g#4]@2 e4@2 ~@2 [e4,g#4]@2 [e4,g#4]@2 ~ [e4,g#4]@2 [e4,g#4]@2 ~ [e4,g#4]@2 ~@6, ~ g#4@2 ~@21", // E
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.7)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
~ A@3 B C D E@2 F@8 G H I G I J K@3 L M@2 N O P Q R@3 S F@8 G H I G I J K@3 L M@2 N O P Q R@3 S T@2 U V@2 W U X Y Z
U@2 AA AB@4 L M@2 N O P Q R@3 S AC AD@2 AE
>`.pickRestart({
A: "[[f#3,b3,d#4,f#4]@6 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@9 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@9 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@9 [f#3,b3,d#4,f#4]@5 ~ [g#3,b3,e4]@6 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@8 ~ [e3,b3,e4]@3 [e3,g#3,b3,e4]@3, ~@47 e3@6 ~@12 g#3@3 ~@4]/3", // B E E5 E
B: "[e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@5 ~ [e3,g#3,b3,e4]@2 ~ [e3,g#3,b3]@3, ~@5 e4", // E
C: "[e3,a3,c#4,e4]@5 ~ [a3,c#4,e4]@2 ~ [e3,a3,c#4]@3 [e3,a3,c#4,e4]@6 [e3,a3,c#4,e4]@3 [e3,a3,c#4,e4]@3, ~@5 e3@3 e4@4 ~@12", // A
D: "[f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@2 ~ [f#3,b3,d#4]@3 [f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@2 ~ [f#3,b3]@3, ~@5 f#3@3 f#4@4 ~@5 f#3@3 [d#4,f#4]@4", // B B5 D#m
E: "[[e3,g#3,b3,e4]@5 ~ [g#3,b3,e4]@3 [e3,g#3,b3,e4]@8 ~ [g#3,b3,e4]@3 [e3,g#3,b3,e4]@9 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@9 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3, ~@5 e3@3 ~@9 e3@3 ~@28]/2", // E
F: "[[e3,g#3,b3,e4]@11 ~ [e3,g#3,b3,e4]@11 ~ [c#4,e4]@11 ~ e4@11 ~ [a3,c#4,e4]@12 [e3,a3,c#4,e4]@11 ~ [d#4,f#4]@12 [f#3,b3,d#4,f#4]@12, ~@23 [e3,g#3]@12 [e3,g#3,c#4]@12 e3@12 ~@12 [f#3,b3]@12 ~@13]/4", // E C#m A D#m B E C#m B5
G: "[e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]!2", H: "[f#3,b3,d#4,f#4]@2 [f#3,b3,d#4,f#4]!2",
I: "[e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]!2", J: "[f#3,d#4,f#4]@2 [f#3,b3,d#4,f#4]!2, b3 ~@23",
K: "[[e3,g#3,b3,e4]@5 ~ [e3,g#3,b3,e4]@5 ~ [b3,e4]@5 ~ e3@4 ~@2 [b3,e4]@23 b3 [d#4,f#4]@6 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@6 [f#3,b3,d#4,f#4]@6, ~@11 [e3,g#3]@6 [g#3,b3,e4]@5 e3@25 f#3@7 ~@18, ~@23 g#3@26 ~@23]/3", // E E5 D#m B E
L: "[f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@2 ~ f#3@2 ~ [b3,d#4,f#4]@6 [f#3,b3,d#4,f#4]@6, ~@5 f#3@3 [b3,d#4,f#4]@3 f#3@6 ~@7", // B
M: "[[e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@5 ~ e4@5 ~ [g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@6, ~@23 [e3,g#3,b3]@6 e3@3 ~@16]/2", // E
N: "[e3,a3,c#4,e4]@6 [e3,a3,c#4,e4]@3 [e3,a3,c#4,e4]@3 [e3,a3,c#4,e4]@5 ~ [e3,a3,c#4,e4]@6", // A
O: "[f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@6, ~@5 f#3@3 ~@9 f#3@6 ~", // B
P: "[e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@2 ~ [e3,g#3,b3]@3 [e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@6, ~@2 e4 ~@3", // E
Q: "[e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]!2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2", // A
R: "[[e3,g#3,b3,e4]@6 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@5 ~ [g#3,b3,e4]@5 ~ [d#4,f#4]@5 ~ f#4@2 ~ [f#3,b3]@3 [f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@5 ~ [b3,e4]@5 ~ [b3,e4]@2 ~ [e3,g#3]@3 [e3,g#3,b3,e4]@5 ~ [g#3,b3,e4]@6, ~@17 e3@6 e3@6 [f#3,b3,d#4]@3 ~@9 f#3@6 [f#3,g#3]@6 [e3,g#3]@3 ~@9 e3@6 ~, ~@24 b3 ~@7 [d#4,f#4]@4 ~@20 [b3,e4]@4 ~@12]/3", // E D#m B5 B E5 E B F#sus2 …
S: "[e3,g#3,b3,e4]@5 ~ [g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@5 ~ [g#3,b3,e4]@6, ~@5 e3@3 ~@9 e3@6 ~", // E
T: "[[d#3,f#3,b3,d#4]@11 [d#3,f#3] [b3,d#4]@11 [d#3,f#3,b3,d#4]@12 ~ [b3,d#4]@12, ~@35 [d#3,f#3]@12 ~]/2", // B D#m B D#m
U: "[e3,g#3,b3,e4]!2", // E
V: "[[e3,g#3,b3,e4]@12 [e3,g#3,b3,e4]@11 ~ [b3,d#4,f#4]@11 ~ [d#4,f#4]@12, ~@23 f#3@12 [f#3,b3]@12 ~]/2", // E B D#m B5
W: "[f#3,b3,d#4,f#4]!2", X: "[e3,g#3,b3,e4]@11 ~ [b3,e4]@12, ~@11 [e3,g#3]@12 ~",
Y: "[e3,a3,c#4,e4]@11 ~ [c#4,e4]@12, ~@11 [e3,a3]@12 ~", Z: "[e3,a3,c#4,e4]!2",
AA: "[f#3,d#4,f#4]@12 [f#3,b3,d#4,f#4]@11 ~", // D#m B
AB: "[[f#3,b3,d#4,f#4]@12 [f#3,b3,d#4,f#4]@11 ~ [g#3,b3,e4]@11 ~ [g#3,b3,e4]@11 ~ [g#3,b3,e4]@23 b3 [d#4,f#4]@6 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@6 [f#3,b3,d#4,f#4]@6, ~@23 e3@12 e3@12 e3@24 f#3@7 ~@18]/4", // B E D#m B
AC: "[f#3,b3,d#4,f#4]@6 [f#3,b3,d#4,f#4]@3 [f#3,b3,d#4,f#4]@3 ~ [d#4,f#4]@5 [f#3,b3,d#4,f#4]@5 f#3, ~@2 [f#3,b3] ~", // B D#m B B5
AD: "[[b3,d#4,f#4] ~@5 f#4@2 ~ [f#3,b3]@3 [f#3,b3,d#4,f#4]@5 ~ [b3,d#4,f#4]@5 ~ [b3,e4]@5 ~ [b3,e4]@2 ~ [e3,g#3]@3 [e3,g#3,b3,e4]@5 ~ [g#3,b3,e4]@6, ~@5 [f#3,b3,d#4]@3 [d#4,f#4]@4 ~@5 f#3@6 [e3,g#3]@6 [e3,g#3]@3 [b3,e4]@4 ~@5 e3@6 ~]/2", // B B5 B E5 E B D#m E …
AE: "[e3,g#3,b3,e4]", // E
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.7)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~@12 A B ~@2 C D E F G H I J K ~@15 A B ~@2 C D E F G H I J K ~@11 L@4 M@8 N@5 ~@16
>`.pickRestart({
A: "~ f#3 b3 d#4", B: "e4", C: "~ [d#4,f#4] [c#4,e4] [b3,d#4]", D: "~@9 e4@2 ~, e4@3 ~, c#4!2, ~ a3@3",
E: "d#4@6 ~@12 f#4@5 ~, f#4@12 d#4@11 ~, ~ b3@3", F: "e4@6 ~@12 b4@5 ~, g#4@12 e4@11 ~, ~ b3@3",
G: "e4 ~ [e4,a4]@2, a4@5 ~@7, ~ c#4@3", H: "[e4,g#4]@23 ~", I: "[d#4,f#4]@7 ~",
J: "[e4,g#4]@6 ~@6 a4@2 g#4@3 ~ a4@6, ~ b3@3", K: "[e4,g#4]@11 ~",
L: "[~@8 f#4@11 ~@5 g#4@8, ~@7 f#3@12 ~@4 [g#3,b3]@9, ~@11 b3@18 ~@19, ~@23 d#4@35 ~@12 e4@26]/4", // G#m
M: "[~@24 f#4@33 ~@15 g#4@33 ~@15 a4@34 ~@14 g#4@24, ~@21 f#3@36 ~@13 [g#3,b3]@36 ~@12 a3@37 ~@10 g#3@27, ~@22 b3@36 ~@61 [c#4,e4]@36 ~@11 b3@26, ~@23 d#4@35 ~@13 e4@34 ~@62 e4@25]/8", // G#m C#m
N: "[~@23 f#4@32 ~@17 g#4@25 ~@23, ~@21 f#3@34 ~@15 [g#3,b3]@28 ~@22, ~@22 [b3,d#4]@33 ~@16 e4@26 ~@23]/5", // G#m B
})).s("gm_acoustic_guitar_nylon").gain(0.45).pan(0.6)
// other · piano
const piano = note(`<
~@17 A B C D E F G H I@2 J@2 K@2 L@2 M@2 N@2 ~@8 A B C D E F G H I@2 J@2 K@2 L@2 M@2 O@2 P@2 Q@2 R@2 S@2 T U V@2 W X
Y@2 I@2 J@2 K@2 L@2 M@2 Z@2 AA@2 N@2
>`.pickRestart({
A: "c#4", B: "d#4@6 c#4 d#4", C: "e4@3 g#4", D: "c#4@6 g#3 a3", E: "b3@3 c#4", F: "b3 a3 g#3 f#3", G: "g#3",
H: "~ e4@2 g#4", I: "[a4@6 g#4 a4]/2", J: "b4/2", K: "[c#5@7 b4@2 a4@5 g#4 a4]/2", L: "[b4@6 g#4 c#5@5 g#4@2 a4@2]/2",
M: "[b4@10 a4 b4 c#5@2 a4@2]/2", N: "g#4/2", O: "[g#4@11 g#4 f#4@2 g#4@2]/2", P: "[a4@6 g#4 f#4@4 a4 g#4@2 a4@2]/2",
Q: "[b4@6 a4 g#4@5 f#4@2 g#4@2]/2", R: "[a4@6 b4 a4@3 d#4@2 e4@3 d#4]/2", S: "[g#4@6 a4 b4]/2", T: "c#5 a4@3",
U: "c#5", V: "[b4 g#4@4 b4@3]/2", W: "a4@7 b4", X: "c#5@2 b4 a4", Y: "[g#4@5 e4@2 g#4]/2", Z: "[g#4@6 e4 g#4]/2",
AA: "[a4@11 b4 c#5@2 a4@2]/2",
})).s("gm_piano").gain(0.05)
// drums · kick
const kick = s("bd").struct("<~ [x!2]!95 x>").gain(0.75)
// drums · rim
const rim = s("rim").struct("<~@9 [~ x]!15 ~@13 [~ x]!15 ~@27 [~ x] ~@17>").gain(0.45)
// drums · snare
const snare = s("sd").struct("<~ A@7 B ~@15 C A@12 ~@15 C A@26 ~ C A@15 ~>".pickRestart({
A: "~ x", B: "~ x!2 ~", C: "~ x!3",
})).gain(0.53)
// drums · low tom
const low_tom = s("lt").struct("<~@8 A ~@15 B ~@27 B ~@27 B ~@16>".pickRestart({
A: "~@3 x", B: "~@2 x!2",
})).gain(0.53)
// drums · hihat
const hihat = s("hh").struct("<A@24 ~ B A@26 ~ B A@11 B A@7 B A@6 ~ B A@14 ~>".pickRestart({
A: "x!4", B: "~ x!3",
})).gain(0.53)
// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A B ~@11 A ~@14 A B ~@11 A ~@14 A B ~@16>".pickRestart({
A: "~@3 x", B: "~ x ~@2",
})).gain(0.53)
// drums · high tom
const high_tom = s("ht").struct("<~@23 A ~@12 A ~@14 A ~@12 A ~@14 A ~@17>".pickRestart({
A: "~@2 x!3 ~@3",
})).gain(0.53)
// drums · crash
const crash = s("cr").struct("<~@24 A@2 ~@26 A@2 ~@11 A ~@7 A ~@6 A@2 ~@14 A>".pickRestart({
A: "x",
})).gain(0.53)
// drums · tambourine
const tambourine = s("tb").struct("<~ A@23 ~ A@27 ~ A@27 ~ A@15 ~>".pickRestart({
A: "~ x",
})).gain(0.68)
stack(
bass, accordion, accordion_soft, pad_choir, acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_nylon,
// … 2 more lines
More by Madonna
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.