Strudelify
Jet Airliner cover art

Book Of Dreams

Jet Airliner

Steve Miller Band

KeyC majorTempo121 bpm
0:00/0:00
// Jet Airliner — Steve Miller Band
// 121 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 "CLEAN GTR" electric guitar clean (copy of ch 8 "OVERDRIVE" overdriven guitar)
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(121/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 · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@3 A B@4 C@2 D@2 E F G H@3 I J K L M N O P Q R A S@4 C@2 D@2 E F G H@3 I J K L M N O P Q R A T@4 C@2 D@2 E F G H@3 I
  J K L M N O P U J K L M N O P Q ~ V K L M N O P U J K L M N O P Q W X@3 ~
>`.pickRestart({
  A: "~@14 [a#2,f3] [b2,f#3]", // A#5 B5
  B: "[[c3,g3]@2 c3@2 [c3,a3] ~ c3@2 c3@2 c3@2 a3@2 [f3,c4]@4 f3@2 [f3,d4]@2 [f3,c4] ~ c3@2 c3@2 [c3,a3]@2 f3@6 [f3,d4]@2 [f3,c4]@2 [f3,c4]@2 [f3,c4]@2 [f3,d4] ~ c3@4 c3@2 [c3,a3]@2 [c3,g3] ~ g3@2 [c3,g3]@2 [c3,g3] a3 [g3,c4] ~, ~@15 c4@2 ~@6 g3@3 ~@6]/4", // C5 F F5 Dm F5 F Dm F5 …
  C: "[c3@2 c3@2 [c3,a3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 c3@2 c3@2 c3@2 [c3,a3]@2 c3@2 c3@2 [c3,g3]@2 a3 ~ [f3,c4]@2, g3@2 ~@5 g3@3 ~ g3@2 ~@3]/2", // F C5 F C5 F5
  D: "[~ [c3,g3] ~ [f3,c4]@2 [f3,c4]@2 [c3,g3]@2 [c3,g3] [c3,a3] [c3,g3]!2 c3 [c3,a3] [c3,g3]]/2", // C5 F5 C5 F C5 F C5
  E: "[c3,g3] c3!2 [c3,g3] c3 [c3,g3] [c3,a3] [c3,g3]", F: "[c3,g3]!2 [c3,a3] [c3,g3]!3 c3 [c3,g3]",
  G: "[a#2,f3]@4 [a#2,f3]@2 [a#2,f3] ~ [f2,c3]@4 [f2,c3]@3 ~", // A#5 F5
  H: "[[c3,g3]@2 c3@2 [c3,a3]@2 c3@2 [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 c3@2 c3@2 [c3,g3]@2 [c3,a3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 c3@2 ~@2 c3@2 [c3,a3]@2 [c3,g3]@2 c3@2 c3@2 [c3,a3]@2 c3 ~, ~@7 g3@2 ~@6 g3@3 ~@6]/3", // C5 F C5 F C5 F C5 F …
  I: "a#2@2 a#2@2 [a#2,f3]@2 [a#2,f3] ~ [f2,c3]@4 [f2,c3]@2 ~@2", // A#5 F5
  J: "c3@2 [c3,g3]@2 [c3,a3]@2 c3@2 [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 [c3,g3] ~", // C5 F C5 F C5
  K: "a#2@2 a#2@2 [a#2,f3]@2 [a#2,f3] ~ [f2,c3]@4 [f2,c3]@3 ~, f3 ~@3", // A#5 F5
  L: "c3!2 [c3,a3] c3 [c3,g3]!2 [c3,a3] ~, g3 ~@3", M: "[a#2,f3]@4 [a#2,f3]@2 f3 ~ f2@2 f2@2 [f2,c3]@2 ~@2, ~@2 c3 ~",
  N: "[c3,g3]@2 [c3,g3]@2 c3@4 [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 c3 ~, ~@2 a3 ~@5", // C5 F
  O: "[a#2,f3]@2 a#2@2 [a#2,f3]@3 ~ [f2,c3]@4 [f2,c3]@2 [f2,c3] ~", // A#5 F5
  P: "[c3,g3]@2 [c3,g3]@2 [c3,a3]@2 c3 ~ [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 [c3,g3] ~", // C5 F C5 F C5
  Q: "[a#2,f3]@2 [a#2,f3] ~ [f2,c3] f2 [f2,c3] ~", R: "[c3,g3]@13 ~@3",
  S: "[[c3,g3]@2 c3@2 [c3,a3] ~ c3@2 c3@2 c3@2 a3@2 [f3,c4]@4 f3@2 [f3,d4]@2 [f3,c4] ~ c3@2 c3@2 [c3,a3]@2 f3@6 [f3,d4]@2 [f3,c4]@2 [f3,c4]@2 [f3,c4]@2 [f3,d4] ~ c3@4 c3@2 [c3,a3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,a3]@2 [c3,g3]@2, ~@15 c4@2 ~@6 g3@3 ~@6]/4", // C5 F F5 Dm F5 F Dm F5 …
  T: "[[c3,g3]@2 c3@2 [c3,a3] ~ c3@2 c3@2 c3@2 a3@2 [f3,c4]@4 f3@2 [f3,d4]@2 [f3,c4] ~ c3@2 c3@2 [c3,a3]@2 f3@6 [f3,d4]@2 [f3,c4]@2 [f3,c4]@2 [f3,c4]@2 [f3,d4] ~ [c3,g3]@4 [c3,c4] ~ [c3,g3]@2 [c3,c4] ~ c4@2 [c3,g3]@2 [c3,g3] a3 [g3,c4] ~, ~@15 c4@2 ~@15]/4", // C5 F F5 Dm F5 F Dm F5 …
  U: "[a#2,f3]@2 [a#2,f3] ~ [f2,c3] f2 [f2,c3] c3", V: "~@7 [a#2,f3]", W: "g3@2 c3 c3@2 c3 [c3,g3]!2, c3 ~@2 g3@3 ~@2",
  X: "[[c3,g3]@4 [g3,c4]@2 g3@2 c3@2 [c3,g3]@2 [c3,g3,c4]@2 c3@2 c3@2 ~@2 c3@2 c3 ~ [c3,g3]@2 c3@2 [c3,g3]@2 c3@2 c3@2 ~@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 c3@2 [c3,g3]@2 c3@2, ~@2 c3@2 ~@3 c4@5 ~@12, ~@7 g3@2 ~ g3@2 ~@3 g3@3 ~@6]/3", // C5
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.4)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@4 A B ~ C ~@3 D E F ~ G ~ D H I ~@3 G ~ J ~@3 A B ~@5 D E F ~ G ~ D H I ~@3 G ~ J ~@3 A B ~ C ~@3 D E F ~ G ~ D H I
  ~@3 G ~ J ~ I ~@3 G ~ J ~@6 G ~ J ~ I ~@3 G ~ J ~ K L M D ~
>`.pickRestart({
  A: "~@4 d4 ~@3 g3@2 g3@2 ~@4", B: "~@4 g3 ~@3", C: "~@4 c3 ~@3", D: "~@5 g3 ~@2", E: "~ g3 a3 ~ g3 ~@3",
  F: "~@6 a3 ~", G: "~@3 g3 ~@4", H: "f3!2 ~@6", I: "g3 ~@7", J: "~@6 g3 ~@9", K: "~@2 g3 ~@5, c4", L: "~@5 c4 ~@2",
  M: "~ g3 ~@3 g3 ~@2",
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@3 B C D E F G H I J K L M N O H P Q R S R T U V W X Y O Z AA AB AC AD AE AF AG AH AI N AJ AK AL AM W AN U AO AP AQ
  AP AR AS AT AU AV F AW AX AY N AG AZ BA BB BC BD BA BE U BF BG BH BI BJ AP BK BL BM U BN U BO AP BP BQ U L U AQ AP BR
  BS BT U BU BV AQ BL BW BX BY@2 BZ BY ~
>`.pickRestart({
  A: "c2@2 ~@9 c2 g1@2 a#1@2", B: "c2 ~@4 a#2 c3 a#2", C: "c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@2 ~@2 c2@2",
  D: "f1@2 f1@2 ~@2 f1@2 c2 ~ c2@2 ~@2 c2@2", E: "f1!2 ~ f1 ~ f1 ~ f1", F: "c2@2 c2@2 ~@2 c2@2 ~ c2 c2@2 a1@2 g1@2",
  G: "c2@2 c2@3 ~ c2@2 ~@2 c2@3 ~ c2@2", H: "c2@2 c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@2",
  I: "f1 ~ f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2", J: "c2@2 c2@2 ~@2 c2@2 ~ g1 g1@2 a1@2 g1@2",
  K: "c2 ~ c2@3 ~ c2@3 c2 c2@2 a1@2 g1@2", L: "c2@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2",
  M: "a#1 ~ a#1@2 ~@2 a#1@2 f1 ~ f1@2 ~@2 f1@2", N: "c2@2 c2@3 ~ c2@2 ~ c2 c2@2 a1@2 g1@2",
  O: "c2 ~ c2@3 ~ c2@2 ~@2 c2@3 ~ c2@2", P: "a#1 ~ a#1@3 ~ a#1@2 f1 ~ f1@2 ~@2 f1@2", Q: "c2!2 ~ c2 a#2 c3 a2 g2",
  R: "a#1 ~ a#1@2 d2@2 e2@2 f2@2 f2@2 a#1@2 b1@2", S: "c2!2 a#1!2 a1!2 g1!2",
  T: "c2@2 c2@2 c2@2 g1@2 a2 a#2 c3@2 a2@2 g2@2", U: "a#1 ~ a#1@2 d2@2 e2@2 f2 ~ f2@2 a#1@2 b1@2",
  V: "c2@2 c2@2 a#1 ~ a#1@2 a1@2 a1@2 g1@2 g1@2", W: "a#1!2 d2 e2 f2!2 a#1 b1",
  X: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", Y: "c2 ~ c2 ~ c2 ~ c2 ~ d#2 e2 f2 ~ f#2 ~ g2 ~",
  Z: "f1@2 f1@3 ~ f1@2 c2@2 c2@2 ~@2 c2@2", AA: "f1@2 f1@3 ~ f1@2 ~@2 f1@3 ~ f1@2",
  AB: "c2@2 c2@2 ~@2 c2@3 c2 a#1@2 a1@2 g1@2", AC: "c2@2 c2@3 ~ c2@2 ~@2 c2@2 a#1@2 g1@2",
  AD: "c2 ~ c2@2 ~@2 c2@2 ~ c2 d2@2 d#2@2 e2@2", AE: "f2 ~ f2@2 c3@2 f2 ~ f2 ~ f2@2 a#1@2 b1@2",
  AF: "c2@2 c2@2 ~@2 c2@2 ~ c2 a#1@2 a1@2 g1@2", AG: "c2 ~ c2@2 ~@2 c2@2 ~ c2 c2@2 a1@2 g1@2",
  AH: "c2@2 c2@2 ~@2 c2@2 ~ c2 c2@2 g1@2 a1@2", AI: "a#1@2 a#1@3 ~ a#1@2 f1@2 f1@2 ~@2 f1@2",
  AJ: "c2 ~ c2@3 ~ c2@2 ~@2 c2@3 ~ c2 ~", AK: "c2@2 c2@3 ~ c2@2 ~@2 c2@2 ~@2 a1@2",
  AL: "a#1@2 a#1@2 ~@2 a#1@2 f1 ~ f1@2 ~@2 f1@2", AM: "c2@2 c2 ~ c2 ~ c2@2 f2 f#2 g2@2 a2 a#2 c3@2",
  AN: "c2@2 c2@2 a#1@2 a#1@2 a1 ~ a1@2 g1 ~ g1@2", AO: "c2 c3 c2!3 d3 d#2 e2",
  AP: "a#1@4 d2@2 e2@2 f2 ~ f2@2 a#1@2 b1@2", AQ: "c2 ~ c2@2 a#1@4 a1 ~ a1@2 g1 ~ g1@2", AR: "c2@3 ~@8 a#1 g1@2 a#1@2",
  AS: "~@4 d2 ~ d#2 ~ e2@2 f2@2 f#2@2 g2@2", AT: "c2@2 c2@2 ~@2 c2@2 c2 ~ c2@2 ~@2 c2@2",
  AU: "f1@2 f1@2 ~@2 f1 ~ c2@2 ~ c2 c2@2 c2@2", AV: "f1@4 ~@2 f1@3 ~ f1@2 g1@2 a1@2",
  AW: "c2@2 c2@3 ~ c2@2 ~@2 c2@3 ~ c2 ~", AX: "c2@2 c2@2 ~@2 c2@2 ~ c2 d2@2 d#2@2 e2@2",
  AY: "f2@2 f1@3 ~ f2@3 ~ f2@3 ~ g1@2", AZ: "c2@4 ~@2 c2@3 ~ c2@2 ~@2 a1@2", BA: "a#1!2 ~ a#1 f1!2 ~ f1",
  BB: "c2 ~ c2@3 ~ c2@2 ~ g1 a1@2 c2@2 f2@2", BC: "c2 ~ c2@3 ~ c2@2 ~ c2 c2@2 a1@2 g1@2",
  BD: "c2@2 c2@3 ~ c2@3 c2 c2@2 ~@2 a1@2", BE: "c2 ~ g2 ~ c3 a2 g2 a2, ~@7 a2@2 ~@7",
  BF: "c2@2 c2@2 a#1 ~ a#1@2 a1 ~ a1@2 g1 ~ g1@2", BG: "a#1@2 a#1@2 d2@2 e2@2 f2 ~ f2@2 a#1@2 b1@2",
  BH: "c2 c3 c2 d2 d#2 c3 d#2 e2", BI: "a#1@2 ~ a#1 d2@2 e2@2 f2@2 f2@2 a#1@2 b1@2",
  BJ: "c2 ~ c2@2 a#1@4 a1 ~ a1@2 g1@2 g1@2", BK: "c2 ~ c2@2 a#1@2 a#1@2 a1 ~ a1@2 g1@2 g1 ~",
  BL: "a#1 ~ a#1@2 d2@2 e2@2 f2 ~ f2 ~ a#1@2 b1@2", BM: "c2 ~ c2@2 d#2 e2 g2@2 a2@2 c3@2 a2@2 g2@2",
  BN: "c2 ~ c2@2 a#1@4 a1 ~ a1@2 g1 ~ g1 ~", BO: "c2@2 f2@2 d#2 e2 g2@2 a2@2 c3@2 a2@2 g2@2",
  BP: "c2 ~ c2 ~ c2@2 c2@2 c2@2 c2 ~ c2 ~ c2 ~", BQ: "c2 ~ c2 ~ e1@2 ~ f1 g1@2 a1@2 a#1@2 c2@2",
  BR: "c2 ~ c2@2 a#1 ~ a#1@2 a1 ~ a1@2 g1 ~ g1 ~", BS: "a#1 ~ a#1@2 d2@2 e2@2 f2 ~ f2 ~ a#1@2 b1 ~",
  BT: "c2@2 ~ c2 e2@2 f2@2 g2@2 g2@2 a2@2 g2@2", BU: "c2@2 g1@2 d2@2 g1@2 d#2 ~ d#2@2 g1@2 e2@2",
  BV: "a#1@3 ~ d2@2 e2@2 f2@2 f2@2 a#1@2 b1@2", BW: "c2@2 e1@2 d#2 e2 g2@2 g2 ~ c3@2 a2@2 g2 ~, ~@9 a2@2 ~@5",
  BX: "a#1 ~ a#1@2 d2@2 e2@2 f2 ~ f2@2 a#1@2 b1 ~", BY: "c2 ~ c2@2 a#1 ~ a#1 ~ a1@2 ~ a1 a1@2 g1@2",
  BZ: "c2 ~ c2@2 a#1 ~ a#1@2 a1@2 ~ a1 a1@2 g1@2",
})).s("gm_fretless_bass").gain(0.38)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean_3 = note(`<
  ~@4 A@4 B@2 C@3 D E F G H I J K L M N O P Q R ~ A@4 B@2 C@3 D S F G T U J K L M N O P Q R ~ A@4 B@2 C@3 D E F G H I J
  E V M N O P Q W E V M N O P Q ~@2 E V M N O P Q W E V M N O P Q X@2 Y@2 ~
>`.pickRestart({
  A: "[[g3,c4] g3 [c4,e4]!3 c4 [c4,e4] c4@2 c4 [c4,f4] [c4,e4] c4!2 [g3,c4,e4] [c4,f4]@2 [c4,f4] c4 a3 c4!2 [c4,f4] [g3,c4]@2 [g3,c4]!2 ~ c4 [g3,c4]!3, ~@7 f4@3 ~@2 e4@2 ~ a4 ~@2 f4@2 f4@2 ~ e4@3 e4@2 e4@2 e4@2, ~@21 a3@2 ~@4 g3@2 ~@3]/4", // C5 C F5 C F5 C5
  B: "[[g3,c4]@2 g3@2 [g3,c4]@2 c4@2 e4@4 [c4,e4]@2 [g3,e4]@4 [g3,c4]@2 [g3,c4]@2 ~@2 c4@2 c4@2 [c4,e4] ~ [a3,c4,f4]@2, e4@2 e4@2 c4 ~@2 c4 ~@2 e4@2 ~@4, ~@11 g3@3 ~@2]/2", // C5 C C5 C F
  C: "[~ [g3,c4,e4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [g3,c4,e4]@2 [c4,e4] c4!2 [c4,e4]@2 c4!2 c4!2 [c4,e4] c4!3 [c4,e4] [g3,c4], ~@5 e4 ~ e4 ~@2 e4 ~, ~@11 g3@2 ~@2 g3@2 g3@4 g3@2 ~]/3", // C F C C5
  D: "c4@2 c4@2 [g3,c4,e4]@2 c4@2 [c4,e4]@2 [g3,c4]@2 [c4,e4]@2 c4 ~, e4@2 ~ g3@2 ~@3", // C C5 C
  E: "[d4,f4,a#4]@4 [d4,f4,a#4] [f4,a#4] [a#3,d4,f4,a#4] [f4,a#4] [c4,f4,a4]@4 [c4,f4,a4] [f4,a4] [c4,f4,a4] [f4,a4], a#3@3 ~ a3@4", // A# A#5 A# A#5 F
  F: "~ g3 [g3,c4,e4] c4!2 [c4,e4] [g3,c4]!2, [c4,e4]@2 ~ e4@2 ~ e4@2", // C C5 C
  G: "[g3,c4]!2 [g3,c4,e4] [g3,c4] c4 [g3,c4]!3, e4@2 ~ e4@3 e4@2", // C5 C C5
  H: "[g3,c4]@2 [g3,c4]@2 [g3,c4,e4]@2 [g3,c4]@2 [g3,c4]@2 [g3,c4]@2 [c4,e4]@2 ~ [d4,f4,a#4], e4 ~ e4 ~", // C5 C C5 C A#
  I: "[a#3,d4,f4,a#4]@4 [f4,a#4]!2 ~ [d4,a#4] [a3,c4,f4,a4]@4 [f4,a4]!2 [c4,f4,a4] f4, ~@2 [a#3,d4] [f4,a#4] ~@2 a3@2, ~@6 c4 ~", // A# A#5 Gm F A# A#5
  J: "[g3,c4,e4]@4 [c4,e4]@2 c4@2 c4@2 c4@2 [c4,e4]@2 [g3,c4] ~, ~@3 g3@2 g3@2 ~, ~@2 e4 ~", // C C5
  K: "[a#3,d4]@4 [a#3,d4,f4,a#4]@2 [f4,a#4] ~ [c4,f4,a4]@4 [c4,f4,a4]@2 [f4,a4] f4, ~@8 a3@7 ~", // A# A#5 F
  L: "[g3,c4]@2 c4@2 [g3,c4,e4]@2 [g3,c4]@2 [c4,e4]@2 [c4,e4]@2 [g3,c4,e4]@2 ~ [d4,f4,a#4], ~@2 g3 ~", // C5 C C5 C A#
  M: "[a#3,d4,f4,a#4]@4 [f4,a#4]!2 [d4,f4,a#4] [f4,a#4] [c4,f4,a4]@4 [f4,a4]!2 [c4,f4,a4] a4, ~ a#3 ~ a3, ~@2 d4 ~@3 c4 ~", // A# A#5 A# A#5 F
  N: "[g3,e4]@2 [g3,c4,e4] [g3,c4] [c4,e4]!3 ~, c4 ~@3 g3@3 ~", // C C5 C
  O: "[d4,a#4]@4 [d4,f4,a#4] [f4,a#4] [d4,f4,a#4] a#4 [c4,f4,a4]@4 [c4,f4,a4] [f4,a4] [c4,f4,a4] f4, a#3@7 ~@9", // Gm A# A#5 A# F
  P: "[g3,c4]@2 ~@2 [g3,c4]@2 g3@2 [c4,e4]@4 [g3,c4,e4]@2 c4 ~, e4@2 e4@2 g3 ~@3", // C5 C
  Q: "[a#3,d4,a#4]@4 [f4,a#4]!2 [d4,f4,a#4] a#4 [a3,f4,a4]@4 [f4,a4]!2 [c4,f4,a4] f4, ~@4 [a#3,d4]@3 ~ c4@2 ~@2 a3@4, ~@6 c4 ~", // A# A#5 A# Dm F A#
  R: "[g3,c4,e4]@15 ~", S: "~@4 f3@2 a#3 ~@5 f4@2 [f4,a4] ~, a#2@7 ~@3 c4@6, ~@2 d3@5 ~ a3@7 ~",
  T: "[g3,c4]@2 [g3,c4]@2 [g3,c4,e4]@2 [g3,c4]@2 [g3,c4]@2 [g3,c4]@2 [c4,e4]@2 ~ g3, e4 ~ e4 ~", // C5 C C5 C
  U: "~@4 f3@2 a#3 ~@5 f4@2 [f4,a4]@2, a#2@7 ~@3 c4@5 ~, ~@2 d3@4 ~@2 a3@7 ~", // F
  V: "[g3,c4]@2 c4@2 [g3,c4,e4]@2 [g3,c4]@2 [c4,e4]@2 [c4,e4]@2 [g3,c4,e4]@2 [f4,a#4] [d4,f4,a#4], ~@2 g3 ~", // C5 C C5 C A#5 A#
  W: "[c4,e4,g4]@4 [c4,e4]@2 c4@2 c4@2 c4@2 [c4,e4]@2 [g3,c4] ~, ~@3 g3@2 g3@2 ~, ~@2 e4 ~", // C C5
  X: "[c3@2 ~@4 [c3,g3]@4 [c3,g3]@2 ~ c3 c3@2 c3@2 c3@2 [c3,g3]@2 c3@2 c3@2 [c3,g3,c4]@2 [c3,g3]@2 [c3,g3]@2, ~@3 c4@3 c4@2 c4@3 ~@3 c4@2, ~@6 g3 g3@3 ~ [g3,c4]@2 ~@3]/2", // C5
  Y: "[[c3,c4] c3 [c3,g3]!3 [c3,g3,c4]!2 g3 [c3,g3] c3!2 [c3,g3,c4] g3 [c3,g3,c4]!2 [c3,g3], g3@2 ~@5 c4@2 [g3,c4]@2 ~@5]/2", // C C5
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_4 = note(`<
  ~@4 A@3 ~ B C D@2 E F ~ G H I ~ J K L ~ M N O P ~@2 A@3 ~ B C D@2 E F ~ G H I ~ J K L ~ M N O P ~@2 A@3 ~ B C D@2 E F
  ~ G H I ~ Q ~ L ~ M N O P R ~ L ~ M N O P ~@3 L ~ M N O P R ~ L ~ M N O P S ~ T@2 ~
>`.pickRestart({
  A: "[~@2 g3@3 g3@2 a3@2 ~ a4 g3 g3@2 a4 a3@4 ~ a3 ~@3, ~@9 a3@2 ~@13]/3", B: "~@3 g3@2 g3!2 ~",
  C: "~@6 c4 ~@5 g3 ~@3", D: "[~@5 a4 ~ a4@2 ~@4 g3@2 ~]/2", E: "e4@2 ~ e4 ~@4", F: "g3!2 ~@3 e4 g3 ~",
  G: "~@3 g3@2 g3 ~@2", H: "~@4 g3 ~@3", I: "~@6 g3 ~", J: "a4 ~@3 g3@2 ~@10", K: "f4@4 ~@11 c4",
  L: "e4@2 g3@2 ~@11 a#3", M: "~ c4 ~@6", N: "f4 ~ a3@2", O: "~ g3 ~@3 g3 ~@2", P: "f4 ~@3", Q: "a4@2 g3 ~@5",
  R: "~@2 g3 ~@5", S: "~@2 c3 ~@5, g3@3 ~@5", T: "~@4 c4 ~@3",
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.6)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@6 A@2 ~@2 B C ~@5 D E F G@3 H I@3 J ~@3 K@2 ~ L M@2 ~@2 N@2 ~ O P Q R@2 S H T@3 J ~@3 U V ~ L W X ~@3 Y Z@2 AA@2
  AB@2 AC AD AE@3 AF AG@2 AH AD AI@3 AJ AK AG@2 AL AD AM@3 AF AN@2 AO AF AM@3 AJ ~@4
>`.pickRestart({
  A: "[~@2 f4@3 d4@3 c4@4 d4@2 c4@4 f3@2 g3@8 ~@4]/2", B: "g4 f4 e4 e4@2 f4@2 g4", C: "~ e4 f4@2 e4@5 ~@7",
  D: "~@5 g4 f4!2", E: "f4@2 f4@2 f4@4 f4@2 g4 f4 e4@2 e4@2", F: "e4@4 ~ g4 f4 e4",
  G: "[[a3,f4,a4]@2 [a3,f4,a4]@4 [a3,f4,a4]@4 [a3,f4,a4]@2 [g3,e4,g4]@2 [c4,e4,g4,c5]@4 [g3,e4,g4,c5] [f3,d4,f4,a4] [e3,c4,e4,g4]@8 ~@2 [d4,f4]@4 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2]/3", // Dm C Dm C Dm F
  H: "[e4,g4]@4 ~ g4 f4 e4", // Em
  I: "[[a3,f4,a4]@2 [a3,f4,a4]@4 [a3,f4,a4]@4 [a3,f4,a4]@2 [g3,e4,g4]@2 [c4,e4,g4,c5]@4 [g3,e4,g4,c5] [f3,d4,f4,a4] [e3,c4,e4,g4]@5 ~ [c4,e4,g4]@2 [d4,e4,g4]@2 [d#4,g4,a#4]@6 [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@2 [c4,f4,a4]@2 [a3,e4,g4]@2 [d4,f4,a4]@2]/3", // Dm C Dm C Em7 D# Dm C …
  J: "[c4,e4,g4] ~", K: "[~@14 g4@4 f4@2 e4@7 ~@5]/2", L: "~@5 g4 f4 e4",
  M: "[f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 g4@4 f4@2 e4@5 ~@7]/2",
  N: "[~@4 [d4,f4] [f4,a4]!2 [f4,a4]@2 [e4,g4]@3 ~@4]/2", O: "~@5 [d#4,g4,c5] [d4,f4,a4]!2",
  P: "[d4,f4,a4]!7 [c4,e4,g4]", Q: "~ [d#4,g4,c5] [d4,f4,a4] [d4,f4,a4]@2 [c4,e4,g4]@3",
  R: "[[a3,f4,a4]@2 [a3,f4,a4]@4 [a3,f4,a4]@4 [a3,f4,a4]@2 [g3,e4,g4]@2 [a#3,d#4,g4,c5]@4 [a#3,d#4,g4,c5] [a3,d4,f4,a4] [g3,c4,e4,g4]@8 ~@4]/2", // Dm C Cm7 Dm C
  S: "[d4,f4] [f4,a4]!7", // Dm F
  T: "[[a3,f4,a4]@2 [a3,f4,a4]@4 [a3,f4,a4]@4 [a3,f4,a4]@2 [g3,e4,g4]@2 [a#3,d#4,g4,c5]@4 [a#3,d#4,g4,c5] [a3,d4,f4,a4] [g3,c4,e4,g4]@5 ~ [c4,e4,g4]@2 [d4,e4,g4]@2 [d#4,g4,a#4]@6 [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@2 [c4,f4,a4]@2 [a3,e4,g4]@2 [d4,f4,a4]@2]/3", // Dm C Cm7 Dm C Em7 D# Dm …
  U: "~ [c4,c5]@2 [a3,a4] [g3,g4]!2 [e3,e4] [g3,g4]", V: "[e3,e4]@5 ~@11",
  W: "~ [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2", // F
  X: "[c4,e4,g4] [d4,f4,a4] [e4,g4,c5] [d4,f4,a4] [c4,e4,g4] ~@3", Y: "~@5 a3 c4@2",
  Z: "[g4@6 g4@4 g4@4 g4@4 g4@4 g4@4 g4@2 g4 [f4,g4] e4@2]/2", AA: "[~@2 f4!5 e4@2 f4 g4 f4 e4@3 ~]/2",
  AB: "[[f4,a4] [f4,a4]@2 [f4,a4]@2 [f4,a4] [d#4,g4] [f4,a4]@2 [e4,g4]@3 ~@4]/2", AC: "g4 [f4,a4]!5 [e4,g4] [g4,a#4]",
  AD: "[g4,a#4]@2 ~@3 [g4,a#4] [f4,a4] [e4,g4]", // Gm F Em
  AE: "[[f4,a4] [f4,a4]@2 [f4,a4]@2 [f4,a4] [e4,g4] [f4,a4]@2 [e4,g4]@3 ~ [e4,g4] [f4,a4] [g4,a#4]@3 [f4,a4] [e4,g4] [f4,a4]!2 [e4,g4] [f4,a4]]/3", // F Em F Em F Gm F Em …
  AF: "[e4,g4]@2 ~@3 [g4,a#4] [f4,a4] [e4,g4]", // Em Gm F Em
  AG: "[[f4,a4]@2 [f4,a4]@4 [f4,a4]@4 [f4,a4]@2 [e4,g4]@2 [g4,a#4]@4 [g4,a#4] [f4,a4] [e4,g4]@4 ~@8]/2", // F Em Gm F Em
  AH: "g4@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [e4,g4]@2 [g4,a#4] [f4,a4]", // F Em Gm F
  AI: "[[f4,a4]@2 [f4,a4]@4 [f4,a4]@4 [f4,a4]@2 [e4,g4]@2 [g4,a#4]@4 [g4,a#4] [f4,a4] [e4,g4]@4 ~@2 [e4,g4]@2 [f4,a4]@2 [g4,a#4]@6 [f4,a4]@2 [e4,g4]@2 [f4,a4]@2 [f4,a4]@2 [e4,g4]@2 [f4,a4]@2]/3", // F Em Gm F Em F Gm F …
  AJ: "[e4,g4] ~@3", AK: "[g4,a#4]@4 [f4,a4]@4 [f4,a4]@4 [g4,a#4] [f4,a4] [e4,g4]@2",
  AL: "g4@2 [f4,a4]@2 [f4,a4]@2 [e4,g4]@2 [f4,a4]@2 [f4,a4]@2 [e4,g4]@2 [g4,a#4] [f4,a4]", // F Em F Em Gm F
  AM: "[[f4,a4]@2 [f4,a4]@4 [f4,a4]@4 [f4,a4]@2 [d#4,g4]@2 [g4,a#4]@4 [g4,a#4] [f4,a4] [e4,g4]@4 ~@2 [e4,g4]@2 [f4,a4]@2 [g4,a#4]@6 [f4,a4]@2 [e4,g4]@2 [f4,a4]@2 [f4,a4]@2 [e4,g4]@2 [f4,a4]@2]/3", // F D# Gm F Em F Gm F …
  AN: "[[f4,a4]@2 [f4,a4]@4 [f4,a4]@4 [f4,a4]@2 [d#4,g4]@2 [g4,a#4]@4 [g4,a#4] [f4,a4] [e4,g4]@4 ~@8]/2", // F D# Gm F Em
  AO: "[f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@4 [g4,a#4]@4 [g4,a#4] [f4,a4]", // F Gm F
})).s("gm_synth_brass_1").gain(0.24).pan(0.4)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B@2 C ~@23 D E ~@23 D E ~@25 F ~ F ~ F ~ D E ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~@6
>`.pickRestart({
  A: "[c3,g3,c4] ~@13 a#2 b2", B: "[c3,g3,c4]@2 ~@12 a#2 [b2,c3]", C: "[c3,g3,c4] ~@7", D: "[c3,g3,c4]@14 a#2 b2",
  E: "[c3,g3,c4]@15 ~", F: "~ [g4,c5] ~@2 [g4,c5] ~ [g4,c5]!2",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.6)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note("<A B@2 C ~@23 A B ~@23 A B ~@31 A B ~@15 A B@2 C ~>".pickRestart({
  A: "~@2 [c4,c5] ~ [a#3,a#4] ~ [c4,c5]@3 ~ [a#3,a#4] ~ [f3,f4] [f3,g3,f4,g4] [d#3,d#4]@2", // C A# C A# F Fsus2 D#
  B: "~@2 [c4,c5] ~ [a#3,a#4] ~ [c4,c5]@3 ~ [a#3,a#4] ~ [f3,f4] [f3,g3,f4,g4] [d#3,d#4] ~", // C A# C A# F Fsus2 D#
  C: "~@2 [c4,c5] ~ [a#3,a#4] ~ [c4,c5]@4 [a#3,a#4] ~ [f3,f4] [f3,g3,f4,g4] [d#3,d#4]@2", // C A# C A# F Fsus2 D#
})).s("gm_overdriven_guitar").gain(0.25).pan(0.1)

// drums · kick
const kick = s("bd").struct("<A@3 B C@15 D C@7 A E F C@22 A G F@2 C@14 B C@5 D C@25 A@4 ~>".pickRestart({
  A: "x ~@7 x ~@2 x ~@2 x ~", B: "x ~ x!2", C: "x!4", D: "x!3 ~", E: "x", F: "x ~@3 x ~@3 x ~@2 x ~@2 x ~",
  G: "x ~@2 x ~@12",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct("<A@3 B A@15 C A@6 C A D A@15 B A@6 E A B A@15 B A@6 C B A@8 B A@7 B A@11 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x!8", C: "~@4 x ~@7 x!4", D: "~@4 x!4 ~@4 x!4", E: "~@4 x ~@7 x!3 ~",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct(`<
  A@3 B C D A D A D A E@5 A E@2 F G H C I J H D K L K E@2 D I D@2 A D@2 A D@3 E M N H O H C P C K Q K A E D@3 A D@7 I R
  G H C S C D@2 T U H C D P H C K V G W K H C P U V W@2 H@4 W K A@3 ~
// … 33 more lines

More by Steve Miller Band