Strudelify

Dov'e L'amore

Cher

KeyG minorTempo95 bpm
0:00/0:00
// Dov'e L'amore — Cher
// 95 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(95/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.

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note("<A@4 B@4 ~@96>".pickRestart({
  A: "[~@8 d4@2 g4@2 bb4@2 [a4,bb4] a4@4 g4@16 d4@2 ~ bb4 ~ [a4,bb4] a4@2 g4@16 ~ d5@2 eb5@2, ~@37 g4@2 ~@25]/4", // Bbmaj7
  B: "[d5@2 c5@2 d5@8 f4@3 f5@8 ~ eb5@10 d5@3 eb5 ~ c5 ~ d5@18 ~@5, ~@19 d5 ~@12]/4",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// bass · electric bass pick
const bass = note(`<
  ~@8 A B C B D E F G D E F H I J K L I M N O P Q R S T B D E F G D E F H I J K L I M N O P Q ~ R S T B U V W X U Y W Z
  ~@4 AA AB AC AD I M N O P Q ~ R S R S R S R S R S R S R S R S R S R S R S R S
>`.pickRestart({
  A: "g3@3 g3 ~@12", B: "c3@2 ~ c3 ~@12", C: "g3@2 ~ g3 ~@12", D: "g3@2 ~ g3@2 d3 f3 d3 g3@2 ~ g3@3 d3@2",
  E: "c3@2 ~ c3@2 g2 bb2 g2 c3@2 ~ c3@3 c3@2", F: "f3@2 ~ f3@2 c3 f3 c3 eb3@2 ~ eb3@2 ~ eb3@2",
  G: "d3@3 d3@2 a2 c3 a2 d3@2 ~ d3@3 d3@2", H: "d3@3 d3@2 a2 c3 a2 d3@2 ~ d3@3 d3 ~",
  I: "g3@2 ~ g3@2 d3 f3 d3 g3@2 ~ g3@2 d3 g3 d3", J: "c3@2 ~ c3@2 g2 bb2 g2 c3@2 ~ c3@2 g2 bb2 g2",
  K: "c3@2 ~ c3@2 g2 c3 g2 bb2@2 ~ bb2@2 ~ bb2 ~", L: "g3@2 ~ g3@2 d3 f3 d3 g3@2 ~ g3@2 d3 f3 d3",
  M: "c3@2 ~ c3@2 g2 bb2 g2 c3@2 ~ c3@2 g2 c3 g2", N: "c3@2 ~ c3@2 g2 c3 g2 bb2@2 ~ bb2@3 bb2 ~",
  O: "f3@2 ~ f3@2 c3 f3 c3 g3@2 ~ g3@2 d3 g3 d3", P: "c3@2 ~ c3@2 g2 bb2 ~ bb2@2 ~ bb2@2 g2 bb2 g2",
  Q: "d3@3 d3@2 a2 c3 a2 d3@2 ~@6", R: "g3@2 ~ g3 ~ d3 f3 d3 g3@2 ~ g3!2 ~ d3@2",
  S: "c3@2 ~ c3 ~ g2 bb2 g2 c3@2 ~ c3 ~@2 c3@2", T: "g3@2 ~ g3 ~ d3 f3 d3 g3@2 ~ g3 ~ g3 d3@2",
  U: "g3@2 ~ g3 ~ d3 f3 d3 g3@2 ~ g3 ~ d3 g3 d3", V: "c3@2 ~ c3 ~ g2 bb2 g2 c3@2 ~ c3 ~ g2 c3 [g2,a2]",
  W: "f3@2 ~ f3 ~ c3 f3 c3 eb3@2 ~ eb3 ~ bb2 eb3 bb2", X: "d3@2 ~ d3 ~ a2 c3 a2 d3@2 ~ d3 ~ a2 d3 a2",
  Y: "c3@2 ~ c3 ~ g2 bb2 g2 c3@2 ~ c3 ~ g2 c3 g2", Z: "d3@2 ~ d3 ~ a2!2 ~ d3@2 ~ d3 ~@4", AA: "g3@13 ~ g3@2",
  AB: "c3@12 c3@3 ~", AC: "c3@5 ~ c3@2 bb2@5 ~ bb2@2", AD: "g3@3 g3@4 ~",
})).s("gm_electric_bass_pick").gain(0.44)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A@7 B@3 C D@3 E F@3 E G@5 H I@2 J ~ K H K C D@3 E F@3 E G@5 H I@2 J ~@2 K H K C ~@12 L@4 M H I@2 J ~@2 K H K H K H K
  H K H K H K H K H K H K H K H K H
>`.pickRestart({
  A: "[~@7 g2@19 a2 bb2 c3@15 ~ bb2@2 c3@2 bb2@2 ~@3 g2@3 bb2@7 ~@3 a4@9 eb3@10 ~@2 [a4,d5,gb5]@23 ~@2, ~@6 [g4,bb4,d5]@22 g4@38 ~@9 [g4,bb4,eb5]@12 ~@25, ~@28 c5@23 bb4@12 ~ c5@11 ~@37, ~@28 eb5@21 ~ a2@2 ~@11 [f3,f5]@12 ~@10 d3@20 ~@7]/7", // D Gm Eb F
  B: "[d4@15 ~ [c4,eb4]@16 d4@16, [g4,bb4]@47 ~]/3", C: "[c4,eb4,g4,bb4]@9 ~@7",
  D: "[d5@16 eb4@15 ~ [f4,a4,c5]@7 [eb4,g4,bb4]@9, [g4,bb4]@2 ~, ~@2 c4@3 ~]/3", E: "[d4,gb4,a4]",
  F: "[d5@16 eb4@15 ~ f4@8 [eb4,g4,bb4]@8, [g4,bb4]@31 [a4,c5]@8 ~@9, c5 ~@15 c4@24 ~@8]/3", // Eb Gm Am
  G: "[[d4,bb4]@15 ~ [c4,eb4,bb4]@24 [bb3,f4]@8 [d4,g4]@32, g4 bb4, ~@10 d4 ~@9]/5", H: "[c4,eb4,g4,bb4]",
  I: "[[c4,eb4,g4,bb4]@8 [bb3,d4,bb4]@8 [c4,a4]@7 ~ [d4,g4]@8, ~@8 f4@15 bb4@8 ~]/2", // Cm7 Bb F G5
  J: "[c4,eb4,g4,bb4] [bb3,d4,f4,bb4]", K: "[d4,g4,bb4]",
  L: "[d4@16 [c4,eb4]@23 ~ [bb3,d4,f4]@8 [d4,g4]@15 ~, bb4@63 ~, g4@5 ~@3]/4", M: "[d4,g4,bb4] ~",
})).s("gm_string_ensemble_1").gain(0.12)

// other · lead 8 bass lead
const lead_8_bass_lead = note("<~@8 A@3 B ~@18 C@3 B ~@19 C@3 B ~@23 C@24>".pickRestart({
  A: "~@3 g5 ~ g5 f5 ~ g5 ~ f5 ~ g5 ~@3", B: "~@3 g5 ~ g5 f5 ~ g5 ~@7", C: "~@3 g5 ~ g5 f5 ~ g5 ~ f6 ~ g6 ~@3",
})).s("gm_lead_8_bass_lead").gain(0.32)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@8 A B C D E F G H I J K L M N O P Q R S T U V W X Y D E F G H I J K L M N O P Q R S T U V ~ W X Y D Z AA AB AC AD AE
  AF AG AH@4 AI AJ AK AL Q R S T U V ~ W X W X W X W X W X W X W X W X W X W X W X W X
>`.pickRestart({
  A: "~@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4]@3, g3@7 ~ g3@8", // Gm
  B: "~@2 c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ c4 ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4]@2 ~, c3@7 ~ c3@8", // Cm7
  C: "~@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~@2 g3@2, g3@7 ~ g3@5 [d4,g4,bb4]@2 ~", // Gm
  D: "~@2 c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~@8, c3@7 ~@9", // Cm7
  E: "g3@2 d4 [d4,g4,bb4] g3 [d4,g4,bb4] g3 [d4,g4,bb4] ~ d4@2 [d4,g4,bb4] ~ [d4,g4,bb4] ~ d4, ~@8 g3@3 ~@3 g3@2", // Gm
  F: "~@2 c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] c3 [c4,eb4,g4,bb4] ~ c4 ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ c4, c3@5 ~@3 c3@3 ~@3 c3@2", // Cm7
  G: "f3@2 c4 [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] f3 [c4,eb4,f4] ~ c4 ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4], ~@8 eb3@5 ~ eb3@2", // F7 Eb
  H: "d3@2 a3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] ~ a3 ~ [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] ~ a3, ~@4 d3@2 ~ d3", // D7
  I: "g3@2 d4 [d4,f4,g4,bb4] g3 [d4,g4,bb4] g3 [d4,f4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4] g3 d4, ~@8 g3@3 ~@5", // Gm7 Gm Gm7 Gm
  J: "~@2 c4 [c4,eb4,bb4] ~ [c4,eb4,g4,bb4] c3 [c4,eb4,g4,bb4] ~ c4 ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4], c3@5 ~@3 c3@4 ~@2 c3@2", // Cm7 Cm
  K: "f3@2 c4 [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] f3 [c4,eb4,f4] ~ c4 ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4], ~@8 eb3@5 ~ eb3@2", // F7 Eb
  L: "d3@2 a3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] ~ a3@2 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [c4,d4,gb4], ~@8 d3@3 ~@5", // D7
  M: "g3@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] g3 [d4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4] g3 d4, ~@2 g3 ~", // Gm
  N: "~@2 c4 [c4,eb4,g4] ~ [c4,eb4,g4,bb4] ~ [eb4,g4,bb4] ~ c4 ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4], c3@6 ~@2 c3@7 ~", // Cm Cm7 Eb Cm7
  O: "c3@2 c4 [c4,eb4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ d4 ~ [d4,f4,bb4] ~ [d4,f4,bb4] bb2 [d4,f4], ~@2 bb2 ~", // Cm7 Bb Dm
  P: "g3@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] g3 [d4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4] g3 [d4,g4,bb4], ~@8 g3@5 ~@3", // Gm
  Q: "~@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] g3 [d4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4] g3 d4, g3@5 ~@3 g3@5 ~@3", // Gm
  R: "~@2 c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] c3 [c4,eb4,g4,bb4] ~ c4 ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4], c3@5 ~@3 c3@5 ~@3", // Cm7
  S: "c3@2 c4 [c4,eb4,g4,bb4] c3 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ d4 ~ [d4,f4,bb4] ~ [d4,f4,bb4] bb2 [d4,f4,bb4], ~@2 bb2 ~", // Cm7 Bb
  T: "f3@2 c4 [c4,f4,a4] ~ [c4,f4,a4] f3 [c4,f4,a4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4], ~@8 g3@3 ~@3 g3@2", // F Gm
  U: "c3@2 c4 [c4,eb4,g4] ~ [c4,eb4,g4] c3 [c4,eb4,g4] ~ d4 ~ [d4,f4,bb4] ~ [d4,f4,bb4] bb2 [d4,f4,bb4], ~@8 bb2@3 ~@5", // Cm Bb
  V: "d3@2 a3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] d3 ~@7", // D7
  W: "g3@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ g3@2 [d4,g4,bb4] ~ [d4,g4,bb4]@2 g3", // Gm
  X: "c3@2 c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ c4 ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4]@2 c4", // Cm7
  Y: "g3@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ d4 ~ [d4,g4,bb4] ~ [d4,g4,bb4]@2 g3", // Gm
  Z: "~@2 d4 [g4,bb4] g3 [d4,g4,bb4] g3 [d4,g4,bb4] g3 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] g3 [d4,g4]", // Gm G5
  AA: "c3 ~ c4 [c4,eb4,g4] c3 [c4,eb4,g4] c3 [c4,eb4,g4] c3 [c4,eb4,g4] ~ [eb4,g4] c3 [c4,eb4,g4] ~ [c4,eb4], ~@7 c3", // Cm Eb Cm
  AB: "f3@2 c4 [c4,f4,a4] ~ [c4,f4,a4] f3 [c4,f4] bb2 [bb3,eb4,g4] ~ [bb3,eb4,g4] bb2 [bb3,eb4,g4] bb2 [bb3,eb4,g4]", // F F5 Eb
  AC: "d3@2 a3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4]", // D7
  AD: "g3@2 d4 [d4,g4,bb4] g3 [d4,g4,bb4] g3 [d4,g4,bb4] g3 [d4,g4,bb4] ~ [d4,g4,bb4] g3 [d4,g4,bb4] g3 [d4,g4,bb4]", // Gm
  AE: "c3 ~ c4 [c4,eb4,g4] ~ [c4,eb4,g4] c3 [c4,eb4,g4] c3 [c4,eb4,g4] ~ [c4,eb4,g4] c3 [c4,eb4,g4] c3 [c4,eb4,g4]", // Cm
  AF: "f3@2 c4 [c4,f4,a4] f3 [c4,f4,a4] f3 [c4,f4] eb3 ~ bb3 [bb3,eb4,g4] ~ [bb3,eb4,g4] eb3 [bb3,eb4,g4]", // F F5 Eb
  AG: "d3@2 a3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] ~ [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4] d3 [a3,c4,d4,gb4]", // D7
  AH: "[[d3,g3,d4,g4,bb4]@15 ~ [eb4,g4,bb4]@14 ~@2 [eb4,g4,bb4]@7 ~ [d4,f4,bb4]@7 ~ [g4,bb4]@12 ~@4, ~@15 [c3,g3,c4]@15 ~ [c3,g3,c4]@7 ~ [bb2,f3,bb3]@7 ~ [g2,g3,d4]@13 ~@4]/4", // Gm Eb Bb Gm C5 Bb5 G5
  AI: "g3@2 d4 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4]", // Gm
  AJ: "c3 ~ c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,bb4] ~ [c4,eb4,g4,bb4]", // Cm7
  AK: "c3@2 c4 [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [c4,eb4,g4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4]", // Cm7 Bb
  AL: "g3 ~ d4 [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4]", // Gm
})).s("gm_acoustic_guitar_steel").gain(0.33)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon_2 = note(`<
  ~@8 A B C D E B F G E B F G H I J H@2 K J L J M H N H D E B F G E B F G H I J H@2 K J L J M ~ H N H D H K O P Q N O P
  ~@4 H K R H@2 K J L J M ~ H N H N H N H N H N H N H N H N H N H N H N H N
>`.pickRestart({
  A: "~@2 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~", // Gm
  B: "~@2 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~@5 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~", // Cm7
  C: "~@2 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@5 [d4,g4,bb4] ~@2 [d4,bb4] ~", // Gm
  D: "~@2 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~@10", // Cm7
  E: "~@2 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@5 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~", // Gm
  F: "~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@5 [eb4,g4,bb4] ~@2 [eb4,g4,bb4] ~", // F Eb
  G: "~@2 [d4,gb4,a4] ~@2 [d4,gb4,a4] ~@5 [d4,gb4,a4] ~@2 [d4,gb4,a4] ~", // D
  H: "~@3 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@4 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~", // Gm
  I: "~@3 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~@4 [c4,eb4,g4,bb4] ~@2 [eb4,g4,bb4] ~", // Cm7 Eb
  J: "~@3 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~@4 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~", // Cm7 Bb
  K: "~@3 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~@4 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~", // Cm7
  L: "~@3 [c4,f4,a4] ~@2 [c4,f4,a4] ~@4 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~", M: "~@3 [d4,gb4,a4] ~@2 [d4,gb4,a4] ~@9",
  N: "~@3 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@4 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~", // Cm
  O: "~@3 [c4,f4,a4] ~@2 [c4,f4,a4] ~@4 [eb4,g4,bb4] ~@2 [eb4,g4,bb4] ~", // F Eb
  P: "~@3 [a3,c4,d4,gb4] ~@2 [a3,c4,d4,gb4] ~@4 [a3,c4,d4,gb4] ~@2 [a3,c4,d4,gb4] ~", // D7
  Q: "~@3 [d4,g4,bb4] ~@2 [d4,bb4] ~@4 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~", // Gm
  R: "~@3 [c4,eb4,g4,bb4] ~@2 [c4,eb4,g4,bb4] ~@4 [c4,d4,f4,bb4] ~@2 [d4,f4,bb4] ~", // Cm7 Bb
})).s("gm_acoustic_guitar_nylon").gain(0.39)

// chords · percussive organ
const percussive_organ = note(`<
  ~@12 A B C D E F G H I J K L M N O P Q R ~@4 A B C D E F G H I J K L M N O P Q R ~@5 S T U V W X Y Z ~@3 AA ~@4 M N O
  P Q R ~@25
>`.pickRestart({
  A: "[d5,g5,bb5]!4 ~ [d5,g5,bb5]!2 g5 [d5,g5,bb5] [g5,bb5]!2 [d5,g5,bb5] ~ [d5,g5,bb5] [d5,f5,g5,bb5] ~", // Gm Gm7
  B: "[c5,eb5,g5] ~ [c5,eb5,g5]!2 ~ [c5,eb5,g5]!2 c5 [c5,eb5,g5] eb5 [eb5,g5] [c5,eb5,g5] ~ [c5,eb5,g5] [eb5,g5] eb5", // Cm Eb Cm Eb
  C: "[c5,f5,a5] [f5,a5] [c5,f5,a5]!2 ~ [c5,f5,a5]!2 [c5,a5] [eb5,g5,bb5]!4 ~ [eb5,g5,bb5]!2 eb5", // F Eb
  D: "[d5,gb5,a5] gb5 [d5,gb5,a5]!2 ~ [d5,gb5,a5]!2 ~ [d5,gb5,a5] ~ [gb5,a5] [d5,gb5,a5] ~ [d5,gb5,a5]!2 [gb5,a5]", // D Gbm D Gbm
  E: "[d5,g5,bb5] [d5,g5] [d5,g5,bb5]!2 ~ [d5,g5,bb5] ~ [g5,bb5] [d5,g5,bb5] ~ g5 [d5,g5,bb5] ~ [g5,bb5]!2 g5", // Gm G5 Gm
  F: "[c5,eb5,g5] g5 [eb5,g5] [c5,eb5,g5] ~ [c5,eb5,g5] [eb5,g5] ~ [c5,eb5,g5] ~ eb5 [c5,eb5,g5] ~ [c5,eb5,g5] eb5!2", // Cm Eb Cm Eb Cm
  G: "[c5,f5,a5] [f5,a5] [c5,f5,a5]!2 ~ [c5,f5,a5] f5 [c5,f5] [eb5,g5,bb5]!4 ~ [eb5,g5,bb5]!3", // F F5 Eb
  H: "[d5,gb5,a5] [gb5,a5]!2 [d5,gb5,a5] ~ [d5,gb5,a5] [gb5,a5] [d5,gb5,a5]!2 ~ [gb5,a5] [d5,gb5,a5] ~ [d5,gb5,a5]!3", // D Gbm D Gbm D Gbm D
  I: "[d5,g5,bb5]!4 ~ [d5,g5,bb5]!7 ~ [d5,g5,bb5]!2 ~", // Gm
  J: "[c5,eb5,g5,bb5]!4 ~ [c5,eb5,g5,bb5] [eb5,g5] [eb5,bb5] [c5,eb5,g5,bb5]!4 ~ [c5,eb5,g5,bb5] [eb5,g5,bb5] [c5,bb5]", // Cm7 Eb Eb5 Cm7 Eb C7
  K: "[c5,eb5,g5,bb5] [eb5,bb5] [c5,eb5,g5,bb5]!2 ~ [c5,eb5,g5,bb5]!2 bb5 [d5,f5,bb5]!4 ~ [d5,f5,bb5]!2 f5", // Cm7 Eb5 Cm7 Bb
  L: "[d5,f5,g5,bb5] [g5,bb5] [d5,g5,bb5]!2 ~ [d5,g5,bb5] [g5,bb5] [d5,g5,bb5]!5 ~ [d5,g5,bb5] [g5,bb5]!2", // Gm7 Gm
  M: "[d5,g5,bb5] [g5,bb5] [d5,g5,bb5]!2 ~ [d5,g5,bb5]!7 ~ [d5,g5,bb5]!2 [d5,bb5]", // Gm
  N: "[c5,eb5,g5,bb5]!4 ~ [c5,eb5,g5,bb5]!4 [c5,g5,bb5] [c5,eb5,g5,bb5]!2 ~ [c5,eb5,g5,bb5] [eb5,g5,bb5] [eb5,bb5]", // Cm7 C7 Cm7 Eb Eb5
  O: "[c5,eb5,g5]!4 ~ [c5,eb5,g5]!2 g5 [d5,f5,bb5] [f5,bb5] [d5,f5,bb5]!2 ~ [d5,f5,bb5]!3", // Cm Bb Bb5 Bb
  P: "[c5,f5,a5]!4 ~ [c5,f5,a5]!2 [f5,a5] [d5,g5,bb5] [g5,bb5] [d5,g5,bb5]!2 ~ [d5,g5,bb5]!3", // F Gm
  Q: "[c5,eb5,g5,bb5]!4 ~ [c5,eb5,g5,bb5]!2 [eb5,g5] [d5,f5,bb5] f5 [d5,f5,bb5]!2 ~ [d5,f5,bb5]!2 [f5,bb5]", // Cm7 Eb Bb Bb5
  R: "[d5,gb5,a5]!4 ~ [d5,gb5,a5]!3 [d5,a5] ~@7", // D D5
  S: "[d5,g5,bb5]!4 ~ [d5,g5,bb5]!4 [g5,bb5] [d5,bb5] [d5,g5,bb5] ~ [d5,bb5] [d5,g5,bb5] ~", // Gm
  T: "[c5,eb5,g5]!2 [eb5,g5] [c5,eb5,g5] ~ [c5,eb5,g5]!4 [eb5,g5] eb5 [c5,eb5,g5] ~ [c5,eb5,g5]!3", // Cm Eb Cm Eb Cm
  U: "[c5,f5,a5]!4 ~ [c5,f5,a5]!2 f5 [bb4,eb5,g5]!4 ~ [bb4,eb5,g5]!2 [eb5,g5]", // F Eb
  V: "[a4,d5,gb5]!4 ~ [a4,d5,gb5]!4 [d5,gb5]!2 [a4,d5,gb5] ~ [a4,d5,gb5]!2 ~", // D
  W: "[d5,g5] [g5,bb5] [d5,g5,bb5]!2 ~ [d5,g5,bb5]!7 ~ [d5,g5,bb5]!2 [g5,bb5]", // G5 Gm
  X: "[c5,eb5,g5]!4 ~ [c5,eb5,g5]!2 [eb5,g5] [c5,eb5,g5]!4 ~ [c5,eb5,g5] [eb5,g5] g5", // Cm Eb Cm Eb
  Y: "[c5,f5,a5] [f5,a5] [c5,f5,a5]!2 ~ [c5,f5,a5]!2 [f5,a5] [bb4,eb5] [eb5,g5] [bb4,eb5,g5]!2 ~ [bb4,eb5,g5]!2 ~", // F Eb5 Eb
  Z: "[a4,d5,gb5] [d5,gb5] [a4,d5,gb5]!2 ~ [a4,d5,gb5]!4 ~@2 [a4,d5,gb5] ~ [a4,d5,gb5]!3", // D
  AA: "[d5,g5,bb5] [g5,bb5] [d5,g5,bb5]!2 ~ [d5,g5,bb5]!4 g5 [d5,g5,bb5]!2 ~ [d5,bb5] [d5,g5,bb5]!2", // Gm
})).s("gm_percussive_organ").gain(0.2)

// chords · percussive organ · soft notes
const percussive_organ_soft = note(`<
  ~@12 A B ~ C D E F G ~ H I J K L M N O ~@5 A B ~ C D E F G ~ H I J K L M N O ~@6 N P ~ Q K R S T ~@3 U ~@4 K L M N O
  ~@26
>`.pickRestart({
  A: "~@7 bb5 ~@2 d5 ~@4 g5", B: "~ g5 ~@5 [eb5,g5] ~ g5 c5 ~@4 g5", C: "~@9 [gb5,a5] ~@6",
  D: "~ bb5 ~@4 [g5,bb5] ~@3 [d5,bb5] ~@3 d5!2", E: "~ [c5,eb5] c5 ~@4 eb5 ~ eb5 g5 ~@5", F: "~@6 a5 ~@9",
  G: "~@2 d5 ~@3 d5 ~@2 [gb5,a5] d5 ~@5", H: "~@7 [c5,g5] ~@6 c5 eb5", I: "~ g5 ~@13 d5", J: "~ d5 ~@4 d5 ~@7 d5 ~",
  K: "~ d5 ~@14", L: "~@14 c5!2", M: "~@7 eb5 ~ d5 ~@6", N: "~@9 d5 ~@6", O: "~@7 c5 ~ bb5 ~@6", P: "~@2 c5 ~@6 c5 ~@6",
  Q: "~@9 a4!2 ~@5", R: "~@7 c5 ~@6 c5 eb5", S: "~ c5 ~@5 c5 [gb5,g5] bb4 ~@6", T: "~ a4 ~@7 d5 gb5 ~@5",
  U: "~ d5 ~@7 [d5,bb5] ~@6", // Gm
})).s("gm_percussive_organ").gain(0.12)

// other · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@30 A B C D E F ~ G H ~@2 I ~ J ~@3 K ~@5 L M N ~@18 K ~@5 O P Q R S T U V ~@16
>`.pickRestart({
  A: "~@7 g5 [bb5,d6]@2 eb6 f6@2 eb6 d6 ~", B: "[c6,d6] [d6,eb6] ~ c6@5 ~@8", C: "~@7 [bb4,d5] g5@2 a5 bb5@2 a5 g5 ~",
  D: "g5@7 ~@9", E: "~@7 d6 d6@2 eb6 d6 ~@4", F: "~@7 [bb5,d6] bb6@2 ~ a6@2 ~ g6@2", G: "gb6@6 ~ gb5 a5@2 d6@3 ~@3",
  H: "~@7 g5 [bb5,d6] ~@2 c6 ~@2 bb5 ~", I: "~@6 gb6 g6 gb6 ~@7", J: "~@6 d6 c6 d6@2 ~@6",
  K: "~@5 [bb5,d6] g6!2 ~ g6 ~@6", L: "~@8 c6 eb6 ~@3 c6@2 bb5", M: "a5@3 g5@4 ~@9", N: "~@5 bb5 ~ a5 g5@5 bb5@2 a5",
  O: "~@7 g5 [bb5,d6]@2 ~ c6 ~ [a5,bb5] c6 ~", P: "bb5 a5 g5 bb5@2 ~@11", Q: "~@8 bb5 a5 g5 ~ a5 [a5,bb5] g5 f5",
  R: "g5 ~@7", S: "~@8 f6 g6!3 ~ g6 ~ g6", T: "~ f6 ~ f6 ~@12", U: "~@8 bb6 a6 ~ a6 ~@2 bb6 ~",
  V: "a6 g6 f6 g6 ~@9 d4 gb4 [a4,b4]", // Asus2
})).s("gm_acoustic_guitar_steel").gain(0.42)

// other · acoustic guitar steel · soft notes
const acoustic_guitar_steel_3 = note("<~@37 A ~@3 B ~@5 C ~@5 D ~@20 C ~@9 E F ~@18>".pickRestart({
  A: "~@7 d5 ~@8", B: "~@9 d6@3 ~@4", C: "~@11 g6 ~@4", D: "~@8 d6 d6@4 ~@3", E: "~@12 g6 ~ g6 ~", F: "~@5 g6 ~@10",
})).s("gm_acoustic_guitar_steel").gain(0.28)

// other · acoustic guitar steel
const acoustic_guitar_steel_4 = note("<~@56 A B C D E F G H I ~@23 B J K L M N O P Q R S T U V W X>".pickRestart({
  A: "c6@3 ~@10 d4 gb4 a4", B: "d5 eb5 ~ d5 ~ c5 d5 eb5 d5@4 ~ [d5,eb5] c5 d5", C: "eb5 f5 ~ eb5 ~ d5 c5@3 ~@6 c5",
  D: "[eb5,bb5] a5 ~ a5 ~ a5 ~ [a5,bb5] g5@6 ~ [g5,a5]", E: "gb5@2 ~@5 a4 bb4 [c5,d5] gb5 g5 a5 bb5 c6!2",
  F: "c6 ~@2 bb5 ~ d6 g5@3 ~@5 d6 [c6,d6]", G: "d6 ~@2 bb5 ~ c6 ~ c6@3 ~@6", H: "~ f6 ~@2 eb6 ~@2 d6 ~ d6 ~@6",
  I: "bb6 a6 ~ g6 ~ gb6 ~ a6 ~@8", J: "eb5 f5 ~ eb5 ~ d5 ~ c5@5 ~@4",
  K: "[bb5,d6]!2 ~ [bb5,d6] ~ [bb5,d6] [a5,c6] bb5 ~ bb5 ~@2 [g5,bb5] ~ [bb5,d6] ~", // Bb Am Gm Bb
  L: "[a5,c6] [bb5,d6] ~ [bb5,d6] ~@3 a5 ~@8", M: "~ d5 g5 a5 ~ a5 ~@3 a5 ~ a5 ~ bb5 ~@2",
  N: "[bb5,d6] a5 ~@4 [bb5,d6] [a5,c6] ~@4 [bb5,d6] [a5,c6] ~ bb5", O: "~ [bb5,d6] ~@5 g5!2 a5 bb5 c6 d6 f6 ~ f6",
// … 89 more lines

More by Cher