Strudelify

Private Dancer

Tina Turner

KeyG majorTempo116 bpm
0:00/0:00
// Private Dancer — TURNER TINA
// 116 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 204 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Overdr.Gt.
setcpm(116/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"
const piano = note(`<
  ~ A@2 B@2 C@2 D@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 E F G H E F G I J F G K E F G L M N O P Q R S T U V F G K E F G W E
  X Y Z E F G L M N O P Q R AA AB M N O P Q R S T AC AD AE AF AG AF AH AI AJ A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2
  B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 AK L M N O P Q R S T U V F G K E AL AM AN E X Y Z E F G AO M N O P Q R
  AA AP M AQ O P Q R AA AR M AQ O P Q R AA AR M AQ O P Q R AA AR M AQ O P Q R AA AS
>`.pickRestart({
  A: "[[b3,d4,e4,g4]@13 ~ [a3,c#4,d4,f#4]@17 ~]/2", B: "[[g3,b3,c4,e4]@6 ~ [a3,c#4,d4,f#4]@8 ~]/2",
  C: "[~@10 [c5,c6] ~ [b4,b5]@2 [g5,g6]@3 ~ [f#5,f#6]@7 ~ [d5,d6]@2 ~ [b4,b5]@3, [b3,d4,e4,g4]@13 ~ [a3,c#4,d4,f#4]@17 ~]/2", // C B G F# D B Em7 Dmaj7
  D: "[[g3,b3,c4,e4]@6 ~ [a3,c#4,d4,f#4]@8 ~, [e5,e6]@7 ~@9]/2", E: "[e3,b3,d4,e4,g4]@15 ~",
  F: "[b2,a3,b3,d4,f#4]@5 ~ [c3,g3,b3,c4,e4]@9 ~", G: "[e3,b3,d4,e4,g4]@8 [b2,a3,b3,d4,f#4]@7 ~",
  H: "[a2,g3,a3,c4,e4]@5 ~ [d3,g3,a3,c4,e4]@10", // Am7
  I: "[a2,g3,b3,c4,e4]@5 ~ [d3,g3,c4,e4]@6 [d3,d4]@2 [e3,e4]@2, ~@3 a3@5, ~@3 [g3,c4]", J: "[b3,d4,e4,g4]@7 ~, e3 ~@7",
  K: "[a2,g3,a3,c4,e4]@5 ~ [d3,g3,c4,e4]@6 [d3,d4]@2 [e3,e4]@2, ~@3 a3@5, ~@3 g3", // Am7 C D E
  L: "[e3,e4]@2 ~ [e3,e4]@2 [f#3,f#4]@2 ~ [g3,g4]@2 ~ [g3,g4]@2 [a3,a4]@2 ~, [g3,a3,c4]@5 ~@11", // E F# G A Am7
  M: "[g2,c4,e4,g4,c5]@2 ~ [g2,b3,d4,g4,b4]@5", N: "[g2,b3,d4,g4]",
  O: "[g2,b3,d4,g4]@7 ~ e3@4 b2@2 e3@2, ~ [b3,d4,e4,g4]", // G Em7
  P: "[d3,a3,d4,g4,a4]@5 ~ [a3,d4]@6 d4@2 a3@2, ~@3 [d3,f#4,a4]@5", // Dsus4 D5 D
  Q: "[a3,d4,f#4]@6 a2@2 [d3,d4]@3 f#3@2 [d3,d4]@3, d2@5 ~@3 [a3,a4]@8, ~@11 f#4@5", // D A
  R: "[e4,g4,a4,c5]@6 [a5,c6] ~ [c3,d5]@8, f2@5 ~ f2@2 ~@8, ~@7 [e5,g5]@8 ~", S: "[f#2,c4,e4,f#4,a4]",
  T: "[g3,c#4,e4,g4]@2 ~ [a3,c#4,a4]@2 ~ c#3@2 [a#3,d4,a#4]@3 [a3,d4,a4]@2 ~ [c3,g3,d4,g4]@2, c#3@5 [a#3,e4,a#4]@2 ~ c3@5 ~@3", // C#dim A A# D5 Csus2 A#dim
  U: "e2@9 ~ b1@2 d2@2 d#2@2, [e3,b3,e4]", V: "[e2,b3,d4,e4,g4]@15 ~",
  W: "[g3,b3,c4,e4]@2 ~ [c4,g4,c5]@2 [a2,b3,b4]@2 ~ [d3,a3,d4,a4]@2 ~ [d3,a3,d4,a4]@2 [e3,a3,e4,a4]@2 ~, a2@3 ~@13", // Cmaj7 C5 Asus2 D5 A5
  X: "[b2,a3,b3,d4,f#4]@5 ~@5 d4@2 d5 ~ c5@2, ~@6 [c3,g3,b3,c4,e4]@9 ~", // Bm7 Cmaj7
  Y: "[e3,b3,d4,e4,g4,b4]@8 [b2,a3,b3,d4,f#4]@7 ~", // Em7 Bm7
  Z: "[a2,g3,a3,c4,e4]@5 ~@5 g4@2 [d3,d4]@2 [e3,d4]@2, ~@3 [d3,g3,a3,c4,e4]@3 a3@2", // Am7 D E7 Am7
  AA: "[f#2,e4,f#4,a4,c5]@3 ~ [b2,a4,b4]@4, ~@3 b2 ~@4, ~@7 [b3,d#4,f#4]@8 ~", // F#m7b5 B7 B
  AB: "[g3,b3,e4,g4]@2 ~ [e3,e4]@2 ~ e2@2 [d3,g3,g4]@2 ~ [d3,g3,g4]@2 [a2,a3,a4]@2 ~, e2@5 [f#3,f#4]@2 ~@9", // Em E G5 A F#
  AC: "a#3 ~@9 e2@2 g2@2 g#2@2, [e4,b4], e2@9 ~@7, ~ b3@15", // E5
  AD: "[g3,b3,c#4,e4]@4 ~@2 [g3,b3,c#4,e4]@5 ~ [a2,g3,b3,c#4,e4]@3 ~, a2@2 ~@4 a2@3 ~@7", // C#m7b5 A7
  AE: "[g3,b3,c#4,e4]@4 a2@2 [g3,b3,c#4,e4]@4 b2 c3 c#3@2 a2@2, ~@3 [g3,b3,c#4,e4]", // C#m7b5
  AF: "[a2,g3,b3,c#4,e4]@4 ~@2 [a2,g3,b3,c#4,e4]@5 ~ [a2,g3,b3,c#4,e4]@3 ~", // A7
  AG: "[a2,g3,b3,c#4,e4]@5 ~ [g3,b3,c#4,e4]@4 a1@2 c#2 e2 f#2@2, ~@6 a2@3 ~@3 [g3,b3,c#4,e4]@4", // A7 C#m7b5
  AH: "[a2,g3,b3,c#4,e4]@5 ~ [g3,b3,c#4,e4]@4 c2@2 [c#2,g3,b3,c#4,e4]@4, ~@6 a2@3 ~@7", // A7 C#m7b5
  AI: "[c#2,a#3,c#4,e4,g4]@2 c2@2 [c#2,a#3,c#4,e4,g4]@2 [c#2,a#3,c#4,e4,g4] ~@3 [c2,a#3,c4,e4,g4]@6", // C#dim C7
  AJ: "[d#4,g4]@2 [b2,d#4,g4] ~ [b2,a3,g4] ~ [b2,a3,d#4,g4] ~@9, [b2,a3] ~ a3@2 d#4@2 ~@10", AK: "[g3,b3,c4,e4]",
  AL: "f#4@2 g4@2 f#4@2 [c3,g3,b3,c4,e4]@9 ~, [b2,a3,b3,d4]@5 ~@11", AM: "[e3,b3,d4,e4,g4]@8 [b2,b3,d4,f#4,a4]@7 ~",
  AN: "[g3,b3,c4,e4]@2 ~ [c4,g4,c5]@2 [a2,b3,b4]@2 ~ [d3,c4,a4,c5]@2 ~ [d3,a3,d4,a4]@2 [e3,a3,e4,a4]@2 ~, a2@3 ~@13", // Cmaj7 C5 Asus2 D7 D5 A5
  AO: "[e3,e4]@2 ~ [e3,e4]@2 [f#3,f#4]@2 ~ [g3,c4,d4,g4]@3 [g3,g4]@2 [a3,a4]@2 ~, [g3,a3,c4]@5 ~@11", // E F# Gsus4 G A Am7
  AP: "[g3,b3,e4,g4]@2 ~ [e3,e4]@2 ~ e2@2 [d3,g3,c4,d4,g4]@3 [d3,g3,g4]@2 [a2,a3,a4]@2 ~, e2@5 [f#3,f#4]@2 ~@9", // Em E Csus2 G5 A F#
  AQ: "[b3,d4,g4]@3 [b3,d4,g4]@5, g2@15 ~", // G
  AR: "[g3,b3,e4,g4]@2 ~ [e3,e4]@2 ~ e2@2 [d3,g3,c4,d4,g4]@2 ~ [d3,g3,g4]@2 [a2,a3,a4]@2 ~, e2@5 [f#3,f#4]@2 ~@9", // Em E Csus2 G5 A F#
  AS: "[g3,b3,e4,g4]@2 ~ [e3,e4]@2 ~ e2@2 ~@8, e2@5 [f#3,f#4]@2 ~@9", // Em E F#
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Fing.Bass"
const bass = note(`<
  ~@5 A@4 B C D@2 E F G@2 E C D@2 E H G@2 I J K L I M N L O P Q L R M Q L S T U V W X Y Z AA AB AC AD L AE M AD L O P Q
  L AF AG Q L S AH AI V W X AJ AK S AL AI V W X AM AN AO AP AQ AR@2 AP AS AT AU E C D@2 E H G@2 E C D@2 E AV D@2 E C D@2
  E H AW@2 E C G@2 E H D@2 E C D@2 E AV G@2 E C D@2 E H AX@2 S AY AI V W X AM AZ AA O BA Q L BB M Q L O P Q L AF AG Q L
  S AH AI V W X AJ BC S AL AI V W X BD BE S AH AI V W X AJ BF S AL AI V W X BD BE S AH AI V W X AJ BF
>`.pickRestart({
  A: "[e2@29 b1 d2 d#2]/4", B: "e2@2 ~@4 f#2@2 g2 ~@5 e2@2", C: "~@5 b1 d2 d#2",
  D: "[e2@2 ~@4 f#2@2 g2 ~@3 e2 ~ d2@12 b1@2 d2@2 d#2@2]/2", E: "e2@2 ~@4 f#2@2 g2 ~@3 e2 ~ e2@2", F: "~@5 d2@2 d#2",
  G: "[e2@2 ~@4 f#2@2 g2 ~@3 e2 ~ d2@12 b1!2 d2@2 d#2@2]/2", H: "~@10 d2@3 ~ d#2@2", I: "e2@4 ~@2 e2 ~ e2@4 d2 ~ a1 ~",
  J: "b1@4 ~@2 c2 ~ c2@3 ~ b1@2 a1@2", K: "e2@4 ~@2 e2 ~ b1@4 ~@4", L: "a1@2 b1@2 c2 ~ c#2@2 d2@2 b1 ~ d2@2 d#2 ~",
  M: "b1@2 ~ c2@2 b1 a1 d2", N: "e2@4 ~@2 e2 ~ d2@4 ~@4", O: "e2@4 ~@2 e2 ~ e2@4 a1@2 a#1@2",
  P: "b1@4 ~@2 c2@4 b1@2 a1@2 d2 ~", Q: "e2@3 ~ d2@3 ~ b1@3 ~ d2@4", R: "e2@4 ~@2 e2 ~ e2@4 a1@2 a#1 ~",
  S: "g1@4 b1 d2 e2@2 g2 ~ g2@2 e2@2 d2@2", T: "g1@3 ~ g1@2 d2 e2 g2@4 e2@2 d2@2",
  U: "g1@3 ~ g1@2 b1 d2 e2@3 ~ b1 ~ e2@2", V: "d2@4 b1 ~ a1@2 ~@2 d2 ~ b1 ~ a1@2", W: "d2@4 ~@2 d2 ~ d2@4 a1@2 d2@2",
  X: "f2@4 ~@2 f2 ~ c3@6 f#2 ~", Y: "f#2@5 ~ f#2 ~ f#2@6 [e2,f2] d#2", Z: "c#2@5 ~ c#2 ~ c2@4 ~@2 c2 ~",
  AA: "e1@9 ~ b1@2 d2@2 d#2@2", AB: "e2@4 ~@2 e2 ~ e2@4 b1@2 b1 ~", AC: "b1@4 ~@2 c2@4 b1 ~ a1@2 d2@2",
  AD: "e2@3 ~ d2@3 ~ b1@3 ~ d2@3 ~", AE: "e2@4 ~@2 e2 ~ e2@4 b1 ~ b1@2", AF: "e2@4 ~ e2 f#2@2 g2@4 g2@2 g2@2",
  AG: "b1@4 ~@2 c3@7 ~ b2 g2", AH: "g1@6 d2 e2 g2@4 e2@2 d2@2", AI: "g1@3 ~ g1 b1 d2@2 e2@3 ~ b1 ~ e2@2",
  AJ: "f#2@5 ~ b1 ~ b1@6 d2 d#2", AK: "e2@3 ~ b1@2 e2 ~ d2@4 a1@3 ~", AL: "g1@5 ~ d2 e2 g2@4 e2@2 d2@2",
  AM: "f#2@6 [e2,f2] [d2,d#2] f#1@7 f#1", AN: "c#2@3 ~ c2@3 ~", AO: "e1@9 ~ e1@2 g1@2 g#1@2",
  AP: "a1 ~@5 a1 ~@5 a1 ~@3", AQ: "~@4 a1@2 ~@4 b1 c2 c#2 ~ a1@2", AR: "[a1@24 ~@2 a1@2 c#2 e2 f#2@2]/2",
  AS: "~@4 a1@2 ~@4 c2@2 c#2@3 ~", AT: "c#2@2 c2@2 c#2@2 c#2 ~@3 c2@5 ~", AU: "b1!3 b1@5", AV: "~@10 b1!2 d2@2 d#2@2",
  AW: "[e2@2 ~@4 f#2@2 g2 ~@3 e2 ~ d2@4 a2 b2 d3@10 d3 g2]/2",
  AX: "[e2@2 ~@4 f#2@2 g2 ~@3 e2 ~ d2@4 a2@3 ~ d3@2 d3@4 c3 a2 d2@2, ~@18 g#2 ~@3 c#3 ~@9]/2",
  AY: "g1@5 ~ d2 e2 g2@3 ~ e2@2 d2@2", AZ: "c#2@5 ~ c#2@2 c2@6 ~@2", BA: "b1@4 ~@2 c2@5 ~ b1@2 a1 ~",
  BB: "e2@4 ~@2 e2 ~ e2@4 b1@2 b1@2", BC: "e2@4 ~@2 b1@2 d2@4 b1 ~ a1@2", BD: "f#2@6 [e2,f2] [d2,d#2] b1@7 b1",
  BE: "e2@4 b1@2 e2 ~ d2@3 ~ e2 [c2,d2] [a1,b1] g1", BF: "e2@4 ~@2 e2@2 d2@4 b1 ~ a1@2",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · electric guitar clean · "#Chrs.Gtr"
const electric_guitar_clean = note(`<
  ~@8 A@2 ~@4 B@4 ~@6 C@2 D E F@2 D G@2 H I J K L M@3 N O P Q R@4 S@2 T@2 U V D G@2 H I J K L M@3 W O P Q X@4 N O P Q
  R@4 Y Z AA Z AA Z AA AB AC ~@7 AD@3 AE@2 AF@2 AG@4 AE@2 AF@2 AG@4 AE@2 AH@4 AI AJ AK AL AM AN AO AP@2 AQ AR@3 AS AT AU
  N O P Q R@4 S@2 T@2 U V D G@2 H I J K L M@3 W O P Q X@4 W O P Q X@4 W O P Q X@4 W O P Q X@4 W O P Q X@4
>`.pickRestart({
  A: "[~@10 [b3,c4] [c#4,d4] ~@2 d5@15 ~@3, ~@3 g4 ~@4]/2", // Cmaj7 Dmaj7
  B: "[~@7 [b3,d4] a4 ~ g4@4 e4@9 [b3,d4] a4 ~ g4@4 e4@7 d#4 [c#4,d4] b3@3 c4 [c#4,d4] ~@2 d5@15 ~@3, ~@39 c4 ~@2 b3@2 g4@4 ~@16]/4", // Bm Dmaj7
  C: "[~@8 f#4@2 ~@2 a3@2 d4 ~ [d4,g4]@14 ~@2, ~@8 a4@7 [e3,b3]@16 ~, ~@5 f#4@3 ~@8]/2", // G5 E5
  D: "[b2,d3,a3]@5 ~ [c3,e3,b3]@9 ~", E: "[e3,g3,d4]@7 ~ [b2,d3,a3]@8",
  F: "[[a2,e3,g3,c4]@5 ~ [d3,g3,c4,e4]@8 ~@2 g4@14 ~@2, ~@7 b3@8 ~, ~@15 [d4,e4]@15 ~@2]/2", // Am7 C Dsus2
  G: "[[e3,g3,d4]@7 ~ [b2,d3,a3]@7 ~ [e4,c5]@6 [d3,g3,c4,e4]@8 ~@2, ~@15 [d3,g3]@6 ~@11]/2", // Em7 Bm7 C G5
  H: "d4@3 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~, [e3,b3,a4]@7 ~", // G Esus4
  I: "[a3,d4,f#4]@3 [d4,f#4,b4] ~@2 [g3,b3,e4]@4 ~@4 d3@2, ~@5 b3@3, ~@3 b2", // D Bm Em
  J: "d4@3 [d4,g4,b4] ~@2 [d4,g4,b4] ~@4 [d4,f#4,a4] ~@2 [d4,f#4,a4] ~, [e3,g3]@7 ~ [b2,d3,a3]@8", // G D Em Bm7
  K: "[a3,c4,e4,g4]@3 [a3,c4,e4,g4] ~@2 [c4,e4]@4 [d4,f#4]@2 [b3,e4]@2 [d4,f#4]@2, ~@6 [d3,g3]@9 ~", // Am7 C D E5 D G5
  L: "a3 ~ [d4,g4] [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [g4,b4,d5] [g4,b4] e4 ~@3, e3@15 ~, [d4,g4] ~@7, ~ b3@13 ~@2", // G5 G G5
  M: "[~@3 [d4,f#4,b4]!2 ~ [b3,e4,g4]@4 b3@2 g3@2 ~@2 g4@3 [d4,g4,b4] d4 ~@3 d4@4 d4@3 ~ [e4,c5]@6 ~@2 c5@7 ~, [b2,d3,a3]@5 ~ [c3,e3]@8 b3@9 ~ a3@6 ~ [a2,g3]@6 ~@11, ~@10 e4@5 d4@4 ~@20 g3@7 ~@2, ~@16 e3@7 ~ [b2,f#4,a4]@8 ~@7 [d3,e4]@9]/3", // Bm Em G C Bm7 C A7 B7 …
  N: "[g3,c4,e4,g4]@4 ~@2 [g3,b3,d4,g4]@4 [d4,g4,b4] ~ [d4,g4,b4,d5] ~@3", // C G
  O: "a3 [b3,g4]@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~ a3 b3@3 [b3,d4] ~@3, [g3,d4]@3 ~@5 [d4,g4]@4 ~@4", // Em G Bm G5
  P: "a3 ~@3 [d4,g4,b4] ~@2 [g3,b3,d4] [e3,b3,d4,g4]@4 [d4,g4,b4] ~@3, [d4,g4] ~@3, ~ b3@6 ~@9", // G Em7 G G5
  Q: "[a3,d4,g4]@5 ~ a3 b3@3 [a3,d4]@2 f#3@2 [a3,d4]@2, ~@3 [d4,f#4]@2 ~@3", // Dsus4 D5 D
  R: "[[d3,a3,d4,f#4]@6 [d3,a3,d4]@2 [a3,d4,f#4]@7 ~ [c4,e4]@15 ~ [e4,a4]@15 ~ [a#3,e4]@7 ~ d4@7 ~, ~@15 [f3,g3]@14 ~@2 [f#3,c4]@15 ~ [c#3,g3]@8 [c3,g3,a#3]@8 ~]/4", // D D5 D C A5 A#dim Fsus2 F#dim …
  S: "[d4 e4@14 ~ [d4,g4]@14 ~@2, [e3,b3]@15 [e3,b3]@15 ~@2]/2", // G5 E5
  T: "[[b2,d3,a3]@5 ~ [c3,e3]@8 [b3,c4] c#4 [e3,b3,g4]@7 ~ [b2,d3,a3]@8, ~@6 b3@7 ~@2 d4@8 ~@9]/2", // Bm7 C Cmaj7 Em Bm7
  U: "[a2,e3,g3,c4]@5 ~ [c4,e4]@4 [c4,e4,g4] ~@3 [c4,e4,g4] ~, ~@6 [d3,g3]@9 ~", // Am7 C G5
  V: "[e3,b3,d4,g4]@3 [b3,d4,g4] ~@2 [b3,d4,g4]@4 [b3,d4,g4] ~@3 [b3,d4,g4] ~, a3 ~@15", // Em7 G
  W: "[g3,c4,e4,g4]@4 ~@2 [g3,b3,d4,g4]@3 [g4,b4] [d4,g4,b4] ~ [d4,g4,b4,d5] ~@3", // C G
  X: "[[d3,a3,d4,f#4]@6 [d3,a3,d4]@2 [a3,d4,f#4]@7 ~ [c4,e4]@15 ~ [e4,a4]@7 ~ [a3,d#4,f#4]@7 ~ [e4,g4]@7 ~ [d4,g4]@8, ~@15 [f3,g3]@14 ~@2 [f#3,c4]@8 b2@7 ~ [e3,b3]@8 [d3,a3]@8 ~]/4", // D D5 D C A5 D#dim Em G5 …
  Y: "d4 e4@14 ~, [e3,b3]@15 ~", Z: "[d4,d5] [e4,e5]@2 [e4,e5]!2 ~ [e4,e5] ~@2 [e4,e5]!2 ~ [e4,e5] ~@3",
  AA: "[d4,d5] [e4,e5]@2 [e4,e5]!2 ~ [e4,e5] ~@2 [e4,e5]!4 ~@3", // D E
  AB: "[e4,e5] [e4,e5]@2 [e4,e5]!2 ~ [e4,e5] ~@3 [a#3,e4,g4]@6", // E Edim
  AC: "[a3,d#4,g4]@2 [a3,d#4,g4] ~ [a3,d#4,g4]@2 [a3,d#4,g4] ~@9", // Am7b5
  AD: "[~@10 d4 [d#4,e4] ~@2 d5@15 ~ [d3,a3,c#4,f#4]@16 ~@2, ~@3 g4 ~@8]/3", // Emaj7 Dmaj7
  AE: "[[c3,g3,b3,e4]@12 ~@2 [d3,a3,c#4,f#4]@13 ~@5]/2", AF: "[[e3,b3,d4,g4]@6 ~ [d3,a3,c#4,f#4]@8 ~]/2",
  AG: "[[c3,g3,b3,e4]@12 ~@2 [d3,a3,c#4,f#4]@12 d4 [d#4,e4] ~@2 d5@15 ~ [d3,a3,c#4,f#4]@16 ~@2, ~@7 g4 ~@8]/4", // Cmaj7 Dmaj7 Emaj7 Dmaj7
  AH: "[[e3,b3,d4,g4]@12 ~@2 [d3,a3,c#4,f#4]@16 ~@2 [g3,b3,e4]@13 ~ [b3,d4,f#4,b4]@17 ~, ~@31 c3@13 ~@20]/4", // Em7 Dmaj7 Em Bm
  AI: "~@2 e4@12 d4 ~", AJ: "f#4 ~ d4@11 ~@3", AK: "~@2 e4 ~@2 e4 ~@2 e4@2 ~ a3@2 ~ a3 ~", AL: "a3@15 ~",
  AM: "~@2 [e4,d5,d#5] e5@7 ~@2 b4 ~ d5 ~", AN: "c#5 ~ a4@8 b4@2 ~ a4 ~@2", AO: "b4@2 ~ a4 ~ b4@2 ~ a4 ~@2 b4@2 ~ a4 ~",
  AP: "[b4@2 ~ a4@7 a4 b4 d5 b4 e5@4 ~@12 a4 b4]/2", AQ: "d5 b4 d5 ~ e5@11 d5",
  AR: "[e5@2 d5 ~ e5 ~ e5@4 d5@2 e5@2 a5@10 ~@2 e6@8 d6 ~ e6 ~ e6 ~ e6@6 d6 ~]/3", AS: "c#6 ~ d6 ~ c#6@3 b5 a5@3 ~@5",
  AT: "a5 b5 d6 ~ d6 ~ a5 b5 d6 ~ d6@3 b5 a3@2", AU: "c5",
})).s("gm_electric_guitar_clean").gain(0.33).pan(0.3)

// other · synth brass 2 · "#Sft.Bras"
const synth_brass_2 = note("<A B@8 ~@7 A B@8 ~@69 A B@8 ~@3 A B@8 ~@7 A B@8 ~@73>".pickRestart({
  A: "~@13 b3 f#4 b3", B: "[f#4@26 d4 e4 g4@2 d4@98]/8",
})).s("gm_synth_brass_2").gain(0.27)

// chords · rock organ · "#Rtr.Orga"
const rock_organ = note(`<
  ~ A@24 B@3 C B@3 D E@8 F@3 G@2 H I J K B@3 L@4 D M@3 N@3 O@2 P@3 G@2 H Q R S@3 G@2 H I J K T U T V T W X Y ~@8 A@8
  ~@15 Z AA@2 AB@2 ~@3 AC AD@2 AE@2 ~@2 AF@2 AG@3 AH@2 AI I J K B@3 AJ@5 AK@3 AL AM@2 AN@2 AO@3 AH@2 H AP R S@3 AH@2 H
  AP AQ AR@3 AH@2 H AP AS AR@3 AH@2 H AP AT AU@3 AV@2 AW AP AT
>`.pickRestart({
  A: "[d5@33 ~@13 f#5@18]/4", B: "[[d5,e5,g5]@8 [a4,d5,f#5]@3 [g4,c5,e5]@5 [e5,g5]@4 [a4,f#5]@4, b4, ~@2 d5]/3",
  C: "[g4,a4,c5,e5]", D: "[a4,c5,e5,g5]",
  E: "[[d5,e5,g5]@8 [a4,d5,f#5]@3 [g4,c5,e5]@5 [e5,g5]@4 f#5@4 [g4,c5,e5]@7 [a4,f#5] [e5,g5]@8 [a4,d5,f#5]@3 [c5,e5,g5]@5 [e5,g5]@4 [f#5,a5]@4 ~@4 c6@4, b4@24 ~@8 b4@27 ~@5, ~@16 d5@8 ~@7 d5@9 ~@8 d5@8 [c5,e5,g5]@8, ~@20 a4@11 ~@28 a4@5]/8", // Em7 D C Em C D Em D …
  F: "[c5 b4@7, [d5,g5]]/3", G: "[g5@3 f#5@13, [a4,d5]]/2", H: "[e5,g5,a5,c6]", I: "[c5,e5,f#5,a5]",
  J: "[b4,c#5,e5] [a#4,d5,e5], g5", K: "[g4,b4,e5]",
  L: "[[g4,a4,c5,e5]@6 [a4,f#5]@2 [e5,g5]@8 [a4,d5,f#5]@3 [g4,c5,e5]@5 [e5,g5]@4 [a4,f#5]@4, ~@3 d5@5 ~@4 d5@4, ~ b4@3]/4", // Am7 D Em D C Em D
  M: "[[d5,e5,g5]@8 f#5 g5 f#5 [g4,c5,e5]@5 [e5,g5]@4 [a4,f#5]@4, b4, ~@8 [a4,d5]@3 ~@5 d5@8]/3", // Em7 C Em D D5
  N: "[[g4,a4,c5,e5]@7 [a4,f#5] [e5,g5]@8 [a4,d5,f#5]@3 [c5,e5,g5]@5, ~@7 d5@9 ~@8, ~ b4@2]/3", // Am7 D Em D C
  O: "[[e5,g5,b5] [f#5,a5] ~ c6, d5 [c5,e5,g5], ~@2 b4@3 a4@3]/2", P: "[e5 [d5,b5]@7, g5, c6 ~@5]/3",
  Q: "[c5,e5,f#5,a5] [d#5,f#5,a5,b5]", R: "[b4,d5] [a4,c5], [e5,g5]", S: "[c6 [d5,b5]@7, [e5,g5] ~@2]/3",
  T: "[g4,b4,c#5,e5]@5 ~ [g4,b4,c#5,e5]@5 ~ [g4,b4,c#5,e5]@4", // C#m7b5
  U: "[g4,b4,c#5,e5]@5 ~ [g4,b4,c#5,e5]@5 ~ [b4,c#5,e5,g5]@3 ~", // C#m7b5
  V: "[b4,c#5,e5,g5]@5 ~ [b4,c#5,e5,g5]@6 [b4,c#5,e5,g5]@4", W: "[g4,b4,c#5,e5]@5 ~ [b4,c#5,e5,g5]@6 [b4,c#5,e5,g5]@4",
  X: "[a#4,c#5,e5,g5]@9 ~ [a#4,c5,e5,g5]@6", // A#dim C7
  Y: "[a4,b4,d#5,g5] ~ [b4,d#5]@2 [a4,b4,d#5] ~ [a4,b4,d#5,g5] ~@9, ~@2 [a4,g5] ~ g5@2 ~@10", Z: "~@14 [d#6,e6] ~",
  AA: "[g6 ~@13 f#6@18]/2", AB: "[e6@14 d6@12 ~@2 [a5,a#5] a5 g5 ~]/2", AC: "~@14 [c6,d6] e6", AD: "[g6@7 f#6@9]/2",
  AE: "[e6@14 [d6,g6]@4 e6 ~@3 [d5,g5]@4 e5 ~@5, ~@14 f#6 ~@7 f#5 ~@9]/2", // G5
  AF: "[~@12 f#6 ~@7 e6@2 ~@10, ~@3 [e6,g6]@2 ~@3, ~ [a4,c5,e5,g5]]/2", AG: "[c6 [d5,b5]@7, g5, e5 ~@2]/3",
  AH: "[g5@3 f#5@13, [d5,a5]]/2", AI: "[c5,e5,g5,a5]",
  AJ: "[[g4,a4,c5,e5]@6 [a4,f#5]@2 [e5,g5]@8 [a4,d5,f#5]@3 [g4,c5,e5,c6]@5 [e5,g5]@4 [a4,f#5]@4 ~@4 c6@4, ~@3 d5@5 ~@4 d5@4 [c5,e5,g5]@4, ~@8 b4@27 a4@5]/5", // Am7 D Em D C Em D C
  AK: "[[d5,e5,g5]@8 f#5 g5 f#5 [g4,c5,e5,c6]@5 [e5,g5]@4 [a4,f#5]@4, b4, ~@8 [a4,d5]@3 ~@5 d5@8]/3", // Em7 C Em D D5
  AL: "~@3 g5 f#5@2 e5@2, [g4,a4,c5], e5@3 ~, ~@6 f#5 ~@9", AM: "[[d5,e5,g5]@8 [a4,d5,f#5]@3 [c5,e5,g5]@5, b4]/2",
  AN: "[[e5,g5,b5]@4 [f#5,a5]@4 ~ [c6,e6,g6]@2 ~ [d5,g5,a5,d6]@4, d5 c5, ~ b4@2 ~, ~@2 [e5,g5] ~]/2", // Em F#m C Dsus4 Em
  AO: "[[e5,c6] [d5,b5]@7, g5]/3", AP: "[e5,f#5,a5,c6] [d#5,f#5,a5,b5]",
  AQ: "[b4,d5,e5,g5]@3 ~ [b4,d5,e5,g5] ~ [b4,d5,e5,g5] [e5,g5] [a4,c5,e5,g5] ~ [c5,e5,g5]!2 [a4,c5,e5,g5] ~ [a4,c5,e5,g5]@2", // Em7 Em Am7 C Am7
  AR: "[[e5,c6]@6 ~@34 d6@3 c6@3 b5@2, g5, ~ d5@7, ~@2 b5@13 ~]/3", // C
  AS: "[b4,d5,e5,g5]@2 [b5,d6,e6] [d6,e6,g6] [b5,d6,e6,g6] ~ [b5,d6,e6,g6] [e6,g6] [a5,c6,e6,g6] ~ [c6,e6,g6]!2 [a5,c6,e6,g6] ~ [a5,c6,e6,g6]@2", // Em7 E7 Em7 Em Am7 C Am7
  AT: "[b4,d5,e5,g5]@2 [b5,d6,e6,g6]@4 [b5,d6,e6,g6]@2 [a5,c6,e6,g6] ~ [c6,e6,g6]!2 [a5,c6,e6,g6] ~ [a5,c6,e6,g6]@2", // Em7 Am7 C Am7
  AU: "[[e5,c6]@6 b5@26 [b5,d6]@3 [b5,e6]@2 ~ [b5,d6,g6]@2 [b5,d6,g6]@3 [b5,d6,e6]@2 ~ [b5,d6,g6]@2, g5, ~ d5@7]/3", // C Bm E5 G E7 G
  AV: "[g6@3 f#6@13, [a5,d6,a6]]/2", AW: "[g5,a5,c6,e6]",
})).s("gm_rock_organ").gain(0.08)

// chords · rock organ · "#Rtr.Orga" · soft notes
const rock_organ_soft = note(`<
  ~ A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@66 C@8 A@2 B@2 A@2 B@2 C@4 D@4 E@4 C@12 F@4 G@3 ~@66
>`.pickRestart({
  A: "[[b4,e5,g5]@7 [a4,c#5,f#5]@9]/2", B: "[[g4,b4,c5,e5]@7 [a4,c#5,d5]@9]/2",
  C: "[[b4,e5,g5]@7 [a4,c#5,f#5]@9 [g4,b4,c5,e5]@7 [a4,c#5,d5,f#5]@9, d5@33 ~@31]/4", // Em F#m Cmaj7 Dmaj7
  D: "[[b4,e5,g5]@7 [a4,c#5,f#5]@9 [g4,b4,c5,e5]@7 ~@8 e6, d5@33 ~@13 [a4,c#5,d5,f#5]@18, ~@62 d#6 ~]/4", // Em F#m Cmaj7 Dmaj7
  E: "[[b4,e5,g5,g6]@7 [a4,c#5,f#5]@9 [g4,b4,c5,e5]@7 [a4,c#5,d5,f#5]@9, d5@33 ~@31]/4", // Em F#m Cmaj7 Dmaj7
  F: "[[b4,e5,g5]@7 [a4,c#5,f#5]@9 [g4,b4,c5,e5]@7 [a4,c#5]@9, d5@33 ~@13 [d5,f#5]@8 ~@10]/4", // Em F#m Cmaj7 A D
  G: "[[b4,e5,g5]@7 [a4,c#5,f#5]@9 [g4,b4,c5,e5]@8, d5@11 ~@5]/3", // Em F#m Cmaj7
})).s("gm_rock_organ").gain(0.03)

// other · tenor sax · "#Brth.Ten"
const tenor_sax = note("<~@9 A@2 B@2 ~@7 C D E F G ~@179>".pickRestart({
  A: "[g4@2 f#4 ~ g4@2 f#4 ~ g4@2 f#4 ~ [g#4,a4] g4 f#4@10 ~@2 e4@2 g4@3 [d#4,e4]]/2", B: "[d4@15 ~]/2",
  C: "~@12 [g#4,a4,a#4] a4 g4 ~", D: "g4 f#4 g4 f#4 g4 f#4 a4 f#4", E: "~@2 a4@3 f#4@3 f#4@3 d4@2 e4@2 ~",
  F: "g4@2 ~ g4@2 ~ a4@2 g4@2 ~ e4@2 ~@2 c4, ~@7 a3", G: "c#4 d4@13 ~@2",
})).s("gm_tenor_sax").gain(0.48)

// bass · baritone sax · "Barit.Sax"
const bass_2 = note("<~@82 A B C D E B F G H ~@113>".pickRestart({
  A: "~@5 e1 g1 g#1", B: "a1 ~@5 a1 ~@5 a1 ~@3", C: "~@10 b2 c3 c#3@2 a2@2", D: "a3 ~@15", E: "~@10 a1@2 e2 f2 f#2@2",
  F: "~@4 a1 ~@5 c2@2 c#2@2 ~@2", G: "c#2@2 c2@2 c#2@2 c#2 ~@3 c2@6", H: "b1@2 b1 ~ b1@2 b1@10",
})).s("gm_baritone_sax").gain(0.42).pan(0.3)

// other · lead 2 sawtooth · "#Vlo.Lead" · B
const lead_2_sawtooth = note("<~@90 [[b0,b1]!3 [b0,b1]@5] ~@113>").s("gm_lead_2_sawtooth").gain(0.35)
// … 118 more lines

More by Tina Turner