Strudelify

Just Came Back

James Colin

KeyG majorTempo118 bpm
0:00/0:00
// Just Came Back — James Colin
// 118 bpm, 4/4, key G major. 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: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 7 "GTHARMONIC" guitar harmonics (copy of ch 6 "OVERDRIVE" overdriven guitar); ch 13 "DISTORTION" distortion guitar (copy of ch 9 "SYN STR 1" synth strings 1)
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · clavinet
const clavinet = note(`<
  ~@26 A B C D E B C F@8 D E B@2 G H I E ~ A B C D E B@2 D E B J G H D K ~ A B L D@2 B C D M N@2 O P N@2 O P N Q R S O T
  U V ~ W X Y ~@2 Z AA B J G H D K ~ A B L D@2 B C D AB B L D@2 B C D AB B L D@2 B C D AB B L D AC
>`.pickRestart({
  A: "~@14 [d3,a3] ~", B: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~",
  C: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,g3] ~", // D5 G5
  D: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~", // G5
  E: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,a3] ~", // G5 D5
  F: "[[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ g3@2 [d3,g3]@2 ~@2 [d3,g3]@2 ~@8 [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,g3] ~, ~@7 c-1@57, ~@14 d3 ~@113]/8", // G5 D5 G5 D5 G5
  G: "[c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~", // C5
  H: "[c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [d3,g3] ~", // C5 G5
  I: "[d3,g3] ~ [d3,g3] ~ g3 ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~", // G5
  J: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [c3,g3] ~", // D5 C5
  K: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ d3@2, ~@14 a3 ~", // G5
  L: "[d3,a3] ~ a3 ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,g3] ~", // D5 G5
  M: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [b2,e3] ~", // G5 E5
  N: "[b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~", // E5
  O: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
  P: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [b2,e3] ~", // A5 E5
  Q: "[b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [a2,d3] ~", // E5 D5
  R: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~", // D5
  S: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,e3] ~", // D5 A5
  T: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [g#2,d#3] ~ [g2,d3] ~", // A5 G#5 G5
  U: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  V: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [a2,d3] ~", W: "~@14 [d3,g3,c4] ~",
  X: "[d3,g3,c4] ~ [d3,g3,c4] ~ [d3,g3,c4] ~ [d3,g3,c4] ~ [d3,g3,c4] ~ [d3,g3,c4] ~ [d3,g3,c4] ~ [d3,g3,c4] ~", // Csus2
  Y: "[d3,g3,c4] ~ [d3,g3,b3] ~ [d3,g3,b3] ~ [d3,g3,b3] ~ [d3,g3,b3] ~ [d3,g3,a3]@3 ~ [d3,g3,a3]@2", Z: "~@14 f3 g3",
  AA: "[g2,c3] ~ [a2,d3]@2 [f2,b2] ~ [g2,c3]@2 [d3,a3]!2 c3@2 ~@4, ~@10 g3 ~@5", // C5 D5 Fdim C5 D5
  AB: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [a2,d3] ~", // G5 D5
  AC: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~@3", // G5
})).s("gm_clavinet").gain(0.24).pan(0.3)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@26 A B C D E F C G H I J D E I K L M N O@2 P G Q@2 R I J S E I J G T U V W P G X@2 Y Z AA AB AC AD AE AF AG@2 AH AI
  AJ AK AH AL AJ AK AM N AN AO AP AQ AR@3 AS AT@2 AU@2 Y U V W P G X@2 Y Z AA AB AC AD AE AF AV@2 AA AB AC AD AE AF AV@2
  AA AB AC AD AE AF AV@2 AA AB AC
>`.pickRestart({
  A: "~@2 g1 f1 g1 a1 f1 d1", B: "~@2 d1@2 e1@2 d1@2 f1@2 d1@2 d1 ~ d1@2", C: "~ d1 e1 d1 f1 g1 ~ g1",
  D: "~@2 g1 ~ g1 ~@3 g1 ~@3 g1 ~ g1@2", E: "~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ d1@2",
  F: "~@2 d1@2 e1@2 d1@2 f1@2 g1@2 d1 ~ d1@2", G: "~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  H: "g1@2 ~@2 g1@2 ~@2 g1@2 a1@2 f1 ~ d1@2", I: "~@2 d1@2 e1@2 d1@2 f1@2 d1 ~ d1 ~ d1@2",
  J: "~@2 d1@2 e1@2 d1@2 f1@2 d1 ~ d1 ~ g1@2", K: "~@2 d1@2 ~@2 d1@2 f1@2 d1 ~ d1 ~ g1@2, ~@5 e1@2 ~@9",
  L: "~@2 g1 ~ g1 ~@3 g1 ~@3 g1 ~ g1 ~", M: "g1@2 ~@2 g1@2 f1@2 g1@2 a1@2 f1 ~ d1@2",
  N: "~@2 d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~",
  O: "[d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d2@2 c#2@2 c2@5 ~ c2@2 c2 ~ c2 ~@3 c2 ~@3]/2",
  P: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ a#1@2 b1@2 g1@2", Q: "[g1 ~ g1 ~ g1 ~ g1 ~ g1@2 a1@2 f1@2 d1@4 ~@10 d1@3 ~]/2",
  R: "~@10 f1@2 e1 ~ d1@2", S: "~@2 g1 ~ g1 ~ g1 ~ g1 ~@3 g1 ~ g1@2", T: "g1 ~ g1 ~ g1@2 f1@2 g1@2 a1@2 f1 ~ d1@2",
  U: "~@2 d1 ~ d1@2 d1 ~ d1 ~ d1 ~ d1 ~ d1 ~", V: "d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d2@2 c#2@2 c2@2",
  W: "~@4 c2@2 c2 ~ c2 ~@3 c2 ~@3", X: "[g1 ~ g1 ~ g1 ~ g1 ~ g1@2 a1@2 f1@2 d1@5 ~@9 d1@4]/2", Y: "~@5 f1 e1 d1",
  Z: "~@2 d1@2 e1@2 d1@2 f1@2 g1 ~ d1 ~ d1@2", AA: "~@2 d1@2 e1@2 d1@2 f1@2 g1 ~@3 g1@2",
  AB: "~@2 g1 ~ g1 ~@3 g1 ~@3 g1 ~@3", AC: "g1 ~ g1 ~ g1 ~@3 g1@2 ~@2 g1@3 ~",
  AD: "d1 ~ d1@2 e1@2 d1@2 f1@2 g1@2 d1 ~ d1@2", AE: "~@2 d1@2 e1@2 d1@2 f1@2 g1@3 ~ g1@2",
  AF: "~@2 g1 ~ g1 ~ g1 ~ g1 ~@3 g1 ~@3",
  AG: "[g1 ~ g1 ~ g1 ~@3 g1 ~ g1 ~ g1 ~ e1@4 e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@2 ~@2]/2",
  AH: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@2", AI: "a1 ~@3 a1 ~@3 a1 ~ a1 ~ a1 ~ a1 ~",
  AJ: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e1@2", AK: "~@2 e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~",
  AL: "a1 ~@3 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~@3", AM: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@2 d#1@2 d1@2",
  AN: "d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ g1@2 g#1@2 a1@2", AO: "~@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~@3",
  AP: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 g#1@2 g1@2", AQ: "~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ f1@2",
  AR: "[g1 ~@3 g1@2 f1@2 g1 ~ a1@2 f1@2 d1@26 ~@2 f1@2 f#1@2 g1@2]/3", AS: "~@2 g1 ~ g1 ~@3 g1 ~ g1 ~ g1 ~ g1 ~",
  AT: "[g1 ~ g1@2 ~@10 d1@4 d1@2 e1@2 d1@2 f1@2 d1@2 e1@2 d1@2]/2",
  AU: "[~@2 d1@2 e1@2 d1@2 f1@2 d1@2 e1 ~ g1@7 ~@3 g1 ~ g1 ~ g1@2 ~@2]/2",
  AV: "[g1 ~ g1 ~ g1 ~@3 g1 ~ g1 ~ g1 ~ d1@4 d1@2 e1@2 d1@2 f1@2 g1 ~ d1 ~ d1@2]/2",
})).s("gm_electric_bass_finger").gain(0.38)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note(`<
  ~@29 A ~@7 A B ~@2 A ~@3 C ~@7 D ~@7 E ~@6 F G H ~@2 I H J ~ K ~@3 L ~@5 M ~@2 N ~@2 H ~@7 E ~@6 F G H ~@2 I H ~ F G H
  ~@2 I H ~ F G H ~@2 I H ~ F G H
>`.pickRestart({
  A: "~@6 g1 ~@3 g1 ~@5", B: "g1 ~@15", C: "~@10 c2 ~@3 c2 ~", D: "~@10 g1 ~@5", E: "~@2 c2 ~@7 c2 ~@3 c2 ~",
  F: "~@12 g1 ~@3", G: "~@6 g1 ~@3 g1 ~@3 g1 ~", H: "~@6 g1 ~@9", I: "~@10 g1 ~@3 g1 ~", J: "~@14 e1 ~",
  K: "~@2 a1 ~@3 a1 ~@9", L: "~@2 a1 ~@11 a1 ~", M: "~@14 a1 ~", N: "~@2 g1 ~@13",
})).s("gm_electric_bass_finger").gain(0.22)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@22 A@2 B@3 C D@3 C E F G H I J@3 I K L@2 M@2 N@3 O P@2 I J@3 I K L@2 M@2 N@3 O Q@2 R@3 S T@3 U V W X Y Z AA AB AC AD
  AE AF AG AH AI AJ@3 AK AL@2 AM@2 AN@2 M@2 N@3 O Q@2 R@3 S AO@3 C R@3 S AO@3 C R@3 S AO@3 C R@3
>`.pickRestart({
  A: "[~@14 [a3,d4]@4 d3@2 e3@2 d3@2 f3 ~ [g3,d4]@2 ~@2 d3@2]/2", // D5 G5
  B: "[~@2 d3@2 e3@2 d3@2 f3 ~ [g3,d4]@2 ~@2 [g3,d4]@5 ~@7 [g3,d4]@2 ~@2 [g3,d4]@4 ~@2 g3@2 f3@2 g3@2 a3 ~ f3 ~ d3@2]/3", // G5
  C: "~ d3 e3 d3 f3 g3 ~ d3",
  D: "[~@2 d3@2 e3@2 d3@2 f3@2 g3 ~@3 [g3,d4]@5 ~ [g3,d4] ~@5 [g3,d4]@2 ~@2 [g3,d4]@4 ~@2 g3@2 f3@2 g3@2 a3 ~ f3@2 d3@2]/3", // G5
  E: "~@2 d3@2 e3@2 d3@2 f3 ~ a3@2 ~@2 [g3,d4]@2", F: "~ [g3,d4] [f3,d4] ~ [e3,d4] ~ [d3,d4] ~",
  G: "[g3,d4]@3 ~ [g3,d4]@2 ~@2 g3@2 a3@2 f3@2 d3@2", H: "~@2 d3@2 e3@2 d3@2 f3@2 [d3,a3]@3 ~ d3@2",
  I: "~@2 d3@2 e3@2 d3@2 f3 ~ [d3,a3]@2 ~@2 [d3,g3]@2", // D5 G5
  J: "[~@2 [d3,g3]@2 f3@3 ~ e3@3 ~@3 [d3,g3]@4 ~@2 g3@2 f3@2 g3@2 a3 ~ f3@2 d4@4 d3 ~ e3@2 d3@2 f3@2 [d3,a3]@2 ~@2 d3@2]/3", // G5 D5
  K: "~@2 [d3,g3]@2 f3@3 ~ e3@3 ~ [d3,f3] ~ [d3,g3]@2", // G5 Dm G5
  L: "[~@4 g3@2 f3@2 g3@2 a3@2 f3 ~ [d3,a3]@5 ~ [a3,d4]@4 [a3,d4]@4 [a3,d4]@3 ~]/2", // D5
  M: "[[g3,c4]@2 [a3,d4]@3 ~ [a3,d4]@3 ~ [a3,d4]@2 [g#3,c#4]@2 [g3,c4]@5 ~ [f3,g3,c4]@3 ~ [e3,g3,c4]@6 ~@2]/2", // C5 D5 C#5 C5 Fsus2 C
  N: "[[e3,g3,c4]@3 ~@3 [f3,g3,c4]@2 ~@2 a#3@2 b3@2 [g3,d4]@23 ~@3 g3@2 a3@2 f3@2 d3@2]/3", O: "~@3 [d3,a3]",
  P: "[~@10 f3@2 e3@2 d3@4 d3@2 e3@2 d3@2 f3@2 [d3,a3]@3 ~ d3@2]/2", Q: "[~@5 f3 e3 d3@2 d3 e3 d3 f3 g3 ~ d3]/2",
  R: "[~@2 d3@2 e3@2 d3@2 f3 ~ [g3,d4] ~@3 [g3,d4]@5 ~ [g3,d4] ~@5 [g3,d4]@2 ~@2 [g3,d4]@7 ~@3 [g3,d4]@2 ~@2 [g3,d4]@3 ~]/3", // G5
  S: "d3 ~ d3@2 e3@2 d3@2 f3@2 g3@2 ~@2 d3@2",
  T: "[~@2 d3@2 e3@2 d3@2 f3 ~ [g3,d4] ~@3 [g3,d4]@6 [g3,d4] ~@5 [g3,d4]@2 ~@2 [g3,d4]@6 [g3,d4] ~@5 [g3,d4] ~@3 [e3,b3]@2]/3", // G5 E5
  U: "~@2 b3 ~ [e3,b3] ~@3 [e3,b3] ~ b3 ~ [e3,b3] ~ b3 ~", // E5
  V: "[e3,b3] ~ b3 ~ [e3,b3] ~ b3 ~ [e3,b3] ~@3 [e3,b3] ~ [e3,b3] ~", // E5
  W: "[a2,e3] ~ e3 ~ [a2,e3] ~ e3 ~ [a2,e3] ~ e3 ~ [a2,e3]@2 ~@2", // A5
  X: "[a2,e3] ~ e3 ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ e3 ~ [a2,e3] ~ e3@2, ~@14 b3 ~", // A5
  Y: "~@2 [e3,b3] ~ [e3,b3] ~ b3 ~ [e3,b3] ~ b3 ~ [e3,b3] ~ b3 ~", // E5
  Z: "[e3,b3] ~@3 [e3,b3] ~ b3 ~ [e3,b3] ~ b3 ~ [e3,b3] ~ [e3,b3] ~", // E5
  AA: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~@3 [a2,e3] ~@3 [a2,e3] ~ e3 ~", // A5
  AB: "[a2,e3] ~ e3 ~ [a2,e3] ~ e3 ~ [a2,e3] ~ e3 ~ [a2,e3] ~ [e3,b3]@2", // A5 E5
  AC: "b3 ~ [e3,b3] ~ [e3,b3] ~ b3 ~ [e3,b3] ~ b3 ~ [e3,b3] ~ e3 ~", // E5
  AD: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ b3 ~@3 [e3,b3] ~ [d#3,a#3] ~ [d3,a3] ~", // E5 D#5 D5
  AE: "~@2 a3 ~ [d3,b3] ~ d3 ~ [d3,a3] ~@3 [d3,b3] ~ [d3,b3] ~", // G D5 G
  AF: "[d3,a3] ~@3 [d3,b3] ~ [d3,a3] ~ [d3,a3] ~ g2@2 g#2 ~ [a2,e3] ~", // D5 G D5 A5
  AG: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ f#3 ~ [a2,g3] ~ [a2,g3] ~ [a2,f#3] ~ [a2,f#3] ~", // A5 D A7 D
  AH: "[a2,g3] ~ [a2,g3] ~ [a2,f#3] ~ [a2,e3]@4 a3@2 g#3 ~ g3@2", // A7 D A5
  AI: "d3 ~ g3 ~ [d3,g3] ~ g3 ~ [d3,g3] ~ g3 ~ [d3,g3] ~ [d3,g3] ~", // G5
  AJ: "[[d3,g3]@2 ~@2 g3@2 f3@2 g3@2 a3 ~ f3@2 d3@25 ~@3 f3@2 f#3 ~ [g3,d4] ~]/3", // G5
  AK: "d4 ~ d4 ~ [g3,d4] ~@3 [g3,d4] ~ d4 ~ g3 ~ [g3,d4] ~", // G5
  AL: "[[g3,d4] ~ [g3,d4]@2 ~@10 d3@4 d3@2 e3@2 d3@2 f3 ~ [d3,g3]@2 ~@2 d3@2]/2", // G5
  AM: "[~@2 d3@2 e3@2 d3@2 f3 ~ [d3,g3]@2 ~@2 [d3,g3]@9 ~ [d3,g3] ~ [d3,g3] ~ [d3,g3]@2 ~@2]/2", // G5
  AN: "[~@12 [f3,a3,a#3,b3] [d3,e3] [g2,a2,b2,c3,c#3] [c2,d2,e2,f2] ~@4 [a3,d4]@4 [a3,d4]@4 [a3,d4]@3 ~, ~@7 [a3,d4]@3 ~@6]/2", // A#maj7 Dsus2 Dm7 D5
  AO: "[~@2 d3@2 e3@2 d3@2 f3 ~ [g3,d4] ~@3 [g3,d4]@6 [g3,d4] ~@5 [g3,d4]@2 ~@2 [g3,d4]@6 [g3,d4] ~@5 [g3,d4] ~@3 [d3,a3]@2]/3", // G5 D5
})).s("gm_overdriven_guitar").gain(0.28).pan(0.7)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@75 A B C D E F G H I J K L M ~ N ~@3 O ~@4 P ~@36>".pickRestart({
  A: "~@2 e3 ~@3 [e3,b3] ~@3 e3 ~@3 e3 ~", B: "~@2 e3 ~@3 e3 ~@3 [e3,b3] ~@5", C: "~@2 a2 ~@3 a2 ~@3 a2 ~@3 [a2,e3] ~",
  D: "~@2 a2 ~@7 a2 ~@5", E: "b3 ~@5 e3 ~@3 e3 ~@3 e3 ~", F: "~@2 [e3,b3] ~@3 e3 ~@3 e3 ~@5",
  G: "~@6 [a2,e3] ~@3 [a2,e3] ~@3 a2 ~", H: "~@2 a2 ~@3 a2 ~@3 a2 ~@5", I: "e3 ~@5 e3 ~@3 e3 ~@5",
  J: "~@6 e3 ~ [e3,b3] ~@7", K: "[d3,a3] ~ d3 ~@7 [d3,a3] ~@5", L: "~@2 [d3,a3] ~@13", M: "~@6 a2 ~@9",
  N: "~@2 d3 ~@3 d3 ~@3 d3 ~@5", O: "g3 ~ g3 ~@3 [g3,d4] ~@3 g3 ~@5", P: "~@12 g3 [d#3,f#3] a#2 g#2",
})).s("gm_overdriven_guitar").gain(0.2).pan(0.7)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@27 A B@3 A C@2 D ~@39 E@2 F G H I J K L M N O@2 P@2 Q R@2 ~@31 A B@3 A C@2 S@2 T U V
>`.pickRestart({
  A: "~@2 d3 ~ f3@2 ~@2 f3@3 ~ c3@2 ~@2", B: "[c3@2 d3@2 ~@2 f3@3 ~ d3 ~ a3 ~ g3@6 f3@3 ~ f3 ~ f3@2 ~@2 c3@11 ~@7]/3",
  C: "[c3@2 d3@2 ~@2 f3@3 ~ d3 ~ a3 ~ g3@5 ~ f3@3 ~ f3 ~ f3@3 ~ c3@2]/2", D: "d3@3 ~ d3@3 ~@9",
  E: "[~@7 b3@2 ~ a3 ~ g3 ~ d3 b2]/2", F: "d3@2 e3 ~@3 a2@2 ~@2 g2@4 [a3,f#4]@2",
  G: "~@2 [a3,e4]@2 ~ [a3,e4]@2 ~ [a3,d4]@3 b3 ~@2 [a3,f#4]@2", H: "~@2 [a3,e4]@2 ~ [a3,e4] ~@2 e4@3 d4 b3@4",
  I: "~@2 d3 ~ g3@3 ~ b3@2 d4@2 ~@2 e4@2", J: "~@2 g4@2 d4@2 ~@2 d4@3 ~ e4@4", K: "~@2 b4@4 ~@2 g4 e4@2 ~ e4@2 g4 ~",
  L: "e4@4 ~@3 e4 [g4,b4]@2 ~ [a4,c#5] ~ [a4,c#5]@2 ~", // G A
  M: "[a4,c#5]@2 ~ [g4,b4]@2 ~@2 e4 [g4,b4] ~ [a4,c#5] ~@2 a4@2 e4, ~@6 c#5 ~", // A G A
  N: "g4 a4 a#4 ~ a#4 ~ [e4,g4] g4 a4 a#4 b4 a#4 [g4,a4] e4 [g4,g#4,a4] a#4, ~@3 b4@2 a4@2 ~@9", // Em Gsus2
  O: "[~ [a4,a#4] g4 e4 [g4,a4] a#4 b4 [a4,a#4] g4 [e4,g4] a4 b4 d5 ~ e5@4 d5@3 b4 ~@2 b4@3 a4@2 g4 ~@2, b4 ~@15]/2", // A#maj7 Gsus2 A#maj7 Em
  P: "[a5@23 g5@2 e5@2 ~ g5@4]/2", Q: "~@2 d5@3 ~ e5 d5 b4 ~ g5@3 ~ g5 ~",
  R: "[f#5 ~ f5 e5 ~@2 a#4 ~ b4@2 d5 ~ g4@6 ~@14]/2", S: "[d3@3 ~ d3@3 ~@7 a3@4 ~@2 g3@2 ~@2 f3@2 ~@2 c3@2 a2@2]/2",
  T: "c3@2 d3 ~@3 g2@2 ~@2 f2@4 [g3,e4]@2", U: "~@2 [g3,d4]@2 ~ [g3,d4]@2 ~ [g3,c4]@3 a3 ~@2 [g3,e4]@2",
  V: "~@2 [g3,d4]@2 ~ [g3,d4] ~@2 d4@3 c4 a3@3 ~", // G5
})).s("gm_overdriven_guitar").gain(0.36).pan(0.2)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@26 A@2 ~@2 B@2 ~@2 C@2 ~@12 D@2 ~@8 E@8 F@3 G@2 H@5 ~@6 I@8 J@4 K@2 L@2 M@8 F@3 G@2 N@6 G@2 N@6 G@2 N@6 G@2
>`.pickRestart({
  A: "[~@7 [d5,d6]@3 ~@6]/2", B: "[~@14 [d5,d6]@5 ~@13, ~@14 [e5,c6] ~@17]/2",
  C: "[[g4,g5]@2 ~@2 g5@2 ~@2 g5@2 a5@2 f5 ~ d5@7 ~@11, ~@4 g4 ~@27]/2", // G
  D: "[~@7 [g4,c5,d5,d6]@2 ~@5 [g4,c5,d5,d6]@2]/2", // Gsus4
  E: "[~@14 [d4,d5]@26 ~@2 [d4,d5]@2 [c#4,c#5]@2 [c4,c5]@26 ~@2 [a#3,a#4]@2 [b3,b4]@2 g3@31 ~ [d4,g4,c5,d5,d6]@4 ~@10 [d4,g4,c5,d5,d6]@4, ~@78 g4@27 ~@23, ~@78 a4 ~@49]/8", // D C# C A# B Csus2
  F: "[~@5 [f4,f5] [e4,e5] [d4,d5]@16 [g4,g5]]/3", // F E D G
  G: "[~@2 [g4,g5]@2 [f4,f5]@2 [e4,e5]@2 d4@16 [g4,c5,d5,g5]@3 ~ [g4,c5,d5,g5]@3 ~, ~@4 d5@7 ~@5]/2", // G F E Gsus4
  H: "[[d4,d5]@24 ~@2 [f4,f5]@2 [f#4,f#5]@2 [g4,g5]@25 ~ [g4,g5]!2 ~@2 [g4,g5]@2 e5@15 ~@3, ~@31 e4@5 ~@4]/5", // D F F# G
  I: "[~@14 [e4,e5]@30 ~@2 [d4,d5]@30 ~@2 [e4,e5]@31 ~ [d4,d5]@18]/8", // E D E D
  J: "[~@4 g4@2 f4@2 g4@2 a4 ~ f4@2 d4@24 ~@4 [d5,g5,b5]@2 ~@2 [d5,g5,c6]@17 ~]/4", // G Csus2
  K: "[c6@2 b5@3 ~@9 [d5,d6]@5 ~@13, [d5,g5]@5 ~@27]/2", // D G5
  L: "[~@10 [d5,g5,b5]@2 ~@2 [d5,g5,c6]@9 ~ [d5,g5,c6] ~ [d5,g5,c6] ~ [d5,g5,b5]@2 ~@2]/2", // G Csus2 G
  M: "[~@14 [d5,d6]@27 ~ [d4,d5]@2 [c#4,c#5]@2 [c4,c5]@26 ~@2 [a#3,a#4]@2 [b3,b4]@2 g3@31 ~ [d4,g4,c5,d5,d6]@4 ~@10 [d4,g4,c5,d5,d6]@4, ~@78 g4@27 ~@23, ~@78 a4 ~@49]/8", // D C# C A# B Csus2
  N: "[[d4,d5]@24 ~@2 [f4,f5]@2 [f#4,f#5]@2 [g4,g5]@25 ~ [g4,g5]!2 ~@2 [g4,g5]@2 [a4,a5]@31 ~ [g4,g5]@2]/6", // D F F# G A G
})).s("gm_brass_section").gain(0.55).pan(0.6)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~@21 A@2 ~@112>".pickRestart({
  A: "[~@3 [a3,f#4]@27 ~@2]/2", // D
})).s("gm_synth_strings_1").gain(0.08)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<A@2 B C D E F G H@2 I J@2 ~ K L@2 ~ M N O@3 ~@112>".pickRestart({
  A: "[g2@3 ~@12 g2@2 ~@2 g2 g2@3 ~@9]/2", B: "~@2 g2@2 ~@5 g2@3 b3 ~ [f3,d4]@2",
  C: "~ [f3,d4] ~ [e3,c#4]@2 ~ [e3,c#4] ~ [d#3,c4]@2 ~@2 [d#3,c4] [d3,b3]@2 ~", // Dm C#m Cm G
  D: "~@2 d4 ~@3 [a3,d4,f#4]@3 ~@2 [d3,g3] ~ [f3,a#3]@2 ~, ~ [a3,f#4]@3 ~@12", // D G5 A#5 D
  E: "[f3,a#3] ~ [d3,g3]@2 ~ [d3,g3] ~ [f3,g3]@2 ~ [f3,g3] ~ [d3,g3]@2 ~ [d3,g3]", // A#5 G5 Fsus2 G5
  F: "~ [f3,g3]@2 d3 [f3,g3] ~ [d3,g3]@2 ~@2 [d3,g3] [d3,g3]@2 ~@2 [d3,g3]", // Fsus2 G5
  G: "~ [d3,g3]@2 ~ [d3,g3] ~ [d3,g3]@4 ~ [f4,b4,d5]@3 [f4,b4,d5] ~", // G5 Bdim
  H: "[[f4,b4,d5] ~ [f4,b4,d5]!2 ~ [f4,b4,d5]@2 ~@2 [d3,g3] [f3,a#3]@2 ~@2 [f3,a#3] [d3,g3]@3 [g4,d5,g5]@2 ~ [g4,d5,g5]@2 [g4,d5,g5]@2 ~ [g4,d5,g5]@2 [g4,d5,g5]@2 ~ [g4,d5,g5]]/2", // Bdim G5 A#5 G5
  I: "g3 a#3@2 ~@5", J: "[~@13 g4 a#4 [e4,g4]@2 g4 ~ a#4@3 a#4@2 g4 [e4,g4,a#4] ~ g4 ~ e4@3, ~@6 a#4 ~@9]/2",
  K: "~@5 [d5,f5] ~ [d5,f5] b4@2 [d5,f5]@2 ~ b4@2 f4, ~@6 [f4,d5] ~", // Dm
  L: "[~ [f4,d5]@3 d4@2 f4@3 g3 ~@5 f#4@11 ~@6, ~@4 b4@5 ~@2 a#3@15 ~@6]/2", M: "~@8 g2 a#2@2 ~@2 a#2 a#2@2",
  N: "~@3 g2@4 ~@9, ~ a#2 ~@6", O: "[~@11 [g3,e4]@2 ~@2 [g#3,f4]@2 ~ [a3,f#4]@27 ~@3]/3",
})).s("gm_acoustic_guitar_steel").gain(0.33).pan(0.3)
// … 78 more lines