Strudelify

The La La Song

Talk of the Town

KeyE♭ majorTempo138 bpm
0:00/0:00
// The La La Song — Talk of the Town
// 138 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 98 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/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 · accordion · "+IT.ACCRDN"
const accordion = note(`<
  ~@5 A@8 B@2 A@2 C D A@6 B@2 A@2 C D A@2 E@6 F G E@6 F G E C A@4 B@2 A@2 C D A@3 H ~@8 I J K L M@4 N O P M Q R S M T U
  V W X Y Z AA AB
>`.pickRestart({
  A: "~@3 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@2", // Eb
  B: "~@3 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@2", // Ab
  C: "~@3 [d4,f4,ab4,bb4] ~@5 [d4,f4,ab4,bb4] ~@5 [d4,f4,ab4,bb4] ~@5 [d4,f4,ab4,bb4] ~@2", // Bb7
  D: "~@3 [c4,eb4,gb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~@2", // Ab7
  E: "~@3 [c4,f4,ab4] ~@5 [c4,f4,ab4] ~@5 [c4,f4,ab4] ~@5 [c4,f4,ab4] ~@2", // Fm
  F: "~@3 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@2", // Bbm
  G: "~@3 [e4,g4,c5] ~@5 [e4,g4,c5] ~@5 [e4,g4,c5] ~@5 [e4,g4,c5] ~@2", // C
  H: "~@3 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@6 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~", // Eb
  I: "~@10 [g4,bb4,eb5] ~@6 [g4,bb4,eb5] ~@6", J: "~ [g4,bb4,eb5] ~@6 [g4,bb4,eb5] ~@7 [g4,bb4,eb5] ~@6 [g4,bb4,eb5]",
  K: "~@6 [g4,bb4,eb5] ~@6 [g4,bb4,eb5] ~@6 [eb4,g4,bb4] ~@3", // Eb
  L: "~@3 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@6 [eb4,g4,bb4] ~@6 [eb4,g4,bb4]", // Eb
  M: "~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4]", // Eb
  N: "~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,ab4,c5]", // Eb Ab
  O: "~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5]", // Ab
  P: "~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@5 [eb4,ab4,c5] ~@5 [eb4,g4,bb4]", // Ab Eb
  Q: "~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [d4,f4,ab4,bb4]", // Eb Bb7
  R: "~@5 [d4,f4,ab4,bb4] ~@5 [d4,f4,ab4,bb4] ~@5 [d4,f4,ab4,bb4] ~@5 [c4,eb4,gb4,ab4]", // Bb7 Ab7
  S: "~@5 [c4,eb4,gb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~@5 [eb4,g4,bb4]", // Ab7 Eb
  T: "~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@5 [eb4,g4,bb4] ~@2 eb2@2 ~ [eb4,g4,bb4], ~@20 eb3 ~@3", // Eb
  U: "~@2 [bb1,bb2] ~@2 [eb4,g4,bb4] ~@2 eb2@2 ~ [eb4,g4,bb4] ~@2 [bb1,bb2] ~@2 [eb4,g4,bb4] ~@2 [eb2,eb3] ~@2 [eb4,g4,bb4], ~@8 eb3 ~@15", // Bb Eb Bb Eb
  V: "~@2 [bb1,bb2] ~@2 [eb4,g4,bb4] ~@2 [eb2,eb3] ~@2 [bb1,bb2,eb4,g4,bb4] ~@2 [db2,db3] ~@2 [d2,d3,eb4,g4,bb4] ~@2 [eb2,eb3] ~@2 [eb4,g4,bb4]", // Bb Eb Db Ebmaj7 Eb
  W: "~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 eb2@2 ~ [eb4,g4,bb4] ~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 eb2@2 ~ [eb4,g4,bb4], ~@8 eb3 ~@11 eb3 ~@3", // Bb Eb Bb Eb
  X: "~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 [eb2,eb3] ~@2 [bb1,bb2,eb4,g4,bb4] ~@2 db2@2 ~ [d2,eb4,g4,bb4] ~@5 [eb4,g4,bb4], ~@14 db3 ~@2 d3@2 ~@5", // Bb Eb Ebmaj7 Eb
  Y: "~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 eb3@2 ~ [eb4,g4,bb4] ~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 [eb2,eb3] ~@2 [eb4,g4,bb4], ~@8 eb2 ~@15", // Bb Eb Bb Eb
  Z: "~@2 bb2@2 ~ [eb4,g4,bb4] ~@2 [eb2,eb3] ~@2 [bb1,bb2,eb4,g4,bb4] ~@2 [db2,db3] ~@2 [d2,d3,eb4,g4,bb4] ~@2 eb2@2 ~ [eb4,g4,bb4], ~@2 bb1 ~@17 eb3 ~@3", // Eb Db Ebmaj7 Eb
  AA: "~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 eb3@2 ~ [eb4,g4,bb4] ~@2 [bb1,bb2]@2 ~ [eb4,g4,bb4] ~@2 [eb4,g4,bb4] ~@3, ~@8 eb2 ~@11 [eb2,eb3]@2 ~@2", // Bb Eb Bb Eb
  AB: "~@8 [eb2,eb3,eb4,bb4] ~@15, ~@4 g4 ~@7", // Eb5
})).s("gm_accordion").gain(0.22).pan(0.4)

// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~@5 A B A B A B A C D E A F G H A B A B A C D E A F G H A B I J K L K M N O P Q K L K M N O P R A B A C D E A F G H A
  B A S T@3 ~ U V@5 W@2 X Y X Y Z AA AB Y AC AD AE Y AF ~@8
>`.pickRestart({
  A: "eb2@2 ~ bb1@2 ~ eb2@2 ~ bb1@2 ~", B: "eb2@4 ~@2 bb1@4 ~@2 eb2@2 ~ bb1@3 db2@3 d2@3",
  C: "eb2@4 ~@2 bb1@4 ~@2 eb2@2 ~ eb2@3 f2@3 g2@3", D: "ab2@2 ~ eb2@2 ~ ab2@2 ~ eb2@2 ~",
  E: "ab2@4 ~@2 eb2@4 ~@2 ab2@2 ~ bb1@3 db2@3 d2@3", F: "eb2@4 ~@2 bb1@4 ~@2 eb2@2 ~ eb2@3 d2@3 c2@3",
  G: "bb1@2 ~ f2@2 ~ bb1@2 ~ f2@2 ~", H: "ab1@2 ~ eb2@2 ~ ab1@2 ~ eb2@2 ~", I: "f2@2 ~ c2@2 ~ f2@2 ~ c2@2 ~",
  J: "f2@4 ~@2 c2@4 ~@2 f2@5 ~ c2@2 ~ e2@2 ~", K: "f2@5 ~ c2@5 ~ f2@5 ~ c2@5 ~", L: "f2@5 ~ c2@6 f2@5 ~ c2@5 ~",
  M: "f2@5 ~ c2@5 ~ f2@5 ~ c2@3 a2@3", N: "bb2@5 ~ f2@5 ~ bb2@5 ~ f2@2 ~ bb2@2 ~", O: "c3@4 ~@2 g2@5 ~ c3@6 g2@5 ~",
  P: "f2@5 ~ eb2@6 db2@6 c2@6", Q: "f2 eb2 db2 c2", R: "bb1 ab1 g1 bb1",
  S: "eb2@4 ~@2 bb1@4 ~@2 eb2@2 ~@2 bb1@3 db2@3 d2@2",
  T: "[~@2 eb2@5 ~ bb1@5 ~@2 eb2@5 ~@2 bb1@5 ~@2 eb2@4 ~@3 bb1@5 ~@3 eb2@3 bb1@3 ~ db2@3 ~ d2@3 ~@14]/3",
  U: "~@10 bb1 ~",
  V: "[db2@4 ~ d2@4 ~ eb2@8 ~ bb1@7 ~@2 eb2@7 ~@2 bb1@6 ~@2 eb2@7 ~@2 bb1@7 ~ eb2@4 bb1@3 ~ db2@4 d2@4 eb2@5 ~@3 bb1@5 ~@2 eb2@5 ~@3 bb1@5 ~@2 eb2@5 ~@2 bb1@5]/5",
  W: "[~@3 eb2@3 bb1@3 ~ db2@3 d2@3 ~ eb2@5 ~ bb1@4 ~@3 eb2@5 ~@2 bb1@4 ~@2 eb2@4 ~]/2",
  X: "~@2 bb1@4 ~@2 eb2@2 ~ bb1@3 db2@3 d2@3 eb2@4", Y: "~ bb1@2 ~ eb2@2 ~ bb1@2 ~ eb2@2",
  Z: "~@2 bb1@4 ~@2 eb2@2 ~ eb2@3 f2@3 g2@3 ab2@4", AA: "~ eb2@2 ~ ab2@2 ~ eb2@2 ~ ab2@2",
  AB: "~@2 eb2@4 ~@2 ab2@2 ~ bb1@3 db2@3 d2@3 eb2@4", AC: "~@2 bb1@4 ~@2 eb2@2 ~ eb2@3 d2@3 c2@3 bb1@4",
  AD: "~ f2@2 ~ bb1@2 ~ f2@2 ~ ab1@2", AE: "~ eb2@2 ~ ab1@2 ~ eb2@2 ~ eb2@2",
  AF: "~@2 bb1@4 ~@2 eb2@2 ~ bb1@3 db2@3 d2@3 ~@4",
})).s("gm_synth_bass_1").gain(0.32).pan(0.6)

// bass · lead 1 square · "SQUAREWAVE"
const bass_2 = note(`<
  ~@21 A B A C D E A F G H A B I@6 J K L@2 I@4 J K L M A B A C D E A F G H A B A N O P Q R S T U V W X Y Z AA AB AA AB
  AC AD AE AB AF AG AH AB AA AB AA AB AA AB AA AB AI
>`.pickRestart({
  A: "eb2 ~@5 bb1 ~@5 eb2 ~@5 bb1 ~@5", B: "eb2 ~@5 bb1 ~@5 eb2 ~@5 db2 ~@5", C: "eb2 ~@5 bb1 ~@5 eb2 ~@5 f2 ~@5",
  D: "ab2 ~@5 eb2 ~@5 ab2 ~@5 eb2 ~@5", E: "ab2 ~@5 eb2 ~@5 ab2 ~@5 c2 ~@5", F: "eb2 ~@5 bb1 ~@5 eb2 ~@5 d2 ~@5",
  G: "bb1 ~@5 f2 ~@5 bb1 ~@5 f2 ~@5", H: "ab1 ~@5 eb2 ~@5 ab1 ~@5 eb2 ~@5", I: "f2 ~@5 c2 ~@5 f2 ~@5 c2 ~@5",
  J: "bb2 ~@5 f2 ~@5 bb2 ~@5 f2 ~@5", K: "c3 ~@5 g2 ~@5 c3 ~@5 g2 ~@5", L: "f2 ~@5 eb2 ~@5 db2 ~@5 c2 ~@5",
  M: "bb1 ~@5 ab1 ~@5 g1 ~@5 bb1 ~@5", N: "eb2 ~@5 bb1 ~@5 eb2 ~@6 db2 ~@4", O: "~@2 eb2 ~@5 bb1 ~@6 eb2 ~@6 bb1 ~",
  P: "~@5 eb2 ~@6 bb1 ~@7 eb2 ~@3", Q: "~@3 db2 ~@7 eb2 ~@7 eb2 ~@4", R: "~@3 eb2 ~@7 eb2 ~@8 eb2 ~@3",
  S: "~@6 eb2 ~@8 eb2 ~@8", T: "db2 ~@9 eb2 ~@8 bb1 ~@4", U: "~@4 eb2 ~@8 bb1 ~@7 eb2 ~@2",
  V: "~@6 bb1 ~@7 eb2 ~@7 db2 ~", W: "~@6 eb2 ~@7 bb1 ~@6 eb2 ~@2", X: "~@5 bb1 ~@6 eb2 ~@6 bb1 ~@4",
  Y: "~@3 eb2 ~@6 db2 ~@6 eb2 ~@5 bb1", Z: "~@6 eb2 ~@6 bb1 ~@5 eb2 ~@4", AA: "~@2 bb1 ~@5 eb2 ~@5 db2 ~@5 eb2 ~@3",
  AB: "~@2 bb1 ~@5 eb2 ~@5 bb1 ~@5 eb2 ~@3", AC: "~@2 bb1 ~@5 eb2 ~@5 f2 ~@5 ab2 ~@3",
  AD: "~@2 eb2 ~@5 ab2 ~@5 eb2 ~@5 ab2 ~@3", AE: "~@2 eb2 ~@5 ab2 ~@5 c2 ~@5 eb2 ~@3",
  AF: "~@2 bb1 ~@5 eb2 ~@5 d2 ~@5 bb1 ~@3", AG: "~@2 f2 ~@5 bb1 ~@5 f2 ~@5 ab1 ~@3",
  AH: "~@2 eb2 ~@5 ab1 ~@5 eb2 ~@5 eb2 ~@3", AI: "~@8 eb2 ~@15",
})).s("gm_lead_1_square").gain(0.4).pan(0.4)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note("<~@35 A B C D E F G ~ A H I J K L G ~@48>".pickRestart({
  A: "~@3 ab2 ~@2 ab2 ~@2 ab2 ~@2 ab2@5 ~ g2 ~@2 ab2 ~@2", B: "bb2@3 ab2@3 g2@3 ab2@3 f2@2 ~ c3 ~@2 c3@3 bb2@3",
  C: "c3@7 ~@2 g2 ~@2 ab2@5 ~ g2@3 ab2@3", D: "bb2@3 ab2@3 g2@3 ab2@2 ~ f2 ~@2 f2@3 g2@3 ab2@3", E: "bb2@5 g2 ab2 bb2",
  F: "c3@3 db3 c3 bb2 ab2 g2", G: "f2 ~", H: "bb2@3 ab2@3 g2@3 ab2@3 f2@3 c3 ~@2 c3 ~@2 bb2@2 ~",
  I: "c3@8 ~ g2 ~@2 ab2@6 g2@3 ab2@3", J: "bb2@3 ab2@3 g2@3 ab2@3 f2 ~@2 f2@3 g2@3 ab2@3",
  K: "bb2@14 ~ g2@3 ab2@3 bb2@3", L: "c3@8 ~ db3@3 c3@3 bb2@3 ab2@3 g2@3",
})).s("gm_baritone_sax").gain(0.5)

// other · whistle
const whistle = note("<~@12 A B@4 ~@7 A B@4 ~@25 A B@4 ~@22 C D E F ~@13>".pickRestart({
  A: "~@3 eb7", B: "[~@15 ab6@2 c7@3 eb7@7 ~@12 eb6@2 ~ g6@2 bb6@7 ~@12 eb6@3 g6@2 bb6@7 ~@21]/4", C: "~@7 eb7@3 ~@2",
  D: "~@11 ab6@3 c7@2 eb7@7 ~", E: "~@11 eb6@2 ~ g6@2 bb6@7 ~", F: "~@11 eb6@3 g6@3 bb6@7",
})).s("gm_whistle").gain(0.06).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B@17 C B C B C B C B C B C B D E F G H I J K L M
  N O P Q R Q R Q R Q R Q R Q R Q R Q R Q R Q R S
>`.pickRestart({
  A: "~@3 x", B: "x!4", C: "x ~ x ~ x ~ x!2", D: "x ~@5 x ~@5 x ~@6 x ~@2 x ~", E: "~@2 x ~@5 x ~@6 x ~@6 x ~",
  F: "~@5 x ~@6 x ~@7 x ~@3", G: "~@3 x ~@3 x ~@3 x ~@7 x ~@4", H: "~@3 x ~@7 x ~@8 x ~@3", I: "~@2 x ~@2 x ~@2",
  J: "x ~@4 x ~@4 x ~@8 x ~@4", K: "~@4 x ~@8 x ~@7 x ~@2", L: "~@3 x ~@3 x ~@3 x", M: "~@2 x ~@3 x ~@7 x ~@6 x ~@2",
  N: "~@5 x ~@6 x ~@6 x ~@4", O: "~@3 x ~@6 x ~@2 x ~@3 x ~@5 x", P: "~@6 x ~@6 x ~@5 x ~@4",
  Q: "~@2 x ~@5 x ~@5 x ~@2 x ~@2 x ~@3", R: "~ x ~@2 x ~@2 x ~@2 x ~", S: "~ x ~",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A@11 B A@11 B A B A@7 C A@7 D A@11 B A E F G H I J K L M N O P L Q R@11 Q ~@8
>`.pickRestart({
  A: "~ x ~ x", B: "~@6 x ~@11 x ~@2 x!2 ~", C: "~@2 x ~@2 x!3", D: "~@6 x ~@8 x ~@2 x ~@2 x!2 ~",
  E: "~@6 x ~@12 x ~@4", F: "~@4 x ~@6 x", G: "~ x", H: "~@3 x ~@15 x ~@4", I: "~@11 x ~@12", J: "~ x ~@2",
  K: "x ~@18 x ~@4", L: "~@13 x ~@10", M: "~@3 x ~@7 x", N: "~@7 x ~@4", O: "~@5 x ~@13 x ~@4", P: "~@10 x ~@12 x",
  Q: "~@2 x ~@11 x ~@2 x ~ x ~@4", R: "~ x ~@5 x ~@4",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@3 A@61 B C D E F G H I J K L M N O@20 P>".pickRestart({
  A: "x!4", B: "x ~@5 x ~@5 x ~@6 x ~@4", C: "~@2 x ~@6 x ~@5 x ~@6 x ~", D: "~@5 x ~@6 x ~@7 x ~@3",
  E: "~@3 x ~@7 x ~@7 x ~@4", F: "~@3 x ~@7 x ~@8 x ~@3", G: "~@2 x ~@2 x ~@2", H: "x ~@9 x ~@8 x ~@4",
  I: "~@4 x ~@8 x ~@7 x ~@2", J: "~@3 x ~@3 x ~@3 x", K: "~@6 x ~@7 x ~@6 x ~@2", L: "~@5 x ~@6 x ~@6 x ~@4",
  M: "~@3 x ~@6 x ~@6 x ~@6", N: "x ~@5 x ~@6 x ~@5 x ~@4", O: "~ x ~@2 x ~@2 x ~@2 x ~", P: "~ x ~",
})).gain(0.3)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@65 A B ~@2 C D E C F G H E ~@21>".pickRestart({
  A: "~ x ~@6 x ~@15", B: "~@19 x ~@4", C: "~@5 x ~@18", D: "~@3 x ~@4", E: "~ x", F: "~@13 x ~@10", G: "~ x ~@4",
  H: "~@2 x ~@20 x",
})).gain(0.1)

// drums · low tom
const low_tom = s("lt").struct("<~@8 A ~@42 B@12 ~@14 C@12 ~@7 C ~>".pickRestart({
  A: "~ x!4 ~@3", B: "x", C: "~@5 x",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@9 A@26 B@16 A@13 C D E F G H I J K L M N O P@12 Q ~@8>".pickRestart({
  A: "x!4", B: "x!8", C: "x ~@5 x ~@5 x ~@6 x ~@4", D: "~@2 x ~@5 x ~@6 x ~@6 x ~", E: "~@5 x ~@6 x ~@7 x ~@3",
  F: "~@3 x ~@7 x ~@7 x ~@4", G: "~@3 x ~@7 x ~@8 x ~@3", H: "~@2 x ~@2 x ~@2", I: "x ~@9 x ~@8 x ~@4",
  J: "~@4 x ~@8 x ~@7 x ~@2", K: "~@3 x ~@3 x ~@3 x", L: "~@6 x ~@7 x ~@6 x ~@2", M: "~@5 x ~@6 x ~@6 x ~@4",
  N: "~@3 x ~@6 x ~@6 x ~@5 x", O: "~@6 x ~@6 x ~@5 x ~@4", P: "~ x ~@2 x ~@2 x ~@2 x ~", Q: "~ x ~@2 x ~@2 x ~@4",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@9 A@26 ~@16 A@13 B C D E F G H I J K L M N O@12 P ~@8>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@3 x ~@5 x ~@6 x ~@5 x ~", C: "~@5 x ~@6 x ~@6 x ~@4", D: "~@2 x ~@6 x ~@6 x ~@6 x",
  E: "~@7 x ~@7 x ~@7 x", F: "~@7 x ~@8 x ~@7", G: "~ x ~@8 x ~@9 x ~@3", H: "~@5 x ~@8 x ~@9", I: "x ~@7 x ~@8 x ~@6",
  J: "~ x ~@3 x ~@3 x ~@2", K: "~@2 x ~@7 x ~@6 x ~@6", L: "~ x ~@6 x ~@7 x ~@6 x", M: "~@6 x ~@6 x ~@6 x ~@3",
  N: "~@3 x ~@5 x ~@6 x ~@6 x", O: "~@5 x ~@5 x ~@5 x ~@5 x", P: "~@5 x ~@5 x ~@5 x ~@6",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@9 A ~@11 A ~@11 A ~ A ~@7 A ~@7 A ~@11 A ~@13 B ~@20>".pickRestart({
  A: "x", B: "~@5 x",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@6 [~ x!4 ~@3] ~@91>").gain(0.3)

// drums · ride bell
const ride_bell = s("rd").struct("<~@8 [~@18 x!2 ~@2 x ~] ~@42 [~ x]!12 ~@15 [~ x ~]!12 ~@7 [~ x ~]>").gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@9 A B A B A B A B A B A B A B A B A B A B A B A B ~@18 A B A B A B A B A B A B A C D E F G H I J K L M N O P Q R Q R
  Q R Q R Q R Q S ~@8
>`.pickRestart({
  A: "~@3 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2 ~", B: "~@3 x!2 ~@4 x!2 ~@4 x!2 ~@2 x ~ x!2 ~",
  C: "~@3 x!2 ~@4 x ~ x ~@4 x!2 ~@3 x!2 ~", D: "x ~@4 x ~ x ~@4 x ~ x ~@4 x ~ x ~@2",
  E: "~@2 x ~ x ~@4 x ~ x ~@4 x ~ x ~@4 x", F: "~ x ~@3 x ~ x ~ x ~@5 x ~ x ~@5 x", G: "~ x ~@5 x ~ x ~@6 x ~ x ~@5",
  H: "~ x ~ x ~@6 x ~@2 x ~@6 x ~ x ~", I: "~@3 x ~ x ~ x ~@6 x ~@2 x ~@6", J: "x ~ x ~@5 x ~@2 x ~@5 x ~ x ~@4",
  K: "~ x!2 ~@2 x!2 ~@2 x!2 ~", L: "x ~ x ~ x ~@5 x ~ x ~@4 x ~ x ~@4", M: "~ x ~ x ~@4 x ~ x ~@5 x ~ x ~@4 x",
  N: "~ x ~@4 x ~ x ~@3 x!2 ~ x ~@4 x ~ x ~", O: "~@3 x!2 ~@4 x ~ x ~@4 x ~ x ~@4 x",
  P: "x ~@4 x ~ x ~@3 x ~ x ~@2 x!2 ~ x ~@3 x", Q: "~ x ~@3 x ~ x ~@3 x ~ x ~@3 x ~ x ~@3 x",
  R: "~ x ~@3 x ~ x ~@3 x ~ x ~@2 x!2 ~ x ~@3 x", S: "~ x ~@3 x ~ x ~@3 x ~ x ~@2 x!2 ~ x ~@4",
})).gain(0.25)

stack(
  accordion, bass, bass_2, baritone_sax, whistle, kick, snare, clap, clap_soft, low_tom, hihat, open_hat, crash,
  high_tom, ride_bell, tambourine
)

More by Talk of the Town