Strudelify

Low Down

Boz Scaggs

KeyB minorTempo112 bpm
0:00/0:00
// Low Down — Boz Scaggs
// 112 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 138 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · recorder · "Backup"
const recorder = note(`<
  ~@25 A B C D E F G D ~@16 A B C D E F G D ~@32 A B C D E F G D ~@8 H I J K L I J M H I J K L I J M ~@17
>`.pickRestart({
  A: "[b3,d4,f#4,b4]", // Bm
  B: "[b3,d4,f#4,b4]@2 [a3,c#4,e4,a4] [f#3,b3,d4,f#4] [a3,c#4,e4,a4]@9 ~ [b3,d4,f#4,b4] ~, [a3,c#4,e4,a4] ~@3 a#3 ~@11", // Bm A Bm A Bm A
  C: "[b3,d4,f#4,b4] ~ [a3,c#4,e4,a4]!2 ~ [f#3,b3,d4,f#4] ~ [f#3,b3,d4,f#4] ~ [d3,f#3,b3,d4] ~ [e3,a3,c#4,e4] ~ [f#3,b3,d4] ~@2, ~@13 f#4@2 ~", // Bm A Bm A Bm
  D: "[f#3,f#4]@2 [e3,e4] [d3,d4] [e3,e4]@10 ~@2, e4 ~@15", E: "[b3,d4,f#4,b4]@15 ~",
  F: "[b3,d4,f#4,b4]@2 [a3,c#4,e4,a4] [f#3,b3,d4,f#4] [a3,c#4,e4,a4]@9 ~ [b3,d4,f#4,b4] ~, [a3,c#4,e4,a4] ~@15", // Bm A Bm A Bm A
  G: "[b3,d4,f#4,b4] ~ [a3,c#4,e4,a4]!2 ~ [f#3,b3,d4,f#4] ~ [f#3,b3,d4,f#4] ~ [d3,f#3,b3,d4] ~ [e3,a3,c#4,e4] ~ [f#3,b3,d4,f#4] ~@2", // Bm A Bm A Bm
  H: "[d4,f#4,b4]@15 ~", I: "[d4,f#4,b4]@2 [c#4,e4,a4] [b3,d4,f#4] [c#4,e4,a4]@9 ~ [d4,f#4,b4] ~, [c#4,a4] ~@15",
  J: "[d4,f#4,b4] ~ [c#4,e4,a4]!2 ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [f#3,b3,d4] ~ [a3,c#4,e4] ~ [b3,d4,f#4] ~@2", // Bm A Bm A Bm
  K: "[f#3,f#4]@2 [e3,e4] [d3,d4] [e3,e4]@9 ~@3, e4 ~@15", L: "[d4,f#4,b4]",
  M: "[f#3,f#4]@2 [e3,e4] [d3,d4] e4@10 ~@2, [e3,e4] ~@3 e3@8 ~@4", // F# E D E
})).s("gm_recorder").gain(0.1)

// other · piano · "Piano Sol"
const piano = note("<~@121 A B C D E F G@2 H I J K L@2 M N ~>".pickRestart({
  A: "~@6 f#4 ~ f#4 e4 d4 ~ e4@2 d4 b3, ~@7 g4@2 ~@3 d4 ~@3", B: "d4 e4 f#4 a4@7 ~ e4 [f#4,b4] ~ [f#4,a4] e4",
  C: "[f#4,b4]@3 [e4,a4] ~@12", D: "~@4 c#5 d5 c#5 a4@9", E: "~ e4!2 f#4 ~ [g4,a4] ~ e4!2 f#4 ~ a4 ~ f#4 ~ b4",
  F: "~ a4 ~@5 e4!2 f#4 ~ a4 ~@4",
  G: "[~ d4 e4 f#4 ~ a4 ~ d4 e4 f#4 ~ a4 ~ f#4 ~ [f#4,b4]@2 a4 ~ d4 [e4,a4] ~ e4 ~ d4 ~ d4 b3 c#4 ~ d4 a3, ~@20 f#4@2 ~@3 e4@2 ~@5]/2", // B5 A5
  H: "~@8 f#5 g5 f#5 ~ d5@2 e5 d5", I: "~ c#5 ~ d5 ~ c#5 a4 ~ a4 b4 ~ a4 ~ a4 f#4 ~", J: "[b4,e5]@3 [a4,d5] ~@12",
  K: "[b4,e5] [a4,d5] ~ [a4,d5] ~ [b4,e5] ~ b4@9, ~@7 d5@7 ~@2", // E5 D5 E5
  L: "[~@3 b4 e5 f#5 e5 d5 a5@2 f#5 a5 ~ b5 ~ a5@2 f#5 e5 c#5 [e5,a5] f#5 e5 c#5 e5 f#5 e5 d5 ~ e5 ~@2, ~@12 a5 ~@3]/2", // A5
  M: "~@3 b4 e5 f#5 a5 c#5 f#5 ~ f#5!2 ~ d6 ~ c#6, ~@9 a5@2 ~@5", N: "a5@6 ~@4 a5 c#5 ~@4",
})).s("gm_piano").gain(0.25)

// other · piano · "Piano Sol" · soft notes
const piano_soft = note("<~@121 A B ~ C D ~ E ~@2 F G H I J ~@3>".pickRestart({
  A: "~@11 b3 ~@4", B: "~@14 g#4 ~", C: "~@3 e4 ~@12", D: "~@8 a4 ~@7", E: "~@10 f#4 ~@5", F: "~@2 c#5 ~@3 c#5 ~@9",
  G: "~@15 f#4", H: "~@4 f#4 ~@11", I: "~@14 c#5 ~", J: "~ e5 ~@14",
})).s("gm_piano").gain(0.13)

// other · piccolo
const piccolo = note(`<
  ~@9 A B A C ~@20 A B A C ~ D ~ D ~ D ~ E F G ~@2 A H ~@2 A B ~@6 A B A C ~@36 A B A C A B A C A B A C A B A C A B A C
  A B A C A B A C A B A C A I ~@3
>`.pickRestart({
  A: "~@2 b5 ~ a5 ~ b5 ~ d6 ~ d6 d6@3 e6 ~", B: "~@2 b5 ~ a5 ~ f#5 ~ b5@3 a5@4 ~, ~@8 a5 ~@7",
  C: "~@2 b5 ~ a5 ~ f#5 ~ b5@3 a5@3 ~@2, ~@8 a5 ~@7", D: "~@10 b5 ~ a5 ~ b5 ~", E: "~@14 a5 b5",
  F: "d6 ~ a5 b5 d6 ~ a5 b5 d6 ~ a5 b5 d6 ~ a5 b5", G: "d6 ~@15", H: "~@2 b5 ~ a5 ~ f#5 ~ b5@3 a5@5, ~@8 a5 ~@7",
  I: "~@2 b5 ~ a5 ~@11",
})).s("gm_piccolo").gain(0.09)

// chords · epiano1 · "E Piano"
const epiano1 = note(`<
  ~@5 A B A C@3 A D A B A B A B A B A E A B F G A H A B A B A B A B A B A B A B A I A J A B K B A B A B A L@2 M N O A B
  A B A B A G P Q R S T U V W A B A X Y Z A AA Y AB@2 AC F B A AD AE AF AG AH AI M N O A G F AJ@2 AK AL AM AN AO AP AQ
  AR@3 AS AT AU AV AW AX AY AZ BA BB@2 BC BD BE BF@6 ~@2
>`.pickRestart({
  A: "[g3,b3,d4,f#4]", B: "[g3,b3,c#4,f#4]",
  C: "[[g3,b3,c#4,f#4]@15 ~@17 [g3,b3,c#4,f#4]@16, ~@15 b3@17 ~@16, ~ [g3,d4,f#4] ~, ~@21 b4@26 ~, ~@11 [d5,f#5]@13]/3", // Gmaj7 D
  D: "[g3,b3,c#4]@7 ~", E: "[g3,b3,c#4,f#4]@2 ~ [g3,b3,c#4,f#4] ~ [g3,b3,c#4,f#4] ~@2 [g3,b3,c#4,f#4]@8",
  F: "[g3,b3,d4,f#4]@15 ~", G: "[g3,b3,c#4,f#4]@15 ~", H: "[g3,b3,c#4,f#4]@7 ~",
  I: "~@13 d5@3, [g3,b3,c#4], f#4@3 f#4, ~ b4, ~@5 f#5@3", // C#m7b5
  J: "[g3,b3,c#4,f#4]@2 ~ [g3,b3,c#4,f#4] ~ [g3,b3,c#4] ~@2 [g3,b3,c#4,f#4]@8", // Gmaj7 C#m7b5 Gmaj7
  K: "~@3 [d5,f#5]@5, [g3,b3,d4], ~@5 b4@11", L: "[~ [c#4,f#4,a4], [b3,d4,e4,g4]]/2", M: "[c#4,f4,a4]", N: "[c4,e4,a4]",
  O: "[b3,d#4,f#4,a4]@15 ~", P: "e4@8 ~@5 c#5@3, [f#3,a3,e5], [c#4,c#5]@3 c#4, a4@5 a4@3, ~ e4",
  Q: "d#4@8 ~@5 [b4,f#5]@3, [f#3,b3], [b4,f#5]@13 ~@3, d#5@5 d#5@3, ~@2 d#4!2", // B5
  R: "e4@4 e4@2 ~ a4, [f#3,a3,c#4,c#5,e5], a4@7 ~, ~@3 e4", // F#m7
  S: "d#4@4 ~@2 b4@2 b4@3 ~@3 d#5 ~, [f#3,b3], d#5 g#5, b4@3 ~ d#5@2 d#4@2, ~@4 d#4@7 f#5@5", // B5
  T: "e4@4 ~@3 c#5, [f#3,a3,e5], c#5@3 c#4, c#4@5 a4@3, a4 e4", // F#m7
  U: "d#4@4 d#4@2 ~@7 b4@3, f#3, b3 d#5, d#5@7 d#4@4 b3@5, b4@3 b4@3 d#4@2",
  V: "[a4,b4]@3 ~@10 c#5 ~@2, [f#3,a3,c#4,e5], c#5@13 ~@3, e4@2 e4!2, ~@5 a4@3", // Asus2 F#m7
  W: "d#4@4 ~@2 b4@2 d#5 ~@2 f#5@4 ~, b3@15 ~, [d#5,f#5] ~, b4@6 ~@2 [b4,g#5]@7 ~, ~@4 d#4@11 ~", // D#m E
  X: "b3@6 ~@7 f#4@3, [g3,c#4], f#4@13 ~@3, ~ b3, ~@5 a4@3", Y: "b3@5 ~ g3@2, [d4,f#4], g3@3 ~, ~@5 b3@3",
  Z: "b3@7 b3, [g3,c#4,f#4]", AA: "[g3,b3]@5 ~ b4@2, [c#4,f#4], ~@5 b3@3",
  AB: "[[g3,b3,c#4,f#4]@15 ~@11 b4@6, ~@15 d4@5 d4@12, ~ g3, ~@9 f#5@7, ~@11 d5@5]/2", // Gmaj7
  AC: "~@12 a5@3 ~, [g3,b3,c#4,f#4,c#5,f#5]@15 ~", AD: "f#4@8 ~@5 d5@3, [g3,b3,c#4], ~ f#4, ~@5 f#5@3",
  AE: "~@5 a4@3, [g3,b3,d4,b4]", AF: "[g3,b3,c#4,c#5], f#4@3 ~", AG: "~@3 b4@2 f#5@3, [g3,b3,d4]",
  AH: "g4 ~@2 g4, [b3,e5,g5], d4 [d4,e4], b4@3 b4@2 [b4,d5]@3, ~ g4@2 ~", AI: "[c#4,f#4,a4]",
  AJ: "[f#4@5 ~@3 f#4@4 ~ [b4,d5]@3, [g3,b3,c#4] [g3,b3,d4], ~@3 a4 ~@4, ~@7 b4@6 ~@3]/2", // Bm C#m7b5 G
  AK: "[g3,b3,c#4,b4,c#5,f#5], f#4@3 ~", AL: "f#4@2 f#4 ~, [g3,b3,d4,d5,f#5], b4@7 ~",
  AM: "~@11 f#5@4 ~, [g3,b3]@15 ~, f#4 f#4@2 ~, ~@2 b4@4 b4@9 ~, ~@8 a5@7 ~", AN: "[g3,b3,d4,f#4,d5,f#5], b4@7 ~",
  AO: "f#4@3 ~@3 e5@2, [g3,b3,c#4]@15 ~, ~@6 f#4@9 ~, ~@8 b4@7 ~, ~@10 d5@5 ~", // C#m7b5
  AP: "f#4@6 ~ b4, [g3,b3,d4,d5,f#5], b4@7 ~, ~@3 f#4", AQ: "b4@3 ~@3 f#4@2, [b3,c#4,f#5], f#4@3 ~, g3 c#5, ~@3 b4@4 ~",
  AR: "[[f#4,b4]@6 ~@6 f#4@4 ~@10 g5@4 ~@8 b4@2 b4@3 ~ f#4@4, [g3,b3,d4,d5,f#5]@8 [g3,b3,c#4]@7 b3@9, ~@10 b5@21 ~ f#5@16, ~@16 f#4@4 f#4@2 a5@9 f#4 [b4,d5]@4 f#4@4 d5@3 [b4,e5]@5, ~@18 d5@13 [g3,d4]@17]/3", // B5 Gmaj7 C#m7b5 Bm E5 G5
  AS: "~ c#5 c#5@2, [g3,b3,f#4,b4]", AT: "d4@8 ~@5 [a4,d5]@3, [e3,g3,b3], d5@13 ~@3, [g4,b4]@5 g4@3, ~@2 d4!2",
  AU: "e4@2 ~@5 c#5, [a3,e5], c#5@7 ~, a4@5 a4@3, ~@2 e4!2", // A5
  AV: "d4@4 ~@9 [g4,d5]@3, b3, [b4,d5]@5 b4@3, g4@6 g4@7 ~@3, ~ d4 ~ d4", // G5 Bm
  AW: "e4 ~@2 [e4,a4,e5], a3, e5@4 c#5 c#4@3, c#5@3 a4@3 ~@2, a4 e4@2 ~", // A5
  AX: "d4@4 ~@9 f#5@3, [e3,g3,b3,g4], d5@5 [d5,g5]@3, b4@3 b4@5, ~ d4!3", // Em G5
  AY: "e4@2 ~@5 f#5, a3, e5 c#5, c#5@3 a4@5, a4 e4@2 e4",
  AZ: "d4@4 d4@3 ~@6 f#5@3, [b3,b4], g5@5 [d5,g5]@3, d5@7 ~ d4@4 d4@4", // B G5
  BA: "e4 ~@2 e4, [a3,e5], c#5@7 c#4@3 c#4@6, a4@3 a4 c#5@4, ~ e4@2 ~", // A5
  BB: "[d4@3 ~@5 b4@2 ~@3 d5@2 ~ e4@4 ~@6 a5@2 [e4,a5]@4, [e3,b3]@15 ~ [a3,a4]@16, d5@10 b4@5 ~ c#5@6 c#5@10, b4@6 g4@4 [g4,d5]@2 d4@3 c#4@9 e5@8, g4@4 d4@4 d4@3 e5@4 ~@5 e4@8 ~@4]/2", // A5 E5 A G5
  BC: "d4@3 ~@10 [b4,f#5]@3, [d5,g5]@5 [d5,g5]@3, b4@3 b3@5, ~ d4@2 d4, ~@8 b4@5 ~@3", // B5 G5
  BD: "e4 ~@2 [e4,a4,d5], [a3,e5], c#5!2, a4@3 a4@2 c#4@3, ~ e4@2 ~", // Dsus2 A5
  BE: "f#4@3 ~ f#4@2 ~@2 d5@2 [b4,d5]@2 [f#4,b4]@2 b4@2, [b3,d4], g3@7 ~, [b4,d5]@3 b4@2 f#5@2 ~, ~@3 [d5,a5]", // Bm B5 Bm D5
  BF: "[[g3,b3,f#4,b4,c#5,f#5]@3 [f#4,b4,c#5,f#5] ~ [f#4,b4,c#5,f#5] ~@2 f#4@3 ~ f#4@2 b4 ~@5 f#4@2 ~@6 f#4@2 ~@2 [g3,f#4]@2 ~ [c#4,f#4,b4,c#5] ~ [c#4,f#4,c#5] ~@2 b4@2 ~@2 [f#4,c#5]@3 ~ f#4@4 f#4@2 ~@6 f#4@3 ~ [f#4,b4,c#5]@3 [f#4,b4] ~ [b3,f#4,b4,c#5,f#5] ~@2 f#4@4 f#4@2 b4 ~ b4@6 ~@2 f#4@4 ~@4, ~@7 b3@8 b3@5 f#5@2 f#4@2 a5@2 b5@2 a5@2 b3@4 ~@5 b3@8 b3@12 f#5@4 b3@5 ~@3 b3@8 b3@16 ~, ~@8 [g3,c#4,b4,c#5,f#5]@7 ~ [g3,d4]@16 ~@8 [g3,f#5]@8 [g3,d4]@16 ~@8 [g3,b4,c#5,f#5]@7 ~ [g3,d4,d5]@16, ~@16 f#4@3 d5@13 ~@10 b4@4 ~@2 [b4,d5]@7 d5 f#5 a5@7 ~@32, ~@9 b4@7 ~@4 [f#4,c#5]@2 ~@5 b4@5 ~@8 f#4@2 ~ b4@5]/6", // Gmaj7 F#sus4 Gmaj7 F#sus4 F#5 F#sus4 B5 Bsus2 …
})).s("gm_epiano1").gain(0.15)

// chords · epiano1 · "E Piano" · soft notes
const epiano1_soft = note(`<
  ~@12 A ~@32 B C ~@2 D ~@22 E ~@2 F G ~@3 H ~@3 I ~@2 J K ~@3 L M N O ~@8 P Q N R S T ~@2 U V W X Y Z@2 AA@2 AB@5 AC@3
  AD AE AF AG AH AI AJ ~@2
>`.pickRestart({
  A: "f#4@7 ~", B: "g#3 ~@7", C: "~@5 f#4 ~@10", D: "f#4@5 f#4@11", E: "f#5 ~@10 b4@4 d#5", F: "~@7 c#5",
  G: "~@9 d#5@6 ~, f#3@15 ~, ~@7 f#5@4 ~@5", H: "~@3 b3 ~@4", I: "~@3 a4, ~@11 g3@5", J: "f#4, b4@5 ~@3",
  K: "~@9 a5@3 ~@4", L: "~@3 b4@3 b4@2", M: "f#4@2 f#4!2", N: "~@3 f#4", O: "f#4@2 ~ f#4, ~@2 f#4 ~, ~@5 b4@3",
  P: "~@5 f#4@3", Q: "~@2 f#4!2", R: "~@7 b4, ~@3 f#4", S: "b4 ~@5 f#5@5 ~ f#4@3 ~, c#4@15 ~", T: "~@7 b4",
  U: "~@7 b4, ~ g3", V: "~@3 f#4 f#4@2 ~@2, ~@5 b4@11", W: "~@8 f#4@4 f#4@3 ~", X: "~@13 d5@3",
  Y: "~ c#5 ~ a4@5, [c#4,f#5]", Z: "[~@11 b4@4 ~@5 e4@4 ~@6 b3@2, ~@15 c#4@12 c#4@5]/2",
  AA: "[~@10 d5@3 ~@2 c#4@11 ~@5 g3, [e3,g3]@8 ~@7 b3, ~@2 d4 ~@4 c#5]/2", // Em
  AB: "[~@15 c#4@8 ~@9 e3@15 c#4@8 ~ a4@2 a4@4 ~ b3 ~@13 g4@2 ~, ~@23 c#4@8 g3@17 ~@15 g3@16 ~, ~@13 e5@3 ~@15 [a4,d5] ~@8, ~@15 b3 ~@24]/5", // D5
  AC: "[~@10 c#4@5 b3 b3@6 b4@2 ~@7 c#4@11 ~@6, ~@15 g3@17 ~@16, ~ e3 ~]/3", AD: "~@7 f#4@5 ~@2 [g3,f#4,f#5]@2",
  AE: "c#4@3 [b3,c#4] c#5 [g3,b3,c#4] ~@9 d4", AF: "b4 ~@13 f#4@2", AG: "c#4@2 b4 b3 c#5 b4 ~@8 b4@2, ~ c#4",
  AH: "~@7 f#4@5 ~@2 d5@2", AI: "[c#4,f#5]@3 [c#4,c#5,f#5] c#5 c#4 ~@2 c#4@6 c#5 ~", AJ: "~ f#4 ~@2",
})).s("gm_epiano1").gain(0.07)

// chords · string ensemble 1 · "Stringz"
const string_ensemble_1 = note(`<
  ~@49 A B A B A B A C D E F G H@4 I@4 ~@8 J@7 ~ K@4 L@6 A M D E F G N@2 O@2 N@2 P@2 N@2 O@2 N@2 Q@2 ~@4 C R C S C T C R
  U R U R U ~@4
>`.pickRestart({
  A: "[b3,d4,f#4]", B: "[b3,c#4,f#4]", C: "[b3,d4,g4]", D: "[c#4,f#4,a4]", E: "~@3 b4, [c#4,f4,a4]", F: "[c4,e4,a4]",
  G: "[d#4,f#4,a4,b4]", H: "[a6@15 g6]/4", I: "[f#6@31 ~]/4", J: "[d4 c#4 d4 c#4 ~@3, a5@27 ~]/7", K: "b5/4",
  L: "[d4 c#4 b3 a3 d4 c#4, a5@47 ~]/6", M: "[b3,e4,g4]", N: "[d4@4 ~@3 g6, a6@7 ~, ~ c#4]/2",
  O: "[d4@16 ~@14 [b5,e6] f#6, f#6@15 ~, ~ c#4]/2", P: "[d4@16 c#4@14 b5 e6, f#6@15 ~]/2",
  Q: "[d4@16 c#4@15 ~, f#6@15 ~]/2", R: "[c#4,e4,a4]", S: "[c#4,e4,a4], a#4 ~@15", T: "[c#4,e4,a4]@15 ~",
  U: "[d4,f#4,b4]", // Bm
})).s("gm_string_ensemble_1").gain(0.04)

// other · overdriven guitar · "Guitar"
const overdriven_guitar = note("<~@57 A@2 B C D ~@7 E F@2 G@2 H I J K ~@19 L@2 B M N O P ~@34>".pickRestart({
  A: "[~@4 e4 f#4 a4@13 ~@3 e4@10]/2", B: "~@4 e4 f#4 a4@10",
  C: "~@2 d#4@2 ~@2 e4@2 ~@2 f#4@4 [b3,c4] [d3,e3,f3,g3,a3]", D: "[a2,b2,c3] ~@15",
  E: "~@6 g#5@5 ~ g#5@4, ~@6 f#5 ~@5 f#5 ~@3", F: "[c#5@6 c#5@4 b4@14 g#4 f#4 g#4@3 ~ g#4 a4, ~@6 b4 ~@25]/2",
  G: "[g#4@4 f#4 e4 f#4@4 e4 d4 e4@8 [d4,e4]@2 ~ c#4@3 e4@3 g#4@3]/2", // Dsus2
  H: "b4 b3 [b3,b4]!6 b3 ~ [f3,g3] [a3,b3] d#5@2 e5 ~, ~@9 b4@3 ~@4", I: "e5@2 d#5 c#5@3 d#5 e5",
  J: "e5@2 d#5 c#5 d#5@2 c#5 b4 c#5@2 b4 a4 b4@2 [f4,g4] [a3,b3,c4,d4,e4]", K: "[d3,e3,f3,g3] ~@15",
  L: "[~@4 [e4,f#4] ~@3 [e4,f#4] ~ a4@8 ~@14]/2", // Esus2
  M: "~@2 d#4@2 ~@2 e4@3 ~ f#4@4 [d4,e4,f4] [f3,g3,a3,b3,c4], ~@10 e4 ~@5", // Dm F
  N: "[g2,a2,b2,c3,d3,e3] f2 f#4 [g#4,b4,c5,d5] f#5@3 ~ [d5,e5,f#5] e5 d5!6, ~@4 e5 ~@11", O: "d5!2 ~ d5!12 ~",
  P: "d5 ~@15",
})).s("gm_overdriven_guitar").gain(0.25)

// other · overdriven guitar · "Guitar" · soft notes
const overdriven_guitar_soft = note("<~@60 A ~@13 B C D ~@24 E F ~@35>".pickRestart({
  A: "~@14 [d4,d#4,e4] ~", B: "~@10 [b3,a4] ~@3 d#5 ~", C: "~@5 d#5 ~@10, ~@2 e5 ~@5", D: "~@4 c#5 ~@9 a4 ~",
  E: "~ e2 ~@14", F: "~@2 d5 ~@12 d5",
})).s("gm_overdriven_guitar").gain(0.11)

// chords · brass section · "Hornz"
const brass_section = note("<~@57 A@2 B@2 C@4 ~@32 A@2 B@2 C@4 ~@33>".pickRestart({
  A: "[[a3,a4]@7 [b3,b4]]/2", B: "[[a3,a4]@15 ~]/2", C: "[b3@63 ~, d4 ~@3]/4",
})).s("gm_brass_section").gain(0.19)

// chords · brass section · "Hornz" · soft notes
const brass_section_soft = note("<~@61 A@4 ~@36 A@4 ~@33>".pickRestart({
  A: "[~@16 c#4@16 d4@16 c#4@15 ~, f#4@63 ~]/4",
})).s("gm_brass_section").gain(0.1)

// bass · electric bass pick · "1stBass"
const bass = note(`<
  ~@5 A B A C A C A C A B A C A C A C A B A C A C A C A C A C A C A C A C A C A C A C A C A C A C A C A C A C D E F G A
  C A C A C A C H I J K L M N O A C A C A C A C A C A C A C A C A C A C D E F G A P Q R S T U R U R V P W T X Y Z AA AB
  P AC AD AE AF AG AH AI AJ AK R AL AM AN AO AP AQ ~
>`.pickRestart({
  A: "e1@2 ~@5 e1 e1@2 ~@6", B: "a1@2 ~@5 a1!2 ~@7", C: "a1@2 ~@5 a1 a1@2 ~@6", D: "d2@2 ~ d2 ~ d2 ~@2 d2@6 ~@2",
  E: "c#2@2 ~ c#2 ~ c#2 ~@2 c#2@6 ~@2", F: "c2@2 ~ c2 ~ c2 ~@2 c2@6 ~@2", G: "b1@2 ~ b1 ~ b1 ~@2 b1@6 ~@2",
  H: "f#1 ~ f#1 ~@2 f#1 ~ c#1 f#1@2 ~@5 f#1", I: "b1 ~ b1@2 f#1 b1 ~ f#1 b1@2 ~ f#1 b1@2 c#2 f#1",
  J: "f#2 c#2 f#1 ~@2 f#1 ~ c#1 f#1@2 ~@5 f#1", K: "b1@2 ~ b1 ~ b1 ~ f#1 b1 ~@2 f#1 b1@2 c#2 f#1",
  L: "f#2 c#2 f#1@2 ~ f#1 ~ c#1 f#1@2 ~ d#1 f#1@2 g#1@2", M: "b1 ~ b1@2 g#1 b1 ~ f#1 b1 ~@2 f#1 b1@2 c#2 f#1",
  N: "f#2 c#2 f#1 ~@2 f#1 ~ c#1 f#1@2 ~@5 [f#1,g#1]", O: "b1 ~ b1 ~ f#1 b1 ~ f#1 b1@2 ~ f#1 b1@2 c#2@2",
  P: "a1@2 ~ a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1@2", Q: "e2 b1 e1 ~@2 a1 ~ e1!2 ~@5 g1 ~",
  R: "a1 ~@2 a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1 e1", S: "[e2,f2] b1 e1 ~@2 b1 ~ e1!2 ~@5 g1 e1",
  T: "a1@2 ~ a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1 e1", U: "e2 b1 e1 ~@2 e2 ~ e1 e1@2 ~@4 g1 e1",
  V: "e2 b1 e1 ~@2 a1 ~ e1!2 ~@2 e1 g1 ~ e1 ~", W: "e1 ~@4 e1 ~ e1 e1@2 ~@4 g1 e1",
  X: "e2 b1 e1 ~@2 e2 ~ e1 e1@2 ~ e1 g1 ~ e1 ~", Y: "a1@2 ~ a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1 ~",
  Z: "e1@2 ~@3 e1 ~ e1!2 ~@5 e1@2", AA: "a1@2 ~ a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1 [e1,g1]",
  AB: "e2 b1 e1 ~@2 e2 ~ e1!2 ~@5 e1 ~", AC: "e1 ~@4 e1 ~ e1 e1@2 ~ g1 e1@2 b1@2",
  AD: "a1 ~@2 a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 d2 e2", AE: "e1 ~ e1 ~@2 e1 ~ e1 e1@2 ~@4 e1@2",
  AF: "a1@2 ~ a1 ~ a1 ~ e1 a1 ~@2 e1 a1 ~ d2 e2", AG: "e1 ~ e1 ~ a1 e1 ~@2 e1@2 ~@2 a1 ~ e1 ~",
  AH: "a1@2 ~ a1 ~ a1 ~ e1 a1 ~@2 d2 a1 ~ d2 a1", AI: "e2 b1 e1 ~@2 e2 ~ e1!2 ~ b1 ~@3 e1 g1",
  AJ: "a1 ~@2 a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1@2", AK: "~@2 e1 ~@2 e1 ~ g1 e1@2 ~@2 a1 ~ e1 g1",
  AL: "e2 b1 e1 ~@2 e2 ~ g1 e1 ~@2 g1 e1@2 g1 ~", AM: "a1@2 ~ a1 ~ a1 ~ e1 a1@2 ~ e1 a1 b1@2 a1",
  AN: "e1 ~ e1 ~ a1 e1 ~ g1 e1@2 ~@2 [a1,d2] ~ e1 g1", AO: "a1 ~@2 a1 ~ a1 ~ e1 a1 ~@2 e1 a1@2 b1 [e1,f1,g1]",
  AP: "e2 b1 e1 ~@2 e2 ~ [f1,g1] e1 ~@2 g1 e1@2 g1@2", AQ: "a1 ~@2 a1 ~ a1 ~ e1 a1@2 ~@6",
})).s("gm_electric_bass_pick").gain(0.25)

// bass · slap bass 1 · "Slappy"
const bass_2 = note(`<
  ~ A@4 ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~@5 B ~
  A ~ B ~ A C D C D C D C D ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~@5 B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~
  B ~ A ~ B ~ A ~ B ~@3
>`.pickRestart({
  A: "~@14 d3 e3", B: "~@12 a3@2 d3 e3", C: "~@10 e3 ~ e3@4", D: "~@11 e3 d#3@3 ~",
// … 97 more lines

More by Boz Scaggs