Strudelify
Here Come Those Tears Again cover art

1977 · The Pretender

Here Come Those Tears Again

Jackson Browne

KeyB♭ majorTempo120 bpm
0:00/0:00
// Here Come Those Tears Again — Jackson Browne
// 120 bpm, 4/4, key Bb major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · piano
const piano = note("<A B C D A D E F G ~ H ~@3 I ~@3 J ~@3 K ~ L M N O M@2 P ~ Q L ~@74>".pickRestart({
  A: "[c4,d4,f4]", B: "[d3,f3,bb3]", C: "[f3,g3,bb3,d4]@7 [f3,g3,bb3,d4]@8 ~", D: "[f4,g4,bb4]",
  E: "[d3,f3,bb3]@7 [bb3,d4,f4,bb4]@8 ~", F: "[bb3,eb4,g4,bb4]", G: "[a3,bb3,d4]",
  H: "[bb3,eb4,g4,bb4]@7 [eb4,g4,bb4]@8 ~", I: "~@7 [f4,bb4,c5,f5]@8 ~", J: "~@7 [gb3,ab3,b3,eb4]@8 ~",
  K: "~@7 [g3,b3,d4,f4]@8 ~", L: "[a3,c4,e4,g4]", M: "[bb3,d4,e4,g4]", N: "[a3,c4,eb4,f4]",
  O: "[f3,ab3,c4,eb4]@7 [ab3,c4,d4,f4]@8 ~", P: "[db4,f4,g4,bb4]", Q: "[a3,c4,eb4,f4]@7 [g3,b3,d4,f4]@8 ~",
})).s("gm_piano").gain(0.15)

// other · recorder
const recorder = note(`<
  ~@31 A B C D E ~@21 F@2 ~ G ~@3 H I J K@2 ~@7 B L M N O P O Q R S T U H V ~@2 R S T U H V ~@2 R S T U H V ~@2
>`.pickRestart({
  A: "~@3 d5", B: "d5@5 ~ d5@9 ~", C: "d5!2 eb5 d5!2 ~@3", D: "~@2 bb4 d5!3 d5@2", E: "d5@2 d5 eb5 d5@2 d5 bb4",
  F: "[~@10 f5@2 eb5@2 d5@9 ~@9]/2", G: "a5@5 ~ bb5@9 ~", H: "~ bb5@3", I: "ab5 a5 g5@2", J: "~ c6@3",
  K: "[a5!4 g5@2 gb5 g5@3 ~@6]/2", L: "d5@2 d5@2 eb5@2 d5@2 d5@2 eb5 d5 d5@4", M: "~@2 f5!3 eb5!2 d5",
  N: "eb5@2 eb5@2 d5@2 eb5@2 d5@7 ~", O: "d6@3 bb5", P: "bb5@2 bb5@2 bb5@2 c6 bb5@9",
  Q: "bb5@2 bb5@2 bb5@2 d6 bb5 bb5@2 f5@2 bb5@2 c6@2", R: "bb5@5 ~ bb5@9 ~", S: "bb5@2 bb5@2 c6@2 bb5@9 ~",
  T: "~@2 bb5!2 c6 g5 bb5 g5", U: "f6 eb6@2 d6 c6@2 ~@2", V: "ab5@2 g5@4 g5@9 ~",
})).s("gm_recorder").gain(0.4)

// chords · piano
const piano_2 = note(`<
  A B C D E F A G H@2 I@2 J@2 K@2 L M N O P Q P R S@2 T@2 J@2 U V L M N O P W L X L M N Y P Q R Z AA AB AC AD AE AF AG
  AH P AI L AJ L M N O L AK L AL S@2 AM AN AO@2 AP@2 L M N AQ AR AS AT AU L M N AQ AV AW AX AY L M N AQ AV AW AX AY L M
  N AQ AV AW AX AY
>`.pickRestart({
  A: "[bb3,d4,f4]", B: "[bb3,d4,f4]@4 ~ f3 bb3 f4", C: "[f3,bb3,d4]@4 ~ g3@3", D: "[g3,bb3,f4]@2 g3 a3 [bb3,eb4]@4",
  E: "[bb3,d4,f4]@3 f3", F: "[g3,bb3,eb4]", G: "[g3,bb3,eb4]@2 f3 f4", H: "[bb3,d4,g4]/2",
  I: "[[bb3,f4,g4]@3 [bb3,eb4,g4] [bb3,eb4,g4]@8 ~ [g3,c4,g4]@2 [g3,c4,g4]]/2", J: "[[bb3,d4,f4]@12 ~ d4 eb4 e4]/2",
  K: "[[bb3,c4,f4]@11 [f3,f4]@2 [f3,f4] [f3,f4]@2]/2", L: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3",
  M: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [c4,d4,f4] [bb3,d4,f4]@2", N: "[bb3,d4,f4]@3 [bb3,d4,f4]",
  O: "[bb3,eb4,g4]@3 [bb3,eb4,g4]@2 [bb3,f4,g4] [bb3,eb4,g4]@2", P: "[bb3,d4,f4]@3 [bb3,d4,f4]@5",
  Q: "[bb3,c4,f4]@3 [bb3,c4,f4]@5", R: "gb4 a3 c4 [a3,c4,f4]@2 c4 a3@2",
  S: "[[bb3,d4,g4]@2 ~@5 [a3,c4,f4]@2 [bb3,d4,g4] [bb3,d4,g4]@2 ~@4]/2", // Gm F Gm
  T: "[[g3,bb3,eb4]@7 c4@2 bb3!2 eb4@2 d4 eb4 e4]/2", U: "[c4,f4]", V: "~ [f3,f4]@2 [f3,f4] [f3,f4]@2 [f3,f4]@2",
  W: "[bb3,c4,f4]@3 [bb3,c4,f4]@2 d4 eb4 e4", X: "[bb3,c4,f4]@3 [bb3,c4,f4]@2 [f3,f4] [g3,g4] [bb3,bb4]",
  Y: "[bb3,eb4,g4]@3 [bb3,eb4,g4]@2 [bb3,eb4,f4] [bb3,eb4,g4]@2", Z: "[bb3,d4,g4] [a3,c4,f4]",
  AA: "[bb3,d4,f4] [bb4,d5,f5]", AB: "~@3 [g4,eb5]@2 [f4,d5]@3", AC: "[d4,f4,bb4]",
  AD: "~@3 [eb4,g4,d5]@2 [eb4,g4,bb4]@2 [eb4,g4,bb4]", AE: "[d4,f4,bb4]!2", AF: "[eb4,g4,bb4] [c4,gb4,a4]",
  AG: "~ [g3,g4] [bb3,bb4] [c4,c5] [d4,d5] [f4,f5] [g4,g5] [bb4,bb5]", // G Bb C D F G Bb
  AH: "~ [c5,eb5,ab5]@2 [bb4,eb5,g5]@2 [bb4,d5,f5]@3", AI: "[bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2",
  AJ: "~ [bb3,c4,f4]!3 [a3,c4,f4]!4", AK: "[bb3,eb4,g4] [bb3,eb4,g4]@2 [bb3,d4,f4]@2 [bb3,eb4,g4]@3",
  AL: "[d4,d5] [d4,d5]@2 [d4,d5]@2 [c4,c5]@3", AM: "[g3,bb3,eb4]@4 ~ eb4 d4 c4", AN: "c4 bb3 eb4!3 d4 eb4 e4",
  AO: "[[bb3,d4,f4]@7 [bb3,d4,f4]@5 ~ [bb3,d4,f4]@3]/2", // Bb
  AP: "[[g3,bb3,eb4]@4 ~ [g3,bb3,eb4]@2 [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@3]/2", AQ: "[g3,bb3,eb4]@4 eb4 d4 eb4 e4",
  AR: "[a3,d4,f4]@2 [bb3,eb4,g4]@2 [bb3,d4,f4]!2 [bb3,eb4,g4]@2", // Dm Eb Bb Eb
  AS: "[g3,bb3,eb4] [g3,bb3,eb4]@2 [f3,bb3,d4]@3 [g3,bb3,eb4]@2", // Eb Bb Eb
  AT: "[bb3,d4,f4]@2 [bb3,g4,bb4]@2 [bb3,d4,f4]!2 [bb3,g4,bb4]@2", AU: "~ [f4,f5]@2 [f4,f5] ~ [f4,f5]@3",
  AV: "~@2 [bb3,eb4,g4] ~ [bb3,d4,f4] ~ [bb3,eb4,g4] ~", AW: "~ [bb3,eb4,g4] ~ [bb3,d4,f4]@3 [bb3,eb4,g4] ~",
  AX: "[bb3,d4,f4] ~ [bb3,eb4,g4] ~ [bb3,d4,f4] ~ [bb3,eb4,g4] ~", AY: "~ [f4,f5]@2 [f4,f5]@2 [f4,f5]@3",
})).s("gm_piano").gain(0.4)

// bass · electric bass pick
const bass = note(`<
  A B C D E@2 F G H@2 I J K L M N O P Q R K@3 S T@2 U@2 V W V@2 O P Q X K Y K Z O P Q AA K@2 AB AC AD AE AF I AG AH AI
  AJ AK AL Z AM O P Q R Z AN Z S AO@2 AP@2 AQ@2 AR AS O P Q AL V@3 AT O P Q AL AU Y AU AT O P Q AL AU Y AU AT O P Q AL
  AU Y AU AT
>`.pickRestart({
  A: "bb2", B: "ab2", C: "g2", D: "eb2@7 c2", E: "f2", F: "f2@6 f2 f1", G: "f1@3 f2 ~ f1@3", H: "g1@3 g1 g1@4",
  I: "eb2@3 eb2 eb2@4", J: "eb2@6 eb2 e2", K: "f2@3 f2 f2@4", L: "f2@4 ~ d1 eb1 e1", M: "f1@3 f1 f1@4",
  N: "f1@3 f1 f1@2 f2@2", O: "bb2@3 bb2@3 bb2@2", P: "ab2@3 ab2@3 ab2@2", Q: "g2@3 g2 g2@2 g2 f2",
  R: "eb2@3 eb2 eb2@2 eb2@2", S: "d2@3 d2@3 d2@2", T: "[g1@2 g1@2 g1@2 g1 f1@2 g1 g1@2 g1@2 g1@2]/2",
  U: "[eb2@2 eb2@2 eb2@2 eb2 c2@2 bb1@2 eb2@2 d2 eb2 e2]/2", V: "f2!4", W: "f2@2 f2@2 ~ d2 eb2 e2",
  X: "eb2@3 eb2 eb2@2 eb2 e2", Y: "f2@3 f2!2 d2 eb2 e2", Z: "f2@3 f2 f2@2 f2@2", AA: "eb2@3 eb2@3 eb2@2",
  AB: "f2@3 f2@3 d2@2", AC: "g2 a2", AD: "bb2@3 bb2 bb2@4", AE: "ab2@3 ab2 ab2@4", AF: "g2@3 g2 g2@4",
  AG: "f2@3 f1 f2@4", AH: "f2 gb2", AI: "g2 g1", AJ: "~ bb1@2 c2@2 d2@3", AK: "eb2@3 eb2 eb2@3 eb2",
  AL: "eb2@3 eb2!2 d2 eb2 e2", AM: "f2!8", AN: "f2 f2@2 f2@2 f2@3", AO: "[g2@2 g2@2 g2@2 g2 f2@2 g2 g2@2 g2@2 g2@2]/2",
  AP: "[eb2@2 eb2@2 eb2!2 d2 c2@2 bb1 eb2 eb2@2 d2 eb2 e2]/2", AQ: "[f2@2 f1@2 f1@2 f1 f1@3 f1@2 f1@2 f1@2]/2",
  AR: "f1!4", AS: "f1!3 f2", AT: "~ d2@2 eb2@2 e2@2 f2", AU: "f2@3 f2 f2@3 f2",
})).s("gm_electric_bass_pick").gain(0.55)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A B C D E F G H I J K L M@2 N@2 O P Q R S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@4 AM@2 AN@2 AO AP AQ AR
  AS AT AU AV AW@2 AX AY AZ BA BB BC BD BE BF BG W@2 BH@2 Z BI BJ BK BL BM BN AG BO BP BO AK BQ BR BS BT BO BU BO BU BQ
  BR BS BT BO BU BO BU BQ BR BS BT BO BU BO BV
>`.pickRestart({
  A: "[e2,bb2,f3,bb3,d4,f4]@7 ~", B: "[ab2,a2,f3,bb3,d4,e4]@7 ~", C: "[g2,a2,f3,bb3,d4,g4]@7 ~",
  D: "[e2,eb3,bb3,eb4,g4,bb4]@7 ~", E: "[e2,f3,bb3,d4,f4,bb4]@7 ~", F: "[f3,bb3,eb4,e4,g4]@7 ~",
  G: "[f3,bb3,d4,f4,bb4]@7 ~", H: "[f3,bb3,eb4,e4,g4]@7 ~ eb3@2 bb3@2 e4@4", I: "[g2,d3,g3,bb3,d4,g4]@7 ~",
  J: "[bb3,d4,g4]@5 ~ [f4,g4]@2 ~@8, ~@6 bb3@9 ~", K: "[c4,f4,a4]@5 ~ [bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]@5 ~ eb3@2",
  L: "g4 [g4,ab4] eb4@2 eb4 [eb4,f4] c4@2 c4@2 bb3@2 eb3@2 e3@2", M: "[[f3,bb3,d4,f4,bb4]@23 ~@3 d3@2 eb3@2 e3@2]/2",
  N: "[[f2,c3,f3,bb3,c4,f4]@23 ~ f3@2 f2@2 gb2@2 a2@2]/2", // Fsus4
  O: "[bb2,f3,bb3,d4,f4]@2 ~ [bb2,f3,bb3,d4,f4]@2 [bb2,f3,bb3,d4,f4]!3", // Bb
  P: "[g2,a2,f3,bb3,d4,e4]@2 ~ [g2,a2,f3,bb3,d4,e4]@2 [g2,a2,f3,bb3,d4,e4]!3", // Gm7
  Q: "[g2,a2,f3,bb3,d4,g4]@2 ~ [g2,a2,f3,bb3,d4,g4]@2 [g2,a2,f3,bb3,d4,g4] f3 eb3", // Gm7
  R: "[eb3,bb3,eb4,g4,bb4]@2 ~ [eb3,bb3,eb4,g4,bb4] [eb3,bb3,eb4,g4,bb4]@2 d3 e3", // Eb
  S: "[f3,bb3,d4,f4,bb4]@2 ~ [f3,bb3,d4,f4,bb4] [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]!2", // Bb
  T: "[f2,c3,f3,bb3,c4,f4]@2 ~ [f2,c3,f3,bb3,c4,f4] [f2,c3,f3,bb3,c4,f4]@2 [f2,c3,f3,bb3,c4,f4]!2", // Fsus4
  U: "[f3,bb3,d4,f4,bb4]@2 ~ [f3,bb3,d4,f4,bb4] [f3,bb3,d4,f4,bb4]@2 eb3 d3", // Bb
  V: "[d3,a3,c4,gb4,a4]@5 ~ [d3,a3,c4,gb4,a4]@2 [d3,a3,c4,gb4,a4]@2 d3@2 f3@2 gb3@2", // D7
  W: "[[g2,d3,g3,bb3,d4,g4]@2 [g2,d3,g3,bb3,d4,g4]@2 [g2,d3,g3,bb3,d4,g4]@2 [g2,d3,g3,bb3,d4,g4] [c3,f3,a3,c4,f4]@2 [g2,d3,g3,bb3,d4,g4] [g2,d3,g3,bb3,d4,g4]@2 [g2,d3,g3,bb3,d4,g4]@2 [g2,d3,g3,bb3,d4,g4]@2]/2", // Gm F Gm
  X: "[eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]!2", // Eb
  Y: "[eb3,bb3,eb4,g4,bb4]!2 [bb3,eb4,g4]@2 eb3 d3 eb3 e3", Z: "[f3,bb3,d4,f4,bb4]!4",
  AA: "[f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 eb3 d3 eb3 e3", AB: "[f3,c4,f4,bb4,c5]!4",
  AC: "[f3,c4,f4,bb4,c5]@2 [f3,c4,f4,bb4,c5]@2 [f3,c4,f4,bb4,c5]!4", // Fsus4
  AD: "[bb2,f3,bb3,d4,f4,bb4]@5 ~ [bb2,f3,bb3,d4,f4,bb4]@2 ~@2 [bb2,f3,bb3,d4,f4,bb4]@2 [bb2,f3,bb3,d4,f4,bb4]@2 [bb2,f3,bb3,d4,f4,bb4]@2", // Bb
  AE: "[ab2,a2,f3,bb3,d4,e4]@5 ~ [ab2,a2,f3,bb3,d4,e4]@2 ~@2 [ab2,a2,f3,bb3,d4,e4]@2 [ab2,a2,f3,bb3,d4,e4]@2 [ab2,a2,f3,bb3,d4,e4]@2", // Bb7
  AF: "[g2,a2,f3,bb3,d4,g4]@5 ~ [g2,a2,f3,bb3,d4,g4]@2 ~@2 [g2,a2,f3,bb3,d4,g4]@2 [g2,a2,f3,bb3,d4,g4]@2 [g2,a2,f3,bb3,d4,g4]@2", // Gm7
  AG: "[eb3,bb3,eb4,g4,bb4]@5 ~ [eb3,bb3,eb4,g4,bb4]@2 ~@2 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@2", // Eb
  AH: "[f3,bb3,d4,f4,bb4]@5 ~ [f3,bb3,d4,f4,bb4]@2 ~@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2", // Bb
  AI: "[f3,c4,f4,bb4,c5]!2 ~ [f3,c4,f4,bb4,c5]!2 ~ [f3,c4,f4,bb4,c5]!2", // Fsus4
  AJ: "~@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]!4", // Bb
  AK: "[f3,c4,f4,bb4,c5]!2 ~ [f3,c4,f4,bb4,c5] ~ [f3,c4,f4,bb4,c5]!3", // Fsus4
  AL: "[d4@7 ~ eb4@4 f4@2 c5@6 c5@4 bb4@4 ab4@2 g4@12 g3@2 bb3@2 eb4@4 d4@2 eb4@2 f4@2 d4@2 c4@2 c4@4]/4",
  AM: "[bb3@2 c4@2 f3@5 ~ bb3@2 d4@2 c4@13 ~ c4@2 ~@2]/2",
  AN: "[d4@4 gb4@2 a4@2 d5 [d5,eb5] c5@2 d5@2 d5@6 c5@2 bb4@2 a4@2 g4@2 f4 [f4,g4] eb4@2]/2", // Ebmaj7 Fsus2
  AO: "[bb2,f3,bb3,d4,f4]@7 ~ [bb3,d4]@2 bb3@2 [f3,bb3]@4", AP: "[ab2,a2,f3,bb3,d4,e4]@7 ~ [bb3,d4]@2 bb3@2 [f3,bb3]@4",
  AQ: "[a2,f3,bb3,d4,g4]@7 ~ [d4,g4]@2 d4@2 [bb3,d4]@2 [f3,bb3]@2", // Gm7 G5 Bb Bb5
  AR: "[eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]!4 ~ [eb3,bb3,eb4,g4,bb4]", // Eb
  AS: "~@2 [f3,bb3,d4,f4,bb4]!2 [f4,bb4] f4 d4 bb3", // Bb Bb5
  AT: "[f3,bb3,eb4,e4,g4]@2 [f3,bb3,eb4,e4,g4]!2 [a3,db4,gb4,bb4]@2 [a3,db4,gb4,bb4]@2", // Eb Gb
  AU: "[g2,d3,g3,bb3,d4,g4]@7 ~ [g2,d3,g3,bb3,d4,g4]@7 ~", AV: "~@2 [bb2,eb3,ab3,c4]@4 [c3,g3]@4 [d3,f3,bb3]@5 ~",
  AW: "[eb3,bb3,eb4,g4,bb4]!3 ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4]!2", // Eb
  AX: "[f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4] ~ bb4 g4 [d4,g4] bb3", AY: "~ [f3,c4,f4,bb4,c5]!3 [c3,f3,a3,c4,f4]!4",
  AZ: "[bb2,f3,bb3,d4,f4,bb4]@5 ~ [bb2,f3,bb3,d4,f4,bb4]@2 [bb2,f3,bb3,d4,f4,bb4]@4 [bb2,f3,bb3,d4,f4,bb4]@2 [bb2,f3,bb3,d4,f4,bb4]@2", // Bb
  BA: "[ab2,a2,f3,bb3,d4,e4]@5 ~ [ab2,a2,f3,bb3,d4,e4]@2 [ab2,a2,f3,bb3,d4,e4]@4 [ab2,a2,f3,bb3,d4,e4]@2 [ab2,a2,f3,bb3,d4,e4]@2", // Bb7
  BB: "[g2,a2,f3,bb3,d4,g4]@5 ~ [g2,a2,f3,bb3,d4,g4]@2 [g2,a2,f3,bb3,d4,g4]@4 [g2,a2,f3,bb3,d4,g4]@2 [g2,a2,f3,bb3,d4,g4]@2", // Gm7
  BC: "[eb3,bb3,eb4,g4,bb4]!2 ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]!3", // Eb
  BD: "[f3,bb3,d4,f4,bb4]@5 ~ [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 ~@2 [f3,bb3,d4,f4,bb4]@2", // Bb
  BE: "[f3,bb3,eb4,e4,g4]!3 ~ [f3,bb3,eb4,e4,g4]!2 ~ [f3,bb3,eb4,e4,g4]", // Eb
  BF: "~@4 [f3,bb3,d4,f4,bb4]@5 ~ [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2", // Bb
  BG: "[d3,a3,c4,gb4,a4]!3 ~ [d3,a3,c4,gb4,a4]!4", // D7
  BH: "[[eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4] [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4] [ab3,bb3,eb4,g4]@2 eb3 d3 eb3 e3]/2", // Eb
  BI: "[f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4] ~ [f3,bb3,d4,f4,bb4]!2", BJ: "[f3,bb3,eb4,e4,g4]!4",
  BK: "~ [f3,bb3,eb4,e4,g4]!7", BL: "[bb2,f3,bb3,d4,f4,bb4]@5 ~ [bb2,f3,bb3,d4,f4,bb4]@7 ~ [bb2,f3,bb3,d4,f4,bb4]@2",
  BM: "[ab2,a2,f3,bb3,d4,e4]@5 ~ [ab2,a2,f3,bb3,d4,e4]@7 ~ [ab2,a2,f3,bb3,d4,e4]@2", // Bb7
  BN: "[ab2,a2,f3,bb3,d4,g4]@5 ~ [ab2,a2,f3,bb3,d4,g4]@7 ~ [ab2,a2,f3,bb3,d4,g4]@2", // Gm7
  BO: "[f3,bb3,d4,f4,bb4]@5 ~ [f3,bb3,d4,f4,bb4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2", // Bb
  BP: "[f3,bb3,eb4,e4,g4]@5 ~ [f3,bb3,eb4,e4,g4]@4 [f3,bb3,eb4,e4,g4]@2 [f3,bb3,eb4,e4,g4]@2 [f3,bb3,eb4,e4,g4]@2", // Eb
  BQ: "[bb2,f3,bb3,d4,f4,bb4]@2 ~ [bb2,f3,bb3,d4,f4,bb4]!5", BR: "[ab2,a2,f3,bb3,d4,e4]@2 ~ [ab2,a2,f3,bb3,d4,e4]!5",
  BS: "[ab2,a2,f3,bb3,d4,g4]@2 ~ [ab2,a2,f3,bb3,d4,g4]@2 [ab2,a2,f3,bb3,d4,g4]!3", // Gm7
  BT: "[eb3,bb3,eb4,g4,bb4]@2 ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]!3", // Eb
  BU: "[f3,bb3,eb4,e4,g4]!2 ~ [f3,bb3,eb4,e4,g4] ~ [f3,bb3,eb4,e4,g4]!3", // Eb
  BV: "[f3,bb3,eb4,e4,g4]!2 ~ [f3,bb3,eb4,e4,g4] ~ [f3,bb3,eb4,e4,g4] ~ [f3,bb3,eb4,e4,g4]", // Eb
})).s("gm_electric_guitar_clean").gain(0.46)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@32 A B C D ~ E ~ F ~@11 G ~@4 H@2 I ~@5 J K ~ L ~@5 M ~@9 F ~@5 N ~ N ~@5 N ~ N ~@5 N ~ O
>`.pickRestart({
  A: "~@4 [bb2,f3,bb3,d4,f4,bb4] ~@3", B: "~@4 [ab2,a2,f3,bb3,d4,e4] ~@3", C: "~@4 [g2,a2,f3,bb3,d4,g4] ~@3",
  D: "~@4 [eb3,bb3,eb4,g4,bb4] ~@3", E: "~@2 [f3,c4,f4,bb4,c5] ~@2 [f3,c4,f4,bb4,c5] ~@2",
  F: "~@2 [f3,c4,f4,bb4,c5] ~ [f3,c4,f4,bb4,c5] ~@3", G: "~@6 [eb3,bb3,eb4,g4,bb4] ~",
  H: "~@3 [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~@2", I: "~@3 [f3,bb3,d4,f4,bb4] ~@4",
  J: "~@6 [f3,bb3,d4,f4,bb4] ~", K: "~@3 [f3,bb3,eb4,e4,g4] ~@2 [f3,bb3,eb4,e4,g4] ~", L: "~@3 [d3,a3,c4,gb4,a4] ~@4",
  M: "~@5 [f3,bb3,d4,f4,bb4] ~@2", N: "~@2 [f3,bb3,eb4,e4,g4] ~ [f3,bb3,eb4,e4,g4] ~@3",
  O: "~@2 [f3,bb3,eb4,e4,g4] ~ [f3,bb3,eb4,e4,g4] ~ [f3,bb3,eb4,e4,g4] ~", // Eb
})).s("gm_electric_guitar_clean").gain(0.17)

// other · electric guitar clean
const electric_guitar_clean_3 = note("<~@26 A@2 ~@9 B ~@32 A@2 ~@7 C ~ B ~@7 B ~@7 B ~@7 B ~@2>".pickRestart({
  A: "[~@7 eb4@2 d4 ~@6]/2", B: "~@5 d3 eb3 e3", C: "~@6 eb3 e3",
})).s("gm_electric_guitar_clean").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@16 A B@8 A B@6 A B A B@4 C A B@2 A B@4 A B@3 A@2 B@10 A B@7 A B@7 A B@7 A B@7 A B@7 A B@3
>`.pickRestart({
  A: "~ x", B: "x!2", C: "x",
})).gain(0.33)

// drums · snare
const snare = s("sd").struct("<~@16 A@7 B A@7 C A@7 D A@15 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@4>".pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~", C: "~@2 x ~ x!4", D: "~ x ~ x ~ x ~ x",
})).gain(0.28)

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@31 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@4>".pickRestart({
  A: "~@7 x",
})).gain(0.37)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@16 A@7 B A@8 C A@7 C A@7 C A@6 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@4
>`.pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "~ x!7",
})).gain(0.16)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A ~@31 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@4>".pickRestart({
  A: "~@12 x!2 ~@2",
})).gain(0.28)

// drums · high tom
const high_tom = s("ht").struct("<~@23 A ~@31 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@4>".pickRestart({
  A: "~@9 x ~ x ~@4",
})).gain(0.33)

// … 4 more lines

More by Jackson Browne