Strudelify

When You Believe (From the Prince of Egypt)

Mariah Carey

KeyB majorTempo67 bpm
0:00/0:00
// When You Believe (From the Prince of Egypt) — Mariah Carey
// 67 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 31, 4/4 at bar 32) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 70 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(67/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("<~@29 A B ~@7 C D ~@24 E F@2 G@2 ~>".pickRestart({
  A: "~@36 b6@2 ~@4 a6@2 ~ b6@3", B: "a6@7 ~@17", C: "~@12 [a4,c#5]@5 ~ [c#5,e5]@3 ~@3 [c#5,e5]@17 ~@7",
  D: "~@6 [c#5,e5]@6 [b4,d#5]@3 ~@3 [e5,g#5]@3 ~@3 [e5,g#5]@2 ~@22", E: "~@45 a#5@2 ~",
  F: "[g#5@3 a#5@6 [f#5,c#6]@3 ~@2 [f#5,c#6]@9 ~@24 f#7@2 ~ f7@5 ~@4 [a#5,f6]@2 ~ [a#5,d#6]@5 ~@7 [a#5,c#6]@12 ~@7 f#5@2 ~, ~@11 f#6@3 ~@10]/2", // F#5 A#5 D#5 A#m
  G: "[g#5@3 a#5@6 [f#5,c#6]@3 ~@2 [f#5,c#6]@9 ~@24 f#7@2 ~ f7@5 ~@19 [a#5,c#6]@12 ~@10, ~@11 f#6@3 ~@10]/2", // F#5 A#m
})).s("gm_piano").gain(0.18).pan(0.8)

// chords · epiano1
const epiano1 = note("<~@2 A@3 B C@2 D E@5 F G H I@8 B J@2 K L@5 M@5 ~@12 N@4 O@5 P ~@9>".pickRestart({
  A: "[~ d4@13 ~@4 d4@4 ~@14 e5@12 ~@7 c#4@16 ~@13 f#3@12 ~@19 a3@5 ~@18 f#4@6, ~ [b3,f#4,b4]@23 a4@60 b4@36 a4@10 ~@2 a4@12, ~@24 [a3,e4]@24 f#3@23 b2@23 ~@2 [b2,d4]@23 ~ [d3,f#3,a3,d4]@24, ~@30 c#5@20 ~@27 d3@17 ~@15 f#3@11 ~@6 d5@17 ~, ~@78 d4@17 ~@25 f#4@16 ~@8]/3", // B5 A5 Bm D
  B: "~ [e3,g3,b3]@19 ~@5 f#4@6 ~@6 f#4@8 ~@3, ~ [e4,b4]@24 [f#3,c#4,c#5]@21 ~@2, ~@31 a4@14 ~@3", // Em E5 F#5
  C: "[~@7 d#5@5 ~ d#5@10 ~@12 c#4@11 ~@8 c#5@6 a3@2 ~@3 [f#3,d4,f#4]@6 ~@7 a4@18, [b3,f#4,b4]@11 ~@4 a3@9 ~@12 [b3,b4]@12, f#3@18 ~@5 e3@21 ~@4 [e3,c#4,e4,a4]@16 ~@32, ~ b2@23 [a2,e4,c#5]@23 a2@24 [b2,d3,d4]@24 ~, ~ d#4@19 ~@51 f#4@10 ~@15]/2", // D B5 B A Bm
  D: "~@7 b4 ~@10 d5@6 ~ f#4@3 ~@2 e3 ~@5 e4@6 d3@6, ~ d4@29 f#4@16 ~@2, ~ [g2,g3,g4]@23 [d2,a4]@24, ~@12 [b3,b4]@12 d3@17 ~@7", // G D5 B
  E: "[~@18 e3@7 [e3,a4]@39 ~@3 a5@5 ~ e5@14 ~@10 [f#3,a4]@44 ~@50 b2@23 ~@3 [f#3,a4]@20 ~@3, e2@15 ~@9 [d3,d4]@11 ~@25, ~ e4@60 ~@82 [c#4,e4]@42 ~@5 d4@23 ~@3 c#4@24, ~ [e3,b3]@12 b3@12 c#4@35 ~@35 a3@45 ~@2 a3@40 ~@2 b3@28 ~@2 a3@22 ~@4, ~@6 g4@18 ~@120 a4@44 ~@3 f#4@49]/5", // A5 F#m D C#m E5
  F: "~ [g2,d4,g4]@22 ~ [a2,c#4,e4]@21 ~@3, ~@23 a3@21 ~@4", G: "~@2 d5@39 ~ d5@6, ~ f#4@39 ~ [d4,f#4]@5 ~@2, ~ d3@23",
  H: "~@37 c#5@3 ~@2 b4@3 a4@3, [a3,e4]@23 ~, ~ a4@42 ~@5", // A5
  I: "[~ [b3,b4]@20 ~@4 a4@21 ~@51 [e3,g4]@21 ~@3 a4@21 ~@2 [b2,d#3,f#3,f#4,b4]@52 ~@21 [d5,f#5,b5]@34 ~@25 e5@12 ~@7 c#4@16 ~@13 f#3@12 ~@19 a3@5 ~@18 f#4@6, d3@23 g#4@2 ~@22 d4@2 d3@47 ~@48 a#2 ~@143 f#3@23 b2@23 ~@2 [b2,d4]@23 ~ [d3,f#3,a3,d4]@24, ~ d4@16 ~@4 f#4@23 ~@2 b3@37 ~@2 e4@30 ~@4 c#4@21 ~@2 b3@53 ~@75 c#5@20 ~@34 b4@36 a4@10 ~@2 a4@12, ~@24 f#3@23 ~ g3@48 ~@22 a3@25 ~@121 [a3,e4]@25 ~@29 [d3,d4]@17 ~@14 f#3@11 ~@6 d5@17 ~, ~@48 b4@36 ~@5 e5@3 b4@26 ~@2 e4@20 ~@3 d#4@53 ~@68 a4@60 ~@36 f#4@16 ~@8]/8", // B Em B Bm D A5 D
  J: "[~@7 d#5@5 ~ d#5@10 ~@13 c#4@10 ~@8 c#5@6 a3@2 ~@3 [f#3,d4,f#4]@6 ~@7 a4@18, [f#4,b4]@22 ~@2 [e4,c#5]@23 ~@25 f#4@10 ~@14, ~ [b2,b3]@23 ~ a2@22 a2@24 ~ [b2,b3,d4,b4]@24, ~ [f#3,d#4]@19 ~@3 e3@21 ~@4 [e3,c#4,e4,a4]@16 ~@7 d3@24 ~, ~@5 a3@3 ~@8]/2", // D B5 C#m B Bm D#m A
  K: "~@7 b4 ~@10 d5@6 ~ f#4@3 ~@9 e4@5 d3@6, ~ d4@29 f#4@16 ~@2, ~ [g2,g3,g4]@23 [d2,a4]@24, ~@12 [b3,b4]@12 d3@17 ~@7", // G D5 B
  L: "[~@18 e3@7 [e3,a4]@39 ~@9 [g#3,b4]@44 ~@50 c#3@23 ~@3 [g#3,b4]@20 ~@4 [a2,e4,a4]@22 b3, e2@15 ~@3 [e3,e4]@11 ~@31, ~ e4@60 ~@58 [d#4,f#4]@42 ~@5 e4@23 ~@3 d#4@24 ~@24, ~ [e3,b3]@12 b3@12 c#4@35 ~@11 b3@45 ~@2 b3@40 ~@2 c#4@28 ~@2 b3@22 ~@28, ~@6 g4@18 ~@96 b4@44 ~@3 g#4@50 ~@23]/5", // A5 G#m A5 E D#m E5
  M: "[[b2,d#4,f#4]@21 ~@5 e5@39 ~ e5@6 ~@37 d#5@3 ~@2 c#5@3 b4@3 ~ [c#4,c#5]@20 ~@4 b4@21 ~@3 e3@47 ~@24, ~@25 g#4@39 ~ [e4,g#4]@5 ~@2 [b3,f#4]@46 ~@2 e3@22 ~ a#4@2 ~@22 e4@36 ~@37, ~@26 e3@46 ~ b4@42 ~@6 e4@16 ~@4 g#4@23 ~@2 c#4@37 ~@37, ~@144 g#3@23 ~ a3@48 ~@24, ~@14 c#5@3 ~@3]/5", // B C# E B5
  N: "[~@27 [f#3,a#3,c#5]@44 ~@51 d#3@23 ~@2 [a#3,c#5]@20 ~@4 [b2,f#4,b4]@21, ~@25 c#4@45 ~@2 c#4@40 ~@2 d#4@28 ~@3 c#4@22 ~@25, ~@26 f#4@44 ~@3 f4@42 ~@5 f#4@23 ~@3 f4@24 ~@22, ~@74 g#4@42 ~@5 a#4@50 ~@21, ~@75 c#5@44 ~@73]/4", // F# A#m B5
  O: "[~@3 [c#3,g#4]@20 ~@5 f#5@39 ~@2 f#5@6 ~@36 f5@3 ~@2 d#5@4 c#5@3 [f#3,d#4,d#5]@20 ~@4 [a#3,c#5]@21 ~@3 d#5@36 ~@4 g#5@4 ~@4 [a#3,a#4]@21, ~ c#4@21 ~@6 f#3@46 ~@97 [f#3,b3]@48 ~@21, ~@2 f4@21 ~@4 a#4@39 ~ f#4@5 ~@3 [c#4,g#4]@46 ~@2 f#4@16 ~@7 c5@2 ~@21 f#4@36 ~@2 f#4@30 ~@3, ~@68 a#4@5 ~@2 c#5@42 ~@26 a#4@23 ~@2 d#4@37 ~@10 d#5@25]/5", // C#5 D#m A#m A# B5 C#5
  P: "~ c#5@7 ~@8, c#4@25 ~@23, ~ f4@21 ~@26, ~ g#4@10 ~@13",
})).s("gm_epiano1").gain(0.17)

// chords · epiano1 · soft notes
const epiano1_soft = note(`<
  ~@3 A@2 B C D ~@3 E F G@2 H I J K ~@4 A@2 L C M N ~ O@3 P Q@3 R@2 ~@12 S@3 T U@3 V@2 ~@10
>`.pickRestart({
  A: "[~@13 c#5@6 ~@77, ~ f#4@71 ~@24]/2", B: "g4@24 ~ a#4 ~@22", C: "~@37 a4@11",
  D: "~@23 a#4 ~@13 f#4@11, ~@11 a4 ~@12", E: "f#4@43 ~@5", F: "c#3@13 ~@3", G: "[b4@23 ~@24 b3@21 ~@28]/2",
  H: "~ d4@39 ~@8", I: "~ c#5@35 ~@12", J: "f#4@18 d4@4 ~@2 g4 c#4@17 ~@6", K: "g4@35 ~@13", L: "~ g4@24 a#4 ~@22",
  M: "~@24 a#4 ~@12 f#4@11, ~@23 a4@2 ~@23", N: "~@30 e3 ~@17", O: "[~@24 g#4@43 ~@5 d#3@39 ~@9 c#5@23 ~]/3",
  P: "~@23 c#4@21 ~@4", Q: "[~@25 e4@39 ~@9 d#5@35 ~@12 g#4@18 e4@3 ~@3]/3", R: "[a4 d#4@17 ~@6 a4@35 ~@37]/2",
  S: "[~@26 a#4@43 ~@6 f3@39 ~@8 d#5@22]/3", T: "~@26 d#4@21 ~", U: "[~@27 f#4@39 ~@9 f5@35 ~@12 a#4@19 f#4@3]/3",
  V: "[~@2 b4 f4@17 ~@6 b4@35 ~@35]/2",
})).s("gm_epiano1").gain(0.1)

// bass · electric bass finger
const bass = note(`<
  ~@10 A B C D E B F G H I D ~ J K L M N O L P Q@4 R@3 S@2 T@4 U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN ~
  AO@2 AP@4
>`.pickRestart({
  A: "~@7 f#2", B: "d2@6 d1@36 d2@5 ~", C: "c#2@6 c#1@36 c#2@5 ~", D: "b1@47 ~", E: "g1@23 ~ a1@17 ~ a1@5 ~",
  F: "c#2@6 c#1@41 ~", G: "b1@23 ~ f#1@23 ~", H: "g1@47 ~", I: "e1@23 ~ a1@23 ~", J: "b1@7 ~@2 b1@2 ~ a1@10 ~@2",
  K: "f#1@14 ~@4 f#1@4 ~@2 b1@15 ~@3 f#2@4 ~@2", L: "b1@15 ~@3 b1@4 ~@2 a1@21 ~@3", M: "e1@7 ~ f#1@7 ~",
  N: "b1@14 ~@4 b1@4 ~@2 c#2@23 ~", O: "a1@14 ~@4 e2@4 ~@2 f#2@15 ~@3 f#2@4 ~@2", P: "e1@15 ~@3 d2@4 ~@2 c#2@24",
  Q: "[~@12 g#2@12 e2@6 e1@36 e2@5 ~ d#2@6 d#1@36 d#2@5 ~ c#2@47 ~ a1@23 ~]/4",
  R: "[b1@17 ~ b1@5 ~ e2@6 e1@36 e2@5 ~ d#2@6 d#1@41 ~ c#2@23 ~]/3", S: "[g#1@23 ~ a1@47 ~ f#1@23 ~]/2",
  T: "[b1@23 ~ e2@39 ~@3 b1@5 ~ c#2@45 ~@3 g#1@39 ~@9 b1@21 ~@3]/4", U: "a1@21 ~@3 c#2@15 ~@3 c#2@5 ~",
  V: "d#2@21 ~@3 e2@15 ~@3 e2@5 ~", W: "d#2@11 ~ c#2@10 ~@2 c#2@21 ~@3", X: "d#2@21 ~@3 e2@16 ~@2 e1@5 ~",
  Y: "f#1@10 ~@2 g#1@11 ~ a1@16 ~@2 a1@5 ~", Z: "a1@15 ~@3 a1@5 ~ b1@17 ~ b1@4 ~@2",
  AA: "b1@6 b2@10 ~@2 b1@5 ~ c#2@13 ~@2 c#2@2 ~ c#2@4 ~@2", AB: "c#2@7 ~ b1@7 ~", AC: "~@26 f#2@15 ~@3 f#2@4",
  AD: "~@2 f#2@17 ~@7 f2@15 ~@3 f2@4", AE: "~@2 f2@11 ~ a#1@5 ~ c#2@5 ~ d#2@15 ~@3 d#2@4",
  AF: "~@2 c#2@15 ~@3 c#2@5 ~ b1@15 ~@3 b1@4", AG: "~@2 c#2@11 ~ c#2@5 ~ f2@5 ~ f#1@15 ~@3 f#1@4",
  AH: "~@2 f#1@11 ~ c#2@5 ~ f#2@5 ~ f2@15 ~@3 f2@4", AI: "~@2 f2@11 ~ a#1@5 ~ f2@5 ~ d#2@15 ~@3 d#2@4",
  AJ: "~@2 a#1@15 ~@3 a#1@5 ~ b1@13 ~@2 f#1@3 b1@4", AK: "~@2 b0@15 ~@3 c#2@5 ~ d#2@15 ~@3 d#2@4",
  AL: "~@2 a#1@15 ~@3 a#1@5 ~ g#1@11 ~ f1@5 ~ d#1@4", AM: "~ c#1@11 ~ d#1@11",
  AN: "~@2 c#2@10 ~@2 c#2@8 ~@4 b1@11 ~@11", AO: "[~@26 f#2@28 ~@2 c#3@5 ~ f#3@12 d#3@22]/2",
  AP: "[~@8 a#2@5 ~ d#2@10 ~@2 f#2@28 ~@2 c#3@5 ~ f#3@10 ~@2 d#3@46 ~@2 f#1@47 ~@23]/4",
})).s("gm_electric_bass_finger").gain(0.38)

// other · glockenspiel
const glockenspiel = note(`<
  ~@2 A B C D A B C E ~@2 F ~ G ~ H I ~@9 J ~@11 K L M N ~@8 O P Q R S T Q U V W X ~@2 Y Z AA Z AB ~
>`.pickRestart({
  A: "b5 ~@5 f#6 ~@5 f#6 ~@5 d6 ~@5 e6 ~@23", B: "a5 ~@5 e6 ~@5 e6 ~@5 c#6 ~@5 b5 ~@5 a5 ~@5 f#5 ~@11",
  C: "b5 ~@5 c#6 ~@5 d6 ~@5 e6 ~@5 f#6 ~@5 b6 ~@5 a6 ~@11", D: "d6 ~@5 b5 ~@5 c#6 ~@5 d6 ~@5 c#6 ~@23",
  E: "d6 ~@5 b5 ~@5 c#6 ~@5 d6 ~@5 e6 ~@23", F: "~@18 f#6 ~@5 e6 ~@23", G: "~@24 f#6 ~@11 e6 ~@11",
  H: "~@17 f#6 ~@6 e6 ~@23", I: "~@6 d6 ~@5 e6 ~@4 f#6 ~@6 c#6 ~@23",
  J: "b5 ~@5 e6 ~@5 e6 ~@5 b5 ~@5 b6 ~@5 a6 ~@5 f#6 ~@11", K: "~@23 g#5 ~@11 g#5 ~@6 f#5 ~@4 g#5",
  L: "~@5 b5 ~@5 b5 ~@11 g#5 ~@11 g#5 ~@11 e5", M: "~@24 g#5 ~@11 g#5 ~@11", N: "~@11 b5 ~@11 d#5 ~@24",
  O: "~@32 f#6 ~@5 f#6 ~@5 g#6 ~@3", P: "~@2 a#6 ~@11 c#7 ~@17 g#6 ~@5 c#6 ~@5 a#6 ~@3",
  Q: "~@2 g#6 ~@29 f#6 ~@5 g#6 ~@5 a#6 ~@3", R: "~@2 f6 ~@17 c#6 ~@5 d#6 ~@5 c#6 ~@5 a#5 ~@5 g#5 ~@3",
  S: "~@2 a#5 ~@29 f#6 ~@5 f#6 ~@5 g#6 ~@3", T: "~@2 a#6 ~@5 c#7 ~@5 c#7 ~@17 g#6 ~@5 c#6 ~@5 a#6 ~@3",
  U: "~@2 c#7 ~@17 c#6 ~@5 d#6 ~@5 f#6 ~@5 f#6 ~@9", V: "~@23 d#6 ~@8 f#6 ~@5 f#6 ~@9",
  W: "~@32 g#6 ~@5 c#6 ~@5 a#6 ~@3", X: "~@2 g#6 ~@17 f#6 ~@5 f#6 ~@21", Y: "~@45 a#6 ~@2",
  Z: "~@3 a#6 ~@5 c#7 ~@4 c#7 ~@29 f#7 ~@2 f#8", AA: "~@2 f8 ~@11 d#7 ~@11 c#7 ~@18 f#6 ~@2",
  AB: "~@2 f8 ~@23 c#7 ~@21",
})).s("gm_glockenspiel").gain(0.13).pan(0.3)

// other · glockenspiel · soft notes
const glockenspiel_soft = note("<~@40 A B C ~@9 D ~@12 E F E ~@2>".pickRestart({
  A: "~@41 f#5 ~@6", B: "~@41 f#5 ~@5 g#5", C: "~@5 b5 ~@35 e5 ~@5 c#5", D: "~@8 c#7 ~@39", E: "g#6 ~@47",
  F: "~@11 f7 ~@36",
})).s("gm_glockenspiel").gain(0.07).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note("<A@3 ~@8 B@7 C@2 D@2 E@3 F@5 G@5 H I@8 J@2 K@8 L M@5 N O P ~ Q@6>".pickRestart({
  A: "[~ [f#1,b2]@4 ~, b3@5 ~]/3", // B5
  B: "[[d3,f#3,d4]@47 [c#3,a3,c#4]@48 ~@25 [f#2,c#4]@23 ~ [g2,g3]@22 ~ f#4@12 e4@12 ~ d4@47 [c#3,c#4]@47 ~ [b2,b3,d4]@25 [c#3,c#4]@23 ~, ~@95 [b2,b3]@25 ~@47 c#4@24 d3@48 ~@97, ~@96 f#3@46 ~ b3@22 ~@2 a3@119 ~ f#4@49]/7", // D F#m F#5 G C# Bm C# B
  C: "[g4@36 ~@12 e3@23 ~ a3@23 ~, d4@47 e4@49, ~@36 g3@35 [c#3,c#4]@25]/2", D: "[~@3 b2@25 ~@20]/2",
  E: "[[d4,f#4]@24 [c#4,e4]@23 ~ f#3@22 ~ d4@24 ~@24 a3@25, ~@24 a3@47 f#3@73, ~@47 c#4@23 ~@25 d3@45 ~@4]/3", // D C#m
  F: "[[g3,b3]@21 ~@7 c#4@19 [b3,f#4]@24 [a3,a4]@48 b3@24 ~ g3@22 ~ [f#3,f#4]@24 [e3,e4,g4,b4]@30 ~@19, ~@21 a3@26 ~@24 e4@46 ~@2 b4@47 a4@25 ~@49, ~@143 d4@45 ~@52, ~@143 g4@25 ~@72]/5", // G B5 A F# Em
  G: "[~@24 e5@44 g#5@3 d#5@41 e5@4 d#5@4 e5@17 d#5@3 c#5@4 ~ d#5@10 c#5@6 b4@6 a4@24 ~ b4@48, ~@24 b4@94 ~@2 g#4@45 ~@26 [d#4,f#4]@24 ~@25, ~@24 g#5@41 ~@6 b5@36 ~@133]/5", // D#m
  H: "~@11 c#5@5 ~ b4@4 ~@3 [f#4,b4]@24", // B5
  I: "[~@5 g#4@2 ~ f#4@3 g#4@6 f#4@6 ~ c#5@23 ~ d#4@9 ~@8 d#5@5 ~@49 f#4@24 ~ b4@23 ~ [e4,g#4,b4,e5,g#5]@48 [c#5,e5]@38 f#5@3 g#5@3 b5@3 [d#4,g#4,b4,d#5,g#5]@48 ~ [e4,a4,c#5,e5]@23 [f#4,b4,d#5,f#5]@21 ~@4 [c#5,e5,g#5,b5]@23 ~, ~@23 g#4@47 ~@2 [a4,c#5]@72 ~@72 [e4,g#4]@45 ~@123, ~@23 e4@21 ~@3 g#3@23 ~ [a3,e5]@48 ~@24 [b3,d#5]@24 ~@217, ~@47 b4@14 ~@58 f#5@45 ~@220]/8", // E C#m G#m A B C#m7 A E …
  J: "[[b4,d#5,f#5]@22 ~@2 a5@12 g#5@12 f#5@11 e5@12 ~ [e5,g#5,c#6,e6]@24, ~@23 e5@35 ~@38, ~@24 b4@47 ~@25]/2", // B C#m
  K: "[[d#5,b5,d#6,f#6]@24 [e5,g#5,b5]@48 [a4,c#5,e5]@47 ~ b4@47 ~ [c#5,e5,g#5]@47 [b4,d#5,f#5]@50 ~ a#5@41 ~@3 a#5@3 ~ f5@40 f#5@4 f5@4 ~@17 f5@4 d#5, ~@119 [d#5,f#5]@48 ~@99 c#5@94 ~@2 [d#5,f#5]@19 ~@3, ~@266 f#5@45 ~@2 c#6@36 ~@35, ~@307 g#5@47 ~@9 a#4@21]/8", // B E A C#m B D#m
  L: "~@3 f5@11 d#5@6 c#5@5 ~ [f#4,d#5]@22, ~@2 c#5@12 ~@11 b4@23", // D#m
  M: "[~@2 [f4,g#4]@24 ~@36 d#5@5 ~ c#5@4 ~@2 g#4@30 a#4@3 g#4@3 a#4@6 ~@6 [d#4,f#4,d#5]@23 ~ f4@9 ~@9 [c#5,f5]@5 ~ [b4,d#5,f#5]@48 [f#4,a#4,d#5]@22, ~@2 c#5@60 ~@12 c#5@46 ~ a#4@47 ~@72, ~@26 f#4@46 ~@44 g#4@9 ~@20 c#5@14 ~@81, ~@146 a#3@23 b3@48 ~@23]/5", // Fm D#m C# B D#m
  N: "~@2 [f4,a#4,c#5]@23 ~ [f#4,b4,d#5]@22", O: "~ [g#4,c#5,f5]@11 ~ [f#4,a#4,d#5]@11",
  P: "~@2 [f4,a#4,c#5]@24 ~ [f#4,a#4] ~@20, ~@13 c#5 ~@10", Q: "[~@27 f#6@239 ~@22]/6",
})).s("gm_string_ensemble_1").gain(0.23).pan(0.6)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
  ~@13 A@2 ~@2 B@3 ~@2 C D@3 E F ~@3 G@2 H I@3 J ~@2 K@2 ~@2 L ~@10 M@3 ~@2 N@2 ~@2 O@6
>`.pickRestart({
  A: "[~@24 a3@23 d4@22 ~@2 a2@25]/2", B: "[~@47 b3@73 ~@24, ~@46 d3@49 ~@49]/3", C: "b3@23 ~@25",
  D: "[~@23 b3@48 ~@24 e3@24 ~ c4@2 ~@22, ~@119 f#3@25]/3", E: "[d#4,b4]@11 c#5@13", F: "~@24 d4@23 ~, ~@22 f#4@23 ~@3",
  G: "[~@17 f#5@47 ~@7 c#5@19 ~@6]/2", H: "b4 ~ c#5@2, ~@23 e4@23 ~@2",
  I: "[~@24 e4@46 a4@2 ~ d#4@41 ~@6 c#4@24, ~@23 [b3,g#4]@47 ~@2 b3@48 ~@24]/3", J: "~@17 b4@6 ~@25",
  K: "[~@24 g#5@37 ~@35]/2", L: "b5@11 ~@13", M: "[~@26 c#4@46 b4@2 ~ f4@41 ~@28, ~@25 a#4@44 ~@5 c#4@48 ~@22]/3",
  N: "[~@47 f#4@2 ~@47]/2", O: "[~@27 [f#5,c#6]@239 ~@22]/6",
})).s("gm_string_ensemble_1").gain(0.11).pan(0.6)

// chords · pad warm
const pad_warm = note(`<
  ~@11 A B@2 C D E F@2 G ~@2 H I@2 J K@2 L M@5 N@3 O@2 P@5 Q R S@8 T U@3 V@2 W X Y ~ Z@6
>`.pickRestart({
  A: "[d3,f#3,a3]@23 ~", B: "[[c#3,e3,a3]@46 ~ [d3,f#3,b3]@24 ~ [f#3,a3]@24, ~@71 c#3@24 ~]/2",
  C: "[d3,g3,b3]@23 ~ [c#3,e3,a3]@24", D: "[d3,f#3,a3]@47 ~", E: "[c#3,e3,a3]@47 ~",
  F: "[[d3,f#3,b3]@23 ~ [c#3,f#3,a3]@23 ~ [d3,g3]@47 ~, ~@47 b2@47 ~@2]/2", G: "[b2,e3,g3]@23 ~ [c#3,e3,a3]@22 ~@2",
  H: "[d3,f#3,b3]@24 [c#3,e3,a3]@23 ~", I: "[[c#3,f#3,a3]@23 ~ b3@47 ~ [d3,f#3,a3]@24, ~@23 [d3,f#3]@47 ~@26]/2",
  J: "~ [e3,g3,b3]@22 ~ [f#3,a3,c#4]@23 ~", K: "[[d#3,f#3,b3]@24 ~ e3@46 ~ [d3,f#3,b3]@23 ~, ~@24 [c#3,a3]@47 ~@25]/2",
  L: "[d3,g3,b3]@24 [d3,f#3,a3]@23 ~", // G D
  M: "[[e3,g3,b3]@24 [c#3,e3,a3]@37 ~@11 [e3,g#3,b3]@46 ~@2 [d#3,f#3,b3]@46 ~ [e3,g#3,c#4]@24 ~ [g#3,b3]@24 [e3,a3,c#4]@23 ~, ~@191 d#3@24 ~@25]/5", // Em A E B C#m G#m A
  N: "[[d#3,f#3,b3]@24 [e3,g#3,b3]@47 ~ [d#3,f#3,b3]@47 ~ [e3,g#3,c#4]@23 ~]/3", // B E B C#m
  O: "[[d#3,g#3,b3]@23 ~ [e3,a3]@47 ~ [c#3,f#3,a3]@23 ~, ~@23 c#3@47 ~@26]/2", // G#m A5 F#m
  P: "[[d#3,f#3,b3]@22 ~@2 [e3,g#3,b3]@47 ~ [e3,g#3,c#4]@46 ~ [d#3,g#3,b3]@48 ~ [e3,a3,c#4]@23 [f#3,b3,d#4]@24 [c#4,e4,g#4]@24 ~]/5", // B E C#m G#m A B C#m
  Q: "[d#4,f#4,b4]@22 ~@2 [e4,g#4,b4]@23 ~", R: "[d#4,f#4,b4]@24 [c#4,e4,g#4]@23 ~",
  S: "[[d#4,f#4,b4]@23 ~ [e4,g#4,b4]@47 ~ [a3,c#4,e4]@47 ~ b3@47 ~ [c#4,e4,g#4]@47 [b3,d#4,f#4]@50 ~@2 [f#3,a#3,c#4]@46 ~ [f3,g#3,c#4]@46 ~@2 [f#3,a#3,d#4]@22, ~@119 [d#4,f#4]@48 ~@217]/8", // B E A C#m B F# C# D#m
  T: "~ [a#3,c#4]@12 [f#3,b3,d#4]@11, ~ f3@24 ~@23", // A#m B
  U: "[~@2 [f3,g#3,c#4]@24 ~ [f#3,a#3]@47 ~ [g#3,c#4]@47 [f#3,a#3,d#4]@22, ~@26 c#4@47 ~ f3@47 ~@23]/3", // C# F# C#5 D#m
  V: "[~@2 [f3,a#3,c#4]@24 [d#3,f#3,b3]@47 ~ [f#3,a#3,d#4]@22]/2", W: "~ [f3,a#3,c#4]@12 [f#3,b3,d#4]@11",
  X: "~@2 [g#3,c#4,f4]@23 ~ [f#3,a#3,d#4]@22", Y: "~ [f3,a#3,c#4]@12 ~@11", Z: "[~@27 [f#3,c#4,f#4]@239 ~@22]/6",
})).s("gm_pad_warm").gain(0.09).pan(0.3)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@11 A B@2 C@3 D@2 ~@51>".pickRestart({
  A: "f#4@11 ~@5", B: "[~@47 d4@25 ~@24, ~@15 f#3@9 ~@8, ~@23 b3@13 ~@12]/2",
  C: "[~@24 f#4@12 ~@24 d5@19 ~@12 [a4,d5]@2 ~@3 c#5@21 ~@27, ~@36 e4@16 ~@2 a4@25 ~@16 a4@21 ~@28, ~@48 f#4@30 ~@12 f#4@2 ~@2 e4@21 ~@29]/3", // D5
  D: "[~@36 f#4@8 e4 ~ d4@3 b3@19 ~@28]/2",
})).s("gm_electric_guitar_jazz").gain(0.24).pan(0.3)

// other · lead 3 calliope
const lead_3_calliope = note("<~@39 A@5 ~@26>".pickRestart({
  A: "[~@23 g#5@11 ~ g#5@6 ~ f#5@5 g#5@6 b5@5 ~ b5@12 g#5@11 ~ g#5@6 f#5@6 e5@18 ~@7 g#5@11 ~ g#5@5 f#5@6 g#5@6 b5@5 ~ b5@12 d#5@18 e5@6 c#5@20 ~@29]/5",
})).s("gm_lead_3_calliope").gain(0.22).pan(0.6)

// other · timpani
const timpani = note("<~@50 [~@24 b2!24] [b2!9 ~ b2!9 ~ b2!6 ~@22] ~@18>").s("gm_timpani").gain(0.22).pan(0.3)

// other · electric guitar clean
const electric_guitar_clean = note("<~@34 A@2 ~@11 B ~@22>".pickRestart({
  A: "[g#4@12 f#4@7 ~@5 g#4@6 ~@8 e5@22 ~@4 c#5 d#5 e5@6 d#5@23 ~, ~@15 b4@13 ~@20]/2", B: "f#3 g#3 ~@2",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@11 A B A@3 B A@5 C@7 A D@21 E F@10 G ~@7>".pickRestart({
  A: "x", B: "x ~@6 x", C: "x ~@2 x!2 ~@3", D: "x ~@3 x ~@2 x", E: "x ~@12 x ~@8 x ~", F: "~ x ~@11 x ~@8 x ~",
  G: "~ x ~@11 x ~@10",
})).gain(0.57)

// drums · rim
const rim = s("rim").struct("<~@22 [~ x ~ x]!8 [~@3 x] [~ x ~ x]!8 [~ x ~@2] ~@30>").gain(0.71)

// drums · snare
const snare = s("sd").struct("<~@39 [~@3 x] [~ x ~ x]!11 [~@19 x ~@4] [~@7 x ~@11 x ~@4]!10 [~@7 x ~@5 x ~@10] ~@7>")
  .gain(0.57)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A B@8 C D E D@3 F D@2 C G C D@6 C H D@3 I D@3 E J D K D K D E D L D L K ~@11 M ~@7
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "~ x!7", D: "x!8", E: "x!3 ~ x!4", F: "x!7 ~", G: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2",
  H: "x!2 ~@3 x!3", I: "x ~ x ~ x!2 ~@2 x ~ x ~ x ~ x ~", J: "x ~ x ~ x!2 ~@4 x ~ x ~ x ~", K: "x!4 ~ x!3",
  L: "x!3 ~@2 x!3", M: "~@13 x ~@10",
})).gain(0.57)

// drums · low tom
const low_tom = s("lt").struct("<~@55 [~@23 x ~@24] ~@3 [~@5 x ~@6]!2 ~@9>").gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@43 A ~@3 B ~@7 C ~@3 D@2 ~@9>".pickRestart({
  A: "~@2 x!2 ~@4", B: "~@3 x ~@4", C: "~@7 x ~@2 x ~@13", D: "~@14 x ~@2 x ~@30",
// … 26 more lines

More by Mariah Carey