Strudelify

A Natural Woman

Celine Dion

KeyA majorTempo102 bpm
0:00/0:00
// A Natural Woman — Celine Dion
// 102 bpm, 6/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 63 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(102/6)

// 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 · fretless bass · "Remixed"
const bass = note(`<
  A@4 B ~@3 C ~@3 C D E F G H I J@2 K@3 L M@2 N@3 E F G H I O@2 P@4 Q R@4 S T@4 U@8 V@4
>`.pickRestart({
  A: "[~@47 e1@2 ~ a1@24 a1@21 a1@3 g#1@23 ~ g#0@18 e1@3 f#1@2 ~ g1@20 ~ e1@3 g1@7 ~ g1@7 ~ g1@6]/4",
  B: "d#1 ~ e1@3 ~@43", C: "~@2 d1@21 ~@25", D: "~@2 b0@23 ~ c#1@22", E: "~ b0@12 c#1@8 c#2@3", F: "~ b0@12 c#1@11",
  G: "~@2 b0@24 e1@19 ~ e1@2", H: "~@2 a1@20 ~ a1@3 d2@16 f#1@6", I: "~@2 a1@19 ~@2 a1@3 d2@16 f#1@6",
  J: "[~@2 a1@4 ~@38 a1@2 ~ a#1@2 ~ b1@18 ~@3 d#2@3 e2@4 ~@18]/2",
  K: "[~@2 a0@24 a1@20 ~ a1@3 g#1@42 e1@3 f#1@2 ~ g1@24 g0@22]/3", L: "~@2 d1@20 ~ d2 ~@2 d2@8 c#2@8 b1@6",
  M: "[~@2 a0@24 a1@21 a1@3 g#1@32 e1@8 f#1@6]/2",
  N: "[~@2 g1@24 g0@18 b0@2 ~ c#1@2 ~ d1@24 d2@5 d2@3 d2@5 d2@3 c#2@5 c#2@3 b1@23 ~ c#1@22]/3",
  O: "[~@2 a1@4 ~@41 a#1@2 ~ b1@18 ~@3 d#2@3 e2@7 ~ e2@7 ~ e2@6]/2",
  P: "[~@2 a1@19 ~@2 a1@2 ~ a0@19 ~@2 c#1@2 ~ e1@22 ~@2 e1@22]/2", Q: "~@2 d1@22 ~@2 d1@8 b0@7 ~ g0@6",
  R: "[~@2 a0@22 ~@2 a1@18 b1@2 ~ c#2@2 ~ d2@4 ~@17 d2@2 ~ c#2@4 ~@17 c#2@3 b1@3 ~@18 b1@3 a1@5 b1@3 c#2@5 a1@3 c#2@5 a1@2 ~ g1@3 ~@18 g1@2 ~ f#1@4 ~@18]/4",
  S: "~@2 e1@4 ~ e1@4 ~@15 f1@7 ~ f1@6 ~@2 f1@6",
  T: "[~@2 a#1@18 c1@3 d1@3 d#1@13 d#2@3 a#1@5 c2@3 a#1@17 ~ c1@3 d1@2 ~ d#1@13 d#2@3 a#1@5 c2@3 a#1@2 ~@6 g2@8 f2@8 d2@8 c2@8 a#1@5 g1@3 c2@24 f2@7 ~ f2@7 ~ f2@6]/4",
  U: "[~@2 a#1@18 c1@3 d1@3 d#1@13 d#2@3 a#1@5 c2@3 a#1@17 ~ c1@3 d1@2 ~ d#1@13 d#2@3 a#1@5 c2@3 a#1@2 ~@6 g2@8 f2@8 d2@8 c2@8 a#1@5 g1@3 c2@12 ~ a#1@3 c2@5 d#2@2 ~ f2@12 ~ g2@3 a#2@5 g2@2 ~ a#1@18 c1@3 d1@3 d#1@13 d#2@3 a#1@5 c2@3 a#1@17 ~ c1@3 d1@2 ~ d#1@13 d#2@3 a#1@5 c2@3 a#1@2 ~@6 g2@8 f2@8 d2@8 c2@8 a#1@5 g1@3 c2@24 f2@7 ~ f2@7 ~ f2@6]/8",
  V: "[~@2 a#1@18 c1@3 d1@3 d#1@13 d#2@3 a#1@5 c2@3 a#1@17 ~ c1@3 d1@2 ~ d#1@13 d#2@3 a#1@5 c2@3 a#1@2 ~@6 g2@8 f2@8 d2@8 c2@8 a#1@5 g1@3 c2@12 ~ a#1@3 c2@5 d#2@2 ~ f2@12 ~@10]/4",
})).s("gm_fretless_bass").gain(0.52)

// bass · fretless bass · "Remixed" · soft notes
const bass_soft = note("<~@5 A B C D A B C E ~@7 F ~@15 F ~@26>".pickRestart({
  A: "~ a2@23", B: "~ g#2@23", C: "~ g2@23", D: "~@23 a1@3 d2@8 c#2@8 b1@6", E: "~@23 a1@3 d2@8 c#2@14",
  F: "~@20 d2@3 ~@25",
})).s("gm_fretless_bass").gain(0.32)

// chords · piano · "Remixed"
const piano = note(`<
  ~ A@3 B C ~ D E F G D H@2 I J K L@2 M N O P@2 Q F G D R S I J K L@2 T U V W X Y Z AA ~@3 AB AC AD AE AF AC AD AE AF AC
  AD AE AF AC AD AE AG
>`.pickRestart({
  A: "[~@2 [c#4,e4]@22 ~@23 a3@3 [g#3,b3]@19 ~@29 [g3,b3]@46, ~@2 a3@19 ~@74 d3@49]/3", // C#m G#m G
  B: "~@26 f#4@8 ~@7 f#3@7, ~@25 a3@16 ~@7, ~@25 d4@8 ~@15", C: "~@2 e3@23 ~@23",
  D: "~@11 d4@10 ~@3, ~@2 [g2,g3,b3]@41 ~@5", E: "~@2 [d2,f#3,a3]@18 ~@3 a2@3 [d3,f#4]@8 [c#3,e4]@7 ~ b2@6, ~@41 d4@7",
  F: "~ c#4@10 ~@13, ~ a2@21 ~@26", G: "~@39 b2@3 b3 ~@5",
  H: "[~@2 [d2,f#3,a3]@18 ~@3 a2@3 d3@7 ~ c#2@12 ~ [c#2,f#3]@2 ~ e3@23 ~ [e3,g#3,b3]@22, ~@26 a3@21 ~@2 [b1,a3]@23 ~@24]/2", // D F#5 E B7
  I: "~@17 e4@5 ~@4 b3@15 ~ [e3,e4]@6, ~@2 e3@39 ~@7, ~ a3@12 ~@11, ~@2 c#4@21 ~@2 g#3@14 ~@9", // E
  J: "~@25 g#3@12 ~@4 g#3@7, ~ [a3,c#4]@21 ~@3 b3@23, ~ e3@23", K: "~ [d3,f#3,a3]@22 ~@3 [e3,g#3,b3]@22",
  L: "~@2 [a3,c#4]@21 ~@2 [a3,d4]@22 ~", // A D5
  M: "~@2 [a3,c#4]@3 ~@4 a3 [b3,d4]@8 [a3,c#4]@7 ~ [e3,a3]@7 [d3,b3]@9 [c#3,a3]@6, ~@25 c#4@8 ~@15", // A Bm A A5 G F#m
  N: "~ [b2,b3]@16 ~@3 d2@2 ~ d#2@3 [d3,f#3]@7 ~ [c#3,e3]@4 ~@3 [b2,d3]@7, ~@13 e2@2 ~@9", // B D C#m Bm
  O: "~@2 e3@20 ~@17 e2@3 c#3@2 d3@2 c#3@2, ~ c#3@20 ~ e3@19 ~@7, ~@2 a2@37 ~@9, ~@25 [a3,c#4]@17 ~@6", // A
  P: "[~ [e2,g#3,b3]@21 ~@4 [g#3,b3]@12 ~ e3@3 b3@5 e3@3 ~@20 d4@20 ~@6, ~@23 e3@15 ~@12 [g2,b2,g3]@41 ~@5]/2", // E G#m G
  Q: "~@2 [d2,f#3,a3]@18 d3 ~@2 [a2,d3]@3 [d3,f#4]@8 [c#3,e4]@7 ~ b2@6, ~@41 d4@7", // D D5 D C#m
  R: "~@2 [d2,f#3,a3]@18 ~@3 a2@2 ~ [d3,a3]@22, ~@25 a2@23", // D D5
  S: "~@2 e3@12 ~ e3@3 ~@2 e3@3 a3@2 ~ [e3,g#3,b3]@20 ~@2, ~ b1@23 ~@24, ~ a3@12 ~@5 a3@4 ~@26, ~ c#4@12 ~@11", // E
  T: "~@2 [a3,c#4]@3 ~@43", // A
  U: "~@2 [d3,f#3,b3]@16 e3@2 a3@3 b3@2 ~ e4@4 ~@4 e4@3 ~@2 [f#3,f#4]@2 ~ [a3,a4]@6, ~@26 b3@21 ~, ~@26 [e3,g#3]@13 ~@2 e4@7", // Bm F# A E
  V: "~ [a3,c#4,e4]@10 ~@2 [e3,a3,c#4]@11", // A
  W: "~@2 d3@22 ~@2 [d3,g3]@13 b2 ~@2 [b2,d3,g3]@3 ~@3, ~ [g3,b3]@22 ~@2 b3@15 ~@8", // G5 G
  X: "~ [c#3,e3,a3]@20 ~@5 c#4@13 ~@7 f#4@2, ~@13 a3@9 e4@2, ~@26 e3@12 ~ e3@9, ~@42 c#4@5 ~", // A
  Y: "~ [d3,g3,b3]@20 ~@3, ~ g4@41 ~@6", Z: "~@2 [f#3,a3,c#4]@23 ~ [f#3,a3,c#4]@22", AA: "~ [e3,g3,c4]@21 ~@2",
  AB: "~@13 [f3,a3,c4]@11", AC: "~@2 [a#3,d4]@21 ~@2 [a#3,d#4]@7 ~ [a#2,f3,a#3]@12 ~@3",
  AD: "~@2 [a#3,d4]@21 ~@2 [a#3,d#4]@14 ~@2 [g3,a#3,d#4]@7", // A# D#5 D#
  AE: "~@2 [a#3,d4]@3 ~@5 [c4,d#4]@8 [a#3,d4]@7 ~ [f3,a#3]@7 [d#3,c4]@9 [d3,a#3]@6, ~@25 d4@8 ~@15", // A# Cm A# A#5 Cm Gm
  AF: "~ [c3,c4]@16 ~@3 d#2@2 ~ e2@3 [f2,d#3,g3]@7 ~ [d3,f3]@4 ~@4 f2@6, ~@34 f2@7 [c3,d#3]@7", // C Cm Dm Cm
  AG: "~ [c3,c4]@16 ~@3 d#2@2 ~ e2@3 [f2,d#3,g3]@7 ~@15", // C Cm
})).s("gm_piano").gain(0.17)

// other · brass section · "Remixed"
const brass_section = note("<~ A@4 ~@15 B ~@14 C ~@7 D@3 E F@3 G@12 H>".pickRestart({
  A: "[~@2 [a4,a5]@6 ~@39 [b4,b5]@3 [g#4,g#5]@7 ~@35 [e4,e5]@2 ~ [f#4,f#5]@2 ~ [g4,g5]@5 ~@27 [f#4,f#5]@3 ~@5 [e4,e5]@5 [d4,d5]@2 ~ [e4,e5]@4 ~@42]/4", // A B G# E F# G F# E …
  B: "~@13 [e4,e5]@2 ~@9", C: "~ [a4,a5]@2 ~@21",
  D: "[~@2 [c#4,f#4,a4,a5]@5 ~@16 [c#4,f#4,a4,a5]@2 ~ [b3,e4,g#4,g#5]@4 ~@17 [b3,e4,g#4,g#5]@3 [a3,d4,f#4,f#5]@4 ~@22 [a3,a4,a5] ~@2 [b3,b4,b5] ~ [c#4,c#5,c#6] ~@2 [a3,a4,a5] ~@2 [b3,b4,b5] ~ [c#4,c#5,c#6] ~@2 [a3,a4,a5] ~@2 [e4,e5,e6]@2 ~ [b3,f#4,f#5,d6]@5 ~@16 [b3,f#4,f#5,d6]@3 [a3,e4,e5,c#6]@4 ~@18]/3", // F#m E D A B C# A B …
  E: "~@2 [b3,e4,e5,e6]@5 [b3,e4,e5,e6]@4 ~@22 [f4,f5] ~@2 [f4,f5] ~@2 [g4,g5] ~ [a4,a5] ~@2 [a#4,a#5] ~@2 [c5,c6]", // E5 F G A A# C
  F: "[~ [a#4,a#5]@4 ~@42 [c5,c6]@2 ~ [a#4,a#5]@3 ~@5 [a#4,a#5]@4 ~@33 [g4,g5]@2 ~ [a#4,a#5]@4 ~@42]/3", // A# C A# G A#
  G: "[~@25 f4 f5 ~ [f4,f5] ~@2 [f4,f5] ~ f4 f5 ~ [f4,f5] ~@2 [f4,f5] ~ f4 f5 ~ [f4,f5] ~@2 [g4,g5]@2 ~ a#5@4 ~@41 [c5,c6]@2 ~ [a#4,a#5]@3 ~@5 [a#4,a#5]@4 ~@33 [g4,g5]@2 ~ [a#4,a#5]@4 ~@42, ~@49 a#4@4 ~@139]/4", // F G C A# G A#
  H: "~@25 f4 f5 ~ [f4,f5] ~@2 [f4,f5] ~@16", // F
})).s("gm_brass_section").gain(0.29).pan(0.4)

// chords · string ensemble 1 · "Remixed"
const string_ensemble_1 = note(`<
  A@5 B ~@3 C D E F@2 G H I@4 J C D E K L D E F@2 G H I@4 ~@5 M N O@3 P@4 Q@12 R
>`.pickRestart({
  A: "[~@49 a5@8 ~@38 b5@3 g#5@7 ~@35 e5@2 ~ f#5@2 ~ g5@5 ~@27 f#5@3 ~@5 e5@5 d5@2 ~ e5@4 ~@19 [d4,f#4]@8 [c#4,e4]@8 [b3,d4]@7, ~@39 [a3,a4]@2 [b3,b4,c5]@2 [d4,d5]@2 [e4,e5]@2 [f#4,g4,g5]@2 ~@191, ~@20 [a#3,a#4] [c4,c#4,c#5] [d#4,d#5] [f4,f5,f#5] [g#4,g#5] ~@95]/5", // D C#m Bm A Cmaj7 D E Gmaj7 …
  B: "~ [a3,c#4]@26 ~@21", C: "~ [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@6",
  D: "~ [g#3,b3] ~@7 [g#3,b3] ~@7 [g#3,b3] ~@7 [g#3,b3] ~@7 [g#3,b3] ~@7 [g#3,b3] ~@6", // G#m
  E: "~ [g3,b3] ~@7 [g3,b3] ~@7 [g3,b3] ~@7 [g3,b3] ~@7 [g3,b3] ~@7 [g3,b3] ~@6", // G
  F: "[~ [f#3,a3] ~@7 [f#3,a3] ~@7 [f#3,a3] ~@7 [c#4,f#4]@8 [g#3,b3,e4]@14 [f#3,a3,d4]@2 ~ e3@28 ~@4 [g#3,c#4] [f#3,b3] ~ [e3,a3] ~ [f#3,b3] ~ [g#3,c#4] ~ [f#3,b3] ~ [e3,a3] ~ [f#3,b3]]/2", // F#m F#5 E D C#5 B5 A5 B5 …
  G: "~ [f#3,c#4]@11 ~@22 [g#3,c#4] [f#3,b3] ~ [e3,a3] ~ [f#3,b3] ~ [g#3,c#4] ~ [f#3,b3] ~ [e3,a3] ~ [f#3,b3], a3@11 ~@37", // F#5 C#5 B5 A5 B5 C#5 B5 A5 …
  H: "~ [d3,f#3,c#4]@24 [e3,g#3,b3]@23, a3@25 ~@23", // Dmaj7 E
  I: "[~ [d3,a3]@24 b3@8 ~@15 g#5@2 a5@98 ~@44, ~ f#3@32 a4@2 [a#3,a#4]@2 c5@2 [c#4,c#5]@2 d#5@2 [e4,e5]@2 f#5@2 [g4,g5]@2 ~@143, ~@25 e3@23 ~@144, ~@34 a3@2 [b3,b4]@2 c4@2 [d4,d5]@2 d#4@2 [f4,f5]@2 f#4@2 g#4 ~ a4@6 ~@136]/4", // D5 A# C# E G B D F
  J: "~@25 e5@3 ~@20", K: "~ [f#3,a3] ~@23 [d4,f#4]@8 [c#4,e4]@8 [b3,d4]@7",
  L: "~ [a3,c#4]@7 ~ [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@7 [a3,c#4] ~@6", M: "~ c#5@23, ~ c#6@47",
  N: "~ [c5,c6]@23", // C
  O: "[~@2 a5@5 ~@16 a5@2 ~ g#5@4 ~@17 g#5@3 f#5@4 ~@22 a5 ~@2 b5 ~ c#6 ~@2 a5 ~@2 b5 ~ c#6 ~@2 a5 ~@2 e6@2 ~ [f#5,d6]@5 ~@16 [f#5,d6]@3 [e5,c#6]@4 ~@18]/3", // D C#m
  P: "[~@2 [e5,e6]@5 [e5,e6]@4 ~@14 c4@8 ~@15 a5@2 [f3,f4]@24 [g3,g4]@24 [f3,f4]@24 [g3,g4]@24 [f3,f4]@5 ~@2 [g4,c5,g5]@8 [f4,a#4,f5]@8 [d4,f4,d5]@8 [c4,d#4,c5]@8 [a#3,d4,a#4]@7, ~@25 f3@23 ~@144, ~@33 a#4@2 [b3,b4]@2 c#5@2 [d4,d5]@2 e5@2 [f4,f5]@2 g5@2 [g#4,g#5]@2 ~@143, ~@34 a#3@2 [c4,c5]@2 c#4@2 [d#4,d#5]@2 e4@2 [f#4,f#5]@2 g4@2 a4 ~ [a#4,a#5]@100 ~@42]/4", // E F G F G F C5 A#5 …
  Q: "[~@2 c3@23 ~@49 [g3,g4]@24 [f3,f4]@24 [g3,g4]@24 [f3,f4]@4 ~@3 [g4,c5,g5]@8 [f4,a#4,f5]@8 [d4,f4,d5]@8 [c4,d#4,c5]@8 [a#3,d4,a#4]@7, ~ [c4,c5]@48 ~@143, ~ d#4@24 f4@49 ~@118, ~@25 f5@23 ~@2 [a#4,a#5]@100 ~@42, ~@13 f3@24 ~@59]/4", // G F G F C5 A#5 Dm Cm …
  R: "~ c3@12 ~@11, ~ [c4,c5]@40 ~@7, ~ d#4@24 ~@23", // C
})).s("gm_string_ensemble_1").gain(0.24).pan(0.7)

// chords · string ensemble 2 · "Remixed"
const string_ensemble_2 = note("<~ A@3 B C ~@6 D E ~ F@2 G@3 H I ~@2 J K L@3 E ~ M@2 G@3 N O@5 ~@21>".pickRestart({
  A: "[~ a5@48 g#5@48 [d5,g5]@29 ~@3 f#5@4 ~@4 e5@5 d5@2, ~ e5@97 ~@46]/3", B: "~ e5@7 ~@17 f#4@8 e4@8 d4@7",
  C: "~ c#4@29 ~@18", D: "~@25 [a3,f#4]@8 [g#3,e4]@13 [f#3,d4]@2", E: "~ e3@28 ~@19",
  F: "[~ a3@24 g#3@24 a3@47, ~ e4@93 ~@2]/2", G: "[~ e5@24 f#5@24 e5@25 f#5@23 e5@4 ~@43, ~ a5@100 ~@43]/3",
  H: "~@25 [d4,f#4]@8 [c#4,e4]@7 [b3,d4]@8, ~@6 [e4,e5] ~@5, ~@25 a3@23", I: "c#4 ~@5, a3 ~@23",
  J: "~@25 f#4@8 e4@8 d4@7", K: "~ a4@23 a5@24, ~ c#4@29 ~@18",
  L: "[~ b5@96 ~@24 [a3,f#4]@8 [g#3,e4]@13 [f#3,d4]@2, ~@97 a5@31 ~@16]/3", // D C#m D
  M: "[~ a3@24 g#3@24 ~@25 b4@22, ~ e4@93 ~@2, ~@49 a3@47]/2", N: "~ [d3,f#3]@24 [e3,g#3]@23, ~ b3@47",
  O: "[~ c#5@47 [b4,d5]@49 [a4,c#5]@48 [g4,d5]@49 ~@46, ~ e5@192 ~@47]/5", // Bm A G5
})).s("gm_string_ensemble_2").gain(0.17).pan(0.3)

// chords · pad warm · "Remixed"
const pad_warm = note("<~@5 A@4 B@8 ~@4 A@4 B@8 C D E F G@2 H I J K ~@20>".pickRestart({
  A: "[~ [a3,c#4]@48 ~@73 d5@23 a3@23 ~ f#4@7 ~ e4@7 ~ [f#3,d4]@7, ~ e4@95 ~ d4@72 ~@23, ~@49 b3@95 ~@48, ~@49 g#3@48 ~@72 a3@16 ~@7, ~@36 b4@19 ~@41]/4", // A D
  B: "[~@26 c#5@23 g#3@48 ~ d5@45 ~@3 a3@23 [a3,f#4]@8 [g#3,e4]@13 [e3,c#4]@4 [a3,c#4]@24 [g#3,b3]@24 a3@24 b3@24 [a3,c#4]@24 [g#3,b3]@23 ~ a3@24 [g#3,b3]@22, ~ e3@96 d4@72 ~@25 e4@189 ~, ~ [a3,c#4]@48 b3@95 ~@240]/8", // D C#m A G#m A G#m A
  C: "[c#4,e4]@23 ~ [d4,f#4]@24", D: "[c#4,e4] [d4,f#4]", E: "[c#4,e4] ~@11", F: "~ f#3@24 [e3,c#4]@23, ~ a3@47",
  G: "[~ a3@48 g3@47]/2", H: "a3", I: "g3", J: "[f#3,a3]", K: "~ [g3,c4]@47",
})).s("gm_pad_warm").gain(0.18)

// chords · pad warm · "Remixed" · soft notes
const pad_warm_soft = note("<~@7 A B ~ C A D ~ E ~ D ~@6 A B ~ C A D ~ E ~ D ~@30>".pickRestart({
  A: "~ g3@47", B: "~ f#3@24 ~@23", C: "~ b4@21 ~@2", D: "~ f#3@12 ~@11", E: "~ c#4@12 g#3@11",
})).s("gm_pad_warm").gain(0.13)

// other · electric guitar jazz · "Remixed"
const electric_guitar_jazz = note(`<
  ~ A B C D E F@2 G E H@2 I ~@5 J ~ K L M@2 N E O@3 ~@7 K ~@13 P Q@2 R@3 ~@2 S T@2 U@2
>`.pickRestart({
  A: "~@25 b4@8 d5@12 ~ e5@2", B: "~ d5@8 ~@15", C: "~@26 a4@8 c5@3 ~@5 d5@4 c5 ~", D: "~ d5@2 ~@21",
  E: "~@2 d3@24 ~@15 [b3,e4]@7", F: "[~@2 d4@23 ~@22 c3@27 ~@8 d4@14]/2", G: "~ c4@22 ~@25",
  H: "[~@2 d4@23 ~@22 c3@27 ~@7 [a3,d4]@15]/2", I: "~ [g3,c4]@22 ~@25", J: "~@16 b3@7 a3@2 f#3@3 ~@20, ~@4 g3 ~@7",
  K: "~@26 [e4,a4]@5 ~@17", L: "d3@24 ~@17 e3@7", M: "[~@2 d3@23 ~@22 c#3@5 b3@2 ~ d3@2 b3@17 ~@7 a2@6 ~@3 d3@6]/2",
  N: "~ a2@11 ~@12", O: "[~@2 d4@23 ~@22 c3@27 ~@5 a2@5 c3@3 a2@2 ~ d3@20 ~@34]/3",
  P: "~@16 c4@4 d#4@3 f4@2 d#4@4 ~@19", Q: "[~@38 d#4@3 g#4@3 ~@3 f4@3 a#4@14 ~@32]/2",
  R: "[~@33 d5@18 c5@4 d5@3 c5@3 a#4@13 ~@21 d#5@3 g#5@4 ~ g5@3 a#5@19 ~@19]/3", S: "~@12 c4@3 d#4@3 f4@2 d#4@4 ~@24",
  T: "[~@33 d#4@3 ~ g#4@3 ~@2 f4@3 a#4@14 ~@37]/2", U: "[~@28 d5@18 ~ c5@3 d5@3 c5@3 a#4@13 ~@27]/2",
})).s("gm_electric_guitar_jazz").gain(0.25)

// chords · electric guitar clean · "Remixed"
const electric_guitar_clean = note(`<
  ~ A B C ~ A B C D A B C D E@3 ~ A@2 ~@2 A B C D A B C D E@3 ~ A@2 ~@2 A F A F G H ~@4 I@2 ~@2 I@2 ~@2 I@2 ~@2 I@2 ~@2
>`.pickRestart({
  A: "~@13 [e4,a4,c#5] ~@10", B: "~@13 [e4,g#4,b4] ~@10", C: "~@13 [d4,g4,b4] ~@10", D: "~@13 [d4,f#4,a4] ~@10",
  E: "~@13 [b3,e4,g#4] ~@10", F: "~@13 [g4,b4,d5] ~@10", G: "~@13 [f#4,a4,c#5] ~@10", H: "~@13 [e4,g4,c5] ~@10",
  I: "~@13 [f4,a#4,d5] ~@10", // A#
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.2)

// chords · epiano2 · "Remixed"
const epiano2 = note("<~ A@3 B C D ~ E C D ~ F G ~@49>".pickRestart({
  A: "[~@2 [c#4,e4]@21 ~@3 [c#4,e4]@21 a3@3 [g#3,b3]@19 ~@5 [g#4,b4]@16 ~@8 [g3,b3]@46, ~@2 a3@19 ~@2 a3@20 ~@28 e4@19 ~@5 d3@49]/3", // C#m G#m G
  B: "~@33 [c#4,e4]@8 [b3,d4]@7", C: "~@2 [a3,c#4,e4]@23 ~@23", D: "~@2 [e3,g#3,b3]@23 ~@23",
  E: "~@34 e4@7 [b3,d4]@7, ~@33 c#4@8 ~@7", F: "~@13 [f#3,a3]@11", G: "~@2 [a3,c#4]@23 ~@23, ~ e3@23 ~@24",
})).s("gm_epiano2").gain(0.23).pan(0.4)

// chords · orchestral harp · "Remixed"
const orchestral_harp = note("<~@4 A B ~@10 C ~@3 D ~@11 E ~@3 F G ~@8 H ~@3 H ~@3 H ~@3 H ~@4>".pickRestart({
  A: "~@32 [e3,f#3] ~ a3 a#3 c4 d4 ~ [f4,g4] a4 ~ [c5,d5] ~ f5 ~ a5@2, ~@33 g#3@2 ~@3 d#4@2 ~ a#4@2 d#5@2 f#5@2 ~", // Esus2 Fsus2 Csus2
  B: "f#5 ~@2 a5@6 ~@39",
  C: "~@26 [e3,f#3] ~ a3 a#3 c4 d4 ~ [f4,g4] a4 ~ [c5,d5] ~ f5 ~ g5 a5@6 ~, ~@27 g#3@2 ~@3 d#4@2 ~ a#4@2 d#5@2 f#5@2 g#5@2 ~@5", // Esus2 Fsus2 Csus2
  D: "~@26 e4 f#4 g#4@2 [a#4,c5] ~ d5 f5 [g5,a5] ~ [c6,d6] ~ f6 ~ g6 a6@4 ~@3, ~@28 a4 ~@3 d#5@2 ~ a#5@2 d#6@2 f#6@2 g#6@2 ~@5", // A#sus2 Gsus2 Csus2
  E: "~@26 e3 f#3 g#3@2 [a#3,c4] d4 ~ f4 [g4,a4] ~ c5 d5 f5 ~ g5 ~ a5@6, ~@28 a3 ~@3 d#4@2 ~ a#4@2 d#5@2 f#5@2 g#5@2 ~@5", // A#sus2 Gsus2
  F: "~@46 [c#4,e4] f#4", G: "g#4 b4 c#5 ~@45",
  H: "~@26 [f3,g3] ~ a3@2 [b3,c#4] ~ d#4 f#4 [g#4,a#4] ~ [c#5,d#5] ~ f#5 ~ g#5 ~ a#5@6, ~@28 a#3 ~@3 e4@2 ~ b4@2 e5@2 g5@2 a5@2 ~@5", // Fsus2 Bsus2 G#sus2 C#sus2
})).s("gm_orchestral_harp").gain(0.15).pan(0.9)

// other · timpani · "Remixed"
const timpani = note("<~@3 A@2 ~@11 B@4 ~@12 B@4 ~@7 C D E F G@3 F G@3 F G@3 F G@3 ~>".pickRestart({
  A: "[~@47 c2@2 ~ d2 ~@45]/2", B: "[~@47 f2@2 ~ a2 ~@44 f2@2 ~ a2 ~@44 f2@2 ~ a2 ~@45]/4",
  C: "~@7 f1 ~@2 a1 ~ a1 ~@18 f1 ~@2 a1 ~@13", D: "~@7 f1 ~@2 a1 ~@37", E: "~@7 a#1 ~@2 d2 ~@20 a#1 ~@2 d2 ~@13",
  F: "~@26 d2 ~ d2 ~@2 d2 ~@2 d2 ~ d2 ~@2 d2 ~@2 d2 ~ d2 ~@2 d2",
  G: "[~@2 e2@2 ~@43 f#2@2 ~ a#2@6 ~@39 f#2@2 ~ a#2@6 ~@40]/3",
})).s("gm_timpani").gain(0.48)

// other · timpani · "Remixed" · soft notes
const timpani_soft = note(`<
  ~@43
  [~@15 a1 ~@2 a1@2 ~@16 a1 ~@2 a1 ~@2 a1 ~@5]
  [~@12 a1 ~@2 a1 ~@2 a1 ~@29]
  [~@12 d2 ~@2 d2 ~@2 d2@2 ~@16 d2 ~@2 d2 ~@2 d2@2 ~@4]
  ~@17
>`).s("gm_timpani").gain(0.24)

// drums · kick
const kick = s("bd").struct(`<
  A B C D ~ B@3 E B@3 F B@3 G B C ~ C B@3 E B@3 C B@3 G B C ~ H B C B C E C ~@4 B C I J B C I J B C I J B C I J
>`.pickRestart({
  A: "~@47 x", B: "~@2 x ~@20 x ~@23 x", C: "~@2 x ~@20 x ~@24", D: "~@2 x ~@20 x ~@10 x ~@7 x ~@4 x",
  E: "~@2 x ~@20 x ~@10 x ~@7 x ~@5", F: "~@2 x ~@20 x ~@10 x ~@12 x", G: "~ x ~@3 x ~@3 x ~@14",
  H: "~@2 x ~@20 x ~@15 x ~@8", I: "~@23 x ~@10 x ~@7 x ~@4 x", J: "~ x ~@3 x ~@18",
})).gain(0.5)

// drums · rim
const rim = s("rim").struct("<~@5 [~@13 x ~@10]!11 ~@5 [~@13 x ~@10]!11 ~@31>").gain(0.56)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@3 B ~@11 C A@2 B A ~@7 D ~@3 C A@2 B C A@3 C A@2 E F@2 G A@2 H I A@2 H I A@2 H I A@2 H I
>`.pickRestart({
// … 51 more lines

More by Celine Dion