Strudelify
Foreplay   Long Time cover art

1999 · Boston

Foreplay Long Time

Boston

KeyB♭ majorTempo110 bpm
0:00/0:00
// Foreplay   Long Time — Boston
// 110 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 156 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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 pick · "Music"
const bass = note(`<
  ~@7 A B C D E D E B E B E B E D E F@4 G@5 H I@8 ~@5 J K@2 L M@8 B E B E B E D E N A B C O E D P@2 Q R S ~@11 J T U V@2
  W X W Y Z AA Z AB AC X AD AE Z AA AF AB AC X AG AH AI@2 AJ@2 AK@2 AL AM A B C D E D E AN A D C AO E D P@2 Q R S ~@3 AP
  AQ@6 AR@4 ~@2
>`.pickRestart({
  A: "f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2", B: "f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 e1 ~",
  C: "f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@3 ~", D: "f1 ~ f1 ~ f1 ~ f1 e1", E: "f1 ~ f1 ~ f1 ~ f1 ~",
  F: "[f1@2 ~@2 f1@2 ~@6 eb2@2 ~@2 f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 e1 ~ f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@3 ~, ~ bb1@7]/4",
  G: "[f1@2 ~@2 f1@2 ~@6 eb2@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 e1@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2, ~ bb1@9]/5",
  H: "bb1!4", I: "[bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 ~@2 e1@2 f1@2 f1 ~@109, ~@3 bb1@29]/8", J: "~@5 d1 e1 f1",
  K: "[g1@15 ~ b1@2 d2@2 e2 d2 b1@2 d2@2 e2@2 ab1@2 a1@2, ~@15 bb1@17]/2", L: "bb1",
  M: "[~@6 bb1@2 bb1@2 bb1@2 ~@2 e1 ~ f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 e1 ~ f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 e1@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 e1@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2, f2@2 ~ bb1@29]/8",
  N: "f1 ~ f1 ~ bb1 ~ eb2 ~", O: "f1@2 ~@2 f1@2 ~@2 bb1@2 ~@2 eb2@3 f1", P: "c2 ~ c2 ~ c2 ~ c2 ~",
  Q: "bb1 ~ bb1 ~ bb1 ~ bb1 ~", R: "bb1@2 bb1 ~ bb1@2 bb1 ~ bb1@2 bb1 ~ bb1@2 e1@2", S: "f1@2 f1 ~@13", T: "g1@15 bb1",
  U: "b1@2 d2@2 e2 d2 b1@2 d2@2 e2@2 ab1@2 a1@2", V: "[~@22 bb1@2 bb1@2 bb1 ~ bb1 ~ e1 ~, bb1@11 ~@5, ~@2 f2 ~]/2",
  W: "f1@3 ~ f1@3 ~@9", X: "c2@2 c2@4 eb2@3 ~ bb1@4 f1@2", Y: "c2@2 c2@2 ~@2 eb2@4 bb1@4 e1 ~",
  Z: "f1@2 f1@2 f1@3 f1 f1@2 f1@2 f1@2 f1@2", AA: "c2@2 c2@3 ~ eb2@4 bb1@4 e1@2", AB: "c2 c2@2 eb2@2 bb1@2 ~",
  AC: "f1@2 f1!2 f1@2 a1 c2 f2@2 f1@2 c2@2 f1@2", AD: "f1@2 f1 e1 f1@2 f1 g1 f1 a1 c2 ~ f2@2 eb2 d2",
  AE: "c2@2 c2@2 ~@2 eb2@3 ~ bb1@4 e1 ~", AF: "f1@2 f1@2 f1@3 e1 a1 f1 f1@2 f1@2 f1@2", AG: "f1@2 f1!6", AH: "f1!7 g1",
  AI: "[ab1@12 ~@2 f1 g1]/2", AJ: "[ab1@27 ~ g1@2 bb1@2]/2", AK: "[c2@6 c2@8 c2@7 ~ c2@6 g1@2 bb1@2]/2", AL: "c2!4",
  AM: "c2@4 c2@2 c2@2 c2@2 [e2,g2] [c2,d2] ~ c2 a1@2", AN: "f1@2 ~@2 f1@3 ~ bb1@2 ~@2 eb2@4",
  AO: "f1 ~ f1 ~ bb1 ~ eb2@2", AP: "f1@2 f1 ~@2 c2 a1 bb1 eb2 ~ eb2@2 ~ eb2 ~ eb2",
  AQ: "[eb2@2 bb1@2 ~ bb1 ~@4 f1 c2 bb1@2 ~@2 f1 ~ f1 ~@5 eb2@2 eb2 ~@4 eb2 eb2@2 bb1@3 bb1 ~@10 f1@2 f1 ~@5 eb2@2 eb2 ~@4 eb2 eb2@2 bb1@3 bb1 ~@10 f1@2 f1 ~@5 eb2@2 eb2 ~@4 eb2, ~@3 bb1@3 ~ bb1@10 ~@2 bb1@14 ~@2 bb1@13]/6",
  AR: "[eb2@2 bb1@4 ~@10 f1!3 ~ c2@2 ~ c2 eb2!3 ~ c2 ~ eb2 g2 bb2@2 f2@2 d2 f1 bb1@25 ~, ~@3 bb1@8 bb1@8 ~@13]/4",
})).s("gm_electric_bass_pick").gain(0.36).pan(0.4)

// bass · electric bass finger · "Music"
const bass_2 = note("<~@4 [c2 ~@15] c2 ~@150>").s("gm_electric_bass_finger").gain(0.32).pan(0.9)

// chords · drawbar organ · "Scholz"
const drawbar_organ = note(`<
  ~@3 A@4 B C B C B D B D B D B D B D B D B D B D E D F G H@2 ~@17 B C B C B D B D B D B D B D B C B I B D B D F J H@2
  ~@17 K L M N O P Q R S L M N O P Q R T L U V W@2 X@2 Y@2 Z@2 B D B D B D B D B D B D B C AA G H@2 ~@17
>`.pickRestart({
  A: "[c3,g3,c4,e4,g4,c5]", B: "[c4,f4,a4]@3 ~ [c4,f4,a4]@3 ~ [eb4,g4,c5] ~ [eb4,g4,c5]@6",
  C: "[d4,f4,bb4] ~ [eb4,f4,bb4]@4 [d4,f4,bb4]@9 ~", D: "[d4,f4,bb4] ~ [eb4,f4,bb4]@3 ~ [d4,f4,bb4]@9 ~",
  E: "[c4,f4,a4]@3 ~ [c4,f4,a4]@3 ~ [eb4,g4,c5] ~ [eb4,g4,c5]@5 ~", F: "[c4,f4,a4] [c4,e4,g4]",
  G: "[c4,f4,a4]@3 e4@3 f4 e4, ~@3 [c4,g4]@4 ~", H: "[[bb3,f4,bb4]@7 ~]/2",
  I: "[d4,bb4] ~ [eb4,f4,bb4]@3 ~ [d4,f4,bb4]@9 ~, f4 ~@7", J: "[c4,f4,a4]@3 e4@3 f4 e4, ~@6 [c4,g4]@9 ~",
  K: "[f3,c4,f4,a4] ~ [f3,c4,f4,a4] ~@5", L: "[c4,eb4,g4]@2 [c4,eb4,g4]@4 [eb4,g4,bb4]@4 [bb3,d4,f4]@5 ~",
  M: "[f3,c4,f4,c5]@3 ~ [f3,c4,f4,c5]@2 ~@10", N: "[c4,eb4,g4] ~ [c4,eb4,g4]@4 [eb4,g4,bb4]@4 [bb3,d4,f4]@3 ~@3",
  O: "[f3,c4,f4,a4,c5]@2 [f3,c4,a4]@2 [f3,c4,f4,a4,c5]@3 [f3,c4,a4,c5] [f3,c4,f4,a4,c5]@2 [c4,f4,bb4]@2 [c4,f4,c5]@2 [f3,c4,f4,c5]@2", // F Fsus4 F5
  P: "[c4,eb4,g4] [c4,eb4,g4]@2 [eb4,g4,bb4]@2 [bb3,d4,f4,bb4]@2 ~", // Cm Eb Bb
  Q: "[f2,c4,f4,c5]@2 [c3,f4]@2 [f2,a3,c4,f4,c5]@3 [c3,a3,c4,f4,c5] [c3,a3,c4]@2 [c3,a3,c4]@2 [c4,f4,c5]@2 [c4,f4,c5]@2, a3 ~@3", // F5 F F5
  R: "[c4,eb4,g4] ~ [c4,eb4,g4]@4 [eb4,g4,bb4]@4 [bb3,d4,f4,bb4]@6", S: "[f3,c4,f4,a4]@3 ~ [f3,c4,f4,a4]@3 ~@9",
  T: "[f3,c4,f4,a4]@3 ~ [f3,c4,f4,a4]@3 ~ [f3,c4,f4,a4]@2 [f3,c4,f4,a4]@6", // F
  U: "[f3,a3,f4,c5,f5]@2 [f3,a3,f4,c5,f5]!5 [f3,a3,f4,a4,c5,f5]", V: "[f4,a4,c5,f5]!6 [f4,c5,f5] [g4,d5,g5]",
  W: "[[ab4,eb5,ab5]@27 ~ [f3,c4,f4,c5]@2 [g3,d4,g4,d5]@2]/2", // Ab5 F5 G5
  X: "[~@3 c4@4 bb3@4 ab3@3 [g3,d4,g4] [bb3,f4,bb4], [eb4,ab4,eb5]@13 ~@3, ab3@11 ~@5]/2", // G5 Bb5 Ab5
  Y: "[f5@6 ~@8 f4@8 ~ g4@5 [g3,d4,g4]@2 [bb3,f4,bb4]@2, [c4,c5]@13 ~@3, g4@7 ~@9, ~@6 e5@21 ~@5]/2", // G5 Bb5 C
  Z: "[[c4,g4,c5,e5,c6]@13 ~@3]/2", AA: "[c4,f4,a4]@7 ~ [c4,e4,g4]@8",
})).s("gm_drawbar_organ").gain(0.21)

// chords · overdriven guitar · "Tom"
const overdriven_guitar = note(`<
  ~@4 A B C ~@15 D E@3 F@5 G@8 ~@6 H@3 I@8 ~@9 J@4 K@4 L@8 ~@7 M@3 N@8 ~@10 O P@5 Q@8 ~@5 R@8 S ~@19
>`.pickRestart({
  A: "g5@7 ~, c5@3 ~", B: "[e5,g5,c6]", C: "[g5,c6] [e6,bb6] c7@13 ~",
  D: "~@6 [bb2,f3,bb3]!2 bb3@2 [bb2,eb3,bb3,eb4]!2 [bb2,eb3,bb3,eb4]@2 [f2,f3,c4]!2, ~@4 f3@3 ~, ~@8 bb2 ~@7", // Bb5 Eb5 F5
  E: "[~@2 f5, f3, [f2,c3,a3]@7 ~@5, ~@8 [f4,a4]@11 ~@5]/3", // F
  F: "[~@6 [bb2,f3,bb3]!2 bb2@2 [bb2,eb3,bb3,eb4]!2 bb3@2 [c3,f3,c4,f4]!2 ~@32 [a3,c4,f4]@7 ~ [g3,c4,e4]@8 [a3,c4,f4]@5 ~ [g3,c4,e4]@8 ~@2, ~@4 f3@3 ~ [c3,f3]@32, ~@8 bb3 ~@3 [bb2,eb3,eb4]@68, ~@8 [c4,f4]@13 ~@19, ~@32 f5@27 ~@21]/5", // Bb5 Eb5 F5 F C F C F5 …
  G: "[[bb2,f3], bb3@15 ~@113]/8", // Bb5
  H: "[~@10 [d3,a3,d4]@2 [e3,b3,e4]@2 [c4,f4]@2 [g3,d4,g4]@27 ~@3 [a2,e3,a3]@2, ~@7 f3@17]/3", // D5 E5 F5 G5 A5
  I: "[bb2 [d5,bb6] ~@6, f3, bb3@7 ~@25, ~ bb2@7]/8", // Gm
  J: "[~@6 [bb2,f3,bb3]!2 bb2@2 [bb2,eb3,bb3]!2 ~@2 [f3,c4,f4] [f3,c4] ~@32 f5@16, ~@8 f3@6 ~ f4@17 f4@32, ~@8 bb3 ~@3 [bb2,eb3,bb3,eb4]@52, ~ [c3,f3]@3, ~@16 [f2,a3]@16 a4@23 ~@9]/4", // Bb5 Eb5 F5 Eb5 F5 F
  K: "[~@6 [bb2,f3,bb3]!2 [bb2,bb3]@2 [bb2,eb3,bb3]!2 ~@2 [c3,f3,c4,f4]!2 ~@32 [a3,c4]@8 [g3,c4,e4]@8, ~@4 f3@3 ~ [c3,f3]@24, ~@3 [bb2,eb3,bb3,eb4]@13, ~ f4@2 f4, ~@16 c4@16 f5@27 ~@5]/4", // Bb5 Bb Eb5 F5 Am C F5 Eb5
  L: "[[a3,c4]@5 ~ [g3,c4,e4]@8 ~@2 [bb2,f3,bb3]@112, f4]/8", // Am C Bb5
  M: "[~@10 [d3,a3,d4]@2 [e3,b3,e4]@2 c4@2 [g3,d4,g4]@27 ~@3 [a2,e3,a3]@2, ~@7 [f3,f4]@17]/3", // D5 E5 G5 A5 F
  N: "[bb2 [d5,bb6] [f2,a3]@6, [f3,bb3], ~ bb2@7]/8", // Gm F Bb5
  O: "[c4,f4]@2 [f2,c3,f3,a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]!2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,e3,a3,c4,f4]@2 [a3,c4,f4]!2", // F5 F Fmaj7 F
  P: "[[c3,g3,c4,eb4,g4]@2 [c3,g3,c4,eb4,g4]@3 ~ [bb2,g3,bb3]@4 [f3,d4,bb4]@3 ~@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4]@2 [f2,c3,f3]@2 [g2,d3,g3]@2 db4@6 c4@8 ~@14 [f2,c3,f3]@2 [g2,d3,g3]@2, ~@3 [eb3,eb4]@21 [eb3,eb4]@11 c4@4 ~, ~ bb2@7, ~@5 bb3@19 [ab2,ab3]@7 bb3@9, ~@5 f4@3 ~@13 f4@19]/5", // Cm Eb Bb F F5 G5 F5 G5 …
  Q: "[db5@3 ~@4 bb5@4 ab5@3 [d3,g3,b3] [f3,d4] [c3,g3,c4]@5 [c3,g3,c4,e4]@9 [b2,g3,d4] d3 [e3,c4,g4]@2 [e3,c4,g4]@2 [e3,c4,g4]@2 [e3,c4,g4]@2 [e3,c4,g4]!7 ~@17, [bb2,eb3,eb4], [ab2,ab3,ab4]@27 ~@3 bb3@32 [bb3,f4]@66, ~@3 ab5@5 ~@8 f4@15 ~@9 c6@8 ~@16]/8", // G Dm C5 C G C Eb5 Ab …
  R: "[~@6 [bb2,f3,bb3,d4,f4]!2 [bb2,f3,bb3,d4]@2 [bb2,eb3,bb3,eb4] [bb2,eb3,bb3] ~@2 [c3,f3,c4,f4]!2 [f3,a3] ~@31 f5@22 [bb2,eb3]!2 bb2@2 [eb2,bb2] eb2 eb2@2 [f2,c3,f3] f3 ~@32 [a3,c4]@8 [g3,c4,e4]@8, ~@8 f4@6 ~@2 f4 [f3,a3]@15 a4@22 ~@21 bb2@53, ~@11 eb4@3 ~@2 [f2,c3]@16 f4@48 f3@48, ~@3 bb3@29, ~@12 [bb2,eb3]@58 ~@2 eb3@6 ~ [f2,c3] f4@16 a6@16 f4@16]/8", // Bb Eb5 F5 F Eb5 F5 Am C …
  S: "[a3,c4]@5 ~ [g3,c4,e4]@8 ~@2", // Am C
})).s("gm_overdriven_guitar").gain(0.38).pan(0.3)

// chords · acoustic guitar steel · "Tom"
const acoustic_guitar_steel = note("<~@93 A B C B D B E F G B C B D B E F ~@47>".pickRestart({
  A: "[c3,f3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@3 ~@9", // F5 F
  B: "[c3,g3,c4,eb4,g4]@2 [c3,g3,c4,eb4,g4]@3 ~ [bb2,eb3,g3,bb3,eb4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~@3", // Cm Eb Bb
  C: "[f2,c3,f3,a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@3 ~@9", // F
  D: "[f2,c3,f3,a3,c4,f4]@3 [a3,c4,f4] [f2,f3,a3,c4,f4]@3 [a3,c4,f4]!3 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f3,a3,c4,f4] [f3,a3,c4,eb4]", // F F7
  E: "[f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]!2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]!3 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4] [f2,c3,f3,a3,c4,f4]@3 ~", // F
  F: "[c3,g3,c4,eb4,g4] [c3,g3,c4,eb4,g4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,f3,bb3,d4,f4,bb4]@2 ~", // Cm Eb Bb
  G: "[f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4] [f2,c3,f3,a3,c4,e4] [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,e3,a3,c4,f4]@2 [a3,c4,f4]!2", // F Fmaj7 F Fmaj7 F
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.6)

// other · trumpet · "Tom"
const trumpet = note("<~@149 A B C D@2 ~@2>".pickRestart({
  A: "~@2 a4 [a4,bb4] f4 c4 f4 g4 bb4 c5 [f5,g5] [a5,bb5] a5 [f5,g5] [g5,a5] [bb5,c6]", // Bbmaj7 Fsus2 Bbmaj7 Fsus2 Gsus2 Bbsus2
  B: "eb6@2 d6 [d6,eb6]!3 [eb6,e6] [eb6,f6] d6@2 c6 [bb5,c6,d6] c6 [a5,bb5] a5 [g5,a5]", // Ebmaj7 Emaj7 Ebsus2 Bb Bbmaj7 Gsus2
  C: "[f5,g5]!2 a5@2 a5!3 bb5 d6 c6 [g5,a5,bb5] f5 g5 f5 g5 f5", D: "[g5 ~ bb5@4 d6@12 eb6 e6 ~@11 g6]/2",
})).s("gm_trumpet").gain(0.62).pan(0.2)

// other · trumpet · "Tom" · soft notes · Bbmaj7
const trumpet_soft = note(`<
  ~@153
  [~@3 f6@12 a6]
  [a6@2 bb6 a6 bb6 a6 [a6,bb6] bb6 [a6,bb6] bb6 [a6,bb6] bb6 [a6,bb6]!4, bb6 ~@15]
  ~
>`).s("gm_trumpet").gain(0.25).pan(0.2)

// chords · acoustic guitar steel · "Yngwie"
const acoustic_guitar_steel_2 = note(`<
  ~@33 A B C D E F G F H I J K@2 ~@30 A B C D E F G F H I J K@2 ~@67
>`.pickRestart({
  A: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ c4!2 ~ [f3,c4] [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~ eb3 [eb3,bb3]!3", // F F5 Eb Eb5
  B: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ [bb3,d4] [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb
  C: "[c3,f3,c4,f4,bb4]@2 [c3,f3,c4,f4,a4] ~ f3 c4 f3 c4 [bb2,eb3,bb3,eb4,ab4]@2 [bb2,eb3,bb3,eb4,g4] ~ eb3!2 [eb3,bb3] bb3", // Fsus4 F Ebsus4 Eb Eb5
  D: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ [f3,bb3] [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb Bb5 Bb
  E: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ [f3,c4]!2 c4!2 [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~ [eb3,bb3] bb3 eb3 [eb3,bb3]", // F F5 Eb Eb5
  F: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ [bb2,f3,bb3,d4] [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb
  G: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ [f3,c4]!3 ~ [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~ eb3 [eb3,bb3] eb3!2", // F F5 Eb Eb5
  H: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ [f3,c4] f3 [f3,c4] ~ [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~@2 [eb3,bb3] eb3 [eb3,bb3]", // F F5 Eb Eb5
  I: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ [f3,bb3,d4] [f2,bb2,f3,bb3,d4]@7 ~@3", // Eb Bb
  J: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ [f3,c4]!2 f3 ~ [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~ eb3 [eb3,bb3]!3", // F F5 Eb Eb5
  K: "[[d3,a3,d4,f4,a4]@25 ~@7]/2", // Dm
})).s("gm_acoustic_guitar_steel").gain(0.49).pan(0.7)

// chords · acoustic guitar steel · "Yngwie" · soft notes
const acoustic_guitar_steel_3 = note("<~@33 A B C D E ~ F ~ G H I ~@32 A B C D E ~ F ~ G H I ~@69>".pickRestart({
  A: "~@4 f3!2 [f3,c4] ~@5 bb3 ~@3", B: "~@5 [bb2,f3] ~@10", C: "~@4 c4 f3 c4 f3 ~@4 bb3!2 ~ eb3",
  D: "~@5 [bb2,d4] ~@10", E: "~@6 f3!2 ~@5 eb3 bb3 ~", F: "~@7 [f3,c4] ~@4 bb3 ~ bb3!2",
  G: "~@5 c4 ~ [f3,c4] ~@4 [eb3,bb3] ~ bb3 ~", H: "~@5 bb2 ~@10", I: "~@6 c4 [f3,c4] ~@4 bb3 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.33).pan(0.7)

// chords · distortion guitar · "Yngwie"
const distortion_guitar = note(`<
  ~@93 A B C D E F G H I J K L M N O P ~@30 Q R S T U V W X Y Z AA R S AB@4
>`.pickRestart({
  A: "~@7 [g4,a4] bb4 c5@7", B: "[bb4,c5] bb4 [bb4,c5]!3 bb4 [bb4,c5]!2 bb4 [bb4,c5]!3 bb4 [bb4,c5]!3",
  C: "a4@4 [a4,bb4]!2 [c5,d5] [bb4,c5] bb4 [c5,d5] [e5,f5,g5] a5 [bb5,c6] a5 [f5,g5,a5] [a5,b5]", // Bbmaj7 Csus2 Bbsus2 Csus2 Em Bbsus2 F Asus2
  D: "bb5 [g5,ab5,a5] gb5 [eb5,e5,f5] [db5,d5] [b4,c5] [a4,bb4] [g4,ab4] [f4,bb4] [c5,d5] c5 [g4,bb4] [d4,f4] bb4 g4 c5", // Dmaj7 Cmaj7 Bbmaj7 Abmaj7 Bb5 Csus2 Gm Dm
  E: "a4@4 f5@6 [e5,f5]!3 e5 [bb4,f5]@2", F: "c5@2 eb5 c5 bb4 c5 eb5 c5 bb4 c5 eb5 c5 [a4,bb4] c5 eb5 c5",
  G: "a4 [bb4,c5] eb5 c5 [bb4,c5] [c5,eb5] [a4,bb4] c5 [bb4,c5,eb5] [a4,bb4] [c5,eb5] c5 [a4,bb4] c5 [bb4,c5,eb5] a4", // Bbsus2 Cm Bbmaj7 Cm7 Bbmaj7 Cm Bbmaj7 Cm7
  H: "[bb4,c5] eb5 c5 [b4,eb5] [bb4,db5,d5] [a4,c5] [ab4,b4] g4 [gb4,a4,bb4] [f4,ab4] [e4,g4] eb4 [d4,f4,gb4] [db4,e4] c4 [b3,eb4]", // Bbsus2 B Bb Am Abm Gb Fm Em …
  I: "[d4,c5] [c5,f5] f5 bb5 c6@5 ~ c6!2 ~ c6 d6 c6", // D7 F5
  J: "bb5 [c6,eb6] [eb6,f6] [c6,d6] [bb5,c6] c6 [d6,eb6] c6 [bb5,c6] [c6,d6] bb5 [c6,d6] [a5,bb5] [f5,g5] g5 a5", // Cm Ebsus2 Csus2 Bbsus2 Ebmaj7 Bbsus2 Csus2 Bbmaj7 …
  K: "f5 d5 c5 a4 [a4,c5] [g4,d5] c5 a4 g4 a4 ~ f4 g4 f4 d4 c4", // Am G5
  L: "d4 c4 a3 g3!2 f3 d3 f3 d3 c3 [g2,bb2] a2!2 ~ bb2 a2", M: "bb2@6 [a2,c3] a2 c3 [a2,c3] bb2@2 a2 bb2 [a2,bb2] ~",
  N: "c3@3 a2 c3 bb2@5 [g2,a2] f2 d2@2 g2 f2, ~@12 e2 ~@3", O: "a2@2 f3@13 ~",
  P: "c2@3 eb2 e2 [eb2,e2] eb2@2 [f2,g2]!2 e2 [f2,a2]@2 [f2,a2] c3 [f3,ab3,bb3]", // Emaj7 Fsus2 F Bb7
  Q: "~@2 [c3,f3,c4,f4,a4] ~ c4!2 ~@2 [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~@2 bb3 [eb3,bb3]!2", // F Eb Eb5
  R: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ [bb3,d4] [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb
  S: "[c3,f3,c4,f4,bb4]@2 [c3,f3,c4,f4,a4] ~ f3 c4 f3 c4 [bb2,eb3,bb3,eb4,ab4]@2 [bb2,eb3,bb3,eb4,g4] ~@3 [eb3,bb3] bb3", // Fsus4 F Ebsus4 Eb Eb5
  T: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ bb3 [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb
  U: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ [f3,c4] f3 ~@2 [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~ [eb3,bb3] bb3 eb3 ~", // F F5 Eb Eb5
  V: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~@2 [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb
  W: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ c4 [f3,c4]!2 ~ [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~ eb3 [eb3,bb3] ~ eb3", // F F5 Eb Eb5
  X: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ [bb2,bb3,d4] [f2,bb2,f3,bb3,d4]@9 ~", // Eb Bb
  Y: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ [f3,c4] f3 [f3,c4] ~ [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~@2 bb3 ~ eb3", // F F5 Eb
  Z: "[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ d4 [f2,bb2,f3,bb3,d4]@7 ~@3", // Eb Bb
  AA: "[c3,f3,c4,f4,a4]@2 [c3,f3,c4,f4,a4] ~ c4!2 ~@2 [bb2,eb3,bb3,eb4,g4]@2 [bb2,eb3,bb3,eb4,g4] ~@2 bb3 [eb3,bb3]!2", // F Eb Eb5
  AB: "[[bb2,eb3,bb3,eb4,g4]@2 [f2,bb2,f3,bb3,d4]@2 ~ bb3 f2@44 ~@14, ~@3 d4@21 ~@8]/4", // Eb Bb
})).s("gm_distortion_guitar").gain(0.5).pan(0.4)

// chords · distortion guitar · "Yngwie" · soft notes
const distortion_guitar_soft = note("<~@101 A ~ B ~@4 C ~@30 D E F G H I J K L M D E F N@4>".pickRestart({
  A: "~@9 d6!4 bb5 ~@2", B: "~@8 ab4!2 f4 ~@5", C: "~@2 e2 ~@13", D: "~@4 f3!2 [f3,c4]!2 ~@4 [eb3,bb3] eb3 ~@2",
  E: "~@5 [bb2,f3] ~@10", F: "~@4 c4 f3 c4 f3 ~@4 [eb3,bb3]!2 ~ eb3", G: "~@5 [bb2,f3,d4] ~@10",
  H: "~@5 c4 [f3,c4]!2 ~@5 eb3 bb3 [eb3,bb3]", I: "~@5 [bb2,f3,bb3,d4] ~@10",
  J: "~@4 f3 ~@2 [f3,c4] ~@4 bb3 ~ [eb3,bb3] bb3", K: "~@5 f3 ~@10",
  L: "~@5 c4 ~ [f3,c4] ~@4 [eb3,bb3] eb3 [eb3,bb3] bb3", M: "~@5 [bb2,f3,bb3] ~@10",
  N: "[~@5 [bb2,f3,d4] [bb2,f3,bb3]@43 ~@15]/4", // Bb Bb5
})).s("gm_distortion_guitar").gain(0.3).pan(0.4)

// chords · trumpet · "Doc & Herb"
const trumpet_2 = note(`<
  ~@14 A B@2 C D E F@3 G@2 H I J@2 K@2 L@2 ~@3 M N O P Q R S T U ~ V@3 W ~@7 X@3 Y@3 Z AA@2 AB@2 AC AD AE@2 AF@2 AG AH
  ~@3 AI AJ AK AL AM AN AO AP@2 ~ AQ@3 AR ~@27 AS AT@2 AU@2 AV AW AX AY AZ@2 BA BB BC@2 BD@2 BE@2 ~@3 BF BG BH BI@3 BJ
  BK BL BK BM ~@3
>`.pickRestart({
  A: "~@8 c5@2 f5 ~ f5@2 c5@2", B: "[a5@4 g5@2 f5@14 ~@2 c5 ~ f5@2 f5 ~ f5@2 g5 ~]/2", C: "g5@3 gb5 f5@10 c5 [eb5,gb5]",
  D: "g5@2 a5@9 ~@4 [f5,g5]", E: "a5@4 g5@2 f5@2 f5@2 g5@4 f5 c5",
  F: "[d5@5 ~ c5 ~ f5 ~ f5@4 g5@8 a5 g5 f5@17 ~@3 d5@2 f5 ~]/3",
  G: "[[a5,c6]@3 ~ [g5,bb5]@2 [f5,a5]@14 ~@4 f5@2 f5 ~ f5@2 g5 ~]/2", H: "g5@3 ~ f5@9 ~ g5@2, f5 ~@15",
  I: "~@2 a5@8 c5 ~ f5@2 [f5,a5] ~, ~@2 ab5 ~@9 a5 ~@3", // F
  J: "[[a5,c6]@4 [g5,bb5]@2 [f5,a5] ~ [f5,a5]@2 [f5,a5]@2 [f5,a5]@2 g5@3 f5@3 ~@2 f5@2 [a5,c6]@2 [a5,c6]@2 [bb5,c6]@2 [a5,c6]@2, ~@7 bb5@3 ~@6]/2", // Am Gm F Am Bbsus2 Am
  K: "[[a5,c6]@6 [g5,c6]@2 [g5,c6]@11 ~@3 c5@2 e5@2 e5@2 f5@2 e5@2]/2", L: "[e5@5 ~ d5@4 c5@4 a5@15 ~@3]/2",
  M: "~@6 f5 g5",
  N: "g5 a5 [f4,c5,f5,a5]@2 [f4,c5,f5,a5]@2 [eb5,bb5] [f5,a5] [eb5,bb5]@2 f5@2 g5@3 ~, [f4,c5,f5] ~@2 [eb4,bb4]@2 ~@3", // F Eb5 F Eb5 F5 Eb5
  O: "a5@2 g5@2 f5@2 ~ c5 d5@7 ~, ~@3 f4@4 ~, ~@3 d5 ~@4", P: "a5@2 a5@2 [g5,a5] ~ bb5@2 ~ a5@2 ~ g5 ~ f5@2",
  Q: "g5@2 f5@3 ~ f5@5 ~ f5@2 g5@2",
  R: "[f4,c5,f5,a5]@2 [c5,f5,a5]@2 [f4,c5,f5,a5]@2 bb5 a5 bb5@2 eb5@2 f5 eb5@2 ~, ~@2 f4 ~@3 [eb4,bb4,eb5,g5]@4 ~@6", // F Eb
  S: "g5@2 ~ eb5@2 ~ d5@5 ~@3 eb5 f5, f5 ~ f5@2 ~@12", T: "a5@2 g5@2 f5 g5 d5@2 f5@2 g5@3 f5 c5 ~, ~@6 f5 ~@9",
  U: "d5@13 ~@3", V: "[~@13 f5 g5@4 bb5@2 bb5 ~ g5 ~ bb5@4 g5@2 f5@5 ~@5 g5@2 bb5 ~ bb5@2 g5 ~, ~@14 gb5 ~@33]/3",
  W: "d6@6 c6 bb5@9",
  X: "[~@6 [c4,f4]@4 [f4,g4]@2 [g4,bb4]@2 [a4,c5]@4 [a4,c5]@4 [g4,bb4] c5@2 [g4,bb4] a4@4 bb4@7 ~@3 [f4,bb4,d5]@2 [f4,bb4]@2 [f4,bb4]@2 [g4,c5,g5]@2, ~@22 a4@2 ~@2 f4@11 ~@5 f5 ~ f5 ~@3]/3", // F5 Fsus2 Gm Am Gm Bb Bb5 C5
  Y: "[[g4,bb4,g5]@4 f5@6 a5 ~ g5 a5 ~ c6 d6 ~@7 [a4,d6]@2 [f4,a5]@2 [g4,bb4,bb5]@2 [a4,c5,f5]@9 ~ [c5,f5]@2 [c5,f5]@2 [bb4,d5]@2 [c5,f5] [a4,d5], [a4,f5] ~@3 [f4,a4]@19 ~ f4 ~ a4 ~@21]/3", // Gm D5 F Gm F F5 Bb F5 …
  Z: "[f4,bb4]@5 ~ c4@2 [e4,bb4]@2 [f4,bb4]@2 f4@2 [g4,c5]@2, ~@6 bb4 ~@5 bb4 ~@3", // Bb5 Edim Bb5 C5
// … 125 more lines

More by Boston