0:00/0:00
// I'm Every Woman — Whitney Houston
// 122 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: ch 9 "SnthBell" named as a mallet, played on tubular bells (its pad new age patch is not one)
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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 · synth bass 2 · "Bass"
const bass = note(`<
~@32 A@4 B A B C B A@3 B D A@2 B A@3 B E F B A@3 G E F E F H I J I H K L M B A@3 G E F E F H I J I H K L M B D A@2 G E
F B A@3 N H I H I O P Q R H I H C H I J I H K L M S@2 B T U@3 V S@3 T U@3 V S@3 T U@3 V S@3 T U@3 V S W S W X Y@2
>`.pickRestart({
A: "f1 ~@3 f1 ~@3 f1 ~ c1 ~@2 c1@3", B: "f2@4 f1 ~@3 f1 ~ c1 ~@2 c1@3", C: "f1 ~@15",
D: "eb2 f2 ~ f2 ~@4 f1 ~ c1 ~@2 c1@3", E: "c2@3 ~ c2@2 ~ c2 g1 ~ g1 ~@2 bb1@3", F: "c2 g1 bb1 eb2",
G: "f2@4 f1 ~@3 f1 ~ c1 ~@2 bb1@3", H: "c2@3 ~ c2@2 ~ c2 g1 ~ g1@3 ~ g1 ~", I: "f1@3 ~ f1@2 ~ f1 bb1 ~ bb1@3 ~ bb1 ~",
J: "c2@3 ~ c2@2 ~ c2 eb2 ~ eb2@3 ~ g1 ~", K: "f1@3 ~ f1@2 ~ f1 bb1 ~ bb1@3 ~ f1@2", L: "eb1 eb2 bb1 g1",
M: "c2 bb1 c2 eb2", N: "f1 ~@3 f1 ~@3 f1 ~ c1 ~@2 bb1@3", O: "c2@2 ~@12 c2 ~", P: "c2 ~@12 g1 bb1 ~",
Q: "c2 ~@13 c2 ~", R: "c2 ~@7 bb1 ~ bb1 ~ bb1 b1@3", S: "f1@3 ~ f1@2 ~ f1!2 ~ c1 ~@2 c1@3",
T: "f1 ~@3 f1 ~@3 f1@3 gb1@3 g1@2", U: "ab1@3 ~ eb1@2 ~ eb1 ab1 ~ eb1 ~@3 eb1@2",
V: "ab1@3 ~ ab1@3 ~ ab1@3 g1@3 gb1@2", W: "f1@3 ~ f1@2 ~@2 ab1@3 g1@3 gb1@2", X: "~@4 f1@2 ~ f1!2 ~ c1 ~@2 c1@3",
Y: "[f1@29 ~@3]/2",
})).s("gm_synth_bass_2").gain(0.45)
// chords · epiano2 · "El.Piano"
const epiano2 = note(`<
A@8 B@2 C@2 D@2 E@7 F@7 ~ G H I J K@6 ~ K@13 ~ L M K@4 ~@4 N O N O N O P Q K@5 ~@8 N O P Q K@5 ~ L M K@4 ~@4 R S R S R
S R ~ N O N O N O P Q K@3 T U@3 V K@3 T U@3 V K@3 T U@3 V K@3 T U@3 V K T K T K W@2
>`.pickRestart({
A: "[~@13 bb3@2 eb4@2 ~ f4@2 g4@2 f4@2 ~@24 bb3@2 eb4@2 f4@2 ~ [ab2,g4]@4 [eb4,g4]@6 ~@3 bb3@4 bb3@9 ~@8 g4@4 ~ [eb4,g4]@6 eb4@5 ~@2 bb2@6 f2@2 ~@9 f4@2 g4@2, ~@24 c4@35 bb3@8 ~@5 g3@8 ~ g3@6 f4@6 ~@35, ~@24 [ab2,eb4]@25 ~ ab2@4 ~@5 g2@13 ~@11 bb3@10 ~@14 [f3,ab3,bb3,c4]@17 ~@4, ~@24 g3@9 bb2@4 g3@22 ~@6 eb4@6 ~ eb4@12 ~ eb4@8 ~@35, ~@31 eb3@15 eb3@6 eb3@6 ~@14 c3@22 [f2,ab3,c4]@13 ~@9 bb1@12]/8", // Abmaj7 Eb Ab5 Fm
B: "[~ [db4,f4,ab4]@8 [bb3,eb4,g4]@9 [db4,f4]@9 [bb2,bb3,eb4,bb4]@4 ab4, ~ eb2@26 ~@5]/2", // Db Eb Db Eb5
C: "[~ g4@2 ~@11 [eb4,eb5]@3 ~@2 eb4@4 [eb3,g3,c4]@6 ~ [ab3,bb3,c4,eb4,g4]@2, ~@3 ab2@29, ~@3 [g3,c4]@9 g4@4 ~ [g4,g5]@12 ~@3, ~@3 eb4@9 bb3@10 ~@10, ~@3 bb3@5 eb3@15 ~@9]/2", // Eb Cm Abmaj7 C5 G
D: "[~@4 ab2 ~ eb4@7 ~@17 g3@2, ~@2 [ab3,bb3,c4,eb4,g4]@4 g3@13 c3@13, ~@6 g2@9 eb4@15 ~@2, ~@6 bb3@6 ~ [bb3,bb4]@19, ~@15 eb5@17]/2", // Abmaj7 Bb
E: "[~@5 g3@4 [f3,ab3]@4 ~@3 g3@2 ab3@4 ab3@8 ~@8 f4@3 g4@3 [db4,f4,ab4]@9 [bb3,eb4,g4,bb4]@8 [db4,f4,ab4]@9 [bb3,eb4,g4,bb4]@9 ~@15 eb4@9 c4@2 d4@4 eb4@3, eb4@8 ~ [f2,c4,eb4]@13 c5@15 ~@42 eb4@13 [g4,bb4]@11 ~@9, ~@14 f3@8 [f3,c4]@21 ~@47 eb3@21 ~, ~@22 [bb2,eb4]@13 bb2@8 ~ eb2@35 [ab2,g3,bb3]@33, ~@31 ab3@12 ~@36 c4@23 ~@10]/7", // Fm Db Eb Db Eb F7 Gm F5 …
F: "[eb3@2 ~@22 g4@8 g4@2 c4@2 ~@18 d4@9 c4@2 d4@2 eb4@2 c4@2 f4@17 ~ [f4,g4,ab4,bb4]@17 [c3,c4]@5 ~, ~@2 [g2,g3,bb3,eb4]@35 [f2,f3,ab3]@35 ~@40, ~@15 bb4@22 c4@26 ~@8 [g2,g3,b3,eb4]@35 [eb3,g3]@3 ~@3, ~@24 eb5@13 eb4@17 ~@58, ~@25 [bb4,bb5]@11 ~@20]/7", // Gm7 C Eb Fm Gaug Eb Bb
G: "~@13 c4 c2 [eb3,c4]", // Cm
H: "[c2,eb3,g3,c4] [c2,c3,c4] [c3,eb3,g3,c4] [c2,g3] [c3,eb3,c4] [c2,eb3,g3,c4] [c3,g3,c4] [c2,eb3] [c3,eb3,g3,c4] [c2,g3,c4] [c2,c3,eb3,c4] [c3,g3] [c2,eb3,c4] [c3,eb3,g3,c4] [c2,g3] [c3,eb3,c4]", // Cm C Cm C5 Cm C5 Cm C5 …
I: "[c2,g3,c4] [c3,eb3,g3,c4] [c2,g3] [c2,c3,eb3,c4] [c3,g3,c4] [c2,eb3,c4] [c3,g3,c4] [c2,eb3,g3] [c3,eb3,c4] [c2,g3,c4] [c3,eb3,g3,c4] ~ [c3,eb3,g3,c4] [g3,c4] [c3,eb3,c4] [c3,g3], ~@11 c2@5", // C5 Cm C5 Cm C5 Cm C5 Cm …
J: "c4 ~@3 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [bb3,d4,f4] ~@2", // Cm Bb
K: "~@4 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [bb3,d4,f4] ~@2", L: "~@8 [c4,c5]@3 [eb4,eb5]@3 [ab4,ab5]@2",
M: "[g4,g5]@4 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [bb3,d4,f4] ~@2", // G Cm Bb
N: "[ab3,c4,eb4,g4]@9 ~ [g3,bb3,d4,f4]@5 ~", O: "[f3,ab3,c4,eb4]@15 ~", P: "[g3,bb3,d4,f4]@15 ~", Q: "ab4 g4 ab4 bb4",
R: "~@4 [bb3,c4,eb4,g4] ~@2 [bb3,c4,eb4,g4] ~@2 [bb3,c4,eb4,g4] ~@2 [bb3,d4,f4] ~@2", // Cm7 Bb
S: "~@4 [ab3,c4,eb4,g4] ~@2 [ab3,c4,eb4,g4] ~@2 [ab3,c4,eb4,g4] ~@2 [bb3,d4,f4] ~@2", // Abmaj7 Bb
T: "~@4 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@8", // Cm
U: "~@4 [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~@2 [db4,f4,ab4] ~@2", // Ebm Db
V: "~@4 [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~@8", W: "[[c4,eb4]@7 ~, g4@13 ~@3]/2",
})).s("gm_epiano2").gain(0.3)
// chords · epiano2 · "El.Piano" · soft notes · Eb Cm C5 Cm C5 Cm C5 Cm …
const epiano2_soft = note(`<
~@27
[~@13 g3 [eb3,g3] [c2,eb3]]
[[c3,g3,c4] [c2,eb3,g3,c4] [c2,c3,eb3] [c2,c3,g3,c4] [c2,c3,eb3,g3,c4] [c3,g3,c4] [c2,eb3,g3] [c3,eb3,c4] [c2,g3,c4] [c3,eb3,g3,c4] [c2,eb3] [c2,c3,g3,c4] [c3,eb3,g3,c4] [c2,eb3,c4] [c3,g3] [c2,eb3,g3,c4]]
[[c2,c3,eb3,g3,c4] [c3,g3,c4] [c2,eb3] [c3,g3,c4] [c2,eb3,c4] [c2,c3,eb3,g3,c4] [c3,g3] [c2,eb3,c4] [c3,eb3,g3,c4] [c2,g3,c4] [c3,eb3] [c2,eb3,g3,c4] [c2,c3,g3,c4] [c3,eb3] g3 c3]
~@130
>`).s("gm_epiano2").gain(0.15)
// chords · piano · "Ac.Piano"
const piano = note(`<
~@40 A@12 B C D A@4 E F G F G ~@6 H I A@4 E F G F G ~@6 H I A@4 E C D A@4 E F G F G ~@14 H I J@2 K@2 L@2 M@2 J@2 K@2
L@2 M@2 J@2 K@2 L@2 M@2 J@2 K@2 L@2 M@2 N@4 O@3
>`.pickRestart({
A: "[[ab3,c4,eb4,g4]@21 ~@5 [g3,bb3,d4,f4]@2 ~ [g3,bb3,d4,f4]@2 ~]/2", B: "[ab3,c4,eb4,g4]@13 [g3,bb3,d4,f4]@2 ~",
C: "[bb3,c4,eb4,g4]@15 ~", D: "[g3,c4,eb4,g4]@15 ~", E: "[f3,ab3,c4,eb4]@9 ~ [ab3,c4,eb4]@2 ~ [bb3,d4,f4]@2 ~",
F: "[ab3,c4,eb4,g4]@9 ~ [g3,bb3,d4,f4]@2 ~ [g3,bb3,d4,f4]@2 ~", G: "[f3,ab3,c4,eb4]@15 ~", H: "[g3,bb3,d4,f4]@15 ~",
I: "[bb3,db4,e4,ab4]@15 ~", J: "[[ab3,c4,eb4,g4]@24 ~@2 [g3,bb3,d4,f4]@2 ~ [g3,bb3,d4,f4]@2 ~]/2",
K: "[[ab3,c4,eb4,g4]@21 ~@3 [f3,ab3,c4,eb4,g4]@3 [gb3,bb3,db4,f4,ab4]@3 [g3,b3,d4,gb4,a4]@2]/2", // Abmaj7 Fm7 Gbmaj7 Gmaj7
L: "[[ab3,b3,eb4,gb4,bb4]@24 ~@2 [bb3,db4,f4,ab4]@2 ~ [bb3,db4,f4,ab4]@3]/2", // Abm7 Bbm7
M: "[[ab3,b3,eb4,gb4,bb4]@24 [ab3,c4,eb4,g4,bb4]@2 ~ [g3,b3,d4,gb4,a4]@3 [gb3,bb3,db4,f4,ab4]@2]/2", // Abm7 Abmaj7 Gmaj7 Gbmaj7
N: "[[ab3,c4,eb4,g4]@22 ~@2 [ab3,c4,eb4,g4,bb4]@2 ~ [g3,b3,d4,gb4,a4]@3 [gb3,bb3,db4,f4,ab4]@2]/2", // Abmaj7 Gmaj7 Gbmaj7
O: "[~@4 [ab3,c4]@41 ~@3, ~@4 [eb4,g4]@39 ~@5]/3", // Ab Eb
})).s("gm_piano").gain(0.45)
// other · piano · "PianSolo"
const piano_2 = note("<~@153 A B C D E@3>".pickRestart({
A: "~@2 eb6 ~ eb6!2 ~ eb6@3 c6 ~ eb6@2 f6 eb6", B: "~ bb6 ~ ab6 f6 eb6 b5 bb5 ab5 f5 ab5 bb5 c6@2 f5@2",
C: "[b5,c6] ~ eb6 eb6@2 c6 eb6 ~ g6 ~ g6 f6@3 eb6 ~", D: "c6@2 eb6 ~ c6@2 bb5 ab5@2 b5@3 bb5@2 ab5 ~, bb5 ~@15",
E: "[[b5,c6] ~ f5 ab5@5 ~@3 bb5 eb6 f6 ~ bb6@7 a6 ab6 g6@19 ~@5]/3", // Cmaj7
})).s("gm_piano").gain(0.45)
// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
~@39 A B@3 ~@10 C D E ~@5 C F G ~@14 C F G ~@6 H I ~@5 C D E ~@5 C F G ~@14 H I ~@39
>`.pickRestart({
A: "~@11 [c4,d4,c5,d5] [eb4,f4,eb5,f5] [g4,ab4,g5,ab5] [bb4,c5,bb5,c6] [d5,eb5,d6,eb6]", // Csus2 Ebsus2 Abmaj7 Bbsus2 Ebmaj7
B: "[[g5,g6]@41 ~@7, [f5,f6] ~@47]/3", // G F
C: "~@4 [eb3,eb4] [f3,f4] [eb3,eb4] [c3,c4] [d3,d4] [eb3,eb4] [d3,d4] [bb2,bb3] [d3,d4] [eb3,eb4] [d3,d4] [bb2,bb3]", // Eb F Eb C D Eb D Bb …
D: "[c3,c4] [d3,d4] ~@9 [c4,d4,c5,d5] [eb4,f4,eb5,f5] [g4,ab4,g5,ab5] [bb4,c5,bb5,c6] [d5,eb5,d6,eb6]", // C D Csus2 Ebsus2 Abmaj7 Bbsus2 Ebmaj7
E: "[f5,f6] ~@15", F: "[c3,c4] [d3,d4] ~@14", G: "~@8 [bb3,bb4] [c4,c5] ~@2 [eb4,eb5] [f4,f5] ~@2",
H: "~@4 bb5 g5 eb5 c5 bb4 g4 eb4 c4 bb3 g3 ab3 bb3",
I: "c4 d4 eb4 f4 g4 ab4 bb4 c5 [d4,d5] [eb4,eb5] [f4,f5] [g4,g5] [ab4,ab5] [bb4,bb5] [c5,c6] [d5,d6]", // D Eb F G Ab Bb C D
})).s("gm_string_ensemble_1").gain(0.45)
// other · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note(`<
~@5 A@4 ~@7 B@5 C@6 D@5 ~@10 E@2 F@4 G@2 H@2 I@2 J G@2 H@2 I@2 ~ K ~@7 L M@3 H@2 N@2 ~ K ~@9 O@2 H@2 I@2 J G@2 H@2 I@2
~ J ~@17 P@2 Q@2 R@2 S@2 P@2 Q@2 R@2 S@2 P@2 Q@2 R@2 S@2 P@2 Q@2 R@2 S@2 T@4 U@3
>`.pickRestart({
A: "[~@14 [bb1,bb2,bb3]@35 ~@15]/4", B: "[~@12 f5@9 g5@8 ab5@9 bb5@4 ~ eb6@4 c6@33]/5",
C: "[~@2 bb5@35 c6@17 ab6@9 g6@8 f6@17 ~ ab6@7]/6", D: "[~ g6@4 eb6@35]/5",
E: "[~@9 [f5,f6]@3 [c5,c6]@17 [bb5,bb6]@3]/2", F: "[[g5,g6]@41 [f5,f6]@3 [c6,c7]@12 [bb5,bb6]@4 [g5,g6]@4]/4",
G: "[[g5,g6]@13 [f5,f6]@3]/2", H: "[[g5,g6]@13 [bb5,bb6]@3]/2", I: "[[g5,g6]@3 [eb5,eb6] [c5,c6]@6 ~@6]/2",
J: "~ c3@5 ~@2, ~ c4@4 ~@3", K: "~ [c3,c4]@5 ~@2", L: "~ [bb3,bb4] [c4,c5] [eb4,eb5]",
M: "[[g4,g5]@2 [bb4,bb5]@2 [c5,c6]@2 [eb5,eb6]@15 [f5,f6]@3]/3", N: "[[g5,g6]@3 [eb5,eb6]@7 ~@6]/2",
O: "[[eb5,eb6]@13 [f5,f6]@3]/2", P: "[[eb5,eb6]@24 [g5,g6]@7 ~]/2",
Q: "[[g5,g6]@24 [eb5,eb6]@3 [e5,e6]@3 [f5,f6]@2]/2", R: "[[gb5,gb6]@24 [bb5,bb6]@7 ~]/2",
S: "[[bb5,bb6]@24 [gb5,gb6]@3 [f5,f6]@3 [e5,e6]@2]/2", T: "[[eb5,eb6]@24 [gb5,gb6]@3 [f5,f6]@3 [e5,e6]@2]/2",
U: "[~ eb5@10 ~, ~ eb6@7 ~@4]/3",
})).s("gm_string_ensemble_1").gain(0.25)
// other · electric guitar clean · "Wah Gtr"
const electric_guitar_clean = note(`<
~@33 A B C D E D ~ D E D E D E D E D E D E D ~@2 D E D E F ~@5 G ~ G ~ H ~@2 D E D E D ~@5 I ~ I ~ J ~@2 D E D E D ~@2
D E D E F ~@8 K ~ K ~@2 I ~ I ~ L ~@2 D E D M N O N P D E D M N O N P D E D M N O N P D E D M N O N P D Q D Q R@2 ~
>`.pickRestart({
A: "~@12 g4 eb4 f4@2", B: "g4@9 ~@7", C: "bb3@2 eb4 ~ g4@2 eb4 ~ eb4@5 ~@3", D: "~@4 bb3 ~@3 c4 bb3 g3 bb3@3 c4 bb3",
E: "~@4 bb3 ~@3 bb3 c4 ~@2 c4@2 g3 bb3", F: "~@4 bb3 ~@3 c4 bb3 g3 bb3@3 g3 c4",
G: "~@4 g3 bb3 c4 eb4 ~@2 f4@2 eb4@4", H: "~@4 g3 bb3 c4 eb4 ~@2 [eb4,f4]@2 g4@4", I: "~@6 c4 eb4 ~ eb4 f4@2 eb4@3 ~",
J: "~@6 bb3 c4 eb4 ~ [eb4,f4]@2 g4@3 ~", K: "bb3 ~ bb3 c4 ~@12", L: "~@6 bb3 c4 eb4 f4 eb4@2 g4@3 ~",
M: "~@4 bb3 ~@3 bb3 c4 ~@2 bb3@2 b3 db4", N: "~@4 db4 ~@3 eb4 db4 bb3 db4@3 eb4 db4",
O: "~@4 db4 ~@3 db4 eb4 ~@2 eb4@2 bb3 db4", P: "~@4 db4 ~@3 db4 eb4 ~@2 eb4@2 b3 bb3",
Q: "~@4 bb3 ~@3 db4 eb4 ~@2 eb4@2 b3 bb3", R: "[~@4 bb3 ~@3 c4 bb3 g3 bb3@3 c4 bb3@17]/2",
})).s("gm_electric_guitar_clean").gain(0.35)
// chords · clavinet · "Clavi"
const clavinet = note(`<
~@36 A@3 B A@13 C D A@4 E ~ C F ~@9 A@5 ~ C F ~@9 A@5 C F A@4 E ~ C F ~@5 G@3 H G@6 ~@2 A@4 I@4 A@4 I@4 A@4 I@4 A@4
I@4 A J A J K ~@2
>`.pickRestart({
A: "[bb3,eb4] ~ [c4,f4] ~ [bb3,eb4] ~ [c4,f4] ~ [c4,f4] ~@2 [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4]", B: "[bb3,eb4] ~@15",
C: "~@4 eb4 f4 eb4 c4 d4 eb4 d4 bb3 d4 eb4 d4 bb3", D: "c4 d4 c4@13 ~",
E: "[bb3,eb4] ~ [c4,f4] ~ [bb3,eb4] ~ [c4,f4] ~ [c4,f4] ~@2 [bb3,eb4] ~ [c4,f4] ~ [d4,g4]", F: "c4 d4 c4@14",
G: "[f4,bb4] ~ [g4,c5] ~ [f4,bb4] ~ [g4,c5] ~@4 [f4,bb4] ~ [g4,c5] ~ [d4,g4]", H: "[bb4,eb5] ~@15",
I: "[db4,gb4] ~ [eb4,ab4] ~ [db4,gb4] ~ [eb4,ab4] ~ [eb4,ab4] ~@2 [db4,gb4] ~ [db4,gb4] ~ [db4,gb4]", // Gb5 Ab5 Gb5 Ab5 Gb5
J: "[bb3,eb4] ~ [c4,f4] ~ [bb3,eb4] ~ [c4,f4] ~ [c4,f4] ~@2 [db4,gb4] ~ [db4,gb4] ~ [db4,gb4]", // Eb5 F5 Eb5 F5 Gb5
K: "~@4 [bb3,eb4] ~ [c4,f4] ~ [c4,f4] ~@2 [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4]", // Eb5 F5 Eb5
})).s("gm_clavinet").gain(0.35)
// chords · tubular bells · "SnthBell"
const tubular_bells = note(`<
~@6 A B@2 C ~@4 D E F ~ G H ~@3 I ~ J K L ~@7 M N ~@4 O P ~@2 O P Q R ~ S T ~@2 U P ~ S T ~@15 S T ~@15 S T ~@2 U P ~
S T ~@60
>`.pickRestart({
A: "~@15 [e6,f6]", // Fmaj7
B: "[g6 [a6,b6] c7 [d7,e7] f7 [b6,g7] [g6,a6] [e6,f6] [c6,d6] [a5,b5] [f5,g5] [d5,e5,b5] [c6,d6] e6 [f6,g6] bb6@7 ~@2 [d6,e6,f6] [g6,a6,b6] ~@6, ~@15 a6 ~@9 c7@6 ~]/2", // Asus2 Dsus2 Em Gsus2 Fmaj7 Csus2 Asus2 Fsus2 …
C: "~ [e5,f5] [g5,a5,b5] [c6,d6,e6,f6,g6] [a6,b6,d7] ~@11, ~@2 c7@3 ~@3", D: "~@8 [f5,g5,a5] [b5,c6,d6] ~@6",
E: "~@6 g5 a5 b5 [c6,d6] e6 [f6,g6] a6 [b6,c7] d7 [e7,f7]", // Csus2 Fsus2 Cmaj7 Fmaj7
F: "g7 [g6,a6,b6] ~ [d6,e6] c6 [g5,a5,b5] [d5,e5,f5] [b5,c6] d6 [e6,f6] [g6,a6] [b6,c7] d7 ~@3", // G Dsus2 G Dm Cmaj7 Fmaj7 Gsus2 Cmaj7
G: "~@15 [f5,g5,a5,b5]", H: "[c6,d6,e6,f6,g6,a6,b6,c7] d7 ~@14", I: "~@5 [f6,g6,a6,b6,c7] [d7,e7] ~@9",
J: "~@13 f5 [g5,a5] [b5,c6,d6]", // Gsus2 Bm
K: "[e6,f6] [g6,a6] [b6,c7] [d7,e7] [f7,g7] a7 ~ e7 [c7,d7] [a6,b6] g6 ~ b5 [f5,g5,a5] [d5,e5] g5", // Fmaj7 Gsus2 Cmaj7 Dsus2 Fsus2 Csus2 Asus2 F …
L: "[a5,b5,c6] [d6,e6] [f6,g6,a6] [c6,b6,c7] [g5,a5,b5] [e5,f5] [c5,d5] [a4,b4] g4 f4 ~@6", // Am Dsus2 F Cmaj7 G Fmaj7 Csus2 Asus2
M: "~@9 bb6 [f6,g6,a6] [d6,e6] [b5,c6] [f5,g5,a5] [c5,d5,e5] [a4,b4]", N: "g4 ~@15", O: "~@8 c6 ~@2 eb6 ~@2 bb6 ~",
P: "g6@3 ~", Q: "~@12 [ab6,bb6] [eb6,f6,g6] [bb5,c6,d6] [f5,g5,ab5]", R: "eb5 ~@15", S: "~@8 bb6 ~@2 ab6 ~@2 g6 ~",
T: "eb6@5 ~@11", U: "~@8 c6 ~@2 eb6 ~@2 ab6 ~",
})).s("gm_tubular_bells").gain(0.15)
// chords · tubular bells · "SnthBell" · soft notes
const tubular_bells_soft = note("<~@6 A ~ B ~@6 C D ~@8 E F ~@133>".pickRestart({
A: "~@8 d5 ~@2 g5 a5 [b5,c6] d6 ~, ~@9 e5@2 ~@5, ~@5 f5 ~@2", B: "~@8 c6 ~@7", C: "~@3 d5 ~ f5@2 ~@9, ~@2 e5 ~@5",
D: "~@2 f6 ~@13", E: "~@12 [d5,e5] ~@3", F: "~@10 f6 [d6,e6] c6 ~@3",
})).s("gm_tubular_bells").gain(0.1)
// other · english horn · "EnglHorn"
const english_horn = note("<~@18 A@5 B@4 C@5 ~@128>".pickRestart({
A: "[~@15 c4@35 bb3@26 c4@2 d4@2]/5", B: "[eb4@2 f4@2 ~ g4@26 eb4@8 f4@17 ~ ab3@7]/4", C: "[~ g3@4 c4@35]/5",
})).s("gm_english_horn").gain(0.35)
// drums · kick
const kick = s("bd").struct(`<
~@32 A@7 B A C A C A C A C A C A C A C A@2 C A C A@2 C A C A C A C A@2 C A@2 C A C A@2 C A C A C A C A C A C A C A C
A@2 C A C A C A C A@2 C ~@4 A C A C A C A C A@2 C@2 A C A C A@2 C A@2 C A C A@2 C@2 A C A C A@2 C A@2 C A C A@2 C@2 A
C@4 D ~
>`.pickRestart({
A: "x!4", B: "x", C: "x ~ x ~ x ~ x!2", D: "x!2 ~@2",
})).gain(0.45)
// drums · snare
const snare = s("sd").struct(`<
~@35 A ~@3 B C D C E C D C F C D C@2 D C G C@2 H D@2 I D J G C D C H C D C A C@2 H D@2 I K I L ~@4 C D C M C D C@2 D C
G C@4 D C D C G ~@3 N C D C O C D C H C D P A C D@2 Q I D@2 A C D@2 Q I D@2 Q C D@2 Q I D@2 A C D@2 Q I D@2 Q C D@3 Q
R ~
>`.pickRestart({
A: "x!16", B: "~@11 x!2 ~@3", C: "~@4 x ~@2 x ~@8", D: "~@4 x ~@2 x ~ x ~@6", E: "~@4 x ~@2 x ~@3 x ~ x ~@2",
F: "~@4 x ~@2 x ~@3 x ~@4", G: "~@4 x ~@2 x!9", H: "~@4 x ~@2 x ~@2 x ~@5", I: "~@4 x ~@2 x ~@4 x ~@3",
J: "~@4 x ~@2 x ~ x ~@2 x ~@3", K: "~@4 x ~@2 x ~@3 x ~@2 x ~", L: "~@4 x ~@2 x ~@3 x!2 ~ x ~",
M: "x ~@2 x!2 ~ x!3 ~ x ~ x!4", N: "~@8 x ~ x ~ x!2 ~@2", O: "x!2 ~ x ~@2 x ~@2 x ~@2 x!4",
P: "~@3 x ~@2 x!3 ~@2 x ~@2 x ~", Q: "~@4 x ~@2 x ~ x ~@2 x!3 ~", R: "~ x ~@2",
})).gain(0.5)
// drums · clap
const clap = s("cp").struct(`<
~@36 A@3 ~ A@81 B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C A@4 ~@3
>`.pickRestart({
A: "~ x ~ x", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~@4 x!3 ~",
// … 94 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.