Strudelify
Can't Get Enough cover art

Bad Company

Can't Get Enough

Bad Company

KeyB♭ majorTempo128 bpm
0:00/0:00
// Can't Get Enough — Bad Company
// 128 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 131 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): MUTED GTR.
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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A@3 B C@3 B D@6 E F G@2 H I J K L M N O P Q C@3 B D@4 R@2 D@2 G@2 H I J K L M N S P Q D@4 E T E U V W X Y Z AA AB AC
  AD AE AF AG AH AI AJ AK AL AM P Q AN AO AP AQ AR AM AS AT AU AV AU AW AU AX AY AZ BA BB BC BD BE BF BG@2 BH BI BH BJ
  BH BI BK BL BM AM BM BN BO BN BP BQ BR@3 B C@3 BS@2 ~
>`.pickRestart({
  A: "[bb1@34 ~@2 ab1@3 ~ ab1@2 ~@4 eb2@22 ~@2 ab1@2]/3", B: "~@2 eb2@9 ab1",
  C: "[bb1@34 ~@2 ab1@3 ~ ab1@2 ~@4 eb1@21 ~@3 ab1@2]/3",
  D: "[bb1@6 ~@4 bb1@2 ab1@6 ~@4 eb2@4 ~@2 eb2@2 g1@2 ~@4 ab1@3 ~ ab1@2 a1@3 ~@3]/2", E: "bb1@3 ~@2 bb1 ab1@3 ~@2 eb2",
  F: "eb2@2 ~@2 eb2@2 g1@2 ~@4 ab1@3 ~ ab1@2 a1@3 ~@3", G: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~",
  H: "ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1 ~", I: "eb2@7 ~@5 db2@2 ~@4 db2@3 ~@3",
  J: "bb1 ~@3 bb1 ~ bb1 ~@3 bb1@2 bb1 ~@3 bb1@2 bb1@2 ~@2 db2@2",
  K: "eb2 ~@3 eb2@2 eb2 ~@3 eb2@2 eb2 ~@3 eb2@2 eb2 ~@3 ab1@2",
  L: "bb1 ~@3 bb1 ~ bb1 ~@3 bb1@2 bb1@2 ~@2 bb1@2 db2@2 ~@2 db2 ~",
  M: "eb2 ~@3 eb2@2 eb2 ~@3 eb2@2 eb2@2 ~@2 eb2@2 ab1@2 ~@2 ab1 ~",
  N: "bb1 ~@3 bb1 ~ bb1 ~@3 bb1@2 bb1 ~@3 bb1@2 db2@2 ~@2 db2@2",
  O: "eb2@2 ~@2 eb2@2 eb2 ~@3 eb2 ~ eb2 ~@3 eb2@2 eb2@2 ~@2 eb2@2", P: "f2@8 ~@2 bb1@2 ~@4 bb1@3 ~@3 bb1@2", Q: "f2",
  R: "[bb1@7 ~@3 bb1@2 ab1@6 ~@4 eb2@4 ~@2 eb2@2 g1@2 ~@4 ab1@3 ~ ab1@2 a1@3 ~@3]/2",
  S: "eb2@2 ~@2 eb2@2 eb2 ~@3 eb2@2 eb2 ~@3 eb2@2 eb2@2 ~@2 eb2@2", T: "~@4 eb2@2 g1@2 ~@4 ab1@3 ~ ab1@2 a1@3 ~@3",
  U: "~@2 eb2 d1@3 eb1@3 e1@3", V: "f1 ~@3 f1@2 a1 ~@3 a1@2 c2 ~@3 c2@2 d2 ~@3 d2@2",
  W: "f2 ~@3 f2@2 eb2 ~@3 eb2@2 c2 ~@3 c2@2 a1 ~@3 a1@2",
  X: "ab1 ~@3 ab1@2 ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1 ~ ab1 ~@3 ab1 ~", Y: "eb2@10 ~@2 db2@3 ~@3 db2@3 ~@3",
  Z: "bb1 ~ bb1 c2 ~ c2 db2 ~ db2 d2 ~ d2", AA: "eb2@2 ~@2 eb2@2 g1@2 ~@2 g1@2 ab1 ~@3 ab1@2 a1@2 ~@2 a1@2",
  AB: "bb1 ~@3 bb1@2 c2@2 ~@2 c2@2 db2 ~@3 db2@2 d2 ~@3 d2@2",
  AC: "eb2 ~@3 eb2@2 g1@2 ~@2 g1@2 ab1@2 ~@2 ab1@2 a1@2 ~@2 a1@2",
  AD: "bb1 ~@3 bb1@2 c2@2 ~@2 c2@2 db2@2 ~@2 db2@2 d2 ~@3 d2@2",
  AE: "eb2@2 ~@2 eb2@2 g1@2 ~@2 g1@2 ab1 ~@3 ab1@2 a1 ~@3 a1 ~", AF: "f2@7 ~@3 bb1@2 ~@4 bb1@6 eb2@2", AG: "f2@23 ~",
  AH: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 bb1 ~@3 bb1@2 bb1@2 ~@2 db2@2",
  AI: "eb2 ~@3 eb2@2 eb2 ~@3 eb2 ~ eb2 ~@3 eb2@2 eb2@2 ~@2 ab1@2",
  AJ: "bb1@2 ~@2 bb1@2 bb1 ~@3 bb1@2 bb1@2 ~@2 bb1@2 db2@2 ~@2 db2 ~",
  AK: "eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2@2 eb2@2 ~@2 eb2@2 ab1@2 ~@2 ab1 ~",
  AL: "bb1 ~@3 bb1 ~ bb1 ~@3 bb1@2 bb1 ~@3 bb1@2 db2@2 ~@2 db2 ~",
  AM: "eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2@2 eb2@2 ~@2 eb2@2 eb2@2 ~@2 eb2 ~",
  AN: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 bb1@2 ~@2 bb1@2 bb1@2 ~@2 db2@2", AO: "eb2 ~ eb2!2 ~ eb2!2 ~ eb2!2 ~ ab1",
  AP: "bb1 ~@3 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 db2@2 ~@2 db2 ~",
  AQ: "eb2@2 ~@2 eb2@2 eb2@2 ~@2 eb2@2 eb2@2 ~@2 eb2@2 ab1@2 ~@2 ab1 ~",
  AR: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 bb1@2 ~@2 bb1@2 db2@2 ~@2 db2 ~",
  AS: "f1@2 ~@2 f1@2 f1@2 ~@2 f1@2 f1@2 ~@2 f1@2 f1@2 ~@2 f1 ~",
  AT: "f1@2 ~@2 f1@2 f1@2 ~@2 f1 ~ f1@2 ~@2 f1@2 f1@2 ~@2 f1@2", AU: "bb1 ~ bb1 g2 ~ g2 bb2 ~ bb2 g2 ~ g2",
  AV: "eb2@2 ~@2 eb2@2 c3@2 ~@2 c3@2 bb2 ~@3 bb2@2 g2@2 ~@2 g2@2",
  AW: "eb2 ~@3 eb2@2 c3@2 ~@2 c3@2 bb2 ~@3 bb2@2 g2@2 ~@2 g2@2",
  AX: "eb2@2 ~@2 eb2@2 c3@2 ~@2 c3@2 bb2 ~@3 bb2@2 g2@2 ~@2 g2 ~",
  AY: "f2@3 ~ f2@2 eb2@3 ~ eb2 ~ d2@3 ~ d2 ~ c2@3 ~ c2@2", AZ: "ab2@3 ~ ab2@2 g2@2 ~@2 g2 ~ ab2@2 bb2@2 g2@2 f2@5 ~",
  BA: "bb1@3 ~ bb1 ~ g1@3 ~ g1@2 bb1@2 ~@2 bb1@2 g1@3 ~ g1@2",
  BB: "eb1@3 ~ eb1@2 g1@3 ~ g1@2 bb1@3 ~ bb1@2 c2@3 ~ c2@2",
  BC: "bb2@3 ~ bb2@2 g2@3 ~ g2@2 bb2@2 ~@2 bb2@2 g2@3 ~ g2@2",
  BD: "eb2@3 ~ eb2@2 g1@3 ~ g1@2 ab1@3 ~ ab1@2 a1@3 ~ a1@2", BE: "bb1@3 ~ bb1@2 d2@3 ~ d2@2 eb2@3 ~ eb2@2 e2@4 f2@2",
  BF: "eb2@2 ~@2 eb2@2 g2@3 ~ g2@2 bb2@3 ~ bb2@2 c3@4 bb2@2", BG: "f2@3 ~ f2 ~ f2@3 ~ f2 ~ f2@3 ~ f2 ~ f2@3 ~ f2 ~",
  BH: "bb2@3 ~ bb2@2 ab2@3 ~ ab2@2 g2@3 ~ g2@2 f2@3 ~ f2@2",
  BI: "eb2@3 ~ eb2 ~ db2@3 ~ db2@2 c2@3 ~ c2@2 bb1@3 ~ bb1@2",
  BJ: "eb2@3 ~ eb2@2 db2@3 ~ db2@2 c2@3 ~ c2@2 bb1@3 ~ bb1@2", BK: "f2@8 ~@2 bb1@3 ~@3 bb1@3 ~@3 bb1@2",
  BL: "f2@5 ~ eb2@6 d2@5 ~ c2@5 ~", BM: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 bb1@2 ~@2 bb1@2 bb1@2 ~@2 bb1 ~",
  BN: "eb2 ~ eb2!2 ~ eb2!2 ~ eb2!2 ~ eb2", BO: "bb1 ~@3 bb1 ~ bb1 ~@3 bb1 ~ bb1 ~@3 bb1@2 bb1@2 ~@2 bb1 ~",
  BP: "f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~", BQ: "f2 ~ f2 ~ f2@2 f2@2 ~@2 f2 ~ f2@4 ~@2 f2@5 ~",
  BR: "[bb1@33 ~@3 ab1@3 ~ ab1@2 ~@4 eb2@22 ~@2 ab1@2]/3", BS: "[~ eb1@11]/2",
})).s("gm_acoustic_bass").gain(0.72)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@10 A ~ B ~ A ~ C D E ~@2 F G@4 H ~@7 A ~ B ~ A ~ C D E ~@2 F G@4 H ~@3 I ~ B ~ A ~ C D E ~@2 F G@4 H ~@2 F G@4 H ~@2
  F G@4 H ~@2 F G@4 H ~@2 F G@4 H ~@2 F G@4 H ~@2 F G@4 H ~@12
>`.pickRestart({
  A: "~@6 bb3@3 ~ [bb3,eb4] ~@5 [bb3,eb4] ~ bb3@5 ~", B: "~@6 bb3@3 ~ [bb3,eb4]@2 ~@4 [bb3,eb4]@2 bb3@5 ~",
  C: "~@6 bb3@3 ~ [bb3,eb4]@2 ~@4 [bb3,eb4]@2 bb3@3 ~ [bb3,eb4]@2", D: "~@13 [c4,f4]@5 ~@6", E: "~@12 [c4,f4]@5 ~@7",
  F: "~@2 bb4 ~@8 f4", G: "[bb3@3 ~@19 bb4@4 ~@2 bb4@2 ~@16 f4@2]/2", H: "bb3@3 ~@19 [bb3,eb4]@2",
  I: "~@6 bb3@4 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ bb3@5 ~", // Eb5
})).s("gm_electric_guitar_muted").gain(0.48)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~ A@3 B A@3 B C D E@2 C D E@2 F G H I J@6 K L A@3 B C D E@2 M D E@2 F G H I N@6 K L O D E@2 P D E@2 G@2 Q I N@6 R L
  S@6 R L T@6 U V N@6 W X Y@6 R Z N@6 R AA AB@6 K AC A@3 B A@3 AD@2 ~
>`.pickRestart({
  A: "[[f4,bb4,d5]@33 ~@3 [c5,eb5,ab5]@3 ~ [c5,eb5,ab5]@2 ~@4 [bb4,eb5,g5]@21 ~@3 [c5,eb5,ab5]@2]/3", // Bb Ab Eb Ab
  B: "~@4 [bb4,eb5,g5]@19 ~", // Eb
  C: "[bb4,d5,f5]@3 ~@3 [bb4,d5,f5]@2 ~@4 [ab4,c5,eb5]@2 ~@2 [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@2", // Bb Ab Eb
  D: "~@4 [bb4,eb5,g5] ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~ [eb4,ab4]@2", // Eb Ab Eb Ab Ab5
  E: "[[bb4,d5,f5]@3 ~@3 [bb4,d5,f5]@3 ~@3 [ab4,c5,eb5]@3 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@4 ~@4 [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3]/2", // Bb Ab Eb Ab Eb Ab
  F: "[f4,c5,f5]@5 ~ [f4,c5,f5]@11 ~ [f4,c5,f5]@6", G: "[f4,c5,f5]@5 ~ [f4,c5,f5]@11 ~ [f4,c5,f5]@5 ~",
  H: "[c5,eb5,ab5] ~ [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2", // Ab
  I: "[bb4,eb5,g5]@7 ~@5 [ab4,db5,f5]@3 ~@3 [ab4,db5,f5]@4 ~@2", // Eb Db
  J: "[[bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@8 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3, f4@2 ~@20 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@19 f4@5 ~@45, ~@96 [bb4,d5]@6 ~@16 bb4@5 ~@21]/6", // Bb Eb Bb Eb Ab Eb Ab Bb …
  K: "[c5,f5,a5]@8 ~@2 [d5,f5,bb5]@3 ~@3 [d5,f5,bb5]@2 ~@4 [d5,f5,bb5]@2", L: "[c5,f5,a5]@23 ~",
  M: "[bb4,d5,f5]@3 ~@3 [bb4,d5,f5]@2 ~@4 [ab4,c5,eb5]@3 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@2", // Bb Ab Eb
  N: "[[bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3, f4@2 ~@20 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@21]/6", // Bb Eb Bb Eb Ab Eb Ab Bb …
  O: "[bb4,d5,f5]@2 ~@4 [bb4,d5,f5]@2 ~@4 [ab4,c5,eb5]@2 ~@2 [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@2", // Bb Ab Eb
  P: "[bb4,d5,f5]@2 ~@4 [bb4,d5,f5]@2 ~@4 [ab4,c5,eb5]@3 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@2", // Bb Ab Eb
  Q: "[c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5]@2 [c5,eb5,ab5] ~ [c5,eb5,ab5]@2 [c5,eb5,ab5]@2", // Ab
  R: "[c5,f5,a5]@4 ~ [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5]", // F Bb
  S: "[[bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@3 ~@3 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@2 ~@4 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3, f4@2 ~@20 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@21]/6", // Bb Eb Bb Eb Ab Eb Ab Bb …
  T: "[[bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@3 ~@3 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3, f4@2 ~@20 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@21]/6", // Bb Eb Bb Eb Ab Eb Ab Bb …
  U: "[c5,f5]@5 ~ [c5,f5]@5 ~ [c5,f5]@5 ~ [c5,f5]@3 ~ [c5,f5]@2", V: "[c5,f5]@6 [c5,f5]@5 ~ [c5,f5]@5 ~ [c5,f5]@6",
  W: "[c5,f5] ~ [c5,f5] ~ [c5,f5]@2 [c5,f5]@2 [c5,f5] ~ [c5,f5]@2 [c5,f5]@2 [c5,f5] ~ [c5,f5]@2 [c5,f5]@2 [c5,f5] ~ [c5,f5]@2", // F5
  X: "[c5,f5] ~ [c5,f5] ~ [c5,f5]@2 [c5,f5] ~ [c5,f5] ~ [c5,f5]@2 [c5,f5] ~ [c5,f5] ~ [c5,f5]@2 [c5,f5]@2 [c5,f5] ~ [c5,f5]@2", // F5
  Y: "[[bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@2 ~@4 [c5,eb5,ab5]@2 ~@8 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3, f4@2 ~@20 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@19 f4@5 ~@45, ~@96 [bb4,d5]@6 ~@16 bb4@5 ~@21]/6", // Bb Eb Bb Eb Ab Eb Ab Bb …
  Z: "[c5,f5,a5]@6 [c5,f5,a5]@5 ~ [c5,f5,a5]@5 ~ [c5,f5,a5]@6", // F
  AA: "[c5,f5,a5]@5 ~ [c5,f5,a5]@5 ~ [c5,f5,a5]@6 [c5,f5,a5]@6", // F
  AB: "[[bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@2 ~@4 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@4 [bb4,d5]@4 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@2 ~@8 f4 ~ [g4,bb4,eb5]@2 ~@4 [f4,bb4,d5]@3 ~@3 [g4,bb4,eb5]@2 ~@4 [eb5,g5]@4 bb4 ~ [c5,eb5,ab5]@3 ~@3 [bb4,eb5,g5]@3 ~@3 [c5,eb5,ab5]@3 ~@3, f4@2 ~@20 bb4@5 ~@19 f4@5 ~@19 bb4@5 ~@19 f4@5 ~@45, ~@96 [bb4,d5]@6 ~@16 bb4@5 ~@21]/6", // Bb Eb Bb Eb Ab Eb Ab Bb …
  AC: "[c5,f5,a5]@5 ~ [c5,f5,a5]@5 ~ [c5,f5,a5]@5 ~ [c5,f5,a5]@6", AD: "[~ [bb4,eb5]@11, ~@4 g5@41 ~@3]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.52)

// bass · fretless bass · "FRETLESS"
const bass_2 = note(`<
  ~ A@3 B C@3 B D@4 E@2 F G H@2 I J K L M N O P Q R S@3 B T@2 D@2 E@2 U@2 H@2 I J V W X N Y P Q R T@4 E@2 F Z AA AB AC
  AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR Q R AS AT X AU AO AV AW AX AY AZ AY BA AY BB BC BD BE BF BG BH BI BJ BK@2
  BL BM BL BN BL BM BO BP BQ BR BS BT BU BT BV BW BX@3 B S@3 BY@2 ~
>`.pickRestart({
  A: "[bb2@34 ~@2 ab2@3 ~ ab2@2 ~@4 eb3@22 ~@2 ab2@2]/3", B: "~@2 eb3@9 ab2",
  C: "[bb2@35 ~ ab2@3 ~ ab2@2 ~@4 eb2@21 ~@3 ab2@2]/3",
  D: "[bb2@7 ~@3 bb2@2 ab2@6 ~@4 eb3@4 ~@2 eb3@2 g2@2 ~@4 ab2@3 ~ ab2@2 a2@3 ~@3]/2",
  E: "[bb2@7 ~@3 bb2@2 ab2@6 ~@4 eb3@4 ~@2 eb3@2 g2@2 ~@4 ab2@4 ab2@2 a2@3 ~@3]/2",
  F: "bb2@7 ~@3 bb2@2 ab2@6 ~@4 eb3@2", G: "eb3@2 ~@2 eb3@2 g2@2 ~@4 ab2@3 ~ ab2@2 a2@3 ~@3",
  H: "f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~",
  I: "ab2@2 ~@2 ab2 ~ ab2@2 ~@2 ab2 ~ ab2@2 ~@2 ab2 ~ ab2@2 ~@2 ab2 ~", J: "eb3@7 ~@5 db3@2 ~@4 db3@3 ~@3",
  K: "bb2 ~@3 bb2 ~ bb2@2 ~@2 bb2@2 bb2 ~@3 bb2 ~ bb2@2 ~@2 db3@2",
  L: "eb3 ~@3 eb3@2 eb3@2 ~@2 eb3@2 eb3 ~@3 eb3@2 eb3 ~@3 ab2@2",
  M: "bb2@2 ~@2 bb2 ~ bb2 ~@3 bb2@2 bb2@2 ~@2 bb2@2 db3@2 ~@2 db3 ~",
  N: "eb3 ~@3 eb3@2 eb3 ~@3 eb3@2 eb3@2 ~@2 eb3@2 ab2@2 ~@2 ab2 ~",
  O: "bb2@2 ~@2 bb2@2 bb2 ~@3 bb2@2 bb2 ~@3 bb2@2 db3@2 ~@2 db3@2",
  P: "eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 eb3 ~@3 eb3@2 eb3@2 ~@2 eb3@2", Q: "f3@8 ~@2 bb2@2 ~@4 bb2@3 ~@3 bb2@2", R: "f3",
  S: "[bb2@34 ~@2 ab2@3 ~ ab2@2 ~@4 eb2@21 ~@3 ab2@2]/3",
  T: "[bb2@6 ~@4 bb2@2 ab2@6 ~@4 eb3@4 ~@2 eb3@2 g2@2 ~@4 ab2@3 ~ ab2@2 a2@3 ~@3]/2",
  U: "[bb2@6 ~@4 bb2@2 ab2@6 ~@4 eb3@4 ~@2 eb3@2 g2@2 ~@4 ab2@4 ab2@2 a2@3 ~@3]/2",
  V: "bb2 ~@3 bb2 ~ bb2@2 ~@2 bb2@2 bb2 ~@3 bb2@2 bb2@2 ~@2 db3@2",
  W: "eb3 ~@3 eb3@2 eb3@2 ~@2 eb3@2 eb3 ~@3 eb3@2 eb3@2 ~@2 ab2@2",
  X: "bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2 db3@2 ~@2 db3 ~",
  Y: "bb2@2 ~@2 bb2@2 bb2 ~@3 bb2@2 bb2@2 ~@2 bb2@2 db3@2 ~@2 db3@2", Z: "~@2 eb3 d2@3 eb2@3 e2@3",
  AA: "f2 ~@3 f2@2 a2 ~@3 a2@2 c3 ~@3 c3@2 d3 ~@3 d3@2", AB: "f3 ~@3 f3@2 eb3 ~@3 eb3@2 c3@2 ~@2 c3@2 a2 ~@3 a2@2",
  AC: "ab2 ~@3 ab2@2 ab2@2 ~@2 ab2@2 ab2@2 ~@2 ab2@2 ab2 ~@3 ab2 ~", AD: "eb3@10 ~@2 db3@3 ~@3 db3@3 ~@3",
  AE: "bb2 ~ bb2 c3 ~ c3 db3 ~ db3 d3 ~ d3", AF: "eb3@2 ~@2 eb3@2 g2@2 ~@2 g2@2 ab2 ~@3 ab2@2 a2@2 ~@2 a2@2",
  AG: "bb2 ~@3 bb2@2 c3@2 ~@2 c3@2 db3@2 ~@2 db3@2 d3 ~@3 d3@2",
  AH: "eb3 ~@3 eb3@2 g2@2 ~@2 g2@2 ab2@2 ~@2 ab2@2 a2@2 ~@2 a2@2",
  AI: "bb2 ~@3 bb2@2 c3@2 ~@2 c3@2 db3@2 ~@2 db3@2 d3@2 ~@2 d3@2",
  AJ: "eb3@2 ~@2 eb3@2 g2@2 ~@2 g2@2 ab2 ~@3 ab2@2 a2 ~@3 a2 ~", AK: "f3@7 ~@3 bb2@2 ~@4 bb2@6 eb3@2", AL: "f3@23 ~",
  AM: "bb2 ~ bb2!2 ~ bb2!2 ~ bb2!2 ~ db3", AN: "eb3 ~@3 eb3@2 eb3 ~@3 eb3@2 eb3 ~@3 eb3@2 eb3@2 ~@2 ab2@2",
  AO: "bb2@2 ~@2 bb2 ~ bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2 db3@2 ~@2 db3 ~",
  AP: "eb3@2 ~@2 eb3 ~ eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 ab2@2 ~@2 ab2 ~",
  AQ: "bb2@2 ~@2 bb2@2 bb2 ~@3 bb2@2 bb2@2 ~@2 bb2@2 db3@2 ~@2 db3 ~",
  AR: "eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3 ~",
  AS: "bb2@2 ~@2 bb2 ~ bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2 bb2@2 ~@2 db3@2", AT: "eb3 ~ eb3!2 ~ eb3!2 ~ eb3!2 ~ ab2",
  AU: "eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 ab2@2 ~@2 ab2 ~",
  AV: "eb3@2 ~@2 eb3 ~ eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3 ~",
  AW: "f2@2 ~@2 f2@2 f2@2 ~@2 f2 ~ f2@2 ~@2 f2@2 f2@2 ~@2 f2@2", AX: "f2 ~ f2!2 ~ f2!2 ~ f2!2 ~ f2",
  AY: "bb2 ~ bb2 g3 ~ g3 bb3 ~ bb3 g3 ~ g3", AZ: "eb3@2 ~@2 eb3@2 c4@2 ~@2 c4@2 bb3 ~@3 bb3@2 g3@2 ~@2 g3@2",
  BA: "eb3 ~@3 eb3@2 c4@2 ~@2 c4@2 bb3 ~@3 bb3@2 g3@2 ~@2 g3@2",
  BB: "eb3@2 ~@2 eb3@2 c4@2 ~@2 c4@2 bb3 ~@3 bb3@2 g3@2 ~@2 g3 ~",
  BC: "f3@3 ~ f3@2 eb3@3 ~ eb3 ~ d3@3 ~ d3@2 c3@3 ~ c3@2", BD: "ab3@3 ~ ab3@2 g3@2 ~@2 g3 ~ ab3@2 bb3@2 g3@2 f3@5 ~",
  BE: "bb2@3 ~ bb2 ~ g2@3 ~ g2@2 bb2@3 ~ bb2@2 g2@3 ~ g2@2", BF: "eb2@3 ~ eb2@2 g2@3 ~ g2@2 bb2@3 ~ bb2@2 c3@3 ~ c3 ~",
  BG: "bb3@3 ~ bb3@2 g3@3 ~ g3@2 bb3@3 ~ bb3@2 g3@3 ~ g3@2", BH: "eb3@3 ~ eb3@2 g2@3 ~ g2@2 ab2@3 ~ ab2@2 a2@3 ~ a2@2",
  BI: "bb2@3 ~ bb2@2 d3@3 ~ d3@2 eb3@3 ~ eb3@2 e3@4 f3@2", BJ: "eb3@3 ~ eb3@2 g3@3 ~ g3@2 bb3@3 ~ bb3@2 c4@4 bb3@2",
  BK: "f3@3 ~ f3 ~ f3@3 ~ f3 ~ f3@3 ~ f3 ~ f3@3 ~ f3 ~", BL: "bb3@3 ~ bb3@2 ab3@3 ~ ab3@2 g3@3 ~ g3@2 f3@3 ~ f3@2",
  BM: "eb3@3 ~ eb3@2 db3@3 ~ db3@2 c3@3 ~ c3@2 bb2@3 ~ bb2@2",
  BN: "eb3@3 ~ eb3 ~ db3@3 ~ db3@2 c3@3 ~ c3@2 bb2@3 ~ bb2@2", BO: "f3@8 ~@2 bb2@3 ~@3 bb2@3 ~@3 bb2@2",
  BP: "f3@5 ~ eb3@6 d3@5 ~ c3@5 ~", BQ: "bb2@2 ~@2 bb2 ~ bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2",
  BR: "eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3 ~ eb3@2 ~@2 eb3 ~",
  BS: "bb2@2 ~@2 bb2 ~ bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2 ~", BT: "eb3 ~ eb3!2 ~ eb3!2 ~ eb3!2 ~ eb3",
  BU: "bb2@2 ~@2 bb2 ~ bb2 ~@3 bb2@2 bb2@2 ~@2 bb2@2 bb2@2 ~@2 bb2 ~",
  BV: "f3@2 ~@2 f3 ~ f3@2 ~@2 f3@2 f3@2 ~@2 f3 ~ f3@3 ~ f3@2", BW: "f3 ~ f3@2 f3@2 f3@2 ~@2 f3 ~ f3@4 ~@2 f3@5 ~",
  BX: "[bb2@33 ~@3 ab2@3 ~ ab2@2 ~@4 eb3@22 ~@2 ab2@2]/3", BY: "[~ eb2@11]/2",
})).s("gm_fretless_bass").gain(0.64)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@53 A@8 B@2 C@2 D@6 E F ~@22 G H I@2 J@3 K L@2 M N O P Q R S T U V W@2 X@2 Y Z AA@2 AB AC AD AE AF AG@2 ~
>`.pickRestart({
  A: "[[bb4,d5]@9 ~ [bb4,d5]@2 [ab4,c5]@4 [bb4,d5]@2 [ab4,c5]@4 [g4,bb4]@6 [eb5,g5]@11 ~ [eb5,g5]@2 [db5,f5]@4 [bb4,d5]@11 ~ [bb4,d5]@2 [ab4,c5]@4 [bb4,d5]@2 [ab4,c5]@4 ~@9 ab5 ~@4 [f5,ab5]@2 [eb5,g5]@2 [d5,f5]@2 [eb5,g5]@4 [bb4,d5]@11 ~ [bb4,d5]@2 [ab4,c5]@4 [bb4,d5]@2 [ab4,c5]@4 [g4,bb4]@6 [eb5,g5]@11 ~ [eb5,g5]@2 [db5,f5]@4 [bb4,d5]@11 ~ [bb4,d5]@2 [ab4,c5]@4 [bb4,d5]@2 [ab4,c5]@4 [g4,bb4]@25 ~, ~@70 [g4,bb4]@15 ~@107]/8", // Bb Ab Bb Ab Gm Eb Db Bb …
  B: "[[f5,bb5]@3 ~@3 [f5,bb5]@10 [c5,f5]@2 [d5,g5]@4 [f5,bb5]@5 ~ [c5,f5]@2 [d5,g5]@4 f5@5 ~ [c5,f5]@2 [d5,g5]@3 ~@3, ~@34 bb5@3 ~@11]/2", // Bb5 F5 G5 Bb5 F5 G5 F5 G5
  C: "[[bb5,db6]@3 ~@3 [bb5,db6]@10 [g5,bb5]@2 db6@4 [db6,f6]@5 ~ [db6,f6]@2 [c6,eb6]@2 [bb5,db6]@2 [g5,bb5]@2 [db6,f6]@3 ~ [db6,f6]@2 [c6,eb6]@2 [bb5,db6]@2 [g5,bb5]@2, ~@9 bb5 ~@14]/2", // Bbm Gm Db Cm Bbm Gm Db Cm …
  D: "[[d6,f6]@3 ~ [d6,f6]@17 ~ [db6,f6]@5 ~ [db6,f6]@2 [c6,eb6]@2 [bb5,db6]@2 [g5,bb5]@2 [db6,f6]@3 ~ [db6,f6]@2 [c6,eb6]@2 [bb5,db6]@2 [g5,bb5]@2]/2", // Dm Db Cm Bbm Gm Db Cm Bbm …
  E: "[f6,a6]@10 [g6,bb6]@5 ~ [g6,bb6]@5 ~ [g6,bb6]@2", F: "[f6,a6]@23 ~", G: "f5@2 db6@3 ~ db6@6 f5@2 db6@2 ~@2 db6@6",
  H: "f5@2 db6@3 ~ db6@6 f6@2 eb6@2 db6@2 bb5@6", I: "[bb5@3 db6@3 f6 eb6 db6 bb5@9 db6@3 eb6 f6 eb6]/2",
  J: "[db6@2 bb5@10 f5@2 ~ db5@3 eb5@4 db5@11 ~ f5@2 ab5@4 bb5@2 f5@4 ab5@6 bb5@12 f5@2 [bb5,db6] ~ [bb5,db6] ~ [bb5,db6]@2, ~@7 eb5 ~@28]/3", // Bbm
  K: "f5@2 [bb5,db6] ~ [bb5,db6] ~ [bb5,db6]@2 f5@2 [bb5,db6]@2 f5@2 [bb5,db6] ~ [bb5,db6]@2 bb5@2 [db6,f6]@2 [db6,f6]@2", // Bbm Db
  L: "[bb5@16 db6@2 eb6@4 f6@8 f6@5 ~ f6@6 f6@6]/2", M: "db6@3 ~@3 eb6@4 f6@2 db6@6 bb5@4 ab5@2",
  N: "bb5@3 ~@3 [ab5,db6]@2 ~@4 f6@2 eb6@2 db6@2 bb5@6", O: "db6@6 f6@4 eb6@2 db6 bb5@2 ~@3 bb5@6",
  P: "ab5@2 f5 [ab5,db6]@3 bb5@3 g5@2 f5", Q: "c5 ~ d5@2 ~@2 d6@6 f6@4 d6@2 c6@4 bb5@2",
  R: "eb6@2 ~ db6@2 ~ bb5@2 g5 bb5@2 c6", S: "d6@4 f6@6 g6@3 ~@3 f6@3 ~@3 g6@2",
  T: "~@4 eb6@2 f6@5 ~ f6@4 bb5@2 db6@4 bb5@2", U: "bb5@2 ~@4 db6@5 ~ f6@2 eb6@2 db6@2 eb6@6",
  V: "f6@6 f6@5 ~ f6@6 f6@6", W: "[bb5@15 ~ g5@2 bb5@4 d6@8 eb6@6 f6@5 ~ f6@2 eb6@2 db6@2]/2",
  X: "bb5@5 ~ bb5@4 g5@2 bb5@5 ~ bb5@4 g5@2", Y: "g6@6 g6@5 ~ g6@6 g6@5 ~",
  Z: "g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6@2 g6@4 eb6@2 f6@6",
  AA: "[db6 bb5@27 ~@2 g6@6 ~ db6@2 f6@5 eb6@2 db6@2, ~@18 eb6 ~@5]/2", AB: "bb5@10 ~ db6", AC: "~ bb5@5",
  AD: "g6@8 f6 eb6@2 db6", AE: "bb5@6 ab5@2 db6 ~@2 db6", AF: "bb5@21 ~ db6@2", AG: "[~ bb5@11]/2",
})).s("gm_acoustic_guitar_steel").gain(0.64)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E B C F G C@11 H C@6 I J B C K L C@11 H C@6 I M C@11 J C@6 I M C@6 I N C@6 I M C@6 I N C@6 O@2 C@14 I N B C D
  E B C F P ~@2
>`.pickRestart({
// … 58 more lines

More by Bad Company