0:00/0:00
// Anytime You Need a Friend — Mariah Carey
// 65 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
A@2 B@2 C@2 D@2 B@2 E F G H@7 I J@2 B@2 D@2 E F G K@7 L M N O P Q R S T U V W@6 X@8 Y Z@7 ~@3
>`.pickRestart({
A: "[~@10 e4 [a3,b3,d4]@5, ~@7 c4@4 ~@5, ~@15 d4@7 ~@10, ~@4 e4 ~@3, ~@9 a4@2 ~@5]/2", // Bm7
B: "[[e3,b3,d4]@3 c4@4 ~@3 e4 [a3,b3,d4]@5, ~@3 [e3,a3]@8 ~@5, ~@7 c4@4 ~@5, ~@15 d4@7 ~@10, ~@8 e4 a4@2 ~@5]/2", // E7 Bm7 A5
C: "[[e3,b3,d4]@3 [a3,c4]@4 ~@3 e4 [a3,b3,d4]@5, ~@3 e3@8 ~@5, ~@7 c4@4 ~@5, ~@15 d4@7 ~@10, ~@8 e4 a4@2 ~@5]/2", // E7 Am Bm7
D: "[[e3,b3,d4]@6 [a3,c4]@7 ~@7 e4@2 [a3,b3,d4]@10, ~@3 e3@5 e4 a4@2 ~@5, ~@13 a3@9 ~@10, ~@7 c4@4 ~@5, ~@15 d4@7 ~@10]/2", // E7 Am Bm7
E: "[g3,b3,d4]@3 [g3,c4,e4]@3 [e3,a#3,d4]@2", F: "[e3,a3,c4]@3 [a3,b3,d4]@5", G: "[e3,g#3,b3,d4]@3 [e3,a3,c4]@5",
H: "[[g2,g3,d4,g4,b4]@2 ~@6 d3@3 ~ d5@2 [e4,g4]@5 ~ e5@2 b4@3 ~@5 g4@2 [g4,b4]@3 g4 [g3,d4,g4,b4]@2 c5 ~@5 d5@2 [e3,e4]@5 ~ e5@2 g4@3 ~@6 g4 g4@2 ~ d4!2 ~ c5 ~@5 d5@2 [e4,g4]@4 ~@2 e5@2 d4@4 ~@5 g4 ~ d4 [d4,g4] d4!2 [d4,a4]@2 g4 ~@6 c4@2, ~@8 [d2,c4,f4,a4]@6 [e2,e3,c5]@8 g2@6 [d4,g4,b4] a4@10 c4@3 ~@9 e3@3 [g3,b4]@4 a4 [g4,b4] g3@4 g2@5 d4@2 [f4,a4]@7 ~@4 e4@4 ~@4 d4@2 b4@4 g4@2 ~ a4@2 ~@3 f4@2 f4@6, ~@11 d3@3 ~@5 g4@3 d5@17 ~@15 d5@17 ~@4 d3@3 ~@8 [g3,g4,b4]@5 g3@9 [g3,g4,b4]@4 c4@6 ~@2, ~@22 [g3,d4,g4]@4 b4 g3@5 g2@7 ~ d2@6 [e2,g4,c5]@8 g2@7 d4 a4@9 ~ d2@6 [e2,e3,c5]@8 g2@6 [d4,g4]@2 a4@2 g2@8 [d2,a4]@8, ~@25 c5@7 d4@2 ~@5 [f4,a4]@7 ~@11 g4 c5@6 [d4,b4]@2 g4@2 [g3,g4,b4]@3 c4@3 c4@4 ~@5 g4@3 d5@18 ~ g4@7]/7", // G Em G E Em G5 D5 Dm7 …
I: "e3@4 ~@3 c5 d4@2 ~@5 g#4, [e2,c5] [e2,g#4,b4], [e4,a4]@5 e4@3 ~@2 d4@6, ~ e3 ~@2, ~@3 a4 ~@3 a4", // C E A5
J: "[c4@7 ~@2 a4@2 [a3,b3,d4]@5, a2@11 ~@5, a4@4 e4 ~@3, e4@15 d4@7 ~@10, ~@7 c4@4 ~@5]/2", // Bm7
K: "[[g2,g3,d4,b4]@2 ~@6 d3@3 ~ d5@2 [g4,c5]@5 c5 [g4,c5,e5]@2 ~@9 g4 d4 ~@2 d4!2 ~ c5 ~@5 d5@2 [e4,g4]@4 ~@2 e5@2 [g4,b4]@3 ~@2 d5 g4@2 ~ g3 d4 d4@2 d4!2 ~ c5 ~ d3@2 ~@2 d5@2 e4@4 ~@2 [e3,e5]@2 d4@3 ~ d4 ~@4 d4 d4!5 a4@2 g4 f4@2 ~@2 d3@2 ~ d3, g4 ~@7 [d2,c4,f4,a4]@6 [e2,e3,e4]@8 d5@15 d4@2 c4@3 c4@4 ~@8 [g3,d5]@6 [g3,b4]@4 [g3,b4]@4 [g3,g4,b4]@3 c4@3 c4@4 ~@5 g4@3 d5@15 d4 ~@2 c4@6 c4@2, ~@22 g2@6 [d4,g4,b4]@2 a4@9 ~@12 g4@3 ~@3 g4@3 ~@2 g4@2 g4@2 ~@3 d4@2 [f4,a4]@7 ~@4 e4@4 ~@4 c5@14 ~@2 f4@6, ~@22 [g3,g4,b4]@3 a4 [g4,b4] g3@5 g2@7 ~ d2@6 [e2,e3,c5]@8 g2@10 g2@7 ~ d2@6 [e2,c5]@8 g2@5 [d4,g4] g3@4 [g4,b4]@2 g4 a4 [g3,g4,b4]@4 d3@4 ~@4, ~@25 c5@7 [g4,b4] d4 g4@2 [g4,b4]@3 [f4,a4]@7 ~@4 e4@4 ~@4 b4@2 [d5,g5]@11 ~@4 d3@3 [e3,g4]@6 ~@2 [g3,g4,b4]@4 a4 b4@2 [d4,a4] g4@2 g2@8 [d2,a4]@8]/7", // G C5 C Em G E Dm7 E …
L: "e3@4 ~@3 c5 e3@3 ~@3 g#4@2, [e2,c5] [e2,b4], [e4,a4]@5 e4@3 d4@2 ~ a4@5, ~ e3 ~ e3, ~@3 a4 g#4@3 ~", // C E5 A5
M: "[e4,a4]@11 e4 c4@2 c4@2, a2, c4@5 ~ [a3,e4,a4]@2", // A5
N: "c4@6 ~ d#4 [d#4,f#4]@4 c4@2 c4@2, [c3,d#4,f#4,a4]@4 c4 ~ [d#4,f#4,b4]@2, ~@3 c4 a4@4", // D#m Cdim B
O: "[b3,g4]@4 ~@3 d5 [g4,b4,d5]@3 ~ g4@2 g4@2, d4, b2@3 b4 ~@2 [b4,d5]@2, ~@4 b3@7 b3@5, ~@5 g4@3 [b2,g5]@8", // Em G Bm Em
P: "a#3@4 ~@3 g4 [g4,a#4,d5]@3 ~ d4@2 d4@2, [a#2,g4,a#4,d5] a#2, ~@4 a#3@7 a#3@5, ~@3 d4!2 ~ [g4,a#4,d5]@2", // Gm
Q: "[f4,a4]@5 ~@2 c5 f4@2 ~@4 f4@2, [a2,c5] [a2,f5], a3@4 ~ f4@3 ~@2 f4@3 a4@3, ~@3 a4 [a4,c5]@2 [g4,c5]@2, ~@11 a3@5", // F Am Dm Am C5
R: "g#3@4 ~ f4@2 c5 g#3@4 ~@3 d5, [g#2,c5] [g#2,d5], [f4,g#4]@6 ~@2 [f4,g#4,c5]@5 f4@3, ~ g#3 ~ g#3, ~@7 c5", // G# G#dim Fm
S: "g4 ~ [g4,c5] [f#4,a4]@4 a4, [g2,e5]@3 [f#2,c5]@5, [g3,c5]@3 g3@3 f#3@6 ~@4, ~ d5@2 ~@5, ~ g4 ~@6", // C5 F#m C F#dim C5
T: "f3@4 ~@3 a4 a4@3 ~ e4@2 e4@2, c5@3 [a4,c5], [f2,a4] [f2,d5], e4@3 ~ e4 ~@3, ~@4 f3@7 f3@5", // Am F Dm
U: "e3@4 ~@2 a4 b4 e4@2 ~@2 e4@2 e4@2, [e2,b4,e5] e2, [e4,a4]@5 e4@3 ~@2 e4@2 [a4,b4,e5]@4, ~@4 e3@4 [e3,a4,b4,e5]@3 e3@5", // E5 A5 Asus2 Esus4
V: "[e2,e3,e4,g#4,b4,e5]@4 [g2,g3,g4,b4,d5] ~@3", // E G
W: "[[d3,d5]@3 ~ d5@2 [g4,c5]@4 ~ c5 [g4,c5,e5]@2 ~@9 d4!2 ~@2 d4!2 ~ c5 ~ d3@2 ~@2 d5@2 [e4,g4]@4 ~@2 e5@2 d4@3 d4!2 ~@4 d4!2 ~@2 d4!2 ~ c5 ~ d3@2 ~@2 d5@2 e4@4 ~ g4 [e3,g4,c5,e5]@2 [g4,b4]@3 d4 ~@4 d4@2 [d4,g4]@2 [d4,g4] ~ d4 [d4,a4]@2 g4, [d2,f4,a4]@6 [e2,e3,e4]@8 [g2,d5]@6 g4 a4 g4@2 g4@2 g4@2 ~ d4@2 [f4,a4]@7 ~@4 e4@4 ~@4 a4 [d4,g4] g3 [d4,a4] g4@2 g4@2 g4@2 ~ d4@2 [f4,a4]@7 ~@4 e4@4 ~@4 g4@2 g3 d5@11, ~@3 d3@3 ~@4 g4@2 ~@2 [g3,g4,b4]@4 [g4,b4] g3@5 g2@7 ~ d2@6 [e2,e3,c5]@8 [g2,d5]@10 g2@7 ~ d2@6 e2@8 g2@7 b4@3 g2@8, ~@17 c5@7 b4@4 ~@7 d3@3 ~@8 [g3,g4,b4]@5 b4@5 b4@4 ~@7 d3@3 [e3,g4,c5]@6 ~@2 [g3,d5]@5 c5@13, ~@17 a4@3 [d4,b4]@4 ~ d4@2 ~ [g3,g4,b4]@3 c4@3 c4@4 ~@5 g4@3 ~@4 c5@6 ~ d4@2 ~ [g3,g4,b4]@3 c4@3 c4@4 ~@12 [d4,b4] a4@5 [g3,b4]@3 a4 [g3,g4,b4]@4]/6", // D C5 C Em C G G5 D5 …
X: "[~@5 c4@2 [d3,c4] e4@2 ~@2 c5@2 g3@4 ~@5 g3 d4 ~@2 d4!2 ~ c5 ~ d3@2 ~@2 d5@2 [e3,g4,c5]@5 ~ [g4,c5,e5]@2 g4@3 ~@6 g4 g4@2 ~ d4!2 ~ c5 ~ d3@2 ~@2 d5@2 [e4,g4]@4 ~@2 e5@2 d4@3 d4!2 ~@4 g3 g4@2 ~ d4!2 ~ c5 ~ d3@2 ~@2 d5@2 [e3,g4,c5]@5 ~ [g4,c5,e5]@2 g4@3 d4!2 ~@2 d4 [d4,a4]@2 [d4,g4]@2 ~ g4 d4 a4@2 g4, [d2,a4]@8 [e2,g4]@6 [g2,d4]@8 g4@2 g2@7 ~ d2@6 [e2,e4]@8 g2@6 g3@4 g2@5 d4@2 [f4,a4]@7 ~@4 e4@4 ~@4 a4 g4 g3 [c4,a4] [b3,g4]@2 [g3,d4,b4]@4 [g3,g4,b4]@3 ~@4 d3@3 ~@5 e3@3 g3@5 [d4,a4] g3@6 d4@2 [g3,g4,b4]@4, [d3,c4]@4 d3@3 ~ [e3,c5]@4 ~@2 b4@5 d5@5 ~ d4@2 ~@2 d4@2 c4@3 c4@4 ~@11 g4 c5@6 [d4,b4]@2 g4@2 [g3,g4,b4]@3 c4@3 c4@4 ~@5 g4@3 ~@4 c5@6 ~@2 g4@2 ~@3 [f4,a4]@7 ~@8 d5@18, f4@2 f4@4 ~@4 e4@4 g4@5 a4 b4@4 g4@2 g4@2 ~@3 [f4,a4]@7 ~@8 d5@17 ~@4 d3@3 ~@8 [g3,g4,b4]@5 [d4,b4]@5 ~@5 d4@2 c4@3 c4@4 ~@12 g4@6 [a4,b4]@5 d4 ~@2, ~ g4@7 ~@3 e3@3 ~@4 g3@3 a4@3 [g3,b4]@4 [g3,g4,b4]@3 ~@4 d3@3 ~@5 e3@3 [g3,b4]@4 a4 [g4,b4]@2 d4 a4@9 ~ d2@6 [e2,e3,c5]@8 [g2,d5]@10 g2@7 ~ d2@6 [e2,e4]@8 [g2,b4]@10 g2@8]/8", // D7 C Em C D5 G5 D5 Em …
Y: "~@7 a4 e3@4 ~@3 c5, [d2,a4]@3 f4 [e4,a4]@3 a4, [d3,c4] d3 [e2,c5]@2, f4@2 f4@3 c4@3 ~@4 e3@4, ~ g4@7 ~@5 e4@3", // D5 A5 D7 C
Z: "[d4@2 d4 ~@3 g#4@2 a4@5 ~@15 e4@2 [a3,b3,d4]@10 [e2,g#3,b3,d4]@6 [a2,c4]@8 ~@6 e4@2 [b2,a3,b3,d4]@10 [e2,b3,d4]@6 [a2,a3,c4]@32 ~@2, [e2,b4]@8 ~@7 e5@9 e4@2 a4@4 ~@25 d4 e4@2 a4@4 ~@50, g#4@5 d4@3 e4@15 d4@7 ~@24 [a2,c4]@8 ~@50, ~@3 a4@5 ~@6 c5@16 ~@26 c3@6 ~@50, ~@2 e3@2 c4@7 c4 c4@3 ~@8 [e3,a3]@8 ~@25]/7", // Bm7 E7 Am Bm7 E7 Am E5 Am …
})).s("gm_epiano1").gain(0.56)
// chords · epiano1 · "E.PIANO 1" · soft notes
const epiano1_soft = note(`<
~@4 A@2 ~@8 B C D ~@2 E F G@2 ~@7 H I J ~ I K L M N O ~ P Q R S T U ~@6 V W ~@2 X ~@3 Y ~ Z@3 AA AB@3 ~@3
>`.pickRestart({
A: "[~@13 a3@9 ~@10]/2", B: "~@2 e4@4 ~@9 d4", C: "~@2 d4@2 ~@7 d3@3 ~@2, ~@5 c4@2 ~", D: "~ e4@2 ~@5",
E: "d4 ~@2 g4 ~@3 d4 d3@4 d3@4", F: "~@11 a4@3 ~@2", G: "[~@10 e4 ~@5, ~@13 a3@9 ~@10]/2", H: "~@11 d3@3 ~@2",
I: "~ g4 ~@6", J: "~@4 g3@3 ~@4 d3@3 ~@2", K: "~@9 d4 ~@6", L: "~@7 d4 ~ g4@7", M: "~@10 d4@3 d4@3",
N: "a3@4 ~ c4 ~@2, ~@2 a3 ~", O: "~@8 c3@2 ~ c3@5, ~@5 c4 ~@2", P: "~@5 d4 ~@2", Q: "~@4 a3@7 ~@5",
R: "~@3 g#4 ~@3 g#4", S: "~@13 f#4@3, ~@3 f#3", T: "~@3 e4 ~ e4 ~@2", U: "~@7 a4 ~@8", V: "~@7 g3 ~@3 [d4,g4] ~@3 d4",
W: "~@3 f4 ~@4", X: "~@9 d4@2 ~@5", Y: "~@15 d4",
Z: "[~@3 d4@2 ~@19 c3@6 b2@10 ~@8, ~@4 a2@11 ~@9, ~@2 a3@3 ~@3, ~@13 a4@13 ~@22, ~@8 a5@7 ~@9]/3", AA: "~@7 b2@7 ~@2",
AB: "[~@4 g#3@3 e3@16 ~]/3",
})).s("gm_epiano1").gain(0.32)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
A B C D E F G H G H I J K L@2 M@2 N@2 O P Q R G R G R I S K L@2 M@2 T@2 U V W X Y Z AA AB AC AD AE AF AG@2 AH@2 AI@2
AJ@2 AG@2 AH@2 AI@2 AJ@2 AG@2 AH@2 AI@2 AK@3
>`.pickRestart({
A: "~@14 a2 b2", B: "c3@6 b2@9 ~", C: "g#2@6 a2@8 a2 b2", D: "c3@3 b2@5", E: "g#1@3 a1@3 e1@2", F: "c2@6 b1@9 ~",
G: "g#1@6 a1@8 a1 b1", H: "c2@3 b1@5", I: "g1@6 c2@6 f#1!2 f#1@2", J: "f1@4 ~ f1 b1@10", K: "e1@6 a1@7 a1 a1@2",
L: "[g1 ~@3 g2@4 d2@5 ~ e2@8 g2@8 d2 e2]/2", M: "[g2@4 ~ a2 g2 f2 d2@6 e2@8 g2@8 d2 e2]/2",
N: "[g2@5 a2 g2 f2 d2@6 e2@8 g2@8 d2 e2]/2", O: "g2@4 g2!2 ~ f2 d2@6 ~@2", P: "e2@8 e1@4 g#1 e1 g#1 b1",
Q: "a1@6 a1 g1 a1@4 e2@4", R: "c2@6 b1@9 a1", S: "f1@4 ~ f1 b1@9 e1",
T: "[g2@5 a2 g2 f2 d2@6 e2@6 c2 e2 g2@7 g2 d2 e2]/2", U: "g2@3 g2!3 ~ f2 d2@5 a1 d2!2", V: "e2@7 e1 e1@5 e1 g1 g#1",
W: "a1@3 a1@5", X: "c2@5 ~ c2 ~ c2@3 ~ c2@2 g2 c3", Y: "b2@5 ~ b2@6 b2 a2 g2@2",
Z: "a#2@5 ~ a#2 ~ a#2@3 ~ a#2 g2@2 a#2", AA: "a2@4 ~@2 a2@5 f2 f1 c2 f2 g2", AB: "g#2@5 ~ g#2@7 ~ g#2!2",
AC: "g2@4 g1 ~ f#2@8 f#2!2", AD: "f2@5 ~ f2 ~ f2@5 ~ f2!2", AE: "e2@4 e2@2 ~ e2 e2@3 e2 e2@3 e2",
AF: "e2@3 e2 e2@2 ~@2 g1@6 ~ g1", AG: "[d2@5 ~ e2@8 g2@8 d2 e2 g2@4 ~ a2 g2 f2]/2",
AH: "[d2@6 e2@8 g2@8 d2 e2 g2@5 a2 g2 f2]/2", AI: "[d2@6 e2@6 c2 e2 g2@7 g2 d2 e2 g2@3 g2!3 ~ f2]/2",
AJ: "[d2@5 ~ e2@4 e2 c2 g1 ~ g1@5 g1 g2 e2 d2 b1 g1@6 g1 ~]/2",
AK: "[d2@5 ~ e2@4 e2 c2 g1 ~ g1@5 g1 g2 e2 d2 b1 g1@6 g1 d2@17]/3",
})).s("gm_fretless_bass").gain(0.52)
// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
A@2 B@2 C@2 D@2 E@2 F G H I@4 J@2 K L M@2 D@2 E@2 F G H I@4 J@2 N O P Q R S T U V W X Y@7 Z@16 AA@3
>`.pickRestart({
A: "[~@15 d4 ~@4 e4@2 [f#3,b3,d4]@9 ~, ~@7 c4@4 ~@5, ~@8 e4 a4@6 ~, ~@17 a3@5 ~@10]/2", // Bm
B: "[[g#3,b3]@4 d4@2 [a2,a3,c4]@7 ~@2 d4 ~@4 e4@2 [f#3,b3,d4]@9 ~, e3@6 ~@8 c4@3 a3@5 ~@10, ~@16 e4@2 a4@13 ~]/2", // G#m Am Bm
C: "[[g#3,b3]@4 d4@2 a2@6 ~@3 d4 ~@4 e4@2 [f#3,b3,d4]@9 ~, e3@6 [a3,c4,a4]@8 c4@7 ~@11, ~@12 e2@5 a3@5 ~@10, ~@8 e4 a4@6 ~]/2", // G#m Bm Am
D: "[[g#3,b3]@4 d4@2 [a2,a3,c4]@7 ~@2 d4 ~@4 e4@2 [f#3,b3,d4]@10, e3@6 ~@7 e3@3 e4@2 a4@13 ~, ~@14 c4@3 a3@5 ~@10]/2", // G#m Am Bm
E: "[~@4 d4@2 [a2,a3,c4,a4]@7 ~@2 d4 ~@4 e4@2 [b2,f#3,a3,d4]@9 ~, [e3,g#3,b3]@6 ~@7 e3@3 e4@2 a4@13 ~, ~@7 c4@4 ~@5, ~@17 a3@5 ~@10]/2", // Am Bm7 E
F: "[g3,b3]@2 d4 [c3,g3,c4,e4]@3 [f#2,f#3,a#3,d4]@2, [g2,d3]@3 ~@5", // G C F#aug G5
G: "c4 ~@3 e4@2 d4@6 e4 ~@2 a3, f2@3 [b2,f#3,a3]@5, [f3,e4]@3 f3@3 ~@10, a3 a3@2 ~@4 b3, ~ c4@5 ~@7 d4@3", // B7 Fmaj7
H: "[g#3,b3]@4 d4@2 a3@4 a3 b3 c4 ~@2 a2, [e2,e3]@3 [a2,e4]@4 e3, ~@6 [g3,c4]@6 ~ [g3,c4,e4]@3", // G#m E A5 C5 C
I: "[[g3,b3]!4 [g2,g3,d4]@2 g2 [d2,f3,a3,c4]@7 [g3,c4,e4]@8 [g3,b3,d4]@9 ~ d4 g3 [g3,b3]!2 [b3,d4]@2 g3 [a3,c4,f4]@7 [g3,c4,e4]@8 [g3,b3,d4]@9 g3, [g2,d4]@2 [g2,d4]@2 b3 ~@26 g3@2 ~@3 g3 ~@27, ~@16 b3 d4 ~@14]/4", // G G5 Dm7 C G Bm F C …
J: "[[g4,b4] [d4,g4,b4]!3 [d4,g4,b4]@2 d4 ~@5 f3@2 e3@3 ~@3 c3@2 [g3,b3,d4,g4]@9 g3, ~@7 [c4,f4,a4]@7 [c4,e4,g4]@7 ~@11, ~@9 g3 ~@6, ~@19 e3@2 ~@11]/2", // G F C
K: "[g3,b3,d4] [f3,a3,c4,f4]", L: "[c4,e4] [e3,g#3,b3,d4], [e3,a3]@3 ~@5",
M: "[[a2,e3,a3,c4]@14 ~ d4 ~@4 e4@2 [f#3,b3,d4]@9 ~, ~@14 c4@7 ~@11, ~@8 a2@3 ~@5, ~@8 e4 a4@6 ~, ~@17 a3@5 ~@10]/2", // Am Bm
N: "[g3,b3,d4]@8 [a3,c4,f4]@5 [a3,c4,f4]@3, ~ f3", // G F
O: "[a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 [e3,g#3,b3,d4]@8, e3@3 ~@5", // Am E7
P: "[e3,a3,c4]@6 c4@6 c4 e4 a4@2, a2, ~@3 [e3,a3]@5", // Am A5
Q: "[c4,d#4,f#4,a4]@5 ~ [c4,d#4,f#4]@6 ~@2 f#4 ~, ~@6 a4@7 d#4@2 ~, ~@12 c4@3 ~", R: "[b3,d4,g4]@6 [b3,d4,g4]@9 ~",
S: "[a#3,d4,g4]@6 [a#3,d4,g4]@6 g4 ~ g4 ~, ~@12 a#3@3 ~, ~@13 d4@3", T: "[a3,c4,f4]@3 [a3,c4,f4]@5",
U: "[g#3,c4,f4]@5 ~ [c4,f4]@7 ~ c4 ~, ~@6 g#3@6 ~ g#3@2 ~", V: "[g3,c4,e4]@5 ~ [f#3,a3,c4,e4]@9 ~",
W: "[f3,a3,e4]@4 [f3,a3,e4]@4 [f3,a3,e4]@4 [f3,a3,c4,e4]@3 ~, c4@3 ~", X: "[e3,a3,b3,e4]!4",
Y: "[[e3,g#3,b3,e4]@4 [e3,g#3,b3,e4]@4 [g3,b3]!4 [g2,g3,d4]@2 g2 [d2,f3,a3,c4]@7 [g3,c4,e4]@8 [g3,b3,d4]@9 ~ d4 g3 [g3,b3]!2 [b3,d4]@2 g3 [a3,c4,f4]@7 [g3,c4,e4]@8 [g3,b3,d4]@9 g3 [g4,b4] [d4,g4,b4]!3 [d4,g4,b4]@2 d4 ~@5 f3@2 e3@3 ~@3 c3@2 [g3,b3,d4,g4]@9 g3 [g3,b3,d4]@8, ~@8 [g2,d4]@2 [g2,d4]@2 b3 ~@26 g3@2 ~@3 g3 ~@45 g3@2 ~@20, ~@40 b3@2 d4@2 ~@35 [c4,f4,a4]@7 [c4,e4,g4]@7 ~@19, ~@91 e3@2 ~@19]/7", // E G G5 Dm7 C G Bm F …
Z: "[[f3,c4,f4,a4]@6 [e4,g4]@4 [e4,g4]@4 [g3,b3,d4,g4]@9 b3 [g3,b3]!4 [g2,g3,d4]@2 g2 [d2,f3,a3,c4]@7 [g3,c4,e4]@8 [g3,b3,d4]@9 ~ d4 g3 [g3,b3]!2 [b3,d4]@2 g3 [a3,c4,f4]@7 [g3,c4,e4]@8 [g3,b3,d4]@9 g3 [g4,b4] [d4,g4,b4]!3 [d4,g4,b4]@2 d4 ~@5 f3@2 e3@3 ~@3 c3@2 [g3,b3,d4,g4]@9 g3 [g3,b3,d4]@8, ~@6 [e3,c4]@8 ~@10 [g2,d4]@2 [g2,d4]@2 b3 ~@26 g3@2 ~@3 g3 ~@45 g3@2 ~@20, ~@56 b3@2 d4@2 ~@35 [c4,f4,a4]@7 [c4,e4,g4]@7 ~@19, ~@107 e3@2 ~@19]/8", // F Em G G5 Dm7 C G Bm …
AA: "[[f3,c4,f4,a4]@6 [e4,g4]@4 [e4,g4]@4 [g3,b3,d4,g4]@9 b3 [g3,b3]!4 [g2,g3,d4]@2 g2 [d2,f3,a3,c4]@17, ~@6 [e3,c4]@8 ~@10 [g2,d4]@2 [g2,d4]@2 b3 ~@19]/3", // F Em G G5 Dm7 C G5
})).s("gm_epiano2").gain(0.39).pan(0.4)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
~@13 A@8 B ~@8 A@8 C D E F G H I J@2 K L@4 M@2 N@2 L@4 M@2 N@2 L@4 M@2 O@3
>`.pickRestart({
A: "[~@4 [a3,f4]@3 [g3,e4]@4 [g3,d4]@9 [a3,f4]@3 [g3,e4]@4 [g3,d4]@9 [f3,a4]@3 [e3,g4]@4 [d3,g4]@9 f4@4 ~@4 g#3@2 [e3,d4,g#4]@2, ~@13 a3@2 ~, ~@28 e4@3 ~]/8", // Dm C G5 Dm C G5 F Em …
B: "[c4,a4]@13 ~@3", C: "[c4,a4,a5]", D: "[c5,a5]", E: "[b4,g5]", F: "[a#4,g5]", G: "[a4,f5]", H: "[g#4,f5]",
I: "[g4,e5]@5 ~ [f#4,a5]@10", J: "[c5 b4, a5]/2", K: "g#5 g5, b4", L: "[[a4,f5]@3 [g4,e5]@4 [g4,d5]@9]/2",
M: "[[f4,a5]@3 [e4,g5]@4 [d4,g5]@9]/2", N: "[[f4,a5]@6 [e4,g5]@8 [d4,g5]@17 ~]/2",
O: "[[f4,a5]@6 [e4,g5]@8 [d4,g5]@17 [d4,f5]@17]/3", // F Em G5 Dm
})).s("gm_string_ensemble_2").gain(0.17)
// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~ A B A B A B A B A C D B E ~@8 A B A B A C D B E ~@42>".pickRestart({
A: "[c4,e4]@6 [b3,d4]@9 ~", B: "[g#3,b3]@6 [a3,c4]@9 ~", C: "[b3,d4]@3 [c4,e4]@3 [a#3,d4] ~",
D: "[a3,c4]@6 [b3,d4]@9 ~", E: "[g3,b3,d4] ~",
})).s("gm_string_ensemble_2").gain(0.1)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@22 A B A B A ~ A ~@44>".pickRestart({
A: "~@2 a4 ~@13", B: "~@12 c4 b3 a3 g#3",
})).s("gm_string_ensemble_1").gain(0.28)
// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
~@26 A B C D E@7 F G H I J K L M N O P Q@2 R@2 S@2 T@2 Q@2 R@2 S@2 T@2 Q@2 R@2 S@2 T@2 ~
>`.pickRestart({
A: "~@4 [c5,e5] ~ [b4,d5]@10", B: "[b4,g5]@3 [c5,e5]@3 [a#5,d6]@2, f#5 ~@15",
C: "[a5,c6]@7 ~@3 c5 d5 e5 ~ [d5,e5] c5", D: "d5 ~@3",
E: "[~@8 [a5,c6]@6 [g5,c6]@7 ~ [g5,b5]@18 [a5,c6]@5 ~ [g5,c6]@7 ~ [g5,b5]@17 ~ [a5,c6]@5 ~ [g5,c6]@7 ~ [g5,b5]@18 [f5,a5]@8]/7", // Am C5 G Am C5 G Am C5 …
F: "[e5,g5]@8 [d5,g#5]@7 ~", G: "[c5,a5]", H: "[c5,d#5]", I: "[b4,d5]@3 [b4,d5]", J: "[a#4,d5]@3 [a#4,d5]",
K: "[a4,c5]@12 [a4,c5]@3 ~", L: "[g#4,c5]@12 [g#4,c5]@3 ~", M: "[g4,c5]@5 ~ [a4,e5]@9 ~", N: "[a4,c5]@7 [a4,c5]",
O: "[a4,b4]@15 ~", P: "[e4,g#4,b4] ~", Q: "[[a5,c6]@6 [g5,c6]@7 ~ [g5,b5]@18]/2",
R: "[[a5,c6]@5 ~ [g5,c6]@7 ~ [g5,b5]@17 ~]/2", S: "[[a5,c6]@5 ~ [g5,c6]@7 ~ [g5,b5]@18]/2",
T: "[[d5,f5]@5 ~ [c5,e5]@7 ~ [b4,d5]@17 ~]/2", // Dm C Bm
})).s("gm_percussive_organ").gain(0.18).pan(0.6)
// other · piano · "A.PIANO 2"
const piano = note("<~@35 A B C D ~@14 E F ~@6 E F ~@6 E F ~@2>".pickRestart({
A: "~@13 d4 g4 a4", B: "b4@3 g4 b4 a4 ~ g4 a4@7 ~", C: "~@12 g#4 e4 g#4 b4", D: "a4@5 ~@11",
E: "~@9 d4 g4 a4 b4 a4 ~ g4", F: "a4@7 ~@9",
})).s("gm_piano").gain(0.48).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~ A B A C A D E C A D E F G H I H I H J@2 K A D A C A D A F G H I H I H J@2 L M D M D A E M N O P Q P Q P Q R S P Q P
Q P Q R S P Q P Q P Q R T ~
>`.pickRestart({
A: "x ~@5 x ~@8 x", B: "x ~@5 x ~@6 x!2 ~", C: "x ~@5 x ~@4 x ~@4", D: "x ~@2 x ~@4", E: "x ~@4 x!2 ~@8 x",
F: "x ~@5 x ~@4 x ~@2 x!2", G: "~@4 x ~@2 x", H: "~@6 x ~@8 x", I: "x ~@3 x ~@2 x", J: "x!2", K: "x ~@2 x!2 ~ x ~",
L: "x ~@5 x ~ x ~@2 x ~@4", M: "x ~@5 x ~ x ~@6 x", N: "x ~@6 x!2 ~@7", O: "x ~@2 x ~@5 x!3 ~@4", P: "x ~@2 x ~@3 x",
Q: "~@7 x!2 ~@7", R: "x ~@2 x ~ x ~ x", S: "~@3 x ~ x!3 ~@8", T: "~@3 x ~ x!3 ~@7 x",
})).gain(0.46)
// drums · rim
const rim = s("rim").struct("<~@6 A ~ A ~ A ~ A ~@60>".pickRestart({
A: "~@3 x",
})).gain(0.46)
// drums · snare
const snare = s("sd").struct("<~@13 A B@8 C@8 A B@16 D B@7 E B@7 E B@7 E ~>".pickRestart({
A: "x!2 ~ x", B: "~ x ~ x", C: "~@3 x", D: "~ x!3", E: "~@2 x ~ x ~@3 x ~@2 x!2 ~@3",
})).gain(0.66)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@5 [~ x ~@2]!8 ~@9 [~ x ~@2]!8 ~@43>").gain(0.39)
// drums · low tom
const low_tom = s("lt").struct(`<
~@13 A ~@3 A ~@12 A ~@3 A ~@3 B ~@8 B ~@3 B ~@3 C ~@3 B ~@3 C ~@3 B ~@3 C ~
>`.pickRestart({
A: "~@3 x ~@4", B: "~@7 x", C: "~@15 x",
})).gain(0.52)
// drums · hihat
const hihat = s("hh").struct(`<
~ A@4 B C D E F G H G I J@7 K B C D E F G H G I J@7 L J M J N J O J M P J@7 Q J@7 Q J@7 Q ~
>`.pickRestart({
A: "~ x ~ x", B: "x!2 ~ x!2 ~@3", C: "x ~@3 x ~@3 x ~@2 x ~ x ~@2", D: "x ~ x ~ x!3 ~",
E: "x ~ x ~ x ~ x ~@4 x ~ x ~@2", F: "x!2 ~@2", G: "x ~@3 x ~ x ~@5 x!2 ~@2", H: "~@2 x!2 ~@2 x!2", I: "~@4 x!4",
J: "x!8", K: "x!7 ~", L: "x!4 ~@4", M: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", N: "x ~ x ~ x!3 ~ x ~ x ~ x!2 ~@2",
O: "x ~ x ~ x ~@6 x!3 ~@2", P: "x!2 ~@6", Q: "x!5 ~@3",
})).gain(0.39)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@5 A B C D E F G F ~@9 A B C D E F G F ~@43>".pickRestart({
A: "~@2 x ~@2 x!3", B: "~ x ~ x ~ x ~@2", C: "~ x ~ x ~@3 x", D: "~@4 x!2 ~@2", E: "~ x ~ x!5", F: "~ x ~@2 x!2 ~@2",
G: "x!2 ~@2 x!2 ~@2",
})).gain(0.26)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@13 A ~@3 A ~@3 B ~@8 A ~@3 A ~@3 C ~@8 D ~@3 D ~@3 E ~@3 D ~@3 E ~@3 D ~@3 E ~
>`.pickRestart({
A: "~@5 x ~@10", B: "~@3 x", C: "~@9 x ~@3 x ~@2", D: "~@13 x ~@2", E: "~@7 x",
})).gain(0.59)
// drums · open hat
// … 45 more lines
More by Mariah Carey
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.