Strudelify

Charlie Brown

Coasters

KeyD minorTempo135 bpm
0:00/0:00
// Charlie Brown — Coasters
// 135 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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.

// other · tenor sax · "Sax (Tenor)"
const tenor_sax = note(`<
  A B C D E F G H I@2 J K L M ~ N O P Q H I@2 J K L M ~@2 R S T U V W X Y Z F AA H I@2 J K L M ~@2 E F G AB I@2 J K L M
  ~ N O P Q H I@2 J K L M ~@2 R S T U V W X Y Z F AA H I@2 J K L M ~@2
>`.pickRestart({
  A: "[e4,g4,bb4]!4 [e4,g4,bb4]@3 ~", B: "[d4,f4,ab4]!4 [d4,f4,ab4]@3 ~", C: "[f3,a3,c4] c4!3 [f3,a3,c4] c4!3",
  D: "[f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@3 ~ [f3,a3]@6 ~@2, ~@4 c4 ~@3", E: "a4@3 ~ a4@3 ~ f4@3 ~ f4@3 ~",
  F: "a4@3 ~ a4@3 ~ f4@4 ~@4", G: "a4@3 ~ a4@3 ~ f4@3 ~ f4@2 f4@2", H: "c5@2 bb4@2 a4@2 g4@2 f4@3 ~ a4@2 a4@2",
  I: "ab4@2 ~@4 ab4!2", J: "a4@2 ~@3 a4!2 bb4", K: "a4@4 ~@8 a4@3 ~", L: "bb4@2 bb4@2 bb4@3 ~ bb4@4 ~@4",
  M: "ab4!4 ab4@2 ~@2", N: "~@7 f4", O: "a4@3 ~ a4@2 g4@2 f4@4 ~@2 f4@2", P: "a4@3 ~ g4@2 f4@5 ~ f4@2 f4@2",
  Q: "a4@2 a4@2 a4@2 g4@2 f4@2 f4@2 f4@3 ~", R: "f4@3 ~ f4@2 f4@2 f4@2 f4@2 f4@2 f4@2", S: "f4 ~@3",
  T: "eb4@3 ~ eb4@2 eb4@2 eb4@2 eb4@2 eb4@2 eb4@2", U: "eb4 ~@3", V: "f4@3 ~ f4@2 f4@2 f4@2 f4@2 f4@3 ~",
  W: "f4@4 ~@8 f4@3 ~", X: "g4@3 ~ g4@3 ~ g4@3 ~ g4@3 ~", Y: "g4@4 ~@8 e4@3 ~", Z: "a4@3 ~ a4@2 bb4@2 f4@3 ~ f4@3 ~",
  AA: "a4@3 ~ a4@2 g4@2 f4@3 ~ f4@3 ~", AB: "c5 bb4 a4 g4 f4@2 a4!2",
})).s("gm_tenor_sax").gain(0.29).pan(0.4)

// chords · baritone sax · "Sax (Baritone)"
const baritone_sax = note(`<
  A B C D E F G H I@2 J K L M N O P Q R H I@2 J K L B N S T U V W X Y Z AA AB AC AD H I@2 J K L B N S E F G H I@2 J K L
  M N O P Q R H I@2 J K L B N S T U V W X Y Z AA AB F AD H I@2 J K L B N AE
>`.pickRestart({
  A: "[g4,bb4,e5]!4 [g4,bb4,e5]@3 ~", B: "[f4,ab4,d5]!4 [f4,ab4,d5]@3 ~", C: "[a3,c4,f4] f4!3 [ab3,d4,f4] f4!3",
  D: "[a3,c4,f4]@2 [a3,c4,f4]@2 [ab3,d4,f4]@3 ~ [a3,c4,f4]@2 ~@6", E: "[a4,c5]@3 ~ [a4,c5]@3 ~ [f4,a4]@3 ~ [f4,a4]@3 ~",
  F: "[a4,c5]@3 ~ [a4,c5]@3 ~ [f4,a4]@6 ~@2", G: "[a4,c5]@3 ~ [a4,c5]@3 ~ [f4,a4]@3 ~ [f4,a4]@2 [f4,a4]@2",
  H: "[c5,eb5]@2 [bb4,d5]@2 [a4,c5]@2 [g4,bb4]@2 [f4,a4]@3 ~ d5@2 d5@2", // Cm Bb Am Gm F
  I: "~ [d4,f4,ab4] ~ [d4,f4,ab4] ~ [d4,f4,ab4]!3", J: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] [f4,a4]!2",
  K: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]", // F
  L: "[g4,bb4,e5]@2 [g4,bb4,e5]@2 [g4,bb4,e5]@3 ~ [g4,bb4,e5]@6 ~@2", M: "[f4,ab4,d5]!4 [f4,ab4,d5]@4",
  N: "[a3,c4,f4] f4!7", O: "f4@2 f4@2 f4@3 ~ f4@4 ~@2 a4@2", P: "[a4,c5]@3 ~ [a4,c5]@2 [g4,bb4]@2 [f4,a4]@6 [f4,a4]@2",
  Q: "[a4,c5]@3 ~ [g4,bb4]@2 [f4,a4]@5 ~ [f4,a4]@2 [f4,a4]@2", // Am Gm F
  R: "[a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [g4,bb4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@3 ~", S: "f4@2 f4@2 f4@3 ~ f4@4 ~@4",
  T: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2", // Bb
  U: "[d4,f4,bb4]@3 ~ [bb4,d5,g5]@2 [bb4,d5,f5]@2 [bb4,d5,g5]@2 [bb4,d5,f5]@2 [bb4,d5,g5]@2 [bb4,d5,f5]@2", // Bb Gm Bb Gm Bb Gm Bb
  V: "[c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2", // Ab
  W: "[c4,eb4,ab4]@3 ~ [ab4,c5,f5]@2 [ab4,c5,e5]@2 [ab4,c5,f5]@2 [ab4,c5,e5]@2 [ab4,c5,f5]@2 [ab4,c5,e5]@2", // Ab Fm Abaug Fm Abaug Fm Abaug
  X: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@3 ~", // Bb
  Y: "[d4,f4,bb4]@3 ~ [bb4,d5,g5]@2 [bb4,d5,f5]@2 [bb4,d5,g5]@2 [bb4,d5,f5]@2 [d4,f4,bb4]@3 ~", // Bb Gm Bb Gm Bb
  Z: "[e4,bb4,c5]@4 ~@8 [e5,bb5,c6]@3 ~", AA: "[e5,bb5,c6]@4 ~@8 a4@3 ~",
  AB: "[a4,c5]@3 ~ [a4,c5]@2 [a4,d5]@2 [f4,a4]@3 ~ [f4,a4]@3 ~", AC: "[a4,c5]@3 ~ [a4,c5]@3 ~ [f4,a4]@8",
  AD: "[a4,c5]@3 ~ [a4,c5]@2 [g4,bb4]@2 [f4,a4]@3 ~ [f4,a4]@3 ~", AE: "f4@2 f4@2 f4@3 ~ f4@3 ~ [f4,a4,c5,f5]@4",
})).s("gm_baritone_sax").gain(0.72).pan(0.3)

// chords · piano
const piano = note(`<
  A B C@4 D E F@2 G H I J K L G H C@2 M N O@2 P Q R@2 S T U@2 V W X Y O@2 Z@2 AA AB O@2 A AC AD AE Z@2 R@2 AF@2 R@2 P AG
  Z@2 K L AD AE Q AH AD AE A B AI AJ V W AK@2 S T AL AM R@2 D E B AN O@2 AO AA K AP
>`.pickRestart({
  A: "[bb3,c4,e4,g4]", B: "~@2 [ab3,bb3,d4,f4]@5 ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4]@6",
  C: "[[a3,c4,f4]@22 ~@2 f4@2 a4@2 c5@2 f5 ~]/2", // F
  D: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@5 f3", // F
  E: "[a3,c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@8 ~@2", F: "[[d4,f4,ab4,bb4]@22 ~@2 ab3@2 d4@2 f4@2 bb4 ~]/2",
  G: "[a3,c4,f4]@4 ~@2 c5 f5, ~@4 f4@3 ~, ~@5 a4@2 ~", // F
  H: "[a3,c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@5 f3 [a3,c4,f4] f3 [a3,c4,f4] ~", // F
  I: "~@2 [bb3,c4,e4,g4]@5 ~ [bb3,c4,e4,g4] ~ [bb3,c4,e4,g4]@6", J: "[d4,f4,ab4,bb4]",
  K: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@4 f3@2", // F
  L: "[a3,c4,f4] ~ [a3,c4,f4]@4 [a3,c4,f4]@4 f3@2 [a3,c4,f4] ~@3", // F
  M: "~@2 [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@5 bb2", // Bb7
  N: "[d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@3 ~ [d4,f4,ab4,bb4]@8 ~@2", // Bb7
  O: "[~@2 [a3,c4,f4]@6 [a3,c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@8 f3@2 [a3,c4,f4]@2 f3@2 [a3,c4,f4] ~@3]/2", // F
  P: "[bb3,c4,e4,g4]@4 ~@2 g4 c5, ~@4 bb3@3 ~, ~@5 e4@2 ~", // C7
  Q: "[d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@4 bb2@2 [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@4 bb2@2", // Bb7
  R: "[[a3,c4,f4]@25 ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~]/2", // F
  S: "~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@5 bb2", // Bb
  T: "[bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@8 ~@2", // Bb
  U: "[~@2 c4@2 eb4@2 [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@8 ab2@2 [ab3,c4,eb4]@2 ab2@2 [ab3,c4,eb4] ~@3, ab3 ~@7]/2", // Ab
  V: "~@2 [bb3,d4,f4]@5 ~ [bb3,d4,f4] ~ [bb3,d4,f4]@6", // Bb
  W: "~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] bb2 [bb3,d4,f4] ~", // Bb
  X: "[bb3,c4,e4,g4] ~@2 bb3", Y: "~@7 e4, ~@3 bb3",
  Z: "[~@2 a4@2 c5@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@8 f3@2 [a3,c4,f4]@2 f3@2 [a3,c4,f4] ~@3, f4 ~@7]/2", // F
  AA: "~@2 [d4,f4,ab4,bb4]@5 ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@6", // Bb7
  AB: "~@2 [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] bb2 [d4,f4,ab4,bb4] ~", // Bb7
  AC: "[ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4]@4 bb2@2 [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4]@4 bb2@2", // Bb7
  AD: "[a3,c4,f4] ~ [a3,c4,f4]@4 f3@2 [a3,c4,f4] ~ [a3,c4,f4]@4 f3@2", // F
  AE: "[a3,c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@4 f3 ~ [a3,c4,f4] ~@3", // F
  AF: "[~@2 [d4,f4,ab4,bb4]@6 [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@3 ~ [d4,f4,ab4,bb4]@8 bb2@2 [d4,f4,ab4,bb4]@2 bb2@2 [d4,f4,ab4,bb4] ~@3]/2", // Bb7
  AG: "~@2 [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@4 bb2@2", // Bb7
  AH: "[d4,f4,ab4,bb4] ~ [d4,f4,ab4,bb4]@3 ~ [d4,f4,ab4,bb4]@4 bb2 ~ [d4,f4,ab4,bb4] ~@3", // Bb7
  AI: "~@2 [a3,c4,f4]@5 ~ [a3,c4,f4] ~ [a3,c4,f4]@6", // F
  AJ: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~", // F
  AK: "[[ab3,c4,eb4]@25 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~]/2", AL: "~@3 bb3",
  AM: "[bb3,c4,e4,g4]@2 ~@5 e4, ~@3 bb3", // C7
  AN: "~@2 [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] ~ [ab3,bb3,d4,f4] bb2 [ab3,bb3,d4,f4] ~", // Bb7
  AO: "~@2 [bb3,c4,e4,g4] ~ [bb3,c4,e4,g4] ~ [bb3,c4,e4,g4] ~ [bb3,c4,e4,g4] ~ [bb3,c4,e4,g4]@4 c3@2", // C7
  AP: "[a3,c4,f4] ~ [a3,c4,f4]@5 ~@3 [a3,c4,f4]@2 [a3,c4,f4]@4", // F
})).s("gm_piano").gain(0.55).pan(0.9)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D E@3 F G H I@2 A B J K E@3 F G H I@2 A B J L M N O P M@2 Q R E@3 F G H I@2 A B J S E@3 F G H I@2 A B J K E@3 F
  G H I@2 A B J L M N O P M@2 Q R E@3 F G H I@2 A B J T
>`.pickRestart({
  A: "c2@3 ~ e2@3 ~ g2@2 g2@2 e2@2 c2@2", B: "bb1@3 ~ d2@3 ~ f2@2 f2@2 d2@2 bb1@2", C: "f2 ~@3 bb2 ~@3",
  D: "f2@2 f2@2 bb2@3 ~ f2@2 d3@2 c3@2 d3@2", E: "[f2,c3]@3 ~ [f2,c3]@3 ~", F: "[f2,c3]@3 ~ f2 eb2 d2 c2",
  G: "bb1@3 ~ d2@3 ~ f2@3 ~ d2@2 f2@2", H: "bb1@3 ~ d2@3 ~ f2@3 ~ bb1@3 ~", I: "f2@3 ~ a2@3 ~ c3@3 ~ a2@2 c3@2",
  J: "f2 ~@7", K: "~@5 d3 c3 d3", L: "~@5 f2 g2 a2", M: "bb2@3 ~ d3@3 ~ f3@3 ~ d3@2 f3@2",
  N: "bb2@3 ~ f3@3 ~ d3@3 ~ bb2@3 ~", O: "ab2@3 ~ c3@3 ~ eb3@3 ~ c3@2 eb3@2", P: "ab2@3 ~ eb3@3 ~ c3@3 ~ ab2@3 ~",
  Q: "c3@3 ~ c2@3 ~ c2@4 ~@4", R: "~@2 c2!2 c2@2 ~@2", S: "~@6 c3 d3", T: "~@12 [f2,f3]@3 ~",
})).s("gm_electric_bass_finger").gain(0.64).pan(0)

// other · trombone
const trombone = note("<~@14 A B ~@10 A B ~@18 A B ~@10 A B ~@10 A B ~@18 A C>".pickRestart({
  A: "[a3,c4,f4] f4!7", B: "f4@2 f4@2 f4@3 ~ f4@4 ~@4", C: "f4@2 f4@2 f4@3 ~ f4@3 ~ [f4,a4,c5,f5]@4",
})).s("gm_trombone").gain(0.49).pan(0.1)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@3 A ~@3 B ~@3 C ~@3 C ~@3 A ~@3 C ~@7 B ~@6 D A ~@10 D ~@4 C ~@7 C ~@22 D ~@5
>`.pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@3 x!5", D: "~@5 x ~@2",
})).gain(0.56)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@11 A ~@3 A ~@7 A ~@31 A ~@7 A ~@28>".pickRestart({
  A: "~ x ~@2",
})).gain(0.32)

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

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

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

// drums · high tom
const high_tom = s("ht").struct("<~@3 A ~@15 A ~@7 B ~@11 A ~@19 B ~@11 B ~@11 B ~@7 B>".pickRestart({
  A: "x", B: "~ x ~@2",
})).gain(0.56)

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A
  ~@3 A ~@3 A ~@3 A ~@3
>`.pickRestart({
  A: "x",
})).gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~@11 A ~@3 A ~@7 A ~@4 A@3 ~ A@2 B ~@20 A ~@7 A ~@8 A@3 ~ A@2 B ~@13>".pickRestart({
  A: "x!8", B: "x ~@2 x",
})).gain(0.64)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@11 A ~@3 A ~@7 A ~@4 A@3 ~ A@2 ~@21 A ~@7 A ~@8 A@3 ~ A@2 ~@14>".pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(2.43)

// drums · shaker
const shaker = s("sh").struct("<~@11 A ~@3 A ~@7 A ~@4 A@3 ~ A@2 B ~@20 A ~@7 A ~@8 A@3 ~ A@2 B ~@13>".pickRestart({
  A: "x!4", B: "x ~@2 x",
})).gain(0.64)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@28 A@3 ~ A@2 ~@38 A@3 ~ A@2 ~@14>".pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(0.4)

stack(
  tenor_sax, baritone_sax, piano, bass, trombone, kick, snare, low_tom, low_tom_soft, hihat, mid_tom, open_hat,
  high_tom, crash, tambourine, cabasa, shaker, shaker_soft
// … 1 more lines

More by Coasters