0:00/0:00
// Hold Me — Whitney Houston
// 57 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 86 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(57/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 · piano · "HOLDME"
const piano = note(`<
~@16 A@2 B@4 C D@6 E ~@11 F G@2 H@2 I@2 J K@4 L@3 ~ M N@2 O P@3 Q R@2 S T@4 U@3 V@6 W X@4
>`.pickRestart({
A: "[g4@2 f#4@2 e4@2 c#5@2 a4@6 f#4 a4@17]/2",
B: "[g4@3 f#4@6 ~ d4@3 b3@6 ~ a3@44 g4@4 f#4@4 e4@4 c#5@4 a4@12 f#4@2 a4@32 f#4@2]/4", C: "g4@2 f#4 d4@3 e4@3 d4@7",
D: "[c5@4 b4@4 a4@3 f#5@4 ~ d5@11 b4@2 d5@31 ~ b4@2 c5@4 b4@4 g4@6 e4@6 d4@43 c5@4 b4@3 a4@4 f#5@4 ~ d5@11 b4@2 ~ d5@31 b4@2 c5@3]/6",
E: "b4@2 ~ g4@6 a4@5 g4@18", F: "~@29 g4@3", G: "[f#4@4 ~ e4@3 c#5@4 a4@12 f#4@2 a4@34 g4@4]/2",
H: "[f#4@6 d4@3 ~ b3@6 a3@45 g4@3]/2", I: "[f#4@4 e4@4 c#5@4 ~ a4@11 f#4@2 a4@32 f#4@2 g4@4]/2",
J: "f#4@2 ~ d4@5 e4@6 d4@14 c5@4", K: "[b4@4 a4@4 f#5@4 d5@12 b4@2 d5@31 b4@2 c5@4 b4@4 g4@6 e4@6 d4@43 c5@4 b4@2]/4",
L: "[~@2 a4@4 f#5@4 d5@12 b4@2 d5@31 b4@2 c5@4 b4@2 g4@6 a4@6 g4@19 ~@2]/3", M: "~@25 g4@4 f#4@3",
N: "[~ e4@3 c#5@4 ~ a4@11 f#4@2 a4@33 g4@4 f#4@5]/2", O: "~ d4@3 ~ b3@6 a3@8 ~@13",
P: "[~@23 g4@4 f#4@3 e4@4 c#5@4 ~ a4@11 f#4@2 a4@31 f#4@2 g4@4 f#4@2 ~ d4@4]/3", Q: "~ e4@6 d4@14 c5@4 b4@4 a4@3",
R: "[f#5@4 ~ d5@11 b4@2 d5@31 ~ b4@2 c5@4 b4@3 g4@5]/2", S: "~ e4@3 d4@6 ~@6",
T: "[~@19 c5@4 b4@3 a4@4 f#5@4 d5@12 b4@2 ~ d5@31 b4@2 c5@3 b4@2 ~ g4@6 a4@5 g4@14 g4@4 f#4@4 e4@4 c#5@3]/4",
U: "[~ a4@11 f#4@2 a4@33 ~ g4@3 f#4@6 ~ d4@3 b3@6 a3@8 ~@21]/3",
V: "[~@15 g4@4 f#4@4 e4@4 c#5@4 a4@11 f#4@2 a4@31 ~ f#4@2 g4@4 f#4@2 d4@5 e4@6 d4@14 c5@4 b4@4 a4@4 f#5@4 d5@12 ~ d5@31 ~ b4@2 c5@4 b4@4 g4@6 e4@6, ~@137 b4@2 ~@53]/6",
W: "d4@3 ~@5", X: "[~@11 c5@4 b4@3 ~ a4@3 f#5@4 ~ d5@12 b4@2 d5@31 b4@2 c5@4 b4@2 g4@6 a4@5 g4@18 ~@19]/4",
})).s("gm_piano").gain(0.05)
// bass · electric bass finger
const bass = note(`<
~@12 A B C B D E F B G H I J@6 K@7 L@8 M@5 N@4 O@2 P@5 Q@3 R@2 S@2 T U@2 V W X Y Z@4 AA@7 AB
>`.pickRestart({
A: "~@8 d1@7 e1", B: "f#1 g1", C: "a1@15 ~ d1@14 e1@2", D: "a1@8 a1@4 a1@4 d1@11 ~ d1@2 e1@2",
E: "f#1@16 g1@13 ~ g1@2", F: "a1@8 a1@8 d1@11 ~ d1@2 e1@2", G: "a1@8 g1@8 f#1@12 b1@3 ~", H: "b1@6 g1 f#1 e1@7 g1",
I: "a1@7 ~ a1@8 d1@4 d1@4 d1@4 d2@4",
J: "[d1@4 d1@4 d1@3 ~ d1@3 ~ g1@11 ~ g1 a1@2 b1@15 ~ c2@13 ~ c2@2 d2@11 ~ d2@3 ~ g1@11 g1 ~ a1@2 b1@15 ~ c2@13 ~ c2@2 d2@7 ~ c2@8 b1@11 g1@2 f#1 ~ e1@9 ~ e1 ~ f#1 ~ g1@2 a1@11 ~ d2@3 ~ d2@3]/6",
K: "[~@5 d2@7 g2@31 ~ d2@15 ~ d2@15 ~ d2@24 g2@4 g1@4 d1@15 ~ d1@15 ~ d1@12 d2@4 d1@12 a2@4 f#1@14 c#2@2 b1@9 ~ d2@2 e2@2 f#2@2 g2@12 ~@2 g2@2 a2@4]/7",
L: "[~@4 a2@4 a2@3 ~@9 d1@8 ~@8 d1@8 ~@8 d1@8 ~@8 d1@7 ~ d1@14 e1@2 f#1@16 g1@16 a1@15 ~ d1@14 e1@2 f#1@16 g1@16 a1@8 a1@4 a1@4 d1@11 ~ d1@2 e1@2 f#1@16 g1@13 ~ g1@2 a1@4, ~@12 d2@16 d2@15 ~ d2@15 ~ d2@15 ~@181]/8",
M: "[~@4 a1@8 d1@11 ~ d1@2 e1@2 f#1@16 g1@16 a1@8 g1@8 f#1@12 b1@3 ~ b1@12 g1@2 f#1@2 e1@14 g1@2 a1@7 ~ a1@8 d1@4 d1@4 d1@4 d1@4 d1@4]/5",
N: "[d1@4 d1@3 ~ d1@3 ~ g1@11 ~ g1 ~ a1@2 b1@15 ~ c2@13 c2@2 d2@11 ~ d2@3 ~ g1@11 ~ g1 ~ a1@2 b1@15 c2@13 ~ c2@2 d2@6]/4",
O: "[~@2 c2@8 b1@12 g1@2 f#1 ~ e1@9 e1 ~ f#1 ~ g1@2 a1@11 ~ d2@3 ~ d2@7]/2",
P: "[~ d2@8 g2@62 ~@2 g2@16 a2@15 ~ d1@11 d1@2 e1@2 f#1@16 g1@13 ~ g1@2 a1@7 ~]/5",
Q: "[a1@7 d1@11 ~ d1@2 e1@2 f#1@16 g1@15 ~ a1@7 g1@7 ~ f#1@12 b1@3 ~ b1@10]/3",
R: "[~@2 g1@2 f#1@2 e1@14 g1@2 a1@7 a1@8 d1@4 d1@4 d1@4 d1@4 d1@4 d1@4 d1@3]/2",
S: "[~ d1@3 ~ g1@11 g1 ~ a1@2 b1@15 ~ c2@13 ~ c2@2 d2@11 ~]/2", T: "d2@3 ~ g1@11 g1 ~ a1@2 b1@13",
U: "[~@3 c2@13 ~ c2@2 d2@7 ~ c2@7 b1@12 g1@2 f#1 ~ e1@9 ~ e1 ~ f#1 ~]/2", V: "g1@2 a1@11 ~ d2@3 ~ d2@7 ~ d2@6",
W: "~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3", X: "~ d1@11 ~ d1@2 e1@2 f#1@15",
Y: "g1@13 ~ g1@2 a1@7 ~ a1@7 ~",
Z: "[d1@11 ~@2 e1@2 f#1@16 g1@15 ~ a1@7 ~ g1@7 ~ f#1@11 b1@3 ~ b1@12 g1@2 f#1@2 e1@14 g1@2 a1@7 ~ a1@8 d1@2, ~@6 d1 ~@57]/4",
AA: "[~ d1@4 d1@4 d1@4 d1@4 d1@4 d1@3 ~ d1@3 ~ g1@11 ~ g1 ~ a1@2 b1@15 c2@13 ~ c2@2 d2@11 ~ d2@3 ~ g1@11 ~ g1 ~ a1@2 b1@15 c2@13 ~ c2@2 d2@7 ~ c2@8 b1@12 g1@2 f#1 e1@9 ~ e1 ~ f#1 ~ g1@2 a1@11 ~ d2@3 ~ d2@7 ~ d2@8 g1@3 ~ g1@2]/7",
AB: "~@2 g1@3 g1@3 ~@24",
})).s("gm_electric_bass_finger").gain(0.46)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@10 A@4 B C@2 ~@6 D ~ E F ~@3 G@5 ~ H I@3 J@3 ~@6 K ~ L M ~@12 N ~ O P ~@10 Q ~ R@2 ~@3
>`.pickRestart({
A: "[~@24 a4@2 ~@6 a4@5 ~@11 b3@5 ~@11 a3@14 ~@18 g3@15 ~@17, ~@26 e4@11 ~@5 e4@11 ~@5 e4@21 ~@49, ~@28 f#4@9 ~@3 a4@13 ~@3 a4@23 ~@49, ~@44 c#4@9 ~@7 b3@19 ~@15 b3@16 ~@18]/4",
B: "~ c4, ~@14 e4@17 ~", C: "[[c#4,e4]@8 [b3,d4]@15 ~@9]/2", D: "~@24 [d4,g4,b4]!2 ~@3 [d4,g4,b4] ~@2",
E: "~@22 [d4,g4] b4 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3", F: "~@10 b3 ~ c4@2 c4@14 ~@4",
G: "[~@12 c#4@10 ~@6 c#4@10 ~@6 b3@14 ~@2 a3@11 ~@21 c#4@9 ~@7 b3@16 a3@13 ~@23, ~@24 a4@14 ~@2 a4@17 ~@33 d4@11 ~@3 d4@19 ~@37, ~@26 e4@12 ~@4 e4@15 ~@31 e4@13 ~@5 c#4@17 ~@37]/5",
H: "~@10 a4 ~@3 a4@2, ~@11 e4@5, ~@3 f#4",
I: "[~@12 b3@5 ~@11 a3@14 ~@18 g3@15 ~@21, ~@4 a4@13 ~@3 a4@23 ~@53, ~@6 e4@11 ~@5 e4@21 ~@53, ~@8 c#4@9 ~@7 b3@19 ~@15 b3@16 ~@22]/3",
J: "[~@6 c4@8 [c#4,e4]@8 [b3,d4]@15 ~@11, ~@10 e4@17 ~@69]/3", K: "~@20 [d4,g4,b4] ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~@5",
L: "~@19 [d4,g4,b4] ~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@7", M: "~@7 b3 c4@2 c4@14 ~@8",
N: "~@13 [d4,g4,b4]!2 ~@3 [d4,g4,b4] ~@13", O: "~@11 [d4,g4,b4] ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~@13 b3",
P: "~ c4@2 c4@14 ~@15", Q: "~@5 [d4,g4,b4] ~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@21",
R: "[~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@13 b3 ~ c4@2 c4@14 ~@23]/2", // G
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.1)
// other · oboe
const oboe = note(`<
~@12 A@2 B@2 C@2 D ~ E@2 F G@3 H@3 I J K@2 L M N O P@2 ~@2 Q R@2 S Q T@2 U V@3 W X@3 ~ Y Z@2 AA AB@3 AC AD AE AF AG@2
AH@2 AI AJ AK AL@2 AM@3 AN AO@3 AP@2
>`.pickRestart({
A: "[~@19 a3@5 ~@2 a3 ~ a3 ~ c#4@5 ~ c#4 ~ c#4@6 d4 ~ b3@10 ~@8]/2",
B: "[~@20 a3 ~ a3@5 ~ a3 ~ c#4@5 ~ c#4 ~ c#4@5 ~ d4 ~ b3@14 ~@4]/2",
C: "[g4@4 f#4@4 e4@4 c#5@4 a4@10 ~@2 f#4@2 a4@17 ~@17]/2", D: "g4@2 ~ f#4@5 ~@2 d4@2 ~ b3 ~@2 b3@2 ~@2 a3@10 ~@2",
E: "[g4@4 f#4@4 e4@4 c#5@4 a4@10 ~@2 f#4 ~ a4@15 ~@17 f#4 ~]/2", F: "g4@3 ~ f#4 ~ d4@6 e4 ~ e4@4 d4@6 ~@8",
G: "[c5@4 b4@4 a4@3 f#5@4 ~ d5@10 ~ b4@2 d5@14 ~@18 b4@2 c5@4 b4@4 g4@5 ~ e4 ~ e4@3 ~ d4@10 ~@3]/3",
H: "[~@30 c5@4 b4@3 a4@4 f#5@4 ~ d5@10 ~ b4 ~@2 d5@15 ~@16 b4 ~ c5@3]/3", I: "b4 ~@2 g4@6 a4 a4@4 g4@11 ~@7",
J: "~@8 d4@2 b3@2 d4@3 ~ a4@7 ~@9", K: "[d4@2 a4@9 ~@7 g4@2 ~@2 g4@2 ~@2 a4 ~ f#4@3 e4@11 ~@6 d4@2 a4@10 ~@4]/2",
L: "d4@2 a4@13 ~@3 g4@3 ~@2 g4@3 a4 ~@2 f#4@3", M: "e4@10 ~@6 a4 ~ a4@5 ~ a4 ~ a4@6", N: "f#4 ~ g4@6 a4 ~@2 b4@21",
O: "~@2 f#4@3 ~ e4@2 ~@2 d4 ~ d4@3 a4@10 ~@3 d4@3 ~",
P: "[a4@13 ~@7 g4@2 ~ g4 ~@2 a4 ~@2 f#4@2 e4@6 ~ d4 ~@2 e4@6 d4@9 ~@8]/2", Q: "~@7 g4",
R: "[f#4@4 e4@4 c#5@4 a4@10 ~@2 f#4@2 a4@17 ~@17 g4@2 ~@2]/2", S: "f#4@5 ~ d4@2 ~@2 b3 ~ b3@2 ~@2 a3@10 ~@6",
T: "[f#4@4 e4@4 c#5@4 a4@10 ~@2 f#4 ~ a4@15 ~@17 f#4 ~ g4@3 ~]/2", U: "f#4 ~ d4@6 e4 ~ e4@4 d4@6 ~@8 c5@4",
V: "[b4@4 a4@4 f#5@4 d5@10 ~@2 b4@2 d5@14 ~@17 b4@2 c5@4 b4@4 g4@5 ~ e4 ~ e4@3 ~ d4@10 ~@7]/3", W: "~@13 c5@2 b4",
X: "[~@2 a4@4 f#5@4 d5@10 ~@2 b4 ~ d5@15 ~@16 b4 ~ c5@3 ~ b4 ~ g4@6 a4 ~ a4@4 g4@11 ~@10]/3", Y: "~@25 g4@4 f#4@3",
Z: "[~ e4@3 c#5@4 ~ a4@10 ~ f#4@2 a4@17 ~@16 g4@2 ~@2 f#4@5]/2", AA: "~ d4@2 ~@2 b3 ~@2 b3@2 ~ a3@10 ~@11",
AB: "[~@23 g4@4 f#4@3 e4@4 c#5@4 ~ a4@10 ~ f#4 ~ a4@15 ~@16 f#4 ~ g4@3 ~ f#4 ~@2 d4@4]/3",
AC: "~ e4 ~ e4@4 d4@6 ~@8 c5@4 b4@4 a4@3", AD: "f#5@4 ~ d5@10 ~ b4@2 d5@14", AE: "~@18 b4@2 c5@4 b4@3 g4@5",
AF: "~@2 e4 ~ e4@3 ~ d4 ~ d4@3 ~ d4@2 ~ d4@2 f#4@3 ~ f#4 ~ f#4@5 ~ g4",
AG: "[~ e4@13 ~@5 c5@4 b4@3 a4@4 f#5@4 d5@10 ~@2 b4 ~@2 d5@15]/2",
AH: "[~@16 b4 ~ c5@3 b4 ~@2 g4@6 a4 a4@4 g4@11 ~@3 g4@4 f#4@4 e4@4 c#5@3]/2", AI: "~ a4@10 ~ f#4@2 a4@17 ~",
AJ: "~@16 g4@2 ~ f#4@5 ~@2 d4@2 ~ b3 ~@2", AK: "b3@2 ~ a3@10 ~@19",
AL: "[~@15 g4@4 f#4@4 e4@4 c#5@4 a4@10 ~ f#4 ~ a4@15 ~@5]/2",
AM: "[~@12 f#4 ~ g4@3 ~ f#4 ~ d4@5 e4 ~@2 e4@3 d4@6 ~@8 c5@4 b4@4 a4@4 f#5@4 d5@10 ~@3 d5@14 ~@8, ~@73 b4@2 ~@21]/3",
AN: "~@10 b4@2 c5@4 b4@4 g4@5 ~ e4 ~ e4@3 ~",
AO: "[d4 ~ d4@3 ~ d4@2 ~ d4@2 f#4@3 ~ f#4 ~ f#4@5 ~ g4 ~ e4@13 ~@5 c5@4 b4@3 ~ a4@3 f#5@4 ~ d5@10 ~@2 b4 ~ d5@15 ~@8]/3",
AP: "[~@8 b4 ~ c5@3 ~ b4 ~ g4@6 a4 ~ a4@3 g4@9 ~@28]/2",
})).s("gm_oboe").gain(0.49).pan(0.6)
// chords · epiano2
const epiano2 = note(`<
A B C D@6 ~ E F G@5 H I J K L M N O@5 P Q@5 ~ R@8 S@2 T@2 U V@3 W@3 X@2 Y@2 Z AA@4 AB AC AD AE@3 AF AG@2 AH AI@4 AJ@3
AK@5
>`.pickRestart({
A: "g4@2 f#4@2 [c#4,e4]@2 c#5@2 a4@7 ~, d4@2 ~ e4@5", // C#m
B: "[d4,a4,c#5]@8 [c#4,c#5]@2 [d4,d5]@2 [c#4,c#5]@2 [a3,a4]@2 [b3,g4,b4]@15 ~, a3@13 ~@19", // Dmaj7 C# D C# A Em
C: "g5@2 f#5@2 ~@2 e5 ~ e5@4 d5@2 a5 ~, [b3,d5]@8 [g3,d5]@7 ~ [f#3,a3,a4]@15 ~", // Bm G5 F#m
D: "[[c#4,e4,a4,c#5,a5]@16 ~@8 g5@6 ~@2 [e4,a4,c#5]@15 ~ [d4,f#4,d5]@15 ~@9 e5@8 b4@12 b4@2 f#5@2 e5@8 a5@8 d5@12 a4@2 d5@2 [c#5,e5]@8 [a4,c#5,a5]@8 b4@12 a4@2 b4@2 [c#4,e4,c#5,a5]@15 ~@17, ~@16 [b3,d4,g4,b4]@15 c#4@15 ~@2 d3@31 ~ d3@31 ~ d3@31 ~ d3@31 ~@17, ~@64 [c#4,e4,c#5]@16 [b3,d4,d5]@15 ~ [c#4,e4,c#5]@16 [d4,f#4,f#5]@16 [c#4,e4]@16 [b3,d4,d5,g5]@16 e5@9 ~@23]/6", // A D C#m A G C#m Bm C#m …
E: "~@12 e5@3 d5", F: "~@4 d6 c#6 a5 f#5 [b4,g5]@7 d5, [e4,c#5]@7 ~@9",
G: "[c#5@8 [a4,e5]@8 [a4,d5]@10 ~@2 d5@4 c#5@13 ~ [a4,c#5]@2 [g4,a4]@8 ~@8 g5@3 ~ f#5@3 ~ d5@4 b4@3 ~ [f#4,a4]@14 d5@2 c#5@8 c#5@3 ~ d5@4 [g4,a4]@8 ~@8 g5@3 ~ f#5@3 ~ e5@4 c#6@3 ~ [f#5,a5]@12 e5@2 d5@2, ~@28 a4@17 ~@3 b4@11 ~@35 a4@10 a4@8 b4@14 ~@34, ~@56 g4@23 ~@41 g4@23 ~@17]/5", // A5 D5 A Gsus2 F#m Gsus2 F#m
H: "c#5@8 ~@2 c#5@2 d5@2 c#5@2 [b4,d5]@11 ~ e5@2 f#5@2", I: "g5@4 f#5@4 d5@4 b4@3 ~ b4@4 a4@7 ~ e5@2 d5@2",
J: "c#5@7 ~ d5@3 ~ c#5@3 ~ [b4,d5]@11 ~ e5@2 f#5@2, ~ a4 ~@2", K: "g5@4 f#5@4 e5@4 c#6@4 c#5@15 ~, ~@4 a5@3 ~",
L: "[d5,f#5]@7 ~ g5@6 e5 f#5, ~@16 b4@15 ~", M: "g5 f#5 d5 e5 ~@4", N: "~@16 [b5,d6]@12 ~ g5@2 ~, ~@14 a5 ~",
O: "[f#5@8 ~ f#5@2 g5@2 f#5@2 [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 g5@4 e5@2 ~@2 e5@4 d5@7 ~@2 g5@2 f#5@7 ~ g5@3 ~ f#5@3 ~ [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 a5@3 f#6@4 f#5@15 ~ [g5,b5]@14 ~@2 c6@12 a5@2 b5@2 c6@3, ~@59 a5@2 ~@9 d5@7 ~@32 d6@12 ~@20 e5@15 ~@4]/5", // Em G
P: "~ b5@3 g5@4 a5@4 ~@20",
Q: "[~@9 d5@3 ~ f#5@9 ~@2 e5@2 f#5@2 ~@9 c#6@3 b5@2 a5@2 ~@8 d6@4 b4@2 [f#5,c#6]@2 ~@8 e6@4 ~ a5@3 ~ f#5@11 a4@2 d5@2 [c#5,e5]@8 ~@3 c#5@5 d5@10 c#5@5 ~ [c#4,e4,c#5,e5,a5]@9 ~@27, ~@12 d3@31 ~ d3@31 ~ d3@31 ~ d3@31 ~@21, ~@12 [d4,f#4,d5]@15 ~ [c#4,e4,c#5]@16 [b3,d4,d5,g5,b5]@15 ~ [c#4,e4,c#5]@16 [d4,f#4,d5]@15 ~ [c#4,e4]@16 [b3,d4,b4,g5]@16 ~@36, ~@28 a5@12 ~@20 e5 a5@12 ~@3 d6@12 ~@72, ~@36 e5@8 b4@12 ~@5 f#5@16 ~@11 f#5@4 ~@8 [a4,a5]@8 ~@52]/5", // F#5 C#m A D C#m G C#m D …
R: "[~@20 e5@6 d5@2 ~@10 c#6@2 a5@2 f#5@2 [b4,g5]@14 d5@2 c#5@8 [a4,e5]@8 ~ d5@10 ~ d5@4 c#5@13 ~ [a4,c#5]@2 ~ a4@7 ~@8 g5@3 ~ f#5@3 ~ d5@4 b4@3 ~ [f#4,a4]@14 d5@2 c#5@8 ~ c#5@3 d5@4 ~ a4@7 ~@8 g5@3 ~ f#5@3 ~ e5@4 c#6@3 ~ [f#5,a5]@12 ~@2 d5@2 c#5@8 ~@3 c#5@2 ~ c#5@2 [b4,d5]@11 ~ e5@2 f#5@2 ~ g5@3, ~@28 [e4,c#5]@14 ~@34 a4@10 ~@2 a4@17 ~@3 b4@11 ~@35 a4@10 a4@8 b4@14 ~@31 e5@2 ~@14 d5@2 ~@21, ~@37 d6@2 ~@69 g4@7 ~ g4@23 ~@33 g4@7 ~ g4@23 ~@53]/8", // Em A5 A F#m Bm C#m
S: "[f#5@4 d5@4 b4@3 ~ b4@4 ~ a4@7 ~@2 d5@2 c#5@7 ~ d5@3 ~ c#5@3 ~ [b4,d5]@11 ~ e5@2 f#5@2 g5@4, ~@25 e5@2 ~@9 a4@8 ~@20]/2", // Bm
T: "[f#5@4 e5@4 c#6@4 c#5@15 ~@2 [d5,f#5]@14 ~ g5@12 e5@2 f#5@2 g5@4, ~@12 a5@12 ~@20 b4@15 ~@5]/2", // D
U: "f#5 d5 e5 ~@5",
V: "[~@12 [b5,d6]@12 a5@2 g5@2 f#5@8 ~@2 f#5@2 g5@2 f#5@2 [e5,g5]@11 a5@2 b5@2 c6@4 b5@4 g5@4 e5@2 ~@2 e5@4 d5@7 ~ a5@2 g5@2 f#5@5]/3", // Bm Em
W: "[~@3 g5@3 ~ f#5@3 [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 a5@4 f#6@4 f#5@15 ~ [g5,b5]@14 ~ c6@12 a5@2 b5@2 c6@4 b5@3, ~@3 d5@7 ~@32 d6@12 ~@19 e5@15 ~@8]/3", // Em G
X: "[~ g5@4 a5@4 [d5,g5]@12 ~@2 g5@2 [d5,f#5]@12 ~@2 f#5@2 [c5,e5]@12 ~@2 e5@2 [a4,d5]@7, ~@21 d6@4 ~@39]/2", // G5 D C D5
Y: "[~ [f#5,a5]@8 [d5,g5]@16 g5@4 ~@4 e5@4 [a5,c#6]@3 [f#5,a5]@12 e5@2 d5@2 c#5@8, ~@25 d5@8 ~@31, ~@29 f#5@8 ~@27]/2", // F#m G5 A F#m
Z: "~@2 c#5@2 d5@2 c#5@2 [b4,d5]@11 ~ e5@2 f#5@2 g5@4 f#5@4", // Bm
AA: "[d5@3 b4@2 ~@2 b4@4 ~ a4@7 e5@2 d5@2 c#5@7 ~ d5@3 ~ c#5@3 ~ [b4,d5]@11 ~ e5@2 f#5@2 g5@4 f#5@3 e5@4 c#6@4 c#5@15 ~ [d5,f#5]@14 ~@2 g5@11 e5@2 f#5@2 g5@4 f#5@4 d5@3, ~@31 a4@7 ~@32 a5@12 ~@20 b4@15 ~@11]/4", // Bm D
AB: "~ e5@4 ~@27", AC: "~@5 [b5,d6]@12 ~ g5@2 f#5@8 ~@2 f#5@2, ~@17 a5@2 ~@13",
AD: "g5@2 f#5@2 [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 g5@4", // Em
AE: "[e5@2 ~@2 e5@4 d5@7 a5@2 g5@2 f#5@7 ~ g5@3 ~ f#5@3 ~ [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 a5@3 f#6@4 f#5@15 ~ [g5,b5]@14, ~@27 d5@7 ~@32 d6@12 ~@18]/3", // Em G
AF: "~@2 c6@12 a5@2 b5@2 c6@3 b5@4 g5@4 a5@3, ~@2 e5@15 ~@15",
AG: "[~ [d5,g5]@4 [d5,g5]@3 ~ [d5,g5]@3 ~ [d5,g5]@3 ~ [e5,a5]@3 ~ [e5,a5]@3 ~ [e5,a5]@3 ~ [e5,a5]@2 f#5@2 [f#5,a5]@12 ~ d5@2 ~ c#5@8 ~@3 d5@2 c#5@2, ~@45 e5@2 ~@12 c#5@2 ~@3]/2", // G5 A5 F#m
AH: "[b4,d5]@11 ~ e5@2 f#5@2 g5@4 f#5@4 d5@4 b4@2 ~@2", // Bm
AI: "[b4@4 a4@7 ~@2 d5@2 ~ c#5@7 d5@3 ~ c#5@3 ~ [b4,d5]@11 ~ e5@2 f#5@2 g5@4 f#5@4 e5@4 c#6@4 c#5@15 ~ [d5,f#5]@14 ~ g5@12 e5@2 f#5@2 g5@4 f#5@4 d5@4 e5@4 ~@2, ~@12 e5@2 ~@9 a4@7 ~@33 a5@12 ~@19 b4@15 ~@19]/4", // Bm D
AJ: "[~@29 [b5,d6]@12 a5@2 g5@2 f#5@8 ~@2 f#5@2 ~ f#5@2 [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 g5@4 e5@2 ~@2 e5@4, ~@57 g5@2 ~@37]/3", // Bm Em
AK: "[d5@7 ~@2 g5@2 ~ f#5@7 g5@3 ~ f#5@3 ~ [e5,g5]@11 ~ a5@2 b5@2 c6@4 b5@4 a5@4 f#6@4 f#5@15 ~ [g5,b5]@14 ~ c6@12 a5@2 b5@2 c6@4 b5@4 g5@4 a5@4 ~@13 g5@2 [d5,f#5]@12 ~@2 f#5@2 ~@7, ~@8 a5@2 ~@9 d5@7 ~@33 d6@12 ~@19 e5@15 ~@17 [d5,g5]@14 ~@24, ~@133 d6@4 ~@23]/5", // Em G D G5
})).s("gm_epiano2").gain(0.24)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@3 A B ~@11 C@2 D@2 E F G@5 H@4 ~@10 I J@2 K@2 L@3 M@4 N@4 O P@5 Q R S T@6 U V@2 W@3 X@8
>`.pickRestart({
A: "~@4 a3@4 e5@4 a5@3 d6@12 g5@4 ~", B: "e6@2 f#6 ~",
C: "[~@2 a4@2 b4@2 c#5@2 d5@2 e5@2 ~ g5@2 ~ a5@26 ~ d5@2 c#5@2 d5@12 ~@5, ~@6 f#5 ~@14 c#5 ~@10]/2",
D: "[g5@4 a5@3 b5@4 d6@4 a5@30 ~@5 c#5@2 d5@2 ~ f#5@6 ~@3, ~@27 e5 ~@4]/2", E: "g5@2 f#5@2 e5@2 c#6@2 a5@7 c#5",
F: "d5@11 c#5@5 b4@14 c#5@2",
G: "[d5@13 ~@7 d4@3 ~ e4@3 g4@3 ~ c5@3 ~ b4@4 a4@4 f#5@3 [c5,e5,f5] [g5,a5,b5,c6] d6@9 b5@2 f#5@2 g5@2 f#6@10 d6@2 f#5@2 g5@2 g6@15 ~ c6@3 d6@4 e6@4 g6@4 d6@9 ~@3 b5@2 g5@2 f#5@9 ~ f#5@2 ~ f#5@2 ~ e5@15 c6@3, ~@69 d6 ~@10]/5", // Fmaj7 Cmaj7
H: "[~ b5@4 a5@4 f#6@4 d6@13 ~ b5@2 d6@10 ~@2 g5@2 d5@2 ~@13 b4@2 c5@15 b4@31 ~@22, ~@45 [e5,c6]@15 g5@47 ~@21]/4", // C
I: "~@15 a4", J: "[b4 c#5 d5 e5 f#5 g5 a5@13 c#5 d5 c#5 d5@6 ~@2 g5@2]/2",
K: "[a5@2 b5@2 d6@2 a5@15 ~@2 c#5 d5 e5 f#5@3 ~ g5@2]/2",
L: "[f#5@4 e5@4 c#6@4 a5@14 c#5@2 d5@11 ~ c#5@4 b4@14 c#5@2 d5@13 ~@7 d4@3 ~ e4@3 ~ g4@3 ~ c5@3 ~]/3",
M: "[b4@3 a4@4 ~ f#5@2 c5 [e5,f5,g5,a5,b5] d6@10 b5@2 ~ g5@2 f#6@10 d6@2 f#5@2 g5@2 g6@15 ~ c6@4 d6@4 e6@4 g6@3 d6@9 ~@3 b5@2 g5@2 f#5@9 ~ f#5@2 d6@2 f#5@2 e5@15 ~ c6@3 b5@3, ~@12 c6 ~@11 f#5@2 ~@102]/4", // Em
N: "[~ a5@4 ~ f#6@4 d6@13 b5@2 d6@10 ~@2 g5@2 d5@2 [e5,c6]@14 b4@2 c5@15 b4@31 ~@25, ~@57 g5@47 ~@24]/4", // C
O: "~@27 a4@2 ~ c#5@2, ~@29 b4@2 ~",
P: "[d5@2 e5@2 f#5@2 g5@2 a5@26 ~ d5@2 c#5@2 d5@12 ~@5 g5@3 a5@4 b5@4 d6@4 a5@30 ~@5 d5@2 e5@2 f#5@6 ~@2 g5@4 f#5@4 e5@4 c#6@4 a5@14 c#5@2 d5@10, ~@34 c#5@2 ~@69 c#5@2 ~@53]/5",
Q: "~ c#5@4 b4@14 c#5@2 d5@11", R: "~@9 d4@3 ~ e4@3 g4@3 ~ c5@3 ~ b4@4 a4@4",
S: "f#5@3 [c5,e5,f5] [g5,a5,b5,c6] d6@9 b5@2 f#5@2 g5@2 f#6@10 d6@2", // Fmaj7 Cmaj7
T: "[f#5@2 g5@2 g6@15 c6@4 d6@4 e6@4 g6@4 d6@9 ~@3 b5@2 g5@2 f#5@9 ~ f#5@2 ~ f#5@2 ~ e5@15 c6@4 b5@4 a5@4 f#6@4 d6@13 ~ b5@2 d6@10 ~@3 d5@2 ~@14 b4@2 c5@15 b4@10 ~ b3@2 e4 ~ f#4@2 g4@3 ~ f#4@3 e4@4 c#5@4, ~@63 d6@2 ~@61 g5@2 ~ e5@14 ~@2 g5@25 ~@22, ~@65 c6@8 ~@23]/6",
U: "a5@13 c#5 d5 c#5, a4 ~", V: "[d5@12 ~@4 g5@4 a5@3 b5@4 d6@4 a5@30 ~@3]/2",
W: "[~ c#5@2 d5@2 e5@2 f#5@6 ~@2 g5@3 f#5@4 e5@4 c#6@4 a5@14 c#5@2 d5@11 c#5@4 ~ b4@13 c#5@2 d5@13 ~@6]/3",
X: "[~ d4@3 ~ e4@3 ~ g4@3 ~ c5@3 b4@4 a4@4 f#5@3 c5 [e5,f5,g5,a5,b5,c6] d6@10 ~ f#5@2 g5@2 f#6@10 d6@2 f#5@2 g5@2 g6@15 ~ c6@4 d6@4 e6@4 g6@3 d6@9 ~@3 b5@2 g5@2 f#5@9 ~ f#5@2 d6@2 f#5@2 e5@15 ~ c6@3 b5@4 a5@4 f#6@4 ~ d6@13 b5@2 d6@10 ~@2 g5@2 d5@2 [e5,c6]@14 b4@2 c5@15 b4@26 ~@13, ~@39 b5@2 ~@161 g5@43 ~@11]/8", // Cmaj7 C
})).s("gm_string_ensemble_1").gain(0.19)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
A B@2 C D ~@3 E@2 F G H@8 I@2 J@8 ~@4 K@2 L@4 M@8 N@8 ~@2 O@8 P@4 Q@2 R S@4 T@7 U@2
>`.pickRestart({
A: "g4@4 f#4@4 e4@4 c#5@4 [f#4,a4]@11 ~@3 [f#4,b4]@2", // F#m B5
B: "[[a4,c#5]@6 ~@2 c#5@2 ~ c#5@2 ~ a4@2 b4@16 b3@16 [f#4,a4]@15 ~, ~@5 d5 ~@2 g4@16 ~@8]/2", C: "[a4,c#5] [g4,b4]",
D: "[a4,c#5]@15 [d4,f#4]@9 ~@8", // A D
E: "[~@6 [d4,d5]@2 [a3,c#4,c#5]@2 [a3,a4]@2 [e3,e4]@2 [d3,d4]@2 [e3,c#4]@16 f#3@8 f#3@3 g3@3 c#4@2 ~@8 g3@8, ~@6 g3@2 a3@15 a3@5 ~@4, ~@32 d4@15 ~ [d3,b3]@16]/2", // D A E D C#m G
F: "[a3,c#4]@8 d4@4 e4@4 ~ f#4@10 ~@3 [d4,f#4]@2, e3@6 ~@2 d4@5 ~@3", G: "[c#4,a4] [b3,g4]",
H: "[[c#4,e4]@15 [d4,f#4]@16 [c#4,e4]@16 ~ b3@15 g4@16 [d4,f#4]@16 [c#4,e4]@16 ~ b3@15 g4@16 f#4@17 e4@16 d4@15 e4@16 ~@16 e4@16 ~ [b3,d4]@15 e4, ~@48 d4@31 ~@33 d4@31 a3@33 b3@31 f#4@16 ~@33, ~@13 a3@2 ~]/8", // C#m D C#m D C#m Bm
I: "[~@31 f#3@16 [g3,d4]@16 e4, a3 ~, ~@15 f#4@32 ~@17]/2", // G5
J: "[a3@15 [g3,c4]@32 b4@16 a4@16 g4@15 a4@16 b4@16 a4@16 [e4,g4]@15 a4@16 ~@16 b3@15 [c4,g4]@16 a4@16 b4@20, ~@47 d4@32 e4@31 d4@31 ~@16 d4@32 ~@31 d4@36, ~@173 b4@31 ~@52]/8", // C5 Em C5
K: "[~@6 [a3,a4]@2 [e3,e4]@2 [d3,d4]@2 [e3,c#4]@16 f#3@8 f#3@4 g3@2 ~@11 g3@7 [e3,a3,c#4]@4, ~@3 [d4,d5]@2 c#5@2 ~@5 a3@30 c#4@2 [d3,b3]@16 ~@4, ~@4 [a3,c#4]@2 ~@2 g3@5 ~@15 d4@15 a3@10 ~@11]/2", // A E D C#m A D G A
L: "[~@5 d4@3 e4@5 [d4,f#4]@10 ~@3 [d4,f#4]@3 [c#4,a4]@15 [b3,g4]@16 ~ e4@15 [d4,f#4]@16 [c#4,e4]@16 b3@16 g4@4, ~@15 c#4@4 ~@8 d4@5]/4", // D F#m Em D C#m
M: "[~@12 [d4,f#4]@16 [c#4,e4]@16 b3@16 g4@15 f#4@17 e4@16 d4@16 e4@16 f#4@16 e4@16 [b3,d4]@16 e4@16 ~@16 f#3@16 [g3,d4]@16 [a3,e4]@4, ~@44 d4@31 a3@33 b3@32 a3@32 ~@16 a3@32 ~@36, ~@51 f#4@8 ~@5]/8", // D C#m Bm G5 A5
N: "[~@12 [g3,c4]@31 b4@16 ~ a4@15 ~ g4@15 a4@15 ~@16 a4@16 [e4,g4]@16 a4@15 ~@16 b3@16 [c4,g4]@16 a4@15 b4@24, ~@43 d4@32 e4@31 b4@16 ~@47 b4@31 ~@56, ~@107 d4@31 ~@16 d4@32 ~@31 d4@39]/8", // C5 Em C5
O: "[~@8 f#4@16 e4@16 d4@15 e4@16 f#4@16 e4@15 ~ d4@15 e4@16 ~@16 f#3@15 [g3,d4]@16 [a3,e4]@16 [g3,c4]@31 b4@16 a4@12, ~@8 a3@32 b3@31 a3@31 b3@16 a3@32 ~@106, ~@134 f#4@31 ~@63 d4@28]/8", // G5 A5 C5
P: "[~@4 g4@15 a4@16 b4@16 a4@16 [e4,g4]@15 a4@16 ~@16 b3@14, ~@4 e4@31 d4@31 ~@16 d4@32 ~@14, ~@49 b4@15]/4", // Em
Q: "[~ [c4,g4]@16 a4@16 b4@10 b3 ~ e4 ~ f#4 g4@3 ~ f#4@3 ~ e4@3 ~ c#5@3 ~, ~@17 d4@25 ~@22]/2", R: "f#4 e4, a3",
S: "[d4@15 e4@16 f#4@16 e4@16 [b3,d4]@15 ~@32 f#3@15 [g3,d4]@3, b3@31 a3@31 ~@16 e4@16 f#4@31 ~@3, ~@79 a3@32 ~@17]/4", // Bm G5
T: "[~@13 [a3,e4]@16 [g3,c4]@31 b4@16 a4@16 g4@15 ~ a4@15 b4@16 a4@16 [e4,g4]@16 a4@15 ~@16 b3@16 [c4,g4]@6, ~@60 d4@32 e4@31 d4@31 ~@17 d4@32 ~@21, ~@186 b4@31 ~@7]/7", // A5 C5 Em C5
U: "[~@10 a4@15 b4@32 ~@7, ~@5 d4@24 ~@3]/2",
})).s("gm_string_ensemble_2").gain(0.26).pan(0.6)
// chords · string ensemble 2
const string_ensemble_2_2 = note(`<
A B@2 C D ~@3 E F G@2 H@6 I@5 J@8 ~@3 K@2 L@2 M@8 N@3 O@6 P ~@2 Q@7 R@4 S@2 T U V@5 W@7 ~
>`.pickRestart({
A: "e4@4 d4@4 c#4@4 ~@3 f#3@14 ~ [f#3,d4]@2, b3@8 g3@7 ~@17, ~@6 e4@7 ~@3", // D
B: "[c#4@8 e4@7 [g3,d4]@16 ~ e4@4 d4@4 c#4@4 ~@4 f#3@16, a3@15 ~@16 b3@9 g3@8 ~@16, ~@22 e4@7 ~@3]/2", // G5
C: "[a3,e4]@15 [b3,d4]@17", D: "[a3,e4]@15 [d4,f#4]@8 ~@9",
E: "~@4 [a3,c#4,c#5] [a3,a4] [e3,e4] [d3,d4] [e3,c#4]@8, ~@6 d4@2 ~@4 g3@5 ~@15, ~@7 d5@2 ~@23", // A E D C#m
// … 183 more lines
More by Whitney Houston
Greatest Love of AllA major · 64 bpmSaving All My Love For YouA major · 100 bpm1 Moment in TimeC major · 78 bpmDidn't We Almost Have It AllC major · 69 bpmI Wanna Dance With Somebody (Who Loves Me)D♭ major · 118 bpmI Will Always Love YouA major · 67 bpmI Have NothingG major · 51 bpmAll the Man That I NeedF minor · 76 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.