0:00/0:00
// Queen of the Night — Whitney Houston
// 119 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 101 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(119/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(`<
~@20 A B@2 C@2 B@2 D@2 B@2 C@2 E@2 F G H@2 I A B@2 C@2 B@2 D@2 B@2 C@2 E@2 F G H@2 I A B@2 C@2 B@2 D@2 B@2 C@2 B@2 C@2
B@2 C@2 J@2 K@2 J@2 L A B@2 C@2 J@2 K@2 J@2 L A
>`.pickRestart({
A: "~@4 g1@3 ~@5 g1@3 ~@5 g2@2 ~@2 d2@6 ~@2",
B: "[a1@6 ~@2 a1@4 e1 ~ e1 ~ g1@4 g#1@3 ~ a1@4 d2@8 d3@4 d2 ~@3 e2@7 ~ b2@3 ~ a2@6 ~@2]/2",
C: "[a1@6 ~@2 a1@4 e1 ~ e1 ~ g1@4 g#1@4 a1@4 d2@7 ~ c2@3 ~ b1@2 ~@2 g1@6 ~@2 g1@3 ~ g2@4 g1@3 ~]/2",
D: "[a1@6 ~@2 a1@4 e1 ~ e1 ~ g1@4 g#1@4 a1@4 d2@7 ~ c2@3 ~ b1@2 ~@2 g1 ~@3 g1@3 ~ g2@4 g1@3 ~ g2@3 ~]/2",
E: "[d2@6 ~@2 d2@6 c2 ~ c2@3 ~ c2@4 d2@4 e2@8 d2@4 e2@4 g2@4 e2@4 g2@4 g#2@4 a2@3 ~]/2",
F: "a1@6 ~@2 a1@5 ~ a1 ~ a1@4 e2@4 a2@3 ~ g1@4", G: "~@4 g1@4 g2@4 g1@2 ~@2 g1@3 ~ g1@4 g2@4 g1@3 ~",
H: "[d2@6 ~@2 d2@4 ~@2 d2 ~ c2@2 ~@2 c2@4 d2@2 ~@2 e2@8 g2@4 g#2@4 a2@4 e2@4 d2@4 e2@3 ~ e2@3 ~]/2",
I: "a1@6 ~@2 a1@4 ~@2 a1 ~ g1@3 ~ g1@3 ~ a1@3 ~@5",
J: "[d2@6 ~@2 d2@6 c2 ~ c2@3 ~ c2@4 d2@4 e2@8 d2@4 e2@4 g2@4 a2@3 ~ a2@4 e2@7 ~]/2",
K: "[a1@6 ~@2 a1@5 ~ a1@5 ~ a2@3 ~ g#2@4 g2@8 d2@4 g1@5 ~ g1 ~ g1@2 ~@2 g1@4 g2@4 g1@3 ~]/2",
L: "a1@6 ~@2 a1@4 ~@2 a1 ~ a1@3 ~ a2@4 a1@3 ~ a2@3 ~",
})).s("gm_electric_bass_finger").gain(0.45)
// chords · epiano1
const epiano1 = note("<~ A B A B C D E F ~@12 G@12 H@2 I@2 H@2 J ~@21 G@14 K ~@25>".pickRestart({
A: "[a2,g#3,c#4,e4]", B: "[f2,f3,a3,c4]@3 [g2,g3,b3,d4]@5", C: "[f2,f3,a3,c4]", D: "[g2,g3,b3,d4]",
E: "[a2,g#3,c#4,e4]@28 [f2,f3,a3,c4]@3 ~", // Amaj7 F
F: "~@4 [f2,f4,a4,c5,e5]@3 ~@5 [g2,g4,a4,c5,e5]@2 ~@6 g4@4 b4 [e4,f4,g4] [c4,d4] [a3,b3] [f3,g3] ~@3, ~@20 [g2,a4,c5,e5]@7 ~@5", // Fmaj7 Am7 Em Csus2 Asus2 Fsus2 Am7
G: "[[g#3,c#4,e4]@7 [f3,c4,f4]@9]/2", H: "[[d3,f3,a3,c4]@7 [e3,g3,b3,d4]@9]/2",
I: "[[g#3,a3,c#4,e4]@28 [f3,a3,c4,e4]@29 ~@7]/2", J: "[g#3,a3,c#4,e4]@7 ~", K: "[g#3,c#4,e4]@7 ~",
})).s("gm_epiano1").gain(0.47).pan(0.4)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@13 A@2 B@2 C D E ~@29 F@2 G@2 H I J@2 C D K L ~@16 F@2 G@2 H I J@2 C D K L F@2 G@2 H I J@2 C D K L
>`.pickRestart({
A: "[[e4,e5]@3 [d4,d5]]/2", B: "[[e4,e5]@48 [d4,d5]@15 ~]/2", C: "[a4,a5] [b4,b5]", D: "[c5,c6] [d5,d6]",
E: "[c#5,a5]", F: "[e4@3 d4]/2", G: "[e4@48 d4@15 ~]/2", H: "a4 b4", I: "c5 d5", J: "[c#5@28 c5@35 ~, e5]/2",
K: "[c#5,e6]", L: "~@4 [g2,e6]@2 ~@6 [g2,e6]@2 ~@6 [g2,e6]@4 b5 [e5,f5,g5] [c5,d5] [a4,b4] [f4,g4] ~@3",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.6)
// chords · piano
const piano = note(`<
~@9 A@4 B@4 C@2 D E ~@8 F@2 G@2 H@4 C@2 D E I@2 J@2 I@2 K@2 F@2 G@2 H@4 C@2 D E ~@8 F@2 G@2 F@2 G@2 F@2 G@2 H@4 C@2 D
E F@2 G@2 H@4 C@2 D E
>`.pickRestart({
A: "[[a2,g#3,c#4]@7 [d2,f3,c4]@9]/2", B: "[[a2,g#3,c#4]@6 ~ [d2,f3,c4]@4 ~@5]/2",
C: "[[d2,f3,c4]@13 ~ [e2,g3,d4]@17 ~]/2", D: "[a2,g#3,c#4]",
E: "~@4 [g2,g3,e4]@4 ~@4 [g2,g3,e4]@2 ~@6 [g2,g3,e4]@7 ~@5", // C
F: "[[g#3,c#4,e4]@18 ~@2 [c#4,e4]@4 g#3@2 ~@2 [d2,f3,a3,e4]@13 ~@3 e2@10 ~@2 e2@4 g2@4, a2@7 ~@9, ~@20 g#3@3 ~@21 [g3,b3,d4,e4]@18 ~@2]/2", // C#m Dm Em7
G: "[[g#3,c#4,e4]@19 ~ [c#4,e4]@4 a2@2 ~@2 [d2,f3,a3,e4]@14 ~@2 e2@9 ~@3 e2@4 g2@3 ~, a2@23 ~@41, ~@20 g#3@2 ~@2 g#3 ~@19 [g3,b3,d4,e4]@19 ~]/2", // C#m Dm Em7
H: "[[d2,d3,f3,a3,c4]@20 [d3,f3,a3,c4]@2 ~@2 d2@2 ~@2 [e2,e3,g3,b3,d4]@24 [e3,g3,d4]@2 ~@2 e2@4 g2@4 a2@20 [g#3,c#4,e4]@3 ~ a2 ~@3 [g2,f3,a3,c4,e4]@34 ~@2, ~@52 b3 ~@7 [g#3,a3,c#4,e4]@22 ~@46]/4", // Dm7 Em7 C#m Fmaj7 Amaj7
I: "[[a2,g#3,c#4]@13 ~ [f2,f3,c4]@17 ~]/2", // Amaj7 F5
J: "[[a2,g#3,c#4]@26 ~@2 [f3,c4]@22 ~@2 [f3,c4] ~@3 f2@2 [f3,c4]@4 f2 ~, ~@7 f2@6 ~@3]/2", // Amaj7 F5
K: "[[a2,g#3,c#4]@26 ~@2 [f3,c4]@21 ~@3 [f3,c4] ~@3 f2@2 [f3,c4]@4 f2 ~, ~@7 f2@6 ~@3]/2", // Amaj7 F5
})).s("gm_piano").gain(0.37).pan(0.4)
// other · pad new age
const pad_new_age = note(`<
~@17 A B C ~@29 D@2 E ~ A B F@2 A B C ~@17 D@2 E ~ A B F@2 A B C ~ D@2 E ~ A B F@2 A B C ~
>`.pickRestart({
A: "a5 b5", B: "c6 d6", C: "c#6", D: "[~@10 a5 ~ c6 ~ d6@4 ~@14]/2", E: "~@10 a5 ~ c6 ~ d6@2",
F: "[~@24 a5@3 ~ c6@19 ~@17, c#6@33 ~@31]/2",
})).s("gm_pad_new_age").gain(0.4).pan(0.4)
// chords · epiano1
const epiano1_2 = note("<~@65 A@2 B@2 A@2 B@2 A@2 B@2 ~@24>".pickRestart({
A: "[~@8 [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@5 [g#4,b4] ~@7 [c4,e4,g4]@26 ~@2 [e4,a4,c5]@5 ~@3]/2", // G#m C Am
B: "[[g#4,b4]@4 ~@4 b4@2 ~@2 e4 ~ [g#4,b4] ~@5 [g#4,b4] ~@7 [c4,e4,g4]@27 ~@9, ~@8 g#4 ~@55]/2", // G#m C
})).s("gm_epiano1").gain(0.26)
// chords · epiano2
const epiano2 = note(`<
~@12 A B@2 C@2 D@3 E ~@19 E F@12 G@2 H@2 G@2 I E ~@16 F@4 G@2 H@2 G@2 I E F@4 G@2 H@2 G@2 I E
>`.pickRestart({
A: "~@20 [f3,a3,d4] ~@5 [a3,d4]@4 f3 ~, ~@13 f3 ~@2", // Dm D5
B: "[[g#3,c#4,e4]@18 ~@2 [c#4,e4]@4 g#3@2 ~@2 [d2,f3,a3,c4,e4]@13 ~@3 e2@10 ~@2 e2@4 g2@4, a2@7 ~@9, ~@20 g#3@3 ~@21 [g3,b3,d4,e4]@18 ~@2]/2", // C#m Dm7 Em7
C: "[[g#3,c#4,e4]@19 ~ [c#4,e4]@4 a2@2 ~@2 [d2,f3,a3,c4,e4]@14 ~@2 e2@9 ~@3 e2@4 g2@3 ~, a2@23 ~@41, ~@20 g#3@2 ~@2 g#3 ~@19 [g3,b3,d4,e4]@19 ~]/2", // C#m Dm7 Em7
D: "[[d2,d3,f3,a3,c4]@10 [d3,f3,a3,c4] ~ d2 ~ [e3,g3,b3,d4]@11 ~ [e3,g3,d4] ~ e2@2 g2@2 a2@15 ~, ~@28 e2@24 b3 ~@7 [g#3,a3,c#4,e4]@34 ~@2]/3", // Dm7 Em7 Amaj7
E: "~@4 [g2,g4,a4,c5,e5]@3 ~@5 [g2,g4,a4,c5,e5]@2 ~@6 [g2,g4,a4,c5,e5]@4 b4 [e4,f4,g4] [c4,d4] [a3,b3] [f3,g3] ~@3", // Am7 Em Csus2 Asus2 Fsus2
F: "[[g#3,c#4,e4]@7 [f3,c4,f4]@9]/2", G: "[[d3,f3,a3,c4]@7 [e3,g3,b3,d4]@9]/2",
H: "[[g#3,a3,c#4,e4]@28 [f3,a3,c4,e4]@29 ~@7]/2", I: "[g#3,a3,c#4,e4]",
})).s("gm_epiano2").gain(0.42).pan(0.4)
// drums · kick
const kick = s("bd").struct("<~@9 [x!4]!59 [x!3 ~] [x!4]!32>").gain(0.5)
// drums · snare
const snare = s("sd").struct("<~@21 A@19 ~ B@4 A@15 ~ B@4 A@3 C A@19 ~ A@11 ~>".pickRestart({
A: "~@8 x ~@10 x ~@4 x ~@6 x", B: "~@19 x ~@4 x ~@6 x", C: "~ x ~@2",
})).gain(0.25)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@21 A@19 ~ A@19 ~ A@7 ~ A@19 ~ A@11 ~>".pickRestart({
A: "~@7 x",
})).gain(0.15)
// drums · hihat
const hihat = s("hh").struct(`<
~@9
[~ x ~@7 x ~@7 x ~@7 x ~@6]!59
[~ x ~@7 x ~@7 x ~@14]
[~ x ~@7 x ~@7 x ~@7 x ~@6]!32
>`).gain(0.05)
// drums · open hat
const open_hat = s("oh").struct("<~@9 [~ x ~ x ~ x ~ x]!59 [~ x ~ x ~@4] [~ x ~ x ~ x ~ x]!32>").gain(0.35)
// drums · crash
const crash = s("cr").struct(`<
~@9 A ~@3 A ~@3 A ~@3 A ~@19 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3
>`.pickRestart({
A: "x",
})).gain(0.4)
// drums · tambourine
const tambourine = s("tb").struct("<~@9 [x!8]!59 [x!5 ~@3] [x!8]!32>").gain(0.25)
// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
~@9
[~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!59
[~ x ~ x ~ x ~ x ~@8]
[~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!32
>`).gain(0.15)
// drums · triangle
const triangle = s("triangles:30").struct(`<
~@21
[~@4 x ~@7 x ~@2 x ~@4 x ~@7 x ~@2 x]!47
[~@4 x ~@7 x ~@2 x ~@16]
[~@4 x ~@7 x ~@2 x ~@4 x ~@7 x ~@2 x]!32
>`).gain(3.02)
stack(
bass, epiano1, string_ensemble_1, piano, pad_new_age, epiano1_2, epiano2, kick, snare, snare_soft, hihat, open_hat,
crash, tambourine, tambourine_soft, triangle
)
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.