Strudelify

Simply the Best

Tina Turner

KeyE majorTempo110 bpm
0:00/0:00
// Simply the Best — Tina Turner
// 110 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 1 electric bass finger (copy of ch 14 acoustic bass)
// note: Full arrangement: all 107 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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 · distortion guitar
const distortion_guitar = note(`<
  ~@12 A B C D E F@7 G H@2 I J K L M N O P Q R K S T U V P W R F@7 G H@2 I J X Y M Z AA@2 Q R AB AC AD U AE AF AG AH AI
  AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE AX AS BF BA BG AU BH BI AX BJ@2
>`.pickRestart({
  A: "~@7 [b2,f#3]", B: "[c#3,g#3]@18 ~@2 [c#3,g#3] ~@3 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2",
  C: "[c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3] ~@3", // C#5
  D: "[a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3] ~@3 [a2,e3]@2 ~@2 [a2,e3] ~@3 [a2,e3] ~@3 [a2,e3] ~@3", // A5
  E: "[a3,b3,e4]@29 ~@3", // Asus2
  F: "~@4 [e3,b3] ~ [e3,b3] ~@5 [e3,b3] ~ [e3,b3] ~@5 [e3,b3] ~ [e3,b3] ~@5 [e3,b3] ~ [e3,b3] ~", // E5
  G: "~@4 [e3,b3] ~ [e3,b3] ~@5 [e3,b3] ~ [e3,b3] ~@17", H: "[~@20 [g#3,c#4,d#4]@7 ~ [g#3,c#4,e4]@35 ~]/2",
  I: "[a3,e4]@31 ~", J: "[b3,f#4]@3 ~ [b3,f#4]@3 ~ [b3,f#4]@3 ~@21",
  K: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  L: "[b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  M: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3] ~@3", // E5
  N: "[b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3]@2 ~@2", // E5
  O: "[g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3", // C#5
  P: "[g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2", // C#5
  Q: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ b2@2", R: "c#3 b2 f#3 b2@5",
  S: "[b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  T: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  U: "[b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  V: "[g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2", // C#5
  W: "[b2,f#3]@2 ~@2 [b2,f#3]@2 ~@2 [b2,f#3]@2 ~@2 [b2,f#3]@2 ~@2 [b2,f#3]@2 ~@2 [b2,f#3] ~@3 [b2,f#3]@2 ~@2 b2@4", // B5
  X: "[b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~", // E5
  Y: "[b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  Z: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  AA: "[g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2", // C#5
  AB: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  AC: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3]@2 ~@2", // E5
  AD: "[b2,e3]@2 ~@2 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3] ~@3 [b2,e3] ~@3 [b2,e3]@2 ~@2 [b2,e3] ~@3", // E5
  AE: "[g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@4 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 g#2 ~@3 c#3 ~@2, ~@12 c#3 ~ g#2 ~", // C#5
  AF: "~ [g#2,c#3] ~@3 [g#2,c#3] ~@3 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3]@2 ~@2 [g#2,c#3] ~@3 [g#2,c#3] ~@3 [g#2,c#3] ~@2", // C#5
  AG: "~ [b2,f#3]@2 ~@2 b2@2 ~ [b2,f#3]@2 ~@3 [b2,f#3]@2 ~@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~@3 f#3 ~@3 b2@3, ~@2 f#3 ~@9 b2 ~@3", // B5
  AH: "~ c#3@4 b2@4 f#3@4 b2@19",
  AI: "~ [a2,e3,a3]@3 ~ [a2,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3, ~@4 e3@3 ~@25", // A5 A A5
  AJ: "~ [a2,e3,a3]@3 ~ [a2,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3]@3 ~ [a2,e3,a3]@3, ~@4 e3@3 ~@17 a3@3 ~@5", // A5 A A5
  AK: "~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ c#3@3 ~ [c#3,c#4]@3 [c#3,g#3,c#4]@3 ~, ~@20 [g#3,c#4]@3 ~ g#3@3 ~@5", // C#5 C# C#5
  AL: "~ [c#3,g#3,c#4]@3 ~ [c#3,g#3]@3 ~ [c#3,g#3,c#4]@3 ~ [g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3]@3 ~ [c#3,c#4]@3 ~ [c#3,g#3,c#4]@2 ~, ~@4 c#4@3 ~@5 c#3@3 ~@5 c#4@3 ~ g#3@3 ~@5", // C#5 C# C#5
  AM: "~ [a2,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3, e3@3 ~@29", // A A5
  AN: "~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ a3@3 ~ e3@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@3, ~@12 [a2,e3]@3 ~ [a2,a3]@3 ~@13", // A5 A
  AO: "~ [b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ b3@3 ~ [f#3,b3]@3 ~ b3@3 ~ [b2,f#3,b3]@3 ~ [f#3,b3]@3, ~@12 [b2,f#3]@3 ~ b2@3 ~ [b2,f#3]@3 ~@5 b2@2 ~@2", // B5
  AP: "[b2,f#3,b3]@3 ~@2 [f#3,b3]@3 ~@5 [c#3,g#3,c#4]@7 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@7, ~@4 b2@3 ~@25", // B5 C#5
  AQ: "~ [c#3,f#3]@2 ~ [c#3,f#3]@2 ~@3 [c#3,f#3]@2 ~ [c#3,f#3]@2 ~@3 [c#3,f#3] ~@3 [c#3,f#3] ~@2 [c#3,f#3]@2 ~@3 [c#3,f#3]@2 ~", // F#5
  AR: "~ [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@2 [c#3,f#3]@2 ~@3 [c#3,f#3] ~@2", // F#5
  AS: "~ [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~", // F#5
  AT: "~ [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~", // F#5
  AU: "~ [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@2", // D#5
  AV: "~ [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~", // D#5
  AW: "~ [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3] ~@3 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 c#3@3", // C#5
  AX: "~ d#3@4 c#3@4 g#3@4 c#3@19",
  AY: "~ [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~", // F#5
  AZ: "~ [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~", // F#5
  BA: "~ [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@2", // F#5
  BB: "~ [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@2", // F#5
  BC: "~ [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@2", // D#5
  BD: "~ [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3] ~@3 [a#2,d#3] ~@2", // D#5
  BE: "~ [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 c#3@3", // C#5
  BF: "~ [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~", // F#5
  BG: "~ [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3] ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~", // F#5
  BH: "~ [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3]@2 ~@2 [a#2,d#3] ~@3 [a#2,d#3] ~@3 [a#2,d#3] ~@2", // D#5
  BI: "~ [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3] ~@3 [c#3,g#3]@2 ~@2 c#3@3", // C#5
  BJ: "[~ [f#2,f#3]@34 ~@29, ~ c#3 ~@62]/2", // F#
})).s("gm_distortion_guitar").gain(0.36).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@13 A@2 ~@9 B C D E F G H@2 I@2 J K L M H@2 I@2 J K L ~@7 B C D N F O H@2 I@2 J K L G H@2 I@2 J P L Q R S@2 Q@2 T U V
  W@2 X@2 Y Z AA V W@2 AB@2 AC Z AA V AD@2 AE@2 AF AG AH AI@2
>`.pickRestart({
  A: "[e4@4 d#4@4 c#4@4 e4@8 d#4@8 g#4@33 ~@3]/2", B: "~@7 [b2,f#3]",
  C: "[c#3,g#3]@18 ~@2 [c#3,g#3] ~@3 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2", // C#5
  D: "[c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3]@2 ~@2 [c#3,g#3] ~@3", // C#5
  E: "[a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3] ~@3 [a2,e3] ~@3 [a2,e3] ~@3", // A5
  F: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~@21", G: "~@8 [b3,e4]@12 b3@7 ~ b3@3 ~, ~@5 f#4@3",
  H: "[[b3,a4]@12 [b3,g#4]@28 [b3,e4]@12 b3@7 ~ b3@4, ~@52 f#4@11 ~]/2", // B7 E E5
  I: "[[b3,a4]@12 [b3,g#4]@27 ~ [b3,e4]@12 b3@7 ~ b3@4, ~@52 f#4@11 ~]/2", J: "[b3,a4]@3 [b3,g#4]@4 ~",
  K: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 ~@6 [b2,f#3,b3]@4 ~@4 [b2,f#3,b3]@8 b2@4", L: "c#3@4 b2@4 f#3@4 b2@19 ~",
  M: "~@8 [b3,e4]@12 b3@7 ~ b3@4, ~@5 f#4@3", // E5
  N: "[a2,e3]@2 ~@2 [a2,e3] ~@3 [a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3]@2 ~@2 [a2,e3] ~@3 [a2,e3] ~@3 [a2,e3] ~@3", // A5
  O: "~@8 [b3,e4]@12 b3@8 b3@3 ~, ~@5 f#4@3", // E5
  P: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 ~@6 [b2,f#3,b3]@4 ~@4 [b2,f#3,b3]@7 ~ b2@4", // B5
  Q: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4]@6 ~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3", // A
  R: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4]@5 ~@3 [a3,c#4,e4] ~@3 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3", // A
  S: "[g#3,c#4,e4]@3 ~ [g#3,c#4,e4] ~@3 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@6 ~@2 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@3 ~ [g#3,c#4,e4] ~@3", // C#m
  T: "[b3,d#4,f#4]@3 ~ [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@6 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4] ~@3", // B
  U: "[b3,d#4,f#4]@4 [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4] ~@3 [c#4,f4,g#4]@7 ~ [c#4,f4,g#4] ~@3 [c#4,f4,g#4]@7 ~", // B C#
  V: "~@8 [c#4,f#4]@12 c#4@7 ~ c#4@3 ~, ~@5 g#4@3", // F#5
  W: "[[c#4,b4]@12 [c#4,a#4]@28 [c#4,f#4]@12 c#4@7 ~ c#4@4, ~@52 g#4@11 ~]/2", // C#7 F# F#5
  X: "[[c#4,b4]@11 ~ [c#4,a#4]@27 ~ [c#4,f#4]@12 c#4@7 ~ c#4@4, ~@52 g#4@11 ~]/2", Y: "[c#4,b4]@12 [c#4,a#4]@17 ~@3",
  Z: "[c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@2 ~@6 [c#3,g#3,c#4]@4 ~@4 [c#3,g#3,c#4]@8 c#3@4", // C#5
  AA: "d#3@4 c#3@4 g#3@4 c#3@19 ~", AB: "[[c#4,b4]@12 [c#4,a#4]@27 ~ [c#4,f#4]@12 c#4@7 ~ c#4@4, ~@52 g#4@11 ~]/2",
  AC: "[c#4,b4]@3 [c#4,a#4]@4 ~", AD: "[~ [c#4,b4]@12 [c#4,a#4]@28 [c#4,f#4]@12 c#4@7 ~ c#4@3, ~@53 g#4@11]/2",
  AE: "[~ [c#4,b4]@12 [c#4,a#4]@27 ~ [c#4,f#4]@12 c#4@7 ~ c#4@3, ~@53 g#4@11]/2", AF: "~ [c#4,b4]@12 [c#4,a#4]@16 ~@3",
  AG: "~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@2 ~@6 [c#3,g#3,c#4]@4 ~@4 [c#3,g#3,c#4]@7 c#3@4", // C#5
  AH: "~ d#3@4 c#3@3 g#3@5 c#3@19", AI: "[~ f#2@35 ~@28]/2",
})).s("gm_electric_guitar_clean").gain(0.64).pan(0.4)

// chords · pad poly
const pad_poly = note(`<
  ~@7 A B ~@2 A B ~@6 A B ~@2 A B ~@4 C D@2 E@2 F G@2 C H@4 F I@2 ~@2 A B ~@2 A B ~@4 C D@2 H@2 F I@2 C J@2 E@2 K L@2
  ~@8 M N@2 O@3 P@2 Q R@2 S@3 P@2 T R@2 U@2 V P@2 W ~
>`.pickRestart({
  A: "[e3,b3]@3 [e3,c#4]@5", B: "[e3,d#4]@3 [e3,e4]@5", C: "~@8 [b3,e4]@12 b3@7 ~ b3@3 ~, ~@5 f#4@3",
  D: "[[b3,a4]@3 ~ [b3,a4]@3 ~ a4@4 [b3,g#4]@28 [b3,e4]@12 b3@7 ~ b3@3 ~, ~@8 b3@3 ~@41 f#4@12]/2", // B7 E E5
  E: "[[b3,a4]@4 [b3,a4]@3 ~ [b3,a4]@4 [b3,g#4]@28 [b3,e4]@12 b3@7 ~ b3@3 ~, ~@13 f#4@3]/2", // B7 E E5
  F: "[b3,a4]@3 ~ [b3,a4]@3 ~ [b3,a4]@4 [b3,g#4]@20", G: "[~@7 b2 c#3 b2 f#3 b2@5, [b3,f#4]]/2",
  H: "[[b3,a4]@3 ~ [b3,a4]@3 ~ [b3,a4]@4 [b3,g#4]@28 [b3,e4]@12 b3@7 ~ b3@3 ~, ~@13 f#4@3]/2", // B7 E E5
  I: "[~@7 b2 c#3 b2 f#3 b2@5, [b3,f#4]@63 ~]/2", // B5
  J: "[[b3,a4]@4 [b3,a4]@3 ~ a4@4 [b3,g#4]@28 [b3,e4]@12 b3@7 ~ b3@3 ~, ~@8 b3@3 ~@41 f#4@12]/2", // B7 E E5
  K: "~ [b3,a4]@3 [b3,a4]@3 ~@2 [b3,a4]@3 ~ b3@19, ~@3 g#4@5", L: "[~@29 b2@4 c#3@3 b2@4 ~ f#3@4 b2@19, [b3,f#4]]/2",
  M: "~@8 [c#4,f#4]@12 c#4@7 ~ c#4@3 ~, ~@5 g#4@3", // F#5
  N: "[~ c#4@3 ~ c#4@3 ~ c#4@3 [c#4,a#4]@28 [c#4,f#4]@13 c#4@7 ~ c#4@3, b4@3 ~ b4@3 ~@2 b4@5 ~@39 g#4@11]/2", // F# F#5
  O: "[~ [c#4,b4]@4 [c#4,b4]@3 ~ [c#4,b4]@4 [c#4,a#4]@28 [c#4,f#4]@12 c#4@7 ~ c#4@3 ~ [c#4,b4]@3 ~ [c#4,b4]@3 ~ [c#4,b4]@4 [c#4,a#4]@19, ~@53 g#4@14 ~@29]/3", // C#7 F# F#5 C#7 F#
  P: "[~@29 c#3@4 d#3@4 c#3@4 g#3@4 c#3@19, ~ [c#4,g#4]@63]/2", Q: "~@9 f#4@12 c#4@7 ~ c#4@3, ~@9 c#4@10 ~@2 g#4@11",
  R: "[~ [c#4,b4]@3 ~ [c#4,b4]@3 ~ b4@4 [c#4,a#4]@28 [c#4,f#4]@12 c#4@7 ~ c#4@3, ~@9 c#4@3 ~@41 g#4@11]/2", // C#7 F# F#5
  S: "[~ [c#4,b4]@3 ~ [c#4,b4]@3 ~ [c#4,b4]@4 [c#4,a#4]@28 [c#4,f#4]@12 c#4@7 ~ c#4@3 ~ [c#4,b4]@3 ~ [c#4,b4]@3 ~ [c#4,b4]@4 [c#4,a#4]@19, ~@53 g#4@14 ~@29]/3", // C#7 F# F#5 C#7 F#
  T: "~@9 [c#4,f#4]@12 c#4@7 ~ c#4@3, ~@21 g#4@11", // F#5
  U: "[~ [c#4,b4]@3 ~ [c#4,b4]@3 ~ [c#4,b4]@4 [c#4,a#4]@28 [c#4,f#4]@12 c#4@7 ~ c#4@3, ~@53 g#4@11]/2", // C#7 F# F#5
  V: "~ [c#4,b4]@3 ~ [c#4,b4]@3 ~ [c#4,b4]@4 [c#4,a#4]@19", W: "~ [f#3,c#4]@31",
})).s("gm_pad_poly").gain(0.7)

// other · string ensemble 2
const string_ensemble_2 = note(`<
  ~@4 A@3 ~ B@3 ~ C@2 D@2 E@3 ~ F@3 ~ G@2 H@2 I@2 J@4 K@2 L@2 M@2 N@2 O@2 P Q R ~ P S R ~ T U V W X@2 Y Z Y Z AA@2 AB AC
  AD AE AF AG AF AH ~ AI AJ AK@2 AL AJ AM AN ~@7 AO@2 AP AQ AP AQ AR@2 AS@2 AT@4 AU@2 AV@3
>`.pickRestart({
  A: "[~@29 g#3@2 b3@4 b3@8 b3@2 b3@2 c#4@4 c#4@8 c#4@2 c#4@2 d#4@8 d#4@4 e4@12 b3@8 ~]/3",
  B: "[~@29 g#3@2 b3@8 b3@4 b3@4 c#4@8 c#4@4 c#4@4 d#4@8 d#4@4 e4@12 b3@8 ~]/3", C: "[~@19 e4@4 e4@4 e4@4 e4@8 ~@25]/2",
  D: "[~@7 g#4@4 f#4@4 f#4@4 e4@4 e4@4 g#3@4 a3@28 ~@5]/2",
  E: "[~@27 b3@2 b3@6 b3@8 b3@4 c#4@4 c#4@8 c#4@2 c#4@2 d#4@8 d#4@4 e4@12 b3@8 ~]/3",
  F: "[~@23 b3@2 b3@2 b3@8 b3@4 b3@4 c#4@4 c#4@4 c#4@4 c#4@8 d#4@4 d#4@4 f#4@4 e4@12 b3@8 ~]/3",
  G: "[~@11 e4@8 e4@4 e4@4 e4@4 e4@8 ~@25]/2", H: "[~@3 g#4@4 f#4@4 f#4@4 e4@4 e4@4 e4@4 e4@4 e4@4 a3@16 ~@13]/2",
  I: "[~@11 b3@4 a4@4 a4@4 a4@4 g#4@8 ~@29]/2", J: "[~@15 g#4@4 g#4@4 g#4@8 g#4@4 e4@4 e4@4 e4@8 ~@13]/2",
  K: "[~@15 e4@4 e4@4 e4@4 e4@8 b3@4 b3@4 b3@8 ~@13]/2", L: "[~@11 a4@4 a4@4 a4@8 g#4@4 g#4@8 ~@25]/2",
  M: "[~@11 e4@4 g#4@4 g#4@4 g#4@4 g#4@4 g#4@8 e4@4 e4@8 ~@13]/2", N: "[~@15 e4@4 e4@4 e4@4 e4@4 c#4@8 ~@25]/2",
  O: "[~@15 e4@4 e4@4 e4@4 e4@4 c#4@4 b3@8 c#4@4 b3@4 b3@12 ~]/2", P: "~@15 g#3", Q: "b3@2 b3@4 b3!2 c#4@2 c#4@4 c#4!2",
  R: "d#4@2 d#4 e4@3 b3@2", S: "b3@2 b3!2 c#4@2 c#4!2", T: "~@5 e4!3", U: "e4 ~@3", V: "~@2 g#4 f#4!2 e4!2 g#3",
  W: "a3@7 ~", X: "[~@3 b3 a4!3 g#4@2 ~@7]/2", Y: "~@4 g#4!2 g#4@2", Z: "g#4 e4!2 e4@2 ~@3",
  AA: "[~@4 e4!3 e4@2 b3!2 b3@2 ~@3]/2", AB: "~@3 a4!2 a4@2 g#4", AC: "g#4 ~@3", AD: "~@3 e4 g#4!4",
  AE: "g#4@2 e4 e4@2 ~@3", AF: "~@4 e4!4", AG: "c#4 ~@3", AH: "c#4 b3@2 c#4 b3 b3@3", AI: "~ a4!7",
  AJ: "a4 g#4 f#4 a4@3 ~@2", AK: "[g#4!3 g#4@2 f#4 e4 g#4@2 f#4 e4 g#4@2 ~@3]/2", AL: "~@2 a4!6",
  AM: "~ b4@2 b4@2 g#4 ~@2", AN: "~ b4!2 c#5@5", AO: "[~ c#5@4 b4!2 a#4@2 ~@7]/2", AP: "~@4 a#4!2 a#4@2",
  AQ: "a#4 f#4!2 f#4@2 ~@3", AR: "[~@4 f#4!3 f#4@2 c#4!2 c#4@2 ~@3]/2", AS: "[~@8 c#5@12 b4@4 b4@4 a#4@3 a#4@8 ~@25]/2",
  AT: "[~@19 a#4@4 a#4@4 a#4@8 a#4@4 f#4@4 f#4@4 f#4@8 ~@9]/2",
  AU: "[~@19 f#4@4 f#4@4 f#4@4 f#4@8 c#4@4 c#4@4 c#4@8 ~@9]/2", AV: "[~@11 c#5@12 b4@4 b4@4 a#4@38 ~@27]/3",
})).s("gm_string_ensemble_2").gain(0)

// chords · synth brass 1
const synth_brass_1 = note(`<
  ~ A@4 B@2 C D B@2 C D ~@4 B@2 C D B@2 C D ~@4 E F E F G H I@2 E F E F G H I@2 B@2 C D B@2 C D ~@4 E F E F G H I@2 E F
  E F G H I@2 ~@16 J K J K L M N@2 J O P O Q R S@2 T ~
>`.pickRestart({
  A: "[[e2,b2,e3]@97 ~@31]/4", B: "[e2,b2,e3]/2", C: "~@3 [e2,c#3]@5", D: "[e2,d#3]@3 [e2,e3]@5",
  E: "[e3,b3]@19 ~ [e3,b3]@11 ~", F: "[e3,b3]@11 ~ [e3,b3]@19 ~", G: "[g#3,b3]@19 ~ [g#3,b3]@11 ~",
  H: "[g#3,b3]@11 ~ [g#3,b3]@19 ~", I: "[[f#3,b3]@63 ~]/2", J: "[f#3,c#4]@19 ~ [f#3,c#4]@11 ~",
  K: "[f#3,c#4]@11 ~ [f#3,c#4]@19 ~", L: "[a#3,c#4]@19 ~ [a#3,c#4]@12", M: "[a#3,c#4]@11 ~ [a#3,c#4]@19 ~",
  N: "[[g#3,c#4]@63 ~]/2", O: "~ [f#3,c#4]@11 ~ [f#3,c#4]@19", P: "~ [f#3,c#4]@19 ~ [f#3,c#4]@11",
  Q: "~ [a#3,c#4]@19 ~ [a#3,c#4]@11", R: "~ [a#3,c#4]@11 ~ [a#3,c#4]@19", S: "[~ [g#3,c#4]@63]/2", T: "~ [c#4,f#4]@31",
})).s("gm_synth_brass_1").gain(0.56).pan(0.6)

// chords · pad new age
const pad_new_age = note("<~@13 A@2 B@2 ~@8 A@2 C ~@25 A@2 C ~@51>".pickRestart({
  A: "[c#4,e4,g#4]/2", // C#m
  B: "[e4@3 ~@29 b3@29 ~@3, a3, [c#4,a4]@8 c#4@9 ~@3 c#4@9 ~@35, ~@4 e4@11 ~ e4@10 ~@2 e4@33 ~@3, ~@12 a4@8 ~@4 a4@37 ~@3]/2", // F#m
  C: "[a3,c#4,e4]", // A
})).s("gm_pad_new_age").gain(0.4).pan(0.4)

// chords · pad choir
const pad_choir = note(`<
  ~@29 A@4 B@2 C@2 A@4 B@2 C@2 ~@12 D@4 E@2 F@2 D@4 E@2 F@2 G@2 H@2 I@2 J@2 K@4 L@2 M@2 K@4 L@2 M@2 K@2 N@2 O@2 P@2 Q ~
>`.pickRestart({
  A: "[[b3,e4,b4]@63 ~]/2", B: "[[c#4,e4,b4]@63 ~]/2", C: "[[b3,f#4,b4]@63 ~]/2", D: "[b3,e4,b4]/2", E: "[c#4,e4,b4]/2",
  F: "[b3,f#4,b4]/2", G: "[[a2,e3,a3]@63 ~]/2", H: "[c#3,g#3,c#4]/2", I: "[a2,e3,a3]/2",
  J: "[[b2,f#3,b3]@44 [c#3,g#3,c#4]@19 ~]/2", K: "[[c#4,f#4,c#5]@63 ~]/2", L: "[[d#4,f#4,c#5]@63 ~]/2",
  M: "[[c#4,g#4,c#5]@63 ~]/2", N: "[~ [c#4,f#4,c#5]@62 ~]/2", O: "[~ [d#4,f#4,c#5]@63]/2", P: "[~ [c#4,g#4,c#5]@63]/2",
  Q: "~ [f#3,c#4]@31", // F#5
})).s("gm_pad_choir").gain(0.56).pan(0.6)

// other · alto sax
const alto_sax = note("<~@80 A@6 B@4 ~@17>".pickRestart({
  A: "[~@21 d#4@3 ~ f#4@3 ~ c#5@19 g#4@2 ~ f#4@20 ~@14 a#4@3 a#4@4 a#4@11 ~ g#4@4 f#4 ~@3 d#4@4 c#4 ~@4 d#4@3 ~ f#4@11 ~@13 a#4@4 a#4 ~@3 a#4@12 g#4@4 f#4@2 ~@2 d#4@4 f#4@2 ~@6 a#4@3, ~@25 a4 ~@70, ~@51 g#4@2 ~@139]/6",
  B: "[~@5 c#5@4 d#5@8 g#4 ~ g#4@2 f#4@6 ~@2 c#5@8 c#4@4 c#5@4 c#5@8 c#4@4 c#5@4 c#5@9 ~ c#4@3 ~@3 c#5@2 ~@2 c#5@4 d#5@3 ~ f#5@2 d#5@2 f#5@30 ~@5, ~@9 a#4 ~@54]/4",
})).s("gm_alto_sax").gain(0.64).pan(0.4)

// other · piano
const piano = note("<~ A@4 B A@7 C D E F A@4 B A B A D@2 E G ~@16 A@5 B A@2 D@2 E G ~@50>".pickRestart({
  A: "e1@2 ~@10 e1 ~@19", B: "e1 ~@5 e1 ~@9", C: "c#2 ~@11 c#2 ~@19", D: "c#2@2 ~@10 c#2 ~@19", E: "a1@2 ~@10 a1 ~@19",
  F: "a1@27 ~@5", G: "[b1,b2,f#3,b3]@3 ~ [b1,b2,f#3,b3]@3 ~ [b1,b2,f#3,b3]@4 ~@20",
// … 142 more lines

More by Tina Turner