Strudelify
The Gambler cover art

The Gambler

The Gambler

Kenny Rogers

KeyG♯ minorTempo90 bpm
0:00/0:00
// The Gambler — Rogers Kenny
// 90 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 19, 4/4 at bar 20, 2/4 at bar 37, ...) 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 79 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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
const piano = note(`<
  ~ A B C D E F G H I J C D E F G H I J K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG Z AA AB AH Z AI AJ AK
  AL AM AN@2 AO AP AQ AR AS@3 AT AU AV AW AX AL AM AN@2 AO AP AY AZ@3
>`.pickRestart({
  A: "d#3 ~@6 a#3 ~@6 c4@2, ~ g3@4 a#3@2 ~@9, ~ a#3 d#3@2 d#3@4, ~@3 d#4@5 ~@8, ~@3 g3 ~@2 g#3@2",
  B: "d#3@2 ~@5 a#3 ~ d#3 g#3 ~ d#4@2 a#3 ~, ~ g3@2 g3 g#2@3 ~, ~@3 a#3@2 a#3@2 ~@4 c4@3 ~@2, ~ d#4 ~@2",
  C: "[d#3,a#3,d#4,g4]", D: "[g#3,c4,d#4,g#4,c5] [d#3,g4]", E: "[d#3,a#3,d#4,g4,a#4]",
  F: "[d#3,a#3,d#4,g4]@2 [d4,f4,a#4] ~, ~ a#3", G: "[d#3,d#4,g4]", H: "[c4,d#4,g#4,c5]@8 [d#3,a#3,a#4]@7 ~",
  I: "[g#3,c4,d#4,g#4,c5] [d#3,d#4,g4]", J: "[a#3,d4,f4,a#4]@8 [d#3,a#3,d#4,g4]@7 ~",
  K: "[~@5 f4 d#4 ~ [d#3,a#3,d#4,g4]@16 [g#3,c4,d#4,g#4,c5]@8, d#3@7 ~@25, ~ d#4@2 ~@13, ~@3 f4@2 ~@27, ~@2 g4 ~@13]/2", // D# G#
  L: "[[d#3,g4] [d#3,a#3,d#4,g4,a#4]@2 [d#3,a#3,d#4,g4]]/2", // D#
  M: "[[d4,f4,a#4] ~ [d#3,d#4,g4]@4 [c4,d#4,g#4,c5]@2, a#3 ~@3]/2", N: "[d#3,a#3,a#4]@7 ~ [g#3,c4,d#4,g#4,c5]@8",
  O: "[d#3,d#4,g4] [a#3,d4,f4,a#4]", // D# A#
  P: "[d#3,a#3,d#4,g4]@7 ~@7 [d#4,g#4,a#4]@2, ~ d#3, ~@2 a#3!2, ~@5 g4@3, ~@5 [d#4,a#4]@2 ~", // D# D#sus4 D#5
  Q: "~@2 a#4@2 ~@2 d#4@2 ~@2 [g#3,d#4]@3 ~ [a#3,d#4]@2, d#3 g#2, ~ d#4@2 ~@2 c4@3, ~@2 g4 ~ [f4,a#4]@4 ~@5 g#3@3", // G#5 D#5 A#5
  R: "~@6 d#4@2 ~@2 [g#3,d#4]@3 ~ [a#3,d#4] ~, d#3@8 g#2@7 ~, ~ g4@3 ~@4, ~@2 [d#4,a#4]@3 [f4,a#4]@3 ~@5 g#3@2 ~, ~@4 a#3@4 ~@2 c4@5 ~", // G#5 D#5 A#5
  S: "a#3@2 [d#4,g4,a#4]@2 a#3 [f4,a#4] ~@2 a#3@2 ~@2 d#4@3 ~, d#3@15 ~, ~@8 [g4,a#4]@7 ~, ~@2 d#4 ~, ~@10 a#3@5 ~", // D# A#5 Gm
  T: "~@2 [a#3,d4,f4] ~ [c4,d#4,f4] ~ f3 ~ [d#4,g4,a#4] ~ [d#4,g4,a#4]@2 [f4,g#4,a#4]@4, [a#2,f3]@7 ~ [d#3,a#3]@4 ~@4, ~@5 [a#3,d4,f4]@2 ~@9", // A# F7 D# A#7 A#5 D#5 A#
  U: "~@2 a#3@2 [f4,a#4]@2 d#4 ~@3 [g#3,d#4]@2 ~ [a#3,d#4]@2 ~, [d#3,d#4,g4,a#4]@4 ~@4 g#2@7 ~, ~@10 c4@5 ~, ~@12 g#3@3 ~", // A#5 G#5 D#5 D#
  V: "~@2 d#4@2 ~@2 a#3 ~@3 [d#4,g4,a#4]@2 [d#4,g#4,a#4]@2 [d#4,g#4,a#4]@2, d#3@7 ~ d#3@4 ~@4, ~@2 [g4,a#4]@5 ~@9, ~@2 a#3 ~@5, ~@5 d#4@2 ~@9", // D# D#sus4 Gm
  W: "~@2 d#4@2 ~ d#4@2 f3 ~@6 d4@2, d#3 a#2, ~@2 [g4,a#4]@6 ~@2 [a#3,d4]@3 a#3@3, ~@2 f4@2 ~ f4@3, ~@3 f3", // Gm A#
  X: "~@2 d#5 d#5@2 d#5@3 ~@4 a#4@2 [f4,a#4]@2, d#3, a#3@4 g4 a#3@3, ~ g4@3 d#5@4, ~@5 a#4@7 [d#4,g4]@4", // A#5 D#
  Y: "[d#4,g4,a#4]@2 a#4 [f4,a#4] ~ a#3 d#4 ~, [d#3,a#3]@4 d#3@3 ~, ~ [d#4,g4] [d#4,g4,a#4] ~", Z: "[e3,b3,e4,g#4]",
  AA: "[a3,c#4,e4,a4,c#5] [e3,g#4]", AB: "[e3,b3,e4,g#4,b4]", AC: "[e3,b3,e4,g#4]@2 [d#4,f#4,b4] ~, ~ b3",
  AD: "[e3,e4,g#4]", AE: "[c#4,e4,a4,c#5]@8 [e3,b3,b4]@7 ~", AF: "[a3,c#4,e4,a4,c#5] [e3,e4,g#4]",
  AG: "[b3,d#4,f#4,b4]@8 [e3,b3,e4,g#4]@7 ~", AH: "[e3,b3,e4,g#4]@2 [d#4,f#4,b4] ~, ~@8 b3@7 ~",
  AI: "[a2,c#4,e4] [e3,g#3,b3,e4], a3 ~@3", AJ: "[a2,a3,c#4,e4] [e3,g#3,b3,e4]", AK: "[b2,f#3,b3,d#4]@8 ~ [e4,e5]!7",
  AL: "~@3 [e4,a4,b4] ~ b4 ~ e4, e3!2, b3!2 ~@2, ~@2 g#4@6 ~@2 g#4 ~ [f#4,b4]@4, ~ [e4,b4]@2 ~@2 e4@2 ~", // Esus4 B5 E5
  AM: "~@2 [a3,e4]@3 ~ [b3,e4]@2 ~@6 e4@2, a2@8 ~@2 [e4,b4]@3 [f#4,b4]@3, ~ c#4@3 ~ g#4@3, ~@5 a3@3 e3@8, ~@3 b3", // A5 E5 B5
  AN: "[~@2 [a3,e4]@3 ~ [b3,e4] ~ b3@2 [e4,g#4,b4]@2 b3 [f#4,b4] ~@2 b3@2 ~@2 e4@3 ~@3 [b3,d#4,f#4] ~ [c#4,e4,f#4] ~ f#3 ~, a2@7 ~@9 e4@4 ~@12, ~@2 c#4@5 ~@9 [g#4,b4]@7 ~@9, ~@5 a3@2 ~ e3@15 ~ [b2,f#3]@7 ~, ~@18 b3@5 ~@6 [b3,d#4,f#4]@2 ~]/2", // A5 E5 E B5 B F#7 G#m B5 …
  AO: "[e4,g#4,b4] ~ [e4,g#4,b4]@2 [f#4,a4,b4]@4 ~@2 b3@2 [f#4,b4]@2 e4 ~, [e3,b3] ~ [e3,e4,g#4,b4] ~", // E B7 B5 E5 E
  AP: "~@2 [a3,e4]@2 ~ [b3,e4]@2 ~@3 e4@2 ~@2 b3 ~, a2@7 ~@5 b3@2 ~@2, ~@2 c#4@5 ~@3 [g#4,b4]@5 ~, ~@4 a3@3 ~ e3@7 ~, ~@13 e4@2 ~", // A5 E5 G#m
  AQ: "~@2 [e4,g#4,b4]@2 [e4,a4,b4]@2 [e4,a4,b4]@2 ~@2 e4@2 ~ e4@2 f#3, e3 ~ e3@2, ~@5 [g#4,b4]@3, ~@3 f#4", // E Esus4 G#m
  AR: "~@3 d#4 [e3,b3,e4,g#4]@4, b2 ~, ~ f#4@3 ~@4, ~@2 [b3,d#4]@3 b3@3 ~@8, ~ f#3 ~@2", // E B
  AS: "[~@10 e4!2 c#4@2 b3@7 ~@5 g#4!2 f#4@2 e4@11 ~@7]/3",
  AT: "~@12 d#5 f#5 d#5 b4, ~@9 b3@6 ~, ~@5 f#4@3, ~@11 b4@3 ~@2",
  AU: "[b3,e4,g#4]@3 ~ [a3,c#4,e4]@2 ~@2 [g#3,e4]@7 ~, ~@2 b3 ~", AV: "[a3,c#4,e4] ~",
  AW: "[e4,g#4] ~ [a3,c#4] ~ [e4,g#4]@4, b3 ~@3", AX: "[b2,b3,d#4]@3 ~@5",
  AY: "~@2 [e4,g#4,b4]@2 [e4,a4,b4]@2 [e4,a4,b4]@2 ~@2 e4@2 ~ e4@2 f#3, e3@4 ~@4 e3@7 ~, ~@10 [g#4,b4]@5 ~, ~@12 f#4@3 ~", // E Esus4 G#m
  AZ: "[~@2 [d#4,f#4]@2 ~ f#4 [f#4,b4] [e3,g#4,b4]@27 ~@14, b2@7 ~@41, ~@2 [f#3,b4]@5 ~@41, ~@4 d#4@3 e4@25 ~@16]/3", // D#m B5 E B5
})).s("gm_piano").gain(0.64).pan(0.2)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@4 A ~@2 B C D ~@2 A ~@2 B C D ~@3 E ~ F@2 G H ~@2 I ~@3 J ~@4 K ~@2 L M N ~@2 K ~@8 O ~@2 P ~@7 Q R S ~@2 O ~@2 P
  ~@4
>`.pickRestart({
  A: "~ [a#3,d#4,a#4]", B: "[a#3,a#4]", C: "g#3@8 [d#4,g4]@7 ~", D: "~ [a#3,a#4]", E: "[a#3,d#4,a#4] ~",
  F: "[~ [a#3,a#4]@2 g#3]/2", G: "[d#4,g4]@7 ~@9", H: "[a#3,a#4] ~", I: "~@13 d#4 ~@2", J: "a#3 ~@7", K: "~ [b3,e4,b4]",
  L: "[b3,b4]", M: "a3@8 [e4,g#4]@7 ~", N: "~ [b3,b4]", O: "~@5 e4 ~@10", P: "~@4 b3 ~@3", Q: "~@8 [b3,e4,g#4]@7 ~",
  R: "~ e4 b3@2", S: "[f#3,f#4]@5 ~@11",
})).s("gm_piano").gain(0.32).pan(0.2)

// bass · acoustic bass · "BASS"
const bass = note(`<
  ~@11 A B C D C@2 A E F G H I J K L M N O P Q R P S T H U V W X Y Z AA@2 AB AC AD AE AF AG AH ~@2 AC AI AJ AK AL AM AN
  AO AP ~@7 AC AI AJ AQ AL AM AR AS@3
>`.pickRestart({
  A: "d#2@7 ~ d#2@8", B: "g#1@7 ~ d#2@6 ~@2", C: "d#2@7 ~ d#2@7 ~", D: "d#2 a#1", E: "a#1@4 d#2@3 ~",
  F: "d#2@7 ~ d#2@4 a#1@4", G: "d#2@3 ~ f2@2 g2 ~ g#2@4 g#2@3 ~", H: "d#2 a#1 d#2 a#1", I: "d#2@2 a#1@2 d#2@2 d2 c2",
  J: "a#1@2 f1 a#1 d#2@2 a#1@2", K: "d#2@4 f2@2 g2 ~ g#2@4 g#2@3 ~", L: "d#2@3 ~ d#2@3 ~ g#2@4 d#2@2 g#2@2",
  M: "d#2@4 a#1@2 d#2@2 a#1@4 f1@2 a#1 ~", N: "d#2@3 ~ d#2@2 a#1 ~ d#2@4 a#1@4", O: "d#2@4 f2@2 g2 ~ g#2@4 g#1@2 g#2@2",
  P: "d#2@2 a#1 d#2 g#1@2 g#2@2", Q: "d#2@4 a#1@3 ~ d#2@4 d#2 ~ c2@2", R: "a#1@4 a#2 a#1 a#2 ~ d#2@4 g#1@4",
  S: "d#2@2 a#1 d#2 d#2@2 g#1@2", T: "d#2@4 d#2 ~ d2@2 a#1@4 a#2@2 a#1@2", U: "d#2@4 a#1@4 d#2@2 a#1@2 d#2@2 e2 ~",
  V: "e2@4 b1@3 ~ e2@4 b1@2 e2@2", W: "a1@4 a2@4 e2@3 ~ e2@3 ~", X: "e2 b1 e2 b1", Y: "e2@4 d#2@2 c#2@2 b1@3 ~ b1@3 ~",
  Z: "e2@4 a1@3 ~ e2@3 ~ e2@3 ~", AA: "a1@4 a2@2 a1@2 e2@3 ~ e2@3 ~", AB: "b1@4 b2@2 b1@2 e2@3 ~ e2@3 ~",
  AC: "e2@4 b1@4 e2@4 f#2@2 g#2 ~", AD: "a2@4 e2@2 a2@2 e2@4 b1@3 ~", AE: "e2@4 b1@4 e2@4 b1@3 ~",
  AF: "e2@2 d#2 c#2 b1@2 f#1 b1", AG: "e2@7 ~", AH: "a1@7 ~ e2@8", AI: "a2@2 a1 a2 e2@2 b1 e2",
  AJ: "a1@4 a2@4 e2@4 b1@3 ~", AK: "e2@4 e2 ~ c#2@2 b1@4 b2 b1 b2 ~", AL: "e2@2 a1@2 e2@2 b1 e2",
  AM: "a1@2 a2@2 e2@2 b1 e2", AN: "e2@4 a1@4 e2@4 e2 ~ d#2@2", AO: "b1@2 b2 b1 e2@2 b1@2", AP: "e2@15 ~",
  AQ: "e2@4 e2 ~ c#2@2 b1@4 b2 b1 b2@2", AR: "e2@4 a1@4 e2@4 e2 ~ d#2 ~", AS: "[b1@4 b2@2 b1 e2@29 ~@12]/3",
})).s("gm_acoustic_bass").gain(0.57)

// chords · acoustic guitar nylon · "RHYTHM GUITAR"
const acoustic_guitar_nylon = note(`<
  ~ A B C D@2 E F G H I C D@2 E F G H I J@2 K@2 L@2 M N O@2 P Q R P S T U@2 V W@2 X Y Z AA AB V W@2 AC AD AE AF AG AH AI
  AJ@2 AK AI AL AM AN AO ~ AP ~@4 AH AI AJ@2 AK AI AL AQ@2 ~
>`.pickRestart({
  A: "~@7 a#3 ~@6 d#4@2, d#3@2 g4@2 ~ g#3@3, ~@2 a#3@4 c#4@2 ~ d#3@7, ~@3 c#4@2 d#3@3 g#2@8, ~@3 c4",
  B: "~@7 c#4 ~ d#3 ~@4 g#3 ~, d#3@8 g#2@7 ~, ~ a#3@2 a#3 ~ g#3@2 ~, ~@3 c#4@2 c#4@2 ~@4 c4@2 c4@2 ~, ~@4 g4@4 ~@4 d#4@3 ~",
  C: "~@7 d#3, d#3@5 d#3@5 d#3@3 d#4@3, ~@2 a#3@2 a#3@5 a#3@7, ~@3 d#4@5 d#4@4 g4@4, ~@6 g4@5 g#4@5",
  D: "[~@7 g#3 ~@2 a#3@2 ~@19 d#3, g#3@6 c4@2 ~@5 a#3@4 ~ a#3@4 a#3@4 a#3@4 a#3@2, ~@2 g#2@6 ~@6 g4@3 ~@11 f4@4, ~@3 c4@2 d#4@3 ~@4 d#4@3 d#4@2 ~@3 d#4@7 d#4@2 d#4@3, ~@4 d#3@4 d#3@8 d#3@7 d#3@8 ~]/2",
  E: "~@6 d#3@2 ~@7 d4, d#3@5 g4@3 ~@6 c4@2, ~@2 a#3@6 a#3@5 a#3@3, ~@3 d#4@5 ~@2 d4@2 d4@3 ~, ~@4 f4@4 ~@3 f4@5",
  F: "~@7 a#3, d#3@3 d#4@3 d#4@2, ~@4 g3@3 d#3@9, ~@5 a#3@5 a#3@4 ~@2, ~ g3",
  G: "d#3 ~@5 c4@2 ~@6 d#3@2, ~ g#3@4 g#3@3 d#3@5 d#4@3, ~ c4!2 ~@3 f4@2, ~@3 d#4@5 ~@2 g4@6",
  H: "~@7 g#3 ~@6 a#3@2, ~ g#3@6 ~ d#3@8, ~@2 c4!2 ~ g3@3, ~@5 d#4@3 ~@3 a#3@3 ~@2, ~@3 d#4",
  I: "~@6 a#3@2 ~@2 [a#3,d#4]@2 a#3@2 ~ g4, a#2 ~, ~ f3@7 d#3@8, ~@2 a#3@3 d4@3 ~@4 d#4@4, ~@3 d4 f4@4 ~@6 [a#3,f4]@2", // D#5 A#5
  J: "[~@4 a#4 g#4 g4 ~@15 d#3@2 ~@7 g#3, a#3@7 ~ d#3@5 d#3@5 d#3@3 d#4@3 ~@2 g#2@6, ~ d#4@4 ~@5 a#3@2 a#3@5 a#3@7 g#3@6 c4@2, ~@2 g4@3 ~@6 d#4@5 d#4@4 g4@4 ~@3 c4@2 d#4@3, ~@3 g#4@2 ~@9 g4@5 g#4@5 ~@4 d#3@4]/2",
  K: "[~@2 a#3@2 ~@19 d#3 ~@6 d#3@2, d#3@7 d#4@2 ~@3 d#4@7 d#4@2 d#4@3 ~@3 d#4@5, ~@4 d#4@2 g4@2 d#3@7 d#3@8 ~ d#3@5 g4@3, ~@5 a#3@4 ~ a#3@4 a#3@4 a#3@4 a#3@2 ~@2 a#3@6, ~@5 f4 ~ f4]/2",
  L: "[~@7 d4 ~@14 a#3@2 d#3 ~@5 c4@2, a#3@5 a#3@3 d#3@6 d#4@6 d#4@4 ~@3 d#4@5, ~@2 d4@2 d4@2 c4@2 ~@4 g3@3 d#3@9 ~@8, ~@3 f4@5 ~@5 a#3@5 a#3@4 ~@4 c4@2 c4@2 ~@2, ~@16 g3@8 ~ g#3@4 g#3@3]/2",
  M: "~@6 d#3@2 ~@7 g#3, d#3@5 d#4@3 ~ g#3@6 ~, ~@2 g4@6 ~@5 d#4@3, ~@2 f4@2 ~@2 c4!2",
  N: "~@3 a#3 ~@3 a#3, d#3 a#2, ~@2 g3@6 ~ f3@7, ~@3 a#3@3 ~@4 a#3@3 d4@3, ~@4 d#4@4 ~@3 d4 f4@4",
  O: "[~@2 [a#3,d#4]@2 a#3@2 ~ g4 ~@2 d#4@2 ~@2 [d#4,g4]@4 a#3@2 a#3@2 [a#3,d#4,g4]@2 ~@2 g#3@2 ~@2 [g#3,c4,d#4]@2, d#3@8 d#3@16 g#2@5 g#2@3, ~@4 d#4@4 ~@2 g4@3 a#3@5 ~@8 [c4,d#4]@4 ~@2, ~@3 [a#3,f4] a#3@2 d#4 ~@2 [d#4,g4]@2 ~@3 g#3 ~]/2", // D#5 D# G# Cm A#5 D#
  P: "~ g3 ~ [g3,a#3,d#4] ~ g#3 ~ [g#3,c4,d#4], d#3@4 g3@2 ~@4 [c4,d#4]@3 g#2@3, ~@2 [a#3,d#4]@3 d#3@3 g#2@4 g#3@2 ~@2", // D# G# Cm D#5
  Q: "~ [g3,a#3] ~@3 [g3,a#3,d#4]@2 [g3,a#3,d#4], d#3@2 [g3,a#3] [g3,a#3,d#4]@2 ~@3, ~@2 d#4@3 d#3@3 d#3@8", // Gm D# Gm D#
  R: "~ [a#3,d4] ~ [a#3,d4,f4] ~ [g3,a#3,d#4] [g#3,c4,d#4]@2, a#2 ~, f3@2 [a#3,d4] ~@5, ~@2 f4@3 f3@3 d#3@4 ~@4", // A# D# G# A#
  S: "~ g3 ~ [g3,a#3,d#4] ~@2 d#3 [g#3,c4,d#4], d#3@2 g3 ~@2 [g3,a#3,d#4]@2 ~, ~@2 [a#3,d#4]@3 d#3@3 d#3@4 ~@4", // D# G# D# D#5
  T: "~@3 [g3,a#3,d#4] ~ [a#3,d4,f4] ~ [a#3,d4,f4], d#3@4 d#3@4 [a#2,f3]@5 [a#2,f3]@3, ~ [g3,a#3,d#4]@2 ~@3 [a#3,d4,f4] ~", // D# A# A#5 D# A#
  U: "[~@2 g3@2 ~@6 g3@2 ~@6 g3@2 ~@8 d#3@2 [g3,a#3,d#4] ~, d#3@4 g3@2 [g3,a#3,d#4]@4 [a#3,d#4]@3 d#3@3 d#3@4 g3@2 [g3,a#3,d#4]@4 [g3,a#3,d#4]@4 ~@2, ~@2 [a#3,d#4]@3 d#3@3 d#3@4 g3@2 [g3,a#3,d#4]@4 [a#3,d#4]@3 d#3@3 d#3@4 ~@4]/2", // D# D#5 D# D#5 D# D#5
  V: "~@7 e3, e3@5 e3@5 e3@3 e4@3, ~@2 b3@2 b3@5 b3@7, ~@3 e4@5 e4@4 g#4@4, ~@6 g#4@5 a4@5",
  W: "[~@7 a3 ~@2 b3@2 ~@19 e3, a3@6 c#4@2 ~@5 b3@4 ~ b3@4 b3@4 b3@4 b3@2, ~@2 a2@6 ~@6 g#4@3 ~@11 f#4@4, ~@3 c#4@2 e4@3 ~@4 e4@3 e4@2 ~@3 e4@7 e4@2 e4@3, ~@4 e3@4 e3@8 e3@7 e3@8 ~]/2",
  X: "~@6 e3@2 ~@7 d#4, e3@5 g#4@3 ~@6 c#4@2, ~@2 b3@6 b3@5 b3@3, ~@3 e4@5 ~@2 d#4@2 d#4@3 ~, ~@4 f#4@4 ~@3 f#4@5",
  Y: "~@7 b3, e3@3 e4@3 e4@2, ~@4 g#3@3 e3@9, ~@5 b3@5 b3@4 ~@2, ~ g#3",
  Z: "e3 ~@5 c#4@2 ~@6 e3@2, ~ a3@4 a3@3 e3@5 e4@3, ~ c#4!2 ~@3 f#4@2, ~@3 e4@5 ~@2 g#4@6",
  AA: "~@7 a3 ~@6 b3@2, ~ a3@6 ~ e3@8, ~@2 c#4!2 ~ g#3@3, ~@5 e4@3 ~@3 b3@3 ~@2, ~@3 e4",
  AB: "~@6 b3@2 ~@2 [b3,e4]@2 b3@2 ~ g#4, b2 ~, ~ f#3@7 e3@8, ~@2 b3@3 d#4@3 ~@4 e4@4, ~@3 d#4 f#4@4 ~@6 [b3,f#4]@2", // E5 B5
  AC: "~@6 e3@2 ~@6 c#4 d#4, e3@5 g#4@3 ~@8, ~@2 b3@6 b3@5 b3@2 ~, ~@3 e4@5 ~@2 d#4@2 d#4@3 ~, ~@4 f#4@4 ~@3 f#4@4 ~",
  AD: "[e3,g#3,b3,e4]@3 ~", AE: "[a2,a3,c#4,e4]@7 ~ [e3,g#3,e4]@8, ~@2 b3 ~", AF: "[a2,a3,c#4,e4] [e3,g#3,b3,e4]",
  AG: "~@9 e3@2 ~@2 e3@2 ~, [b2,b3,d#4,f#4]@15 ~, ~@8 e4@3 e3@2 ~@3, ~@12 e4@3 ~", // B
  AH: "~ e4 ~ [e4,g#4]@2 b3!2 [b3,e4,g#4], e3, b3@2 e4 ~@2 [e4,g#4]@2 ~, ~@2 g#4@3 b3@5 ~@6", // E
  AI: "~ a3 ~ [a3,c#4,e4] ~ g#3 ~ [g#3,b3,e4], a2@2 a3 ~ e3@2 g#3 ~, ~@2 [c#4,e4]@3 a2@3 ~@2 [b3,e4]@3 e3@3", // A E C#m E5
  AJ: "[~ a3 ~ [a3,c#4,e4] ~ [g#3,b3] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~ [b3,d#4] ~ [b3,d#4,f#4], a2@2 a3 ~ e3@2 [g#3,b3] [g#3,b3,e4]@2 ~@3 f#3@2 [b3,d#4] ~, ~@2 [c#4,e4]@3 a2@3 ~@2 e4@3 e3@3 e3@8 b2@8, ~@26 f#4@3 f#3@3]/2", // A G#m E B G#m E B C#m
  AK: "~ [g#3,b3,e4] [a3,c#4,e4]@2 ~ g#3 ~ [g#3,b3,e4], e3@2 ~@2 e3@2 g#3 ~, ~@10 [b3,e4]@3 e3@3", // E A E E5
  AL: "~@2 e3 [a3,c#4,e4] ~@3 [g#3,b3,e4], e3 ~ e3!2, ~ [g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@2 ~", // A E
  AM: "~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ b3 ~ [b3,e4,g#4], [b2,f#3]@4 [b3,d#4,f#4]@2 ~@4 [e4,g#4]@3 e3@3, ~@5 [b2,f#3]@3 e3@4 b3@2 ~@2", // B E B5 B E B5
  AN: "[e3,b3,e4,g#4]@13 ~@3", AO: "a3@7 ~ [e4,g#4]@7 ~", AP: "[e4,g#4]@4 ~@4 [b3,d#4]@5 ~@3",
  AQ: "[~@2 f#3@2 ~@2 [b3,d#4] e3@20 ~@5, b2@4 f#3@3 ~@25, ~@2 [b3,d#4]@3 b2@2 ~@25]/2", // B
})).s("gm_acoustic_guitar_nylon").gain(0.58).pan(0.6)

// other · electric guitar jazz · "LEAD GUITAR"
const electric_guitar_jazz = note(`<
  ~ A B C D E@3 F G H C D E@3 F G I@3 J@2 K@2 L M N ~@9 O P Q@3 R S T O P U@2 V W ~ X ~@23 Y@2 ~
>`.pickRestart({
  A: "d#3@2 f3 g3 c3@3 ~", B: "d#3@4 f3@2 g3 ~ g3 f3 d#3 ~ d#3@3 ~", C: "d#3@7 ~", D: "g#3@4 c4@4 d#4@5 ~ d#4 d4",
  E: "[d#4@13 ~ d#3@8 ~@4 a#3@2 d4 c4 a#3@15 ~ g3@2]/3", F: "g#3@8 a#3@7 ~", G: "c4@7 ~ d#4@6 ~@2",
  H: "d4 c4 a#3@2 ~ g3 a#3 ~, ~@4 d#3@3 ~",
  I: "[d4@2 c4@2 a#3@4 ~@2 g3@2 a#3@2 ~@2 g4@7 ~ d#3@14 ~@2 g#3@4 c4@4, ~@4 d#3@3 f4@4 ~@13]/3",
  J: "[d#4@5 ~ d#4 d4 d#4@13 ~ d#3@8 ~@2]/2", K: "[~@2 a#3@2 d4 c4 a#3@15 ~ g3@2 g#3@8]/2", L: "a#3@7 ~ c4@7 ~",
  M: "d#4@3 ~ d4 c4 a#3@2", N: "~ g3 a#3 f4 ~@4, d#3@3 ~@5", O: "e3@7 ~", P: "a3@4 c#4@4 e4@5 ~ e4 d#4",
  Q: "[e4@13 ~ e3@8 ~@4 b3@2 d#4 c#4 b3@15 ~ g#3@2]/3", R: "a3@8 b3@7 ~", S: "c#4@7 ~ e4@6 ~@2",
  T: "d#4 c#4 b3@2 ~ g#3 b3 f#4, ~@4 e3@3 ~", U: "[e4@13 ~ e3@8 ~@4 b3@2 d#4 c#4 b3@2]/2", V: "e3", W: "a3 b3",
  X: "~@9 e5@3 ~ e5 b5 g#5, ~@6 g#5 ~", Y: "[[b3,d#4]@5 ~@2 f#4@25]/2",
})).s("gm_electric_guitar_jazz").gain(0.5).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@11 A@8 B C@7 D E@9 F@13 G H A F@8 C I C I C I C I F@7 J ~@2>".pickRestart({
  A: "x!2", B: "x ~ x!2", C: "x!4", D: "x!3 ~", E: "x ~@2 x!2 ~@3", F: "x ~@3 x ~@2 x", G: "x ~@6 x!2 ~@5 x ~",
  H: "x ~@7 x ~@6 x", I: "x ~@3 x ~@3 x ~@3 x ~@2 x", J: "x ~@6 x ~@8",
})).gain(0.5).pan(0.3)

// drums · rim
const rim = s("rim").struct("<~@19 [~@3 x] [~ x ~ x]!7 [~ x ~@2] ~@51>").gain(0.5).pan(0.3)

// drums · snare
const snare = s("sd").struct("<~@27 A B@8 C B@12 ~@3 D B@8 ~@7 D B@7 E ~@2>".pickRestart({
  A: "~@7 x ~@4 x ~@3", B: "~ x ~ x", C: "~@3 x ~ x!2 ~", D: "~@15 x", E: "~@3 x ~@4",
})).gain(0.5).pan(0.3)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@27 A ~@8 B ~@15 C ~@15 D ~@7 E ~@2>".pickRestart({
  A: "~@3 x ~ x ~@10", B: "~@2 x!2 ~ x ~@7 x ~@2", C: "~@13 x!2 ~", D: "~@7 x ~@5 x!2 ~", E: "~@4 x!2 ~@10",
})).gain(0.1).pan(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~@8 B ~@15 C ~@15 D ~@10>".pickRestart({
  A: "~@3 x ~@4", B: "~@14 x!2", C: "~@10 x!2 ~@4", D: "~@5 x ~@2",
})).gain(0.5).pan(0.3)

// drums · hihat
const hihat = s("hh").struct("<A B@18 C A@29 D@3 E A@8 B@7 F A@7 G ~@2>".pickRestart({
  A: "x!4", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x!2 ~ x ~", D: "~ x ~ x", E: "~@4 x ~@5 x ~@2 x ~@2", F: "~ x ~@3 x ~ x",
  G: "x!2 ~@2",
})).gain(0.5).pan(0.3)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@19 A B C B C B C B C B C B C B C B C D E C E C E C E C E C E C ~@3 F E C E C E C E C ~@7 G E C E C E C E H ~@2
>`.pickRestart({
  A: "~@4 x!2 ~@4 x ~@3 x ~", B: "~ x ~@3 x ~ x", C: "~ x ~ x ~ x ~ x", D: "~ x ~@3 x ~@2", E: "~ x ~ x ~ x ~@2",
  F: "~@9 x ~@2 x ~@3", G: "~@5 x!2 ~@9", H: "~ x ~ x ~@4",
})).gain(0.15).pan(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@27 A ~@24 B ~@15 C ~@7 D ~@2>".pickRestart({
  A: "~ x ~@2", B: "~@9 x ~@2 x ~@3", C: "~@3 x", D: "~@5 x ~@10",
})).gain(0.5).pan(0.3)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@19 A B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ C D ~ D ~ D ~ D ~ D ~ D ~ E ~@2 D@2 ~ D ~ D ~ D ~@8 F D ~ D ~ D ~ D A ~@2
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@4", C: "~@3 x ~@3 x", D: "~@7 x", E: "x", F: "~@7 x!2 ~@7",
})).gain(0.5).pan(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@27 A ~@8 B ~@15 C ~@15 D ~@7 E ~@2>".pickRestart({
  A: "x!2 ~@14", B: "~@3 x", C: "~@3 x ~@4", D: "~ x", E: "~ x ~@6",
// … 11 more lines

More by Kenny Rogers