Strudelify

Amen

Dalla

KeyE♭ minorTempo157 bpm
0:00/0:00
// Amen — Dalla
// 157 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 163 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(157/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 · synth brass 1
const synth_brass_1 = note("<~@2 A B C D E D F D G ~@79 A H I J K L@2 M N ~@64>".pickRestart({
  A: "~@7 [gb2,gb3]", B: "~@2 [gb2,gb3]@2 [eb2,eb3] ~ [eb2,eb3] ~ [db2,db3]@2 [eb2,eb3] ~@5",
  C: "~@12 eb3 ~ [gb2,gb3]@2", D: "~@2 [gb2,gb3]@2 [eb2,eb3] ~ [eb2,eb3] ~ [db2,db3]@2 [eb2,eb3] ~@3 [eb2,eb3] ~",
  E: "[ab1,ab2]@2 ~@2 [bb1,bb2]@2 ~@2 [gb1,gb2]@3 ~ [eb2,eb3] ~ [gb2,gb3]@2", // Ab Bb Gb Eb Gb
  F: "[ab1,ab2]@3 ~ [bb1,bb2]@2 ~@2 [b1,b2] ~ b2@2 [eb2,eb3] ~ [gb2,gb3]@2, ~@10 b1 ~@5", // Ab Bb B Eb Gb
  G: "[ab1,ab2]@3 ~ [bb1,bb2]@2 ~@2 [eb1,eb2]@7 ~", // Ab Bb Eb
  H: "~@2 [gb2,gb3]@2 [eb2,eb3] ~ [eb2,eb3]@2 [db2,db3]@2 [eb2,eb3]@2 ~@4", // Gb Eb Db Eb
  I: "[ab1,ab2]@2 [eb1,eb2] ~ [bb1,bb2]@2 [ab1,ab2] ~ [db2,db3]@2 [ab1,ab2] ~ [eb1,eb2] ~ [gb2,gb3]@2", // Ab Eb Bb Ab Db Ab Eb Gb
  J: "~@2 [gb2,gb3]@2 [eb2,eb3] ~ [eb2,eb3]@2 [db2,db3]@2 [eb2,eb3] ~@5", // Gb Eb Db Eb
  K: "[ab1,ab2]@3 ~ [bb1,bb2]@2 [eb1,eb2]@2 [db2,db3]@3 ~ [db2,db3]@2 [gb2,gb3]@2", // Ab Bb Eb Db Gb
  L: "[~@2 [gb2,gb3]@2 [eb2,eb3] ~ [eb2,eb3]@2 [db2,db3]@2 [eb2,eb3] ~ [db2,db3]@2 [ab1,ab2]@6 [bb1,bb2]@4 [c2,c3]@3 ~@3 [eb1,eb2]@2]/2", // Gb Eb Db Eb Db Ab Bb C …
  M: "[gb2,gb3] ~ [gb2,gb3]@2 [eb2,eb3] ~ [eb2,eb3]@2 [db2,db3]@2 [eb2,eb3]@2 ~@4", // Gb Eb Db Eb
  N: "[gb1,gb2]@4 [ab1,ab2]@4 [bb1,bb2]@4 [db2,db3]@3 ~", // Gb Ab Bb Db
})).s("gm_synth_brass_1").gain(0.33).pan(0.6)

// chords · synth brass 1
const synth_brass_1_2 = note(`<
  ~@10 A B C D E@2 F@2 C G C D E@2 F@2 C G C D E@2 F@2 C H@2 I@2 J@2 K@2 G C D E@2 F@2 C G C D E@2 F@2 C H@2 L@2 J@2 K@2
  G C D C M C D C M N D C M N D O ~@15 A B C D C G C D C G C D C G C D C H@2 L@2 J@2 K@2 P C D Q R C D S R C D T R C D U
  R V D U R C D W R C D U X C D U R V D W R C Y Z
>`.pickRestart({
  A: "~@9 [gb3,ab3,bb3] [db4,eb4] [gb4,ab4,bb4,db5,eb5] [gb5,ab5,bb5,db6,eb6] [ab6,bb6] [bb5,db6,eb6] [bb4,db5,eb5,gb5,ab5], ~@6 gb6 ~", // Gb Dbsus2 Ebm7 Absus2 Eb7 Ebm7
  B: "[bb3,db4,eb4,gb4] ~ [bb3,db4,eb4,ab4] ~ [bb3,db4,eb4,gb4] ~@3, ab4 ~@15", // Ebm7 Bbm7 Ebm7
  C: "[b3,eb4,gb4] ~ [eb4,ab4] [b3,eb4,gb4] ~@4, ~@4 b3 ~@11", // B Ab5 B
  D: "[bb3,db4,eb4,gb4] ~ [bb3,db4,eb4,ab4] ~ [bb3,db4,eb4,gb4] ~ [bb3,db4,eb4,ab4] ~", // Ebm7 Bbm7 Ebm7 Bbm7
  E: "[[b3,eb4,gb4]@2 ~@2 [eb4,ab4]@2 [b3,eb4,gb4]@2 ~@2 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@5 ~ [bb3,db4,eb4,ab4]@2 ~@2 [bb3,db4,eb4,gb4]@2 ~@6, ~@4 b3 ~@27]/2", // B Ab5 B Ebm7 Bbm7 Ebm7
  F: "[[b3,eb4,gb4]@2 ~@2 [eb4,ab4]@2 [b3,eb4,gb4]@2 ~@2 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@5 ~ [bb3,db4,eb4,ab4]@2 ~@2 [bb3,db4,eb4,gb4]@2 ~@2 [bb3,db4,eb4,ab4]@2 ~@2, ~@4 b3 ~@27]/2", // B Ab5 B Ebm7 Bbm7 Ebm7 Bbm7
  G: "[bb3,db4,eb4,gb4] ~ [bb3,db4,eb4,ab4] ~ [bb3,db4,eb4,gb4] ~@3", H: "[[b3,eb4]@11 ~@3 [eb4,gb4,bb4]@15 ~@3]/2",
  I: "[[eb4,gb4,ab4]@12 ~@2 [db4,eb4,gb4,bb4]@15 ~@3]/2", J: "[[eb4,e4,ab4]@13 ~ [db4,eb4]@16 ~@2, ~@7 gb4@9]/2",
  K: "[[eb4,e4,ab4]@13 ~ [db4,eb4,gb4]@18]/2", L: "[[eb4,gb4,ab4]@12 ~@2 [eb4,gb4,bb4]@15 ~@3]/2",
  M: "[bb3,db4,eb4,gb4]@2 ~@2 [bb3,db4,eb4,ab4]@2 ~@2 [bb3,db4,eb4,gb4]@3 ~@5", // Ebm7 Bbm7 Ebm7
  N: "[b3,eb4,gb4]@2 ~@2 [b3,eb4] ~ [b3,eb4,gb4]@3 ~@7, ~@2 ab4 ~@5", // B
  O: "[b3,eb4,gb4]@2 ~@2 [b3,eb4] ~ [b3,eb4,gb4]@2 ~@8, ~@2 ab4 ~@5", // B
  P: "[db4,gb4] ~ [bb3,db4,eb4,ab4] ~ [bb3,db4,eb4,gb4] ~@3, [bb3,eb4] ~@15", // Gb5 Bbm7 Ebm7 Eb5
  Q: "[b3,eb4,gb4]@2 ~@2 [b3,ab4] ~ [b3,eb4] ~@3 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@2, ~@2 eb4 gb4 ~@4", // B E B Ebm7
  R: "~@2 [bb3,db4,eb4,ab4] ~ [bb3,db4,eb4,gb4] ~@3", // Bbm7 Ebm7
  S: "[b3,eb4,gb4]@2 ~@2 [eb4,ab4]@2 [eb4,gb4]@2 ~@2 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@2, ~@4 b3 ~ b3 ~@9", // B Ab5 Ebm Ebm7
  T: "[b3,eb4,gb4]@2 ~@2 [b3,ab4] ~ [eb4,gb4]@2 ~@2 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@2, ~@4 eb4@2 b3 ~@9", // B E Ebm Ebm7
  U: "[b3,eb4,gb4]@2 ~@2 [eb4,ab4]@2 [b3,eb4,gb4]@2 ~@2 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@2, ~@4 b3 ~@11", // B Ab5 B Ebm7
  V: "[b3,eb4,gb4] ~ [b3,eb4,ab4] [b3,eb4,gb4] ~@4", // B Abm B
  W: "[b3,eb4,gb4]@2 ~@2 [b3,eb4,ab4]@2 [b3,eb4,gb4]@2 ~@2 db4@2 eb4 ~ [bb3,db4,eb4,gb4]@2", // B Abm B Ebm7
  X: "~@4 [bb3,db4,eb4,ab4]@2 ~@2 [bb3,db4,eb4,gb4]@3 ~@5", // Bbm7 Ebm7
  Y: "[bb3,db4,eb4,gb4]@2 ~@2 [bb3,db4,eb4,ab4]@2 ~@2 [bb3,db4,eb4,gb4]@2 ~@2 [bb3,db4,eb4,ab4]@3 ~", // Ebm7 Bbm7 Ebm7 Bbm7
  Z: "[eb4,gb4]@2 ~@2 [eb5,ab5]@2 [bb4,db5,gb5]@3 ~@7, b3 ~@3 b4 ~@11", // Ebm Ab5 Gb
})).s("gm_synth_brass_1").gain(0.33).pan(0.4)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@11 A B C D E F G H I J C D A B C D A K L M N O E P ~@8 A B C D E F G H Q J C D A B C D ~@8 A B C D E F G H Q J C D A
  B C D ~@16 A B C D E F G H I J C D A B C D ~@8 A B R S T U V W X Y Z D A B C D AA AB AC AD AE AF AG AH I AI AJ AK AL
  AM I AN I AO AP AQ AR AS AT AU
>`.pickRestart({
  A: "gb2@2 eb2 ~ ab2@2 gb2 ~ bb2@2 ab2 ~@3 eb2 ~", B: "bb2 eb3 ab2 ~ eb3 eb2 db3 eb2 bb2 eb2 ab2 bb2 gb2 ~@3",
  C: "gb2@2 eb2 ~ bb2 ~ gb2@2 gb2@2 ab2@2 gb2@2 eb2 ~", D: "gb3 ~ db3 ~ gb3 eb3 db3 eb3 db3 ~ bb2 ~ ab2 ~ eb2 ~",
  E: "gb2@2 eb2 ~ ab2@2 gb2 ~ bb2@2 ab2 ~@3 ab2 ~", F: "ab2 ~ gb2 ~ ab2@2 bb2 ~ db3@2 ab2 ~ bb2 ~@3",
  G: "eb2 ~ eb2 ~ gb2@2 [eb2,gb2] ~ ab2@2 gb2 ~@3 bb2@2", H: "eb3 ~ eb3 ~ db3 ~ eb3 ~ gb3 ~ gb3 ~ eb3 ~ db3 bb2",
  I: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~@3 bb2@2", J: "ab2 ~ ab2 ~ db3 ~ eb3 ~ db3@2 gb3 ~ eb3 ~ db3 ~",
  K: "bb2 eb3 ab2 ~ ab2 ~ ab2 gb2 ab2 ~ bb2 ~ ab2 db3 bb2 ~", L: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~@3 eb3 ~",
  M: "eb3 db3 gb3 ~ db3 ~ eb3 bb2 eb3 ~ ab2 ~ bb2@2 gb2 ~", N: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2 ~ gb2 ~@3 bb2 ~",
  O: "bb2 eb3 bb2 ~ db3 bb2 eb3 bb2 db3 ~ ab2 ~ bb2@2 gb2 ~", P: "db3 ~ db3 eb3 bb2 ~ db3 ~ ab2 ~ ab2 bb2 gb2 ~ ab2 ~",
  Q: "eb2@2 eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~@3 bb2@2", R: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2 ~ ab2@2 gb2 ~ bb2 ab2",
  S: "db3@2 eb3 ~ db3 eb3 bb2 ~ ab2 ~ bb2 ~ gb2 ab2 eb2 ~", T: "eb2 ~ eb2 gb2 eb2@2 ab2 ~ gb2@2 bb2 ~ ab2 ~ ab2 ~",
  U: "db3 ~ bb2 ab2 bb2@2 eb3 ~ db3 eb3 bb2@2 ab2@2 bb2 ~", V: "eb2 ~ eb2 gb2 ab2@2 gb2 ~ eb2 ~ gb2 ~ bb2@2 ab2 ~",
  W: "ab2 ~ ab2 bb2 ab2 ~ db3 ~ eb3 db3 eb3 bb2 ab2@2 bb2 ~", X: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2 ~ gb2 ~ bb2 ~ ab2 ~",
  Y: "ab2 ~ ab2 ~ bb2@2 ab2 ~ db3!2 eb3 bb2 db3@2 ab2 ~", Z: "bb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~ bb2!2 ab2 ~",
  AA: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~ bb2 ~ bb2 ab2", AB: "bb2@2 db3 ~ eb3 ~ db3 bb2 ab2 ~ bb2 ~ gb2@2 ab2 ~",
  AC: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~ bb2 ~@3", AD: "ab2 ~ ab2 ~ bb2 ~ db3 ~ bb2 db3 bb2 ~ eb3 ~ db3 bb2",
  AE: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~@3 ab2@2", AF: "gb2 ~ ab2 ~ bb2@2 ab2 ~ db3 ~ db3 ab2 bb2@2 gb2 ~",
  AG: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~@3 bb2 ~", AH: "db3 ~ bb2 eb3 db3@2 bb2 ~ eb3 ~ db3 bb2 eb3 ~ db3 ~",
  AI: "ab2 ~ eb3 ~ gb3 db3 eb3 ~ bb2 ~ db3 ~ eb3 db3 eb3 ~", AJ: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~ bb2 ~ gb2 ~",
  AK: "ab2 ~ ab2 ~ gb2 ~ ab2 ~ gb2 ~ gb2 ab2 db3@2 ab2 ~", AL: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2@2 gb2 ~@3 bb2 ab2",
  AM: "bb2 ~ db3 ~ eb3 ~ db3 ~ eb3 ~ eb3 ~ bb2 ~ bb2 db3", AN: "ab2 ~ ab2@2 bb2@2 ab2 ~ db3 ~ db3!2 bb2@2 ab2 ~",
  AO: "ab2 ~ bb2 ~ db3@2 bb2 ~ eb3@2 db3 ~ bb2@2 db3 ~", AP: "eb2 ~ eb2 ~ gb2@2 eb2 ab2 gb2 ~ bb2 ~ ab2 ~@3",
  AQ: "bb2 ab2 bb2 ~ db3@2 bb2 ~ eb3 ~ db3 bb2 db3@2 ~@2", AR: "eb2 ~ eb2 ~ gb2@2 eb2 ~ ab2 ~ ab2 gb2 ab2 ~ bb2 ~",
  AS: "bb2 ~ ab2 ~ bb2 ~ ab2 bb2 db3 ~ bb2 ~ db3@2 eb3 ~", AT: "eb2 ~ eb2 ~ gb2 eb2 gb2 ~ ab2 ~ gb2 ~ ab2 ~ bb2 ~",
  AU: "bb2 ~@2 bb2 ab2@2 gb3@2 ~@8",
})).s("gm_lead_8_bass_lead").gain(0.17)

// bass · synth bass 2
const bass = note(`<
  ~@35 A B C D E F G@2 ~@16 A B C D E F G@2 ~@23 H I J K L M@2 N O ~@16 A B C D E F G@2 ~@40
>`.pickRestart({
  A: "b1@3 ~ b1@2 ~@2 b1@4 ~@2 gb2@2", B: "~@2 gb2@2 eb2 ~ eb2 ~ db2@2 eb2 ~@5", C: "ab1@3 ~ bb1@3 ~ b1@4 ~@2 gb2@2",
  D: "~@2 gb2@2 eb2 ~ bb1 ~ db2@2 eb2 ~@5", E: "e2@2 ~@2 e2@3 ~ e2@3 ~@3 eb2@2",
  F: "~@2 eb2@2 db2 ~ bb1 ~ db2@2 eb2 ~@5", G: "[e2@3 ~ e2@2 e1@2 e2@4 e1 ~ bb1@5 ~ bb1@2 bb1@10]/2", H: "~@7 gb3",
  I: "~@2 gb3@2 eb3 ~ eb3@2 db3@2 eb3@2 ~@4", J: "ab2@2 eb2 ~ bb2@2 ab2 ~ db3@2 ab2 ~ eb2 ~ gb3@2",
  K: "~@2 gb3@2 eb3 ~ eb3@2 db3@2 eb3 ~@5", L: "ab2@3 ~ bb2@2 eb2@2 db3@3 ~ db3@2 gb3@2",
  M: "[~@2 gb3@2 eb3 ~ eb3@2 db3@2 eb3 ~ db3@2 ab2@6 bb2@4 c3@3 ~@3 eb2@2]/2",
  N: "gb3 ~ gb3@2 eb3 ~ eb3@2 db3@2 eb3@2 ~@4", O: "gb2@4 ab2@4 bb2@4 db3@3 ~",
})).s("gm_synth_bass_2").gain(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@43 A@2 ~@6 B@2 ~@2 C D ~@14 E@2 ~@2 F@4 ~@28 G@4 ~@52>".pickRestart({
  A: "[eb4@15 ~]/2", B: "[~@4 eb4@27 ~]/2", C: "[eb4,bb4]@15 ~", D: "[db4,gb4] [bb3,eb4] ~@6",
  E: "[~@4 eb5 bb4@15 ~@12]/2", F: "[~@4 eb5@57 ~@3]/4", G: "[~ eb5@14 ~]/4",
})).s("gm_electric_guitar_clean").gain(0.39).pan(0.1)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~@67 A B C D C E C F C G A H C H C H ~@11 I ~ J K L ~@8 A M C D C E C N ~@8 A M C O C E C P C G A H C H C H A M C O Q
  E C R C G A H C H S H A M C O Q E C ~
>`.pickRestart({
  A: "~@4 [gb4,bb4,eb5]@3 [gb4,bb4,eb5]!2 ~@7", // Ebm
  B: "[b3,eb4,gb4]@2 ~@2 [eb4,gb4,bb4]@3 [eb4,gb4,bb4]!2 ~ bb4 ab4 bb4 ab4 bb4 ~", // B Ebm
  C: "~@4 [gb4,bb4,eb5]@2 ~ [gb4,bb4,eb5]!2 ~@7", D: "[b3,eb4,gb4]@2 ~@2 [eb4,gb4,bb4]@2 ~ [gb4,bb4] [eb4,gb4,bb4] ~@7",
  E: "~@4 [eb4,gb4,bb4]@2 ~ [eb4,bb4] [eb4,gb4,bb4] ~@3 bb4 ab4 bb4 ~", // Ebm Eb5 Ebm
  F: "[b3,eb4,gb4] ~@3 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~@7", // B Ebm
  G: "[b3,eb4,gb4]@2 ~@2 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~@3 [eb4,gb4,bb4] ab4 bb4 ab4", // B Ebm
  H: "[b3,eb4,gb4]@2 ~@2 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~@3 bb4 ab4 bb4 ab4", // B Ebm
  I: "~@4 [eb4,gb4,bb4]@2 [eb4,gb4,bb4] ~@5 [eb4,gb4,bb4] ~ [eb4,gb4,bb4] ~", // Ebm
  J: "~@4 [eb4,gb4,bb4]@2 [eb4,gb4,bb4] ~@5 [eb4,gb4,bb4]@2 [eb4,gb4,bb4] ~", K: "~@12 [eb4,gb4,bb4] ~ [eb4,gb4,bb4] ~",
  L: "~@2 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~", // Ebm
  M: "[b3,eb4,gb4]@2 ~@2 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~ bb4 ab4 bb4 ab4 bb4 ~", // B Ebm
  N: "[b3,eb4,gb4] ~@3 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~ bb4 eb4 ~ eb4 bb3 ~", // B Ebm
  O: "[b3,eb4,gb4]@2 ~@2 [eb4,gb4,bb4]@2 ~ [gb4,bb4] [eb4,gb4,bb4] ~ [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~", // B Ebm Gb Ebm
  P: "[b3,eb4,gb4] ~@3 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~ [eb4,gb4,bb4] ~@5", // B Ebm
  Q: "~@4 [gb4,bb4,eb5]@2 ~ [gb4,bb4,eb5]!2 ~@5 [gb4,bb4,eb5]!2", // Ebm
  R: "[b3,eb4,gb4] ~@3 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]!2 ~ [eb4,gb4,bb4] ~@3 [gb4,bb4,eb5] ~", // B Ebm
  S: "~@4 [gb4,bb4,eb5]@2 ~ [gb4,bb4,eb5]!2 ~ [gb4,bb4,eb5] ~@5", // Ebm
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.9)

// chords · synth strings 1
const synth_strings_1 = note("<~@91 A@8 ~@64>".pickRestart({
  A: "[[bb3,eb4,f5]@16 [b3,b4]@24 [ab3,c5]@8 [bb3,bb4,bb5]@13 ~@3, gb4@39 ~ eb4@21 ~@3, bb4@31 ~ eb5@90 ~@6, ~@32 gb5@45 ~@3 ab4@15 ~@33]/8", // Bbsus4 B Ab Bb
})).s("gm_synth_strings_1").gain(0.31).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note("<~@90 A B@2 C@3 D E@2 ~@64>".pickRestart({
  A: "~@13 eb2!3", B: "[bb2@9 f3 ab2 bb2 db3 eb3 f3@2, eb2 ~]/2", C: "[db3@45 ~ [ab3,c4,eb4,ab4] [ab3,c4,eb4]]/3",
  D: "[ab3,c4,eb4], ab4 ~", E: "[[eb2,bb2]@15 ~]/2",
})).s("gm_distortion_guitar").gain(0.33).pan(0)

// chords · overdriven guitar
const overdriven_guitar = note("<~@91 A@2 B@3 C D@2 ~@64>".pickRestart({
  A: "[bb3@9 f3 ab2 bb2 db3 eb3 f3@2, eb3 ~]/2", B: "[db3@15 ~]/3", C: "~@8 [ab3,c4,eb4,ab4]@7 ~",
  D: "[[eb3,bb3]@15 ~]/2", // Eb5
})).s("gm_overdriven_guitar").gain(0.29).pan(1)

// bass · tenor sax
const bass_2 = note("<~@115 A B C D E F G@2 ~@40>".pickRestart({
  A: "b1@3 ~ b1@2 ~@2 b1@4 ~@2 gb2@2", B: "~@2 gb2@2 eb2 ~ eb2 ~ db2@2 eb2 ~@5", C: "ab1@3 ~ bb1@3 ~ b1@4 ~@2 gb2@2",
  D: "~@2 gb2@2 eb2 ~ bb1 ~ db2@2 eb2 ~@5", E: "e2@2 ~@2 e2@3 ~ e2@3 ~@3 eb2@2",
  F: "~@2 eb2@2 db2 ~ bb1 ~ db2@2 eb2 ~@5", G: "[e2@3 ~ e2@2 e1@2 e2@4 e1 ~ bb1@5 ~ bb1@2 bb1@10]/2",
})).s("gm_electric_bass_finger").gain(0.32).pan(0.8)

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

// drums · snare
const snare = s("sd").struct("<~@3 [~@3 x]!4 [~ x ~ x] [~@3 x] [~ x ~ x] [~ x ~@2] [~ x ~ x]!151 [~ x ~@2]>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@11 [x!8]!151 [x ~ x ~ x!2 ~@10]>").gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@71 [~ x] ~@11 [x ~ x ~ x ~ x!5 ~ x ~ x!2]!79 [x!3 ~@5]>").gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@58 A ~@12 B ~@26 C ~@11 D ~@3 A ~@15 C ~@7 B ~@12 E ~@11>".pickRestart({
  A: "~@7 x", B: "~@7 x ~@8", C: "~@12 x!4", D: "~@10 x!5 ~", E: "~ x ~@2",
})).gain(0.56)

// drums · crash
const crash = s("cr").struct(`<
  ~@59 A ~@7 B ~@31 A ~@3 B ~@11 A ~@6 C ~@8 A ~@3 B ~@3 A ~@15 B ~@3 B ~@2 D
>`.pickRestart({
  A: "x", B: "~ x ~@2", C: "~@3 x", D: "~@3 x ~@4",
})).gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~@99 [x!16]!63 [x!7 ~@9]>").gain(0.24)

// drums · ht
const ht = s("ht").struct("<~@58 A ~@55 B ~@23 C ~@4 D ~@19>".pickRestart({
  A: "~@9 x!2 ~ x ~@3", B: "~@8 x!3 ~ x ~@3", C: "~ x!5 ~@6 x!2 ~ x", D: "~@7 x!4 ~@5",
})).gain(0.48)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<A@35 B A@15 B A@15 B A@15 B A@15 B A@15 B A@15 B A@15 B A@14 C>".pickRestart({
  A: "x!8", B: "~ x!7", C: "x!4 ~@4",
})).gain(2.03)

// drums · triangle
const triangle = s("triangles:30").struct("<~@43 [x!16]!119 [x!6 ~@10]>").gain(2.79)

stack(
  synth_brass_1, synth_brass_1_2, lead_8_bass_lead, bass, electric_guitar_clean, electric_guitar_clean_2,
  synth_strings_1, distortion_guitar, overdriven_guitar, bass_2, kick, snare, hihat, low_tom, mid_tom, crash,
  tambourine, ht, cabasa, triangle
// … 1 more lines

More by Dalla