Strudelify
She's Not There cover art

1988 · Moonflower

She's Not There

Santana

KeyA minorTempo128 bpm
0:00/0:00
// She's Not There — Santana
// 128 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// 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(128/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.

// bass · electric bass finger · "She's Not"
const bass = note(`<
  A@2 B@5 C B@3 D B E F G H I J@3 K L M N O P Q B@3 R B@2 S B@3 S B E F G H I J@3 K T M N O P U B V W B X@2 Y Z@2 E F G
  H I AA AB@3 L AC N O P U
>`.pickRestart({
  A: "[~@8 a1@2 ~ a1 d2 f#2 e2@2, ~@7 a2@3 e2@2 ~@4]/2", B: "a1@2 e2 a1 d2 f#2 e2@2", C: "a1@4 c2@2 e2@2 f2@4 e2@3 ~",
  D: "a1@4 c2@2 e2 ~ e2@7 ~", E: "f#2@5 ~ f#2@2 f2@5 ~ f2@2", F: "a1@3 c2 e2@2 c2@2", G: "e2@5 ~ e2@2 b1@4 e2@2 b1@2",
  H: "a1@5 ~ c2@2 e2@4 c2@2 e2@2", I: "f#2@5 ~ f#2@2 f2@6 e2@2",
  J: "[c2@5 ~ c2@2 c2@5 ~@3 e1@2 e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~, ~@14 e2@33 ~]/3",
  K: "a1@2 a1 ~ a1@2 a1 ~ d2@2 d2 ~ e2@4", L: "a1@2 a1 ~ a1@2 a1@2 f2@2 f2 ~ f2@2 f2@2",
  M: "a1!2 ~ a1 d2!3 f#2, ~ a2 ~@2", N: "a1 ~ a1@2 ~@2 a1@2 f2@2 f2 ~ f2 ~ f2@2, ~ a2 ~@2",
  O: "a1@2 a1@2 a1 ~ a1@2 d2@2 d2@2 f#2 ~ f#2@2", P: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  Q: "a1 ~ a1@2 c2@2 e2@2 d2@2 c2@2 e2@2 c2@2", R: "a1@2 e2 a1 d2 f#2 e2 f#2", S: "a1@2 c2 e2 f2!2 e2!2",
  T: "a1@2 a1 ~ a1@2 a1@2 f2@2 f2 ~ f2@2 e2@2", U: "a1 ~@7", V: "a1 ~ a1@2 e2@2 a1@2 d2@2 f#2@2 e2@4",
  W: "a1@4 e2@2 a1@2 d2 ~ f#2@2 e2@4", X: "a1@4 e2@2 a1@2 d2@2 f#2@2 e2@3 ~", Y: "a1@4 e2@2 a1@2 d2@2 f#2 ~ e2@4",
  Z: "[a1@2 ~@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1 ~ a1@2, ~ a2@15]/2",
  AA: "c2@5 ~ c2@2 c2@4 d2@2 d#2@2",
  AB: "[e1@2 e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ a1@2 a1 ~ a1@2 c2@2 d2@2 d2 ~ e2@4, e2@11 ~@5]/3",
  AC: "a1!2 ~ a1 d2!2 f#2 e2, ~ a2 ~@2",
})).s("gm_electric_bass_finger").gain(0.33)

// other · rock organ
const rock_organ = note(`<
  ~@5 A@2 B ~ C@2 D E F G H@2 I@4 J K@2 L M N ~@5 O@2 P ~ Q@2 B E F G H@2 R@4 J K@2 L M N ~@9 S F G H@2 T@4 J K@2 L U V
  ~
>`.pickRestart({
  A: "[~@2 a5@2 c6@2 [d#6,e6] ~ d6@2 c6 ~ a5 ~ c6@8 d6@4 e6 ~@5]/2", B: "~@6 a5 ~ c6@2 a5 ~ g5@2 a5 ~",
  C: "[~@2 a5@2 c6@2 e6 ~ d6@2 c6 ~ d6 ~ e6@8 g6@4 a6@4 ~@2, ~@14 d#6 ~@17]/2", D: "~@3 a5 ~@2 a5 c6@3 a5 ~ a5@4",
  E: "~@10 a5 ~ a5@2 c6 ~", F: "d6@3 ~ d6@3 ~ d6@3 ~ e6@4", G: "c6@2 a5 ~@7 a5 ~ a5 ~ a5@2",
  H: "[g5@2 e5 ~@5 g5@2 e5 ~@2 e5@6 ~@9 a5@2 c6 ~]/2",
  I: "[d6@3 ~ d6@3 ~ d6@2 ~@2 e6 ~ g6@4 e6@2 ~@6 e6@2 g6 ~ g#6@19 ~ a6 ~ a6@2 g6 ~ a6@2 g6 ~ a6@2 g6 ~]/4",
  J: "a6@2 g6@2 e6@2 [b5,c6,d6] ~@3 a6 ~ a6@2 g6 ~", K: "[a6@2 a6 ~@3 a6 ~ a6!3 ~ a6 ~ a6@9 ~@3 a6 ~ a6@2 a6 ~]/2",
  L: "a6@2 g6 ~ a6 ~@5 a6 ~ a6 ~ a6 ~", M: "a6@2 g#6 ~ a6@2 ~@4 a6 ~ a6 ~ a6 ~", N: "a6, g#6 ~@15",
  O: "[~@2 a5 ~ c6@2 e6 ~ d6@2 ~@2 a5 ~ c6@8 d6@4 ~@6]/2", P: "~@6 a5 ~ c6@2 ~@2 g5@2 ~@2",
  Q: "[~@2 a5@2 c6@2 e6 ~ d6@2 c6@2 d6 ~ e6@8 g6@4 a6 ~@5]/2",
  R: "[d6@3 ~ d6@3 ~ d6@2 ~@2 e6 ~ g6@4 e6@2 ~@6 e6@2 g6 ~ g#6@19 ~ g#6 ~ a6@2 g#6 ~ a6@2 g#6 ~ a6@2 g6 ~]/4",
  S: "~@14 c6 ~",
  T: "[d6@3 ~ d6@3 ~ d6@2 ~@2 e6 ~ g6@4 e6@2 ~@6 e6@2 g6 ~ g#6@19 ~ g#6 ~ a6@2 g6 ~ a6@2 g6 ~ a6@2 g6 ~]/4",
  U: "a6@2 g6 ~ a6@2 ~@4 a6 ~ a6 ~ a6 ~", V: "a6",
})).s("gm_rock_organ").gain(0.25)

// other · rock organ · soft notes
const rock_organ_soft = note(`<
  ~@11 A ~ B ~ C ~ D ~@3 E ~@10 F G H ~@5 B ~ C ~ D ~@3 E ~@14 I B ~ C ~ D ~@3 E ~@6
>`.pickRestart({
  A: "~@5 a5 ~@10", B: "c#6 ~@15", C: "~@11 d5 ~@4", D: "~@12 d#6 ~@3", E: "~@7 [g5,a5] ~@8", F: "~@10 c6 ~@5",
  G: "~@10 e6 ~@5", H: "~@10 a5 ~@3 a5 ~", I: "~@10 a5 ~ a5@2 ~@2",
})).s("gm_rock_organ").gain(0.13)

// other · epiano2
const epiano2 = note("<~@54 A B C D E F G H I J ~@15>".pickRestart({
  A: "~@8 [d#5,e5,a5] ~ [e5,a5] ~ [d#5,e5,a5] d5 c5 ~", B: "a4@2 c5 a4 g4 a4 c5 a4 g4 e4 d4 c4 d4 d#4 d4 c4",
  C: "a3@2 ~ a3 [e3,g3] g3 ~ c4@2 a3@2 c4 d4@2 c4 d4, ~ c4 ~ a3 ~@4", // Em
  D: "e4@2 [d4,a4] e4@2 [d4,a4] d#4 [e4,a4] d#4 d4 [c4,d4] d#4 e4 [g4,a4] [b4,c5] [g4,a4], d#4 ~@2 d#4 ~@12", // D5 A5 Csus2 Gsus2 Cmaj7 Gsus2
  E: "e4 d#4@2 ~ c4@2 ~ [g3,g#3] a3 c4@2 ~ g3 a3 c4 d4, ~ d4 ~@14", // G#maj7
  F: "c4 d4 d#4 e4 g4 c5 g4 b4 a4 g4 b4 a4 e4 d#4 d4 c4",
  G: "d#4@2 d4 c4 a3 g3 a3 c4@3 [a3,b3] g3 e3 g3 g#3@2, d4 ~@15", // Asus2
  H: "a3@2 c4 d4 c4 ~ [d4,d#4] e4 a4@2 d#4 d4 a3@2 c4 a3, ~@12 c4 ~@3", // D#maj7
  I: "a3@2 [g3,c#4,e4] ~ [g3,a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~, g3 ~@15", // C#dim A7 A C#m
  J: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~",
})).s("gm_epiano2").gain(0.27).pan(0.2)

// chords · epiano1
const epiano1 = note(`<
  ~ A@4 B@2 C D E F G H I J K L M N O P Q R S T U V W X@2 Y@2 Z@2 AA AB AC AD AE AF AG J AH@2 AI AJ O P Q AK S T U AL AM
  AN AO AP AQ AR AS AT AU AV AW AX@3 AI AJ O AY AZ BA S T U BB BC
>`.pickRestart({
  A: "[~@4 [c4,e4,b4]@5 ~ a4@4 [c4,e4]@4 ~@2 [b3,d4,f#4]@6 [a3,c4,e4]@4 f#4@4 ~@2 [c4,e4,g4,b4]@5 ~ [d4,f#4]@3 ~ [e4,g4]@4 ~@2 [b3,d4,f#4]@5 ~ [a3,c4,e4]@4 [d4,f#4]@2, ~@15 d4 ~@16]/4", // Cmaj7 C Bm Am Cmaj7 D Em Bm …
  B: "[a3@4 [c4,e4]@5 ~ [d4,f#4]@4 [e4,g4]@5 ~ [d4,f#4]@6 [c4,e4]@4 [d4,f#4]@2]/2", // C D Em D C D
  C: "a3@3 ~ [a3,c4,e4] ~ [c4,f4]@4 ~@2 [a3,c4,e4]@3 ~, ~@3 a3 ~@4", // Am F5 Am
  D: "a3@4 c4@2 a3@2 ~@2 [d4,f#4,a4]@3 ~ [c4,e4,g4]@2, ~@2 [e4,g4,b4]@2 b3@3 ~", // D C Em
  E: "a3@2 ~ a3 ~ [d4,f#4,a4]@2 [c4,e4,g4], ~@4 [c4,e4,g4]@4 b3@7 ~", // D C
  F: "a3@2 ~ a3 ~ [d4,f#4,a4]@2 [c4,e4,g4], ~@2 [c4,e4,g4]@2 b3@3 ~", // D C
  G: "a3@3 ~ [a3,c4,e4]@2 [a3,f4]@2 a3 ~ [a3,c4,f4]@4 [c4,f4]@2", // Am Dm F F5
  H: "[c#4,e4] a3 e4 a3 d4 [c#4,e4]@2 a3, a2@7 ~, ~@4 c#4 ~@11", // C#m
  I: "[f#3,d4,f#4]@3 ~ [f#3,d4,f#4]@2 a3 ~ [f3,a3,c4,f4]@3 ~@3 c4 ~, a3 ~@3 a3 ~@7 [f3,a3,f4]@4", // D F
  J: "[c4,e4]@3 ~ [c4,e4]@3 ~ [b3,d4]@2 [c4,e4]@2 a3@2 e4@2, a2 ~", // C Bm C
  K: "~@2 [b3,e4] ~ [b3,e4]@2 ~@2 [b3,d4]@2 e4@4 a3@2, e3@5 ~@3", // E5 Bm
  L: "[d#4,e4] ~ a4@2 [d4,d#4] c4 a3@2 [b3,c4] a3 g3 a3 c4@2 a3 ~", // Emaj7 D#maj7 Cmaj7
  M: "f#3@3 ~ [f#3,d4,f#4]@2 a3@2 [f3,c4,f4]@3 ~ [f3,c4,f4]@2 a3 ~", // D F5
  N: "c3@2 [c4,e4] g3 [a#3,d4] ~ g3 a#3, ~@6 c3@9 ~, ~@5 e4@3, ~@5 c4@2 ~", // C A#
  O: "[g#3,b3,d4,e4] ~ [g#3,b3,d4,e4] ~ [g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~", // E7
  P: "[e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~", // E7
  Q: "~@2 [a3,c4,e4] ~ [c4,e4]@2 a3@2 ~@2 [a3,d4,f#4] ~ [a3,f#4]@2 [c4,e4] ~, a2@7 ~ d3@7 ~, ~@4 a3 ~@7 d4 ~@3", // Am C D C
  R: "~@2 [a3,c4,e4] ~ [c4,e4]@2 a2@2 ~@2 [a3,c4]@2 f4@2 e4@2, a2@4 a3 ~ a3 ~ f3@7 ~, ~@10 f4 ~ [a3,c4]@4", // Am C Am
  S: "~@2 [a3,c4,e4] ~ [c4,e4]@2 a3 ~@3 [a3,d4,f#4] ~ [a3,f#4]@2 [c4,e4] ~, a2@7 ~ d3@7 ~, ~@4 a3 ~@7 d4 ~@3", // Am C D C
  T: "~@2 a3 ~ [c4,e4]@2 a3 ~@3 a3@2 [c4,f4]@2 a3 ~, a2 ~, ~@4 a3 ~@3 f3@7 ~", // C F5
  U: "~@2 a3 ~ [c4,e4]@2 a3 ~@3 f#4 ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~, a2@8 d3@7 ~", // C D
  V: "[a2,g3,c4,e4,g4] ~@3 c4 ~ [c4,e4,g4] ~ [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~ [g3,a3,c4,e4,g4] ~", // Am7 C Am7
  W: "[a2,g3,a3,c4,e4,g4] ~@15", // Am7
  X: "[~@4 [c4,e4,g4,b4]@5 ~ [d4,f#4]@3 ~ [e4,g4]@4 ~@2 [b3,d4,f#4]@5 ~ [a3,c4,e4]@4 [d4,f#4]@2]/2", // Cmaj7 D Em Bm Am D
  Y: "[a3@4 [c4,e4,g4,b4]@5 ~ [d4,f#4]@3 ~ [e4,g4]@4 ~@2 [b3,d4,f#4]@5 ~ [a3,c4,e4]@4 [d4,f#4]@2]/2", // Cmaj7 D Em Bm Am D
  Z: "[a3@4 [c4,e4]@5 ~ [d4,f#4]@4 [e4,g4]@5 ~ [d4,f#4]@6 [e4,g4]@4 [d4,f#4]@2]/2", // C D Em D Em D
  AA: "a3@3 ~ [a3,c4,e4] ~@3 [a3,f4]@2 [a3,c4,f4]@4 [a3,c4,e4]@2, ~@8 c4 ~@7", // Am Dm F Am
  AB: "a3@2 [c4,e4,g4,b4] a3 ~ [d4,f#4,a4]@2 [c4,e4,g4]", AC: "a3@2 ~ a3 ~ [d4,f#4]@2 [c4,e4], ~@4 [c4,e4,g4]@4 b3@7 ~",
  AD: "a3@2 [c4,e4] ~@2 [d4,f#4]@2 [c4,e4], ~@3 a3@5", AE: "a3@3 ~ [a3,c4,e4]@2 [a3,f4]@6 [c4,e4]@2 ~@2",
  AF: "a3!2 e4 a3 d4 ~ a3 e4, a2@7 ~, ~@4 c#4 ~@5 [c#4,e4]@4 ~@2", // C#m
  AG: "[f#3,a3,d4,f#4]@3 ~ [f#3,d4,f#4]@2 a3 ~ [f3,a3,c4,f4]@3 ~@3 c4 ~, ~@4 a3 ~@7 [f3,a3,f4]@4", // D F
  AH: "[[b3,e4]@4 [b3,e4]@2 ~@2 [b3,d4]@2 e4@4 ~ d#4 a4@3 [d4,d#4] a3@2 [a3,c4] g3 a3@2 c4@2 a3@2 g3@2, e3@10 ~@4 a3@2 ~@4 c4 ~@3 e3 ~@7, ~@15 e4@2 ~@15]/2", // E5 Bm D#maj7 Am
  AI: "f#3@3 ~ [f#3,d4,f#4]@2 a3@2 [f3,c4,f4]@4 [f3,c4,f4]@2 a3 ~", // D F5
  AJ: "~ g3 [c4,e4] g3 [b3,d4] ~ g3 c4, c3@5 ~ c3@9 ~, ~@5 e4@3, ~@5 c4@2 ~", // C Bm
  AK: "~@2 [a3,c4,e4] ~ [c4,e4]@2 a2@2 [a3,c4]@2 [a3,c4]@2 f4@2 e4@2, a2@4 a3 ~ a3 ~ f3@7 ~, ~@8 f4 ~ f4 ~ [a3,c4]@4", // Am C Am
  AL: "[a2,g3,c4,g4] ~@3 c4 ~ [c4,g4] ~ [a3,c4,g4] ~ [a3,c4,g4] ~ [a3,c4,e4,g4] ~ [g3,a3,c4,e4,g4] ~", // Am7 C5 Am7
  AM: "[a2,g3,a3,c4,e4,g4] ~@7 [d#5,e5,a5] ~ [e5,a5] ~ [d#5,e5,a5] d5 c5 ~", // Am7 A A5 A
  AN: "a4@2 c5 a4 g4 a4 c5 a4 g4 e4 d4 c4 d4 d#4 d4 c4",
  AO: "a3@2 ~ a3 [e3,g3] g3 ~ c4@2 a3@2 c4 d4@2 c4 [d4,d#4], ~ c4 ~ a3 ~@4", // Em D#maj7
  AP: "e4@2 [d4,a4] e4@2 [d4,a4] [d#4,e4] a4 d#4 d4 [c4,d4] d#4 [e4,g4] a4 [b4,c5] [g4,a4], ~@3 d#4 ~@12", // D5 Emaj7 Csus2 Em Cmaj7 Gsus2
  AQ: "[d4,e4] d#4@2 ~ c4@2 ~ [g3,g#3] a3 c4@2 ~ g3 a3 c4 d4", AR: "c4 d4 d#4 e4 g4 c5 g4 b4 a4 g4 b4 a4 e4 d#4 d4 c4",
  AS: "d#4@2 d4 c4 a3 g3 a3 c4@3 [a3,b3] g3 e3 g3 g#3@2, d4 ~@15", // Asus2
  AT: "a3@2 c4 d4 c4 ~ [d4,d#4] e4 a4@2 d#4 d4 a3@2 c4 [g3,a3], ~@12 c4 ~@3", // D#maj7 Gsus2
  AU: "a3@3 ~ [a3,c#4] ~ [g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~", // A A7
  AV: "[e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~ [e3,g3,a3,c#4,e4] ~", // A7
  AW: "a3@3 ~ [f#3,d4,f#4]@2 a3 ~ a3@3 ~@3 c4 ~, ~@4 a3 ~@7 [f3,a3,f4]@4", // D F
  AX: "[~@2 a3@2 [c4,e4]@3 ~ [b3,d4]@2 [c4,e4]@2 a3@2 ~@4 e4@2 [b3,e4]@2 g3@2 [b3,d4]@2 e4@4 ~ d#4 a4@3 [d4,d#4] a3@2 c4 g3 a3@2 c4@2 a3@2 g3@2, a2@8 ~@6 [b3,e4]@4 b3 ~@11 a3@2 ~@4 c4 ~@3 e3 ~@7, ~@16 e2@10 ~@5 e4@2 ~@15]/3", // C Bm C E5 Bm D#maj7 E5
  AY: "[e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [e3,g#3,b3,d4,e4] ~ [g#3,b3,d4] ~, ~@7 [e3,e4]", // E7 G#dim E
  AZ: "~@6 a3@2 a3@2 [a3,d4,f#4] ~ [a3,f#4]@2 [c4,e4] ~, a2@7 ~ d3@7 ~, ~@4 [c4,e4]@4 ~@4 d4 ~@3", // D C
  BA: "~@2 [a3,c4,e4] ~ [c4,e4]@2 a2@2 [a3,c4,e4]@2 [a3,c4]@2 f4@2 e4@2, a2@4 a3 ~ a3 ~ f3@7 ~, ~@10 f4 ~ [a3,c4]@4", // Am C Am
  BB: "[a2,g3,c4,g4,a4] ~@3 c4 ~ [c4,g4,a4] ~ [a3,c4,g4,a4] ~ [a3,c4,g4,a4] ~ [a3,c4,e4,g4,a4] ~ [g3,a3,c4,e4,g4,a4] ~", // Am7
  BC: "[a2,g3,a3,c4,e4,g4,a4] ~@15", // Am7
})).s("gm_epiano1").gain(0.27).pan(0.6)

// chords · epiano1 · soft notes
const epiano1_soft = note(`<
  ~ A@4 ~@2 B ~@3 C D ~ E F ~@3 G H ~@4 I J ~ K@4 ~@2 L ~@3 M D ~ E F ~@3 G ~@5 I N ~@8 O ~@2 P Q ~@3 G ~@5 I R ~
>`.pickRestart({
  A: "[~@10 [d4,f#4]@3 ~ g4@4 ~@12 b3@4 ~@8 a4@4 c4@4 ~@14]/4", B: "~@10 a3 ~@5", C: "~@7 a3", D: "~@4 b3 ~@3",
  E: "~@3 a3 ~@3 c4", F: "~@3 g3 ~@2 g3 ~", G: "e3 ~ e3 ~ e3 ~@11", H: "~@15 c4", I: "~@8 [a3,d4,f#4] ~ [a3,d4] ~@5",
  J: "~@2 [a3,c4,e4,g4] ~ [a3,e4,g4] ~ a3 ~@9", K: "[~@5 a4@2 c4@2 ~@7]/2", L: "~@6 a3 ~@9", M: "~@6 c4@5 ~ a3@3 ~",
  N: "~@2 [a3,c4,g4] ~ [a3,g4] ~ a3 ~@9", O: "~@2 [e3,g3,c#4,e4] ~ [e3,g3,e4] ~ e3 ~@9", P: "~@3 a3 ~@4", Q: "~@6 g3 ~",
  R: "~@2 [a3,c4,g4,a4] ~ [a3,g4,a4] ~ a3 ~@9", // Am7 A7
})).s("gm_epiano1").gain(0.15).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@16 A ~@2 B C D E F E G H I ~@12 J K L M N O B C D E F E G H I P Q R S T S@2 U V J W L X N O B C D E F E G H I
>`.pickRestart({
  A: "~@6 c5@2 ~@2 c5@3 ~ c5@2", B: "e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2 ~ e2 ~",
  C: "e2@2 e2 ~ e2@2 e2@2 e2@2 e2 ~ e2 ~ e2@2", D: "[a3,e4]@6 ~@2 [a3,f#4]@7 ~", E: "[a3,e4]@7 ~ [a3,f4]@7 ~",
  F: "[a3,e4]@7 ~ [a3,f#4]@7 ~", G: "[a3,e4]@8 [a3,f#4]@7 ~", H: "[a3,e4]@4 [a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~",
  I: "[a3,e4] ~@15", J: "~@4 [a3,f#4]@2 ~@6 [a3,f4]@3 ~", K: "~@4 c4@2 [e4,a4] ~ c4 ~ a3@6, ~ a3@3 ~@4",
  L: "~@4 b3@2 e4@2 b3 ~ [e3,g3]@6, ~@2 e3@7 ~@7", M: "a3@6 [c4,e4]@2 [a3,c4] ~ a3@6, e3", N: "[a3,f#4]@7 ~ [a3,f4]@8",
  O: "~@6 c4@2 e4@2 c4@5 ~, ~ e3@4 ~@3, ~ g3@3", P: "~@4 [c4,e4]@2 a3 ~@3 [a3,d4,f#4]@3 ~@3",
  Q: "~@4 [c4,e4,a4]@2 [c4,a4] ~@3 [d4,f#4,a4] ~@3 [d4,f#4,a4] ~", R: "~@4 [c4,e4,a4]@2 [c4,a4] ~@3 [d4,f#4,a4] ~@5",
  S: "~@4 [c4,e4]@2 a3 ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", T: "~@4 [c4,e4]@2 a3 ~@3 [a3,d4,f#4] ~@5",
  U: "a2@2 a2@2 a2@2 a2@2 a2 ~ a2@2 a2 ~ a2@2", V: "a2 ~ a2@2 a2@2 a2@2 a2 ~ a2@2 a2@2 a2@2",
  W: "~@4 c4@2 e3@9 ~, ~ a3@3", X: "a3@3 c4@2 a3@3, e3, ~@3 e4@5",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.9)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@19 A B C D E D E F G ~@18 A B C D E D E F G ~@7 H I ~@6 A B C D E D E F G
>`.pickRestart({
  A: "[e2,b2,g#3,b3]@2 g#3 ~ g#3@2 g#3@2 [g#3,b3]@2 [g#3,b3]@2 [b2,g#3,b3]@2 [g#3,b3]@2", // E G#m E G#m
  B: "[b2,g#3,b3]@2 [b2,g#3]@2 [e2,b2,g#3,b3] ~ [e2,b2,g#3,b3]@2 [g#3,b3]@2 [b2,g#3,b3]@2 [e2,b2,g#3,b3]@2 [e2,b2,g#3,b3]@2", // E G#m E
  C: "~@4 [c4,e4]@2 a3 ~@6 a3 ~@2, ~@6 [d4,f#4] ~", D: "~@4 [c4,e4]@2 a3 ~@5 [c4,f4]@2 e4 ~",
  E: "~@4 [c4,e4]@2 a3 ~@5 [d4,f#4]@2 a3 ~", F: "~ a2 [a2,c4,e4] a2!5", G: "a2 ~@15",
  H: "[g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~", // Gdim
  I: "[g3,c#4] ~ [g3,c#4] ~ [g3,c#4] ~ [g3,c#4]@2 [g3,c#4]@2 [g3,c#4]@2 [g3,c#4] ~ [g3,c#4]@2", // Gdim
})).s("gm_distortion_guitar").gain(0.22).pan(0.1)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@19 A B ~@25 A B ~@22 A B ~@7>".pickRestart({
  A: "~@2 [e2,b2,b3] ~ [e2,b2,b3]@2 [e2,b2,b3]@2 [e2,b2]@2 [e2,b2]@2 e2@2 [e2,b2]@2", // E5
  B: "e2 [e2,b3] ~@2 [e2,b2] e2 ~@2", // E5
})).s("gm_distortion_guitar").gain(0.11).pan(0.1)

// other · guitar harmonics
const guitar_harmonics = note("<~@13 A@2 ~ B C@2 D ~@20 A@2 ~@2 E ~@19 A@2 ~@2 E ~@10>".pickRestart({
  A: "[a4@31 ~]/2", B: "~@6 c4@2 ~@2 c4@3 ~ c4@2", C: "[~@14 c4@4 ~@8 c4@3 ~ c4@2, a4 ~]/2", D: "b3", E: "a4",
})).s("gm_guitar_harmonics").gain(0.14)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@19 A ~@6 B ~@19 A ~@6 B ~@2 C ~@13 A ~@6 B ~>".pickRestart({
  A: "~ x!3 ~ x ~@2", B: "~ x!3 ~@4", C: "~@7 x",
})).gain(0.07)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A B@9 C B@6 ~ D E@5 F ~ B@11 G B@6 ~ D E@5 H I B@7 A J K L E M E M E N E@2 M E@2 O ~
>`.pickRestart({
  A: "~ x ~@2", B: "~ x ~ x", C: "~@2 x ~@2 x!2 ~", D: "~@12 x!4", E: "x!4", F: "x", G: "~@2 x ~@2 x ~ x",
  H: "x ~@2 x!2 ~ x ~ x!8", I: "x ~@11 x ~@2 x", J: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", K: "x ~ x!3 ~ x ~",
// … 43 more lines

More by Santana