Strudelify
Fool (If You Think It's Over) cover art

1978 · Whatever Happened to Benny Santini?

Fool (If You Think It's Over)

Chris Rea

KeyA majorTempo110 bpm
0:00/0:00
// Fool (If You Think It's Over) — Chris Rea
// 110 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Acoustic Guitar.
setcpm(110/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 guitar clean · "Electric Guitar"
const electric_guitar_clean = note("<~@2 A@2 B C ~ D@2 E F G H@2 ~ I J K L M N ~ O@6 P Q ~ R@2 ~@74>".pickRestart({
  A: "[~@10 b4@2 a4@2 b4@11 ~@7, ~@10 f#4@7 ~@15]/2",
  B: "~@4 e5 [e5,f#5] d5 [d5,e5] b4 [b4,d5] a4 [a4,b4] f#4 [f#4,a4] e4 [e4,f#4]", C: "d4 ~",
  D: "[f#4@5 ~ g4 ~ f#4 ~ e4@3 ~ f#4@4 a4@4 g4@4 f#4@4 ~@2]/2", E: "d5@7 ~", F: "~@3 [a3,c#4]@2 [c#4,e4]@2 [d4,f#4]",
  G: "[c#4,e4]@13 ~@3", H: "[~@6 e4 d4 e4@2 f#4@2 e4@2 d4@11 ~@7]/2",
  I: "[d4,f#4]@6 [e4,g4]@2 [d4,f#4] ~ [c#4,e4]@3 ~ [d4,f#4]@2", J: "~ [f#4,a4]@2 [e4,g4]@2 [d4,f#4]@2 ~",
  K: "b4@13 ~@3", L: "~@6 [f#3,a3]@2 [a3,c#4]@2 ~ [c#4,e4]@3 [c#4,f#4]@2", M: "[c#4,e4]@7 ~", N: "~@6 e4 d4 e4@2 ~@6",
  O: "[~@12 c#4@2 ~@2 b4@17 ~ b4@3 ~ a4@2 b4@8 ~@30 e4@18, ~@10 a3@4 e4@19 ~ f#4@40 a3@4 ~@18, ~@38 c#4@9 ~]/6",
  P: "~@6 e4 d4 e4@2 f#4@2 e4@2 d4@2", Q: "b3@13 ~@3",
  R: "[~@3 b4@2 a4 b4@5 ~ b4 a4 b4@2, ~@3 f#4@13, ~@22 b3@7 ~@3]/2",
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.6)

// other · tenor sax · "Sax"
const tenor_sax = note(`<
  ~@64 A B C@2 D E F@2 G ~@6 H I ~@2 J K ~@2 L@2 M ~@2 N ~@2 O P ~ Q R ~@3 S@2 T ~
>`.pickRestart({
  A: "~@13 b4 d5 e5", B: "b4@6 ~@4 b4@4 a4 b4", C: "[a4@6 ~@2 f#4@2 e4 ~ e4@2 f#4 e4@6 ~@5 e5@2 d5 b4 ~@2]/2",
  D: "~ e5 c#5 d5@4 d5", E: "f#5@2 e5 f#5 e5@10 b4@2",
  F: "[e5@2 f#5@2 f#5@2 g5@2 g5@4 a5@2 f#5@11 ~ f#5 b5 c#6 b5 f#5 e5]/2",
  G: "f#5 e5 c#5 e5 c#5 b4 c#5 b4 f#4 b4 f#4 e4 f#4 e4 b3@2", H: "~@2 e4 f#4 a4 b4 ~ c#5 ~ e5 c#5@5 ~", I: "f#5@5 ~@3",
  J: "~@15 d5", K: "e5@3 d5@4 ~", L: "[~@14 b5@12 a5 f#5 e5 f#5 e5 c#5]/2", M: "b4 ~@15", N: "~@5 f#5@2 ~",
  O: "~@6 e5 c#5@7 b4 a4", P: "b4@7 ~", Q: "~@8 b4 c#5 ~ d5 ~ e5 ~ f#5", R: "a5@12 a5 ~@3",
  S: "[~@8 e4 f#4 a4 b4 ~ c#5 ~ e5@2 c#5@9 e5@2 f#5@2 e5@2]/2", T: "g#5@3 ~",
})).s("gm_tenor_sax").gain(0.4).pan(0.3)

// chords · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note(`<
  ~ A B C D A B E@2 A B C D A B E@2 A B C D A B@2 F A B C D A B@2 F A B C D A B@2 F A B C D A B@2 F A B C D A B E@2 A B
  C D A B@2 F A B C D A B@2 F A B C D A B@2 F A B C D A B@2 F A B C D A B@2 F A B C D A B@2 F ~@2
>`.pickRestart({
  A: "[g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  B: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // A
  C: "[f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~ [f#4,a4,c#5,e5] ~", // F#m7
  D: "[f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~ [f#4,a4,b4,d5] ~", // Bm7
  E: "[f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D
  F: "[b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~", // B
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.4)

// chords · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note(`<
  A@8 B@2 C@2 ~ D ~ E B@2 C@2 ~ F ~@3 G@2 ~@2 D ~ H@2 F ~@3 D ~ I ~ D ~@3 D ~@3 J@3 ~ K@2 E L@3 ~@2 F ~ M ~ N@2 ~@2 F ~
  O ~ P ~@3 D ~ O ~ Q@2 ~@2 D ~ R ~ G@2 S@2 T ~ U ~ V ~@3 D ~ W ~ X@2
>`.pickRestart({
  A: "[~@15 [e3,g3]@14 ~@2 e3@13 ~@3 f#3@15 ~ f#3@13 ~@3 [e3,g3]@14 ~@2 e3@13 ~@3 a3@5 ~@2 [e4,g4] ~@3 [c#4,e4]@4 ~@2]/8", // Em C#m
  B: "[~@6 [e4,g4]@4 ~@5 e3@14 ~@3]/2", C: "[~@15 f#3@15 ~@2]/2", D: "e3@7 ~", E: "~@6 [e4,g4] ~@3 [c#4,e4]@4 ~@2",
  F: "e3@13 ~@3", G: "[e3@14 ~ [e3,a3]@14 ~@3]/2", H: "[~@5 b3@4 ~@7, b2@13 ~@19]/2", I: "b3 b3@12 ~@3",
  J: "[e3@21 ~@10 f#3@14 ~@3]/3", K: "[e3@12 ~@2 e3@15 ~@3]/2", L: "[~@6 [e4,g4]@4 ~@5 e3@15 ~ [e3,a3]@15 ~@2]/3",
  M: "b3@3 ~", N: "[e3@13 ~@2 [e3,a3]@14 ~@3]/2", O: "b3@13 ~@3", P: "e3@7 ~ e3@7 ~", Q: "[e3@9 ~ e3@15 ~@7]/2",
  R: "~@4 b3@11 ~", S: "[~@15 a3@8 ~@9]/2", T: "e3@7 ~, c#4 ~@15", U: "~@5 b3@2 ~", V: "e3@15 ~", W: "b3@4 ~ b3@2 ~",
  X: "[[e3,g#3]@19 ~@13]/2", // E
})).s("gm_acoustic_guitar_steel").gain(0.26).pan(0.2)

// other · celesta · "Bells"
const celesta = note("<~@57 A ~ B C A D@2 ~@43>".pickRestart({
  A: "d5 ~@5 b4 ~ d5 ~ f#5 ~@3 e5 ~", B: "c#5 ~@5 a4 ~ c#5 ~ e5 ~@3 d5 ~", C: "~@2 e5 ~@3 f#5 ~@3 a5 ~ f#5 ~@3",
  D: "[~@16 e5@5 ~@11, ~@7 a4@3 ~@6, ~@15 [b4,c#5]@6 ~@11]/2", // Bsus2
})).s("gm_celesta").gain(0.35).pan(0.1)

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~@16 A B C D E B C F G B H D E B C F G I J K L M J N O P Q R O M Q S O P Q T O M U V W M J X O M J S O P Y K Z M AA AB
  O P Y AC O M J AD O AE AF AG L AE AF AH AI M U W AJ P AK AH AL AM AK AN AO M U S AP AQ ~
>`.pickRestart({
  A: "~@3 d2", B: "e1", C: "a1", D: "d2", E: "b1", F: "b1@7 f#2", G: "b2@5 f#2 b1@2", H: "a1@15 ~",
  I: "e1@5 ~ b1@2 e2@4 b1@3 ~", J: "a1@3 e2 a2@2 e2@2", K: "d2@3 a1 d2@2 a1@2", L: "b1@6 f#2@2 b2@2 f#2@2 b1@3 ~",
  M: "e1@3 b1 e2@2 b1@2", N: "b1@4 ~@2 b1 ~ b1@5 ~ b1 ~", O: "b1@3 f#2 b2 f#2 b1@2", P: "e1@5 ~ b1@2 e2@4 b1@4",
  Q: "a1@5 ~ e2@2 a2@4 e2@4", R: "d2@5 ~ a1@2 d2@4 a1@3 ~", S: "b1@5 ~ b1 ~ b1@5 ~ b1 ~", T: "d2@3 a1 d2@3 a1",
  U: "a1@5 ~ e2@2 a2@4 a1@4", V: "d2@3 a2 d3@2 a2@2", W: "d2@5 ~ a1@2 d2@2 a1@2 d1@4", X: "d2@6 a1@2 d2@4 a1@3 ~",
  Y: "a1@3 e2 a2@2 a1@2", Z: "b1@3 f#2 b2 ~ b1 f#1, ~@5 f#2@2 ~", AA: "a1@6 e2@2 a2@4 e2@3 ~",
  AB: "b1@5 ~ b1 ~ b1@4 ~@2 b1 ~", AC: "d2@7 ~ a1@4 d2@4", AD: "b1@4 ~@2 b1 ~ b1@5 ~ f#1@2",
  AE: "e1@6 b1@2 e2@4 b1@3 ~", AF: "a1@6 e2@2 a2@2 e2@2 a1@3 ~", AG: "d2@6 a1@2 d2 ~ d2@2 a1@4",
  AH: "b1@4 ~@2 b1 ~ b1@4 ~@2 b1 ~", AI: "b1@3 f#2 b2 f#2 b1 f#2", AJ: "b1@5 ~ f#2@2 b2@4 b1@4",
  AK: "a1@3 e2 a2 e2 a1@2", AL: "b1 ~ b1@4 f#2@2 b2@2 f#2@2 b1@4", AM: "e1@4 ~@2 b1@2 e2@4 b1@3 ~",
  AN: "d2@2 ~ a2 d3 a2 d2 a1", AO: "b1@5 ~ b1@2 f#2@4 b1@4", AP: "b1 ~ b1@3 ~ b1@2 b2@2 f#2@2 b1@4", AQ: "e1@15 ~",
})).s("gm_acoustic_bass").gain(0.45)

// chords · synth strings 1 · "Low Strings"
const synth_strings_1 = note("<~ A@4 B@2 C@8 D@2 A@4 E@4 F@8 G@8 H@8 I@6 J@2 K@8 L@8 M@8 N@8 O@8 P@4 Q@6>".pickRestart({
  A: "[[g3,b3,d4]@16 ~@32 [b3,d4]@15 ~, e3@32 f#3@31 ~, ~@16 a3@47 ~, ~ [c#4,e4]@2 ~]/4", // G Bm C#m
  B: "[[g3,b3,d4]@15 ~ [a3,c#4,e4]@16, e3@29 ~@3]/2", // G A
  C: "[[d4,f#4]@5 ~ [e4,g4]@2 [d4,f#4] ~ [c#4,e4]@3 ~ [d4,f#4]@4 [f#4,a4]@4 [e4,g4]@4 f#4@6 [g3,b3]@16 ~@48 g3@15 ~ [a3,c#4,e4]@16, a3@31 ~ e3@32 f#3@31 ~ e3@32, ~@26 d4@22 a3@47 ~@33, ~@48 [c#4,e4]@31 ~ [b3,d4]@32 ~@16]/8", // D Em D C#m D F#m Em G …
  D: "[[d4,f#4]@5 ~ [e4,g4] ~ [d4,f#4] ~ [c#4,e4]@3 ~ [d4,f#4]@4 [f#4,a4]@4 [e4,g4]@4 [d4,f#4]@6, a3@31 ~]/2", // D Em D C#m D F#m Em D
  E: "[[g3,b3,d4]@15 ~@33 [b3,f#4]@16, e3 b2, ~@8 [a3,c#4,e4]@16 d#4@7 ~]/4", // G B5 A
  F: "[[g3,b3,d4]@15 ~@49 g3@15 ~@33 [b3,d#4,f#4]@15 ~, e3@32 f#3@31 ~ e3@32 b2@32, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~@16 [c#4,e4]@32 [b3,d4]@31 ~@49]/8", // G B A C#m Bm
  G: "[[g3,b3,d4]@15 ~@49 g3@15 ~@33 [b3,d#4,f#4]@15 ~, e3@32 f#3@31 ~ e3@32 b2@31 ~, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~@16 [c#4,e4]@31 ~ [b3,d4]@32 ~@48]/8", // G B A C#m Bm
  H: "[[g3,b3,d4]@15 ~@49 g3@15 ~@33 [d#4,f#4]@16, e3@32 f#3@31 ~ e3@32 b2@32, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~@8 [c#4,e4]@16 [b3,d4]@16 ~@16 b3@7 ~]/8", // G D#m A C#m Bm
  I: "[[g3,b3,d4]@15 ~@49 g3@15 ~ [a3,c#4,e4]@16, e3@32 f#3@31 ~ e3@30 ~@2, ~@16 a3@47 ~@33, ~ [c#4,e4]@2 [b3,d4]@2 ~]/6", // G A C#m Bm
  J: "[[d4,f#4]@5 ~ [e4,g4]@2 f#4@2 [c#4,e4]@3 ~ [d4,f#4]@4 [f#4,a4]@4 [e4,g4]@4 [d4,f#4]@6, a3@31 ~, ~@8 d4 ~@23]/2", // D Em C#m D F#m Em D
  K: "[[g3,b3,d4]@16 ~@48 g3@15 ~@33 [b3,d#4,f#4]@15 ~, e3@32 f#3@31 ~ e3@32 b2@32, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~@16 [c#4,e4]@31 ~ [b3,d4]@32 ~@48]/8", // G B A C#m Bm
  L: "[[g3,b3,d4]@15 ~@49 g3@15 ~@33 [b3,d#4,f#4]@15 ~, e3@32 f#3@31 ~ e3@32 b2@31 ~, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~ [c#4,e4]@2 [b3,d4]@2 ~@3]/8", // G B A C#m Bm
  M: "[[g3,b3,d4]@15 ~@49 g3@15 ~@33 [d#4,f#4]@16, e3 f#3 e3 b2, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~@16 [c#4,e4]@32 [b3,d4]@31 ~@33 b3@14 ~@2]/8", // G D#m A C#m Bm
  N: "[[g3,b3,d4]@16 ~@48 g3@15 ~@33 [b3,d#4,f#4]@15 ~, e3@32 f#3@31 ~ e3@32 b2@32, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~ [c#4,e4]@2 [b3,d4]@2 ~@3]/8", // G B A C#m Bm
  O: "[[g3,b3,d4]@16 ~@48 g3@15 ~@33 [b3,d#4,f#4]@15 ~, e3@16 f#3@15 ~ e3@16 b2@15 ~, ~@16 a3@47 ~@17 [a3,c#4,e4]@32 ~@16, ~ [c#4,e4]@2 [b3,d4]@2 ~@3]/8", // G B A C#m Bm
  P: "[[g3,b3,d4]@16 ~@32 [b3,d4]@15 ~, e3@32 f#3@31 ~, ~@16 a3@47 ~, ~@16 [c#4,e4]@31 ~@17]/4", // G Bm C#m
  Q: "[[g3,b3,d4]@16 ~@32 [d#4,f#4]@15 [e3,e4,g#4]@18 ~@15, e3 b2 ~, ~@16 [a3,c#4,e4]@32 b3@33 ~@15]/6", // G D#m E A
})).s("gm_synth_strings_1").gain(0.24).pan(0.7)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@17 A B@2 C A D E@2 F G@2 H I J K@2 L@2 M N O P Q@2 R S T U@2 V W@2 X Y Z AA@2 AB AC@2 AD@4 AE AF AG@2 X AH@2 AI@4 AJ
  AK@2 AL AM AN@3 AO AP@2 AQ AR@3 AS@2 AT@2 AQ AU@2 AQ AV@4 AQ AW@3 AX@2 AY@2
>`.pickRestart({
  A: "f#3", B: "e3/2", C: "d3", D: "e3", E: "[f#3@31 ~]/2", F: "[f#3,f#4]@15 ~", G: "[e3,e4]/2", H: "[d3,d4]",
  I: "[f#3,f#4]", J: "[e3,e4]", K: "[[f#3,f#4]@31 ~]/2", L: "[d5@24 c#5@3 d5@3 e5@2]/2", M: "c#5@15 ~",
  N: "b4@2 c#5 b4", O: "d5", P: "e5", Q: "[f#5@31 ~]/2", R: "d6@3 e6, g5", S: "[e5,c#6]@3 [d5,b5]",
  T: "[e5,c#6]@3 [f#5,d6]", U: "[[d5,b5]@2 [e5,c#6] f#5 ~@3 e6, ~@3 d6@4 ~, ~ g5]/2", V: "[e5,c#6]@15 ~",
  W: "[e6 f#6, b5@31 ~]/2", X: "[b4,d5]", Y: "[c#5,e5]@2 [a4,c#5] [g4,b4]", Z: "f#4@3 c#5, a4",
  AA: "[~ d4@7 [e4,c#5]@4 f#4@4 b4@16, b4@2 ~ d5@5]/2", AB: "[c#5,e5]",
  AC: "[[d5,f#5]@5 ~ [e5,g5]@2 [d5,f#5] ~ [c#5,e5]@3 ~ [d5,f#5]@4 [f#5,a5]@4 [e5,g5]@4 [d5,f#5]@5 ~]/2", // D Em D C#m D F#m Em D
  AD: "[b4 ~@2 d4, e3 f#3, d4@7 ~ a4@24, ~ c#4@2 ~]/4", AE: "[g3,d4,b4]", AF: "[e3,c#4,a4]",
  AG: "[[c#4,e4,a4] [d#4,f#4,b4], b3]/2", AH: "[c#5,e5]/2", AI: "[[b4,d5] [c#5,e5]]/4", AJ: "[b4,f#5]",
  AK: "[~ b5@23 [a4,a5]@4 [b4,b5]@4, b4@3 ~]/2", AL: "[c#5,c#6]", AM: "[b4,b5]@2 [c#5,c#6] [d5,d6]",
  AN: "[[b4,b5] [c#5,c#6]]/3", AO: "[f#5,f#6]", AP: "[[b5,d6]@20 [a5,c#6]@4 [b5,d6]@4 [c#6,e6]@3 ~]/2", AQ: "[a5,c#6]",
  AR: "[[d5,b5]@8 [e5,c#6]@4 f#5@4 g5@19 ~ [a5,c#6]@4 [b5,d6]@4 [c#6,e6]@4, ~ d6@2 ~, ~@16 b5 ~@31]/3", // G C#m A Bm C#m
  AS: "[~ f#6, b5@31 ~]/2", AT: "[~ d6@19 [a5,c#6]@4 [b5,d6]@4 [c#6,e6]@4, b5@19 ~@13]/2",
  AU: "[[d5,b5]@2 [e5,c#6] f#5 g5@4, ~@3 d6@5]/2", AV: "[e6@4 f#6@4 d6@5 [a5,c#6] [b5,d6] [c#6,e6], b5@13 ~@3]/4",
  AW: "[[d5,b5]@4 [e5,c#6]@2 f#5@2 g5@9 ~ [a5,c#6]@2 [b5,d6]@2 [c#6,e6]@2, ~ d6@2 ~]/3", AX: "[~ e6@3 f#6@4, b5]/2",
  AY: "[~@9 g#4@11 ~@12, g#5@19 ~@13, ~ e5@19 ~@12]/2",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~@17 [x ~@2 x!2 ~@3]!88 x ~>").gain(0.45)

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

// drums · hihat
const hihat = s("hh").struct("<[x!4] [x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~]!104 x ~>").gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@32 A ~@7 A ~@7 A ~@15 A ~@15 A ~@7 A ~@7 A ~@7 A ~@2>".pickRestart({
  A: "~@7 x",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct("<~@29 A ~@3 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~>".pickRestart({
  A: "~@2 x!2", B: "x",
})).gain(0.45)

// drums · tambourine
const tambourine = s("tb").struct("<~ [x ~ x!3 ~ x ~]!28 [x ~ x!2 ~@4] [x ~ x!3 ~ x ~]!2 [x ~ x!3 ~@3] ~@74>")
  .gain(0.36)

// drums · cowbell
const cowbell = s("cb").struct("<~ [x!4]!104 ~@2>").gain(0.45)

// drums · agogo bells
const agogo_bells = s("agogo:4").struct("<~@17 [~@3 x]!16 [~ x ~ x]!72 ~@2>").gain(1.43)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~ [~@7 x] [x ~@6 x]!103 x ~>").gain(2.04)

// drums · shaker
const shaker = s("sh").struct("<~ [~@5 x ~@2]!104 ~@2>").gain(0.4)

stack(
  electric_guitar_clean, tenor_sax, electric_guitar_muted, acoustic_guitar_steel, celesta, bass, synth_strings_1,
  string_ensemble_1, kick, snare, hihat, mid_tom, crash, tambourine, cowbell, agogo_bells, cabasa, shaker
)

More by Chris Rea