0:00/0:00
// I Wanna Dance With Somebody (Who Loves Me) — Whitney Houston
// 118 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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 · pad new age · "FANTASIA"
const pad_new_age = note(`<
~@6 A@7 B C D@3 ~ E@2 ~@2 F G ~@2 H I@2 J K@7 L M@7 N O P@3 ~ E@2 ~@2 F G ~@2 H I@2 J Q@7 L M@7 R ~@7 S T ~ U F V@2 W
X@7 Y Z@7 AA ~@8 AB@7 AC AD@7 AC AE@7 AF@2 AG
>`.pickRestart({
A: "[[db5,gb5,ab5,bb5]@27 ~ [db5,f5,ab5]@2 [db5,gb5,ab5,bb5]@27 ~@3 [db5,f5,ab5]@2 [eb5,gb5,ab5,bb5]@27 ~@3 [f5,ab5]@2 [b4,db5,eb5,gb5]@17 ~]/7", // Gb Db Gb Db Ebm Fm B
B: "[db5,gb5,b5]@4 [db5,gb5,bb5]@4 [db5,gb5,ab5]@4 [db5,gb5]@3 ~", C: "[db5,gb5,ab5,bb5]",
D: "[[db5,gb5,bb5]@2 ab5@2 [db5,gb5] ~ [db5,ab5]@2 ~@4 [db5,gb5,ab5,bb5]@2 [db5,f5,ab5]@22 ~@12, ~@6 [gb5,bb5] ~@41]/3", // Gb Gb5 Db5 Gb Db Gb
E: "[~ bb5 gb5 eb5 b4 eb5 bb5 ab5@5 ~@4]/2", F: "~@4 [eb5,gb5] [f5,ab5] [gb5,bb5] ~", G: "[ab5,b5] ~, bb5 ~@15",
H: "~@4 [eb5,gb5] f5 [gb5,bb5] ~, ~@10 ab5 ~@5", I: "[[ab5,b5]@5 ~ [gb5,bb5]@2 ~@2 [f5,ab5]@13 ~@9]/2",
J: "[b4,b5] [bb4,bb5] [b4,b5] [db5,db6] ~@4", // B Bb B Db
K: "[[db5,gb5,bb5]@26 ~@2 [db5,f5,ab5] ~ [db5,gb5,bb5]@28 ~ db5 [f5,ab5] ~ [eb5,gb5,bb5]@28 ~@2 [f5,ab5] ~ [b4,eb5,gb5]@16 ~@2]/7", // Gb Db Gb Fm Ebm Fm B
L: "gb5@2 ab5@2 bb5@2 ab5@6 gb5 ~@3",
M: "[[db5,gb5,bb5]@27 ~ [db5,f5,ab5] ~ [db5,gb5,bb5]@27 ~@3 [f5,ab5] ~ [eb5,gb5,bb5]@27 ~@3 [f5,ab5]@2 [b4,eb5,gb5]@17 ~]/7", // Gb Db Gb Fm Ebm Fm B
N: "gb5@2 ab5@2 bb5 ~ ab5@6 gb5@2 ~@2", O: "[gb5,bb5]@13 ~@3, db5@11 ~@5",
P: "[bb5@2 ab5@2 gb5 ~ gb5 ~@5 [db5,gb5,ab5,bb5]@2 [db5,f5,ab5]@22 ~@12]/3", // Gb Db
Q: "[[db5,gb5,bb5]@25 ~@3 [db5,f5,ab5] ~ [db5,gb5,bb5]@28 ~ db5 [f5,ab5] ~ [eb5,gb5,bb5]@28 ~@2 [f5,ab5] ~ [b4,eb5,gb5]@16 ~@2]/7", // Gb Db Gb Fm Ebm Fm B
R: "[gb4,gb5]@2 [ab4,ab5]@2 [bb4,bb5] ~ [ab4,ab5]@6 [gb4,gb5]@2 ~@2", S: "~@8 [db5,f5]@3 [eb5,gb5]@3 [f5,ab5]@2",
T: "[ab5,b5]@7 ~@9", U: "[db5,gb5,bb5]@3 [db5,gb5,bb5] ~@12", V: "[[ab5,b5]@5 ~ [gb5,bb5]@2 ~@2 [f5,ab5]@15 ~@7]/2",
W: "b5 bb5 b5 db6 ~@4",
X: "[[eb5,ab5,c6]@26 ~@2 [eb5,g5,bb5] ~ [eb5,ab5,c6]@28 ~ eb5 [g5,bb5] ~ [f5,ab5,c6]@28 ~@2 [g5,bb5] ~ [db5,f5,ab5]@16 ~@2]/7", // Ab Eb Ab Gm Fm Gm Db
Y: "ab5@2 bb5@2 c6@2 bb5@6 ab5 ~@3",
Z: "[[eb5,ab5,c6]@27 ~ [eb5,g5,bb5] ~ [eb5,ab5,c6]@27 ~@3 [g5,bb5] ~ [f5,ab5,c6]@27 ~@3 [g5,bb5]@2 [db5,f5,ab5]@17 ~]/7", // Ab Eb Ab Gm Fm Gm Db
AA: "[ab4,ab5]@2 [bb4,bb5]@2 [c5,c6] ~ [bb4,bb5]@6 [ab4,ab5]@2 ~@2", // Ab Bb C Bb Ab
AB: "[[eb5,ab5,c6]@26 ~@2 [eb5,g5,bb5]@2 [eb5,ab5,c6]@28 ~@2 [eb5,g5,bb5]@2 [eb5,ab5,c6]@28 ~@2 [g5,bb5]@2 [db5,f5,ab5]@15 ~@3]/7", // Ab Eb Ab Eb Ab Gm Db
AC: "ab5 bb5 c6 bb5@3 ab5 ~",
AD: "[[eb5,ab5,c6]@27 ~ [eb5,g5,bb5] ~ [eb5,ab5,c6]@28 ~@2 [eb5,g5,bb5]@2 [eb5,ab5,c6]@28 ~@2 [g5,bb5]@2 [db5,f5,ab5]@16 ~@2]/7", // Ab Eb Ab Eb Ab Gm Db
AE: "[[eb5,ab5,c6]@27 ~ [eb5,g5,bb5]@2 [eb5,ab5,c6]@28 ~@2 [eb5,g5,bb5]@2 [eb5,ab5,c6]@27 ~@3 [g5,bb5]@2 [db5,f5,ab5]@16 ~@2]/7", // Ab Eb Ab Eb Ab Gm Db
AF: "[ab5@2 bb5@2 c6@2 bb5@6 ab5@2 [eb5,ab5,c6]@15 ~@3]/2", AG: "eb5@3 ~@13",
})).s("gm_pad_new_age").gain(0.2)
// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
~@2 A B A C D E F G H I J K L M N O P Q N R S T U V W X Y@2 Z AA AB L AC AD AE AF AG AA AH L AI AD AJ AK AL AM AN N AO
AP AQ N AR AS AT AU AV W AW AX@2 AY AZ AB L BA H BB BC BD BE BF AZ BG BH BI BJ BK AD BL BM BN BO BP BQ BR BS BT W BU
BV@2 BW BX BY BZ CA CB CC CD CE CF CG BZ CH CI CJ CK CL CM ~ CN ~ CO ~ CO ~ CP CQ CP CR CS CT CU CV CW CX CY CZ CS DA
DB DC CP DD CP DE CS DA DB DC CP ~
>`.pickRestart({
A: "[gb1,gb2]@2 ~ [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@7 [eb1,eb2] ~", B: "[gb1,gb2]@5 ~ [gb1,gb2] ~@9",
C: "[gb1,gb2]@6 [gb1,gb2] ~@5 [db2,db3]@4", // Gb Db
D: "[gb1,gb2]@2 ~ [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@5 [eb1,eb2]@2 [gb1,gb2] ~", // Gb Eb Gb Eb Gb
E: "[gb1,gb2]@2 ~ [gb1,gb2] [gb1,gb2]@2 [gb1,gb2] ~@5 [eb1,eb2]@2 ~@2", // Gb Eb
F: "[gb1,gb2]@3 [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@5 [eb1,eb2]@2 [gb1,gb2] ~", // Gb Eb Gb Eb Gb
G: "[gb1,gb2]@3 [gb1,gb2]!2 ~@3 [gb1,gb2]@4 [f1,f2]@2 [eb1,eb2] ~", // Gb F Eb
H: "[eb1,eb2]@3 [eb1,eb2] [db1,db2]@2 [eb1,eb2] ~@5 [db1,db2]@2 ~@2", // Eb Db Eb Db
I: "[eb1,eb2]@2 ~ [eb1,eb2] [eb1,eb2]@2 ~@2 [eb1,eb2]@4 [db1,db2]@2 [bb0,bb1] ~", // Eb Db Bb
J: "[b1,b2]@2 ~ [b1,b2] [ab1,ab2]@2 [b1,b2] ~@7 [b1,b2]!2", // B Ab B
K: "[ab1,ab2]@4 [bb1,bb2]@3 [ab1,ab2] [b1,b2]@3 [ab1,ab2] [db2,db3]@3 ~", // Ab Bb Ab B Ab Db
L: "[gb1,gb2]@3 [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@5 [eb1,eb2]@2 ~@2", // Gb Eb Gb Eb
M: "[gb1,gb2] [eb1,eb2] [db1,db2] [gb1,gb2] ~@4", N: "[db1,db2]@2 ~ [db1,db2] [bb0,bb1]@2 [db1,db2] ~@7 [bb0,bb1] ~",
O: "[db1,db2]@3 [db1,db2] [db1,db2]@2 [db1,db2] ~@5 [db1,db2] ~ [bb0,bb1] [db1,db2]", // Db Bb Db
P: "[eb1,eb2]@2 ~ [eb1,eb2]!2 ~ [eb1,eb2] ~@7 [db1,db2] ~", // Eb Db
Q: "[eb1,eb2]@3 [eb1,eb2]!2 ~@3 [ab0,ab1]@4 [bb0,bb1]@3 ~", // Eb Ab Bb
R: "[db1,db2]@2 ~ [db1,db2] [db1,db2]@2 [db1,db2] ~@5 [db1,db2] ~ [bb0,bb1] [db1,db2]", // Db Bb Db
S: "[eb1,eb2]@3 [eb1,eb2] [eb1,eb2]@2 [eb1,eb2] ~@7 [db1,db2] ~", // Eb Db
T: "[eb1,eb2]@2 ~ [eb1,eb2]@3 [db1,db2] ~ [eb1,eb2]@4 [bb0,bb1]@3 ~", // Eb Db Eb Bb
U: "[ab0,ab1]@2 ~@5 [ab0,ab1] [ab0,ab1]@2 [bb0,bb1]@2 [b0,b1]@2 [db1,db2]@2", // Ab Bb B Db
V: "~@6 [bb0,bb1] ~ [db1,db2]@3 [bb0,bb1] [db1,db2] ~ [db1,db2] [b0,b1]", // Bb Db Bb Db B
W: "[bb0,bb1]@2 ~@5 [bb0,bb1] [bb0,bb1]@2 [ab0,ab1]@2 [bb0,bb1]@2 [b0,b1]@2", // Bb Ab Bb B
X: "~@6 [b0,b1] ~ [b0,b1]@4 [bb0,bb1]@3 ~", Y: "[[ab0,ab1]@6 [ab0,bb0,ab1,bb1] ~@3 [eb1,eb2]@19 ~@3]/2",
Z: "[b0,b1]@2 [bb0,bb1]@2 [b0,b1]@2 [db1,db2]@2 ~@3 [db2,db3]@5", // B Bb B Db
AA: "[gb1,gb2]@3 [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@5 [eb1,eb2] ~@3", // Gb Eb Gb Eb
AB: "[gb1,gb2]@3 [gb1,gb2] [gb1,gb2]@2 [gb1,gb2] ~@5 [eb1,eb2] ~@3", // Gb Eb
AC: "[gb1,gb2]@3 [gb1,gb2] [gb1,gb2]@2 ~@2 [gb1,gb2]@4 [f1,f2]@2 ~@2", // Gb F
AD: "[eb1,eb2]@2 ~ [eb1,eb2] [db1,db2]@2 [eb1,eb2] ~@5 [db1,db2]@2 ~@2", // Eb Db Eb Db
AE: "[eb1,eb2]@2 ~ [eb1,eb2]!2 ~ [eb1,eb2] ~ [eb1,eb2]@3 [eb1,eb2] [bb1,bb2]@3 ~", // Eb Bb
AF: "[b1,b2]@2 ~ [b1,b2]!2 ~ [b1,b2]@2 ~@4 [b1,b2]@2 ~@2", // B
AG: "[b1,b2]@3 [b1,b2]!2 ~ [b1,b2] ~ [b1,b2]@4 [db2,db3]@3 ~", // B Db
AH: "[gb1,gb2]@2 ~ [gb1,gb2] [gb1,gb2]@2 [gb1,gb2] ~@5 [eb1,eb2]@3 ~", // Gb Eb
AI: "[gb1,gb2]@2 ~ [gb1,gb2] [gb1,gb2]@2 [gb1,gb2] ~ [gb1,gb2]@4 [f1,f2]@2 ~@2", // Gb F
AJ: "[eb1,eb2]@2 ~ [eb1,eb2] [eb1,eb2]@2 [eb1,eb2] ~ [eb1,eb2]@2 ~ [eb1,eb2] [bb1,bb2]@3 [bb1,bb2]", // Eb Bb
AK: "[b1,b2]@2 ~ [b1,b2] [b1,b2]@2 [b1,b2] ~@7 [b1,b2] [bb1,bb2]", // B Bb
AL: "[ab1,ab2]@3 ~ [bb1,bb2]@3 [ab1,ab2] [b1,b2]@3 ~ [db2,db3]@3 ~", // Ab Bb Ab B Db
AM: "[gb1,gb2]@2 ~ [gb1,gb2] [eb1,eb2]@2 [gb1,gb2]@2 ~@4 [eb1,eb2] ~@3", // Gb Eb Gb Eb
AN: "[gb1,gb2]@2 [eb1,eb2]@2 [db1,db2]@2 [gb1,gb2] ~@9", // Gb Eb Db Gb
AO: "[db1,db2]@3 [db1,db2] [db1,db2]@2 [db1,db2] ~@7 [db1,db2]!2", // Db
AP: "[eb1,eb2]@3 [eb1,eb2]!2 ~ [eb1,eb2] ~@7 [db1,db2] ~", // Eb Db
AQ: "[eb1,eb2]@2 ~ [eb1,eb2]!2 ~ [eb1,eb2] [db1,db2] [ab0,ab1]@4 [bb0,bb1]@3 ~", // Eb Db Ab Bb
AR: "[db1,db2]@2 ~ [db1,db2] [db1,db2]@2 [db1,db2] ~@5 [db1,db2] ~@3", // Db
AS: "[eb1,eb2]@2 ~ [eb1,eb2] [eb1,eb2]@2 [eb1,eb2] ~@7 [db1,db2] ~", // Eb Db
AT: "[eb1,eb2]@2 ~ [eb1,eb2] [eb1,eb2]@2 [db1,db2] ~ [eb1,eb2]@4 [bb0,bb1]@3 ~", // Eb Db Eb Bb
AU: "[ab0,ab1] ~@3 [ab0,ab1] [bb0,bb1] [b0,b1] [db1,db2]", AV: "~@8 [db1,db2]@4 [b0,b1]@3 [b0,b1]",
AW: "~@2 [b0,b1] [bb0,bb1]", AX: "[[ab0,ab1]@3 [bb0,bb1] ~ [eb1,eb2]@9 ~@2]/2",
AY: "[b0,b1] [bb0,bb1] [b0,b1] [db1,db2] ~@2 [db2,db3]@2", // B Bb B Db
AZ: "[gb1,gb2]@2 ~ [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@5 [eb1,eb2]@2 ~@2", // Gb Eb Gb Eb
BA: "[gb1,gb2]@3 [gb1,gb2]!2 ~@3 [gb1,gb2]@4 [f1,f2]@3 ~", // Gb F
BB: "[eb1,eb2]@2 ~ [eb1,eb2]!2 ~ [eb1,eb2] ~@5 [bb1,bb2]@2 ~@2", // Eb Bb
BC: "[b1,b2]@3 [b1,b2] [b1,b2]@2 [b1,b2] ~@7 [b1,b2] ~", BD: "[b1,b2]@3 [b1,b2]@2 ~ [b1,b2] ~ [b0,b1]@4 [db1,db2]@4",
BE: "[gb1,gb2]@2 ~ [gb1,gb2] [eb1,eb2]@2 [gb1,gb2] ~@5 [eb1,eb2] ~@3", // Gb Eb Gb Eb
BF: "[gb1,gb2]@3 [gb1,gb2]!2 ~ [gb1,gb2] ~@5 [eb1,eb2]@2 ~@2", // Gb Eb
BG: "[gb1,gb2]@2 ~ [gb1,gb2] [gb1,gb2]@2 [gb1,gb2] ~ [gb1,gb2]@4 [f1,f2]@3 ~", // Gb F
BH: "[eb1,eb2]@2 ~ [eb1,eb2] [db1,db2]@2 [eb1,eb2] ~@5 [db1,db2] ~@3", // Eb Db Eb Db
BI: "[eb1,eb2]@3 [eb1,eb2]!2 ~ [eb1,eb2] ~ [eb1,eb2]@3 [eb1,eb2] [bb1,bb2]@2 ~ [bb1,bb2]", // Eb Bb
BJ: "[b1,b2]@3 [b1,b2]!2 ~ [b1,b2] ~@7 [b1,b2] [bb1,bb2]", // B Bb
BK: "[ab1,ab2]@2 ~ [ab1,ab2] [bb1,bb2]@3 [ab1,ab2] [b1,b2]@4 [db2,db3]@4", // Ab Bb Ab B Db
BL: "[eb1,eb2]@3 [eb1,eb2]!2 ~ [eb1,eb2] ~@5 [db1,db2] ~@3", // Eb Db
BM: "[db1,db2]@2 ~ [db1,db2] [bb0,bb1] ~ [db1,db2]@2 ~@4 [eb1,eb2]@2 ~@2", // Db Bb Db Eb
BN: "[db1,db2]@3 [db1,db2] [db1,db2]@2 [db1,db2] ~ [ab0,ab1]@4 [bb0,bb1]@3 ~", // Db Ab Bb
BO: "[eb1,eb2]@2 ~ [eb1,eb2] [db1,db2]@2 [eb1,eb2]@2 [eb1,eb2]@6 ~@2", // Eb Db Eb
BP: "[eb1,eb2]@3 [eb1,eb2]!2 ~@9 [db1,db2] [eb1,eb2]", BQ: "[db1,db2]@3 [db1,db2]!2 ~ [db1,db2] ~@7 [bb0,bb1] ~",
BR: "[db1,db2]@3 [db1,db2] [db1,db2]@2 [bb0,bb1] ~ [db1,db2]@3 [b0,b1]@3 [bb0,bb1]@2", // Db Bb Db B Bb
BS: "[ab0,ab1]@3 ~@4 [ab0,ab1] [ab0,ab1]@2 [bb0,bb1]@2 [b0,b1]@2 [db1,db2]@2", // Ab Bb B Db
BT: "~@6 [db1,db2] [bb0,bb1] [db1,db2]@3 ~ [b0,b1]@3 [ab0,ab1]", BU: "~@6 [b0,b1] ~ [b0,b1]@4 [bb0,bb1]@3 [bb0,bb1]",
BV: "[[ab0,ab1]@5 ~ [bb0,bb1] ~@3 [eb1,eb2]@18 ~@4]/2", // Ab Bb Eb
BW: "[b0,b1]@2 [bb0,bb1]@2 [b0,b1]@2 [db1,db2] ~@5 [bb1,bb2]@4", // B Bb B Db Bb
BX: "[ab1,ab2]@2 ~ [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~@5 [f1,f2] ~@3", // Ab F Ab F
BY: "[ab1,ab2]@3 [ab1,ab2] [ab1,ab2]@2 [ab1,ab2] ~@5 [f1,f2]@3 ~", // Ab F
BZ: "[ab1,ab2]@3 [ab1,ab2] [f1,f2]@2 [ab1,ab2]@2 ~@4 [f1,f2]@2 ~@2", // Ab F Ab F
CA: "[ab1,ab2]@2 ~ [ab1,ab2] [ab1,ab2]@2 [ab1,ab2] ~ [ab1,ab2]@4 [g1,g2]@3 [g1,g2]", // Ab G
CB: "[f1,f2]@3 [f1,f2] [eb1,eb2]@2 [f1,f2] ~@5 [eb1,eb2]@2 ~@2", // F Eb F Eb
CC: "[f1,f2]@2 ~ [f1,f2]!2 ~ [f1,f2] [eb1,eb2] [f1,f2]@2 ~ [f1,f2] [c2,c3]@4", // F Eb F C
CD: "[db2,db3]@3 [db2,db3] [bb1,bb2]@2 [db2,db3] ~@7 [bb1,bb2] ~", // Db Bb Db Bb
CE: "[db2,db3]@2 ~ [db2,db3] [db2,db3]@2 [db2,db3] ~ [db2,db3]@4 [eb2,eb3]@3 ~", // Db Eb
CF: "[ab1,ab2]@3 [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~@5 [f1,f2] ~@3", // Ab F Ab F
CG: "[ab1,ab2]@3 [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~@5 [f1,f2]@2 ~@2", // Ab F Ab F
CH: "[ab1,ab2]@3 [ab1,ab2]!2 ~@2 [f1,f2] [ab1,ab2]@4 [g1,g2]@4", // Ab F Ab G
CI: "[f1,f2]@2 ~ [f1,f2] [eb1,eb2]@2 [f1,f2] ~@5 [eb1,eb2] ~@3", // F Eb F Eb
CJ: "[f1,f2]@2 ~ [f1,f2]!2 ~ [f1,f2] ~ [f1,f2]@4 [c2,c3]@4", // F C
CK: "[db2,db3]@2 ~ [db2,db3] [bb1,bb2]@2 [db2,db3] ~@7 [db2,db3] [c2,c3]", // Db Bb Db C
CL: "[bb1,bb2]@3 [bb1,bb2] [c2,c3]@3 [bb1,bb2] [db2,db3]@3 [bb1,bb2] [eb2,eb3]@3 ~", CM: "[ab1,ab2]@3 [ab0,ab1] ~@4",
CN: "[ab1,ab2]@5 ~ [ab1,ab2] ~@9", CO: "[ab1,ab2]@6 [ab1,ab2] ~@9",
CP: "[ab1,ab2]@3 [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~@9", // Ab F Ab
CQ: "[ab1,ab2]@2 ~ [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~ [ab1,ab2]@4 ~@4", // Ab F Ab
CR: "[ab1,ab2]@2 ~ [ab1,ab2] [f1,f2]@2 [ab1,ab2]!2 [ab1,ab2]@4 [g1,g2]@4", // Ab F Ab G
CS: "[f1,f2]@2 ~ [f1,f2] [eb1,eb2]@2 [f1,f2] ~@7 [eb1,eb2] ~", // F Eb F Eb
CT: "[f1,f2]@3 [f1,f2] [eb1,eb2]@2 ~@2 [f1,f2]@2 ~ [f1,f2] [c2,c3]@2 ~ [c2,c3]", // F Eb F C
CU: "[db2,db3]@3 [db2,db3] [bb1,bb2]@2 [db2,db3] ~@7 [db2,db3] [c2,c3]", // Db Bb Db C
CV: "[bb1,bb2]@2 ~ [bb1,bb2] [c2,c3]@3 [bb1,bb2] [db2,db3]@3 [bb1,bb2] [eb2,eb3]@2 ~@2", // Bb C Bb Db Bb Eb
CW: "[ab1,ab2]@2 ~ [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~@7 [f1,f2] ~", // Ab F Ab F
CX: "[ab1,ab2]@2 ~ [ab1,ab2]!2 ~ [ab1,ab2] ~ [ab1,ab2]@3 ~ [ab1,ab2]@2 ~@2", // Ab
CY: "[ab1,ab2]@3 [ab1,ab2] [f1,f2]@2 [ab1,ab2] ~@7 [f1,f2] ~", // Ab F Ab F
CZ: "[ab1,ab2]@3 [ab1,ab2]!2 ~ [ab1,ab2] [eb1,eb2] [ab1,ab2]@4 [g1,g2]@3 ~", // Ab Eb Ab G
DA: "[f1,f2]@3 [f1,f2] [f1,f2]@2 [f1,f2] ~ [f1,f2]@4 [c2,c3]@4", // F C
DB: "[db2,db3]@2 ~ [db2,db3] [bb1,bb2]@2 [db2,db3] ~@7 [db2,db3] ~", // Db Bb Db
DC: "[db2,db3]@3 [db2,db3] [bb1,bb2]@2 [db2,db3] ~ [db2,db3]@4 [eb2,eb3]@3 ~", // Db Bb Db Eb
DD: "[ab1,ab2]@3 [ab1,ab2] [ab1,ab2]@2 [ab1,ab2] ~@9", // Ab
DE: "[ab1,ab2]@3 [ab1,ab2]!2 ~ [ab1,ab2] ~ [ab1,ab2]@4 [g1,g2]@4", // Ab G
})).s("gm_synth_bass_1").gain(0.38)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
~@6 A B A B C D E F A G H@3 I J K@2 L M N O P Q@2 R A B A B C D C S A B A B C D E T U V W@3 I J X@2 L M N O P Q@2 R A
B A B C D C S A B A B C D E Y Z AA AB AC AD AE AF AG AH N O P Q@2 R AI AJ AI AJ AK AL AK AM AI AJ AI AJ AK AL AN AO AP
AQ@4 AR@2 AS@2 AJ AI AJ AT AL AT ~ AU AJ AU AJ AT AL AT ~ AU AJ AU AJ AT AL AT ~ AU AV
>`.pickRestart({
A: "[db4,gb4,bb4]@3 [db4,gb4,bb4] ~@12", B: "[db4,gb4,bb4] ~@2 [db4,gb4,bb4] ~@4 [db4,gb4,bb4] ~@2 [db4,gb4,bb4] ~@4",
C: "[eb4,gb4,bb4]@3 [eb4,gb4,bb4] ~@12", D: "[eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~@4 [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~@4",
E: "[b3,eb4,gb4]@3 [b3,eb4,gb4] ~@12", F: "[b3,eb4,ab4]@3 [b3,eb4,ab4] ~@4 [db4,ab4]!2 ~@2 [db4,gb4]!2 ~@2",
G: "[db4,gb4,bb4]@3 [db4,gb4,bb4]!2 ~ [db4,gb4,bb4] ~@9", H: "[[f3,ab3,db4]@3 ~ [bb3,eb4]@2, ~@31 gb3@17]/3",
I: "~ [gb4,bb4] [eb4,gb4]@2 [eb3,ab3,b3]@2 [eb3,gb3,bb3]@2", J: "[f3,ab3,db4]@7 ~",
K: "[~@16 [bb3,eb4]@15 ~, ~@15 gb3@16 ~]/2", L: "~@4 [eb4,gb4] [f4,ab4] [eb4,gb4] ~",
M: "[gb3,b3,eb4]@7 ~@3 [db4,gb4,bb4]@2 ~@2 [db4,gb4,bb4]@2", N: "~@2 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4]@5 ~@5",
O: "[db4,gb4,bb4]@3 [db4,gb4,bb4]!2 ~@5 [db4,f4,ab4]@2 ~@2 [db4,gb4,ab4]@2", // Gb Db Dbsus4
P: "~@2 [db4,gb4,bb4]@2 ~@2 [b3,eb4,gb4]@7 ~@3", Q: "[[ab3,b3,eb4]@4 ~@2 [bb3,db4,gb4] ~@3 [ab3,db4,f4]@18 ~@4]/2",
R: "b4 bb4 b4 db5 ~@4", S: "[b3,eb4,gb4]@3 [b3,eb4,gb4]!2 ~@3 [b3,eb4,gb4]!2 ~@2 [db4,f4,ab4]!2 ~@2",
T: "[b3,eb4,gb4]@3 [b3,eb4,gb4] ~@4 [b3,eb4,gb4]@2 [b3,eb4,gb4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~", // B Db
U: "[db4,gb4,bb4]@2 ~ [db4,gb4,bb4] ~@12", V: "[db4,gb4,bb4]@2 [db4,gb4,bb4]!2 gb4 ~ [db4,gb4,bb4] ~@9",
W: "[[f3,ab3,db4]@24 ~@8 eb4@15 ~, ~@31 [gb3,bb3]@16 ~]/3", X: "[~ [bb3,eb4], ~@15 gb3@17]/2",
Y: "[b3,eb4,gb4]@3 [b3,eb4,gb4] ~@4 [eb4,gb4,b4]@2 [eb4,gb4,b4] ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~", // B Db
Z: "[bb3,db4,f4] ~@2 [bb3,db4,f4] ~@4 [bb3,db4,f4]@3 [bb3,eb4,gb4] ~@2 [bb3,eb4,gb4]!2", // Bbm Ebm
AA: "[bb3,db4,f4] ~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,eb4,gb4] ~@2 [bb3,eb4,gb4]!2", // Bbm Ebm
AB: "[ab3,db4,f4] ~@2 [ab3,db4,f4] ~@4 [ab3,db4,f4] ~@2 [ab3,db4,f4]!4 ~", // Db
AC: "[ab3,db4,f4] ~@2 [ab3,db4,f4] ~@4 [b3,eb4,ab4]@3 ~ [db4,f4,bb4]@4", // Db Abm Bbm
AD: "[bb3,db4,f4]!2 ~ [bb3,db4,f4] ~@4 [bb3,db4,f4]@2 ~ [bb3,eb4,gb4] ~@2 [bb3,db4,f4]!2", // Bbm Ebm Bbm
AE: "[bb3,db4,f4] ~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~ [bb3,db4,f4]@3 [bb3,eb4,gb4] ~@4", // Bbm Ebm
AF: "[ab3,db4,f4] ~@2 [ab3,db4,f4] ~@4 [ab3,db4,f4] ~@2 [ab3,db4,f4] ~@2 [ab3,db4,f4] ~", // Db
AG: "[ab3,db4,f4] ~@2 [ab3,db4,f4] ~@4 db4@3 b3@3 bb3 ~", // Db
AH: "[gb3,b3,eb4]@3 [gb3,b3,eb4] ~@6 [db4,gb4,bb4]@2 ~@2 [db4,gb4,bb4]@2", AI: "[eb4,ab4,c5]@3 [eb4,ab4,c5] ~@12",
AJ: "[eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@4 [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@4", AK: "[f4,ab4,c5]@3 [f4,ab4,c5] ~@12",
AL: "[f4,ab4,c5] ~@2 [f4,ab4,c5] ~@4 [f4,ab4,c5] ~@2 [f4,ab4,c5] ~@4", // Fm
AM: "[db4,f4,ab4]@3 [db4,f4,ab4]!2 ~@3 [db4,f4,ab4]!2 ~@2 [eb4,g4,bb4]!2 ~@2", AN: "[db4,f4,ab4]@3 [db4,f4,ab4] ~@12",
AO: "[db4,f4,ab4]@3 [db4,f4,ab4] ~@4 [db4,f4,ab4]@2 [db4,f4,ab4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~", // Db Eb
AP: "~@13 ab3 f3 eb3", AQ: "[~@9 [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]@4 ~@10 ab3 f3 eb3]/2",
AR: "[~@9 [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]@3 ~@11 ab3 f3 eb3]/2", // Ab
AS: "[~@9 [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]@3 ~@14]/2", AT: "[f4,ab4,c5]@2 ~ [f4,ab4,c5] ~@12",
AU: "[eb4,ab4,c5]@2 ~ [eb4,ab4,c5] ~@12", AV: "[c4,eb4,ab4]@3 ~@13",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.3)
// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
~@31 A@2 B@2 A@2 C D A@2 B@2 A@2 C E@2 ~@16 A@2 B@2 A@2 C D A@2 ~@2 F@2 C G@3 ~ H@3 ~@9 I@2 J@2 I@2 K L M@2 N@2 O@2 K
P ~@7 Q@6 ~ K R@6 ~ K S ~@10
>`.pickRestart({
A: "[~@4 [db4,gb4,bb4,db5]@6 [db4,gb4,bb4,db5]@2 [db4,gb4,bb4,db5]!2 [db4,gb4,bb4,db5]@4 [bb3,db4,gb4,bb4]@2 [bb3,db4,gb4,bb4]@2 [bb3,db4,gb4,bb4]@4 [b3,db4,ab4,b4]@4 ~@2]/2", // Gb Db7
B: "[~@6 [db4,gb4,bb4]@2 [db4,gb4,bb4]!2 [db4,gb4,bb4]@2 [db4,gb4,bb4]@2 [gb4,bb4,db5]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [b3,db4,ab4]@4 ~@2]/2", // Gb Db7
C: "~@2 [b3,eb4,gb4,b4]!2", // B
D: "[b3,eb4,gb4,b4] [b3,eb4,ab4,b4] [db4,gb4,bb4,db5] [db4,f4,ab4,db5]@3 [bb3,db4,gb4,bb4]@2", // B Abm Gb Db Gb
E: "[[b3,eb4,gb4,b4] [b3,eb4,ab4,b4] [db4,gb4,bb4,db5] [db4,f4,ab4,db5]@3 [gb4,bb4]@7 ~@3]/2", // B Abm Gb Db Gb
F: "[~@4 [db4,gb4,bb4,db5]@6 [db4,gb4,bb4,db5]@2 [db4,gb4,bb4,db5]!2 [db4,gb4,bb4,db5]@4 [bb3,db4,gb4,bb4]@2 [bb3,db4,gb4,bb4]@2 [bb3,db4,gb4,bb4]@4 [b3,db4,ab4,b4]@3 ~@3]/2", // Gb Db7
G: "[[b3,eb4,gb4,b4]@2 [b3,eb4,ab4,b4]@2 [db4,gb4,bb4,db5]@2 [db4,f4,ab4,db5]@6 [bb3,db4,gb4,bb4]@2 bb4@5 bb4 bb4@2 [bb4,eb5]@6 ~@2 bb4@5 bb4 bb4@2 [bb4,eb5]@6 ~@4]/3", // B Abm Gb Db Gb Eb5
// … 191 more lines
More by Whitney Houston
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.