0:00/0:00
// Saving All My Love For You — Whitney Houston
// 100 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 1 "choir" choir aahs (copy of ch 7 "e piano" epiano2)
// note: Full arrangement: all 76 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · "choir"
const epiano2 = note("<A@2 B C@2 D ~@70>".pickRestart({
A: "[[a4,c#5,e5,g#5]@4 [c#5,e5]@2 [e4,a4,c#5,e5] [f#4,a4,c#5,f#5]@3 [e4,a4,c#5]@2 [d4,f#4,a4,c#5]@4, ~@4 e4 ~@11]/2", // Amaj7 C#m A F#m A Dmaj7
B: "[f#4,a4] [b3,d4,f#4,a4]@2 ~", // F#m Bm7
C: "[[g#4,c#5,e5,g#5]@4 [e4,c#5,e5]@2 [e4,a4,c#5,e5] [c#5,f#5]@4 ~ [d4,f#4,a4,c#5] [c#4,e4,g#4,b4] [b3,d4,f#4,a4]@2, ~@7 [f#4,a4]@3 ~@6]/2", // C#m A F#5 Dmaj7 C#m7 Bm7 F#m
D: "[a3,d4,f#4] [b3,d4,f#4,a4] [b3,d4,f#4,a4]@3 [d4,f#4,a4,b4]@2 [b3,d4,f#4,a4]", // D Bm7
})).s("gm_epiano2").gain(0.4).pan(0.4)
// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note("<~@11 A@4 ~@13 B@4 ~@16 C D ~@5 E@2 F@2 ~@17>".pickRestart({
A: "[~@7 e5@6 d#5@6 e5@6 d#5@6 ~]/4", B: "[~@3 e5@6 d#5@6 e5@6 d#5@6 ~@5]/4",
C: "~ [a4,d5,f#5] [b4,d5,f#5,a5] [d5,f#5,a5,c#6] [c#5,e5,g#5,b5] [b4,d5,f#5,a5] ~ [a4,b4,d5,f#5]", // D Bm7 Dmaj7 C#m7 Bm7
D: "[b4,d5,f#5,a5] [d5,f#5,a5,c#6] [c#5,e5,g#5,b5] [b4,d5,f#5,a5] ~@4", E: "[~@2 e5@3 d#5@3]/2",
F: "[e5@3 d#5@3 ~@2]/2",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.6)
// bass · fretless bass · "bass"
const bass = note(`<
A@6 B@6 C@3 D@2 E F@3 G@3 H@3 I@3 J@3 K@3 L@2 M N@2 O P@2 Q R@2 S T@3 H@3 U@3 V@3 W@3 X@3 Y@3 Z@3 AA@3 AB
>`.pickRestart({
A: "[a2 f#2 b2 e2]/3", B: "[a2@3 a2@2 e2 f#2@6 b1@6 e2@3 e2@2 e2]/3", C: "[f#2 b2 f#2 b2]/3",
D: "[a2@3 g#2@3 f#2@3 e2@3 g#2@3 g#2]/2", E: "d#2 d2 c#2@3 c#3@3",
F: "[d3@3 c#3@3 b2@3 e2@3 a2@3 a2@2 e2 f#2@3 f#2@2 c#2]/3", G: "[b1@3 b2 f#2 f2 e2@3 e2@3 a2@3 a2@2 e2 f#2@6]/3",
H: "[b1@6 e2@3 e2@2 e2 a2@3 a2@2 e2 f#2@6]/3", I: "[b1@6 e2@3 e2@2 e2 f#2@6 b2@6]/3",
J: "[f#2@2 b2@2 a2 g#2 f#2 e2]/3", K: "[g#2@3 g#2 d#2 d2 c#2@3 c#3@3 d3@3 c#3@3 b2@3 e2@3]/3",
L: "[a2@3 a2@2 e2 a2@3 a1@2 a2 g#2@4]/2", M: "d#2 d2 c#2@3 c#3@2 c#2", N: "[f#2@3 f#2@3 f#2@3 f#2@3 b2@4]/2",
O: "f#2 f2 e2@3 e2@2 e2", P: "[a2@4 ~ e2 a2@3 e2@2 a2 d#2@4]/2", Q: "a#2 d#2 g#2@3 c2@3",
R: "[c#2@3 c#2@2 g#2 c#3@3 c#2@3 f#2@2 f#2@2]/2", S: "f#2 b1!3", T: "[e2@3 e2@2 b2 e3@3 e2@3 a2@3 a2@2 e2 f#2@6]/3",
U: "[b1@6 e2@3 e2@2 e2 e2@6 b2@6]/3", V: "[e2@2 b2@2 a2 g#2 f#2 e2]/3",
W: "[g#2@3 g#2 d#2 d2 c#2@3 c#3@3 d3@3 c#3@3 b2@4 b2 c#3]/3", X: "[d3@3 c#3@3 b2@4 b2 c#3 d3@3 c#3@3 b2@3 e2@3]/3",
Y: "[a2@3 c#2@3 f#2@3 f#2@2 c#2 b1@3 b2@2 f#2 e2@3 e3@2 e2]/3",
Z: "[d3@3 c#3@3 b2@4 b2 c#3 d3@3 c#3@3 b2@4 b2 c#3]/3", AA: "[d3 c#3 b2 e2 a2 e2 b2 e2]/3", AB: "a2@3 ~@5",
})).s("gm_fretless_bass").gain(0.44)
// chords · electric guitar jazz · "guitar"
const electric_guitar_jazz = note(`<
A B@2 C D@2 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 AS AT AU
AV@2 AW AX@2 AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BH BI BN BH BO BP BQ
>`.pickRestart({
A: "[e3,g#3,a3,c#4]@4 ~@2 [e3,g#3,a3,c#4]@5 ~ [e3,f#3,a3,c#4]@4", // Amaj7 F#m7
B: "[~@2 [e3,f#3,a3,c#4]@3 ~ [e3,f#3,a3,c#4] ~ [f#3,a3,d4]@5 ~ [a3,d4]@5 ~ [e3,f#3,a3,b3]@5 ~ [e3,f#3,a3,b3]@3 ~ [e3,a3] ~, ~@14 f#3@3 ~@15]/2", // F#m7 D D5 Esus4 A5
C: "[e3,g#3,a3,c#4]@2 ~ [e3,g#3,a3,c#4]@2 ~ [f#3,a3,c#4,e4]@2", // Amaj7 F#m7
D: "[~@2 [f#3,a3,c#4,e4]@4 ~@2 [f#3,a3,d4]@4 ~@2 [f#3,a3,d4]@5 ~ [e3,a3,b3]@5 ~ [e3,g#3,b3]@3 ~@3]/2", // F#m7 D Esus4 E
E: "[e3,f#3,a3,c#4]@2 [e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~@3 [e3,a3] ~ [e3,f#3,a3,c#4] ~ a3 ~", // F#m7 A5 A A5 F#m7
F: "[a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [e3,a3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~", // A F#m7 A D
G: "[f#3,a3,d4] ~ [a3,d4] ~ [e3,f#3,a3,b3] ~ [e3,a3] ~ [f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,a3,b3] ~", // D D5 Esus4 A5 B7 Esus4
H: "[e3,g#3,a3,c#4] ~ [g#3,a3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [f#3,a3] ~", // Amaj7 F#m7 F#m
I: "[e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ a3 ~ [f#3,a3] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,d4] ~", // F#m7 F#m D
J: "[f#3,a3,d4] ~ d4 ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3] ~ [f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~", // D Esus4 F#m7 B7 Esus4
K: "[e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [e3,f#3,a3] ~ [f#3,a3,b3,d#4] ~ d#4 ~", // F#m7 F#m F#m7 B7
L: "[f#3,a3,b3,d#4] ~ [f#3,a3,d#4] ~ [f#3,d#4] ~ [f#3,b3,d#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [e3,a3,c#4] ~", // B7 D#dim D#m B F#m7 A
M: "[f#3,a3] ~ [e3,f#3,a3] ~ [f#3,a3,b3,d#4] ~ [f#3,a3,d#4] ~ [f#3,a3,b3,d#4] ~ [f#3,d#4] ~ [f#3,a3,d#4] ~ d#4 ~", // F#m F#m7 B7 D#dim B7 D#m D#dim
N: "[e3,a3,c#4] ~ [e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3] ~", // A A5 A A5 A A5
O: "[e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3] ~ [e3,a3,c#4] ~ [d#3,a3,c#4] ~ [a3,c#4] ~ [d#3,a3,c#4] ~ [a3,c#4] ~", // A A5 A D#m7b5 A D#m7b5 A
P: "a3 ~ a3 ~ [f3,g#3,c#4] ~ [f3,g#3] ~ f3 ~ [f3,g#3] ~ [f3,g#3] ~ [f3,g#3] ~", // C# Fm
Q: "[d3,f#3,a3] ~ [d3,f#3,a3] ~ a3 ~ [e3,g#3,c#4] ~ [e3,g#3] ~ g#3 ~ [d3,f#3,b3] ~ [d3,f#3,b3] ~", // D C#m E Bm
R: "[f#3,b3] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~", // B5 E7 Amaj7
S: "[g#3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,g#3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,a3] ~ a3 ~", // Amaj7 A E Amaj7 A5
T: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~", // D Dm
U: "[f3,a3,d4] ~ [e3,g#3,d4] ~ [e3,g#3,d4] ~ [e3,g#3,d4] ~ [e3,f#3,a3,c#4]@2 [e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~", // Dm E7 F#m7 A5 A
V: "~@2 [e3,a3] ~ [e3,f#3,a3,c#4] ~ a3 ~ [a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [e3,a3,c#4] ~", // A5 F#m7 A F#m7 A
W: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [a3,d4] ~ [e3,f#3,a3,b3] ~ [e3,a3] ~", // D D5 Esus4 A5
X: "[f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,a3,b3] ~ [e3,g#3,a3,c#4] ~ [g#3,a3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~", // B7 Esus4 Amaj7
Y: "[g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [f#3,a3] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ a3 ~ [f#3,a3] ~", // Amaj7 F#m7 F#m F#m7 F#m
Z: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,d4] ~ [f#3,a3,d4] ~ d4 ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3] ~", // D Esus4 F#m7
AA: "[f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4] ~", // B7 Esus4 F#m7 F#m
AB: "[f#3,a3,c#4] ~ [e3,f#3,a3] ~ [f#3,a3,b3,d#4] ~ d#4 ~ [f#3,a3,b3,d#4] ~ [f#3,a3,d#4] ~ [f#3,d#4] ~ [f#3,b3,d#4] ~", // F#m F#m7 B7 D#dim D#m B
AC: "[e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [e3,a3,c#4] ~ [f#3,a3] ~ [e3,f#3,a3] ~ [f#3,a3,b3,d#4] ~ [f#3,a3,d#4] ~", // F#m7 A F#m F#m7 B7 D#dim
AD: "[f#3,a3,b3,d#4] ~ [f#3,d#4] ~ [f#3,a3,d#4] ~ d#4 ~ [e3,a3,c#4] ~ [e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~", // B7 D#m D#dim A A5 A
AE: "[e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3] ~ [e3,a3,c#4] ~", // A5 A A5 A A5 A
AF: "[d#3,a3,c#4] ~ [a3,c#4] ~ [d#3,a3,c#4] ~ [a3,c#4] ~ a3 ~ a3 ~ [f3,g#3,c#4] ~ [f3,g#3] ~", // D#m7b5 A D#m7b5 A C# Fm
AG: "f3 ~ [f3,g#3] ~ [f3,g#3] ~ [f3,g#3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] ~ a3 ~ [e3,g#3,c#4] ~", // Fm D C#m
AH: "[e3,g#3] ~ g#3 ~ [d3,f#3,b3] ~ [d3,f#3,b3] ~ [f#3,b3] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~ [e3,g#3,b3,d4] ~", // E Bm B5 E7
AI: "[e3,g#3,a3] ~ [e3,g#3,a3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~", // Amaj7 A
AJ: "[e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [g#3,b3,d#4] ~@3 [g#3,b3,d#4] ~ [f#3,b3,d#4] ~", // A G#m B
AK: "[f#3,d#4] ~ [g#3,d#4] ~ [f3,g#3,b3] ~ f3 ~ [f3,g#3,b3] ~ [f3,g#3,b3,c#4] ~ [f3,g#3] ~ [f3,g#3,b3] ~", // D#m G#5 Fdim C#7 Fm Fdim
AL: "[e3,f#3,a3,c#4] ~ a3 ~ [e3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [f#3,a3] ~", // F#m7 A F#m7 F#m
AM: "[e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~", // F#m7 Amaj7 D
AN: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [e3,g#3,d4] ~ [g#3,d4] ~ [e3,g#3,d4] ~ [e3,g#3,d4] ~ [g#3,d4] ~ [e3,g#3,d4] ~", // D E7 G#dim E7 G#dim E7
AO: "[e3,g#3,a3,c#4] ~ [g#3,a3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,a3] [e3,g#3,a3]", // Amaj7 A5 Amaj7
AP: "[e3,g#3,a3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3] ~ [g#3,a3,c#4] ~ [d#3,f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [d#3,f#3,a#3,c#4] ~", // Amaj7 D#m7 F# D#m7
AQ: "[f#3,a#3,c#4] [d#3,f#3,a#3,c#4]!2 ~ [d#3,f#3,g#3,c4] ~ g#3 ~ [f#3,g#3,c4] ~ [f#3,g#3] ~ [f#3,g#3] [d#3,f#3,g#3] g#3 ~", // F# D#m7 G#7 F#sus2 G#7
AR: "[f3,g#3,c#4] ~ f3 [f3,g#3] [f3,c4] ~ [f3,g#3,c4,c#4] ~ f3 ~ [f3,g#3,c4,c#4] ~ [f3,g#3,c4,c#4] ~ [f3,g#3,c4] [f3,c4]", // C# Fm F5 C#maj7 Fm F5
AS: "[f3,g#3,c4] ~ [f3,g#3,c4,c#4] ~ [f3,c4] ~ [f3,c4,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] [e3,f#3,a3] [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~", // Fm C#maj7 F5 C#maj7 F#m7
AT: "[e3,f#3,a3,c#4] [e3,a3] [e3,f#3,a3,c#4] ~ [f#3,a3,b3,d#4] ~ [f#3,a3,b3,d#4]!3 ~ [e3,f#3,a3,b3,d#4] ~ [a3,d#4] ~ [e3,a3,d#4] ~", // F#m7 A5 F#m7 B7 Adim A
AU: "[e3,a3,c#4,e4] ~ [e3,a3,e4] [e3,g3,a3,e4] [e3,a3,b3,e4] ~ [e3,a3,b3,e4] ~ [e3,a3,b3,e4] ~ [e3,a3,b3,e4] ~ [e3,g3,a3,b3,e4] ~ [e3,a3,b3,e4]!2", // A A5 A7 Esus4 Em Esus4
AV: "[[e3,a3,b3,e4] ~ [e3,g3,a3,b3,e4] ~ [e3,a3,b3,e4] ~ [e3,a3,b3,e4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3] ~ [e3,a3,c#4]@4 ~@2 [e3,f#3,a3,c#4]@2 [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4]@3 ~ [e3,f#3,a3,c#4] ~, ~@14 g#3 ~@17]/2", // Esus4 Em Esus4 Amaj7 A F#m7
AW: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4]@5 ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~", // D Esus4
AX: "[[e3,f#3,a3,b3] ~ [e3,a3,b3]@3 ~ [e3,a3,b3]@2 [e3,f#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4]@4 [e3,g#3,a3,c#4] ~ [e3,f#3,a3,c#4]@2 [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4]@3 ~ [e3,f#3,a3,c#4] ~]/2", // Esus4 F#m7 Amaj7 F#m7
AY: "[f#3,a3,d4]@2 [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4]@4 [f#3,a3,d4] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~", // D Esus4
AZ: "[e3,f#3,a3,b3] ~ [e3,a3,b3]@3 ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,c#4]@2 [e3,f#3,a3] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4]@2, ~@2 f#3 ~@13", // Esus4 F#m7
BA: "~@2 [e3,f#3,a3] ~ [f#3,a3,b3,d#4] ~ [f#3,a3,b3,d#4] ~ [f#3,a3,b3,d#4] ~ [f#3,a3,b3,d#4]@3 ~ [f#3,a3,b3,d#4] ~", // F#m7 B7
BB: "[e3,g#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4]@4 ~@2 [f#3,a3,b3,d#4]@2 [f#3,a3,d#4] ~", // Amaj7 F#m7 B7 D#dim
BC: "[f#3,a3,d#4] ~ [f#3,a3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~", // D#dim B7 B Amaj7
BD: "[e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,f#3,a3,c#4]@4 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~", // Amaj7 F#m7 A
BE: "[f#3,g#3,b3,d#4]@3 ~ [f#3,g#3,b3,d#4] ~ [f#3,g#3,b3,d#4]@2 [f#3,d#4] ~ [f#3,g#3,d#4] ~ [f3,g#3,b3,c#4]@3 ~", // G#m7 D#m G#7 C#7
BF: "[f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4] ~@3 [f3,g#3,b3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [e3,g#3,c#4] ~", // C#7 D C#m
BG: "[e3,g#3,c#4] ~ [e3,g#3,a3,c#4] ~ [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3] ~ [e3,g#3,c#4] ~", // C#m Amaj7 Bm C#m
BH: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~", // D C#m D
BI: "[f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [e3,g#3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [e3,g#3,c#4] ~", // D C#m D C#m
BJ: "[e3,g#3,c#4] ~ [e3,g#3,a3,c#4] f3 [d3,f#3,a3,b3] ~ [d3,f#3,a3,b3] ~ [d3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,g#3,a3] ~", // C#m Amaj7 Bm7 Esus4 Amaj7
BK: "[e3,g#3,a3,c#4] ~ [e3,g#3,a3] ~ [e3,g#3,a3] ~ [e3,g#3,a3,c#4] ~@3 [e3,g#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~", // Amaj7 F#m7
BL: "[e3,f#3,a3,c#4] ~ [e3,f#3,a3,c#4] ~@3 [e3,f#3,a3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4]@2", // F#m7 D
BM: "~@2 [f#3,a3,d4] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3] ~ [e3,a3,b3] ~ [e3,a3,b3] ~ [e3,a3,b3] ~", // D Esus4 F#m7 Esus4
BN: "[e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,d4] ~ [f#3,a3,d4] ~ [a3,d4] ~ [e3,g#3,c#4] ~", // C#m D D5 C#m
BO: "[e3,f#3,a3,d4] ~ [e3,f#3,a3,b3] ~ [e3,f#3,a3,b3] ~ [e3,a3,b3] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4] ~ [e3,g#3,a3,c#4]@2", // D Esus4 Amaj7
BP: "~@4 [f#3,a3,d4] ~ [f#3,a3,d4] ~ [f#3,a3,d4] ~ [e3,a3,d4] ~ [e3,a3,d4] ~ [e3,a3,d4] ~", // D Dsus2
BQ: "[e3,g#3]@15 ~, a3 ~@15", // E
})).s("gm_electric_guitar_jazz").gain(0.15).pan(0.3)
// chords · electric guitar jazz · "guitar" · soft notes
const electric_guitar_jazz_2 = note(`<
~ A B ~@3 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 AS
~@5 S AT AU AV ~ AW ~@4 AU AX ~ A AY ~ AZ ~@3 BA
>`.pickRestart({
A: "~@8 b3 ~@7", B: "~@14 [f#3,b3] ~", C: "~@2 c#4 ~@7 c#4 ~@3 [e3,f#3,c#4] ~", D: "[e3,f#3] ~@3 c#4 ~@11",
E: "~@2 e3 ~@3 b3 ~ e3 ~@5 f#3 ~", F: "~@2 [e3,c#4] ~@5 e3 ~@5 [e3,c#4] ~", G: "~@4 [e3,f#3,c#4] ~ c#4 ~@7 a3 ~",
H: "~@2 [f#3,a3] ~@3 b3 ~ e3 ~@7", I: "~@2 c#4 ~ e3 ~ e3 ~ e3 ~ c#4 ~@3 [f#3,a3,b3] ~",
J: "~@2 b3 ~ [a3,b3] ~ a3 ~@5 c#4 ~ f#3 ~", K: "[e3,c#4] ~ c#4 ~@3 b3 ~@3 [a3,b3] ~ b3 ~ [f#3,a3,b3] ~",
L: "~@2 c#4 ~@5 c#4 ~@5 c#4 ~", M: "~@4 c#4 ~@5 d#3 ~@3 d#3 ~",
N: "[d#3,c#4] ~ [d#3,c#4] ~@3 c#4 ~ [g#3,c#4] ~ c#4 ~ c#4 ~ c#4 ~", O: "~@4 [d3,f#3] ~@3 c#4 ~ [e3,c#4] ~@5",
P: "[d3,a3] ~@9 c#4 ~@5", Q: "[e3,c#4] ~ g#3 ~ g#3 ~ [a3,c#4] ~@5 [g#3,c#4] ~ [e3,c#4] ~", R: "~@10 f3 ~@5",
S: "~@10 c#4 ~@5", T: "~@2 c#4 ~@3 [e3,f#3,c#4] ~ [e3,f#3] ~@3 c#4 ~@3", U: "~@10 e3 ~@3 b3 ~",
V: "e3 ~@5 f#3 ~@3 [e3,c#4] ~@5", W: "e3 ~@5 [e3,c#4] ~@5 [e3,f#3,c#4] ~ c#4 ~", X: "~@6 a3 ~@3 [f#3,a3] ~@3 b3 ~",
Y: "e3 ~@9 c#4 ~ e3 ~ e3 ~", Z: "e3 ~ c#4 ~@3 [f#3,a3,b3] ~@3 b3 ~ [a3,b3] ~ a3 ~",
AA: "~@4 c#4 ~ f#3 ~ [e3,c#4] ~ c#4 ~@3 b3 ~", AB: "~@2 [a3,b3] ~ b3 ~ [f#3,a3,b3] ~@3 c#4 ~@5",
AC: "c#4 ~@5 c#4 ~@5 c#4 ~@3", AD: "~@2 d#3 ~@3 d#3 ~ [d#3,c#4] ~ [d#3,c#4] ~@3 c#4 ~",
AE: "[g#3,c#4] ~ c#4 ~ c#4 ~ c#4 ~@5 [d3,f#3] ~@3", AF: "c#4 ~ [e3,c#4] ~@5 [d3,a3] ~@7", AG: "c#4 ~ c#4 ~@13",
AH: "[g#3,b3] ~ [f#3,b3] ~ c#4 ~ [g#3,b3,c#4] ~ c#4 ~@3 [b3,c#4] ~ c#4 ~", // G#m B5 C#7 Bsus2
AI: "~@2 [e3,c#4] ~ f#3 ~@3 c#4 ~@5 [e3,c#4] ~", AJ: "~@6 f#3 ~@9", AK: "~@6 e3 ~@5 e3 ~@3",
AL: "~@2 [e3,c#4] ~@11 [g#3,c#4] c#4", AM: "c#4 ~@3 c#4 ~ e3 ~@3 d#3 ~ d#3 ~@3",
AN: "d#3 ~@5 [f#3,c4] ~ d#3 ~ [d#3,c4] ~ [d#3,c4] c4!2 ~", // F#dim Cm
AO: "~@2 [g#3,c4,c#4] [c4,c#4] [g#3,c#4] ~@3 [g#3,c4,c#4] ~@5 c#4 [g#3,c#4]", // C#maj7 C#5 C#maj7 C#5
AP: "c#4 ~@3 [g#3,c#4] ~ g#3 ~@4 c#4 ~@4", AQ: "~ c#4 ~@10 [e3,f#3,b3] ~ b3 ~", AR: "~@2 [b3,c#4] b3 ~@12",
AS: "~@12 c#4 ~@3", AT: "~@2 c#4 ~@13", AU: "~@14 b3 ~", AV: "b3 ~@5 a3 ~@9", AW: "~@8 [g#3,b3] ~ b3 ~@5",
AX: "~@2 c#4 ~ c#4 ~@11", AY: "~@10 a3 ~@5", AZ: "~@8 a3 ~@3 f#3 ~@3", BA: "c#4@15 ~",
})).s("gm_electric_guitar_jazz").gain(0.05).pan(0.3)
// chords · epiano2 · "e piano"
const epiano2_2 = note(`<
~@6 A@2 B A@2 C D@2 E F@3 G@2 H I@2 J K@2 J L@2 M N@3 O@3 P Q@2 R S T U@2 V W@2 X Y Z J AA@2 J L@2 M AB@3 AC@3 AD@3
AE@2 AF AG@3 AH@2 AI AJ
>`.pickRestart({
A: "[[b3,c#4,e4,g#4]@4 [a3,e4] c#4 [f#3,a3,c#4,e4] [f#3,a3,c#4,f#4]@4 [a3,c#4] [d3,f#3,a3,c#4]@4]/2", // C#m7 A5 F#m7 F#m A Dmaj7
B: "[f#3,a3] [d#3,f#3] [f#3,a3,c#4]@3 [f#3,a3,d4]@3", C: "[f#3,a3] [d3,f#3] [d3,f#3,a3]@3 ~ [f#3,a3] [g#3,b3]",
D: "[[a3,c#4]@4 f#4 c#4 [f#3,b3]@4 [f#3,a3] [g#3,b3] [a3,c#4]@4]/2", E: "f#4 c#4 [f#3,b3]@5 a3",
F: "[[a3,c#4] [c#4,e4] ~ [a3,c#4,f#4] [e4,a4,c#5]@16 [c#4,a4]@2 [e4,c#5]@2 c#5@2 a4@2 b4@8 b4@8 [f#4,a4]@2 [g#4,b4]@2, ~@2 [d#4,f#4] [c#4,f4]]/3", // A C#m F#m A F#m C#m F#m G#m …
G: "[[c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@3 [a3,b3,d4,f#4]@2 [c#4,e4,a4] [c#4,e4,a4]@4]/2", // F#m E D Bm7 A
H: "[b4,c#5,g#5] [a4,c#5,a5] [g#4,c#5,e5,g#5] [e4,a4,c#5,e5]@3 [f#4,a4,c#5] [e4,a4,c#5,e5]", // C#7 A C#m A F#m A
I: "[[d4,f#4,a4,c#5]@2 [b3,d4,f#4,a4]@3 [b3,d4,a4] [b3,d4,f#4,a4]@3 [a3,d4,f#4]@2 [b3,d4,f#4,a4] [b3,c#4,e4,g#4]@4]/2", // Dmaj7 Bm7 D Bm7 C#m7
J: "[a3,e4] c#4 [f#3,a3,c#4,e4] [f#3,a3,c#4,f#4]@4 [a3,c#4]", // A5 F#m7 F#m A
K: "[[d3,f#3,a3,c#4]@4 [f#3,a3] [d#3,f#3] [f#3,a3,c#4]@3 [f#3,a3,d4]@3 [b3,c#4,e4,g#4]@4]/2", // Dmaj7 F#m D#m F#m D C#m7
L: "[[d3,f#3,a3,c#4]@4 [f#3,a3] [d3,f#3] [d3,f#3,a3]@3 ~ [f#3,a3] [g#3,b3] [a3,c#4]@4]/2", // Dmaj7 F#m D F#m G#m A
M: "f#4 c#4 [f#3,b3]@4 [f#3,a3] [g#3,b3]", // B5 F#m G#m
N: "[[a3,c#4]@8 f#4@2 c#4@2 [f#3,b3]@10 a3@2 [a3,c#4] [c#4,e4] ~ [a3,c#4,f#4] [e4,a4,c#5]@16 [c#4,a4]@2 [e4,c#5]@2]/3", // A B5 A C#m F#m A F#m C#m
O: "[c#5 a4 b4@4 b4@4 [f#4,a4] [g#4,b4] [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@3 [a3,b3,d4,f#4]@2 [c#4,e4,a4], [d#4,f#4] [c#4,f4] ~@2]/3", // F#m G#m F#m E D Bm7 A D#m …
P: "[c#4,e4,a4]@4 [c#4,e4,g#4,b4] [c#4,e4,f#4,a4]@2 [c#4,e4,g#4,b4]", // A C#m7 F#m7 C#m7
Q: "[[c#4,e4,f#4,a4] [a3,c#4,f#4] [g#3,a3,c#4,e4] [f#3,a3,c#4] ~@2 [f#3,g#3,c#4] [f#3,g#3,c#4]@2 [f#3,g#3,c#4] [f3,g#3,d4] c#4 [f3,g#3,c#4]@3 c#4]/2", // F#m7 F#m Amaj7 F#m F#sus2 Ddim C#
R: "[g#3,b3]@2 [f#3,a3] [f#3,a3]@2 f#3 [e3,a3]@2", S: "[e3,b3]@4 ~@2 [a3,b3,e4]!2",
T: "e4 c#4 f#4 e4@3 e4 f#4, ~ [g#3,d4]@3", U: "[[e3,g#3,a3,c#4]@11 g#4 [c#4,d#4,g#4]@4]/2",
V: "~ g#4 [c4,d#4,a4]@2 [c4,d#4,g#4]@3 [g#3,c4,d#4,f#4]", // Adim G# G#7
W: "[[g#3,c4,f4]@2 d#4 [g#3,c4,f4]@2 d#4 [g#3,c4,f4] [c4,c#4,f4,g#4]@4 g#4 [c#4,e4,a4,b4]@2 [c#4,e4,a4,b4]@2]/2", // Fm C#maj7 A
X: "[c#4,e4,a4] [d#4,a4,c#5] [d#4,f#4,b4] [d#4,f#4,a4]", Y: "[f#4,a4,c#5,e5]@3 ~", Z: "~ [b3,c#4,e4,g#4]",
AA: "[[d3,f#3,a3,c#4]@4 [f#3,a3] [d3,f#3] [d3,f#3,a3]@3 [d3,f#3,b3]@3 [b3,c#4,e4,g#4]@4]/2", // Dmaj7 F#m D Bm C#m7
AB: "[[a3,c#4]@8 f#4@2 c#4@2 [f#3,b3]@8 ~@2 b3@2 [a3,c#4] [c#4,e4] ~ [a3,c#4,f#4] [e4,a4,c#5]@16 [c#4,a4]@2 [e4,c#5]@2]/3", // A B5 A C#m F#m A F#m C#m
AC: "[c#5 a4 b4@8 [f#4,a4] [g#4,b4] [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@4 [b3,d4,f#4,a4] [c#4,e4,g#4,b4]]/3", // F#m G#m F#m E D Bm7 C#m7
AD: "[[c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@4 [b3,d4,f#4,a4] [c#4,e4,g#4,b4] [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@3 [a3,d4,f#4] [f#3,a3,d4,e4]@2]/3", // F#m E D Bm7 C#m7 F#m E D
AE: "[[b3,c#4,e4,g#4]@4 [b3,c#4,e4] [e3,g#3,a3,c#4] [f#3,a3,c#4,e4]@4 [c#4,e4,f#4] [c#4,e4,f#4,a4] [d4,f#4,a4,c#5]@4, e5@13 ~@3]/2", // C#m7 Amaj7 F#m7 F#7 F#m7 Dmaj7
AF: "[b3,d4,f#4,a4] [a3,b3,d4,f#4] [b3,d4,f#4,a4]@3 [b3,d4,f#4,a4,b4]@3", // Bm7
AG: "[[c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@4 [b3,d4,f#4,a4] [c#4,e4,g#4,b4] [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@4 [b3,d4,f#4,a4] [c#4,e4,g#4,b4]]/3", // F#m E D Bm7 C#m7 F#m E D …
AH: "[[c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] [b3,e4,g#4,b4]@2 [b3,e4,g#4,b4] [a3,d4,f#4,a4]@3 [a3,d4,f#4,a4] [f#3,a3,d4,e4]@2 [c#4,e4,a4]@4]/2", // F#m E D A
AI: "[a3,c#4,f#4] [a3,c#4,e4] [a3,b3,d4,f#4] [b3,d4,f#4,a4]@3 [a3,b3,d4,f#4]@2", AJ: "[a3,c#4,e4,a4]@15 ~",
})).s("gm_epiano2").gain(0.48).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B
C A B C A B C A B C A B C A B C D
>`.pickRestart({
A: "x ~@2 x", B: "~ x", C: "~ x ~@2", D: "x",
})).gain(0.16)
// drums · rim
const rim = s("rim").struct(`<
~@6 A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C A B C
A B C A B C A B C A B C ~
>`.pickRestart({
A: "~@3 x ~@4", B: "~ x ~@5 x", C: "~@5 x ~@2",
})).gain(0.32)
// … 4 more lines
More by Whitney Houston
Greatest Love of AllA major · 64 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 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.