Strudelify
How Do I Live cover art

1997 · You Light Up My Life

How Do I Live

LeAnn Rimes

KeyA majorTempo64 bpm
0:00/0:00
// How Do I Live — LeAnn Rimes
// 64 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 25, 4/4 at bar 25, 2/4 at bar 43, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 70 bars on a 16-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 · "ACC PNO"
const piano = note(`<
  ~@4 A@2 B C D@2 E F G H G I J K L M N O@4 P@2 Q R@8 S T@2 U@3 V ~@10 J K L M N W@4 X@6 Y ~
>`.pickRestart({
  A: "[~@12 [b2,a3,c#4,e4]@2 [b2,a3,c#4,d#4] [e2,g#3,b3,e4]@17]/2", B: "[f#3,b3,d#4]@15 ~", C: "[a3,c#4]@15 ~",
  D: "[[b2,a3,c#4,e4]@12 [b2,a3,c#4,e4]@2 [b2,a3,c#4,d#4] [e2,g#3,b3,e4]@17]/2", E: "[d#3,f#3,b3,f#4]@15 ~",
  F: "[a2,a3,c#4]", G: "[g#2,g#3,b3,d#4]@3 [c#3,g#3,c#4,e4]@5", H: "[f#3,a3,c#4]@3 [f#3,a3,c#4]@5, f#2",
  I: "[a2,g3,b3,d4]", J: "[d2,f#3,a3,d4]@3 [a2,a3,c#4]@5", K: "[g2,g3,b3,d4]@2 [f#2,f#3,a3,c#4] [a2,a3,e4]",
  L: "[d2,f#3,a3,d4]@3 [a2,c#4]@5, ~@3 a3@4 ~", M: "[b3,d4]@7 ~ [f#2,f#3,a3,c#4]@8", N: "[b2,b3,d4]@3 [e2,g#3,b3,e4]@5",
  O: "[[f#2,f#3,a3,c#4]@6 [g2,b3,d4]@18 [a2,g3,b3,d4]@15 ~ [d2,f#3,a3,d4]@6 [a3,c#4]@6 [b2,a3,c#4,e4]@4 ~@8]/4", // F#m G D A
  P: "[~@8 [f#3,b3,d#4]@15 ~ [a3,c#4]@8]/2", Q: "~ [b2,a3,c#4,e4]",
  R: "[~@4 [b2,a3,c#4,e4]@2 [b2,a3,c#4,d#4] [e2,g#3,b3,e4]@17 [d#3,f#3,b3,f#4]@15 ~ [a2,a3,c#4]@16 [g#2,g#3,b3,d#4]@6 [c#3,g#3,c#4,e4]@10 [f#3,a3,c#4]@6 [f#3,a3,c#4]@10 [g#2,g#3,b3,d#4]@6 [c#3,g#3,c#4,e4]@10 [a2,g3,b3,d4]@16 [d2,f#3,a3,d4]@6 [a2,a3,c#4]@2, ~@9 f#2@2 ~@5]/8", // A B7 E B A G#m C#m F#m …
  S: "~ [g2,g3,b3,d4]", T: "[[f#2,f#3,a3,c#4]@4 [a2,a3,e4]@4 [d2,f#3,a3,d4]@6 [a2,c#4]@10 [b3,d4]@7 ~, ~@7 a3@4 ~@5]/2",
  U: "[[f#2,f#3,a3,c#4]@4 [b2,b3,d4]@3 [e2,g#3,b3,e4]@5 [f#2,f#3,a3,c#4]@3 [g2,b3,d4]@9]/3", V: "[a2,g3,b3,d4]@15 ~",
  W: "[[f#2,f#3,a3,c#4]@6 [g2,b3,d4]@18 [a2,g3,b3,d4]@15 ~ [d2,f#3,a3,d4]@6 [a2,a3,c#4]@10 [g2,g3,b3,d4]@8]/4", // F#m G D A G
  X: "[[f#2,f#3,a3,c#4]@2 [a2,a3,e4]@2 [d2,f#3,a3,d4]@3 [a2,a3,c#4]@5 [g2,g3,b3,d4]@4]/2", // F#m A5 D A G
  Y: "[f#2,f#3,a3,c#4]@2 [a2,a3,e4]@2 [f#3,a3,d4]@3 ~", // F#m A5 D
})).s("gm_piano").gain(0.19)

// chords · piano · "ACC PNO" · soft notes
const piano_soft = note(`<
  ~@6 A B ~@2 C D ~@4 E F E G H I@2 J@2 K@3 ~ L@3 ~@3 M@2 N@2 O P@2 ~@11 E F E G H I@2 M@2 Q@6 R ~
>`.pickRestart({
  A: "[d#3,f#4]@15 ~", B: "[f#3,f#4]", C: "d#4@15 ~", D: "e4", E: "~@3 e4@5", F: "~@12 c#4@3 ~", G: "[g2,g3] ~",
  H: "f#4@5 ~@11, c4 ~@15", I: "[~@6 g3@17 ~@9]/2", J: "[~@7 [a2,e4]@3 ~@6]/2",
  K: "[~@8 [d#3,f#4]@15 ~ [f#3,f#4]@16 ~@8]/3", L: "[~@8 d#4@15 ~ e4@16 ~@8]/3", M: "[~@7 e4@5 ~@4]/2",
  N: "[~@4 c#4@3 ~@7 e4@10 [g2,g3]@8]/2", O: "~@8 f#4@5 ~@3, ~@8 c4 ~@7", P: "[~@14 g3@17 ~]/2",
  Q: "[~@4 c#4@3 ~@7 e4@10 ~@8]/2", R: "~@4 c#4@3 ~@9",
})).s("gm_piano").gain(0.13)

// bass · electric bass finger · "FING BASS"
const bass = note(`<
  ~ A B C D E F G H E F I J G K L M N M O P Q@3 R@8 S@3 T@2 U@2 V@3 W X Y Z AA AB AC AD AE AF AG M N M O P AH@4 U@6 AI ~
>`.pickRestart({
  A: "d1@6 a1@9 ~", B: "g1@6 f#1@9 ~", C: "d1@3 a1@5", D: "g1@3 a1@3 b1@2", E: "e1@3 e1@5", F: "d#1@3 d#1@5",
  G: "f#1@3 f#1@5", H: "b0@3 b0@5", I: "a1@3 a1@5", J: "g#1@3 c#2@5", K: "g#1@3 c#1@5", L: "a1@6 a1 ~ a1@4 a1@4",
  M: "d2@6 a1@8 e1 f#1", N: "g1@2 f#1 a1", O: "g1@2 f#1!2", P: "b1@2 d1 e1@5", Q: "[f#1@3 g1@9 a1@8 d1@3 a1]/3",
  R: "[~@2 b1@2 e1@3 e1@5 d#1@3 d#1@5 f#1@3 f#1@5 b0@3 b0@5 e1@3 e1@5 d#1@3 d#1@5 a1@3 a1@5 g#1@3 c#2]/8",
  S: "[~@8 f#1@6 f#1@10 g#1@6 c#1@10 a1@6 a1 ~]/3", T: "[a1@4 a1@4 d2@6 a1@8 e1 f#1 g1@8]/2",
  U: "[f#1@4 a1@4 d2@6 a1@8 e1 f#1 g1@8]/2", V: "[f#1@2 f#1@2 b1@2 d1 e1@5 f#1@3 g1@9]/3", W: "a1",
  X: "b1 ~ a1 ~ e1 ~ f#1@5 f#1 f#1@4", Y: "e1@7 d1 e1 e2 e1 ~ f#1 ~ f#1@2",
  Z: "b1 a1 f#1 ~ d1 ~ f#1@2 ~@2 f#1@3 ~ f#1@2", AA: "b1 ~ b1 ~ b1 ~ b1@2 b1 ~ b1 ~ b1 ~ b1@2",
  AB: "g#1 ~ g#1@4 c#1@6 c#1@4", AC: "f#1 ~@6 e1 f#1 f#2 f#1@6", AD: "g#1 ~ g#1 ~ d#1 ~ c#1@10",
  AE: "f#1 ~@6 e1 f#1 f#2 e2 ~ g#1@2 c#1@2", AF: "g#2 ~ f#2 ~ d#2 ~ c#2@10",
  AG: "a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1 ~ a1 ~ a1@2", AH: "[f#1@6 g1@18 a1@16 d2@6 a1@8 e1 f#1 g1@8]/4", AI: "f#1 a1 ~@2",
})).s("gm_electric_bass_finger").gain(0.64)

// other · acoustic guitar nylon · "ACC GTR NY" · A5
const acoustic_guitar_nylon = note(`<
  [~@12 a3 b3 d4 b3]
  [d4@2 [e4,a4] [e4,a4]@5]
  [d5 c#5 ~ b4 c#5@2 a4@6 a3 b3 d4 b3]
  [d4@2 e4 e4@5]
  [d5 c#5 ~ b4 c#5@2 a4@10]
  ~@65
>`).s("gm_acoustic_guitar_nylon").gain(0.55)

// chords · acoustic guitar steel · "ACC GTR ST"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F@2 G H I J K L M N O P Q R S T@2 U@5 V@7 W@2 X@2 Y@4 Z AA@4 AB AC AD AE AF O P Q R S AG@4 AH@6 AI ~
>`.pickRestart({
  A: "[d2,d3,a3,d4,f#4]@5 ~ [e3,a3,c#4,e4]@9 ~", B: "[g2,d3,b3,d4,g4]@3 [f#2,a3,c#4,f#4]@5",
  C: "[d2,d3,a3,d4,f#4]@6 a4 a4@8 ~, ~@3 [a2,a3,c#4,e4]@5", D: "[g2,b3,d4]@5 ~ [a3,c#4,a4]@8 ~@2",
  E: "[e3,g#3,b3,e4]@15 ~", F: "[[d#3,f#3,b3,d#4]@14 ~@2 [f#3,a3,c#4]@15 ~, ~@15 c#3@15 ~@2]/2",
  G: "[a3,c#4,e4]@11 ~ [a3,c#4,e4]@3 ~, e3@15 ~", H: "[b3,e4]@6 [b3,e4]@9 ~, g#3@15 ~",
  I: "b3@5 ~ b3@8 ~@2, [f#3,d#4]@15 ~", J: "[e3,a3,c#4,e4]@6 [e3,a3,c#4,e4]@9 ~",
  K: "[d#3,g#3,b3,d#4]@4 ~@2 [g#3,c#4,e4,g#4]@9 ~", L: "[e3,a3,c#4]@6 [e3,a3,c#4]@9 ~",
  M: "[d#3,g#3,b3]@5 ~ [g#3,c#4,e4]@8 ~@2", N: "[d3,g3,b3,d4]!2",
  O: "[d3,a3,d4,f#4,a4]@2 [d3,a3,d4,f#4,a4]@2 a3 ~ a3@4 ~@2 [e4,a4] ~ a3 [a2,a3], ~@6 [a2,c#4,e4,a4]@5 c#4@2 [c#4,a4]@3, ~@5 a3@2 ~, ~@12 a2@3 ~", // D A5 A F#m
  P: "[g2,b3,d4,g4]@3 [b3,d4,g4] [g2,b3,d4]@4 [f#2,a3,c#4,e4,f#4,a4]@4 [a2,a3,b3,d4,g4,a4]@3 ~, g3 ~", // G F#m7 G
  Q: "[d3,d4,f#4,a4]@2 [d3,d4,f#4,a4]@2 a3 ~ [a2,a3,c#4,e4,a4]@4 ~ [a2,c#4,e4,a4] [c#4,e4,a4] ~ a3 [a2,c#4], a3@4 ~@6 a3@2 [a2,a3]@3 ~, ~@13 [c#4,e4,a4]@2 ~", // D A
  R: "[g2,b3,d4,g4,a4]@3 [b3,d4,a4] [g2,b3,d4,g4,a4]@4 a3@2 ~@2 [f#2,e4,f#4,a4]@3 a3, ~@8 [f#2,c#4,e4,f#4,a4]@3 c#4@5, ~@10 a3@5 ~", // G Bm7 G F#m7
  S: "[b2,d4,f#4,a4]@2 [b2,d4,f#4,a4]@2 [a3,b3] ~ [e3,b3,d4,e4,g4]@4 ~ [e3,d4,e4,g4] [e3,b3,d4,e4,g4] [d4,e4,g4] ~ [d4,e4], [a3,b3]@2 ~@3 b3 ~ b3", // Bm7 Asus2 Em7 Dsus2 Asus2
  T: "[a3@2 ~@2 [c#4,a4]@2 [a3,b3]@4 ~ d4 [a3,b3]@4 a3@7 ~ [a2,d4,g4,a4]@7 [a3,b3], f#3@3 [g3,d4,g4,a4]@3 [g3,d4,g4,a4]@6 ~@4, [c#4,e4,f#4,a4] ~@7, ~@2 a3@4 ~@4 a3@2 ~@11 [a3,b3]@8 ~]/2", // F#m Asus2 Dsus4 Asus2 Gsus2 F#m7 Asus2
  U: "[[a2,d4,g4,a4]@2 ~@3 d4 [a2,a3,b3,d4,g4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@3 ~ [a2,a3,c#4,e4,a4]@5 ~ [b2,c#4,e4,a4]@3 ~ [e3,g#3,b3,e4]@15 ~ [d#3,f#3,b3,d#4]@14 ~@2 [f#3,a3,c#4]@15 ~ [e3,a3,c#4,e4]@8, ~ [a2,d4,g4,a4]@2 ~ [d2,a3]@3 ~@33, ~@4 [a3,b3]@2 ~@13 a3@4 ~@32 c#3@15 ~@10]/5", // Dsus4 G D A E B F#m A …
  V: "[~@4 [a3,c#4,e4]@3 ~ [b3,e4]@6 [b3,e4]@9 ~ b3@5 ~ b3@8 ~@2 [e3,a3,c#4,e4]@6 [e3,a3,c#4,e4]@9 ~ [d#3,g#3,b3,d#4]@4 ~@2 [g#3,c#4,e4,g#4]@9 ~ [e3,a3,c#4]@6 [e3,a3,c#4]@9 ~ [d#3,g#3,b3]@5 ~ [g#3,c#4,e4]@8 ~@2 [d3,g3,b3,d4]@8, ~@8 g#3@15 ~ [f#3,d#4]@15 ~@73]/7", // A E5 A G#m C#m A G#m C#m …
  W: "[[d3,g3,b3,d4]@8 [d3,a3,d4,f#4,a4]@2 [d3,a3,d4,f#4,a4]@2 a3 ~ a3@4 ~@2 [e4,a4] ~ a3 [a2,a3] [g2,b3,d4,g4]@3 [b3,d4,g4] [g2,b3,d4]@4, ~@14 [a2,c#4,e4,a4]@5 c#4@2 [c#4,a4]@3 ~@8, ~@9 a3@2 ~ g3@4, ~@20 a2@3 ~@9]/2", // G D A5 A G A F#m
  X: "[[f#2,a3,c#4,e4,f#4,a4]@4 [a2,a3,b3,d4,g4,a4]@3 ~ [d3,d4,f#4,a4]@2 [d3,d4,f#4,a4]@2 a3 ~ [a2,a3,c#4,e4,a4]@4 ~ [a2,c#4,e4,a4] [c#4,e4,a4] ~ a3 [a2,c#4] [g2,b3,d4,g4,a4]@3 [b3,d4,a4] [g2,b3,d4,g4,a4]@4, ~@8 a3@4 ~@6 a3@2 [a2,a3]@3 ~@9, ~@21 [c#4,e4,a4]@2 ~@9]/2", // F#m7 G D A G Bm7 G A
  Y: "[a3@2 ~@2 [f#2,e4,f#4,a4]@3 a3 [b2,d4,f#4,a4]@2 [b2,d4,f#4,a4]@2 [a3,b3] ~ [e3,b3,d4,e4,g4]@4 ~ [e3,d4,e4,g4] [e3,b3,d4,e4,g4] [d4,e4,g4] ~ [d4,e4] a3@2 ~@2 [c#4,a4]@2 [a3,b3]@4 ~ d4 [a3,b3]@4 a3@7 ~ [a2,d4,g4,a4]@7 ~ [a2,d4,g4,a4]@2 ~@3 d4 [a2,a3,b3,d4,g4,a4]@2, [f#2,c#4,e4,f#4,a4]@3 c#4@5 ~@10 b3@2 ~@2 b3@2 [c#4,e4,f#4,a4]@4 ~@36, ~@2 a3@5 ~ [a3,b3]@4 ~@12 f#3@6 [g3,d4,g4,a4]@6 [g3,d4,g4,a4]@12 ~@10 [a2,d4,g4,a4]@4 ~@2, ~@26 a3@4 ~@4 a3@2 ~@11 [a3,b3]@8 [a3,b3]@5 [a3,b3]@2 ~@2]/4", // F#m7 Bm7 Asus2 Em7 Dsus2 F#m Asus2 Dsus4 …
  Z: "b3@2 ~ d4 [b2,f#4,b4] ~ a3@4 ~ c#4 [f#3,c#4,f#4,a4] [c#4,f#4,a4] a3 c#4, [b2,d4,f#4,b4]@2 ~@3 a3@2 ~, ~@2 b3@3 ~ [f#3,c#4,f#4,a4]@6 ~@4", // B5 F#m Bm F#m
  AA: "[[e3,b3,d4,e4,g4]@2 ~ [e3,d4,e4,g4] [e3,b3,d4,e4,g4]!2 b3 ~ [e3,b3,g4]@2 [e3,b3,d4,e4,g4] ~@2 d4 [e3,b3,d4,e4,g4] ~ [b2,d4,f#4,b4]@2 [b2,d4,f#4,b4]@2 b3 ~ a3@4 ~ c#4 [c#4,f#4,a4]@2 ~@2 c#4 [c#4,e4,a4] [c#4,e4,a4]@2 [b2,c#4,e4,a4]@2 b2@2 b2@2 [b2,c#4]@2 [b2,a3,c#4,b4]@2 ~@2 [b3,d#4,g#4]@2 [b3,d#4]@2 g#3@2 g#3@4 ~ c#4 [c#3,c#4,e4,g#4]@2 g#3 [c#3,c#4], ~@2 b3@2 ~@3 d4@3 ~@2 b3@2 ~ b3@4 ~@3 [f#3,c#4,f#4,a4]@6 [f#3,a3]@3 a3@9 f#4@8 g#2@6 ~@10, ~@26 a3@2 ~@2 [c#4,f#4,a4]@2 b2@4 ~@2 a4@6 ~@3 a3@2 ~@9 g#3@2 ~@4, ~@38 c#4@4 ~@2 [b3,a4]@5 ~ g#4@4 ~@10, ~@40 [a3,b3]@4 ~@2 [b2,c#4]@3 ~@5 [c#3,c#4,e4,g#4]@6 ~@4]/4", // Em7 Em Em7 Bm F#m A Bsus2 F#m …
  AB: "[f#2,a3,c#4,e4,a4]@4 [f#2,a3,c#4,e4,f#4,a4] ~@2 [a3,c#4,f#4,a4] [a3,c#4,e4,f#4,a4] ~ a3 ~ [f#2,a3,c#4,f#4,a4]@2 a3 [f#2,a3], ~@7 f#2@4 ~@5, ~@9 [c#4,e4,f#4,a4]@2 ~@5", // F#m7 F#m F#m7 F#m F#m7
  AC: "[g#2,b3,d#4,f#4,g#4]@2 [g#2,b3,d#4,f#4,g#4]@2 g#3 ~ [c#3,c#4,e4,g#4]@4 g#3 c#4 ~@2 g#3 [c#3,c#4], ~@12 [c#3,g#3,c#4,e4,f#4]@3 ~, ~@13 g#4@2 ~", // G#m7 C#m C# C#m
  AD: "[c#4,e4,f#4,a4]@4 ~@4 [f#3,f#4,a4]@2 ~@3 [c#3,c#4] [f#3,c#4,e4,f#4,a4] ~, f#2@7 ~, a3@3 a3@3 a3 ~, ~@4 [c#4,a4]@3 c#3@6 ~@3, ~@7 c#4@3 [c#4,e4,f#4,a4]@4 ~@2", // F#m7 F#m C# F#m7 F#m F#m7
  AE: "[b3,d#4,g#4]@2 [b3,d#4,f#4,g#4]@2 [g#2,g#3] ~ g#3@4 ~@2 [c#3,e4,g#4]@2 ~ c#3, [g#2,g#3]@4 ~@2 [c#3,c#4,e4,g#4]@5 c#4@3 [f#4,g#4]@2, ~@5 g#3@3", // G#m G#m7 G# C#m G# C#m F#sus2
  AF: "[a2,a3,b3,d4,g4,a4] [a2,d4,g4,a4]!2 [d4,g4,a4] [a2,d4,a4] [a3,b3,d4,a4] [a3,b3,d4,g4,a4]!2, ~ [a3,b3]@4 ~@3", // G Dsus4 D5 Bm7 G Asus2
  AG: "[a3@2 ~@2 [c#4,a4]@2 [a3,b3]@4 ~ d4 [a3,b3]@4 a3@7 ~ [a2,d4,g4,a4]@7 ~ [a2,d4,g4,a4]@2 ~@3 d4 [a2,a3,b3,d4,g4,a4]@2 [d3,a3,d4,f#4,a4]@2 [d3,a3,d4,f#4,a4]@2 a3 ~ a3@4 ~@2 [e4,a4] ~ a3 [a2,a3] [g2,b3,d4,g4]@3 [b3,d4,g4] [g2,b3,d4]@4, f#3@6 [g3,d4,g4,a4]@6 [g3,d4,g4,a4]@12 ~@10 [a2,d4,g4,a4]@4 ~@8 [a2,c#4,e4,a4]@6 a2@3 ~@9, [c#4,e4,f#4,a4]@4 ~@47 c#4@2 [c#4,a4]@3 ~@8, ~@2 a3@4 ~@4 a3@2 ~@11 [a3,b3]@8 [a3,b3]@5 [a3,b3]@2 ~@12 a3@4 ~@2 g3@8]/4", // F#m Asus2 Dsus4 G D A5 A G …
  AH: "[[f#2,a3,c#4,e4,f#4,a4]@4 [a2,a3,b3,d4,g4,a4]@3 ~ [d3,a3,d4,f#4,a4]@2 [d3,a3,d4,f#4,a4]@2 a3 ~ a3@4 ~@2 [e4,a4] ~ a3 [a2,a3] [g2,b3,d4,g4]@3 [b3,d4,g4] [g2,b3,d4]@4, ~@14 [a2,c#4,e4,a4]@5 c#4@2 [c#4,a4]@3 ~@8, ~@9 a3@2 ~ g3@4, ~@20 a2@3 ~@9]/2", // F#m7 G D A5 A G A F#m
  AI: "[f#2,a3,c#4,e4,f#4,a4]@4 [a2,a3,b3,d4,g4,a4]@3 ~ [d3,d4,a4] ~@7", // F#m7 G D5
})).s("gm_acoustic_guitar_steel").gain(0.47)

// chords · acoustic guitar steel · "ACC GTR ST" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A B ~ C ~@4 D E ~@2 F G ~ H I ~ J K L M ~@5 N@3 ~ O@3 ~ P ~ Q ~ R S ~ T U ~ V ~ W ~ X Y Z H I ~ J K L M ~ P ~ P ~ P
  ~ P ~@2
>`.pickRestart({
  A: "~@6 a2@9 ~", B: "g3@3 ~@5", C: "[g3,g4]@5 ~ [a2,e4]@8 ~@2", D: "e3@15 ~", E: "d#3@7 ~", F: "e4@6 e4@9 ~",
  G: "d#4@5 ~ g#4@8 ~@2", H: "~@13 e4@3", I: "~ g4 ~@2", J: "~@3 g4 ~@12", K: "~@15 g4", L: "~@2 [e4,f#4] ~@2 b3 ~@2",
  M: "b3@7 ~@9", N: "[~@8 e3@15 ~ d#3@14 ~@10]/3", O: "[~@8 e4@6 e4@9 ~ d#4@5 ~ g#4@8 ~@10]/3", P: "~@5 e4@3 ~@4 g4@4",
  Q: "~@11 g4 ~@4", R: "~@7 g4 ~@4 [e4,f#4]@2 ~@2", S: "~@2 b3@2 ~@4 b3@7 ~", T: "~@4 d4 ~@11", U: "~@4 e4 ~@3",
  V: "~@7 b4, ~@3 e4@5", W: "f#4@4 ~@3 e4 ~@3 c#4 e4@3 ~", X: "~@2 [e4,f#4]@2 e4 f#3@2 ~", Y: "f#4 ~@6 [c#4,e4]",
  Z: "~@3 a2 g4 [a2,g4] a2!2", // A7
})).s("gm_acoustic_guitar_steel").gain(0.24)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@5 A ~@17 B@6 ~@6 C@2 D@2 E@4 ~@10 F G H I J K@3 ~@9>".pickRestart({
  A: "e3", B: "[~@4 d3@3 a3@3 b3@2 e3@8 d#3@8 e4@8 [b3,e4,f#4]@8 ~@4, ~@7 [a3,c#4]@4 ~]/6",
  C: "[~@8 [d4,f#4]@5 ~ e4@10 [b3,d4]@7 ~, ~@8 a3@15 ~@9]/2", // D Bm
  D: "[[f#3,a3]@3 ~ [a3,b3,e4]@4 d4@6 [c#4,e4]@10 [b3,d4]@8, c#4@8 a3@15 ~@9]/2", // F#m Asus2 C#m Bm
  E: "[f#3@8 [f#3,d4]@6 [g3,e4]@10 [a3,c#4,f#4]@6 ~@10 a4@3 ~@5 [e4,a4]@16, ~@8 b3@15 ~@7 d4@34, ~@30 b3@17 a3@17]/4", // D C F#m A5
  F: "[d4,f#4]@5 ~ [c#4,e4]@10, a3@15 ~", G: "[g3,b3,d4]@7 ~ [f#3,a3]@3 ~ [a3,b3,e4]@4, ~ c#4",
  H: "[f#3,d4]@3 [c#4,e4]@5, a3@15 ~", I: "[b3,d4] f#3", J: "[f#3,d4]@3 [g3,e4]@5, b3@15 ~",
  K: "[[a3,c#4,f#4]@6 ~@10 a4@3 ~@5 [e4,a4]@17 ~@7, ~@3 d4@17 ~@4, ~@6 b3@17 a3@17 ~@8]/3", // F#m A5
})).s("gm_string_ensemble_1").gain(0.13)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@35 A@2 B C D E@3 ~@13 F ~ G@3 ~@9>".pickRestart({
  A: "[~@14 c#4@10 g3@7 ~]/2", B: "~@4 f#3@3 ~", C: "~ g3", D: "[a3,c#4] ~", E: "[~@14 g4@17 b3@17]/3",
  F: "g3 [a3,c#4]", G: "[~@6 g4@17 b3@17 ~@8]/3",
})).s("gm_string_ensemble_1").gain(0.06)

// other · distortion guitar · "DIST GTR"
const distortion_guitar = note(`<
  ~@43
  [d5@3 c#5@4 ~]
  [d5!2 ~ d5 d5@3 b4 e4@8]
  [~ e5@2 e5!2 ~ e5 e5@2 e5@2 e5 e5@4]
  [~@2 f#5 e5 g#5 f#5 a5@10]
  ~@23
>`).s("gm_distortion_guitar").gain(0.48)

// other · distortion guitar · "DIST GTR"
const distortion_guitar_2 = note("<~@43 [a4@6 f#4@9 ~] [a4!2 ~ a4 a4@3 f#4 b3@7 ~] ~@25>")
  .s("gm_distortion_guitar").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@14 B A C A D ~@3 E@11 F G F H I J K L M N O N P Q R S O T C A C A D ~@3 E F H F H F H F D ~
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@6 x!2 ~@3 x ~@3", C: "x ~@6 x!2 ~@7", D: "x!2", E: "~@4 x ~@2 x", F: "~@8 x ~@6 x",
  G: "x ~@2 x ~@3 x!2 ~@5 x ~", H: "x ~@3 x ~@2 x", I: "~ x", J: "x ~@6 x!2 ~@5 x ~", K: "~@7 x!2 ~@5 x ~",
  L: "~@7 x!2 ~@6 x", M: "x ~@7 x ~@5 x!2", N: "x ~@5 x ~@8 x", O: "x ~@6 x!2 ~ x ~@5", P: "x ~@8 x ~ x ~ x ~@2",
  Q: "x!2 ~@3 x ~@2", R: "x ~@3 x!2 ~@2", S: "x ~ x ~@3 x ~@8 x", T: "x!2 ~ x ~ x ~@2",
})).gain(0.48)

// drums · rim
const rim = s("rim").struct("<~@5 [~ x ~ x]!11 ~@54>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~ A@4 ~@11 A@8 B ~@10 C A@6 D A@3 B A@21 B ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~ x!2 ~@3 x ~", D: "~@2 x ~@2 x!2 ~",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@4 A ~@6 B C ~@2 D ~@5 E ~ F ~@7 G ~@3 H ~@6 I ~ D ~ J ~@3 J ~ K ~@2 L B ~ M ~@11
>`.pickRestart({
  A: "~@3 x", B: "~@15 x", C: "x", D: "~@13 x!2 ~", E: "~@3 x!2 ~@11", F: "~@11 x!2 ~@3", G: "~@3 x!2 ~ x ~@9",
  H: "~@5 x!2 ~@9", I: "~@13 x ~@2", J: "~@14 x!2", K: "~@8 x ~ x ~@2 x!2 ~", L: "~@2 x!3 ~@11", M: "~@2 x!2 ~@4",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~ A@4 B A@3 B A@3 B@3 C@8 D ~@10 E C@24 F G@3 H G@3 H I>".pickRestart({
  A: "x ~ x!3 ~ x ~ x!3 ~ x ~@3", B: "~@2 x!3 ~ x ~ x!3 ~ x ~@3", C: "x!8", D: "x!2 ~ x ~@4", E: "~@4 x!4",
  F: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x!2", G: "x ~ x ~@3 x ~ x!3 ~ x ~ x!2", H: "x ~ x ~@5 x!3 ~ x ~ x!2", I: "~@4 x!2 ~@2",
})).gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@24
  [~@10 x!3 ~ x ~]
  [x!3 ~ x ~@3 x ~ x!3 ~ x ~]!3
  [x!3 ~ x ~@5 x!3 ~ x ~]
  [x!3 ~ x ~@3 x ~ x!3 ~ x ~]!3
  [x!3 ~ x ~@5 x!3 ~ x ~]!3
  [x!3 ~ x ~@11]
  ~@34
>`).gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct("<~@15 A ~@19 B ~@3 C ~@4 D ~ E ~ F ~ G ~ H ~@3 I ~ J ~ C ~@9>".pickRestart({
  A: "~@10 x ~@2 x ~@2", B: "~@2 x ~@2 x ~@10", C: "~@3 x ~@4", D: "~@13 x!2 ~", E: "~@6 x!2", F: "~@14 x!2",
  G: "~@13 x ~@2", H: "~@7 x ~@4 x ~@3", I: "~@7 x", J: "x ~@2 x ~@12",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~ [~@7 x]!15 ~@8 [~ x ~@2] ~@36 [~ x ~@2]!8 [~@3 x]>").gain(0.48)

// … 38 more lines

More by LeAnn Rimes