Strudelify

Why Don't We Get Drunk (And Screw)

Jimmy Buffett

KeyD majorTempo115 bpm
0:00/0:00
// Why Don't We Get Drunk (And Screw) — Jimmy Buffett
// 115 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 5 "GUITAR A." named as a guitar, played on electric guitar clean (its piano patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 3 "GUITAR-BA" electric guitar muted (copy of ch 1 "BASS" electric bass finger); ch 9 "PIANO-BAS" piano (copy of ch 1 "BASS" electric bass finger)
// note: Full arrangement: all 78 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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 finger · "BASS"
const bass = note(`<
  A B@2 C@6 D E F C G H I J@2 C@2 J I C@2 J@2 C@2 K@2 L M J@2 C@2 J I C@3 D E N C O H I J@2 C@2 J I C@2 J@2 C@2 K@2 L M
  J@2 C@2 J I C@2 J I C P@2 ~
>`.pickRestart({
  A: "~@3 c#2", B: "[d2@47 ~]/2", C: "d2 a1", D: "d2@2 e2 f2", E: "g2!2", F: "d2@2 a1 c#2", G: "d2@2 g1 d#2",
  H: "e2 b1", I: "a1 e2", J: "g1 d2", K: "e1 b1", L: "a1@2 b1 c2", M: "c#2 a1 b1 c#2", N: "d2@2 a1 c2",
  O: "d2@2 d2 d#2", P: "[d2@6 a1@3 ~@3 d2@25 ~@11]/2",
})).s("gm_electric_bass_finger").gain(0.78)

// other · fiddle
const fiddle = note("<~@3 A B@5 ~@69>".pickRestart({
  A: "a4@7 ~",
  B: "[~@6 a4@3 ~@3 g4@3 ~ f#4@4 ~@2 d4@6 ~@2 d4@2 f4@2 f#4@2 ~ a4@2 c#5@2 d5@2 f5@2 f#5@2 a5@16 ~ a5@2 ~ g5 a5@2 ~ f#5@4 d5@40 ~@5, ~@36 g#4@2 ~@30 g5 ~ f5@3 ~@47]/5",
})).s("gm_fiddle").gain(0.23)

// chords · electric guitar clean · "GUITAR A."
const electric_guitar_clean = note(`<
  ~@3 A@3 B A@2 C D A@2 C E F D@2 A G D H A I D@2 A G E@2 J@2 D@2 A I D H A@3 C D A@3 E K D@2 A@2 L H M N L D A O E P H
  Q L D B A D H N R D H N S@2 ~
>`.pickRestart({
  A: "~ [d3,f#3,a3] ~ [d3,f#3,a3]", B: "~@6 [d3,f#3,a3]@7 ~@5 [d3,f#3,a3]@6", C: "~ [d3,f#3,a3] ~@2",
  D: "~ [d3,g3,b3] ~ [d3,g3,b3]", E: "~ [e3,g#3,b3] ~ [e3,g#3,b3]", F: "~@6 [c#3,e3,a3]@5 ~@7 [c#3,e3,a3]@5 ~",
  G: "~@6 [d3,f#3,a3]@5 ~@7 [d3,f#3,a3]@6", H: "~ [e3,a3,c#4] ~ [e3,a3,c#4]",
  I: "~@6 [d3,f#3,a3]@5 ~@7 [d3,f#3,a3]@5 ~", J: "~@6 [e3,a3,c#4]@6 ~@6 [e3,a3,c#4]@5 ~",
  K: "~@6 [e3,a3,c#4]@7 ~@5 [e3,a3,c#4]@6", L: "~@6 [d3,g3,b3]@7 ~@5 [d3,g3,b3]@6",
  M: "~@6 [f#3,a3,d4]@7 ~@5 [f#3,a3,d4]@6", N: "~ [f#3,a3,d4] ~ [f#3,a3,d4]",
  O: "~@6 [d3,f#3,a3]@6 ~@6 [d3,f#3,a3]@5 ~", P: "~@6 [e3,g#3,b3]@7 ~@5 [e3,g#3,b3]@6",
  Q: "~@6 [e3,a3,c#4]@5 ~@7 [e3,a3,c#4]@5 ~", R: "~@6 [f#3,a3,d4]@6 ~@6 [f#3,a3,d4]@5 ~",
  S: "[~@6 [e3,a3,c#4]@2 ~@4 [d3,f#3,a3,d4]@29 ~@7]/2", // A D
})).s("gm_electric_guitar_clean").gain(0.59)

// chords · harmonica
const harmonica = note(`<
  ~@10 A B C@2 D E F@2 G H@2 I@2 J@8 K L M@8 N O P N Q R S T U V W ~@8 X ~@7 Y@5 Z@5
>`.pickRestart({
  A: "~ g5 b5 g5 b5 g5 [g5,b5] b5 g5 b5 g5 b5 g5 b5 g5 b5 g5 b5 g5 b5 g5 b5 [g5,b5] ~", B: "[f#4,a4]@7 ~",
  C: "[[f#4,d5]@35 ~@13]/2", D: "~@7 e6@2 g#5 e6 g#5!2 ~ [g#5,e6] g#5 ~ g#5 ~@5 a5, ~@6 g#5@2 ~@3 e6@2 ~@3 e6@3 ~@5",
  E: "c#6 a5 [a5,c#6] c#6 a5 c#6 [a5,c#6] a5 c#6 ~ c#6 [a5,c#6] a5 c#6 ~@10", // A
  F: "[~@18 f#5 g5@14 d5 e5@2 d5@4 b4@2 a4@3 ~ g4@2]/2", G: "f4 f#4@2 d4@15 ~@6", H: "[~@23 g5@22 d5 e5@2]/2",
  I: "[c#5@10 b4@2 a4@4 g4@2 f4 f#4@3 d4@15 ~@11]/2",
  J: "[~ f4@2 f#4@4 d5@26 [g5,b5]@43 ~@5 f5 ~ a5@2 ~ f#5 f#5@12 ~ g5@3 [d5,f#5]@21 ~@5 b5@24 e5@12 ~ d5@9 ~@2 a4@5 ~ a4@6 b4@3, ~@82 f#5@3 a5@15 e5 ~@28 g#5@22 ~@2 g#5@24 ~@15]/8", // G D
  K: "~ c5@2 c#5@5", L: "~ b4@2 a4@6 g4@4 d4@6 b3@2 a#4 b4@2",
  M: "[~ d5@2 a4 b4@3 g4@23 ~@7 e4 f#4@13 e4 ~ f#4 e4 d4@8 f#4@6 g4@7 a4@5 [g4,b4]@24 c#5@24 [f#4,a4,d5]@47 ~ [f#4,a4,d5,f#5]@3 ~ [f#4,a4] ~@5 [f#4,a4] ~ [f#4,a4]@3, ~@105 a4@22 ~@65]/8", // G D F#m
  N: "~ [f#4,a4] ~@5 [f#4,a4] ~ [f#4,a4]@3 ~ [f#4,a4] ~@5 [f#4,a4] ~ [f#4,a4]@3", // F#m
  O: "~ [f#4,a4] ~@7 [g4,b4]@3 ~ [g4,b4] ~@5 [g4,b4] ~ [g4,b4]@3", // F#m G
  P: "~ [g4,b4] ~@5 [f#4,a4] ~ [f#4,a4]@3 ~ [f#4,a4] ~@5 [f#4,a4] ~ [f#4,a4]@3", // G F#m
  Q: "~ [f#4,a4] ~@5 f#4 ~ [f#4,a4]@3 ~ [f#4,a4] ~@5 [f#4,a4] ~ [f#4,a4]@3", // F#m
  R: "~ [f#4,a4] ~@7 [g#4,b4]@3 ~ [g#4,b4] ~@5 [g#4,b4] ~ [g#4,b4]@3", // F#m G#m
  S: "~ g#4 ~@5 [g#4,b4] ~ [a4,c#5]@3 ~ [a4,c#5] ~@5 [a4,c#5] ~ [a4,c#5]@3", // G#m A
  T: "~ [a4,c#5] ~@7 [g4,b4]@3 ~ [g4,b4] ~@5 [g4,b4] ~ [g4,b4]@3", // A G
  U: "~ [g4,b4] ~@5 [g4,b4] ~ [g4,b4]@3 ~ [g4,b4] ~@5 [g4,b4] ~ [g4,b4]@3", // G
  V: "~ [g4,b4] ~@7 [f#4,a4]@3 ~ [f#4,a4] ~@5 [f#4,a4] ~ [f#4,a4]@3", W: "~ f#4 ~@22", X: "~@3 g4@7 ~@14",
  Y: "[~@4 a4@5 [g4,b4]@24 c#5@24 [f#4,a4,d5]@47 ~@2 [g4,b4]@14, ~@33 a4@22 ~@65]/5", // G D G
  Z: "[~@3 d5@6 [a4,c#5]@22 [g4,b4]@2 [f#4,a4]@26 ~@4 [e4,a4,c#5]@3 ~@3 [f#4,a4,d5]@34 ~@17]/5", // A G F#m A D
})).s("gm_harmonica").gain(0.4)

// chords · fiddle · "PEDAL-STE"
const fiddle_2 = note(`<
  A@3 ~ B@3 ~@16 C D@2 E@6 ~@3 C F G H@2 ~ I@2 J@2 ~ K@2 L@2 M@2 N O P@2 D@2 E@6 ~@3 C F G H@2 Q R S T@3
>`.pickRestart({
  A: "[~@9 d5@26 ~, ~@16 [d4,f#4]@55 ~, ~@17 a4@54 ~]/3", B: "[~ [d4,f#4,a4]@3]/3", C: "~ g4@2 a4", D: "[b4@15 ~]/2",
  E: "[~@3 [d4,f#4,a4]@4 ~@41 a4@18 ~@6, ~@6 [a4,d5]@9 ~@13 e5@16 ~@4, ~@7 e4@15 ~@2, ~@42 [g#4,b4]@53 ~@49]/6", // D D5 G#m
  F: "b4@3 d5", G: "a4@3 g4", H: "[~ d4@28 ~@19]/2", I: "[~@9 [d4,g4,b4]@14 ~]/2", J: "[~ d5, [d4,a4]]/2",
  K: "[b4@24 [a4,c#5]@23 ~, e4@15 ~]/2", L: "[~@4 g5@3 ~, [g4,b4,d5]@43 ~@5]/2", M: "[d5@7 ~, a4@11 ~@13]/2",
  N: "[b4,d5], g4@11 ~", O: "a4@7 ~", P: "[~@5 g4@2 a4, [a4,d5]@37 ~@11]/2", Q: "[g4,b4,d5]", R: "[e4,a4,c#5]",
  S: "[a4,d5]", T: "[~@6 [e4,a4,c#5]@3 ~@3 [a4,d5]@50 ~@10]/3",
})).s("gm_fiddle").gain(0.14)

// chords · fiddle · "PEDAL-STE" · soft notes
const fiddle_soft = note("<~@26 A@2 ~ B@3 ~@11 C@2 ~ D ~@3 E ~@2 F G@2 ~@2 A@2 ~ B@3 ~@10 H I@3>".pickRestart({
  A: "[~@9 f#4@14 ~]/2", B: "[~@23 c#5@37 ~@12]/3", C: "f#4/2", D: "g#4@7 ~", E: "f#4@19 ~@5", F: "c#5@7 ~",
  G: "[f#4@37 ~@11]/2", H: "f#4", I: "[~@6 f#4@25 ~@5]/3",
})).s("gm_fiddle").gain(0.05)

// chords · piano
const piano = note(`<
  ~@2 A B@3 C B@2 D E F B D G H E I B J E K L@2 M N O P Q@2 R S E T B U V W X@2 B Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK
  AL AM N O AN Q AO AP AQ AR T C AS V W AT@2 E AU AL AV@2 ~
>`.pickRestart({
  A: "~@6 [f#4,a4]@3 ~@3 e4 f#4@3 e4@2 d4@3 ~@3, ~@6 e4 ~@5 a4@10 ~@2", B: "~ [d4,f#4,a4] ~ [d4,f#4,a4]",
  C: "~@6 [d4,f#4,a4]@7 ~@5 [d4,f#4,a4]@6", D: "~ [d4,f#4,a4] ~@2", E: "~ [d4,g4,b4] ~ [d4,g4,b4]",
  F: "~@4 f#5 d5 e5@2 ~ [d4,f#4,a4]@3, ~@4 a5@6 ~@2 a5@11 ~, ~@4 e5@4 ~@2 e5 ~@5 d5@7 ~, ~ [d4,f#4,a4] ~@2", // D
  G: "~@6 f#5 g#5@2 ~@4 g#5@3 f#5@2 ~ b5 ~@4, ~@3 [e4,g#4,b4]@3 f#5 ~@2 [e4,g#4,b4]@3, ~@6 b5@2 ~@4 b5@6 e5@3 ~@3", // E
  H: "b4 ~@5 [c#4,e4,a4]@6 ~@6 [c#4,e4,a4]@6, e5@3 ~, ~ c#5@17 ~@6", // A
  I: "~@6 [d4,g4,b4]@6 a#5 b5@3 ~@2 [d4,g4,b4]@6, ~@6 d6@5 ~, ~@8 g5@3 ~", // G
  J: "~@3 [f#5,a5] [f5,g#5] [e5,g5] [d5,f#5]@3 [d4,f#4,a4]@3, ~@6 [d4,f#4,a4]@5 ~@13", // F#m Fm Em D
  K: "~@6 [e4,a4,c#5]@7 ~@5 [e4,a4,c#5]@6", // A
  L: "[~@4 a4@2 f#4@2 f#4@2 d4 ~@2 f#4@3 d4@2 [d4,a4]@4 [d4,a4]@8 [d4,f#4,a4]@5 ~@7 [d4,f#4,a4]@5 ~, ~@4 e4@7 ~ e4@2 ~@4 f#4@6 ~@24, ~ a4!2 ~@5, ~@3 d4@2 ~@19]/2", // D5 D
  M: "a#4@2 ~ g5!2 [b4,g5] ~ g5 b4@2 g5 [b4,g5] b4 g5 [b4,g5] ~ [b4,g5] g5 b4 [b4,g5] b4 g5 [b4,g5] b4, g5 ~ b4@2 ~@2 [d4,g4]@6 ~@6 [d4,g4]@6, ~@6 b4@2 g5 ~@15", // Em G5
  N: "~@3 g5!2 ~ [b4,g5]!2 b4 g5 [b4,g5] ~ g5 ~ g5 [b4,g5] b4 g5 [d4,g4,b4]@6, g5@2 ~@16 g5 ~@5, ~ b4@5 [d4,g4]@6 ~@12", // Em G G5
  O: "f#5@3 a4 ~ [a4,f#5] a4@2 f#5 [a4,f#5] ~ f#5 [a4,f#5] ~ f#5 [a4,f#5] ~@2 f#4@4 f#4 [g4,g#4,d5,e5,f5], g#4 ~@2 [d4,f#4]@3 ~@3 [d4,a4]@3, ~@6 f#5 ~@17", // D Ddim D D5
  P: "[a4,f#5]@2 [g#4,f5] [d4,f#4,g4,a4,e5]@2 f#4@4 [d4,f#4,a4]@3, ~@5 d5@6 ~", Q: "~ [e4,g#4,b4] ~ [e4,g#4,b4]",
  R: "[c#5,a5]@4 ~@2 [e4,a4,c#5]@6 [d5,b5]@4 ~@2 [e4,a4,c#5,d#5,c6]@5 ~, ~@3 a5@2 ~@7", // F#m A G A
  S: "[e5,c#6] ~ c#6 ~ c#6!2 ~ c#6!3 ~ c#6!2 ~ c#6!2 ~ c#6 [e4,a4,c#5]@5 ~, ~@2 e5@4 e5@11 ~ [e5,c#6] ~@5, ~ [e4,a4,c#5] ~@2", // C#m A C#m A
  T: "~@4 g4 ~ [g4,d5]@2 g4@2 [c5,e5] a#4 ~ b4@3 g4 ~ [d4,g4,b4]@6, ~ [d4,b4] ~@2, ~@6 a#4 ~@4 d5@4 ~@9", // G5 C G
  U: "~@6 a5@2 [f5,g#5] ~ [e5,f5,g5] ~ [d5,f#5]@5 f#5 d5!2 ~@4, ~@6 [d4,f#4,a4]@5 ~@7 [d4,f#4,a4]@5 ~, ~@6 f#5 ~@17", // Fm Em D
  V: "~@3 [d4,g4]@3 ~@2 a4 [d4,g4,b4]@3, ~ d5@2 ~, ~@3 b4@5 ~@4, ~@6 a4 ~@17", // G5 G
  W: "b4 c#5@3 ~@2 [e4,a4]@6 ~@4 b4@2 [e4,a4,c#5]@6, e5@3 ~@3 e5@13 ~@5, ~@2 c#5@3 ~@3, ~@6 b4 ~@17", // A5 A
  X: "[e4 ~ f#4@4 [d4,f#4,a4]@6 ~@6 [f#4,a4]@4 f#4 e4 d4@6 [d4,f#4,a4]@6 ~@6 [d4,f#4,a4]@6, a4 ~@2 d4 ~@4, ~@11 a4@3 ~@10]/2", // D F#m D
  Y: "~@4 d5 ~ f#5@2 d5 ~ [g5,b5] ~ e5 f#5@2 ~ d5@4 ~@4, ~ [d4,f#4,a4] ~@2, ~@6 a5 ~@5 a5@7 ~@5", // G D
  Z: "~@6 [d4,g4,b4]@6 d6@2 b5 ~ d6 ~ d6@2 b5 ~@3, ~@12 a#5 ~@5 [d4,g4,b4]@6, ~@18 a#5 ~@5", // G
  AA: "[e5 f#5@2 ~ d5@2 [d4,f#4,a4]@6 f5@4 f#5@2 a5@4 f#5@2 ~ f#5!2 ~ f#5!2 [d4,f#4,a4]@7 ~@5 [d4,f#4,a4]@6, a5@5 ~@13 [d4,f#4,a4]@6 ~@24, ~@11 d6@4 ~@9]/2", // D
  AB: "a5@4 [f5,g#5] ~ [e5,g5]@3 ~ [d5,f#5] f#5 d5 f#5 d5 f#5@2 ~ [d4,f#4,a4]@6, f#5@2 ~@13 d5 ~@8, f5 ~@5 [d4,f#4,a4]@6 ~@12", // Fm Em D
  AC: "~@4 [g4,g#4,e5] ~ [e4,g#4,b4]@6 [g#4,e5]@3 g#4 ~@2 [e4,g#4,b4]@6", // C E C#m E
  AD: "c5 c#5@4 c#5!2 [c#5,a5] c#5 a5 c#5!2 ~ c#5 ~@4 [e4,a4,c#5]@6, ~@5 a5@2 ~@3 a5@4 ~@10, ~@6 [e4,a4]@7 ~@11", // F#m A A5
  AE: "~@4 g5 ~ d6@3 ~ c6@2 a#5 ~@2 b5 ~@2 [d4,g4,b4]@6, ~ [d4,g4,b4] ~@2, ~@6 a#5 ~@3 e6 ~@3 d6@2 ~@2 [c6,e6]@4 ~@2", // G C
  AF: "a#5 ~ b5@2 g5 ~ [c6,e6]@3 ~ d6@2 ~@6 [d4,g4,b4]@6, d6@2 ~ [d4,g4,b4]@3 ~@6, ~@10 a#5 ~@13", // C G
  AG: "~@4 d5 ~ e5 f#5@2 ~ e5 f#5@4 e5 f#5 e5 [d4,f#4,a4]@6, ~@3 [d4,f#4,a4]@3 ~@3 d5@2 ~, ~@3 a5 ~ a5@2 ~ a5@3 ~", // D
  AH: "e5 ~@5 [d4,f#4,a4]@6 ~@6 [d4,f#4,a4]@6, a5@13 ~@11, ~ f#5@12 ~@11", // D
  AI: "~@6 b5@2 ~@2 f#5 ~ g5@5 ~ [d4,g4,b4]@6, ~@6 [d4,g4,b4]@7 ~@11, ~@6 f#5 ~@3 b5@7 ~@7", // G
  AJ: "[b5,e6] c#6 ~@2 b5@2 [e4,a4,c#5]@7 ~@3 b5@2 [e4,a4,c#5]@6, ~@2 e6@7 ~@3, ~@4 c#6@11 ~@3 a5@2 ~@4", // E5 A
  AK: "f5 ~@5 [f#4,a4,d5]@7 ~@5 [f#4,a4,d5]@6, [f#5,d6]@11 ~", AL: "~ [f#4,a4,d5] ~ [f#4,a4,d5]",
  AM: "a#4@2 ~ g5!2 [b4,g5] ~ g5 b4@2 g5 [b4,g5] b4 g5 [b4,g5] ~ [b4,g5] g5 b4 [b4,g5] b4 g5 [b4,g5] b4, g5 ~ b4@2 ~@2 [d4,g4]@7 ~@5 [d4,g4]@6, ~@6 b4@2 g5 ~@15", // Em G5
  AN: "[a4,f#5]@4 [g#4,f5]@2 [f#4,g4,e5]@4 f#4@8 [d4,f#4,a4]@5 ~, ~ [d4,a4] ~@2, ~@5 d5@6 ~", // D C# C D D5
  AO: "~@3 [e4,g#4,b4]@4 ~@2 [e4,g#4,b4]@3", // E
  AP: "[c#5,a5]@2 ~ [e4,a4,c#5]@3 [d5,b5]@2 ~ [e4,a4,c#5]@3, ~@3 a5@2 ~@4 [d#5,c6]@2 ~", // F#m A G A Cm
  AQ: "[e5,c#6] ~ c#6 ~ c#6!2 ~ c#6!3 ~ c#6!2 ~ c#6!2 ~ c#6 [e4,a4,c#5]@6, ~@2 e5@4 e5@11 ~ [e5,c#6] ~@5, ~@6 [e4,a4,c#5]@5 ~@13", // C#m A C#m A
  AR: "~@6 [d4,g4,b4]@7 ~@5 [d4,g4,b4]@6", // G
  AS: "~@6 a5@2 [f5,g#5] ~ [e5,f5,g5] ~ [d5,f#5]@5 f#5 d5!2 ~@4, ~ [d4,f#4,a4] ~ [d4,f#4,a4], ~@6 f#5 ~@17", // Fm Em D
  AT: "[e4 ~ f#4@4 [f#4,a4,d5]@6 ~@6 [f#4,a4]@4 f#4 e4 d4@6 [f#4,a4,d5]@6 ~@6 [f#4,a4,d5]@5 ~, a4 ~@2 d5 ~@4, ~@11 a4@3 ~@10]/2", // D F#m D
  AU: "~ [e4,a4,c#5] ~ [e4,a4,c#5]", AV: "[~@6 [e4,a4,c#5]@3 ~@3 [d4,f#4,a4,d5]@29 ~@7]/2",
})).s("gm_piano").gain(0.52)

// chords · epiano2 · "PIANO-ELE"
const epiano2 = note(`<
  A@3 ~ B@3 ~@16 C D@2 E@6 ~@3 C F G H@2 ~ I@2 J@2 ~ K@2 L@2 M@2 N O P@2 D@2 E@6 ~@3 C F G H@2 Q R S T@3
>`.pickRestart({
  A: "[~@9 d4@26 ~, ~@16 [d3,f#3]@55 ~, ~@17 a3@54 ~]/3", B: "[~ [d3,f#3,a3]@3]/3", C: "~ g3@2 a3", D: "[b3@15 ~]/2",
  E: "[~@3 [d3,f#3,a3]@4 ~@41 a3@18 ~@6, ~@9 [f#3,a3,d4]@14 ~@19 e4@24 ~@6, ~@7 e3@15 ~@2, ~@42 [g#3,b3]@53 c#4@37 ~@12]/6", // D G#m
  F: "b3@3 d4", G: "a3@3 g3", H: "[~ d3@28 ~@19]/2", I: "[~@9 [d3,g3,b3]@14 ~]/2", J: "[~ d4, [d3,f#3,a3]]/2",
  K: "[b3@24 [a3,c#4]@23 ~, e3@15 ~, g#3@7 ~@9]/2", L: "[~@4 g4@3 ~, [g3,b3,d4]@43 ~@5]/2",
  M: "[d4@7 ~, a3@11 ~@13, f#3@19 ~@29]/2", N: "[b3,d4], g3@11 ~", O: "[a3,c#4]@7 ~",
  P: "[~@5 g3@2 a3, [f#3,a3,d4]@37 ~@11]/2", Q: "[g3,b3,d4]", R: "[e3,a3,c#4]", S: "[f#3,a3,d4]",
  T: "[~@6 [e3,a3,c#4]@3 ~@3 [f#3,a3,d4]@50 ~@10]/3", // A D
})).s("gm_epiano2").gain(0.57)

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

// drums · snare
const snare = s("sd").struct("<~ A@6 B A C A@13 D A@7 C A@7 E A@15 D A@7 C A@7 E A@3 F ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@3 x ~ x ~ x", C: "~ x!3", D: "~@3 x ~@3 x!3 ~ x", E: "~@3 x ~@5 x!3", F: "x!2",
})).gain(0.66)

// drums · hihat
const hihat = s("hh").struct("<~ [x ~ x!2 ~ x!2 ~ x!2 ~ x]!74 ~@3>").gain(0.66)

// drums · crash
const crash = s("cr").struct("<~@8 A ~@15 A ~@15 A ~@15 A ~@18 B ~@2>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.66)

// drums · ride
const ride = s("rd").struct("<~ [x ~ x!2 ~ x!2 ~ x!2 ~ x]!74 [x!3 ~] ~@2>").gain(0.59)

stack(
  bass, fiddle, electric_guitar_clean, harmonica, fiddle_2, fiddle_soft, piano, epiano2, kick, snare, hihat, crash, ride
)

More by Jimmy Buffett