Strudelify
Even Now cover art

Even Now

Even Now

Barry Manilow

KeyA majorTempo68 bpm
0:00/0:00
// Even Now — Barry Manilow
// 68 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 57 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 · "A.PIANO 2"
const piano = note(`<
  A B C D E F G H I J K L M F N O P Q R S T U V W X Y V Z C AA C AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ@2
>`.pickRestart({
  A: "~@3 e3 ~@3 c#3, [a2,e4]@2 [a2,e4,a4,c#5,e5]!2, [b3,b4,c#5,e5]!2 a3@2, ~ e3@2 ~@2 e3@3, ~@13 b2@3", // A5 A C#m7
  B: "d4!3 ~@4 a3, d3@5 d3@3, [f#4,a4,c#5] [f#4,a4,c#5]@3, ~@3 d4@5, ~@2 a3 b3", // F#m
  C: "~@3 e3 ~@3 c#3, a2@2 [a2,e4,a4,c#5,e5]!2, [b3,e4,b4,c#5,e5]!2 a3@2, ~ e3@2 ~@2 e3@3, ~@13 b2@3", // A C#m7
  D: "d4@2 d4@2 d4@2 ~@2 a3@7 ~, d3@15 ~, [f#4,a4,c#5]@4 [f#4,a4,c#5]@11 ~, ~@6 d4@9 ~", // F#m
  E: "[b3,c#4]!2 ~ e3 ~@3 a3, a2!2, e3@3 ~ [c#4,a4]@2 [c#4,a4]@2, [e4,b4]@2 [b3,c#4,e4,b4]@2 a3@3 ~, ~@5 e3@3", // Bsus2 F#m E5 C#m7
  F: "a3 ~@3 [c#4,d4,f#4,a4]@2 ~ a3, d3, [c#4,d4,f#4,a4]!2 ~ [c#4,d4,f#4,a4], ~ a3@2 a3@4 ~", // Dmaj7
  G: "[b3,c#4,e4,g#4]@2 ~ g#3 a3 ~@2 a3, c#3 b2, g#3@3 ~@2 a3@2 ~, ~ [b3,c#4,e4,g#4] [b3,d4,f#4,a4]!2", // C#m7 Bm7
  H: "e3 ~ [c#4,e4]!5 [a3,c#4,e4,a4], [a2,g#4], [b3,c#4,e4] [b3,b4]!3, ~ e3@7, ~@3 [a3,a4]@2 [a3,a4]@2 ~", // C#m A Amaj7 C#m7 B A
  I: "d4 ~ d4@2 ~@4 [c#4,d4,f#4,a4]@4 ~@2 [d3,a3]@2, d3@7 ~, a3@3 a3@4 ~, [c#4,f#4,a4] [c#4,d4,f#4,a4] ~ [c#4,d4,f#4,a4]", // Dmaj7 D5 F#m Dmaj7
  J: "~@3 g#3 ~@3 c#3, c#3 f#2, [b3,c#4,e4,g#4]@2 [b3,c#4,e4,g#4]@2 ~ c#3@2 ~, ~ g#3@2 ~ [a3,c#4,e4,f#4]@2 [a3,c#4,e4,f#4]@2", // C#m7 F#m7
  K: "a3!2 ~ b2 [f#3,a3,b3,d#4]@2 ~ b2, b2@3 ~ b2@3 ~, [c#4,e4] [a3,c#4,e4] ~ [f#3,a3,b3,d#4]", // B7 C#m A B7
  L: "e3 ~@5 e3@2, [e2,f#3,a3] d5, d4 d4@3, ~ e3@2 a4@5, ~@5 f#4@11", // F#m7
  M: "~@3 e3 ~@3 a3, a2!2, [b3,c#4,e4,b4]@2 [b3,c#4,e4,b4]@2 a3@3 ~, ~ e3@2 ~ [c#4,a4]@2 [c#4,a4]@2, ~@5 e3@3", // C#m7 F#m
  N: "~@3 g#3 [b3,d4,f#4,a4]@2 ~ f#3, c#3 b2, [b3,c#4,e4,g#4]!2 ~ [b3,d4,f#4,a4], ~ g#3@2 ~@5", // Bm7 C#m7 Bm7
  O: "~@2 [c#4,e4] [a3,c#4,e4,a4] [c#4,e4]!3 [a3,c#4,e4,a4], a2@3 a2@5, [b3,c#4,e4,g#4] [b3,b4]!3, ~ e3@3 ~ [a3,a4]@2 ~", // C#m A C#m A C#m7 B A
  P: "~@4 [c#4,d4,f#4,a4]@2 ~ a3, d3@3 [d3,c#4,d4,f#4,a4], [c#4,d4,f#4,a4]!2 ~@2, ~ a3@2 a3@4 ~", // Dmaj7
  Q: "~@3 g#3 ~@3 c#3, c#3 f#2, [b3,c#4,e4,g#4]@2 [b3,c#4,e4,g#4]@2 ~ c#3@2 ~, ~ g#3@2 ~ [a3,c#4,e4,f#4]@2 [a3,c#4,e4,f#4,a4]@2", // C#m7 F#m7
  R: "a3 ~@3 a3@2 a3@2 f#3@2 f#3@2 ~@2 b2@2, [b2,c#4,e4]@3 b2@5 b2@6 ~@2, ~ a3 [c#4,e4]@2 [a3,b3,d#4]@2 [f#3,a3,b3,d#4]@2", // C#m7 C#m B7
  S: "a3@2 ~@2 a3@2 ~@2 a3 ~@3 e3@3 ~, e2@3 a3 [e3,d4,f#4,a4] e3 ~@2, [e3,d4,f#4,a4]@3 e3@4 e2@8 ~, ~@2 a3@2 [d4,f#4,a4]@4 ~ a3@6 ~, ~@11 [d4,f#4,a4]@4 ~", // D
  T: "[e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,g#4,c#5]@2 ~ a3, a3@4 a3@3 ~, ~@3 [e4,g#4,c#5]", // A C#m
  U: "[d#4,f#4,g#4,b4]@2 [d#4,f#4,g#4,b4]@2 [d4,f4,g#4,b4]@2 d4!2, g#3 c#3, ~@3 [f4,g#4,b4]", // G#m7 Ddim Fdim
  V: "[c#4,e4,f#4,a4]@2 ~ f#3 [c#4,e4,a4]@2 [b3,d#4,f#4,a4]@2, f#3@3 ~ b2@4, ~ [c#4,e4,f#4,a4] ~@2", // F#m7 A B7 F#m7
  W: "[e3,d4,f#4,a4] [d3,d4,f#4,a4] [c#3,b3,c#4,e4,g#4] [b2,a3,b3,d4,f#4]", // D C#m7 Bm7
  X: "[e4,a4,c#5]@2 ~ a3 [e4,g#4,c#5]@2 [e4,g#4,c#5]@2, a3@3 ~ a3@4, ~ [e4,a4,c#5] ~@2", // A C#m A
  Y: "[d#4,f#4,g#4,b4]@2 ~ g#3 [d4,f4,g#4,b4]@2 [d4,f4,g#4,b4]@2, g#3@3 ~ c#3@4, ~ [d#4,f#4,g#4,b4] ~@2", // G#m7 Ddim G#m7
  Z: "d4@4 ~@6 d5@5 ~, e3@15 ~, a4@8 a4@7 ~, f#4@6 f#4@9 ~, ~@4 d4@11 ~",
  AA: "[d4,f#4,a4,c#5]@2 d4 ~@4 a3, d3, ~ [f#4,a4,c#5]@3, ~@3 d4@5, ~@2 a3 b3", // Dmaj7 F#m
  AB: "d4@2 ~@6 a5@7 ~, [d3,f#4,c#5]@15 ~, a4@6 a4@9 ~, ~@2 d4@13 ~, ~@4 a3@11 ~", // Dmaj7
  AC: "[c#4,e4,b4]@2 c#4 [e3,c#4] ~@3 e3, a2!2, e3@3 ~@2 e3@2 ~, ~ [e4,b4] [c#4,a4] [c#4,e4,a4]", // C#m7 C#m E5 F#m A
  AD: "~@4 [c#4,d4,f#4,a4]@2 ~ a3, d3!2, [c#4,d4,f#4,a4]!2 ~ [c#4,d4,f#4,a4], ~ a3@2 a3@4 ~", // Dmaj7
  AE: "~@3 g#3 ~@3 f#3, c#3 b2, [b3,c#4,e4,g#4]!2 [b3,d4,f#4,a4]!2, ~ g#3@2 ~@2 a3@3", // C#m7 Bm7
  AF: "c#4!2 ~@2 e4!2 ~ [a3,g#4], a2, g#3@3 [g#3,g#4]@2 g#3@3, e4 [b3,c#4,e4,b4] [b3,c#4,b4] [b3,c#4,e4,b4], ~@5 g#4@2 ~", // Amaj7 G# C#m7 Bsus2 C#m7
  AG: "[c#4,f#4,a4]@2 c#4!2 [c#4,d4,f#4,a4]@2 ~ a3, d3@3 [d3,c#4,d4,f#4,a4], a3@3 a3@4 ~, d4 ~@3 [d4,f#4,a4]@4 ~@8", // F#m Dmaj7 D
  AH: "~@3 g#3 ~@3 c#3, c#3 [f#2,a4], [b3,c#4,e4,g#4]@2 [b3,c#4,e4,g#4]@2 ~ c#3@2 ~, ~ g#3@2 ~ [a3,c#4,e4,f#4]@2 [a3,c#4,e4,f#4]@2", // F#m C#m7 F#m7
  AI: "a3@2 a3@2 a3@2 [b2,a3]@2 a3 ~ a3@2 ~@2 b2@2, b2@3 ~ b2@3 ~, [c#4,e4]!2 [b3,d#4,f#4] [a3,b3,d#4,f#4]", // B7 C#m B B7
  AJ: "a3@2 a3@2 a3@2 ~ e3 a3@2 a3@2 a3@2 ~ e3, e3@3 a3 e3@3 a3, [d4,f#4,a4]!4", // D
  AK: "a3 ~@2 e2 [e2,e3]@2 [e2,e3]@2 [e2,e3,a3,d4,f#4,a4] ~@7, [e2,e3,d4,f#4,a4] ~@3, ~ a3 [a3,d4,f#4,a4]@2 ~@4", // E D
  AL: "[a#3,d4,f4]@4 [a#3,d4,f4]@3 a#2 [a3,d4,f4]@4 ~@2 a#2@2, a#2@7 ~ a#2@6 ~@2, ~@3 [a3,d4,f4]", // A# Dm
  AM: "[g3,a3,c4,e4]@2 [g3,a3,c4,e4]@2 [f#3,a3,c4,d#4]@2 ~ d3, a2@4 d3@3 ~, ~@3 [f#3,a3,c4,d#4]", // Am7 F#dim
  AN: "[g3,a#3,d4]@4 g3@2 ~ g2 [c3,f3,a#3,d4]@3 c3 [c3,g3,a#3,c4,e4]@3 c3, g2@3 g3 ~@4, ~ [a#3,d4] ~@2", // Gm A# C7 A#
  AO: "[f3,a#3,d#4,g4]@3 f3 [d#3,a#3,c4,d#4,g4]@3 d#3 [d3,a3,c4,d4,f4]@3 d3 [c3,g3,a#3,c4,d#4]@3 c3", // D# Cm7 Dm7 Cm7
  AP: "[a#3,d4,f4]@4 ~@4 [a3,a#3,d4,f4]@3 ~ [a3,a#3,d4,f4]@3 a#2, a#2@6 a#2@5 a#2@4 ~, ~ [a#3,d4,f4] ~@2", // A# A#maj7 A#
  AQ: "[g3,a3,c4,e4]@2 ~ a2 [d3,f#3,a3,c4,d#4]@2 ~ d3, a2@3 ~@5, ~ [g3,a3,c4,e4] ~ [f#3,a3,c4,d#4]", // Am7 D7 Am7 F#dim
  AR: "[g2,g3,a#3,d4]@4 ~@2 g2!2 [c3,f3,a#3,d4]@3 c3 [c3,g3,a#3,c4,e4]@3 c3, ~ [g3,a#3,d4] ~@2", // Gm A# C7 Gm
  AS: "[f3,a#3,d#4,g4]@6 g3@3 ~ a#3 ~@3 f3@2, ~@3 f3@4 ~, ~@6 [a#3,d#4]@5 ~@5, ~@9 g3@2 [g3,a#3,d#4]@5", // D# D#5 D#
  AT: "g3@2 g3!2 g3@2 g3!2, e3, [a#3,d4,e4]@3 [a#3,d4,e4]@3 [a#3,d4,e4]@2", // Em7b5
  AU: "g3@3 ~@3 [f3,a#3,d#4]@5 f3 [f3,g3,a#3,d#4]@3 f3, [f3,a#3,d#4]@3 ~@5, ~@3 g3@9 ~@4", // D#sus2 D# D#sus2
  AV: "[a#3,d4,f4]@2 ~ a#2 [a#2,a3,d4,f4]@2 ~ a#2, a#2@3 ~@5, ~ [a#3,d4,f4] ~ [a3,d4,f4]", // A# A#maj7 A# Dm
  AW: "[g3,a3,c4,e4]@2 ~ a2 [d3,f#3,a3,c4,d#4]@4, a2@3 ~@5, ~ [g3,a3,c4,e4] ~@2", // Am7 D7 Am7
  AX: "[g2,g3,a#3,d4,f4]@3 ~ [g2,g3,a#3,d4,f4]@4 [g2,g3,a#3,d4,f4]@4 ~@4", // Gm7
  AY: "[f2,g3,a#3,d#4,f4]@3 ~ [f2,g3,a#3,d#4,f4]@3 ~ [f2,g3,a#3,d#4,f4]@3 ~@5", // D#
  AZ: "[[a#4,a#5]@4 [a#4,a#5]!4 a#4 a#4@3 a#4 [a#3,a#5] [a#3,d4,a#5]@4 [a#3,d4,a#4,a#5] ~@13, [a#3,d4]@12 ~ a#4@4 ~@15, ~@2 a#5 ~@5]/2", // A#
})).s("gm_piano").gain(0.33).pan(0.3)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@7 A B C D E F G H I J K L M N O P Q N R S E T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV
>`.pickRestart({
  A: "~@7 a2", B: "d2@7 a1", C: "c#2@4 f#1@3 f#1", D: "b1!2", E: "e1", F: "a2@5 ~ a2 ~ a2@5 ~ a2@2",
  G: "d2@7 a2 d3@5 a2 d2@2", H: "c#2@5 ~ c#2@2 b1@5 ~ b1@2", I: "a1@6 a3@2 g#3 f#3 e3 c#3 a2@2 e2@2, ~@6 g#3 ~@9",
  J: "d2@3 a2 d3@3 d2", K: "c#2@3 g#2 f#2@3 c#2", L: "b1@6 f#2 a2 b2@6 b1@2", M: "e2@6 e2 f#2 e2@4 e2@4",
  N: "a1@5 ~ a1 ~ a1@6 a1@2", O: "g#1@6 b1@2 c#2@5 ~ c#2@2", P: "f#1@5 ~ a1@2 b1@6 b1@2", Q: "e2@4 d2@3 ~ c#2@4 b1@4",
  R: "g#1@3 b1 c#2@3 c#2", S: "f#1@3 a1 b1@3 b1", T: "a1@5 ~ a1 ~ a1@4 a1 b1 c#2@2", U: "d2@6 d2 ~ d2@8",
  V: "a1@11 ~ a1 b1 c#2@2", W: "d2@15 ~", X: "a1@6 a1 ~ a1@6 c#2@2", Y: "d2@5 ~ a2@2 d3 ~ d2@4 a2@2",
  Z: "c#2@5 ~ c#2@2 b1@6 b1@2", AA: "a1@6 e3 b3 a3 f#3 e3@2 c#3@2 a2@2", AB: "d2@5 ~ d2 ~ d2@5 ~ d2@2",
  AC: "c#2@3 e2 f#2@3 c#2", AD: "b1@6 f#2 a2 b2@2 f#2@2 b2@2 b1@2, ~@8 d#3@7 ~", AE: "e2@5 d3 e3 f#3 e3@5 a2 b2 c#3",
  AF: "b2@4 b2 a2 f#2@2 e2@2 ~@6", AG: "a#1@5 ~ a#1 ~ a#1@5 ~ a#1 ~",
  AH: "~@4 b2 d3 g3 d3 [d2,f#3]@6 a1@2, a1 ~, ~ c3 ~@2", AI: "g1@6 a#1@2 c2@5 ~ g2@2", AJ: "f2@4 d#2@3 ~ d2@4 c2@4",
  AK: "a#1@5 ~ f2@2 a#1@6 a#1@2", AL: "a1@6 c2@2 d2@5 d2 f1 f#1", AM: "g1@6 a#1 b1 c2@6 c2@2", AN: "f2@3 f3",
  AO: "e2@5 ~ g2@2 a#2@4 g2@2 e2@2", AP: "f2@3 ~ f3 g3 f3@3 c3 d3 f3@3 f2@2, ~@3 c3@5 ~@8",
  AQ: "a#1@5 ~ a#1 ~ a#1@5 ~ a#1@2", AR: "~@4 b2 d3 g3 d3 [d2,f#3]@7 ~, a1 ~, ~ c3 ~@2", AS: "g1@3 ~ g1@3 ~ g1@4 ~@4",
  AT: "f1@3 ~ f1@3 ~ f1@4 ~@4", AU: "a#1", AV: "~@2 a#1 ~@13",
})).s("gm_fretless_bass").gain(0.38)

// chords · string ensemble 2 · "SLOWSTIRNG"
const string_ensemble_2 = note(`<
  ~@2 A@4 ~@2 B C D@2 E F G ~@2 H I J K@2 L@2 M@2 N@2 ~@2 O P ~@2 Q R@3 S T@2 U V W X Y Z AA@2 AB AC U AD AE AF AG@2
>`.pickRestart({
  A: "[~ f#5 e4@2, e6@63 ~]/4", B: "f#3", C: "g#3 a3", D: "[b3@25 ~@7]/2", E: "~@5 a3 e4@2",
  F: "f#4@5 [a4,c#5] [g#4,b4] [d4,f#4,a4]", G: "e4 d4", H: "~ [a3,f#4]",
  I: "[a3,e4]@4 ~ f#4 g#4 a4, a4@5 ~@3, ~ [b3,d#4]", J: "[e3,b3,f#4,b4]!2, d4",
  K: "[a3@4 ~@2 c#5 e5 f#3@4 ~@2 c#5@2, c#4 b3, c#5@11 ~@5 b4@12 ~@4, ~ g#3@3, ~@3 f3]/2",
  L: "[f#3@2 e3 [f#3,b3] e3 [d3,b4] [c#3,g#3,c#4,c#5] [b2,b3,b4], a3@3 ~, a4@19 ~@13, c#4@3 ~ d4@2 ~@2]/2", // B5 G C#5 B
  M: "[~@2 a4 b4 g#4@4 f#3@4 f3@4, c#4 [b3,b4], a3 g#3@3]/2", N: "[f#3@4 e3@2 f#3@9 ~, [a3,a4]@29 ~@3, c#4@3 b3 ~@4]/2",
  O: "~@6 b6 a6", P: "e7@13 ~@3", Q: "g#3 ~", R: "[~@2 b3 ~@5 [g#3,b3]@2 f#3@2, e3 ~@2, ~@12 c#4@35 ~]/3",
  S: "e4@8 [f#3,b3,d#4]@7 ~", T: "[e6@7 ~@13 d5@5 ~@7, [a3,d4,f#4]@25 ~@7, ~ e6 e6 ~, ~@12 a4@13 ~@7]/2",
  U: "a#3@8 a3@7 ~, [d4,f4]", V: "e4 d#4, [a3,c4]", W: "g3@7 ~ f3@3 ~ [g3,a#3,c4]@4, [a#3,d4]@3 ~",
  X: "[a#3,d#4]@3 ~ [a#3,d#4]@4 [a3,d4]@4 [g3,c4,d#4]@4, g3 ~", Y: "a#3 a3, [d4,f4]", Z: "[a3,c4,e4] [a3,c4,d#4]",
  AA: "[g3@7 ~ f3@4 [a#3,c4]@4 [a#3,d#4]@16, [a#3,d4]@3 g3@5]/2", AB: "[g3,a#3,d4,e4]", AC: "[g3,a#3,d#4]",
  AD: "e4@8 d#4@7 ~, [a3,c4]@15 ~", AE: "[g3,a#3,d4] ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~@3",
  AF: "[g3,a#3,d#4] ~ [g3,a#3,d#4] ~ [g3,a#3,d#4] ~@3", AG: "[[f3,a#3,d4]@19 ~@13]/2",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.6)

// chords · string ensemble 2 · "SLOWSTIRNG" · soft notes
const string_ensemble_2_soft = note("<~@3 A B@2 ~@6 C@2 D E F G H ~@8 I ~@4 J@4 K L M ~@18>".pickRestart({
  A: "f#4", B: "e5/2", C: "[b4@16 c#5@9 ~@7, [e5,e6], a4@25 ~@7, e4@5 ~@11]/2", D: "[g#3,c#4] [f#3,b3], g#4@5 ~@11",
  E: "[e3,a3,c#4]", F: "[c#4,d4,f#4,a4]", G: "[c#4,e4]@15 ~, [b3,g#4] ~", H: "c#4 ~", I: "d4@13 ~@3",
  J: "[b3@8 c#4@8 f#3@15 ~ b3@8 [f#3,a3]@8 g#3@15 ~, e6@61 ~@3, a3 ~]/4", K: "[f#3,a3]", L: "~@8 a3@7 ~, e4@15 ~",
  M: "[a3,c#4]@8 a3@7 ~", // A
})).s("gm_string_ensemble_2").gain(0.22).pan(0.6)

// other · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@15 A@2 B ~@17 C@2 D ~@19>".pickRestart({
  A: "[~@12 a3@2 b3 c#4@3 c#4@2 c#4@2 b3@2 a3@2 c#4@2 ~@2 d4 c#4]/2", B: "b3@2 a3 g#3@3 b3 a3@4 ~@5",
  C: "[~@12 a3@2 b3 c#4@3 c#4@2 c#4@2 b3 a3@2 c#4@3 ~@2 d4 c#4]/2", D: "b3@2 a3@2 g#3@2 b3 a3@4 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@7 A B C@3 D E F G H I J@2 ~@9 K@3 L M N O P Q R@2 ~@17>".pickRestart({
  A: "~@4 c#6 b5 a5 g#5", B: "f#5@3 a5", C: "[g#5@8 f#5@4 a5@12 f#5@23 ~]/3", D: "~@5 e5 b5@2", E: "c#6@15 ~", F: "b5",
  G: "c#6@7 ~ c#6@2 b5@2 a5@2 g#5@2", H: "f#5@7 ~", I: "b5 a5", J: "[c#6@2 b5@5 ~]/2",
  K: "[~@12 b4@2 ~@8 b5 c#6@5 b5 c#6 ~@2 e6@15 ~, ~@14 a4@33 ~, ~@16 e5@31 ~, ~@22 e6@9 ~@17, ~@22 a5@7 ~ a5@17 ~]/3",
  L: "~ c#5@3, a3@7 ~, ~ e4@7", M: "~@3 c#5@12 ~, c#4@15 ~, ~ a4@14 ~", N: "~ b4@7 ~@4 [d4,b4]@4, [c#4,e4] [b3,f#4]",
  O: "[e4,g#4]@8 g#5 a5 g#5@6, [b3,c#4]@15 ~", P: "~@3 a4@5, ~@2 f#3@13 ~, ~ c#4@3",
  Q: "[g#3,e4] [c#6,e6] [a3,c#4,a5,c#6]@2", R: "[[a5,c#6]@4 [c#6,e6]@4 [f#5,a5,b5]@15 ~@9]/2",
})).s("gm_epiano1").gain(0.27).pan(0.8)

// other · flute
const flute = note("<~@24 A B C D ~@13 E F G H I J K L M L N O P Q R@2>".pickRestart({
  A: "~@2 a5 b5 g#5@4", B: "b5", C: "a5", D: "b5@15 ~", E: "d6@5 c6 a#5@2 d6@8", F: "e6@5 c6 a5 g5 f#5@4 c6@4",
  G: "d6@5 c6 g5@2 f5@4 e5@4", H: "f5", I: "d6", J: "g6 f#6", K: "f6@3 e6", L: "d#6", M: "e6", N: "d6@4 d#6 d6 c6 a#5",
  O: "c6@4 d6 c6 a#5 a5", P: "g5 ~ c6 ~ a#5 ~@3", Q: "d#6 ~ f6 ~ g6 ~@3", R: "[a#6@9 ~@7]/2",
})).s("gm_flute").gain(0.33).pan(0.4)

// other · oboe
const oboe = note("<~ A B@4 ~@14 C D E@2 F G H@2 ~@4 I@2 J K ~@5 L M N@2 O P Q R@2 S T P U ~@3>".pickRestart({
  A: "~@6 b4 a4", B: "e5/4", C: "c#5@7 e5", D: "b4@3 c#5", E: "[a4@25 ~@7]/2", F: "~@2 a4 b4 g#4@4", G: "b4",
  H: "[a4@31 ~]/2", I: "[~@2 b3 a3 e4@6 f#4@2 a4@3 b4]/2", J: "g#4@4 a4@3 f#4", K: "e4@3 ~", L: "d5@5 c5 a#4@2 d5@8",
  M: "e5@5 c5 a4 g4 f#4@4 c5@4", N: "[d5@3 c5@5]/2", O: "d5", P: "g5 f#5", Q: "f5@3 e5", R: "g5/2", S: "g5", T: "f5",
  U: "g5 ~@7",
})).s("gm_oboe").gain(0.32).pan(0.7)

// other · french horn · "FR.HORN"
const french_horn = note("<~@12 A B A@2 B C@2 D ~@37>".pickRestart({
  A: "e3", B: "f#3", C: "[g#3@4 a3@9 f#3 g#3 a3]/2", D: "b3@15 ~",
})).s("gm_french_horn").gain(0.22).pan(0.2)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@28 A B C D E F G H I J K L M N O P Q R S@2 T U V ~@6>".pickRestart({
  A: "~@6 a4@6 ~ b3 c#4@2", B: "c#4@5 ~ d4@2 ~@8", C: "~@3 b3@3 ~@6 a3 b3 c#4@2, e3@5 ~@3, ~@2 a3@9 ~@5",
  D: "c#4 ~ [c#4,d4] ~@3 a4@9 ~, ~@4 a3@11 ~", E: "~@7 a3@6 ~@3, ~@4 b3@9 ~@3, ~@5 e4@8 ~@3",
  F: "~@11 a4@3 ~@2, ~@3 f#4@11 ~@2, ~@6 c#4@9 ~", G: "~@4 b3@4 ~ f#4@6 ~, ~@3 g#4@5 ~@8",
  H: "~ [c#4,e4]@5 ~@2, ~ [g#3,b3]@11 ~@4", I: "~ a3@2 ~, ~@3 f#4@10 ~@3",
  J: "~@2 b3@4 ~@5 e4@3 ~@2, ~ g#4@6 ~@2 f#4@6 ~, ~@10 c#4@5 ~", K: "~@3 c#4@4 ~@9, e4 ~, ~ a3@3 ~@4",
  L: "~@4 [a3,d4]@2 ~@4 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~", M: "[a3,d4] ~ [a3,d4]@2 e3 f#3 a3 b3 d4 ~@7",
  N: "~@5 a#3@3 a3@3 a3@3 ~@2, ~@3 d4@11 ~@2, ~ f3 ~@2",
  O: "~@4 e4@3 ~@5 a3@4, ~ e4@2 g4@4 ~@2 f#4@6 ~, ~@2 a3@7 ~ d#4@5 ~, ~@11 c4@5",
  P: "~@2 d4@5 ~@2 a#3@2 d4 [g3,c4]@4, f4 ~@7, ~ g3@6 ~@9", Q: "[a#3,d#4]@5 ~@5 a3 ~ [c4,d#4]@4, ~@2 d4 ~",
  R: "d4@5 ~ f4@5 ~ a3@3 f4, ~@5 f3@5 ~ d4@4 ~",
  S: "[~@3 g4@2 e4@2 f#4@2 ~@2 a3@4 ~ g3@6 ~@4 d4 ~ [g3,c4]@4, e4@3 ~@6 d#4@6 d4@7 ~@10, ~ a3@6 ~@3 c4@5 ~@10 f3@2 ~@5]/2", // C5
  T: "~@3 d#4@6 ~@2 d#4@4 ~, d#4@2 a#3@7 ~ a#3@6, ~ g3@6 ~@2 g3@7", U: "~@6 e3@9 ~, ~ d4@2 a#3@13, ~@2 e3@3 g3@11",
  V: "~@3 d#4@2 ~@2 g4@6 ~ d#4@2, ~ g3@3 ~@2 d#4@7 ~@3, ~@2 a#3@2 ~ a#3@6 ~@2 a#3@3",
})).s("gm_electric_guitar_clean").gain(0.27)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@28 A B C D E F G ~@4 H ~@17>".pickRestart({
  A: "~@12 a3 ~@3", B: "b3 ~@5 c#4@2 a3@6 ~@2", C: "~ f#3@2 ~@3 c#4@5 ~@5", D: "a3 ~ b3 ~@13", E: "~@3 a3@3 ~@10",
  F: "~@4 a3@7 ~@5", G: "~@6 b3 ~, ~@5 a3@2 ~", H: "~@6 [a3,d4]@3 ~@7",
})).s("gm_electric_guitar_clean").gain(0.16)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@51 A B C D E@2>".pickRestart({
  A: "~@3 d5 d#5 d5 c5 a#4", B: "c5@4 d5 c5 a#4 a4", C: "g4@2 ~@2 [g4,c5]@3 ~ [a#4,d5]@2 ~@6",
  D: "d#5@3 ~ f5@3 ~ g5@3 ~@5", E: "[a#5@9 ~@7]/2",
})).s("gm_overdriven_guitar").gain(0.38).pan(0.9)

// other · timpani
const timpani = note("<~@55 [~@4 a#2!12] [a#2!3 ~@13]>").s("gm_timpani").gain(0.33).pan(0.3)

// other · timpani · soft notes
const timpani_soft = note("<~@55 [~ a#2!3 ~@12] ~>").s("gm_timpani").gain(0.16).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@12 A B@5 C D E@3 F E@3 D ~@5 B@5 C E ~ E@3 G E@3 H I J E K F@2 L M>".pickRestart({
  A: "~ x", B: "x!2", C: "x ~@2 x!2 ~@3", D: "x", E: "x ~@2 x!2 ~@2 x", F: "x!4", G: "x!3 ~", H: "x ~ x!6",
  I: "x ~@5 x ~ x ~@6 x", J: "x ~@13 x!2", K: "x ~@2 x!2 ~ x!2", L: "~@8 x!8", M: "~ x ~@6",
})).gain(0.44)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@12 A ~@3 B@2 ~@14 C ~@3 D@2 E ~@10 E ~@5 F ~>".pickRestart({
  A: "x", B: "~@3 x ~@4", C: "x!2", D: "~@3 x ~@3 x", E: "~@7 x", F: "~@3 x!5 ~@8",
})).gain(0.22)

// drums · rim
// … 54 more lines

More by Barry Manilow