Strudelify

The Pretender

Jackson Browne

KeyG majorTempo101 bpm
0:00/0:00
// The Pretender — Jackson Browne
// 101 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 153 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(101/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 · "Bass"
const bass = note(`<
  ~ A B C@2 A B D@2 E F G@2 E F H I J K L K M N O P Q R J S T U V M W X J K L K M N Y Z AA AB AC AD AE AF AG AH AI@2 AJ
  AK AL AM AN AO AP AQ AR AS AT@2 AU AV F AW AX@2 AY AZ AX BA BB BC BD BE BF BG BH BI BJ H E F G@2 E F H I J K L K M N Y
  Z AA AB AC AD AE AF AG BK AI@2 AJ AK AL AM AN AO AP BL BM BN AT@2 AU AV F BO AX@2 AY AZ AX BA BB BC BP AX AY AZ AX BA
  BB BC BQ BR BS BT BU BV BW BX BY@2
>`.pickRestart({
  A: "g2@13 ~ g2 ~", B: "g2@10 ~@2 g2@3 ~", C: "[c3@29 ~@3]/2", D: "[c3@7 d3]/2", E: "g2@15 ~", F: "g2",
  G: "[~@10 c3@2 g2@2 c2@13 ~ d2@4, ~@2 e3 ~@5]/2", H: "d2", I: "c2", J: "g2@5 ~ g2 ~ g2@8", K: "c2@5 ~ c2@10",
  L: "g2@5 ~ g2 ~ g2@6 b1@2", M: "g2@6 g2 ~ g2@8", N: "d2@6 d2 ~ d2@7 ~", O: "c2 ~ b1@3 ~ a1 ~", P: "g1@13 ~@3",
  Q: "c2@2 ~@2 b1@7 ~ a1@2 ~@2", R: "g1 ~", S: "g2@5 ~ g2 ~ g2@2 d2@2 g2@2 b1@2", T: "c2@5 ~ c2 ~ c2@7 ~",
  U: "c2@5 ~ c2 ~ c2@8", V: "g2@5 ~ g2 ~ g2@7 ~", W: "d2@6 d2 ~ d2@8", X: "c2@5 ~ c2 ~ c2@4 d2@4",
  Y: "c2 ~ b1@3 ~ a2 ~", Z: "g2@13 ~@3", AA: "c2@2 ~@2 b1@7 ~ a2@2 ~@2", AB: "g2@4 ~ g2 b2 c3", AC: "d3@5 ~ d3 ~ d3@8",
  AD: "c3@5 ~ c3 ~ c3@5 ~ c3 ~", AE: "b2@5 ~ b2 ~ b2@7 ~", AF: "b2@6 b2 ~ b2@7 ~", AG: "g2@5 ~ g2 ~ g2 ~ g2@4 g2 ~",
  AH: "g2@6 g2 ~ g2@5 ~ f2 ~", AI: "e2@5 ~ e2 ~ e2@7 ~", AJ: "c3@6 c3 ~ c3@8", AK: "g2@5 ~ g2 ~ g2@4 a2@2 a#2@2",
  AL: "b2@6 b2 ~ b2@4 d2@2 d#2@2", AM: "e2@5 ~ e2 ~ e2@4 e3 a2 e2@2", AN: "a2@5 ~ a2 ~ a2@4 e2@2 a2@2",
  AO: "g2@5 ~ g2@2 e2@4 g2@3 ~", AP: "f#2@3 d2 f#2 d2 e2 ~", AQ: "d2@2 ~@2 d3@11 ~", AR: "g3 d3 g2 c2@3 c3@2",
  AS: "a3 f#3 ~ d3@3 d2@2, ~ g2 ~@2", AT: "[e2@6 b2@3 c4 b3 a3@2 ~ e3 d3, ~@13 g3@2 ~]/2",
  AU: "a3 f#3 ~ e2@3 c2@2, ~ g3@2 ~", AV: "a3 f#3 ~@4 f#2@2, ~ g3@2 ~, ~@3 d2@5", AW: "g2 ~@5 d2@2",
  AX: "g2@5 ~ g2@4 d2@2 g2@2 d2@2", AY: "c3@3 c3@2 g2 c3 g2", AZ: "c3@5 ~ c3@4 g2@2 c3@2 d3 ~",
  BA: "g2@3 g2@2 d2 g2 d2", BB: "c3@5 ~ c3@4 g2@2 c3@2 g2@2", BC: "c3@5 ~ c3@4 g2@2 c3@3 ~", BD: "e2@6 e2@5 ~ e2@3 ~",
  BE: "d#2@6 d#2@5 ~ d#2@3 ~", BF: "d2@5 ~ d2 ~ d2@4 d2@4", BG: "c2@5 ~ c2@5 ~ c2@3 ~", BH: "b1@3 b1@3 b1@2",
  BI: "e2@5 ~ e2@6 e2@3 ~", BJ: "d2@6 d2 ~ d2@4 a2@4", BK: "g2@6 g2 ~ g2@5 ~ g2 ~", BL: "d2@2 ~@2 d2@11 ~",
  BM: "g3 d3 e3 c3@3 c3@2", BN: "a3 f#3 g3 d3@5", BO: "g2 ~@7", BP: "~@3 g2@2 d2 g2 d2", BQ: "g2@3 g2@3 d2 f#2",
  BR: "g2@3 g2@2 d2 g2@2", BS: "c3@5 c3@2 ~ c3@4 g2@4", BT: "c3@5 ~ c3@2 c3@4 d3@4", BU: "g2@6 g2@5 ~ d2@2 g2@2",
  BV: "g2@3 g2@3 g2@2", BW: "c3@3 c3@3 g2@2", BX: "c3@3 c3@3 d3@2", BY: "[g2@27 ~@5]/2",
})).s("gm_acoustic_bass").gain(0.8).pan(0.4)

// chords · piano · "Piano 2"
const piano = note(`<
  ~ A B@2 ~ C D@3 E@2 F@2 G H I J K L M N O P Q R S T U@2 V@2 W@2 X Y K L M N O P Q R Z AA AB AC AD@2 AE@2 AF AG AH AI
  AJ AK AL AM AN AO AP@2 AQ@2 AR AS AT@2 AU@2 AV AW AX@2 AV AW AY AZ BA@2 BB@2 BC BD E@2 F@2 G H I J K L M N O P Q R Z
  AA AB AC AD@2 AE@2 AF AG AH AI AJ AK AL AM AN AO AP@2 AQ@2 AR AS AT@2 AU@2 AV AW AX@2 AV AW BE@2 BF@2 BG@2 BH@2 A B@2
  ~ C D@3 BI@2
>`.pickRestart({
  A: "[g3,g4,b4]@11 ~ [g3,g4,b4]@3 ~", // G
  B: "[[a3,a4,c5] ~ [g3,g4,b4]@4 [g3,f#4,a4]@3 ~ [g3,g4,b4]@3 ~ [c3,c4,e4]@17 ~]/2", // Am G D G C
  C: "[g3,g4,b4,d5,g5]@11 ~ [g4,b4,d5]@2 ~@2, ~@3 g3", // G
  D: "[[a4,c5,e5] ~ [g3,g4,b4,d5]@3 ~ [g3,e4,a4,c5]@3 ~ [g3,g4,b4,d5]@3 ~ [c4,e4,g4]@27 ~@7, a3@2 ~@12 c3@29 ~@5]/3", // Am G Am7 G C
  E: "[[d4,g4]@23 ~@9]/2", F: "[~@2 g4 c5 e5@2 d5@6 c5@3 ~]/2", G: "[g4,b4]@7 ~",
  H: "~@3 [g4,b4] [f#4,a4]@2 e4@2, ~@6 g4 ~", I: "[d4,f#4]@6 ~ g4, ~@3 [d4,f#4]",
  J: "[d4,g4] [c4,e4]@3 ~ [d4,f#4] [e4,g4] [f#4,a4], ~@4 c4@3 ~, ~@2 e4 ~", // G5 C D Em F#m
  K: "[d4,g4,b4]@5 ~ [g4,b4]@4 ~@2 g4@2 d4@2, ~@3 d4@3 ~@2, ~@5 b4@2 ~", L: "~@3 b4@5, e4, ~ c4@7",
  M: "~@2 [d5,g5] [e5,a5] [d5,g5]@4 [b4,d5]@2 [g4,b4]@2 ~@2 e4 ~, g3, ~@3 d4", // G5 A5 G5 Bm G
  N: "~@5 d5 e5 g5, e4@15 ~, ~@2 c4@13 ~, ~@6 [g4,b4]@9 ~", // G
  O: "[d4,g4,b4,d5]@6 [g3,g4,b4]@6 [d4,g4,b4]@3 ~, ~@6 d5@9 ~", // G
  P: "[d4,f#4,a4]@5 ~ [d4,f#4,a4]@5 ~ [d4,f#4,a4,d5]@2 ~@2, d5@11 ~@5", Q: "[g4,c5,e5]@3 ~ [g4,b4,d5]@8 [e4,a4,c5]@3 ~",
  R: "[d4,g4,b4]@15 ~", S: "[c4,e4,g4,c5]@3 ~ [b3,d4,g4,b4]@8 [a3,c4,e4,a4]@3 ~", T: "[g3,b3,d4,g4]",
  U: "[[g3,d4,g4,b4]@5 ~ [g3,d4,g4,b4]@16 [g3,d4,g4,b4] ~ [g3,g4,b4]@3 ~ [g3,f#4,a4]@2 ~@2, ~@12 d4@3 ~]/2", // G D
  V: "[[e3,c4,f#4,a4]@5 ~ [c4,e4,g4]@17 ~ [c4,e4]@2 [d4,f#4]@2 [e4,g4]@2 [f#4,a4]@2, ~@3 e3@13]/2", // F#m7b5 C D Em F#m
  W: "[[g4,b4]@5 ~ b4@10 g3@2 ~@6 [g4,c5,e5]@3 ~ [g4,b4,d5]@3 ~, d5 ~@5 g4@12 ~@4 g3@9 ~]/2", // G C G
  X: "[g4,b4] ~ [f#4,a4,d5]@9 ~ [f#4,a4,d5]@3 ~, d5 ~@7", Y: "[f#4,a4,d5] ~@9 e5 f5 e5@2 c5@2, ~ [e4,g4,c5]@5 ~@2",
  Z: "[c4,e4,g4,c5]@3 ~ [b3,d4,g4,b4]@8 [a3,c4,e4,a4,c5]@3 ~", // C G Am
  AA: "~@10 [d5,g5]@2 [g4,b4]@2 d5 ~, [g3,b3,d4], [g4,b4]@3 ~", // G5 G
  AB: "[d4,a4,d5,f#5]@5 ~ [d4,a4,d5,f#5]@5 ~ [d4,a4,d5,f#5]@3 ~", // D
  AC: "[c4,g4,c5,e5]@5 ~ [c4,g4,c5,e5]@6 [c4,g4,c5,e5]@3 ~", // C
  AD: "[[b3,f#4,b4,d5]@5 ~ [b3,f#4,b4,d5]@5 ~ [b3,b4,d5] ~ [f#4,b4]@8 [a3,e5]@2 [b4,d5] ~ g4@2 a4@2 [d4,g4] ~, ~@12 f#4@2 [a3,d#5]@7 ~@3 b3@6 ~@2, ~@26 b4 ~ e4 ~@3]/2", // Bm B5 A5 Bm G5 Adim
  AE: "[c4,e4,g4] c3 [c4,e4,g4] c3 [c4,e4,g4] c3 [c4,e4,g4] c3", // C
  AF: "[e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@5 ~ [e3,a3,d4,f#4]@3 ~", // Em D
  AG: "[e3,b3,e4,g4]@5 ~ e5 ~@2 b4 [g3,g4]@2 [e3,b3,g4,a4]@2 g4@2, ~@3 [e3,b3,e4]@3 ~@2, ~@3 g4@2 ~ e4@2, ~@4 d5 ~@3", // Em G Em E5
  AH: "[c3,g4,b4,e5]@5 ~ e5@4 c5 ~ [b4,d5]@2 [g4,b4]@2, ~@6 [c3,g4]@9 ~, ~@3 b4@3 ~@2, ~@5 e5@2 ~", // Cmaj7 Bm G C5
  AI: "[g3,g4,b4]@3 [g3,g4,b4,d5]@4 ~", AJ: "[b3,f#4,b4,d#5]@5 ~ [f#4,b4,d#5]@8 ~@2, ~@3 b3@5",
  AK: "[e3,e4,g4,b4]@5 ~ [e3,e4,g4,b4]@8 ~@2", AL: "[a3,e4,g4,b4]@5 ~ [a3,e4,g4,b4]@8 [a3,e4,g4,b4] ~",
  AM: "[g3,e4,g4,b4]@5 ~ [a3,e4,g4,b4]@5 ~ [a3,e4,g4,b4]@3 ~", AN: "[d5,f#5]@5 ~ d5 f#5, d4, ~@5 a4@3",
  AO: "[b4,e5,g5] ~ [d3,a4,d5,f#5]@5 ~, a3 ~@3", // Em D
  AP: "[[c4,g4,c5,e5]@13 ~@3 [d4,f#5]@13 ~@3, ~@14 a4@15 ~@3, ~@15 d5@14 ~@3]/2", // C D
  AQ: "[[e4,b4,e5,g5]@25 ~ [b4,e5,g5] ~ [a4,d5,f#5]@3 ~]/2", AR: "[g4,c5,e5]@11 ~@5", AS: "[d4,f#5]@13 ~@3",
  AT: "[[b4,d5,g5]@25 ~@3 d3@4]/2", // G
  AU: "[[g3,g4,b4,d5]@6 g3@4 d3@2 [g3,g4,b4]@3 ~ [g3,a4] ~ [g4,b4]@3 ~ [f#4,a4]@3 ~@5 g3@2, ~@6 [g4,b4,d5]@6 d5@19 ~, ~@8 c5 g3@5 ~@2, ~@13 [g4,b4]@3]/2", // G Gsus2 G F#m G
  AV: "[c3,g4,c5,e5]@5 ~ [c3,g4,c5,e5]@9 ~", // C
  AW: "[g4,c5,e5]@6 ~@2 [c4,e4] ~ f#4@2 [e4,g4] ~ f#4@2, c3@5 ~ c3@10, ~@10 d4 ~@3 a4 ~", // C Em
  AX: "[[g3,g4,b4]@6 g3@4 d3@2 [g3,g4,b4]@3 ~ [g3,a4] ~ [g4,b4]@3 ~ [f#4,a4]@3 ~@5 g3@2, ~@6 [g4,b4,d5]@6 d5@19 ~, ~@8 c5 g3@5 ~@2, ~@13 [g4,b4]@3]/2", // G Gsus2 G F#m G
  AY: "[e3,e4,g4,b4]@3 e3@2 b2 [e3,b4]@2, ~@3 [e4,g4,b4]@3 [e4,g4] ~", // Em E5 Em
  AZ: "[d#4,g4,b4]@2 ~ d#3@2 b2 d#3@2, d#3@3 [d#4,g4,b4]@4 ~", // D#aug
  BA: "[[d3,d4,g4,b4]@3 d3@2 g3 ~@2 [c4,e4,g4]@3 c3@3 c3 ~, ~@3 [d4,g4,b4]@4 d3@2 ~@2 [c4,e4,g4]@4 ~, ~@4 c3 ~@3]/2", // G C G C
  BB: "[[d3,g4,b4]@3 [d3,d4,g4,b4]@3 [d3,d4]@2 [e3,e4]@3 e3@3 e3 ~, d4@2 ~@4 [g4,b4]@5 [e4,g4,b4]@4 ~]/2", // G D E G Em
  BC: "[d4,g4]@2 ~ [d3,d4,g4]@3 [d4,a4]@2, a4@3 ~, d3@3 ~@3 [d3,g4] ~", BD: "[d3,d4,f#4,a4]@7 ~",
  BE: "[~@2 [g4,b4,d5]@4 ~@18 [c5,e5]@2 ~ [b4,d5]@2 ~ [a4,c5] ~, [g3,d4]@5 ~ [g3,d4]@7 ~ [g3,d4]@7 [g3,d4]@9 ~@2, ~@8 [g4,b4,d5]@9 ~ [g4,b4,d5]@5 ~ g4@7 ~]/2", // G C Bm Am G5 G
  BF: "[[c3,c4,e4,g4]@5 ~ [c3,c4,e4,g4]@8 [c4,e4]@8 ~@2 e4@2 [d4,f#4,a4] ~ [e4,g4,b4] ~ [f#4,a4,c5] ~, ~@14 g4@10 c4 ~@7, ~@14 c3@7 ~ c3@10]/2", // C D Em F#dim
  BG: "[~@16 [c5,e5]@2 ~ [b4,d5]@3 ~@2 [c5,e5,g5]@3 [b4,d5,g5]@3 [g3,d4] ~, [g3,d4]@5 ~ [g3,d4]@8 [g3,d4]@7 ~ [g3,d4]@7 ~@3, ~ [b4,d5,g5]@3 [b4,d5,g5]@4 g5@4 ~@4]/2", // C Bm C G G5 G
  BH: "[~@2 [g4,c5,e5]@4 ~@2 [c5,e5]@6 ~@8 g4 ~@4 [g3,c4]@3 [g4,c5,e5]@2, [g3,c4]@5 ~ [g3,c4]@12 [g3,c4]@8 ~@6, ~@8 g4@13 ~@3 [g4,c5,e5]@5 ~@3, ~@14 [c5,e5]@9 ~@9]/2", // C C5 C C5 C
  BI: "[[g3,g4,g5]@27 ~@5, d4@23 ~@9]/2", // G
})).s("gm_piano").gain(0.8).pan(0.9)

// chords · drawbar organ · "B-3"
const drawbar_organ = note(`<
  ~@45 A B@2 C D@2 E F G@2 H@2 I@2 J K ~@8 L@8 ~ M ~ N O@2 P Q ~@8 R@2 S T U V W X Y Z AA AB AC AD AE@2 ~ AF AG@2 AH AI
  AJ@2 AK AL ~@7 AM@2 AN@4 AO@3 AP@4 AQ AR AS AT AU@4 AV AW AX AY AZ@2
>`.pickRestart({
  A: "[b4,e5]@6 [a4,d5]@9 ~, a4 ~@15", B: "[[a4,d5]@6 [g4,c5]@6 [a4,d5]@2 [f#4,b4]@15 ~ b4 c#5, [g4,g#4] ~@31]/2",
  C: "[b4,d#5]", D: "~ [g5,c6]@7", E: "~@2 [e6,f#6] ~ e6@2 d6 ~@5 b5 a5 g5 ~, ~ g6 ~@6",
  F: "~@2 d5 e5@3 d5 ~@3 b4 ~ a4 ~ g4 ~, ~@3 d#5 ~@12", G: "[~@2 [c5,e5]@13 ~ [b4,d5]@16, ~ g5@15, ~@16 e5 ~@15]/2",
  H: "[[d#5,f#5]@15 ~ [e5,g5]@16, b4]/2", I: "[e5,a5]", J: "[d5,f#5]@11 ~ [c5,e5]@3 ~", K: "[b4,e5]@3 ~ [a4,d5]@12",
  L: "[b4@16 c5@2 b4@4 a4@4 b4@4 c5@32 ~@2 [b4,d5]@15 ~ [c5,e5] ~ [b4,d5]@3 ~ [a4,c5]@4 [g4,b4]@3 ~ g4@2 a4@6 g4@2 g4@24, g4@23 ~@3 g4@60 ~@42, a4 ~@93 [c5,e5]@34]/8", // Bm C Bm Am G C
  M: "~@2 [e6,f#6] ~ e6@2 d6@2 b5 a5 g5 ~ e5@2 d5 ~, ~@3 g6@2 ~@11", N: "~@2 e6 f#6 g6@2 e6@2 a6@2 g6@2 e6@2 d6 ~",
  O: "[b5@6 d6 e6@9]/2", P: "d6@7 [f#5,a5] b5@2 a5@4 f#5@2", Q: "e5@4 d5@11 ~",
  R: "[~@4 [g5,a5] ~@9 [g5,a5] ~@3 a5@2 g5@4 e5@2 d5@6, ~@2 b5@5 b5@2 ~@7]/2", S: "b4",
  T: "c5@2 e5@4 a5@2 e5@3 g5@3 a5@2", U: "g5@10 b5@3 a5@3", V: "f#5@10 b5@3 a5@3", W: "e5 d5@2 c5", X: "b4@3 ~",
  Y: "c5@3 ~ b4@6 ~@2 a4@3 ~", Z: "g4@10 ~@2 [f#4,g4,a4,b4] [c5,d5,e5] [f#5,g5,a5,b5] [c6,d6,e6,f#6,g6]",
  AA: "[c6,a6,b6] ~@15, [f#5,d6]", AB: "[e5,c6]", AC: "[d5,b5]@12 d5 ~ [d5,b5] [d5,d6]", AD: "[b4,d#6]",
  AE: "[~@12 [e6,f#6] ~@5 a6 g6 e6@2 d6@2 b5@2 a5 ~ g5 ~@3, ~@6 g6@3 ~@7]/2", // Esus2
  AF: "~@2 g6 a6 b6@2 a6@2 g6@2 e6@2 d6@2 b5 ~", AG: "[[c5,e5]@15 ~ [b4,d5]@15 ~, g4@31 ~]/2", AH: "[f#4,b4,d#5]",
  AI: "[g4,b4,e5]@15 ~", AJ: "[a4@15 ~ g4@15 ~, [c#5,e5]@31 ~]/2", AK: "[f#4,a4]@12 [g4,e5,f#5]@3 ~, d5@15 ~",
  AL: "[b4,d5,g5]@2 ~@2 [a4,d5,f#5]@11 ~", // G D
  AM: "[~@12 [c4,d4,e4,f#4,g4,a4,b4] [c5,d5,e5,f#5,g5,a5,b5,c6,d6,e6] g6@18, ~@14 f#6 ~@17]/2", // Cmaj7
  AN: "[e6@2 d6@4 b5@4 g5@4 d5@4 e5@4 c5@4 g5@8 a5@4 g5@4 d5@4 b4@17 b4]/4",
  AO: "[c5@2 b4@4 a4@4 b4@4 e4@25 ~ e4@2 f#4@2 g4@2 a4@2]/3",
  AP: "[~@6 d4@10 e4@2 d4@3 ~ c4@3 ~ d4@3 ~ c4@7 ~@5 g3@13 ~ [g3,c4] ~ [b3,d4] ~ [c4,e4] ~ [d4,f#4] ~, b4@30 ~@8 c4@17 ~@9]/4", // C5 Bm C D
  AQ: "[d4,g4]@15 ~", AR: "d4@2 [d4,g4]@4 g4 ~ a4@2 g4@3 ~ [d4,g4]@2, a4 ~@7 d4@5 ~@3",
  AS: "[d4,a4]@2 [c4,g4]@3 ~ [c4,g4]@2 [d4,a4]@2 ~ [c4,g4]@2 [c4,g4]@2 ~", // D5 C5 D5 C5
  AT: "[d4,a4]@2 ~ [c4,g4]@2 [c4,g4]@2 ~ [d4,a4]@2 ~ [c4,g4]@2 ~ [a4,b4,c5] [d5,e5,f#5,g5], ~@7 [c4,g4]", // D5 C5 D5 C5 Am Em7 C5
  AU: "[[g5,b5]@15 ~ [a5,c6] ~ [g5,b5]@3 ~ [f#5,a5]@3 ~ [g5,b5]@3 ~ [g5,b5]@32 ~@2, d5@29 ~@35]/4", // G Am G F#m G
  AV: "[g5,b5]@13 ~ [g5,b5] ~", AW: "[a5,c6]@2 ~ [g5,b5]@2 ~ e5@2 [a5,c6]@2 ~ [g5,b5]@2 ~ b5@2, ~@6 b5 ~@6 e5@2 ~",
  AX: "[a5,c6]@2 ~ [g5,b5]@2 ~ e5@2 [a5,c6]@2 ~ [g5,b5]@2 ~ [e5,b5] ~, ~@6 b5 ~@9", // Am G Am G E5
  AY: "[a5,c6]@2 ~ g5@2 e5@2 ~ [a5,c6]@2 ~ [g5,b5]@2 a5 c6 ~, ~@3 b5 ~ b5 ~@10", AZ: "[[d4,g4]@7 ~]/2",
})).s("gm_drawbar_organ").gain(0.1).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@16 B@6 C D C E B@14 C F C G B@15 H A@7 E B@15 E A@7 I B@6 C F C G B@15 H A@7 D B@24 E J
>`.pickRestart({
  A: "~ x ~ x", B: "x ~@2 x!2 ~@3", C: "x ~@3 x ~@7 x ~@2 x", D: "x ~@2 x", E: "x", F: "x ~@4 x!2 ~", G: "x ~ x ~ x!4",
  H: "x!2 ~@2", I: "~@2 x ~@3 x!2", J: "~@3 x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@17 A@6 B ~ B ~ A@14 B C B D A@4 ~@4 A@7 E ~@7 F A@15 F ~@7 C A@6 B C B G A@4 ~@4 A@7 E ~@7 F A@24 F ~
>`.pickRestart({
  A: "~ x ~ x", B: "x ~@2 x", C: "~@3 x", D: "~@11 x!2 ~ x ~", E: "~ x ~@6", F: "x", G: "~@7 x",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@24 A ~@17 B ~ C ~@4 D@4 ~@15 E ~@33 C ~@4 D@4 ~@41 B>".pickRestart({
  A: "~@11 x!2 ~@3", B: "~@3 x", C: "~@7 x", D: "~ x ~ x", E: "x",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@16 C D C@2 D C E ~ E F G C@8 D C@2 D C E ~ E F H@15 I B@6 J K H@15 K B@7 L C D C@2 D C E ~ E F H@15 I B@6 J K H@24
  ~@2
>`.pickRestart({
  A: "x!4", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", D: "x ~ x!3 ~ x ~ x ~ x ~ x ~@3",
  E: "~ x", F: "~@3 x", G: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x ~", H: "~ x ~ x", I: "~@2 x!2", J: "x ~ x!3 ~ x!3 ~ x!3 ~ x ~",
  K: "~ x!3", L: "x ~ x!3 ~ x!3 ~@6 x",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@24 A ~@19 B ~@47 C ~@9 B ~@49 C>".pickRestart({
  A: "~@5 x ~@2", B: "x!5 ~ x ~", C: "~@11 x ~@4",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@18 A ~@2 A ~ B ~ B C ~@9 A ~@2 A ~ B ~ B C D@15 B ~@8 D@15 ~@8 A ~ A ~@2 A ~ B ~ B C D@15 B ~@8 D@24 ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@3 x ~@4", C: "~@5 x ~ x", D: "~ x ~@3 x ~@2",
})).gain(0.8)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@22 A B C B ~@14 A B D B E ~@4 F@4 ~@39 E ~@5 A B D B E ~@4 F@4 ~@41 D
>`.pickRestart({
  A: "~@15 x", B: "~@11 x ~@4", C: "~@11 x!2 ~@3", D: "~@10 x!2 ~@4", E: "~@5 x ~@2", F: "x!8",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@23 A B A B@2 ~@13 A B A B@2 ~@14 C ~@16 B ~@6 B ~@14 A B A B@2 ~@14 C ~@8 B ~@15 B ~@7 B ~
>`.pickRestart({
  A: "~ x ~@2", B: "x", C: "x!2 ~@2",
})).gain(0.8)

// drums · ride
const ride = s("rd").struct("<~@45 A@4 ~@4 A@7 ~@9 A@8 B A@6 ~@19 B A@3 ~@4 A@7 ~@9 B A@15 B A@7 ~@2>".pickRestart({
  A: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", B: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x ~",
})).gain(0.8)

stack(bass, piano, drawbar_organ, kick, snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash, ride)

More by Jackson Browne