Strudelify

The Wind

Mariah Carey

KeyE♭ majorTempo64 bpm
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