0:00/0:00
// The Wind — Mariah Carey
// 64 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 71 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(64/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 · piano
const piano = note(`<
A@2 B@8 C D E F@4 G@4 H I J K L M N O@4 P Q R S@3 T U V W X@2 Y Z@2 AA AB@2 AC@2 AD@3 AE@2 AF AG AH AI@3 AJ@8
>`.pickRestart({
A: "[~@48 d4@6 [ab3,d4,g4]@27 ~@5 c5@9 ~, ~@9 c4@8 ~@7, ~@9 d4@3 [a3,f4]@5 ~@7, ~@21 [b3,eb4]@13 ~@14]/2", // G Dm B
B: "[~@76 [g2,a3,c4,f4]@30 ~@2 a3@4 ~@4 [ab3,b3,db4]@13 ~@22 bb3@2 g3@2 ~@26 [a3,d6]@54 g4@8 ~@12 d4@18 c5@5 ~ [c3,eb4,ab4,d5]@6 [g3,c5]@5 ~ [eb4,g4,d5]@34 ~@8 c5@5 ~@13 d4@24 c5@3 bb4@2 ~ c5@3, ~ [f3,d4,bb4]@41 bb6@29 eb5 g5@34 ~@28 f6@3 bb5 g5 f5@2 eb5 c5 bb4 g4 f4@2 eb4@2 c4@4 ~@3 [c2,c3]@82 ~@11 g3@16 ~@26 d4@42 ~@12 [b3,eb4,a4,d5]@30 ~@9, ~ [g2,f4]@36 f6@70 ~@25 g6@21 ~@231, ~@10 c5@8 c4@22 eb6@29 c5@38 ~@28 eb6@18 ~@231, ~@18 [ab2,g3,eb4,g4]@89 ~@5 f3@17 ~@7 c6@17 ~@27 [g3,d4]@57 ~@6 [c3,eb4,g4,d5]@22 ~@74 [c3,f5]@36 ~@9]/8", // F Db7 D5 Ab C5 Ebmaj7 Bb C …
C: "~@19 g4@5 ~ [eb4,a4,b4]@14 ~@3 c5@5 ~, ~@3 [f3,ab4,d5]@19 ~@3 f3@17 ~@6, ~@4 c4@7 ~@13, ~@7 d4@4 ~@13", // B7 Ddim
D: "[ab4,c5,eb5,g5]@16 ~@3 f5@5, [f2,eb3]", E: "~@8 ab5@37 ~@3, ~ [bb2,ab3,db5,f5,bb5]@21 ~@2",
F: "[~@27 f5@6 ~@13 [eb4,g5]@39 ~@8 [a2,g3,eb4,g4,a4,d5]@15 d5@4 ~@2 [gb4,a4,eb5]@15 ~@9 [f3,eb4,ab4,b4]@37 ~@4 [g2,f3,f4,g4,bb4]@10 c5@3, ~ [eb3,db4,db5,ab5]@34 ~@10 [ab3,g4,eb5,c6]@39 ~@30 [d3,c4]@18 ~@5 g2@37 ~@18, ~ bb5@17 bb5@16 ~@158, ~@13 c6@21 ~@5 eb6@45 ~@108, ~@22 g5@11 eb5@12 ~@87 d5@42 ~@5 db5@9 ~@4]/4", // Eb Dsus4 Ebdim Fm7b5 Gm7 Dbsus2 Abmaj7 D7
G: "[~ c5@3 ~@10 ab4@5 bb4@4 ~@36 eb4@4 f4@4 ~@10 ab4@4 ab4@3 ~ [g2,f3,b3,d4,g4]@17 f4@5 ~@6 eb4@5 ~@13 [g3,d4]@12 ~@7 eb4@4 ~@14 f4@13 ~@6 c4@5, ~@4 [c3,bb3,e4,gb4,c5]@16 ~@5 [f2,eb4,f4]@30 ~@13 [d3,ab3,c4,d4,g4]@14 ~@26 [c3,c4,f4]@10 ~ [bb2,c4]@24 ~@16 eb4@22 ~ eb4@9 ~, ~@9 bb4@10 ~@5 ab4@30 ~@19 bb4@9 ~@72 gb4@9 gb4@18 ~@11, ~@26 c4@29 ~@90 c4@8 ~ c4@33 ~@5, ~@49 eb2@15 ~@67 [a2,eb3]@21 ~@2 [ab2,gb3]@37 ~]/4", // G7 G5 C7 F7 Csus2 F5 Bbsus2 Adim …
H: "~@42 ab4@5 ~, [g2,f3]@29 ~@7 [g2,f3,bb3,bb4]@11 ~, [a3,c4,eb4]@23 ~ [a3,b3]@23 ~, ~@12 d4@19 ~@17", // G7 Gm7 Adim Asus2
I: "~@6 g3@5 ~ d4@6 ~@3 c4@2 ~, c2@21 ~@3 [c2,eb3,g3,bb3]@22 ~@2, ~@6 c4 ~, ~@39 d4@7 ~@2", // Cm7
J: "c2@12 ~@9 eb4@2 ~, [eb3,ab3,d4]@29 ~@7 c4@10 ~@2, ~@12 c2@11 ~, ~@39 f4@7 ~@2", // Ab
K: "c2@24 ~@12 c4@3 c4@3 c4@5 ~, [eb3,a3,d4]@5 ~@3, ~@24 c2@23 ~", // D
L: "[f2,ab3,c4,eb4,g4]@19 ~@20 bb4@6 g4@2 ~, ~@12 [f2,a3,b3,eb4,g4]@11 ~", // Fm7
M: "~@36 f4@3 ~ bb4@3 ~@5, [ab3,c4,eb4,ab4]@19 ~@5, f2@24 f2@19 ~@5, ~@3 g4@34 ~@11", // Ab
N: "~@24 ab2@19 ~@5, [bb3,db4,f4,bb4]@19 ~@5, ab2 ~, ~@12 ab4@29 ~@7", // Bbm
O: "[[eb3,db4,f4,ab4]@19 ~@29 c5@12 ~@36 [a2,eb3,g3,c4,d4]@24 ~@6 a3@9 ~@33 f2@19 ~@5, ~@24 [eb3,db4]@15 f4@5 ~@4 eb4@42 eb4@30 c4@18 c4@43 ~@11, ~@24 bb4@8 bb4@10 eb5@21 c5@9 ab2@48 [d2,gb3,eb4]@22 ~@2 [g2,f3,g3]@38 ~@10, ~@28 c5@16 ~@4 ab2@12 bb4@23 ~@109, ~@36 g4@8 ~@4 [eb3,g4]@38 ~@49 a3@7 ~@8 bb3@37 ~@5]/4", // Db Am7b5 Eb7 D G7 Eb
P: "~@6 db4@17 ~ db4@4 ~@6 c4@13 ~, [eb2,db3,g3]@23 ~ [d2,c3,gb3]@22 ~@2, ~@4 f4@20 ~@4 f4@19 ~, ~@15 db4@8 ~", // Eb7 D7
Q: "[db3,b3,db4,f4,bb4]@5 ~ [c3,bb3,c4,e4,a4]@5 ~ [b2,a3,b3,eb4,ab4]@12", // Bbm Am Abm
R: "~@6 d4 eb4 [bb2,ab3,c4,eb4,f4]@7 ~, [bb2,ab3,c4,eb4,f4]@11 ~@13, ~@8 bb3@3 ~@13", // Fm7
S: "[[bb2,g3,bb3,d4,f4]@18 g4@5 ~@7 c5@3 ~@15 [bb2,ab3,c4,eb4,f4]@24 ~@6 g4@4 ~@8 f4@5 ~@13 bb3@28 eb2@2 eb2@5 ~, ~@24 [bb2,g3,ab4]@22 ~@26 [bb2,ab3,c4]@22 ~@2 [eb2,d3,g3,c4]@41 ~@7, ~@34 c5@12 ~@36 bb4@13 ~@49, ~@12 bb4@11 ~ eb4@22 ~@2, ~@42 g4@5 ~@25]/3", // Gm7 Fm7 Eb Fm Cm
T: "~@18 ab4@3 ~ bb4@2 ~@12 b2@10 ~@2, [ab2,gb3,b3,eb4,gb4] [d3,eb4,f4,ab4,bb4]", // Abm7 Bb7
U: "~@6 ab4@6 ~@6 f5@5 ~@7 db5@16 ~@2, [bb2,ab3,db4]@11 ~ [eb3,bb3,gb4,bb4,eb5]@11 ~, f4@6 [f4,ab4,eb5]@5 ~@13", // Bbm7 Ebm Fm7
V: "[e2,d3,b3,d4]@10 ~@8 g4@5 ~@13 d2@10 g4@2, ~@12 [a2,g3,db4,gb4]@10 ~@2 [c4,d4,gb4,a4]@21 ~@3, ~@2 d2 ~, ~@28 g4@17 ~@3", // E7 Gbm D7
W: "~@6 [g2,c4,d4,f4]@5 ~@7 d5@5 ~, [g2,c4,d4,f4,a4]@5 ~@7 [g2,f3,b3,eb4,f4]@12, ~@3 g4@8 ~@13", // Gsus4 Dm7 Gaug
X: "[~@12 ab3@10 ~@2 a3@10 ~@2 bb3@10 ~@38 d5@6 c5@5 ~, eb4@70 ~@8 g5@15 ~@3, g4@46 ~@2 [g4,c5,eb5]@45 ~@3, c3@22 ~@2 c3@22 ~@2 [c3,a3]@21 ~@3 c3@21 ~@3, [g3,d5]@6 c5@40 ~@14 ab3@33 ~@3]/2", // Cm F G5
Y: "~@38 eb5@6 c5 ~ bb4 ~, c3@11 ~@13, [eb4,a4,d5] [eb4,a4,d5]@2, ~@3 g3@8 ~@13, ~@4 d4@11 ~", // D
Z: "[[eb4,g4]@6 [c4,eb4,g4]@16 ~@20 eb5@4 ~@2 [ab4,c5,eb5,g5]@31 ~@9 g5@4 f5@4, [f2,eb3,c5]@22 ~@2 [f2,f3,d4,g4,b4]@22 ~@2 [g2,eb3]@39 ~@9, ~@36 c5@10 f5@33 ~@17, ~@40 d5@7 ~@49]/2", // Eb Cm Abmaj7 F7 G7 Cm
AA: "[bb4,db5,f5,ab5]@30 ~@12 f5@5 ~, [bb2,ab3]@47 ~", // Bbm7 Bb7
AB: "[[db5,f5,ab5,c6]@10 ~@8 bb5@4 ab5@2 ~@18 d5@3 eb5@3 [c5,eb5,g5,c6]@22 ~@12 g3@2 ~@6 d4@4 eb4@2, [eb3,db4]@23 ~ [eb3,db4,a4,db5,g5]@22 ~@2 [ab2,eb3]@46 ~@2, ~@12 [db5,f5,ab5,c6]@11 ~@13 bb4@34 ~@14 eb4@10 ~@2, ~@44 f4@3 ~]/2", // Dbmaj7 Cm Eb7 Ab5 Dbmaj7
AC: "[~@24 [d3,f3]@21 ~@3 g2@24 g2@22 ~@2, a3@45 ~ a3@48 ~@2, [ab2,g3,eb4]@11 ~@13 [f3,ab3,b3]@24, ~@2 d4@21 ~@25]/2", // Dm Abmaj7 Fdim
AD: "[[g2,f3,g3,bb3,db4]@18 f4@3 ~@69 d4@4 ~@12 ab4@2 ~@12 [g2,f3,b3,d4]@22 f4@2, ~@22 g4@14 [g4,c5]@9 [ab4,c5]@3 f2@24 eb2@23 ~@7 bb4@10 g4@30 ~@2, ~@24 [c3,e4,ab4]@22 f5@39 ~@11 g4@12 ab4@9 ~@27, ~@8 bb3@4 [eb3,bb3]@16 ~@4 [d3,ab3,c4,d4]@7 ~@9, ~@15 bb4@6 eb5@21 ~@5 f4@12 ~@13]/3", // Gm7b5 G7 C5 Ab Caug Eb5 Dm7b5
AE: "[~@42 c4@4 ~@44 eb4@5 ~, g3@23 ~@7 g4@5 ~@13, [c3,f4]@6 bb2@6 [a2,eb3]@11 ~ [ab2,gb3,bb3,gb4]@11 ~ [g2,f3,b3]@11 ~, ~@4 eb4@34 ~@8 eb4@11 eb4@13 ~@26, ~@6 c4@31 ~@17 f4@12 f4@28 ~@2]/2", // F5 Adim Ebm G7
AF: "~@6 bb2@5 ~ [a2,eb3]@11 ~, g3@23 ~, [c3,d4]@11 ~@13, ~@6 c4@17 ~", // Adim Csus2
AG: "[ab2,gb3,bb3,eb4]@22 ~@20 c5@3 g4@2 ~, ~@12 [g2,f3,b3,d4]@11 ~, ~@13 g4@2 ~", // Ebm G7
AH: "~@6 c4@6 bb2@10 ~@20 c4@3 eb4@2 ~, [c3,g3,g4]@11 ~ [ab2,eb3]@11 ~, ~ f4@10 ~@13, ~@2 eb4@9 ~@13, ~@2 c4@5 ~", // C5 Ab5
AI: "[~@6 f4@6 ~@6 eb4@5 ~@16 f4@27 ~@24 ab4@3 ab4@2 ~ f4@2 f4@15 ~@14 d4@5 [ab3,d4,g4]@12, [ab2,gb3,bb3,gb4]@22 ~@2 [gb3,bb3,gb4]@42 ~@11 db5@3 bb5@3 g5@13 ~@48, ~@12 f4@10 ~@3 [ab2,db4]@41 ~@2 g2@44 ~@11 [b3,eb4]@21, ~@79 bb4@17 ~@22 d4@9 [a3,f4]@17, ~@40 [f3,b3,eb4]@16 ~@3 c4@13]/3", // G Ebm Gb Db5 B Dm Fm7b5
AJ: "[~@2 c5@6 ~@11 c5@6 ~@3 g4@33 ~@17 f4@4 eb4@3 ~@66 g3@19 ~@85 c6@96 ~@33, ~@10 f3@15 ~@49 gb4@10 ~@2 gb4@82 ~@22 c4@55 g5@96 ~@43, ~@11 [g2,f4]@14 ~@2 [ab2,g3,c4,eb4]@34 ~ [g2,f3,a3,c4,g4]@22 ~@5 [g2,f3,b3,db4,f4]@79 ~@3 [c2,g2,eb4,g4]@45 d5@96 ~@72, ~@12 [d4,bb4]@13 ~@37 f4@16 ~@28 g4@61 ~@36 c5@96 ~@85, ~@125 eb4@43 ~@4 [d4,b4]@53 eb5@96 ~@63]/8", // G7 Abmaj7 F G7 Cm Gm G
})).s("gm_piano").gain(0.27)
// bass · acoustic bass
const bass = note(`<
~@21 A B C B D E F G H I J K L M N O@2 P Q R@2 S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI AJ@3 ~@3 AK@2 ~@3
>`.pickRestart({
A: "~@42 c3@5 ~", B: "c2@13 g2 c3@2", C: "~@13 g2 c3@2", D: "f2@6 ~ g2", E: "f2@14 ~ f2", F: "bb1@15 ~",
G: "~ eb2@21 ~@23 eb2@2 ~", H: "ab1@39 ~ ab2 f2@2 ~@3 bb1@2", I: "a1@25 d2@15 ~ d2@2 f2@5", J: "~ g2@43 ~@2 g2@2",
K: "~ eb2@23 d2@19 ~@5", L: "~ db2@12 c2@11 ~ b1@19 d2@2 c2@2", M: "bb1@45 ~ bb2@2",
N: "~ bb1@32 ~@3 bb2@4 f2@4 d2@4", O: "[bb1@33 ~@3 bb2@3 g2@4 f2@4 eb2@40 f2@2 ~ bb2@4 f2 ~]/2",
P: "~ ab1@18 ~@3 bb1@3 db2@11 b1@11 ~", Q: "~ bb1@16 d2@2 ~ f2@2 ~@2 eb2@21 ~@3",
R: "[~ e1@11 a1@12 d2@11 g1@29 ~@2 f2@2 d2@2 ~@3 g1@14 ~@2 g1@2 a1@2 bb1@2 ~]/2", S: "c2@11 ~", T: "~@25 c2@23",
U: "c2@36 ~@4 c2@3 g2@3 c2@2", V: "~ f2@21 ~@2 f2@15 ~@6 g2@2 ~, ~@22 a2 ~",
W: "[f2@45 ~@2 f2@2 bb1@39 ~@2 bb2@2 g2@2 f2@2]/2", X: "eb2@23 ~@2 eb2@15 ~@2 eb2@2 db2@3 ~",
Y: "~ ab1@38 ~@3 eb2@3 bb1@3", Z: "~ a1@23 d2@23 ~", AA: "g1@39 ~@4 d2@2 c2@2 ~", AB: "g1@21 ~@3 c2@12 g2@10 ~@2",
AC: "f2@23 ~ eb2@24", AD: "d2@19 ~@3 d2 ~ g1@19 ~@3 g1@2", AE: "c2@12 bb1@12 a1@23 ~",
AF: "ab1@17 ~@5 ab1@2 g1@21 ~@3", AG: "c2@12 ~ bb1@11 a1@21 ~@3",
AH: "ab1@15 ~@6 ab1@2 ~ g1@19 ~@3 g1@2, ~@10 bb1 ~@13", AI: "~ c2@11 bb1@11 ~ a1@22 ~@2",
AJ: "[ab1@18 ~@6 ab1@44 ~@8 ab1@2 g1@53 ~@13]/3", AK: "[~@27 c2@64 ~@5]/2",
})).s("gm_acoustic_bass").gain(0.34)
// bass · acoustic bass · soft notes
const bass_soft = note("<~@23 A ~ B ~ C D ~@10 E ~ F ~@9 G ~@19>".pickRestart({
A: "c2@13 ~@3", B: "~@13 bb2 ~@2", C: "~@23 ab2", D: "~@24 eb2@17 ~@7", E: "~@22 bb2@3 ~@23", F: "~@23 a1@2 ~@23",
G: "~@41 f2@2 ~@5",
})).s("gm_acoustic_bass").gain(0.19)
// other · vibraphone
const vibraphone = note("<~@24 A B ~@2 C ~@3 D E F G ~@2 H@2 ~@3 I J ~@2 K L M ~ N O ~@2 P ~ Q@2 R ~@11>".pickRestart({
A: "~@11 bb4 c5@5 bb4@3 g4@16 ~@12", B: "~@7 g5 eb5@7 ~", C: "~ c6@24 g5@18 ~@5",
D: "~@13 d4@4 f4@4 g4@2 ~@2 bb4@2 ~@2 c5@18 ~", E: "~@13 gb4@11 ~@24, ~ [c4,e4] ~@2", F: "~@36 f4@4 ~ ab4@4 bb4@3",
G: "~ c5@19 ~@28", H: "[~@37 ab4@4 ~@5 db5@3 bb4@19 ~@28, ~@35 eb4@4 ~@57, ~@9 f4 ~@14]/2",
I: "~@31 g5@7 ~@2 d5 eb5@4 c5@3", J: "~ d5@5 ~ d5@26 ~@15", K: "~@6 f4@17 ~", L: "~ bb4@26 ~@21",
M: "~@26 bb4@2 ab4 ~@2 g4@2 f4@14 ~, ~@25 ab4@2 ~@21", N: "~@8 d5@25 ~@15, ~@2 d4 ~@13, ~@7 gb4@2 ~@39",
O: "~@7 c5@2 bb4@2 g4@24 ~@13", P: "~@13 g5@5 ~ c5@5 eb5@24, ~@6 eb5 ~@17",
Q: "[~@19 bb4@2 c5@2 d5@2 eb5@5 d5@3 c5@2 ~@4 g4@13 ~@44]/2", R: "~@12 eb5 g5@5 ~ eb5@24 ~@5",
})).s("gm_vibraphone").gain(0.17).pan(0.7)
// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@23 A B@2 ~@5 C ~@2 D E ~ F ~ G H ~@14 I ~@7 J K ~@2 L@3 ~>".pickRestart({
A: "~@12 [c4,eb4,f4]@4 [c4,eb4,g4]@4 [eb4,g4,bb4]@4 ~ [f4,g4,c5,eb5]@6 [g4,c5,eb5]@10 ~@7", // F7 Cm Eb Cm
B: "[~@8 [eb4,g4,c5]@2 [eb4,g4,d5]@2 [g4,ab4,c5,f5]@2 ~ f5@11 ~@22, ~@29 [g4,ab4,c5]@15 ~@52]/2", // Cm Ebmaj7 Fm Abmaj7
C: "~@11 f4@2 g4@4 f4@3 ~ eb4@3 ~ d4@17 ~@6, ~@10 db4@3 ~@35", D: "~@35 bb3@4 c4@2 ~@3 [c4,eb4]@2 ~@2",
E: "~ [bb3,d4,f4]@23 ~@24", F: "~@12 bb3@4 c4@4 eb4@2 ~@2 g4@4 f4@4 ~ eb4@2 ~ c4@12, ~@24 f4 ~@23",
G: "~@18 bb3@2 db4@2 f4 ~", H: "gb4 g4@39 ~@8", I: "~@11 f4 g4@6 c4@6 eb4@24", J: "~@36 bb3@2 c4@2 eb4@3 ~ f4@2 g4@2",
K: "~ bb4 ~@5 c5@3 ~@3 c5@24 ~@11, ~@6 bb4@2 ~@3 bb4@25 ~@12",
L: "[~@7 d4@2 eb4@2 f4@3 g4@2 ~@4 bb4 c5@6 bb4@8 ~@2 g4@5 ~@2 [eb4,f4]@7 ~ d4@10 ~ eb4@7 c4@39 ~@35, ~@35 eb4@8 ~@101]/3", // Ebsus2
})).s("gm_electric_guitar_jazz").gain(0.15).pan(0.2)
// chords · tremolo strings
const tremolo_strings = note("<~@24 A ~@12 B ~@4 C@3 ~@2 D ~@13 E ~@4 F@4 ~>".pickRestart({
A: "~ g3@42 ~@5, [c4,d4]@7 ~", B: "[bb3,g4]", C: "[[ab3,c4,eb4]@49 ~@23]/3", D: "[c4,f4,ab4]@47 ~",
E: "[gb3,bb3,db4]@23 ~", F: "[~@30 [c4,eb4,g4,b4]@137 ~@25]/4",
})).s("gm_tremolo_strings").gain(0.03).pan(0.3)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@22 A@3 B C@3 D@2 E F G H I H J K L M@2 N@2 O P@3 Q R S T U V W X Y Z Y AA AB@3 ~ AC@6 ~
>`.pickRestart({
A: "[g3 ab3 a3, [c4,d4]]/3", B: "c4 b3, [f3,g3]", C: "[[c4,f4] db4 [bb3,eb4], ab3 ~, ~ f4@2, ~@2 bb3 ~@3]/3",
D: "[ab3@2 a3 [gb3,d4], c4, eb4@3 ~]/2", E: "~ f4, [g3,bb3,d4]", F: "[g3,bb3,eb4] [gb3,c4,d4]",
G: "[f3,ab3,db4] [e3,g3,c4] [eb3,gb3,b3]@2", H: "[ab3,c4,f4]", I: "[bb3,d4,f4]", J: "[g3,bb3,d4]",
K: "gb4 f4, [b3,eb4]", L: "[ab3,f4] [bb3,gb4], db4",
M: "[[g3,b3,d4]@6 [a3,db4,gb4]@6 a3@12 g3@11 ~ d4@12, ~ [c4,f4]@3]/2", N: "[a3 bb3 b3 c4 a3 bb3@3, [g3,eb4]]/2",
O: "[g3,a3,c4,d4]", P: "[[bb3,c4] [b3,d4] [c4,g4]@2 [db4,f4]@2, ab3]/3", Q: "[c4,f4,ab4]@2 [a3,d4] [bb3,c4], ~ g4",
R: "[c4,eb4,g4]", S: "[eb4,g4] [d4,gb4], c4", T: "[d4,f4], ab3@3 ~", U: "[db4,f4]@2 e4 ab4, bb3, ~ c4",
V: "[f3,ab3,c4]", W: "[f3,a3,d4] [f3,d4], ~@2 g3 ~", X: "[c4,eb4] bb3 a3@2, g3", Y: "[ab3,c4,eb4] [g3,b3,f4]",
Z: "~ bb3 a3@2, [g3,c4,eb4]", AA: "c4 bb3 a3@2, [g3,eb4]",
AB: "[[ab3,c4,eb4]@6 [gb3,bb3,db4]@11 [g3,b3,f4]@16 ~@3]/3", AC: "[~@14 [c2,c3]@109 [g3,b3,c4,eb4]@140 ~@25]/6",
})).s("gm_string_ensemble_1").gain(0.12)
// other · string ensemble 2
const string_ensemble_2 = note(`<
~@23 A@2 ~@4 B C ~@4 D E F G@3 ~ H I J K ~ L@2 M ~ N O@2 ~ P ~ Q ~@6 R@6 ~
>`.pickRestart({
A: "[~@7 c3@6 eb3@7 f3@6 g3@6 bb3@5 c4@5 ~ d4@43 ~@10]/2", B: "~@24 bb3@12 c4@11 ~", C: "d4@7 ~",
D: "~@24 f4@11 ~ g4@12", E: "bb4@23 ~ c5@12 d5@11 ~", F: "bb4", G: "[~@35 g4@6 f4@5 ~ ab4@18 ~ eb5@17 bb4@37 ~@24]/3",
H: "g3@11 ~ ab3@12 a3@12 bb3@11 ~", I: "g3@13 ab3@10 a3@13 bb3@12", J: "~@30 f3@7 g3@6 ab3@5",
K: "~ bb3@16 c4@7 eb4@24", L: "[~@66 f3@6 ab3@5 bb3@7 c4@6 db4@6, ~ ab4@72 ~@23]/2", M: "~@2 ab3@45 ~",
N: "~ d4@40 ~@7", O: "[~ g3@5 ab3@6 bb3@7 c4@72 ~@5]/2", P: "~ c3@2 bb2@3 a2@6", Q: "~@2 eb4@2 d4@2 eb4@7 ~@3",
R: "[~@20 bb4@27 g4@78 g6@138 ~@25]/6",
})).s("gm_string_ensemble_2").gain(0.19)
// drums · clap
const clap = s("cp").struct("<~@22 A ~ A ~@5 A ~@2 B ~@7 C ~@29>".pickRestart({
A: "~@17 x ~@6", B: "~@29 x ~@18", C: "~@29 x ~@14 x ~@3",
})).gain(0.24)
// drums · snare
const snare = s("sd").struct(`<
~@22
[x!2 ~@2 x!2 ~@2]!19
[x!2 ~@6]
[x!2 ~@2 x!2 ~@2]!15
[x ~@5 x ~@17 x ~@5 x ~@6 x ~@4 x ~@4 x]
[x!2 ~@2 x!2 ~@2]!2
~@11
>`).gain(0.16)
// drums · low tom
const low_tom = s("lt").struct("<~@41 [~@37 x ~@2 x ~@7] ~@29>").gain(0.2)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~@22 [~ x ~ x]!38 ~@11>").gain(0.36)
// drums · mid tom
const mid_tom = s("mt").struct("<~@41 [~@2 x] ~@29>").gain(0.2)
// drums · crash
const crash = s("cr").struct("<~ A ~@5 B ~@14 C ~@41 D ~ A ~@4>".pickRestart({
A: "~ x ~@4", B: "~ x ~@14", C: "x", D: "~@11 x ~@4",
})).gain(0.16)
// drums · ride
const ride = s("rd").struct("<~@3 A ~@23 B C D E ~ F E ~@2 G H ~@2 I J K L ~ M N O P Q ~@4 K ~@4 K ~@11>".pickRestart({
A: "~@2 x ~ x ~@2 x ~@40", B: "~@23 x", C: "~ x ~@38 x ~@7", D: "x ~@22 x", E: "x", F: "~@47 x", G: "~@7 x",
H: "~ x ~@43 x ~ x", I: "~@8 x ~@2 x!2 ~@5 x ~@5", J: "~@11 x!2 ~@11", K: "~ x ~@46", L: "~@28 x ~@6 x!2 ~@11",
M: "~@13 x ~@10 x ~@23", N: "~@5 x ~@4 x ~ x ~@35", O: "~@14 x ~@2 x!2 ~@5", P: "~@13 x ~@20 x ~ x ~@11",
Q: "~@28 x ~@6 x ~ x ~@10",
})).gain(0.2)
stack(
piano, bass, bass_soft, vibraphone, electric_guitar_jazz, tremolo_strings, string_ensemble_1, string_ensemble_2, clap,
snare, low_tom, pedal_hat, mid_tom, crash, ride
)
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.