Strudelify
Seasons in the Sun cover art

1974 · Seasons In The Sun

Seasons in the Sun

Terry Jacks

KeyF majorTempo98 bpm
0:00/0:00
// Seasons in the Sun — Terry Jacks
// 98 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 "CLEAN GTR" electric guitar clean (copy of ch 3 "JAZZ GTR" electric guitar jazz)
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(98/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 · fretless bass · "FRETLESS"
const bass = note(`<
  A@2 B@2 C@2 D@2 E@2 F G H I J K H I L M N O P Q B@2 C@2 D@2 E@2 F G H I J K H I L M N O P Q R S T U B@2 C@2 D@2 E@2 F
  G H I J K H I L M N O P Q V W T X Y Z AA AB Y Z AA AC ~
>`.pickRestart({
  A: "~ ab1 a1 bb1 ab1@4", B: "[~ ab1 a1 bb1 f1@8 ~@4]/2", C: "[~@3 c2 f2@8 ~@4]/2", D: "[~@3 d2 g2@8 ~@4]/2",
  E: "[~@3 c2 f2@7 ~ g2@2 ~ d2]/2", F: "c2@5 ~ c2@2 f2@2 f2@2 ~@2 c2@2", G: "f2@2 f2@2 ~@2 c2@2 f2@2 f2 ~@3 c2@2",
  H: "f2@2 f2 ~@3 c2@2 f2@2 f2 ~@3 c2@2", I: "f2@2 f2 ~@3 c2@2 g2@2 g2 ~@3 d2@2",
  J: "g2@2 g2 ~@3 d2@2 g2@2 g2 ~@3 d2@2", K: "g2@2 g2 ~@3 d2@2 f2@2 f2 ~@3 c2@2",
  L: "g2@2 g2 ~@3 d2@2 c2@2 c2 ~@3 g1@2", M: "c2@2 c2 ~@3 c2@2 f2 ~ f2@2 d2@2 c2 ~",
  N: "f2 ~ f2@2 c2@2 d2@2 f2 ~ f2@2 c2@2 d2@2", O: "g2 ~ g2@2 d2@2 f2@2 g2 ~ g2@2 d2@2 g2@2",
  P: "c2 ~ c2@2 g1@2 a1@2 c2 ~ c2@2 d2@2 c2@2", Q: "e2@2 d2 ~ d2@2 e2@2 f2@8",
  R: "ab2 ~ ab2@2 eb2@2 f2@2 ab2 ~ ab2@2 eb2@2 f2@2", S: "bb2 ~ bb2@2 f2@2 ab2@2 bb2 ~ bb2@2 f2@2 bb2@2",
  T: "eb2 ~ eb2@2 bb1@2 c2@2 eb2 ~ eb2@2 f2@2 eb2@2", U: "g2@2 f2 ~ f2@2 g2@2 ab2@8",
  V: "ab1 ~ ab1@2 eb2@2 f2@2 ab1 ~ ab1@2 eb2@2 f2@2", W: "bb1 ~ bb1@2 f1@2 ab1@2 bb1 ~ bb1@2 f1@2 bb1@2",
  X: "g2@2 f2 ~ f2@2 g2@2 ab2 ~ ab1@2 ab1@2 ab1@2", Y: "a1 ~ a1@2 e1@2 gb1@2 a1 ~ a1@2 e1@2 gb1@2",
  Z: "b1 ~ b1@2 gb1@2 a1@2 b1 ~ b1@2 gb1@2 b1@2", AA: "e2 ~ e2@2 b1@2 db2@2 e2 ~ e2@2 gb2@2 e2@2",
  AB: "ab1@2 gb1 ~ gb1@2 ab1@2 a1 ~ a1@2 gb1@2 e1@2", AC: "ab1@2 gb1 ~ gb1@2 ab1@2 a1 ~ a1@2 gb1@2 ~@2",
})).s("gm_fretless_bass").gain(0.42)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<A@2 B@2 ~@20 B@2 ~@24 B@2 ~@33>".pickRestart({
  A: "~ ab2 a2 bb2 [ab2,c3]@4, ~ eb2@3 ~@4", B: "[~ ab2 a2 bb2 [f2,c3]@8 ~@4]/2",
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.6)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@23 A@2 B@5 C@4 ~@15 A@2 B@5 D@5 E@2 F G H@3 ~@4 I J K L M N O P M N O P ~
>`.pickRestart({
  A: "[~ c6@3]/2", B: "[~@8 a3@4 bb3@2 c4@10 a4@13 ~@3 bb3@4 c4@2 d4@10 bb4@14 ~@2 c4@6 a4@2]/5",
  C: "[bb4@2 a4@2 g4@2 f4@2 c5@14 ~@2 bb4@7 g4@8 c4@15 ~@10]/4",
  D: "[bb4@2 a4@2 g4@2 f4@2 c5@14 ~@2 bb4@7 g4@8 c4@15 ~@2 c5@7 a4@2 ~ bb4@2 c5@4 c5@4 a5@4, ~@63 bb4 ~@16]/5",
  E: "[g5@4 f5@3 d5@7 c5 bb4@2 ~ c5@2 d5@2 g5@2 d5@4 bb5@4]/2", F: "a5@2 g5@2 a5@3 f5", G: "e5 f5 g5@2 a5@4",
  H: "[c5@8 [g5,bb5]@4 [f5,a5]@3 [e5,g5]@4 [d5,f5]@5 [c5,e5]@14 ~@10]/3", I: "eb6@6 db6 c6",
  J: "~ ab5@2 bb5@3 c6@2 f5@4 bb5@2 ab5@2, bb5 ~@7", K: "g5@5 ab5 bb5 c6", L: "db6 bb5 ab5@2", M: "e6@6 d6 db6",
  N: "~ a5@2 b5@3 db6@2 gb5@4 b5@2 a5@2, b5 ~@7", O: "ab5@5 a5 b5 db6", P: "d6 b5 a5@2",
})).s("gm_string_ensemble_2").gain(0.18).pan(0.4)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~@3 A B C D E B C F G H I J K H I L@2 M N O P@2 A B C D E B C F G H I J K H I L@2 M N O Q@2 R S T@2 A B C D E B C F G
  H I J K H I L@2 M N O Q@2 R S U@2 V W X Y V W Z@2
>`.pickRestart({
  A: "~@8 [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  B: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  C: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~", // F Gm
  D: "[bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~", // Gm
  E: "[bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // Gm F
  F: "[c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // C F
  G: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~, ~@4 f4 ~ f4 c4", // F
  H: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~, f4 ~ f4 c4 f4 ~ f4 c4", // F
  I: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~, f4 ~ f4 c4 g4 ~ g4 d4", // F Gm
  J: "[bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~, g4 ~ g4 d4 g4 ~ g4 d4", // Gm
  K: "[bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~, g4 ~ g4 d4 f4 ~ f4 c4", // Gm F
  L: "[[bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [c4,g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~, g4 ~ g4 d4 c4 ~@2 c4@3 c4 ~ f4@3 ~]/2", // Gm C F
  M: "[f4,a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [f4,a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~, ~ f4 c4 d4 ~ f4 c4 d4", // F
  N: "[g4,bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [g4,bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~ [bb4,d5,g5] ~, ~ g4 d4 f4 ~ g4 d4 g4", // Gm
  O: "[c4,g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [c4,g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~, ~ c4 g3 a3 ~ c4 d4 c4", // C
  P: "[[g4,c5,e5] ~ [d4,g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [a4,c5,f5] ~@23, e4 ~ d4 e4 f4@5 ~@7]/2", // C F
  Q: "[[g4,c5,e5] ~ [d4,g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [ab4,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [ab4,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~, e4 ~ d4 e4 f4@5 ab4 eb4 f4 ~ ab4 eb4 f4]/2", // C F Ab
  R: "[bb4,db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [bb4,db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~, ~ bb4 f4 ab4 ~ bb4 f4 bb4", // Bbm
  S: "[eb4,bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [eb4,bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~, ~ eb4 bb3 c4 ~ eb4 f4 eb4", // Eb
  T: "[[bb4,eb5,g5] ~ [f4,bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~@23, g4 ~ f4 g4 ab4@5 ~@7]/2", // Eb Ab
  U: "[[bb4,eb5,g5] ~ [f4,bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [a4,db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [a4,db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~, g4 ~ f4 g4 ab4@5 a4 e4 gb4 ~ a4 e4 gb4]/2", // Eb Ab A
  V: "[b4,d5,gb5,b5] ~ [d5,gb5,b5] ~ [d5,gb5,b5] ~ [d5,gb5,b5] ~ [b4,d5,gb5,b5] ~ [d5,gb5,b5] ~ [d5,gb5,b5] ~ [d5,gb5,b5] ~, ~ b4 gb4 a4 ~ b4 gb4 b4", // Bm
  W: "[e4,b4,e5,ab5] ~ [b4,e5,ab5] ~ [b4,e5,ab5] ~ [b4,e5,ab5] ~ [e4,b4,e5,ab5] ~ [b4,e5,ab5] ~ [b4,e5,ab5] ~ [b4,e5,ab5] ~, ~ e4 b3 db4 ~ e4 gb4 e4", // E
  X: "[b4,e5,ab5] ~ [gb4,b4,e5,ab5] ~ [b4,e5,ab5] ~ [b4,e5,ab5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~, ab4 ~ gb4 ab4 a4@4", // E A
  Y: "[a4,db5,e5,a5] ~ [a4,db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [a4,db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~, ~@2 e4 gb4 ~ a4 e4 gb4", // A
  Z: "[[b4,e5,ab5] ~ [gb4,b4,e5,ab5] ~ [b4,e5,ab5] ~ [b4,e5,ab5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~ [db5,e5,a5] ~@17, ab4 ~ gb4 ab4 a4@5 ~@7]/2", // E A
})).s("gm_drawbar_organ").gain(0.13).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@11 A B C D E B C F G H I J K@2 ~@8 A B C D E B C F G H I J L M N O P@2 ~@8 A B C D E B C F G H I J L M N O Q R S T U
  R S T U ~
>`.pickRestart({
  A: "~@4 [a3,c4,f4]!2 ~ [c3,f3,a3,c4,f4], ~@2 [f2,c3,f3] ~", // F F5
  B: "[a3,c4,f4]!2 ~ [c3,f3,a3,c4,f4] [a3,c4,f4]!2 ~ [c3,f3,a3,c4,f4], [f2,c3,f3] ~ [f2,c3,f3] ~", // F F5
  C: "[a3,c4,f4]!2 ~ [c3,f3,a3,c4,f4] [bb3,d4,g4]!2 ~ [d3,g3,bb3,d4,g4], [f2,c3,f3] ~ [g2,d3,g3] ~", // F Gm F5 G5
  D: "[bb3,d4,g4]!2 ~ [d3,g3,bb3,d4,g4] [bb3,d4,g4]!2 ~ [d3,g3,bb3,d4,g4], [g2,d3,g3] ~ [g2,d3,g3] ~", // Gm G5
  E: "[bb3,d4,g4]!2 ~ [d3,g3,bb3,d4,g4] [a3,c4,f4]!2 ~ [c3,f3,a3,c4,f4], [g2,d3,g3] ~ [f2,c3,f3] ~", // Gm F G5 F5
  F: "[bb3,d4,g4]!2 ~ [d3,g3,bb3,d4,g4] [g3,c4,e4]!2 ~ [c3,e3,g3,c4,e4], [g2,d3,g3] ~ [e2,c3,e3] ~", // Gm C G5 C
  G: "[g3,c4,e4]!2 ~ [c3,e3,g3,c4,e4] [a3,c4,f4]!3 [c3,f3,a3,c4,f4], [e2,c3,e3] ~ f2@2, ~@4 [c3,f3]@3 ~", // C F C F5
  H: "[a3,c4,f4]@2 [a3,c4,f4]@2 ~@2 [c3,f3,a3,c4,f4]@2 [c3,f3] ~ [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4] ~ [c3,f3,a3,c4,f4]@2, [c3,f3] ~@3, f2 ~@15", // F F5 F F5
  I: "[d3,g3] ~ [d3,g3,bb3,d4,g4]@2 [d3,g3,bb3,d4] ~ [d3,g3,bb3,d4,g4]@2 [d3,g3,bb3,d4] ~ [d3,g3,bb3,d4,g4]@2 [d3,g3,bb3,d4] ~ [d3,g3,bb3,d4,g4]@2", // G5 Gm
  J: "[e3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2", // C
  K: "[[c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [f3,a3,c4,f4]@10 ~@14]/2", // C F
  L: "[c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [c3,g3,c4,e4] ~ [c3,g3,c4,e4,g4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [c3,f3,a3,c4,f4]@2, ~ f2, ~@4 [c3,f3]@3 ~", // C F F5
  M: "[c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~@2 [eb3,ab3,c4,eb4,ab4]@2 [eb3,ab3] ~ [eb3,ab3,c4,eb4,ab4]@2 [eb3,ab3,c4,eb4] ~ [eb3,ab3,c4,eb4,ab4]@2, ab3 ~@3", // Ab Ab5 Ab
  N: "[f3,bb3] ~ [f3,bb3,db4,f4,bb4]@2 [f3,bb3,db4,f4] ~ [f3,bb3,db4,f4,bb4]@2 [f3,bb3,db4,f4] ~ [f3,bb3,db4,f4,bb4]@2 [f3,bb3,db4,f4] ~ [f3,bb3,db4,f4,bb4]@2", // Bb5 Bbm
  O: "[g3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2", // Eb
  P: "[[eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [ab3,c4,eb4,ab4]@10 ~@14]/2", // Eb Ab
  Q: "[eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4] ~ [eb3,bb3,eb4,g4,bb4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [eb3,ab3,c4,eb4,ab4]@2, ~ ab2, ~@4 [eb3,ab3]@3 ~", // Eb Ab Ab5
  R: "[db4,e4,a4]@2 [db4,e4,a4]@2 ~@2 [e3,a3,db4,e4,a4]@2 [e3,a3] ~ [e3,a3,db4,e4,a4]@2 [e3,a3,db4,e4] ~ [e3,a3,db4,e4,a4]@2, a3 ~@3", // A A5 A
  S: "[gb3,b3] ~ [gb3,b3,d4,gb4,b4]@2 [gb3,b3,d4,gb4] ~ [gb3,b3,d4,gb4,b4]@2 [gb3,b3,d4,gb4] ~ [gb3,b3,d4,gb4,b4]@2 [gb3,b3,d4,gb4] ~ [gb3,b3,d4,gb4,b4]@2", // B5 Bm
  T: "[ab3,b3,e4,ab4] ~ [e3,b3,e4,ab4,b4]@2 [e3,b3,e4,ab4] ~ [e3,b3,e4,ab4,b4]@2 [e3,b3,e4,ab4] ~ [e3,b3,e4,ab4,b4]@2 [e3,b3,e4,ab4] ~ [e3,b3,e4,ab4,b4]@2", // E
  U: "[e3,b3,e4,ab4] ~ [e3,b3,e4,ab4,b4]@2 [e3,b3,e4,ab4] ~ [e3,b3,e4,ab4,b4]@2 [db4,e4,a4]@2 [db4,e4,a4]@2 [db4,e4,a4]@2 [e3,a3,db4,e4,a4]@2, ~ a2, ~@4 [e3,a3]@3 ~", // E A A5
})).s("gm_acoustic_guitar_steel").gain(0.17)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@11 A ~@7 B ~@13 A ~@7 B ~@3 C ~@13 A ~@7 B ~@3 C ~@3 D ~@3 D ~@3 D ~>".pickRestart({
  A: "~@3 x!2 ~ x ~@9", B: "~@12 x!3 ~", C: "~@15 x", D: "~@14 x!2",
})).gain(0.39)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@11 A ~@7 B ~@13 A ~@7 B ~@3 C ~@13 A ~@7 B ~@3 C ~@3 D ~@3 D ~@3 D ~>".pickRestart({
  A: "x!2 ~@14", B: "~@10 x!2 ~@4", C: "~@7 x", D: "~@12 x!2 ~@2",
})).gain(0.39)

// drums · high tom
const high_tom = s("ht").struct("<~@10 A ~@21 A ~@25 A ~@12 B ~@3 C ~@3 C ~@3 C ~>".pickRestart({
  A: "~@6 x!2", B: "~@10 x!2 ~ x ~@2", C: "~@9 x!3 ~@4",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@11 A ~@8 B ~@2 A ~@9 A ~@8 B ~@3 B ~@2 A ~@9 A ~@8 B ~@3 B ~@2 A B ~@2 A B ~@2 A ~
>`.pickRestart({
  A: "~ x", B: "x",
})).gain(0.32)

// drums · ride
const ride = s("rd").struct("<~@24 [~ x] ~@25 [~ x] ~@34>").gain(0.39)

stack(
  bass, electric_guitar_jazz, string_ensemble_2, drawbar_organ, acoustic_guitar_steel, kick, snare, low_tom, hihat,
  mid_tom, high_tom, crash, ride
)