0:00/0:00
// I'm Your Baby Tonight — Whitney Houston
// 112 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 130 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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, A@4 for four bars: edit a riff to change every repeat.
// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
~ A B C D A B C E F G H I F G J K L M N O L M P Q R S T U R V T U F G H I F G J K L M N O L M P Q R S T U R V T U R S
T U R V T U W X Y Z AA AB AC AD AE ~@7 R S T U R V T U R S T U R V T U R S T U R V T U ~@8 R S T U R V T U R S T U R V
T U ~
>`.pickRestart({
A: "[g#3,a#3,b3] ~@9 [a#3,b3,d#4]@10 ~@4", B: "[f#3,g#3,a#3,b3] ~@9 [a#3,b3,d#4]@9 ~@5",
C: "[f3,g#3,a#3,b3] ~@9 [a#3,b3,d#4]@9 ~@5", D: "~@2 [d#3,g#3,a#3] ~@7 [d#3,g3,a#3]@10 ~@4",
E: "~@2 [d#3,g#3,a#3] ~@7 [d#3,g3,a#3]@12 ~@2", // D#sus4 D#
F: "[g#3,a#3,b3,d#4]@3 ~@7 [g#3,a#3,b3,d#4]@6 [g#3,a#3,b3,d#4]@4 [g#3,a#3,b3,d#4]@3 ~", // G#m
G: "[e3,g#3,b3,d#4]@3 ~@7 [e3,g#3,b3,d#4]@5 ~ [e3,g#3,b3,d#4]@4 [e3,g#3,b3,d#4]@3 ~", // Emaj7
H: "[e3,g#3,a#3,c#4]@3 ~@7 [e3,g#3,a#3,c#4]@5 ~ [e3,g#3,a#3,c#4]@3 ~ [e3,g#3,a#3,c#4]@3 ~", // A#m7b5
I: "[g#3,a#3,c#4,d#4]@3 ~@7 [g3,a#3,c#4,d#4]@5 ~ [g3,a#3,c#4,d#4]@4 [g3,a#3,c#4,d#4]@4", // G#sus4 D#7
J: "[e3,g#3,a#3,c#4]@2 ~@8 [e3,g#3,a#3,c#4]@5 ~ [e3,g#3,a#3,c#4]@4 [e3,g#3,a#3,c#4]@3 ~", // A#m7b5
K: "[g#3,a#3,c#4,d#4]@4 ~@6 [g3,a#3,c#4,d#4]@5 ~ [g3,a#3,c#4,d#4]@4 [g3,a#3,c#4,d#4]@3 ~", // G#sus4 D#7
L: "[g#3,a#3,c4,d#4]@4 ~@6 [g#3,a#3,c4,d#4] ~ [g#3,a#3,c4,d#4]@3 ~ [g#3,a#3,c4,d#4]@3 ~ [g#3,a#3,c4,d#4]@3 ~", // G#
M: "[b3,c#4,d#4]@4 ~@6 [b3,c#4,d#4] ~ [a#3,b3,d#4]@4 [a#3,b3,d#4]@4 [g#3,b3,d#4]@3 ~", // B Bmaj7 G#m
N: "[e3,g#3,b3,d#4]@4 ~@6 [e3,g#3,b3,d#4] ~ [e3,g#3,b3,d#4]@3 ~ [e3,g#3,b3,d#4]@3 ~ [e3,g#3,b3,d#4]@3 ~", // Emaj7
O: "[g#3,a#3,c#4,d#4]@4 ~@6 [g#3,a#3,c#4,d#4] ~ [g3,a#3,c#4,d#4]@3 ~ [g3,a#3,c#4,d#4]@3 ~ [g3,a#3,c#4,d#4]@3 ~", // G#sus4 D#7
P: "[e3,g#3,b3,d#4]@4 ~@6 [e3,g#3,b3,d#4] ~ [e3,g#3,b3,d#4]@4 [e3,g#3,b3,d#4]@4 [e3,g#3,b3,d#4]@2 ~@2", // Emaj7
Q: "[d#4,g4,b4]@3 ~ [d#4,g4,b4]@3 ~ [d#4,g4,b4]@2 ~@2 [d#4,g4,b4]@3 ~@9", // D#aug
R: "[g#3,a#3,b3,d#4]@2 ~@8 [g#3,a#3,b3,d#4]@13 ~", S: "[f#3,g#3,b3,d#4]@3 ~@7 [f#3,g#3,b3,d#4]@12 ~@2",
T: "[f3,g#3,b3,d#4]@2 ~@8 [f3,g#3,b3,d#4]@11 ~@3", U: "[d#3,g#3,a#3,c#4]@3 ~@7 [d#3,g3,a#3,c#4]@12 ~@2",
V: "[f#3,g#3,b3,d#4]@2 ~@8 [f#3,g#3,b3,d#4]@11 ~@3", // G#m7
W: "[g#3,b3,c#4,d#4,e4]@2 [g#3,b3,c#4,d#4,e4] ~@2 [g#3,b3,c#4,d#4,e4] ~ [g#3,b3,c#4,d#4,e4] ~ [g#3,d#4,e4]@2 ~, ~@3 [b3,c#4]", // C#m7 Emaj7 Bsus2
X: "[g#3,b3,c#4,d#4,f#4]@2 [g#3,c#4,d#4,f#4] ~@2 [g#3,b3,c#4,d#4,f#4] ~ [g#3,b3,c#4,d#4,f#4] ~ [g#3,b3,c#4,d#4,f#4]@2 ~", // G#m7 G#sus4 G#m7
Y: "[g#3,b3,c#4,d#4,e4]@2 [g#3,b3,c#4,d#4,e4] ~@2 [g#3,b3,c#4,d#4,e4] ~ [g#3,b3,c#4,d#4,e4] ~ [g#3,c#4,d#4,e4]@2 ~, ~@3 b3", // C#m7 C#m
Z: "[g#3,b3,c#4,d#4,f#4]@2 [g#3,b3,c#4,d#4,f#4] ~@2 [b3,c#4,d#4,f#4]@2 [g#3,b3,d#4,f#4]@2 [g#3,b3,c#4,d#4,f#4]@2 ~, ~@5 g#3 ~ c#4 ~@4", // G#m7 B G#m7
AA: "[g#3,b3,c#4,d#4,e4]@2 [g#3,b3,c#4,d#4,e4] ~@2 [g#3,b3,c#4,d#4,e4] ~ [g#3,c#4,d#4,e4] ~ [g#3,b3,c#4,d#4,e4]@2 ~, ~@7 b3@2 ~@3", // C#m7 C#m C#m7
AB: "[g#3,b3,c#4,d#4,f#4]@2 [g#3,b3,c#4,d#4,f#4] ~@2 [g#3,b3,c#4,d#4,f#4] ~ [b3,c#4,d#4,f#4]@2 [g#3,b3,c#4,d#4,f#4]@2 ~, ~@7 g#3 ~@4", // G#m7 B G#m7
AC: "[c#4,e4] [d#4,f#4] [e4,g#4] [f#4,a#4]", AD: "[g#4,b4]@6 [a#4,c#5]@6 [b4,d#5]@11 ~", AE: "[c5,d#5]@11 ~@13",
})).s("gm_epiano2").gain(0.4).pan(0.4)
// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
~ A B C D E B C F G H I J G H I K L M N O L P Q R A B C D E B C F G H I J G H I K L M N O L P Q R A B C D E B C F A B
C D E B C F S T S U S T V W ~@8 A B C D E B C F A B C D E B C F A B C D E B C F A B C D E B C F A B C D E B C F A B C
D E B C F X
>`.pickRestart({
A: "g#1@3 ~ g#1 ~@5 g#1@3 ~ g#1@2 a#1@2 b1@2 a#1@2 g#1 ~", B: "f#1@3 ~ f#1 ~@5 f#1@3 ~ f#1@2 g#1@2 a#1@2 g#1@2 f#1@2",
C: "f1@3 ~ f1 ~@5 f1@3 ~ f1@5 ~@3 f1@2", D: "d#1 ~ d#1 c#1 ~ c#1 d#1@4 ~ d#1",
E: "g#1@2 ~@2 g#1@5 ~ g#1 ~@3 g#1@2 a#1 ~ b1@2 a#1@2 g#1 ~", F: "d#1 ~ d#1 c#1 ~ c#1 d#1 ~ d#1 c#1 ~ c#1",
G: "g#1@2 ~@2 g#1@2 f#1@3 ~@11 g#1@2 f#1@2", H: "e1@3 ~ e1@2 d#1@4 e1 ~@9 d#1@2 g#1@2",
I: "a#1@3 ~ a#1@2 g#1@3 ~@11 a#1@2 c#2@2", J: "d#2@2 ~@2 d#2@2 c#2@3 ~ d#2@3 ~@5 d#2@2 c#2@2 a#1@2",
K: "d#2 ~ d#2 c#2 ~ d#2 ~@3 d#2 ~ d#2", L: "g#1@6 g#2@4 g#1@3 ~ g#1@4 g#2@4 g#1@2",
M: "b1@6 b2@4 b1@3 ~ b1@4 b2@4 b1 ~", N: "e2@6 e3@4 e2@3 ~ e2@4 e3@4 e2@2",
O: "d#2@6 d#3@3 ~@3 d#3@2 a#2@2 d#2@2 d#3@2 a#2@2 d#2@2", P: "b1@6 b2@4 b1@3 ~ b1@4 b2@5 ~", Q: "e2 e3 e2 e3",
R: "d#2@2 d#3@2 d#2 ~ d#2@2 ~@4", S: "c#2@3 ~ c#2 ~@5 c#2@3 ~ c#2@4 b1@2 g#1@2 f#1@2",
T: "g#1@3 ~ g#1 ~ g#1 ~@3 g#1@3 ~ g#1@4 b1@2 g#1@2 b1@2", U: "g#1 f#1 g#1 b1 g#1 b1 c#2 b1 c#2 d#2 c#2 b1",
V: "c#2 b1 g#1 d#2 c#2 b1 e2 d#2 c#2 f#2 e2 d#2", W: "g#2 f#2 e2 a#2 g#2 f#2 b2 a#2 g#2 c#3 ~@2",
X: "g#2@8 d#2@2 b1@2 g#1@11 ~",
})).s("gm_synth_bass_1").gain(0.4)
// chords · clavinet
const clavinet = note(`<
~@9 A B C D E F G H I J K L M N O ~ P Q R S T Q U V A B C D E F G H I J K L M N O ~ P Q R S T Q U V P Q R S T Q U V W
X W X Y X Z AA ~@8 P Q R S T Q U V P Q R S T Q U V P Q R S T Q U V ~@8 P Q R S T Q U V P Q R S T Q U V ~
>`.pickRestart({
A: "~@4 g#3 ~ [a#3,b3,d#4] ~@3 [a#3,b3,d#4] ~@5 g#3 ~ [a#3,b3,d#4] ~@3 [a#3,d#4] ~", // Bmaj7 D#5
B: "~@6 [g#3,d#4] ~@3 [b3,d#4] ~@3 [b3,d#4] ~ e3 ~ [g#3,b3,d#4] ~ e3 ~ d#4 ~", // G#5 B G#m
C: "~@2 [g#3,a#3,c#4] ~@3 [g#3,a#3,c#4] ~@3 [a#3,c#4] ~@3 c#4 ~ e3 ~ [g#3,a#3,c#4] ~@3 a#3 ~", // A#m7 A#m A#m7
D: "~@2 [g#3,a#3,c#4] ~ d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~@5 d#3 ~ [g3,a#3,c#4] ~@3 [g3,a#3,c#4] ~", // A#m7 Gdim
E: "~@2 d#4 ~ g#3 ~ [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~@3 [a#3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~", // Bmaj7 D#5 Bmaj7
F: "e3 ~ d#4 ~@3 [g#3,b3,d#4] ~ e3 ~ [g#3,b3,d#4] ~@3 [g#3,d#4] ~@3 [g#3,b3,d#4] ~@3 [g#3,b3,d#4] ~", // G#m G#5 G#m
G: "~@2 [g#3,a#3,c#4] ~@3 [g#3,a#3,c#4] ~@3 [g#3,a#3,c#4] ~@3 [g#3,a#3] ~ e3 ~ [g#3,a#3,c#4] ~ e3 ~ [g#3,a#3,c#4] ~", // A#m7 G#sus2 A#m7
H: "d#3 ~ [g#3,a#3,c#4] ~@3 [g#3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~ d#3 ~ a#3 ~ d#3 ~ [g3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~", // A#m7 Gdim
I: "g#3 ~ [a#3,c4,d#4] ~ g#3 ~ [a#3,c4,d#4] ~ g#3 ~ [a#3,c4,d#4] ~@3 [a#3,c4] ~ g#3 ~ [a#3,c4,d#4] ~ g#3 ~ [a#3,d#4] ~", // Cm7 A#sus2 Cm7 D#5
J: "~@2 c#4 ~ b3 ~ [b3,c#4,d#4] ~ b3 ~ [b3,c#4,d#4] ~@3 [b3,c#4,d#4] ~ b3 ~ [b3,c#4,d#4] ~ g#3 ~ [b3,c#4,d#4] ~", // B
K: "e3 ~ [g#3,b3,d#4] ~@3 [g#3,b3,d#4] ~ e3 ~ [g#3,b3,d#4] ~ e3 ~ d#4 ~@3 [g#3,b3,d#4] ~ e3 ~ [g#3,d#4] ~", // G#m G#5
L: "d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~@3 [g3,a#3] ~ d#3 ~ [g3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~", // A#m7 Gdim Gm Gdim
M: "g#3 ~ [a#3,c4,d#4] ~ g#3 ~ [a#3,c4,d#4] ~ g#3 ~ [a#3,c4,d#4] ~@3 a#3 ~ g#3 ~ [a#3,c4,d#4] ~ g#3 ~ [a#3,d#4] ~", // Cm7 D#5
N: "b3 ~ [c#4,d#4] ~@3 [b3,c#4,d#4] ~@3 [b3,c#4,d#4] ~@3 [b3,c#4,d#4] ~ g#3 ~ [b3,c#4,d#4] ~ g#3 ~ [b3,c#4,d#4] ~", // C#sus2 B
O: "e3 ~ d#4 ~ e3 ~ [g#3,b3,d#4] ~@3 [g#3,d#4] ~@3 [g#3,d#4] ~ e3 ~ [g#3,b3,d#4] ~ e3 ~ [g#3,b3,d#4] ~", // G#m G#5 G#m
P: "~@2 [a#3,b3,d#4] ~ g#3 ~ [b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~@3 [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~ g#3 ~ [b3,d#4] ~", // Bmaj7 B Bmaj7 B
Q: "[f#3,g#3] ~ [b3,d#4] ~ [f#3,g#3] ~ [b3,d#4] ~ [f#3,g#3] ~ [b3,d#4] ~@3 [b3,d#4] ~ [f#3,g#3] ~ [b3,d#4] ~ [f#3,g#3] ~ [b3,d#4] ~", // F#sus2 B F#sus2 B F#sus2 B F#sus2 B …
R: "f3 ~ [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~@3 [g#3,d#4] ~ f3 ~ [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~", // G#m G#5 G#m
S: "~@2 [g#3,a#3,c#4] ~ d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~@3 [g3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~", // A#m7 Gdim
T: "g#3 ~ [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~@3 [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~ g#3 ~ [a#3,b3,d#4] ~", // Bmaj7
U: "f3 ~ [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~@3 [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~ f3 ~ [g#3,b3,d#4] ~", // G#m
V: "d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g#3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~ d#3 ~ [g3,a#3,c#4] ~@5", // A#m7 Gdim
W: "[b3,c#4,e4] ~ [b3,c#4,e4] ~ [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~@3 [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~ g#3 ~", // C#m7
X: "[b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ g#3 ~ [b3,d#4,f#4] ~ g#3 ~ [b3,d#4,f#4] ~ g#3 ~ [b3,d#4,f#4] ~ g#3 ~ [b3,d#4,f#4] ~ g#3 ~", // B
Y: "[b3,c#4,e4] ~ [b3,c#4,e4] ~ [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~ g#3 ~ [b3,c#4,e4] ~ g#3 ~", // C#m7
Z: "[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [f#4,a#4] ~ [f#4,a#4] ~ [f#4,a#4] ~", // C#m D#m E F#
AA: "[g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~ [a#4,c#5] ~ [a#4,c#5] ~ [a#4,c#5] ~ [b4,d#5] ~ [b4,d#5] ~ [b4,d#5] ~@7", // G#m A#m B
})).s("gm_clavinet").gain(0.35).pan(0.4)
// chords · clavinet · soft notes
const clavinet_soft = note(`<
~@9 A B C D E F G H I J K L M ~ N ~ O ~@7 A B C D E F G H I J K L M ~ N ~ O ~@7 O ~@7 P ~ P ~@13 O ~@7 O ~@7 O ~@15 O
~@7 O ~@8
>`.pickRestart({
A: "~@2 [a#3,b3,d#4] ~@11 [a#3,d#4] ~@7 b3 ~", B: "e3 ~ [g#3,b3,d#4] ~ e3 ~ b3 ~ e3 ~ g#3 ~@3 g#3 ~@7 [g#3,b3] ~",
C: "e3 ~@3 e3 ~@3 e3 ~ g#3 ~ e3 ~ [g#3,a#3] ~@7 [g#3,c#4] ~", D: "d#3 ~@11 d#3 ~ [g3,a#3,c#4] ~@9",
E: "~@2 a#3 ~@9 g#3 ~ b3 ~@9", F: "~@2 [g#3,b3] ~@13 e3 ~@3 e3 ~@3", G: "~@8 e3 ~@5 c#4 ~@9",
H: "~@4 d#3 ~@9 [g3,c#4] ~@9", I: "~@14 d#4 ~@7 c4 ~", J: "b3 ~@23", K: "~@4 e3 ~@9 [g#3,b3] ~@7 b3 ~",
L: "~@14 c#4 ~@9", M: "~@14 [c4,d#4] ~@7 c4 ~", N: "~@2 [g#3,b3] ~@5 e3 ~ b3 ~ e3 ~ b3 ~@9", O: "~@6 a#3 ~@17",
P: "~@10 g#3 ~@13",
})).s("gm_clavinet").gain(0.2).pan(0.4)
// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
~@24 A B C D@2 E F G@2 ~@15 A B C D@2 H F I@2 B C D@2 H F G@2 ~@15 A B C D@2 H F J@2 B K D@2 H F G@2 L M L N L O P Q R
S T@2 ~@2 J@2 B C D@2 H F J@2 B C D@2 H U V@2 ~
>`.pickRestart({
A: "~@8 d#4 g#4 a#4 b4", B: "c#4@3 b3@5 d#4 g#4 a#4 b4, [d#4,g#4]@2 ~",
C: "c#4@6 b3@8 a#3@2 g#3@5 ~ b3@2, [d#4,g#4]@7 ~", // G#5
D: "[~ g#4@5 f#4@6 d#4@4 c#4@2 b3@4 f#4@11 ~@7 d#4@2 g#4@2 a#4@2 b4@2]/2", E: "c#4 b3@2 ~, [d#4,g#4]@3 ~",
F: "c#4@3 b3@2 ~ c#4 b3@5, [d#4,g#4]", G: "[g#4@3 f#4@3 d#4@2 c#4 b3@2 f#4@6 ~@7]/2",
H: "c#4@3 b3@6 g#4 a#4 b4, [d#4,g#4]@3 ~", I: "[g#4@3 f#4@3 d#4@2 c#4 b3@2 f#4@6 ~@3 d#4 g#4 a#4 b4]/2",
J: "[g#4@6 f#4@6 d#4@4 c#4@2 b3@4 f#4@11 ~@7 d#4@2 g#4@2 a#4@2 b4@2]/2",
K: "c#4@6 b3@8 a#3@2 g#3@5 ~@3, [d#4,g#4]@7 ~", L: "g#4 a#4 g#4 a#4 g#4 a#4 g#4 a#4 g#4 a#4 g#4 a#4",
M: "g#4@2 a#4@2 g#4@2 a#4@2 g#4@2 a#4@13 ~", N: "g#4 a#4 g#4 a#4 g#4 a#4!3 b4 g#4!3",
O: "g#4@2 a#4@2 g#4@2 a#4@2 g#4@2 a#4@11 ~ g#4@2", P: "g#4 a#4 g#4 a#4 g#4 a#4 g#4 a#4 g#4 a#4 g#4!2",
Q: "a#4@3 a#4@3 a#4@2 g#4 f#4@2 g#4", R: "f#4 d#4 d4 c#4 ~@2 g#3@4 g#3@14, ~@5 b3@2 ~@17", S: "~@7 b3",
T: "[g#4@6 f#4@6 d#4@4 c#4@2 b3@4 f#4@15 ~@11]/2", U: "c#4@3 b3@2 ~ c#4 b3@4 ~, [d#4,g#4]@11 ~",
V: "[g#4@6 f#4@6 d#4@4 c#4@2 b3@4 f#4@11 ~@15]/2",
})).s("gm_epiano1").gain(0.4).pan(0.6)
// other · pad poly · "POLYSYNTH"
const pad_poly = note(`<
~ A B C D E B F G H ~@15 I J K D I J L M H ~@15 I J K D I J L N I J K D I J L M O P Q R Q P S T U V W X Y V W Z I J K
D I J L M I J K D I J L M AA J K D I J L M H ~ AB D AC AD AE AF I J K D I J L M I J K D I J L M H
>`.pickRestart({
A: "~@2 g#3@2 f#3 ~ g#3@3 ~ g#3@3 ~ g#3@2 f#3@2 g#3@3 ~ g#3@2",
B: "~@2 g#3 ~ f#3 ~ g#3@3 ~ g#3@3 ~ g#3@2 f#3 ~ g#3@3 ~ g#3@2",
C: "~@2 g#3@2 f3@2 g#3@3 ~ g#3@3 ~ g#3@2 f3@2 g#3@3 f3 ~@2", D: "d#4@6 c#4@17 ~",
E: "g#3@3 ~ g#3@2 g#3@2 g#3 f#3@2 ~ g#3 ~ g#3@3 ~ g#3@3 ~ g#3@2",
F: "~@2 g#3@2 f3@2 g#3@3 ~ g#3@2 f3@2 g#3@3 ~ g#3@3 ~ f3 ~", G: "d#4@4 c#4 a#3 d#4@4 c#4 a#3 d#4@4 c#4 a#3 f#4@6",
H: "g#4 ~@11", I: "g#3@2 f#3@2 g#3@2 f#3 ~ g#3@2 f#3 ~ g#3@2 f#3@2 a#3@2 b3@2 a#3@2 g#3@2",
J: "f#3 g#3 f#3 g#3 f#3 g#3 f#3 g#3 a#3 b3 a#3 g#3",
K: "f3@2 g#3@2 f3@2 g#3@2 f3@2 g#3@2 f3@2 g#3@2 f3 ~ g#3@2 f3@2 g#3@2",
L: "f3@2 g#3@2 f3@2 g#3@2 f3@2 g#3@2 f3@2 g#3 ~ f3@2 g#3@2 f3@2 g#3 ~",
M: "d#4@4 a#3 c#4 d#4@3 ~ a#3 c#4 d#4@3 ~ a#3 c#4 f#4@6", N: "d#4@23 ~", O: "e4@4 ~ d#4@3 ~ c#4@2 ~",
P: "f#4@4 ~ c#4@2 ~ f#4@2 c#4@2", Q: "e4@4 ~ d#4@3 ~ c#4@3", R: "f#4@4 ~ g#4@2 ~ b4@2 g#4@2",
S: "[e4,g#4] [f#4,a#4] [g#4,b4] [a#4,c#5]", T: "[b4,d#5]@6 [c#5,e5]@6 [d#5,f#5]@11 ~",
U: "[d#5,g#5]@11 ~@9 f#3@2 g#3@2, g#3@19 ~@5", V: "f#3@16 g#3@2 b3@2 g#3 ~ b3@2", W: "f3@3 g#3@7 f3 g#3",
X: "d#4@6 c#4@10 a#3 b3 c4@5 ~", Y: "g#3@19 ~ f#3@2 g#3@2", Z: "d#4@4 ~ c#4 d#4@4 a#3 c#4 d#4@5 c#4 d#4@5 ~",
AA: "[g#3,g#4]@2 f#3@2 g#3@2 f#3@2 g#3@2 f#3 ~ g#3@2 f#3@2 a#3@2 b3 ~ a#3@2 g#3@2", AB: "~@11 f#3 g#3@6 f#3@6",
AC: "~@6 g#3@2 ~@4 g#3@5 ~ f#3@4 g#3 ~, ~@12 f#3 ~@11", AD: "~@6 g#3 ~@3 g#3 ~@3 f#3 ~ g#3 ~ b3@2 g#3 ~ f#3 ~",
AE: "b3 ~@5 g#3@3 f#3@3, ~@12 f#3 ~@11", AF: "d#4@5 ~ d#4@5 ~ d#4@11 ~, ~@6 c#4 ~@5 c#4 ~@11",
})).s("gm_pad_poly").gain(0.35).pan(0.2)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~ A@2 B ~ A@2 B ~ C D C E C D C E F G@2 H F G@2 I J@2 K L J@2 K ~ C D C E C D C E F G@2 H F G@2 I J@2 K L J@2 K ~ J@2
K L J@2 K ~@17 J@2 K L J@2 K ~ J@2 K L J@2 K ~ J@2 K L J@2 K ~@9 J@2 K L J@2 K ~ J@2 K L J@2 K ~@2
>`.pickRestart({
A: "~@2 g#3 ~ f#3 ~ g#3 ~ f#3 ~ f#3@2 g#3 ~@11", B: "~@2 g#3 ~ f3 ~ g#3 ~ f3 ~ f3 ~ g#3 ~@11",
C: "~@2 g#3 ~ f#3 ~ g#3 ~@17", D: "~@2 g#3 ~ f#3 ~ g#3 ~@7 f#3 ~@3 f#3 ~@5", E: "g#3 ~@9 g3 ~@13",
F: "~@12 g#3@4 g#3@3 ~ g#3@3 ~", G: "g#3@3 ~ g#3 ~@7 g#3@3 ~ g#3@3 ~ g#3@3 ~", H: "g#3@3 ~@7 g3 ~@5 g3@3 ~ g3@3 ~",
I: "g3 ~ g3 ~ g3 ~ g3 ~@5", J: "~@2 g#3 ~ f#3 ~ g#3 ~ f#3 ~ g#3 ~ g#3 ~ g#3 ~@9",
K: "~@2 g#3 ~ f3 ~ g#3 ~ f3 ~ g#3 ~ g#3 ~ g#3 ~@9", L: "~@14 d#3 ~@3 d#3@3 ~ d#3 ~",
})).s("gm_electric_guitar_muted").gain(0.25).pan(0.7)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~ A@8 ~@8 B C ~@2 B D ~ E ~@16 B C ~@2 B D ~ E ~@8 F@2 G H F@2 I@2 J K J L J M N O@2 ~@7 F@2 G H F@2 I@2 F@2 G H F@2
I@2 F@2 G H F@2 I@2 ~@8 P@2 Q R P@2 S@2 P@2 Q R T@4 U
>`.pickRestart({
A: "[g#3@2 f#3@2 f3@2 g#3 g3 g#3@2 f#3@2 f3@2 g#3 g3, a#3, b3@3 c#4 b3@3 c#4]/8", B: "c4@15 c#4@4 ~@2 d#4@2 ~",
C: "g#4@7 ~", D: "g#4@19 ~@5", E: "[d#5,d#6] ~ [d#5,d#6] ~ [d#5,d#6] ~ [d#5,d#6]@2 ~@4", F: "[[g#4,g#5]@7 [b4,b5]]/2",
G: "[a#4,a#5] [d#4,d#5]", H: "[f#4,f#5]",
I: "[~ [a#4,a#5]@10 ~@13 f#4@22 ~@2, ~@11 d#5@34 ~@3, ~@6 d#4@17 ~, ~@23 f#5@22 ~@3]/2", J: "e4@8 ~@2 d#4@8 c#4@5 ~",
K: "f#4@7 ~@3 c#4@4 ~@2 f#4@3 ~ c#4@2 ~@2", L: "f#4@8 ~@2 g#4@5 ~ b4@4 g#4@3 ~", M: "f#4@8 ~@2 c#4@5 ~ f#4@4 c#4@3 ~",
N: "[c#4,e4] [d#4,f#4] [e4,g#4] [f#4,a#4]", O: "[[g#4,b4]@6 [a#4,c#5]@6 b4@12 c5@11 ~@13, ~@12 d#5@23 ~@13]/2",
P: "[[g#3,g#4,g#5]@7 [b3,b4,b5]]/2", Q: "[a#3,a#4,a#5] [d#3,d#4,d#5]", R: "[f#3,f#4,f#5]",
S: "[~ [a#4,a#5]@10 ~ d#3@11 ~ f#3@24, a#3@11 d#5@34 ~@3, ~@6 d#4@17 ~, ~@23 f#5@22 ~@3, ~@12 f#4@11 ~]/2", // A#
T: "[[g#3,g#4,g#5]@42 ~@6 [a#3,a#4,a#5]@11 ~ d#3@11 ~ [f#3,f#4]@22 ~@2, ~@42 b3@7 ~@11 d#4@34 ~@2, ~@43 [b4,b5]@7 ~@9 d#5@34 ~@3, ~@71 f#5@22 ~@3]/4", // G# A# F# B
U: "[g#3,g#4]@8 [d#3,d#4]@2 [b2,b3]@2 [g#2,g#3]@11 ~", // G# D# B G#
})).s("gm_string_ensemble_1").gain(0.35)
// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
~ A@3 B A C D E F@2 G H F@2 G H ~ I@2 J I K I L ~@8 F@2 G H F@2 G H ~ I@2 J I K I L M N ~ O P@2 ~ O Q@2 ~ R@2 S ~ T
~@9 U V W X Y Z@2 M N ~ O P@2 ~ O Q@2 ~ R@2 S ~ T ~@16 M N ~ O P@2 ~ O Q@2 ~ R@2 S ~ T AA
>`.pickRestart({
A: "a#5@6 g#5 ~@3 d#5@12 ~@2", B: "g#5@9 ~ g5@12 ~@2", C: "a#5@6 g#5@2 ~@2 d#5@11 ~@3", D: "a#5@6 g#5 ~@3 d#5@11 ~@3",
E: "g#5@10 g5@13 ~", F: "a#5 ~@9 d#5 ~@13", G: "g#5 ~@9 g#5 ~@13", H: "g#5 ~@9 g5 ~@13",
I: "~@2 g#5 ~ f#5 ~ g#5 ~@3 g#5 ~@13", J: "~@10 g#5 ~@3 g#5 ~@9", K: "g#5 ~ f#5 ~ g#5 ~@5 g#5 ~@13",
L: "[b4,g5]@2 ~@2 [b4,d#5,g5]@2 ~@2 [d#5,g5] ~@3 [b4,d#5,g5]@2 ~@10, d#5 ~@7 b4@2 ~@14", M: "~@10 b4@5 g#4@8 ~",
N: "~@6 g#4@4 d#4@2 c#4@2 b3@2 g#3@2 b3@5 ~", O: "d#4@5 ~ f#4@6 g#4@5 ~ b4@5 ~", P: "~@10 c#5@3 ~ b4@3 ~ g#4@4 ~@2",
Q: "~@3 c#5@2 b4 a#4@3 a#4@2 ~",
R: "[c#5 ~ c#5@2 b4 ~ c#5@2 b4@2 c#5@2 b4@2 c#5@2 b4@2 d#5@17 d5 c#5 ~ g#4@5 ~@5, ~@37 b4@2 ~@9]/2",
S: "~@10 c#5@2 b4@2 c#5@4 g#4@5 ~", T: "~@2 c#5@3 ~ c#5@3 ~ a4@4 c#5@8 ~@2", U: "~@3 b4 g#4 b4@2 ~@5",
V: "~@6 d#5@4 [c#5,d5] b4 g#4@2 ~ g#4@4 ~@5", W: "~@6 b4@2 g#4@2 b4@4 ~@2 f#5@5 ~@3",
X: "~@6 b4@2 g#4@2 b4@2 ~@2 b4@2 g#4@2 b4@3 ~@3", Y: "~@3 d#5 b4@3 f#4@2 ~@3",
Z: "[~@6 d#5@2 b4@2 c#5@3 ~ c#5@2 b4@2 c#5@26 ~@4]/2", AA: "g#4@7 ~ d#4@2 b3@2 g#3@10 ~@2",
})).s("gm_synth_brass_1").gain(0.4).pan(0.3)
// … 121 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.