Strudelify
Son of a Son of a Sailor cover art

1985

Son of a Son of a Sailor

Jimmy Buffett

KeyG majorTempo60 bpm
0:00/0:00
// Son of a Son of a Sailor — Jimmy Buffett
// 60 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (5/4 at bar 1, 4/4 at bar 3) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 2 "Bass" named as a bass, played on electric bass finger (its acoustic guitar steel patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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 bass finger · "Bass"
const electric_bass_finger = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X M N O P Y Z AA AB U V W X M N O P M N O P AC AD AE AF AC AD AE AG@2
>`.pickRestart({
  A: "~@3 b4@5 ~@3 b4@5, g3!2, ~ d4@7 ~ d4@7, ~ g4@3 ~ g4@3",
  B: "~@6 c4@2 ~@4 b4@3 ~, [f3,c4,a4]@2 c4@3 e4@3 g3@7 ~, ~ f4@2 g4@5 ~ d4@6 ~, ~@10 g4@5 ~", // F
  C: "~@3 b4@5 ~@3 b4@5, [g1,g3] [g2,g3], ~ d4@7 ~ d4@7, ~ g4@3 ~ g4@3", // G
  D: "[c4,a4] ~@6 e4 ~@2 g4@2 [g4,b4]@4, [f2,f3]@2 c4@2 c2@5 ~@7, ~ f4@2 g4@2 e4@2 ~@2 d4@7, ~@6 c4@2 [g1,g3]@7 ~", // F G F G
  E: "~@15 d4, [g2,g3]@7 d4 [g2,g3]@8, ~ d4@5 g4@3 d4@5 g4@2, ~@2 g4@3 b4@6 d5@5, ~@3 d5@7 g4@3 b4@3", // G
  F: "~@7 g4 ~@7 [g1,g3], [f2,f3]@3 c4@5 ~ d4@7, ~ f4@3 c2@4 [g1,g3]@6 g4@2, ~@2 a4@2 ~ g4@2 ~@3 g4@3 b4@3, ~@6 c5@2 ~@3 d5@5", // G F G
  G: "~@7 [c2,c5] ~@7 [g1,d5], [c2,c4] [g1,g3], ~ g4@5 g4@2 ~ d4@7, ~@2 c5@3 c5@2 ~@3 g4@3 b4@3, ~@3 e5@5 ~@3 d5@3 g4@2", // C G5 C G
  H: "~@2 a4 ~@4 a4 ~@2 [d2,c5]@2 [g2,b4]@4, [d2,d4]@4 g1 ~@3, ~ f#4@4 a4@2 ~@2 d4@7, ~@3 d5@5 ~@2 g4@6, ~@3 f#4 g3@4", // D7 G D
  I: "~@7 g1 ~@2 g4 d5@2 ~@2 g4, [g1,g3]@7 d5@2 ~@5 d5@2, ~ d4@7 [g2,g3]@8, ~@2 g4@3 b4@3 ~@5 g4@2 ~, ~@3 d5@3 g4@2 ~ d4@7", // G
  J: "~@3 f4 ~@3 g4 ~@7 g4, [f2,f3] [c2,c4] [g1,g3]@2, ~ f4@2 ~@2 g4@2 ~@2 d4@7, ~@2 a4@2 ~@2 c5@2 ~@2 g4@3 g4 d5@2, ~@11 b4@5", // F C G
  K: "~@2 c5 ~@4 c4 ~@2 g4 d5@2 ~@2 g4, [c2,c4] [g1,g3], ~ g4@4 c5@3 ~@5 g4@2 ~, ~@3 e5@5 ~@6 d5@2, ~@6 g4@2 ~ d4@7", // C G
  L: "~@2 a4 ~@7 [d2,c5]@2 [g1,b4]@3 ~, [d2,d4]@4 g1 ~@3, ~ f#4@4 a4@2 a4@2 d4@6 ~, ~@3 d5@6 ~ g4@5 ~, ~@6 f#4@2 g3@7 ~", // D7 G D
  M: "~@6 f5@2 ~@3 c6@2 ~@2 e5, f4@8 ~@3 g2@5, g1@2 f5@3 a5@3 ~@2 g5@4 [d2,g5,c6]@2, ~ c5@7 ~ e5@4 e5@2 ~, ~@3 [g2,c6]@5 [g1,c5]@8", // Csus2 C5
  N: "~@2 g5 g5@2 ~@2 e5 ~@2 [d2,c6]@2 [g1,b5]@4, [g1,c5] ~, ~ e5@4 e5@2 g3@3 g5@6, ~@3 [g2,c6]@5 ~ d5@7, ~@3 g5 g4@4", // D7 G C5
  O: "~@2 a5 ~@4 c6 ~@5 e5@2 g5, [f1,f4]@8 e2@2 g5@5 ~, ~ f5@4 a5@3 ~ e5@4 ~@3, ~@3 c6@3 f5@2 c5@8, ~@11 [d2,c6]@5", // F D7
  P: "~@2 g5 ~@4 g5 ~@2 c6@2 b5@3 ~, c5@8 ~ d5@6 ~, c2@3 [b1,c6]@5 ~@8, ~ e5@4 g5@2 ~@3 g5@5 ~, ~@6 [a1,e5]@2 [g1,g4]@7 ~", // Cmaj7 A5 G
  Q: "~@3 b4@5 ~@2 g4 ~@3 d4@2, [g2,g3]!2, ~ d4@7 ~ d4@4 g4@3, ~@2 g4@6 ~@3 b4@5", // G
  R: "~ f4 ~ f4 ~ e4 ~ e4 ~@3 b4@4 g1, [f2,f3] [c2,c4] [g1,g3]@2, ~@2 a4@2 ~@2 g4@2 ~ d4@7, ~@5 g4@3", // F C G
  S: "~@3 c5@2 ~@2 [c2,g4] ~@3 d5@2 ~@2 g1, [c2,c4] [g1,g3], ~ g4@4 g4@2 ~@2 d4@7, ~@6 c5@2 ~@2 g4@3 b4@3, ~@7 g4", // C5 C G
  T: "~@3 a4@2 ~@2 f#4 [g1,g3]@2 [d2,f#4,a4]@2 [g2,d4]@4, [d2,d4] ~, ~ f#4@4 f#4@2 ~@9, ~@3 a4 ~@4", // G D G5 D
  U: "~@3 b4@4 g1 ~@3 b4@5, [g1,g3] [g2,g3], ~ d4@7 ~ d4@7, ~ g4@3 ~ g4@3", // G
  V: "~@3 a4 ~@2 g4 e4 ~@7 b4, [f2,f3] [c2,c4] [g1,g3]@2, ~ c4@3 ~@5 d4@7, ~@2 f4@2 ~ e4@2 ~@3 g4@3 g4@3, ~@11 b4@3 d5@2", // F C G
  W: "~@2 c5 ~@3 g4@2 ~@3 b4@2 ~@2 g4, [c2,c4] [g1,g3], ~ g4@4 c5@4 d4@7, ~@3 e5@6 ~ g4@2 ~ g4@2 ~, ~@7 b4", // C G
  X: "~ f#4@2 a4@2 ~@2 f#4 g3 d4 [d2,f#4,a4]@2 [g1,d4]@3 ~, [d2,d4]@4 g1 ~@3, ~@5 f#4@2 ~@9, ~@3 a4 ~@4", // D G5 D
  Y: "~@2 c2 f5@2 ~@2 c5 ~@2 c2 ~@3 g2@2, f4 c4, ~ c5@2 [c3,f5] ~ c5@3, ~@3 a2@5 ~@3 [e2,e5]@5, ~@5 a5@3 ~ g4@7", // F5 E
  Z: "~ c2 b1 ~@3 [d2,e4]@2 ~@2 g1@2 ~ g1@3, a3 g3, ~ e4@5 ~@3 d4@7, ~@2 a4@3 a4@3 ~@2 g4@6, ~@3 [a1,c5]@5 ~@4 [g2,b4,d5]@4", // Dsus2 Am G
  AA: "~@2 c2 ~@4 c5 ~@2 c2 e5@2 ~@2 c5, f4 c4, ~ c5@4 c5@2 ~@2 g4@7, ~@2 f5@4 [c3,f5]@2 ~@2 c5@3 c5 [g2,e5]@2, ~@3 [a2,a5]@5 ~@3 e2@5", // F5 C A
  AB: "~ c2 b1 c5@2 ~@2 a4 ~@2 g1@2 [g2,b4,d5,g5]@4, a3@8 g3@7 ~, ~ e4@7 ~ d4@6 ~, ~@2 a4@3 a4 [d2,c5]@2 ~@2 g4@5 ~, ~@3 a1@5 ~@8", // G D7
  AC: "~@2 c2 ~@3 [c3,f5]@2 ~@3 c6@2 ~@2 e5, f4@8 ~@2 g5@3 e5 [g2,g5,c6]@2, ~ c5@7 c5@8, ~@2 f5@3 a5@3 ~ e5@2 e2@5, ~@3 [a2,c6]@5 ~@2 c2@6", // F5 C5 Am
  AD: "~@2 g5 g5@2 ~@2 e5 ~@2 [g1,c6]@2 g2 g1@3, c5@5 e5 [d2,g5]@2 g4@8, ~ c2@7 ~ d5@7, ~ e5@2 [a1,c6]@5 ~@4 b5@4, ~ b1@3 ~ g5@3", // C5 G5 Am
  AE: "~@2 [c2,a5] ~@4 c6 ~@2 c2 ~@4 g5, f4 c5, ~ f5@4 a5@3 ~ e5@4 e5@3, ~@3 [a2,c6]@5 ~@3 [e2,c6]@5, ~@3 [c3,f5] ~ g5@2 g2", // F Am C F5
  AF: "~ c2 [b1,g5] ~@4 g5 ~@2 [g1,c6]@2 [g2,b5]@4, c5@8 g4@7 ~, ~ e5@4 g5@2 ~@2 d5@6 ~, ~@3 [a1,c6]@5 ~@8, ~@6 [d2,e5]@2 ~@2 g5@5 ~", // Em C5 G Am Dsus2
  AG: "[~ c2 [b1,g5] ~@4 g5 ~@2 [g1,g5,c6]@2 [g2,g3,g4,g5,b5]@12 ~@8, c5@2 g4 ~@5, ~ e5@4 g5@2 ~@2 d5@3 d5@4 ~@16, ~@3 [a1,c6]@5 ~@24, ~@3 [d2,e5] ~@12]/2", // Em C5 G Am Dsus2
})).s("gm_electric_bass_finger").gain(0.26)

// chords · acoustic guitar steel · "Guitar" · Am C Bm C Am C Bm C
const acoustic_guitar_steel = note(`<
  ~@29
  [~@3 [a4,c5]@2 ~@2 f4 ~@3 e5@2 ~@2 g4, f3 ~, ~ c4@7 c4@8, ~@2 f4@2 ~ f4@2 ~@2 g4@3 ~ g4@2 ~, ~@3 [a4,c5] ~ c5@2 [c5,e5]]
  [~@3 e5@2 ~@2 g4 ~@4 [b4,d5]@4, c4 g3, ~ g4@3 ~ g4@2 ~@2 d4@7, ~ c5@2 [c5,e5] ~ g4@3]
  [~@3 [a4,c5]@2 ~@2 f4 ~@3 e5@2 ~@2 g4, f3 ~, ~ c4@7 c4@8, ~@2 f4@2 ~ f4@2 ~@2 g4@2 ~@2 g4@2 ~, ~@3 [a4,c5] ~ c5@2 [c5,e5]]
  [~@3 e5@2 ~@2 g4 ~@4 [b4,d5]@3 ~, c4@8 g3@7 ~, ~ g4@3 ~ g4@2 ~@2 d4@6 ~, ~@2 c5@4 [c5,e5]@2 ~@2 g4@5 ~]
  ~@21
>`).s("gm_acoustic_guitar_steel").gain(0.3)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel_2 = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U R V W M N O P X Y Z AA U R V W M N O P M N O P M N O P M N O AB@2
>`.pickRestart({
  A: "~@15 d5, g4@7 g4@2 d5@2 b5@2 a5 g5@2, ~ d5@5 d5@2 c6@8, ~@2 g5@3 g5@5 g4@6, ~@3 d6@13",
  B: "f5 ~ a5 e5 ~@3 g5 ~@2 c6@2 b5@4, [f4,a5]@3 [c4,g5]@5 ~@2 g5@6, ~ f5@2 ~@2 e5@3 ~ d5@7, ~@3 c5 g4@4", // F C5
  C: "~@15 d5, g4@7 g4@6 a5 g5@2, ~ d5@5 d5@3 g5 d5 b5@5, ~@2 g5@3 g5@3 c6@8, ~@3 d6@13",
  D: "f5 ~ a5 ~@7 c6@2 b5@3 ~, [f4,a5]@3 ~@2 g5@3 g4@7 ~, ~ f5@2 [c5,e5]@4 e5@2 d5@6 ~, ~@6 c6@3 ~ g5@5 ~", // F C
  E: "~@3 d5@2 ~@6 d5@2 ~@2 d5, g4@7 g4@9, ~ d5@2 ~@2 d5@4 d5@2 ~@2 d5@2 ~, ~ [g5,b5]@2 [g5,b5]@2 [g5,b5]@2 [g5,b5]", // G
  F: "~@3 c5 ~@3 c5 ~ d5 ~ d5@2 ~@2 d5, f4@4 c4@4 ~@2 g5@3 d5@2 ~, ~ c5@2 ~@2 c5@2 ~ g4@8, ~ f5 ~ e5 ~ b5@3, ~@7 g5",
  G: "~ c5 ~ c5@2 ~@2 c5 ~@3 d5@2 ~@2 d5, c4@4 ~ g5@2 [g5,b5], ~@2 e5@3 c5@2 ~ g4@8, ~@6 e5@2 ~ d5@2 ~@2 d5@2 ~", // G
  H: "~@2 f#5 [d5,f#5]@2 ~@2 d5 ~@2 g5@2 g5@4, d4 g4, ~ d5@2 ~@2 d5@2 ~@2 d5@7, ~@3 f#5 ~@4", // D
  I: "~@3 d5@2 ~@6 d5@2 ~@2 d5, g4!2, ~ d5@2 ~@2 d5@2 d5@2 d5@2 ~@2 d5@2 ~, ~ g5@2 [g5,b5]@2 [g5,b5]@2 [g5,b5]", // G
  J: "[c5,a5] ~@2 f5 [c5,g5] ~@2 e5 ~@2 g5 g5@2 ~@2 d5, f4@4 c4@4 ~@3 b5@5, ~ f5@2 ~@2 e5@2 ~@2 d5@4 d5@2 ~, ~ c5 ~ c5 g4@4, ~@7 g5", // F C5
  K: "~@2 e5 e5@2 ~@2 c5 ~ d5@2 [d5,g5]@2 ~@2 d5, c4 ~, ~ c5@4 c5@2 ~ g4@8, ~@3 g5@5 ~@6 g5@2, ~@6 e5@2 ~@5 d5@2 ~", // G5
  L: "~@3 f#5@2 ~@2 d5 ~@2 c6@2 b5@3 ~, d4 ~, ~ a4@7 g4@7 ~, ~@2 d5@3 d5@2 ~@9, ~@6 f#5@2 ~ g5@6 ~",
  M: "~@3 c5@2 ~@2 c5 [c5,g5] ~@6 g4, f4 c4, c5@2 a5@3 c5@2 ~@3 c5@4 c5@2, ~ f5@5 [f5,a5]@2 ~ e5@4 e5@3, ~@11 g5@5", // C5 F
  N: "g5 ~@6 c5 ~@4 b5@4, c4 ~, c5@2 c5@3 c5@2 ~ g4@8, ~ e5@5 e5@2 ~ d5@7, ~@3 g5@5 ~@2 g5@6",
  O: "~@3 a5@2 ~@2 c5 [c5,g5] ~ c5 c5@2 ~ c5@2, f4 c4, ~ c5@4 c5@2 ~@9, ~@2 f5@6 ~ e5@4 e5@3, ~@6 a5@2 ~@3 g5@5", // C5
  P: "~@7 e5 ~@4 b5@3 ~, c4 ~, c5@6 c5@2 g4@7 ~, ~ e5@4 e5@2 ~@2 d5@6 ~, ~@3 g5@5 ~@2 g5@5 ~",
  Q: "~@3 b4@5 ~@3 b4@5, g3!2, ~ d4@7 ~ d4@7, ~ g4@3 ~ g4@3",
  R: "~@3 a4 ~ e4 ~ e4 ~@3 b4@5, f3 ~ g3@2, ~ c4@3 c4@4 ~ d4@7, ~ f4 ~ g4 ~ g4@3",
  S: "~@3 e5 ~@3 c5 ~@3 b4@2 ~@2 g4, c4 g3, ~ g4@5 g4@2 ~ d4@7, ~@2 c5@5 ~@3 g4@2 ~ g4@2 ~, ~@7 b4",
  T: "~@2 a4@3 ~@2 f#4 g3 d4 [f#4,a4]@2 [g4,b4]@4, d4 ~, ~ f#4@4 f#4@2 ~@9, ~@3 a4 ~@4", // F#m G
  U: "~@3 b4@5 ~@3 b4@2 ~@2 g4, g3!2, ~ d4@7 ~ d4@7, ~@2 g4@6 ~@2 g4@2 ~ g4@2 ~, ~@7 b4",
  V: "~@3 e5@5 ~@3 b4@5, c4 g3, ~ g4@7 ~ d4@7, ~ c5@3 ~ g4@3",
  W: "~@3 a4@5 g3 d4 [f#4,a4]@2 [g4,b4]@3 ~, d4 ~, ~ f#4@7 ~@8", // F#m G
  X: "~@2 f5 ~@4 f5 ~@3 e5@2 ~@2 c5, f4 c4, ~ c5@4 f5@2 ~@3 c5@3 c5@2 ~, ~@3 a5@5 ~@6 e5@2, ~@6 c5@2 ~ g4@7",
  Y: "~@3 c5@2 ~@2 a4 ~@4 [b4,d5]@4, a3 g3, ~ e4@7 ~ d4@7, ~@2 a4@2 ~ a4@2 ~@3 g4@6, ~@3 c5 ~@4", // Bm
  Z: "~@7 c5 ~@3 e5@2 ~@2 c5, f4 c4, ~ c5@4 c5@2 ~@2 g4@7, ~@2 f5@4 f5@2 ~@2 c5@3 c5@2 ~, ~@3 a5@5 ~@6 e5@2",
  AA: "~@3 c5@2 ~@2 a4 ~@4 [b4,d5,g5]@3 ~, a3@8 g3@7 ~, ~ e4@7 ~ d4@6 ~, ~@2 a4@3 a4@2 ~@3 g4@5 ~, ~@3 c5 ~@4", // G
  AB: "[~@7 e5 ~@2 g5@2 [g3,g4,g5,b5]@10 ~@10, c4 ~@3, c5@3 c5 g4@2 ~@10, ~ e5@4 e5@2 ~@2 d5@3 d5@4 ~@16, ~@3 g5@5 ~@24]/2", // G
})).s("gm_acoustic_guitar_steel").gain(0.28)

// other · overdriven guitar · "Guitar"
const overdriven_guitar = note("<~ A B@2 C ~@49>".pickRestart({
  A: "~@3 b4@7 ~ b4@5", B: "[a4@3 g4@7 ~@2 b4@6 ~ b4@7 ~ b4@5]/2", C: "a4@3 g4@6 ~ [b4,c5]@2 b4@3 ~",
})).s("gm_overdriven_guitar").gain(0.34)

// chords · harmonica
const harmonica = note("<~@21 A B C D ~@3 E F G F H ~@21>".pickRestart({
  A: "~@3 b4", B: "~@12 [d5,e5] d5 b4 d5, g4@7 ~", C: "b4@3 ~@5", D: "~@5 g5@3", E: "~@13 [g5,b5]!3",
  F: "[g5,b5] [f5,a5]!2 [f5,a5]@2 [f5,a5]!3 [e5,g5] [c5,e5]!2 [c5,e5]@2 [c5,e5]!3", // G F Em C
  G: "a4!3 a4@2 b4 c5 b4@2 d5@3 ~ [g5,b5]!3", H: "a4!3 a4@2 b4 c5 b4@2 d5@5 ~@2",
})).s("gm_harmonica").gain(0.33)

// other · rock organ · "Organ"
const rock_organ = note("<~@29 A B C D E F G H I J I J K@2 L@4 M@5 N ~>".pickRestart({
  A: "[f5,a5]@8 [e5,g5]@7 ~, c5@15 ~, ~@8 d5 ~@7", B: "a4!3 a4@2 b4 c5 b4@2 d5@7", C: "[f5,a5]@8 [e5,g5]@7 ~, c5@15 ~",
  D: "a4!3 a4@2 b4 c5 b4@2 d5@6 ~", E: "g5", F: "a5 g5", G: "e5@5 g5@2 a5 b5@6 a5 g5",
  H: "a5@5 b5 c6@2 b5@2 a5@2 b5@3 ~", I: "f5@5 g5 a5@2 g5@3 g5@2 a5 b5@2", J: "c6@3 c6@2 b5 a5 b5@9",
  K: "[g6@19 e6@3 ~ d6@9, ~@19 d#6 ~@3 e6 ~@8]/2",
  L: "[[f6,a6]@8 [e6,g6]@15 ~@5 b6@7 c7@4 b6@2 a6 g6@9 e6@3 d6@10, c6@22 ~ d6@12 ~@16 d#6 ~@12, ~@24 g6@11 ~@16 g6@13]/4", // F Em
  M: "[f6@5 g6@6 a6@2 ~@11 d6@27 e6@3 d6@24 c6@2, c6@23 ~@28 d#6 ~@28, ~@13 g6@37 ~ g6@27 ~@2]/5",
  N: "~ d6@2 c6 b5@2 a5@2 g5@6 ~@2",
})).s("gm_rock_organ").gain(0.4)

// chords · piano · F C Am G F C Am G
const piano = note(`<
  ~@29
  [~ [c5,f5,a5]!7 ~ [c5,e5,g5]!3 [c5,e5] [c5,e5,g5]!3]
  [[a4,c5,e5]!8 ~ [g4,b4,d5]!2 [g4,b4] [g4,b4,d5]@4]
  [~ [f5,a5]!2 [c5,f5,a5]!5 ~ [c5,e5,g5]!7]
  [[a4,c5,e5]!8 ~ [g4,b4,d5]!3 [g4,b4,d5]@3 ~]
  ~@21
>`).s("gm_piano").gain(0.28)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@29 x ~@24>").gain(0.19)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@4 B@7 C B D E F B@7 C B D E F ~@4 B@3 C B D E F B D E F B D E F B D E F ~
>`.pickRestart({
  A: "x!4", B: "~ x ~ x", C: "~ x", D: "~@4 x ~@4 x ~@6", E: "~@2 x!2 ~ x ~@2", F: "~ x ~@6",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@52 [~@3 x] ~>").gain(0.34)

// drums · ride bell
const ride_bell = s("rd").struct("<~@2 [~@13 x ~ x] ~@51>").gain(0.15)

// drums · triangle
const triangle = s("triangles:35").struct("<~@14 A ~@11 A ~@11 A ~@3 A ~@3 A ~@3 A ~@3>".pickRestart({
  A: "~@13 x ~@2",
})).gain(2.29)

// drums · triangle · soft notes
const triangle_soft = s("triangles:35").struct("<~@14 A ~@11 A ~@11 A ~@3 A ~@3 A ~@3 A ~@3>".pickRestart({
  A: "~@15 x",
})).gain(1.31)

stack(
  electric_bass_finger, acoustic_guitar_steel, acoustic_guitar_steel_2, overdriven_guitar, harmonica, rock_organ, piano,
  kick, snare, low_tom, hihat, open_hat, ride_bell, triangle, triangle_soft
)

More by Jimmy Buffett