Strudelify

Fly Away (Butterfly reprise)

Mariah Carey

KeyE minorTempo127 bpm
0:00/0:00
// Fly Away (Butterfly reprise) — Mariah Carey
// 127 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 120 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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.

// bass · electric bass pick
const bass = note("<~@48 A B C D A B C D A B C D A B C D E@8 F@16 G@8 ~@24>".pickRestart({
  A: "c1@7 ~ a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~@2", B: "c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~",
  C: "c1@4 g1@3 e1 g1@2 e1@2 g1@2 a1 ~", D: "c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~",
  E: "[c1@7 ~ a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~ c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~ c1@8 g1@6 e1@2 g1@4 e1@4 g1@4 a1@2 ~@2 c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~ c1@7 ~ a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~@2 c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~ c1@8 g1@6 e1@2 g1@4 e1@4 g1@4 a1@2 ~@2 c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~ c1]/8",
  F: "[~@7 a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~@2 c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~ c1@8 g1@6 e1@2 g1@4 e1@4 g1@4 a1@2 ~@2 c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~ c1@7 ~ a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~@2 c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~ c1@8 g1@6 e1@2 g1@4 e1@4 g1@4 a1@2 ~@2 c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~ c1]/8",
  G: "[~@7 a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~@2 c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~ c1@8 g1@6 e1@2 g1@4 e1@4 g1@4 a1@2 ~@2 c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~ c1@7 ~ a1@6 e1@2 g1@4 e1@4 g1@4 e1@2 ~@2 c#1@7 ~ g#1@6 e1@2 f#1@3 ~ e1@4 f#1@4 e1@3 ~ c1@8 g1@6 e1@2 g1@4 e1@4 g1@4 a1@2 ~@2 c#1@7 ~ g#1@5 ~ e1@2 f#1@3 ~ e1@4 f#1@4 g#1@3 ~@2]/8",
})).s("gm_electric_bass_pick").gain(0.31)

// chords · epiano2
const epiano2 = note(`<
  A@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 D@2 C@2 D@2 C@2 D@2 ~@52 E@2 F@2 E@2 F@2
  E@2 F@2 E@2 F@2 G@4
>`.pickRestart({
  A: "[~ d4@23 ~@4 [c#4,e4,g#4,b4]@33 ~@3, [e4,g4,b4]@13 ~@19]/2", B: "[[g3,a3,c4,e4]@25 ~@3 [g#3,c#4,e4]@34 ~@2]/2",
  C: "[[e4,g4,b4]@26 ~@2 [c#4,e4,g#4,b4]@33 ~@3, d4@23 ~@41]/2", // Em C#m7
  D: "[[g3,a3,c4,e4]@25 ~@3 [g#3,e4]@34 ~@2, ~@27 c#4@34 ~@3]/2", // Am7 C#m
  E: "[[e4,g4,b4]@26 ~ [c#4,e4,g#4,b4]@33 ~@4, d4@23 ~@41]/2", F: "[[g3,a3,c4,e4]@25 ~@2 [g#3,c#4,e4]@34 ~@3]/2",
  G: "[[e4,g4,b4]@26 ~ [c#4,e4,g#4,b4]@33 ~@4 [g3,a3,e4]@25 ~@2 [g#3,c#4,e4]@34 ~@3, d4@23 ~@40 c4@23 ~@42]/4", // Em C#m7 A7 C#m
})).s("gm_epiano2").gain(0.22).pan(0.7)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 C@2 A@2 C@2 D@12 E@8 F@16 G@6 H@16 I@7 J@8 K@8 L@8 M@3
>`.pickRestart({
  A: "[[d4,g4,b4,e5]@25 ~@4 [g#4,b4]@30 ~@5, ~@29 e4@24 ~@11, ~@29 c#4@21 ~@14]/2", // Em7 G#m
  B: "[[c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3, g3@11 ~@21]/2", // C C#m7
  C: "[[c4,e4,g4]@25 ~@4 [e4,b4]@32 ~@3, g3@11 ~@3 [g#3,c#4]@16 ~@2]/2", // C E5 C#5
  D: "[[d4,g4,b4,e5]@25 ~@4 [g#4,b4]@30 ~@5 [e4,g4]@25 ~@3 [g#3,c#4,e4,b4]@32 ~@4, ~@29 e4@24 ~@11 g3@22 ~@42, ~@29 c#4@21 ~@13 c4@23 ~@42]/4", // Em7 G#m Em C#m7
  E: "[[d4,g4,b4,e5]@25 ~@4 [g#4,b4]@30 ~@5 g4@25 ~@3 [g#3,c#4,e4,b4]@32 ~@4, ~@29 e4@24 ~@11 g3@22 ~@42, ~@29 c#4@21 ~@13 [c4,e4]@25 ~@40]/4", // Em7 G#m C#m7 C
  F: "[[d4,g4,b4,e5]@25 ~@4 [g#4,b4]@30 ~@5 g3@22 ~@6 [g#3,c#4,e4,b4]@32 ~@4, ~@29 e4@24 ~@75, ~@29 c#4@21 ~@13 [c4,e4,g4]@25 ~@40]/4", // Em7 G#m C#m7 C
  G: "[[d4,g4,b4,e5]@25 ~@4 [g#4,b4]@30 ~@4 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [g#4,b4]@30 ~@4 [g3,c4,e4,g4], ~@29 e4@24 ~@104 e4@24 ~@11, ~@29 c#4@21 ~@13 g3@22 ~@72 c#4@21 ~@14]/6", // Em7 G#m C C#m7 Em7 G#m C
  H: "[~@28 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [g#4,b4]@30 ~@4 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [g#4,b4]@30 ~@4 [g3,c4,e4,g4], ~@93 e4@24 ~@104 e4@24 ~@11, ~@93 c#4@21 ~@13 g3@22 ~@72 c#4@21 ~@14]/8", // C#m7 Em7 G#m C C#m7 Em7 G#m C
  I: "[~@28 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [g#4,b4]@30 ~@4 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [e4,g#4,b4]@3, ~@93 e4@24 ~@103 c#4@4, ~@93 c#4@21 ~@13 g3@22 ~@75]/7", // C#m7 Em7 G#m C C#m7 Em7 E
  J: "[~@31 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [g#4,b4]@30 ~@4 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [e4,g#4,b4]@3, ~@31 g3@22 ~@71 c#4@21 ~@14 g3@22 ~@75, ~@125 e4@24 ~@103 c#4@4]/8", // C C#m7 Em7 G#m C C#m7 Em7 E
  K: "[~@31 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 [g#4,b4]@30 ~@4 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 e4@3, ~@31 g3@22 ~@71 c#4@21 ~@14 g3@22 ~@75, ~@125 e4@24 ~@103 [c#4,g#4,b4]@4]/8", // C C#m7 Em7 G#m C C#m7 Em7 C#7
  L: "[~@31 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 e4@24 ~@10 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@3 [d4,g4,b4,e5]@25 ~@5 e4@3, ~@31 g3@22 ~@71 [g#4,b4]@30 ~@102, ~@124 c#4@21 ~@14 g3@22 ~@71 [c#4,g#4,b4]@4]/8", // C C#m7 Em7 C C#m7 Em7 G#m C#7
  M: "[~@31 [c4,e4,g4]@25 ~@4 [g#3,c#4,e4,b4]@32 ~@4, ~@31 g3@22 ~@43]/3", // C C#m7
})).s("gm_electric_guitar_jazz").gain(0.06)

// chords · glockenspiel
const glockenspiel = note(`<
  ~@4 A@2 ~@6 A@2 ~@6 A@2 ~@6 A@2 ~@6 B@2 ~@6 C@2 ~@6 D@2 ~@6 D@2 ~@6 E@2 ~@6 F@2 ~@6 G@2 ~@34
>`.pickRestart({
  A: "[~@11 c5@2 ~@29 g7@18 ~@4, ~@13 d5@26 d7 e7 f7@19 ~@4, ~@14 e5@4 a5 b5 c6 d6 e6 f6 g6 a6 b6 c7 d7 e7 [a5,b5]@31 ~@3, ~@16 f5@45 ~@3, ~@17 g5@13 f7 [c6,g7] d6 e6 f6 g6 a6 b6 c7@23 ~@3]/2", // Asus2 C5
  B: "[~@11 c5@2 ~@29 g7@18 ~@4, ~@13 d5@26 d7 e7 f7@19 ~@4, ~@14 e5@4 a5 b5 c6 d6 e6 f6 g6 a6 b6 c7 [d7,e7] [a5,f7] b5@31 ~@3, ~@16 f5@45 ~@3, ~@17 g5@14 [c6,g7] d6 e6 f6 g6 a6 b6 c7@23 ~@3]/2", // Dsus2 Dm C5
  C: "[~@21 g7@9 ~@2, ~@11 c5@2 ~ e5@4 a5 b5 c6 d6 e6 f6 g6 a6 b6 c7 [d7,e7] [a5,b5,f7]@2 [c6,g7] d6 e6 f6 g6 a6 b6 c7@23 ~@3, ~@12 d5@27 d7@22 ~@3, ~@15 f5@25 e7@21 ~@3, ~@17 g5@24 f7@19 ~@4]/2", // Dsus2 Bm7b5 C5
  D: "[~@21 g7@9 ~@2, ~@11 c5@2 ~ e5@4 a5 b5 c6 d6 e6 f6 g6 a6 b6 [c7,d7] e7 [a5,b5,f7] g7 c6 d6 e6 f6 g6 a6 [b6,c7] d7 e7@2 f7@19 ~@4, ~@3 d5@12 ~, ~@15 f5@45 ~@4, ~@17 g5@43 ~@4]/2", // Csus2 Bm7b5 Cmaj7
  E: "[~@21 g7@9 ~@2, ~@11 c5@2 ~ e5@15 f7 [c6,g7]@2 d6 e6 [f6,g6] a6 b6 c7 d7 e7 f7@19 ~@5, ~@3 d5@12 ~, ~@15 f5@45 ~@4, ~@16 g5@2 a5 b5 c6 d6 e6 f6 g6 a6 b6 [c7,d7] e7 [a5,b5]@31 ~@4]/2", // C5 Fsus2 Csus2 Asus2
  F: "[~@21 g7@9 ~@2, ~@11 c5@2 ~ e5@15 f7 [c6,g7]@2 [d6,e6] f6 g6 a6 b6 c7 d7 e7 f7@19 ~@5, ~@3 d5@12 ~, ~@15 f5@45 ~@4, ~@16 g5@2 a5 b5 c6 d6 e6 f6 g6 a6 [b6,c7] d7 e7 [a5,b5]@31 ~@4]/2", // C5 Dsus2 Cmaj7 Asus2
  G: "[~@5 c5 ~@15 g7@9 ~@2, ~@12 d5@17 f7 [c6,g7] d6 e6 f6 g6 a6 b6 c7 d7 e7 f7@19 ~@5, ~@7 e5@23 ~@2, ~@15 f5@45 ~@4, ~@16 g5@2 a5 b5 c6 d6 [e6,f6] g6 a6 b6 c7 d7 e7 [a5,b5]@31 ~@4]/2", // C5 Fmaj7 Asus2
})).s("gm_glockenspiel").gain(0.09).pan(0)

// chords · orchestral harp
const orchestral_harp = note("<~@7 A@2 ~@6 A@2 ~@6 A@2 ~@6 B@2 ~@6 B@2 ~@6 C@2 ~@54 D@2 ~@6 E@2 ~@7>".pickRestart({
  A: "[~@19 [a6,b6]@7 ~@6, ~@18 c#4@7 a4 b4 c5 d5 [e5,f5] g5 a5 b5 c6 d6 e6@2 g6@15 ~@12, ~@11 e4@15 ~@6, ~@23 f#4@29 ~@12, ~@6 g#4@7 ~@3]/2", // Asus2 Fmaj7
  B: "[~@19 b6@7 ~@6, ~@18 c#4@7 a4 b4 c5 [d5,e5] f5 g5 a5 b5 [c6,d6] e6@2 g6 a6@14 ~@13, ~@11 e4@15 ~@6, ~@23 f#4@29 ~@12, ~@6 g#4@7 ~@3]/2", // Dsus2 Csus2
  C: "[~@19 b6@7 ~@6, ~@18 c#4@7 a4 b4 [c5,d5] e5 f5 g5 a5 [b5,c6] d6 e6@2 g6 a6@14 ~@13, ~@11 e4@15 ~@6, ~@23 f#4@29 ~@12, ~@6 g#4@7 ~@3]/2", // Csus2 Cmaj7
  D: "[~@19 b6@7 ~@6, ~@17 c#4@8 [a4,b4] c5 d5 e5 f5 [g5,a5] b5 c6 d6 e6@2 g6 a6@14 ~@13, ~@11 e4@15 ~@6, ~@23 f#4@29 ~@12, ~@6 g#4@7 ~@3]/2", // Asus2 Gsus2
  E: "[~@19 b6@7 ~@6, ~@17 c#4@8 [a4,b4]@5 [g5,a5] b5 c6 d6 e6@2 g6 a6@14 ~@13, ~@21 e4@5 c5 d5 e5 f5@23 ~@12, ~@23 f#4@29 ~@12, ~@6 g#4@7 ~@3]/2", // Asus2 Gsus2
})).s("gm_orchestral_harp").gain(0.15).pan(0.8)

// chords · orchestral harp · soft notes
const orchestral_harp_soft = note("<~@7 A@2 ~@6 A@2 ~@6 B@2 ~@6 C@2 ~@6 C@2 ~@6 C@2 ~@54 C@2 ~@6 C@2 ~@7>".pickRestart({
  A: "[~@9 f6@4 ~@3, ~@21 d#4@31 ~@12]/2", B: "[~@9 f6@4 ~@3, ~@20 d#4@31 ~@13]/2",
  C: "[~@35 f6@16 ~@13, ~@20 d#4@31 ~@13]/2",
})).s("gm_orchestral_harp").gain(0.08).pan(0.8)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@16 A@3 B C@4 D@2 E@2 F@2 G@2 H@32 I@6 J@8 K@16 L@6 M@8 N@12>".pickRestart({
  A: "[~ b5@60 ~@2 a4@33]/3", B: "~ b4@31", C: "[~@16 b5@48 a4@28 ~ b4@25 ~@10]/4",
  D: "[~ [b4,e5,b5]@27 [g#4,g#5]@35 ~, ~@28 c#5@31 ~@5]/2", E: "[[g4,c5,e5]@28 [e4,g#4]@35 ~, ~@28 c#5@31 ~@5]/2",
  F: "[~ [b4,e5,b5]@28 [g#4,g#5]@35, ~@29 c#5@32 ~@3]/2", G: "[[g4,c5,e5]@7 [e4,g#4,c#5]@8 ~]/2",
  H: "[b5@27 g#5@34 ~@2 g5@27 ~ [c#5,e5]@37 b5@27 g#5@34 ~@2 g5@27 ~ [c#5,e5]@37, e5@45 ~@19 e5@45 ~@19]/8", // C#m
  I: "[b5@27 g#5@34 ~@2 g5@27 ~ [c#5,e5]@36 ~ b5@27 g#5@34 ~@2 g5, e5@90 ~@37 e5@65]/6", // C#m
  J: "[~@27 [c#5,e5]@36 ~ b5@27 g#5@34 ~@2 g5@27 ~ [c#5,e5]@36 b5@27 g#5@34 ~@3 g5, ~@63 e5@90 ~@38 e5@65]/8", // C#m
  K: "[~@27 [c#5,e5]@36 b5@27 g#5@34 ~@3 g5@27 ~ [c#5,e5]@36 b5@27 g#5@34 ~@3 g5, ~@63 e5@90 ~@38 e5@65]/8", // C#m
  L: "[~@27 [c#5,e5]@36 b5@27 g#5@34 ~@3 g5@27 ~ [c#5,e5]@37, ~@21 e5@30 ~@13]/6", // C#m
  M: "[[b4,e5,b5]@27 ~ [g#4,c#5]@33 ~@2 [g4,c5,e5]@28 ~ e4@34 ~@2, ~@27 g#5@35 ~@29 g#4@35 ~@2, ~@91 c#5@31 ~@6]/4", // E5 C#5 C
  N: "[[b4,e5,b5]@27 ~ [g#4,c#5]@33 ~@2 [g4,c5,e5]@28 [e4,g#4]@35 ~@2, ~@27 g#5@35 ~@29 c#5@31 ~@6]/4", // E5 C#5 C E
})).s("gm_string_ensemble_2").gain(0.15)

// chords · clavinet
const clavinet = note(`<
  ~@56 A B C D A B C D A B C D A B C D A B E D F B E D F B E D F B G D F B G D F H I D ~@24
>`.pickRestart({
  A: "[e4,g4] ~ [e4,g4] ~ [e4,b4]@2 [e4,g4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4] ~ [e4,g4,b4] ~@2 [e4,g4,b4] ~ [e4,g4] ~@8 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~, b4@4 g4 ~@27", // Em E5 Em C#m
  B: "[e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4] ~ g#4 ~@23", // C#m E
  C: "[e4,a4,c5] ~ [e4,a4,c5] ~ [e4,a4,c5] ~ [e4,a4,c5] ~ [e4,a4,c5] ~ [e4,a4,c5] ~ [e4,a4] ~@14 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4,c#5]", // Am A5 C#m
  D: "~ [e4,g#4,c#5] ~ g#4 ~ g#4 ~ g#4 ~ [e4,g#4] ~@22, ~@3 e4@5 ~@24", // C#m E
  E: "[e4,a4,c5] ~ [e4,a4,c5] c5 [e4,a4] ~ [e4,a4,c5] e4 [a4,c5] ~ [e4,a4,c5] ~ [e4,a4] ~@14 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4,c#5]", // Am A5 Am A5 C#m
  F: "[e4,g4] ~ [e4,g4] ~ [e4,b4]@2 [e4,g4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4] ~@9 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~, b4@4 g4 ~@27", // Em E5 Em C#m
  G: "[e4,a4,c5] ~ [e4,a4,c5]!2 ~ [e4,c5] a4 [e4,c5] a4 e4 [a4,c5] ~ [e4,a4] ~@14 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4,c#5]", // Am C Am A5 C#m
  H: "[e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4] ~ g#4 ~@22 [a4,c5]", // C#m E Am
  I: "e4 c5 [e4,a4] [e4,a4,c5] ~ [e4,a4,c5] ~ [e4,a4,c5] ~ [e4,c5] a4 ~ [e4,a4] ~@14 [e4,g#4,c#5] ~ [e4,g#4,c#5] ~ [e4,g#4,c#5]", // A5 Am C A5 C#m
})).s("gm_clavinet").gain(0.2).pan(0.4)

// chords · clavinet · soft notes
const clavinet_soft = note(`<
  ~@56 A B C D A B C D A B C D A B C D A B C E F B C E F B C E F B C E F B C E F B C E ~@24
>`.pickRestart({
  A: "~@6 b4 ~@5 b4 ~@6 b4 ~@12", B: "~@6 c#5 ~ [e4,c#5] ~ [e4,g#4] ~ [e4,g#4] ~ g#4 ~@17, ~@10 c#5@5 ~@17",
  C: "~@12 c5 ~ [e4,a4,c5] ~ [e4,c5] ~@15", D: "~@3 c#5@2 c#5@5 ~@2 g#4 g#4@2 ~@17, ~@11 [e4,c#5]@4 ~@17",
  E: "~@3 c#5@2 c#5@5 ~ g#4 ~ g#4@2 ~@17, ~@11 [e4,c#5]@4 ~@17", F: "~@6 b4 ~@5 b4 ~@5 b4 ~@13",
})).s("gm_clavinet").gain(0.08).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@40
  [x!4]!24
  [x ~@7 x ~@7 x ~@7 x ~@6 x]
  [~@7 x ~@7 x ~@7 x ~@7 x]!34
  [~@7 x ~@7 x ~@7 x ~@8]
  ~@20
>`).gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@48
  [x!4]!16
  [x ~@7 x ~@7 x ~@7 x ~@6 x]
  [~@7 x ~@7 x ~@7 x ~@7 x]!30
  [~@7 x ~@7 x ~@7 x ~@8]
  ~@24
>`).gain(0.27)

// drums · open hat
const open_hat = s("oh").struct("<~@48 [~ x ~ x ~ x ~ x]!17 [~@3 x ~@7 x ~@7 x ~@7 x ~@4]!31 ~@24>").gain(0.27)

// drums · crash
const crash = s("cr").struct("<~@40 A ~@6 B ~@8 A ~@14 B ~@7 B ~@7 B ~@7 B ~@24>".pickRestart({
  A: "x", B: "~@31 x",
})).gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct("<~@32 [x!16]!16 ~@72>").gain(0.18)

// drums · triangle
const triangle = s("triangles:30").struct(`<
  ~@40
  [x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2]!24
  [x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@4 x]
  [~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x]!30
  [~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@6]
  ~@24
>`).gain(3.19)

// drums · triangle
const triangle_2 = s("triangles:35").struct("<~@40 [~ x ~ x ~ x ~ x]!25 [~@3 x ~@7 x ~@7 x ~@7 x ~@4]!31 ~@24>")
  .gain(3.19)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@7
  [x!2 ~ x!7 ~ x!5 ~ x!4 ~ x!4 ~ x!3 ~ x]
  [x!4 ~ x!2 ~ x ~@23]
  ~@22
  [x!4 ~ x!6 ~ x!5 ~ x!4 ~ x!4 ~ x!4]
  [~ x!3 ~ x!2 ~ x ~@23]
  ~@87
>`).gain(0.18)

// drums · rim
const rim = s("rim").struct("<~@48 [~ x ~ x]!17 [~@7 x ~@15 x ~@8]!31 ~@24>").gain(0.46)

stack(
  bass, epiano2, electric_guitar_jazz, glockenspiel, orchestral_harp, orchestral_harp_soft, string_ensemble_2, clavinet,
  clavinet_soft, kick, hihat, open_hat, crash, tambourine, triangle, triangle_2, shaker, rim
)

More by Mariah Carey