KeyA majorTempo67 bpm
0:00/0:00
// I Will Always Love You — Whitney Houston
// 67 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 76 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(67/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 ~@17 B@2 C@4 D@5 E@2 F@2 G@7 H I J K L@2 M@7 N@4 O@8 P ~ Q@4 ~ R@3 ~>".pickRestart({
A: "~@15 e5@23 ~@10, ~@6 c#5@13 ~@5",
B: "[~@26 e4@3 ~@46 d4@3 e4@18, ~@8 c#5@21 ~@28 c#5@15 a4@6 ~@18, ~@14 b4@15 ~@34 b4@15 ~@18, ~@17 a4@6 a4@6 ~@37 a4@3 g#4@9 ~@18, ~@20 g#4@9 f#4@49 ~@18]/2",
C: "[~@18 a4@4 ~@3 a4@3 d4@3 e4@3 a3@12 ~@6 b3@6 [e3,a3,c#4]@12 [f#3,a3,d4]@12 ~ [a2,a3]@36 [a2,f#3,a3,d4]@12 e3@18 e3@30 ~ [f#2,f#3,a3,c#4]@12, ~@9 c#5@18 ~@56 c#4@24 ~@24 c#4@30 ~@31, ~@15 b4@12 ~@19 a3@12 b2@24 ~ e3@18 ~@91, ~@22 g#4@6 ~@6 [b2,d4,f#4]@25 ~@72 [a2,a3]@47 ~@14]/4", // A D A D F#m Bm A
D: "[~@10 a4@2 g#4@6 e4@6 ~@7 e4@6 [d2,d3,a3,d4,f#4]@24 [b3,g#4]@12 [b3,e4,g#4]@12 a4@18 a4@4 b4@3 [a3,c#4,e4,g#4]@12 [g#3,b3,e4]@10 ~ b3 a3@18 ~@25 a4@5 ~ [f#3,c#4,f#4,a4]@24 c#4@12 ~@6 g#4@6 ~ [d3,a3,c#4,f#4]@8, f#3@12 e2@24 ~@25 [e2,e3]@23 ~ [a2,c#4,e4]@25 a2@24 [a2,c#4,e4]@48 ~@37 c#4@12 ~@9, ~@6 f#4@6 ~@12 [e3,c#4]@12 ~@49 a3@12 ~@35 a3@2 ~@73 [e3,e4]@24 ~@9, ~@8 g#4@4 ~@49 e4@5 ~@141 g#4@18 ~@15]/5", // D E Amaj7 E F#m Dmaj7 E A …
E: "[~@4 [a3,f#4]@12 [e3,b3,e4]@6 ~@3 e3 ~@2 [e4,g#4]@3 [f#4,a4]@3 [g#4,b4]@6 [e4,c#5]@12 ~@6 a3@6 [f#4,a4]@12 ~ [f#4,a4]@12 [d3,a3,d4,f#4]@6 a3, ~@5 [a2,a4]@3 ~@4, ~@20 a3@9 ~@3 f#3@12 ~@4, ~@52 c#5@12 c#4@4 ~@9 c#4@6 ~@13]/2", // D E5 E F#m G#m C#m F#m D …
F: "[~@5 [d4,f#4]@12 b3@5 ~@2 b3@5 [b3,e4,g#4]@13 e4@12 ~@6 a3@6 [c#4,f#4,a4]@12 ~@6 f#3@6 [d3,a3,d4,f#4]@6, ~@5 a3@6 ~@6 e3@18 ~@7 [a2,a4,c#5]@24 ~@30, ~@17 [e4,g#4]@12 ~@13 a3@18 ~@6 f#3@18 ~@12, ~@54 e4@12 ~@12 [c#4,f#4,a4]@13 ~@5]/2", // D E F#m D A E F#m
G: "[~@7 a3@6 [d3,a3]@6 [b3,e4,g#4]@12 [b3,e4,g#4]@12 a3@12 a3@9 e3@2 ~@2 e3@2 ~ a2@9 [a2,a3,d4,f#4]@9 ~ b3@2 [a3,c#4]@15 ~@6 e4@3 [e2,g#3,b3,e4]@6 e3@3 [e2,g3,a#3,c4,d#4]@10 [e2,f#3,a3,b3,d4]@6 [a3,c#4,e4]@24 a3@6 a3@6 [a2,a3,d4,f#4]@9 [a3,d4,f#4]@3 e4@18 ~ a4@3 [f#4,a4,d5]@3 [a2,a3,e4,a4,c#5]@12 [g#2,g#3,e4,g#4,b4]@12 c#4@18 c#4@6 c#4@11 ~@8 g#4@6 [d3,a3,d4,f#4]@24 [e3,b3,e4,g#4]@9 [c#4,e4,a4]@9 [e4,g#4,b4]@6 ~, ~@6 [d4,f#4]@13 e3@18 ~@6 [a2,c#4,e4]@24 [a3,c#4,e4]@3 [a3,d4,f#4]@9 ~@10 a3@3 a2@25 ~@24 a2@36 ~@12 [a2,a3,c#4]@24 ~@61 c#4@12 ~@50, ~@107 [a3,c#4]@9 ~@122 [f#3,f#4,a4]@24 [e3,e4]@24 ~@34 e3@14 ~@2, ~@110 d4@6 c#4@5 ~@44 [c#4,e4]@12 ~@30 [e4,c#5]@6 ~@49 g#4@18 ~@56]/7", // D5 E D A E C7 Bm7 A …
H: "[a4,c#5]@2 a4 [a3,e4,a4] [e4,g#4,b4]@2 [e4,g#4,b4]@2, a2 [a2,a3], [a3,e4]@3 ~@5, ~ c#5 ~@2", // A A5 E A A5
I: "[c#4,a4]@12 ~@9 a4@3 ~ c#4@9 ~@3 c#4@11, a2@24 ~ [c#3,g#3,e4,g#4]@23, [a3,e4]@16 a3@9 ~@23, ~ [c#4,a4] ~@2, ~@19 e4@6 ~@23", // F#m C#m A5 F#m
J: "~ [c#4,f#4,a4]@12 [c#4,f#4,a4]@12 [c#4,g#4]@12 [c#4,g#4]@11, ~ f#3@24 [e3,e4]@23", // F#m C#5 E
K: "~@2 a3@9 ~@3 a3@12 g#3@12 ~@3 b3@7, ~ [d3,c#4,f#4]@12 e3@11, ~@13 [b3,e4]@9 ~@2, ~@19 g#3@5", // Dmaj7 E5
L: "[~@2 a3@4 ~@2 a3@6 ~@7 a3@6 ~@9 a2@3 a3@5 ~ a3@4 ~ b4 ~@18 a4@3 [a2,f#4,a4,d5]@3 a3@6 e4@4 a3@3 [g#3,g#4,b4]@6 e4@2, ~@2 a2@33 ~@4 [a2,f#4,a4,d5]@12 [a2,e4,a4,c#5]@18 [e4,c#5]@6 e4@5 ~@8 e4@3 ~@5, ~@2 [c#4,e4]@12 c#4@12 ~@26 a3@23 ~@21, ~@15 e4@12 ~@22 a4@2 ~@15 a2@6 ~@3 [a2,a4,c#5]@13 ~@8]/2", // D G#m D A C#m A
M: "[~ g#3@3 [f#3,c#4]@15 ~@6 a4@3 ~@22 e3@3 [a3,d4,f#4]@12 ~@9 d3@3 [e3,b3,e4,g#4]@9 [e3,c#4,e4,a4]@8 ~ [e3,e4,g#4,b4]@6 [a4,c#5]@12 ~@6 e4@4 a3@3 [g#4,b4]@12 [e4,g#4,b4]@12 e4@15 ~@3 e4@3 ~ e4@3 [e4,g#4,b4]@11 [e4,g#4,b4]@12 ~ [f#4,a4]@12 c#4@6 c#4@6 c#4@11 ~ c#4@11 ~ [d3,a3,c#4,f#4]@24 ~@37 g#4@27 ~, ~@4 f#4@24 g#4@12 g#4@12 ~@61 [a4,c#5]@13 ~@45 a4@3 ~@37 [f#4,a4]@12 ~@61 f#3@51 ~, ~@4 a4@18 g#4@6 e3@21 ~@4 d3@21 ~@27 [a2,a3]@24 ~ [a2,a3]@24 [a2,a3,a4]@24 ~ c#3@24 ~@73 g#3@17 g#3@45 ~@2, ~@19 [f#3,c#4]@10 ~@5 c#4@18 ~@13 d4@12 ~@24 e4@18 ~@7 e4@6 ~@18 c#4@10 ~@5 c#4@9 ~@25 c#4@5 ~@68 b3@23 b3@39 ~@2, ~@34 e4@12 ~ e4@6 ~@18 a3@6 ~@122 f#3@24 [e3,e4,g#4]@24 ~@25 [e3,e4]@63 ~]/7", // F#5 D E A E A G#m E …
N: "[~@9 d#4@12 d#4@12 [g#4,b4]@12 [d#4,g#4,b4]@12 ~ d#4 ~@2 d#4@7 ~@8 b3@6 c#4@6 c#4@6 c#4@2 ~@4 c#4@6 b4@12 ~@7 [d#4,f#4]@6 [d#4,g#4,b4]@12 d#4@6 d#4@6 [c#4,e4,g#4,b4]@12 c#4@2 ~@4 c#4@6 c#4@4 ~@3 c#4@6, ~@9 [b3,f#4,b4]@24 g#3@24 ~ [e3,g#4,b4]@24 f#3@24 f#4@18 ~@19 [g#4,b4]@12 ~@12 [e4,g#4,b4]@13 ~@12, ~@33 d#4@6 ~@31 d#4@12 [f#4,a#4]@12 [f#4,a#4]@12 b3@25 g#3@24 c#3@25 ~@12, ~@106 d#4@5 ~@7 b4@12 ~@49 [f#3,f#4,a#4]@13]/4", // G#m D#m G#m C#m7 B5 E G#m E …
O: "[c#4@3 c#4@6 f#3@3 [d#4,f#4,b4]@12 d#4@3 ~@6 b3@3 [d#4,g#4,b4]@12 [g#4,b4]@12 ~ [d#4,g#4,b4]@12 ~@6 d#4@6 c#4@5 ~ c#4@6 c#4@3 ~@3 c#4@6 b4@12 ~@6 [d#4,f#4]@6 ~ d#4@4 ~@2 d#4@6 d#4@3 ~@3 d#4@6 c#4@3 ~@3 c#4@6 [d#3,c#4,e4,g#4,b4]@6 [e3,c#4,e4,g#4,b4]@6 ~ c#4@3 ~@2 c#4@6 [c#4,f#4,a#4]@12 ~ [d#4,f#4] ~@2 d#4@7 ~@2 d#4@9 [b3,f#4]@3 d#4@3 ~@3 d#4@6 ~@6 g#3@6 [d#4,g#4,b4]@12 ~ [g#4,b4]@12 c#4@5 ~ c#4@6 [f#4,a#4]@12 [d#4,b4]@12 ~@7 f#4@5 [d#4,g#4,b4]@12 ~@7 g#3@6 [b3,d#4,g#4,b4]@12 ~@6 b3@5 ~ [f#3,a#3,f#4,a#4]@6 ~, [f#4,a#4]@12 b3@18 d#4@6 g#3@24 ~ [e3,b3]@24 f#3@24 b3@24 ~ g#3@25 ~@24 f#3@24 [b3,b4]@24 g#3@18 ~@31 f#3@24 f#4@18 ~@62, ~@24 [f#4,b4]@12 ~@12 d#4@6 ~@19 b4@12 [f#4,a#4]@12 [f#4,a#4]@12 [d#4,f#4]@18 ~@31 [c#3,e4,g#4,b4]@12 ~@85 [e3,b3]@24 ~@37 [d#4,b4]@12 ~@13 [d#4,g#4,b4]@12 ~@12 [d#4,g#4,b4]@11 ~@8, ~@121 b4@12 ~ [g#4,b4]@12 [g#4,b4]@12 ~@25 [f#4,a#4]@11 ~@37 [g#4,b4]@12 [d#4,g#4,b4]@12 ~@13 d#4@3 ~@9 [f#4,a#4]@12 c#4@4 ~@8 b3@24 g#3@18 ~@7 e3@23 ~@8]/8", // B G#m D#m C#m7 F# D#m B5 G#m …
P: "[g#3,b3,g#4,b4] [a#3,c#4,a#4,c#5]@3 ~@4", // G#m A#m
Q: "[~@53 b4@3 a#4@3 c#5@3 f#4@3 g#4@23 ~@13 b4@4 a#4@3 b4@3 e4@3 f#4@20 ~@19 a#4@3 b4@3 d#4@3 ~@3 f#4@21 ~@6, ~@43 d#5@13 ~@36 d#5@15 ~@34 d#5@16 ~@35, ~@46 f#4@10 ~@39 f#4@12 ~@37 f#4@13 ~@5 e4@24 ~@6, ~@49 c#5@7 ~@42 c#5@9 ~@40 c#5@10 ~@35, ~@25 b4 ~@6]/4",
R: "[~@30 d#5@37 ~@5, ~@11 [c#4,d#4]@48 ~@13, ~@23 b1@96 ~@25]/3", // C#sus2
})).s("gm_epiano2").gain(0.35).pan(0.7)
// chords · epiano2 · "E.PIANO 2" · soft notes
const epiano2_soft = note(`<
A ~@21 B C ~@2 D E ~ F G H ~ I ~@8 J K L ~@2 M N O P ~@2 Q ~ R ~@2 S ~@2 T U V ~@8 W@3 ~
>`.pickRestart({
A: "~@5 a4@14 ~@5, ~ a2@37 ~@10, ~@4 e3@35 ~@9, ~@3 a3@16 ~@5, ~@4 e4@15 ~@5",
B: "~@17 e3@6 ~@25, ~@5 e3@12 ~@31, ~@11 c#4@12 ~@25", C: "~@17 c#4@17 ~@14", D: "~@2 a3@3 a3@9 ~@34",
E: "~@4 a3@15 ~@5", F: "~@4 c#4@11 ~@33", G: "~@4 e4@12 ~@7 c#4@6 ~@6 c#4@6 ~@7",
H: "~@14 d3@3 ~@18 e3@6 ~@7, ~@11 a3@6 ~@31", I: "~@37 e3@6 ~@5", J: "~@22 c#4@3 ~@23", K: "~@11 e4",
L: "~@9 [a3,c#4,e4]@4 ~@3", M: "~@17 f#4@12 ~@19, ~@17 a3@6 ~@25", N: "~@6 e4 ~", O: "~ a3 ~@14",
P: "~@13 c#4@6 ~@29", Q: "~@40 d#4@5 ~@3", R: "~@17 d#4@12 ~@19", S: "~@7 d#4@6 ~@12 g#4@12 ~@11, ~@25 d#4@6 ~@17",
T: "~@6 f#4@6 d#4 ~@3", U: "~@17 d#4@3 ~@4", V: "~@5 c#4@3 ~@16",
W: "[~@80 d#6@53 ~@11, ~@20 f#3@57 b5@56 ~@11, ~@21 b3@58 c#6@55 ~@10, ~@56 b4@77 ~@11, ~@29 c#5@38 ~@5]/3",
})).s("gm_epiano2").gain(0.2).pan(0.7)
// bass · fretless bass · "FRETLESS"
const bass = note("<~@18 A@4 B C@4 D E F@2 G@3 H@6 I J K L M N O@3 P@5 Q@6 R S@6 ~ T@8>".pickRestart({
A: "[~@32 d1@37 ~@3 d1@3 a1@3 d2@3 c#2@49 b1@48 a1@14]/4", B: "~@5 a1@4 ~@2 a1@37",
C: "[~@5 a1@4 ~@3 a1@12 g#1@11 ~ f#1@17 ~ f#1@6 e1@25 d1@16 ~@2 d1@6 e1@21 f#1@2 ~ a1@16 ~@3 a1@4 ~@2 a1@12 e1@9 f#1 ~ g#1 a1@10, ~@66 g#1 ~@29]/4",
D: "~@8 a1@4 ~@2 a1@12 ~ g#1@12 f#1@9", E: "~@9 f#1@6 e1@16 ~@2 e1@6 ~ d1@8",
F: "[~@10 d1@6 e1@17 ~ e1@6 a1@18 ~ g#1@6 f#1@18 e1@6 d1@7]/2",
G: "[~@11 d1@6 e1@22 ~ g#1 ~ a1@18 g#1@6 f#1@18 e1@6 d1@17 ~@2 d1@6 e1@18 e1@6 a1@5, ~@39 f#1@2 ~@103]/3",
H: "[~@13 a1@3 ~@4 a1@18 e1@6 a1@24 e1@23 ~@2 a1@16 ~@2 a1@4 ~@2 a1@23 ~ a1@17 ~@2 a1@4 ~@2 a1@12 g#1@11 ~ f#1@17 ~ f#1@6 e1@25 d1@16 ~@2 d1@6 e1@21 f#1@2 g#1@2]/6",
I: "a1@16 ~@2 a1@4 ~@2 a1@12 e1@9 f#1 ~ g#1", J: "a1@16 ~@3 a1@3 b1@3 c#2@8 ~@2 g#1 ~ c#1@5 ~ c#1@5, ~@17 c#2 ~@6",
K: "~ f#1@17 ~ f#1@6 e1@17 ~@2 e1@4", L: "~@2 d1@17 ~ d1@6 e1@17 ~ e1@4", M: "~@2 a1@16 ~@3 a1@4 ~@2 a1@21",
N: "~@3 a1@15 ~@3 a1@4 ~@3 a1@12 g#1@8",
O: "[~@4 f#1@17 ~ f#1@6 e1@25 d1@16 ~@2 d1@6 e1@21 f#1@2 ~ a1@16 ~@3 a1@3 ~@3 a1@14 ~ c#1@2 ~, ~@50 g#1 ~@21]/3",
P: "[e1@2 ~ f#1@2 ~ a1@16 ~@2 a1@2 ~ b1@2 ~ c#2@11 ~@2 c#1@10 ~@2 f#1@17 ~ f#1@6 e1@25 d1@24 e1@72 ~ b1@18 a#1@6 g#1@15]/5",
Q: "[~@4 f#1@6 e1@17 ~ e1@6 f#1@18 f#1@6 b1@14 ~@2 b0@3 f#1@6 g#1@12 f#1@11 ~ c#1@17 ~ c#1@6 ~ f#1@24 b1@18 a#1@6 g#1@18 ~ f#1@6 e1@17 ~ e1@6 f#1@18 f#1@6 b1@14 ~@2 b0@3 f#1@6 g#1@10]/6",
R: "~@2 f#1@11 ~ c#1@8 ~ c#1@3 d#1@6 e1@6 f#1@7 ~@3",
S: "[f#1@3 f#2@3 c#2@3 g#1@3 f#1@3 b1@17 ~ a#1@6 g#1@18 f#1@6 ~ e1@17 ~ e1@6 f#1@6 g#1@5 ~ a#1@11 ~ b1@17 ~@2 a#1@6 g#1@18 f#1@6 e1@24 f#1@6 g#1@6 ~ a#1@61 ~@29]/6",
T: "[~@14 b1@6 e2@39 b1@3 ~ f#2@3 e2@3 d#2@48 f#2@24 ~ f#1@73 b0@146 ~@23]/8",
})).s("gm_fretless_bass").gain(0.49)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
~@12 A@7 ~ B@3 ~@3 C@2 D E@6 F@7 G H I ~@2 J@6 K@2 L@2 M@2 N@8 ~ O@3 ~ P@4
>`.pickRestart({
A: "[~@28 a2@24 [f#2,f#3]@24 [d2,f#3,a3]@24 ~ [e2,g#3,b3]@24 e3@24 ~ [f#2,f#3]@24 [d2,f#3,a3,f#4]@24 ~ e2@24 [a2,e3,a3,c#4,a4,a5]@91 ~@22, ~@28 a3@47 ~@50 [a3,c#4]@49 ~@24 e4@116 ~@22, ~@33 [g#3,b3]@4 ~@19]/7", // F# D E F# D A G#m
B: "[~@15 [c#5,c#6]@6 [e5,e6]@7 [c#6,c#7]@6 [b5,b6]@24 [a5,a6]@67 ~@19]/3", // C# E C# B A
C: "[~ [a3,c#4]@12 [g#3,b3]@24 ~ [a3,c#4]@48 ~ [a3,c#4]@9, ~@43 f#3@5]/2", D: "~@5 [e3,g#3,b3]@8 [d3,f#3,a3]@3",
E: "[~@16 [e3,g#3,b3]@24 [a3,e4]@25 [f#3,c#4,f#4]@24 [d3,a3,f#4,d5]@24 [e3,b3,g#4,b4,e5]@24 ~ [a3,e4,c#5]@24 [f#3,c#4,f#4,c#5]@24 [d3,a3,f#4,a4,d5]@24 ~ [e3,b3,g#4,b4,e5]@24 [e4,c#5]@27 ~ [f#4,d5]@21 [e4,c#5]@4, ~@40 a4@73 ~@25 a4@48 ~@49 [a3,a4]@53, ~@40 c#5@49 ~@199]/6", // E A5 F#5 D E A F#5 D …
F: "[~@20 [e3,e4,g#4,b4]@9 ~ g4@7 ~ [d3,d4,f#4,a4]@6 [e4,a4,c#5]@37 [f#4,a4,d5]@12 [a3,e4,a4,c#5]@36 ~ [g#3,e4,g#4,b4]@12 [f#3,c#4,f#4,a4]@24 [e3,e4,g#4]@24 ~ [d3,d4,f#4]@24 [e4,g#4,b4,g#5]@9 ~ [c#5,a5]@8 [g#4,b4,d5,b5]@6 ~ [a3,e4,a4,c#5]@24 [a3,e4,g#4,b4,b5]@24 [a3,e4,a4,c#5,a5]@24 ~ [e4,g#4]@23, ~@29 [d#3,d#4,a#4]@9 ~@6 a3@48 ~@123 e3@24 c#6@24 ~@73, ~@224 [f#4,a4]@8 ~@7 e5@73 [c#3,g#3,c#5,g#5]@24]/7", // E D A D A E F#m E …
G: "~ [f#3,f#4,a4,c#5,f#5]@24 [e3,e4,g#4,b4,e5]@23", H: "~ [d3,c#4,f#4,a4,f#5]@12 [e3,e4,g#4,g#5]@11",
I: "~@3 [a3,c#4,e5,a5,a6]@38 ~@7", // A
J: "[~@29 e3@24 [a3,c#4]@24 ~ b3@24 [a3,c#4,e4]@24 [g#3,b3,e4,b4]@24 ~ [f#3,a3,f#4,a4]@24 [e3,g#3,e4,g#4]@24 [d3,a3,c#4,f#4]@24 ~ [e3,g#3,b4]@62 ~@2, ~@53 e4@48 ~@187, ~@77 g#3@24 ~@187]/6", // A E F#m E Dmaj7 E
K: "[~@9 f#3@24 g#3@49 [f#3,a#3,c#4]@14, ~@9 [b3,d#4]@73 ~@14]/2", // F# B
L: "[~@10 f#3@24 ~@25 [c#4,e4]@24 ~ [f#3,a#3,c#4]@12, ~@10 b3@73 ~@13, ~@5 d#4@24 ~@19, ~@35 g#3@49 ~@12]/2", // C#m F#
M: "[~@12 f#3@24 g#3@49 [f#3,a#3,c#4]@11, ~@12 [b3,d#4]@73 ~@11]/2", // F# B
N: "[~@13 f#3@24 ~@7 c#6@6 d#6@6 b5@6 [c#3,e3]@12 [d#3,f#3]@6 [e3,g#3]@6 ~ f#6@12 c#6@12 f#3@24 ~@25 g#6@24 f#6@12 a#6@12 f#3@24 ~@8 d#6@4 b5@6 ~ c#6@5 g#5@24 ~ [f#3,f#4,a#4]@6 [g#3,g#4,b4]@6 ~ [a#3,a#4,c#5]@61 ~@29, ~@13 [b3,d#4]@49 c#4@49 [b3,d#4]@73 ~@24 [b3,d#4]@72 ~ c#4@73 ~@30, ~@13 b5@30 ~@19 e6@24 ~@25 d#6@49 ~@48 f#6@32 ~@144, ~@38 g#3@24 ~@24 [f#3,a#3]@23 ~@26 g#3@49 [f#3,a#3,c#4]@24 ~@24 g#3@48 ~@104]/8", // C#m D#m E F# G#m A#m B F#
O: "[~@20 [e3,g#3,b3,g#4]@49 [f#3,b3,f#4]@48 [f#2,f#3,g#3,b3]@25 ~@2]/3", P: "[~@23 [b1,b2,b3]@146 ~@23]/4",
})).s("gm_string_ensemble_2").gain(0.31).pan(0.4)
// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@12 A@2 B@2 ~ C@2 ~@32 D@2 ~@16 E@7>".pickRestart({
A: "[~@28 c#4@47 ~@21, ~@7 e3@6 ~@11]/2", B: "[~@29 a2@24 ~@43]/2", C: "[~@19 a6@53 ~@24]/2",
D: "[~@7 f#3@24 ~ [b3,g#4]@61 ~@3]/2", E: "[~@21 d#3@48 f#4@24 ~ [f#2,c#3,f#3,c#4,f#4,a#4,c#5]@73 d#4@146 ~@23]/7",
})).s("gm_string_ensemble_2").gain(0.18).pan(0.4)
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@18 A@8 B@4 ~@14 C D@4 ~@19 E@5 ~@3>".pickRestart({
A: "[~@51 f#4@30 ~@18 e4@30 ~ [b2,f#3,b3,d4,f#4]@24 [e3,a3,c#4]@12 [e3,f#3,a3,d4]@12 [a2,e3,a3,c#4]@37 [a2,f#3,a3,d4]@12 [e3,c#4]@49 [f#2,f#3,a3,c#4]@24 [e2,e3,g#3,c#4]@24 ~ [d2,d3,f#3,a3,c#4]@24 [e3,g#3,b3]@12 [e3,b3,e4,g#4]@12 [a2,c#4,e4,a4]@11, ~@32 d3@49 c#3@49 ~@97 [a2,a3]@36 ~@86 e2@24 ~@11, ~@38 a3@43 ~@6 g#3@43 ~@254, ~@44 e4@37 ~@12 a3@37 ~@254]/8", // Bm A D A D C#m F#m C#m …
B: "[~@8 [c#4,e4,a4]@6 [a2,b3,c#4,e4,g#4]@24 [a3,c#4,e4,a4]@24 [a3,c#4]@12 ~@13 [f#2,f#3,a3,c#4]@24 [e2,e3,g#3,c#4,e4]@24 ~ [d2,d3,f#3,a3,c#4]@24 [e2,e3,g#3,b3,e4]@23 ~@9, ~@19 a2@18 ~@59, ~@62 e4@49 ~@81]/4", // A Amaj7 A F#m C#m Dmaj7 E
C: "~@2 [a2,e3,a3,c#4]@35 ~@2 [a2,f#3,a3,d4]@9", // A D
D: "[~@3 [a2,e3,a3,c#4]@37 [g#2,e3,g#3,c#4]@12 [f#2,f#3,a3,c#4]@23 ~ [e2,e3,g#3,c#4]@24 ~ [d2,d3,f#3,a3,c#4]@23 ~ [e2,e3,g#3,b3]@9 [e3,a3,c#4]@8 ~ [e3,g#3,b3]@6 ~@43, ~@134 e2@15 ~@43]/4", // A C#m F#m C#m Dmaj7 E A E
E: "[~@38 g#3@14 ~@4 g#3@6 ~ a#3@6 ~@12 b3@6 a#3@6 [f#3,b3]@25 ~@12 [e3,g#3,b3]@12 [c#3,f#3,a#3,c#4]@62 ~@36, ~@26 b2@43 ~@6 b2@44 ~@121, ~@32 f#3@30 ~@7 b3@12 d#3@38 ~@121]/5", // B5 E F#
})).s("gm_epiano1").gain(0.25).pan(0.3)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@12 A@7 ~@2 B@3 ~ C@7 D@3 E@5 F G H I ~@32>".pickRestart({
A: "[~@46 g#2@6 ~@19 e2@6 ~@6 f#3@6 ~@6 d3@5 ~@7 g#3@6 ~@6 g#3@6 ~@19 g#2@5 ~@19 e2@6 ~@6 f#3@6 f#4@6 d3@5 ~@20 g#3@6 ~@6 e3@6 ~@6 e3@6 ~@6 e3@7 ~@13 [c#4,e4]@36 ~@27, ~@28 a2@18 ~@6 f#2@18 ~@7 d2@18 ~@6 e2@24 a2@18 ~@7 f#2@18 ~@6 d2@18 ~@6 e2@24 ~ a2@45 ~@3 [a2,e3]@38 ~@27, ~@34 e3@19 ~@5 c#3@18 ~@19 f#3@2 ~@16 [e3,b3]@12 ~@6 e3@18 ~@7 c#3@18 ~@31 e3@18 ~@24 a3@23 ~@2 [a3,b3]@38 ~@26, ~@40 a3@13 ~@11 f#3@12 ~@13 [c#4,f#4]@12 e4@12 ~@25 a3@12 ~@12 f#3@12 ~@12 c#4@12 [g#3,e4]@11 ~@2 b3@12 ~@12 b3@35 ~@66]/7", // C#m A5 E5 Asus2 F#5 C#m
B: "[~@47 b3@6 c#4@6 ~@6 e3@15 ~@15 b3@6 c#4@6 ~@7 e3@14 ~@16, ~@41 e3@13 ~@5 b3@21 ~@9 e3@12 ~@7 b3@20 ~@16]/3",
C: "[~@49 b3@6 c#4@7 ~@12 e4@18 ~@9 b3@3 ~@15 c#4 ~@2 c#4@11 ~ e3 ~@6 a3@6 c#4@6 ~@12 g#3@6 c#4@6 ~@13 f#3@6 ~@6 f#3@6 ~@12 b3@11 ~@13 a3@12 ~@13 a3@12 ~@12 a3@12 ~@12 b3@12 ~@7, ~@44 a3@49 ~@2 e3@9 c#4@14 ~@35 a3@11 ~@13 g#3@13 ~@6 a3@13 ~@8 g#3@14 ~@56 f#3@18 e3@24 ~@7, ~@62 b3@34 ~@2 a3@9 e3@25 ~@3 f#3@24 e3@23 ~ d3@21 ~@4 e3@22 ~@8 e3@18 ~@7 c#3@14 ~@4 d3@24 ~@6 g#3@18 ~@7]/7",
D: "[~@6 a3@12 ~@18 f#3@6 ~@13 a3@7 ~@5 e4@18 ~@6 e4@27 ~@26, e3@3 ~ c#3@2 ~ d3@3 ~@14, ~@30 a3@12 ~@7 f#3@12 ~@5 [g#3,b3]@20 ~@4 [a3,c#4]@28 ~@26]/3", // G#m A
E: "[~@45 a3@9 ~@3 a3@21 ~@3 [a3,d4]@11 ~ e4@6 a3@5 ~@8 a3@6 ~@9 a3@3 g#4@6 a3@5 ~ f#4@9 a3 ~@8 a3@5 ~ e4@11 ~@2 e4@12 a3@10 ~@2 a3@4 ~@2 a3@5 ~ [b3,e4]@19 ~@6, ~@45 e4@34 ~@27 a4@20 ~@28 [c#4,f#4]@11 ~@38 c#4@12 ~@25]/5", // D5 E5 F#5
F: "~@6 a3@5 ~@7 a3@3 ~@15 a3@6 g#4@6, ~@12 a4@11 ~ g#4@17 ~@7",
G: "~@6 a3@6 e4@7 a3@5 ~ [b3,e4]@6 b3@5 ~ [c#4,g#4]@11, e4@5 ~@19", // E5 C#5
H: "~ [c#4,f#4]@10 ~@8 a3@4 ~@2 e4@11 ~@2 e4@10, ~@13 [c#4,f#4]@12 ~@23", I: "~ [a3,c#4]@6 [a3,c#4]@6 [g#3,b3]@11",
})).s("gm_acoustic_guitar_nylon").gain(0.27).pan(0.2)
// other · taiko drum · "TAIKO"
const taiko_drum = note("<~@52 [~@45 d#4 ~@2] ~@23>").s("gm_taiko_drum").gain(0.55)
// drums · kick
const kick = s("bd").struct(`<
~@21 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 AJ AK AL AM AN AO AP AQ AR ~@11
>`.pickRestart({
A: "~@17 x ~@6", B: "~@5 x ~@5 x ~@23 x ~@12", C: "~@5 x ~@6 x ~@23 x ~@11", D: "~@6 x ~@5 x ~@24 x ~@10",
E: "~@7 x ~@5 x ~@23 x ~@10", F: "~@4 x ~@2 x ~@11 x ~@4", G: "~@8 x ~@5 x ~@24 x ~@8", H: "~@9 x ~@5 x ~@24 x ~@7",
I: "~@5 x ~@2 x ~@11 x ~@3", J: "~@11 x ~@5 x ~@23 x ~@6", K: "~@11 x ~@5 x ~@24 x ~@5", L: "~@2 x!2 ~@3 x",
M: "~@13 x ~@5 x ~@23 x ~@4", N: "~@13 x ~@6 x ~@23 x ~@3", O: "~@14 x ~@5 x ~@24 x ~@2", P: "~@5 x ~ x ~@7 x",
Q: "~@8 x ~@2 x ~@11 x", R: "~@16 x ~@5 x ~@24 x", S: "~@17 x ~@5 x ~@24", T: "x ~@2 x!2 ~@3",
U: "x ~@18 x ~@5 x ~@22", V: "~ x ~@17 x ~@5 x ~@22", W: "~ x ~@8 x ~@2 x ~@10", X: "~@2 x ~@18 x ~@5 x ~@20",
Y: "~@3 x ~@17 x ~@6 x ~@19", Z: "~@2 x ~@8 x ~@2 x ~@9", AA: "~@5 x ~@17 x ~@5 x ~@18",
AB: "~@5 x ~@18 x ~@5 x ~@17", AC: "~ x ~@2 x!2 ~@2", AD: "~@7 x ~@17 x ~@5 x ~@16", AE: "~ x ~@4", AF: "~@15 x",
AG: "~@3 x ~@5 x ~ x ~@4", AH: "~@5 x ~@8 x ~@2 x ~@6", AI: "~@10 x ~@18 x ~@5 x ~@12",
AJ: "~@11 x ~@17 x ~@6 x ~@11", AK: "~@2 x ~@2 x!2 ~", AL: "~@13 x ~@17 x ~@5 x ~@10", AM: "~@13 x ~@18 x ~@5 x ~@9",
AN: "~@14 x ~@5 x ~@5 x ~@5 x ~@5 x ~@2 x ~@3 x ~@2", AO: "x!2 ~@3 x ~@5 x ~ x ~@2", AP: "~@8 x ~@8 x ~@2 x ~@3",
AQ: "~@16 x ~@18 x ~@5 x ~@6", AR: "~@17 x ~@30",
})).gain(0.55)
// drums · rim
const rim = s("rim").struct("<~@21 A B C@2 D E F@2 G H I J K L M N O P Q R S T U V W X Y Z AA AB ~@25>".pickRestart({
A: "~@11 x ~@12", B: "~@23 x ~@24", C: "~ x", D: "~@25 x ~@22", E: "~@13 x ~@10", F: "~@9 x ~@6", G: "~@7 x ~@4",
H: "~@4 x ~@24 x ~@18", I: "~@5 x ~@24 x ~@17", J: "~ x ~@3 x ~@2", K: "~@7 x ~@23 x ~@16", L: "~@7 x ~@24 x ~@15",
M: "~ x ~@4", N: "~@3 x ~@7 x ~@4", O: "~@5 x ~@11 x ~@6", P: "~@10 x ~@24 x ~@12", Q: "~@11 x ~@23 x ~@12",
R: "~ x ~ x", S: "~@12 x ~@24 x ~@10", T: "~@13 x ~@24 x ~@9", U: "~@7 x ~@11 x ~@4", V: "~@5 x ~@7 x ~@2",
W: "~@15 x ~@24 x ~@7", X: "~@2 x ~@2 x", Y: "~@17 x ~@23 x ~@6", Z: "~@3 x ~@3 x", AA: "~@18 x ~@24 x ~@4",
AB: "~@19 x ~@23 x ~@4",
})).gain(0.55)
// drums · snare
const snare = s("sd").struct("<~@52 A B C D E F G H I J K L M ~@11>".pickRestart({
A: "~@15 x", B: "~@21 x ~@24 x ~", C: "~@11 x ~@11 x", D: "~@23 x ~@23 x", E: "~@23 x ~@24", F: "x!2",
G: "x ~@24 x ~@22", H: "~ x ~@24 x ~@21", I: "~@2 x ~@11 x ~@11 x ~@11 x ~@2 x ~@3 x ~@2", J: "x ~@8 x ~@6",
K: "~@3 x ~@24 x ~@19", L: "~ x ~@5 x ~@4", M: "~@5 x ~@42",
})).gain(0.55)
// drums · low tom
const low_tom = s("lt").struct("<~@52 [~@15 x] ~@4 [~@3 x ~@12] ~@3 [~@3 x!2 ~@11] ~@14>").gain(0.55)
// drums · hihat
const hihat = s("hh").struct(`<
~@21 A B C D E F G H I J K L M N O P Q R S L T U V W X Y Z AA AB AC ~@2 AD AE AF AG AH AI AJ AK AL AM AN AO ~@11
>`.pickRestart({
A: "~@34 x ~@12 x", B: "~@5 x ~@5 x ~@11 x ~@11 x ~@11 x", C: "~@4 x!3 ~",
D: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@4", E: "~ x ~@5 x ~@5 x ~@11 x ~@5 x ~@5 x ~@10",
F: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", G: "~@2 x ~@5 x ~@5 x ~@12 x ~@5 x ~@5 x ~@5 x ~@2",
H: "~@3 x ~@5 x ~@5 x ~@11 x ~@5 x ~@6 x ~@5 x ~", I: "~@2 x ~@2 x ~@2 x ~@2 x ~@11 x",
J: "~@4 x ~@6 x ~@5 x ~@5 x ~@5 x ~@11 x ~@5 x", K: "~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@11 x ~@5", L: "x!8",
M: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@11 x ~@4", N: "~ x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@3",
O: "~ x ~@2 x ~@2 x ~@16", P: "~@3 x ~ x ~ x ~@3 x ~@3 x", Q: "~@3 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@11 x ~",
R: "~@4 x ~@5 x ~@5 x ~@5 x ~@12 x ~@5 x ~@5 x", S: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@12",
T: "x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@10", U: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@3",
V: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@7", W: "~@2 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@8",
X: "~@3 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~", Y: "~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x",
Z: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6", AA: "~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5",
AB: "x ~@5 x ~@11 x ~@5 x ~@5 x ~@6 x ~@5 x ~@4", AC: "~@7 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4",
AD: "~@21 x ~@5 x ~@5 x ~@5 x ~@6 x ~", AE: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
AF: "~@10 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x", AG: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5",
AH: "x ~@2 x!5", AI: "x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4",
AJ: "~ x ~@11 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@3", AK: "~ x ~@2 x ~@19", AL: "~@7 x ~ x ~ x ~ x ~ x",
AM: "~@3 x ~@12 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~", AN: "~@4 x ~@17 x ~@5 x ~@6 x ~@5 x ~@5 x",
AO: "~@5 x ~@5 x ~@5 x ~@30",
})).gain(0.33)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@21 A B C ~ D ~ E@2 ~@7 F ~ G ~@10 H ~@14 I ~@11>".pickRestart({
A: "~@41 x ~@6", B: "~@17 x ~@11 x ~@11 x ~@6", C: "~@5 x ~@6 x ~@5 x ~@23 x ~@5", D: "~@19 x ~@23 x ~@4",
E: "~@7 x ~@8", F: "~ x ~@7 x ~@6", G: "~@29 x ~@18", H: "~ x ~@2", I: "~@23 x ~@24",
})).gain(0.22)
// drums · mid tom
const mid_tom = s("mt").struct("<~@29 A ~@3 B ~ C ~@16 D ~@4 E ~@3 F ~@14>".pickRestart({
A: "~@17 x ~@6", B: "~@37 x ~@10", C: "~@29 x ~@2 x ~@15", D: "~@15 x", E: "~ x ~@6", F: "~ x!2 ~@13",
})).gain(0.55)
// drums · open hat
const open_hat = s("oh").struct(`<
~@29 A B C ~ D ~ E F G ~ H ~ I ~ J K ~@2 L ~@2 M N ~@3 O ~ P ~ Q R ~ S T U ~@11
>`.pickRestart({
A: "~@7 x ~@4", B: "~@35 x ~@12", C: "~@3 x", D: "~@37 x ~@10", E: "~@20 x ~@18 x ~@8", F: "~@13 x ~@2", G: "~@5 x",
H: "~@41 x ~@6", I: "~@43 x ~@4", J: "~@19 x ~@4", K: "~@15 x", L: "~@47 x", M: "~ x ~@46",
N: "~ x ~@6 x ~@11 x ~@11 x ~@15", O: "~ x ~@10", P: "~ x ~@6", Q: "~@7 x ~@40",
R: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4", S: "~@3 x ~@12", T: "~@5 x ~@18", U: "~@26 x ~@2 x ~@5 x ~@12",
})).gain(0.33)
// drums · crash
// … 58 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 Have NothingG major · 51 bpmAll the Man That I NeedF minor · 76 bpmExhale (Shoop Shoop)D♭ major · 69 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.