Strudelify

Back Here

BBMak

KeyA♭ majorTempo106 bpm
0:00/0:00
// Back Here — BBMak
// 106 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 26.
setcpm(106/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 · electric bass finger · "backhere"
const bass = note(`<
  ~@10 A B C@2 D E D F D E D F G H I J K L M N O@2 P A B C@2 D E D F D E D F G H Q R S T U R S T V W@2 X Y D E D F D E D
  F D E D F G Z D E D F D E D F G AA AB ~@8
>`.pickRestart({
  A: "db2@6 ab2@2 eb3@2 ab2@5 ~", B: "eb2@5 ~ f2 ~ f2@6 ~@2", C: "[db2@9 ~ db2 ~@17 db2@4, ~@12 eb3@19 ~]/2",
  D: "db2 ~ db2@2 ~@2 db2@2 ab1 ~ ab1@2 ~@2 ab1@2", E: "eb2 ~ eb2@2 ~@2 eb2 ~ f2@2 c2@2 f2@2 eb2@2",
  F: "eb2 ~ eb2@2 ~@2 eb2 ~ f1@2 g1@2 ab1@2 c2@2", G: "db2@5 ~ db2@2 ab1@5 ~ ab1@2", H: "eb2@13 ~ ab1 ~",
  I: "~@8 ab1@4 g1@3 ~, ab2@15 ~", J: "f1 ~ f1@2 ~@2 f1 ~ f1 ~ f1 ~@3 f1@2",
  K: "db2 ~ db2@2 ~@2 db2 ~ db2 ~ db2@2 ~@2 db2@2", L: "eb2 ~ eb2 ~@3 eb2 ~ eb2 ~ eb2@2 ~@2 eb2@2",
  M: "ab1 ~ ab1@2 ~@2 ab1 ~ ab1 ~ ab1 ~ g1 ~ g1@2", N: "f1 ~ f1 ~@3 f1 ~ f1@2 g1@2 ab1@2 c2@2",
  O: "[db2 ~ db2@2 ~@2 db2 ~ db2 ~ db2@2 ~@2 eb2@7 ~ eb2 ~ eb2 ~ eb2 ~@3 eb2@2, ~@30 ab1 ~]/2",
  P: "ab1 ~ ab1@2 ~@2 ab1 ~ ab1 ~ ab1@2 bb1@2 c2 ~", Q: "ab2@7 ~", R: "bb1@5 ~ bb1 ~ bb1@6 ~@2",
  S: "bb1@5 ~ bb1 ~ bb1@4 ab1 ~ g1 ~", T: "f1@4 ~@2 f1 ~ f1@6 ~@2", U: "eb2@4 ~@2 eb2 ~ eb2@7 ~", V: "eb2",
  W: "[db3@6 c3@7 ~ eb3@7 ~ f3@8 ~@2]/2", X: "db2@7 ~", Y: "eb2@5 ~ ab1@2 bb1@3 ~ c2@3 ~", Z: "eb2 f2", AA: "eb2@15 ~",
  AB: "ab1@15 ~",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · pad warm
const pad_warm = note(`<
  ~@2 A@2 B@2 A@2 B@2 C D@3 E F E F E F E F E G@2 A@2 B@2 A@2 B@2 C D@3 E F E F E F E F E G@2 H@2 I@2 H@2 I@2 ~@4 E F E
  F E F E F E F E F E J@2 F E F E F E F E K@2 ~@8
>`.pickRestart({
  A: "[~@16 db4@15 ~, ab4]/2", B: "[[g4,bb4] ~, eb4@31 ~]/2", C: "ab4",
  D: "[g4@5 ~ c5@9 ~ db4@15 eb4@12 ~@5, ~@3 [f4,ab4]@13 ~@8]/3", E: "[db4,f4] [c4,eb4], ab3@15 ~",
  F: "[bb3,eb4,g4] [ab3,c4,f4], ab4 ~@15", G: "[[g4,bb4]@16 [ab3,ab4,c5]@13 ~@3, eb5@11 ~@5, eb4 ~@3, ab4 ~@31]/2",
  H: "[[f3,bb3,db4]@31 ~]/2", I: "[[f3,ab3,c4]@15 ~ [g3,bb3]@15 ~, ~@15 eb3@15 ~@2]/2",
  J: "[[g4,bb4]@2 [db4,f4] [c4,eb4], eb5@11 ~@5, eb4@8 ~@8 ab3@15 ~, ab4 ~@15 ab4@12 ~@4]/2", // Gm Db Cm
  K: "[[g4,bb4]@16 [ab3,ab4]@13 ~@3, eb5@11 ~@5, eb4 ~@3, ab4 ~@31]/2", // Gm Ab
})).s("gm_pad_warm").gain(0.3)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@2 A@8 B C D E ~@11 A@8 B C D E ~@56>".pickRestart({
  A: "[f4@15 ~@9 ab4@8, c5@63 ~]/4", B: "[f4,c5]", C: "[eb4,bb4]@7 ~@9", D: "db5", E: "[g4,bb4]@11 ~@5",
})).s("gm_pad_warm").gain(0.15)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@22 A@3 ~@20 A@3 B C D E B C D F ~@16 G@3 ~@7 H@3 ~@8>".pickRestart({
  A: "[~@17 eb5@11 ~@3 [c4,eb4]@12 ~@5, ~@15 eb3@15 ab3@10 ~@8, ~@15 eb4@13 ~@20, ~@4 g4@3 ~@5]/3", B: "~@3 db4@5",
  C: "~@4 bb3@11 ~", D: "~@10 f3@3 ~ ab3@2, ~@2 ab3@9 ~@5, ~ c4@3, ~@3 f4@5",
  E: "~@6 eb3 ~, eb2@7 ~, eb3@9 ~ bb4@4 ~@2, ~ bb3@6 ~, ~@3 eb4@4 ~",
  F: "~@5 bb4@2 ~, eb2@7 ~, eb3@9 ~@7, ~ bb3@6 ~, ~@3 eb4@4 ~",
  G: "[~@17 eb5@11 ~@3 c4@12 ~@5, ~@15 eb3@15 ab3@10 ~@8, ~@15 eb4@13 ~@3 eb4@3 ~@14, ~@4 g4@3 ~@5]/3",
  H: "[~@17 eb5@11 ~@3 [ab2,c4,eb4]@12 ~@5, ~@15 eb3@15 ab3@10 ~@8, ~@15 eb4@13 ~@20, ~@4 g4@3 ~@5]/3", // Ab
})).s("gm_electric_guitar_jazz").gain(0.19)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@14 A B A B A B A B A C@2 ~@12 A B A B A B A B A C@2 ~@12 A B A B A B A B A B A B A D@2 B A B A B A B A C@2 ~@8
>`.pickRestart({
  A: "[db4,f4] c4, ab3@15 ~", B: "[bb3,g4]@8 [f3,ab3,c4,f4]@7 ~", C: "[[eb2,eb3,bb3] [ab2,eb3,ab3], eb4]/2",
  D: "[[eb2,eb3,bb3]@2 [db4,f4] c4, eb4@3 ~, ~ [ab2,eb3,ab3]]/2", // Eb5 Db Ab5
})).s("gm_overdriven_guitar").gain(0.23)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@14 A@8 B ~@14 A@8 B ~@14 A@12 B ~ A@8 B ~@10>".pickRestart({
  A: "[~ eb4@2 ~]/2", B: "~ eb4",
})).s("gm_overdriven_guitar").gain(0.13)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@37 A B A B A B A B A C D E@2 F G H@4 ~@8 A I A I A I A I A J@2 I A I A I A I A K@2 ~@8
>`.pickRestart({
  A: "[db4,f4] [c4,eb4], ab3@15 ~", B: "[bb3,g4]@7 ~@9, ab4 ~@15", C: "g4@15 ~, ab4 ~@15", D: "ab4@3 ~",
  E: "[~ bb3, bb2]/2", F: "[f2,f3,ab3]", G: "[eb3,g3]",
  H: "[f3@7 ~@9 f3@7 ~@9 c4@15 ~ bb3@8 ~@8, bb2@31 ~ f2@11 ~@4 [eb2,eb3]@16 ~, ~@7 f4@9 ~@16, ~@7 f3@5 ~@4]/4", // Eb
  I: "[bb3,eb4,g4] [ab3,c4,f4], ab4 ~@15", // Eb Fm
  J: "[[g4,bb4]@2 [db4,f4] [c4,eb4], eb5@11 ~@5, eb4@8 ~@8 ab3@15 ~, ab4 ~@15 ab4@12 ~@4]/2", // Gm Db Cm
  K: "[[g4,bb4] [ab1,ab2,c3,eb3], eb5@11 ~@5, eb4@8 ~@8 [ab3,ab4]@13 ~@3, ab4 ~@31]/2", // Gm Ab
})).s("gm_string_ensemble_1").gain(0.14)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@25 A@8 B C@3 ~ D ~ D ~ D ~ D ~ E@2 ~@3 F@3 ~@39>".pickRestart({
  A: "[~@16 db4@15 ~ [g4,bb4]@16 ab4@16, c5@63 ~, ab4 ~, f4@30 ~@2 eb4@31 ~]/4", B: "[f4,ab4,c5]",
  C: "[[eb4,bb4]@6 c5@9 ~ [db4,db5]@15 ~ [g4,bb4]@11 ~@5, g4@5 ~ [f4,ab4]@25 eb4@12 ~@5]/3", D: "eb4 [ab3,c4,f4]",
  E: "[bb4@16 [ab3,c5]@13 ~@3, eb5@11 ~@5, eb4 ~@3]/2", F: "[~@16 db4@31 ~, bb3@47 ~]/3",
})).s("gm_string_ensemble_1").gain(0.05)

// chords · distortion guitar
const distortion_guitar = note("<~@60 A@2 B@2 A@2 B@2 A@2 B@2 A@4 B@2 A@2 B@2 A@2 C ~@8>".pickRestart({
  A: "[~@10 bb3 ~@3 eb3 bb3, [db3,eb3]@4 ab2@5 eb3@4 ~@3, ~@4 eb4@8 bb3@7 ~@13, ~@5 eb3@3 eb2@4 f2@4, ~@14 eb4@5 ~@3 eb4@10]/2", // Dbsus2
  B: "[~ bb3 ~@3 bb3 ~@3 bb3 ~@4 bb3 eb4, [db3,eb3] [ab2,eb3] [eb2,eb3] f2, ~@2 eb4@3 ~ eb4@3 ~ eb4@4 ~@2, ~@22 bb3@4 eb3@5 ~]/2", // Dbsus2 Ab5 Eb
  C: "eb3@15 ~",
})).s("gm_distortion_guitar").gain(0.15)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@60 A B C ~ A B C ~ A B C ~ A B A B C ~ A B C ~ A B D@8 ~>".pickRestart({
  A: "~ bb3@4 ~@3", B: "~@10 bb3@3 ~@3", C: "~@3 bb3 ~@3 bb3", D: "[~ ab3@127, ab2@15 ~@113]/8",
})).s("gm_distortion_guitar").gain(0.07)

// other · distortion guitar
const distortion_guitar_2 = note("<~@60 A B C D A B C D A B ~@4 A B C D A B ~@13>".pickRestart({
  A: "bb4@3 ab4", B: "bb4@3 ab4 bb4 ab4 f4 eb4", C: "c5 ~ c5 ~ c5 ~ c5@6 bb4@2 ab4@2", D: "bb4@3 ab4@4 ~",
})).s("gm_distortion_guitar").gain(0.19)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B C D E F G D E F H I J K L M L M L M L M N@2 O G D E F G D E F H I J K L M L M L M L M N@2 O P Q R@2 P Q S@2 T U
  V@2 L M L M L M L M L M L M N@2 W M L M L M L M N@2 X ~@8
>`.pickRestart({
  A: "f3@2 ab3 ~@3 f3 ~ f3@2 [ab3,c4] ~@5", B: "~@2 [ab3,c4] ~@3 f3 ~@3 [ab3,c4] ~@5", C: "f3@2 ~@12 f3 ~",
  D: "~@2 [ab3,c4] ~@3 [ab3,c4]@2 db3@2 [ab3,c4] ~@3 [ab3,c4]@2", // Ab
  E: "~@2 [g3,bb3,eb4] ~@3 [bb3,eb4]@2 eb3@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4]@2", // Eb Eb5 Eb
  F: "eb3 ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@2 eb3@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~", G: "~@14 f3 ~",
  H: "db3@4 ~@2 [db3,eb4]@5 ~ eb4@4, db2@6 db3 ~", I: "[eb2,eb3]@4 ~@6 ab3@2 c4@3 ~, ~@3 f2@5, ~@2 f3 ~",
  J: "~@3 [db3,db4]@2 ~ db3 f3, db2@13 ~@3, db3 ab3 ~ db4, ~@2 f3@5 ~@9", // Db
  K: "eb3@6 ~@2 g3@5 ~@3, eb2@3 ~, ~@6 eb4@7 ~@3",
  L: "~ eb4 ~ eb4 ~ eb4 ~ eb4, db4@3 ~ ab3@4, ~@2 [ab4,eb5]@3 ~ [ab4,eb5]@2", // Ab5
  M: "~ g4 ~ g4 ~ ab4 ~ ab4, [eb3,eb4]@3 ~ [f3,f4]@4, ~@4 eb5@5 ~@3 eb5@4", // Eb F
  N: "[~ eb4 ~ eb4 ~ eb4 ~@2 [bb4,eb5]@6 ~@2, db4@6 ~@2 ab3@7 g4@13 ~@4, ~@4 [ab4,eb5]@6 ~@2 [ab4,eb5]@4 eb4@3 ~@13, ~@7 eb4 eb3@8]/2", // Eb5 Ab5
  O: "~@10 ab3@2 g3@3 ~, eb4@15 ~, ab3@9 ~@7, ~ c5@14 ~",
  P: "[f3,c4] ~ [f3,bb3]@2 bb2 ~ [f3,c4]@2 ~@2 [f3,bb3]@2 bb2@2 [bb2,bb3,db4,g4]@2, bb2 ~@3", // F5 Bb5 F5 Bb5 Gdim
  Q: "~@2 [bb2,bb3,db4,f4]@2 ~@2 [bb3,db4,g4]@3 ~ [bb2,bb3,db4,f4]@2 ~@4", // Bbm Gdim Bbm
  R: "[c5@5 ~ db5@2 ~@2 c5@2 ~@2 bb4@7 ~ ab4@2 g4@2 f4@2 ~@4, f3@11 ~@3 bb3@16 ~@2]/2",
  S: "[c5@5 ~ db5@2 ~@2 c5@2 ~@2 bb3@16 ~@2, f3@11 ~@3 bb4@12 ~@6]/2",
  T: "~@2 db4 ~@2 db4 c3 ab3, [db2,db3]@5 ~ c2@8 ~@2, ~ ab3@2 c3@2 ~@3, ~@2 ab3 ~", // Db
  U: "~@4 eb4@2 ~@6 f3@2 c4 ~, eb2@15 ~, eb3@2 ~ f2@5, ~@2 bb3@4 f3@4 f4@5 ~, ~@8 c4@5 ~@3",
  V: "[~@2 ab3@2 db4@2 db3@4 ~@2 db3@3 ~ eb3@4 eb4@2 ~@8 eb3 ~, db2@8 ~@3 eb3@3 c3@2, db3@5 ~@5 db4@4 ~ eb2@9 bb3@6 ~@2, ~@26 eb4@5 ~]/2",
  W: "eb4 ~@6 eb4, ab3!2, db4@2 eb5@3 ~@3, ~ eb4@2 eb4@2 eb4@2 ~, ~ ab4@2 [ab4,eb5]", // Ab5
  X: "[ab2,eb3]@11 ~@5, eb4@15 ~, ab3 ~@15", // Ab5
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  A B C D E ~ C D E ~ F G H I ~@10 J C D E ~ C D E ~ F G H I ~@10 J ~@2 K ~@7 L M ~@14 N ~@9 O ~@8
>`.pickRestart({
  A: "~@2 c4 ~@11 f3 ~", B: "f3@2 ~@6 f3@2 ~@4 f3 ~", C: "~@2 [ab3,c4] ~@3 f3 ~ f3@2 [ab3,c4] ~@5",
  D: "db3@2 f3 ~@3 f3@2 ~@2 f3 ~@3 f3@2", E: "eb3 ~@2 g3 ~@4", F: "~@2 ab3@2 ~@3 g3, ~@2 g3@5 ~ g3@5 ~@3, ~@5 ab3@3",
  G: "~@2 bb3@2 ~@3 f3, ~@2 g3@5 ~@9", H: "~@5 ab3@3, ~@8 f3@5 ~@3", I: "~@8 eb3@5 ~@3, ~@2 ab3@5 ~@9, ~@4 bb3@9 ~@3",
  J: "ab4@7 ~", K: "~@14 c4 ~", L: "~@4 ab3@2 ~ ab3", M: "~ bb3@2 ~@5", N: "ab4 ~@3", O: "~ ab3@10 ~@5, ab4@7 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.15)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon_3 = note(`<
  A B C D E F C D E F G@2 H I ~@9 J@2 C D E F C D E F G@2 H I ~@9 J@2 ~@8 K L M@2 ~@13 N@2 ~@8 O@2 ~@8
>`.pickRestart({
  A: "~@2 c4 ~ [f4,ab4,eb5] ~ c4 ~@3 c4 ~ [f4,ab4,c5,eb5] ~ c4 ~", // Fm7
  B: "~@2 c4 ~ [f4,ab4,c5,eb5] ~ c4 ~@3 c4 ~ [f4,ab4,c5,eb5] ~@3", // Fm7
  C: "~@2 c4 ~ [f4,ab4,c5,eb5] ~ c4 ~@3 [f3,c4] ~ [f4,ab4,c5,eb5] ~@3", // Fm7 F5 Fm7
  D: "~@4 [f4,ab4,c5,eb5] ~@5 f4 ~ [f4,ab4,c5,eb5] ~@3", E: "~@2 [g3,g4] ~ [g4,bb4,eb5] ~@5 g4 ~ [g4,bb4,eb5] ~ g3 ~",
  F: "~@2 eb4 ~ [eb4,ab4,c5] ~@5 eb4 ~ [ab4,c5] ~ eb4 ~", // Ab
  G: "[~@7 g4 ~@7 eb5, db4@2 eb4 f4, ~@2 g4@6 g4@5 ~@5 g4@4 ~@10, ~@4 ab4@5 ~ ab4@7 ~@3 ab4@4 ~@2 ab4@6, ~@6 eb5@4 ~@2 eb5@6 ~@4 eb5@5 ~ c5@4]/2",
  H: "~@7 ab4, db4, ~@3 f4@2 db5@3, ~@2 ab4 f4", I: "~@4 db5@5 ~@7, eb4@5 ~@3, ~@2 ab4@7 ~@7",
  J: "[~@17 ab4 ~@2 [c4,eb4,ab4]@2 [ab2,ab3]@2 [c4,ab4]@2 [ab2,ab3]@2 [c4,eb4,ab4]@2 ab3 ~, ~@15 ab3@6 ~@11, ~@4 ab2 ~@3, ~@8 [c4,eb4] ~@3 eb4@2 ~@2]/2", // Ab Fm Ab Cm
  K: "~@2 db4 ~@2 db4 c3 ab3, [db2,db3]@5 ~ c2@8 ~@2, ~ ab3@2 c3@2 ~@3, ~@2 ab3 ~", // Db
  L: "~@4 eb4@2 ~@6 f3@2 c4 ~, eb2@15 ~, eb3@2 ~ f2@5, ~@2 bb3@4 f3@4 f4@5 ~, ~@8 c4@5 ~@3",
  M: "[~@2 ab3@2 db4@2 ~@6 db3@2 ~@6 eb4@2 ~@8 eb3 ~, db2@8 ~ bb3@2 ~ bb3@3 ~, db3@5 ~ db3@4 db4@4 ~ eb2@9 ~@2 eb4@5 ~, ~@4 ab3@2 ~ ab3 eb3@2 ~ eb3@3 c3@2]/2",
  N: "[~@8 c4 ~@7, ~@15 ab3@6 ~@11]/2", O: "[~@17 ab3@12 ~@3, ~@15 ab3@2 ~@15, ~@16 [ab2,eb3]@13 ~@3, ~@8 c4 ~@7]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.27)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon_4 = note("<A@2 B@2 C D B@2 C D ~@15 B@2 C D B@2 C D ~@60>".pickRestart({
  A: "[~@4 c4 ~@25 ab3 ~, f3@17 ~ f3@12 ~@2, ~ ab3@4 ~@2 ab3@3 ~ ab3@2 ~@3, ~@5 c4@3 ~@2 c4@11 ~@5 c4@6, ~@3 eb4@8 ~ eb4@4]/2",
  B: "[~@7 ab3@2 ~@4 c4@2 ~, ~ ab3@5 ~@3 db3@7, ~@4 c4@6 c4@8 c4@7 ~@7, ~@3 eb4@8 eb4@4 ~]/2",
  C: "~@5 g3 eb3 g3, eb3@11 ~@5, ~@2 g3@7 ~@7, ~@3 eb4@5",
  D: "~@12 ab3@3 ~, ab3@5 ~@3, ~@2 c4@6 ~@2 c4@5 ~, ~@6 ab4@9 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.25).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@12 B C B C B C B C B@2 C B C B C B C B C B C B C B C B C B C B C B@2 C A@7 D ~@2 E ~ B C B C B C B C B C B C B@3
  C B C B C B C B@2 D ~@8
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x ~@2 x!3 ~ x", D: "x", E: "~@3 x",
})).gain(0.4)

// drums · rim
const rim = s("rim").struct("<A@14 ~@9 A@2 ~@21 A@2 ~@25 A ~@9 A ~@9>".pickRestart({
  A: "~ x ~ x",
})).gain(0.5)

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

// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@22 B ~@17 C ~@4 D ~@13 E ~@9 E ~@9>".pickRestart({
  A: "~@2 x ~@8 x!2 ~ x ~", B: "x ~@13 x!2", C: "~@7 x", D: "~@10 x ~ x!2 ~@2", E: "~@7 x ~@5 x!2 ~",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!48 [x!7 ~]!7 ~@3 [~@3 x] ~ [x!8]!24 ~@9>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@22 B ~@17 C ~@4 D ~@13 E ~@9 E ~@9>".pickRestart({
  A: "~@3 x!2 ~@3", B: "~@13 x ~@2", C: "~@5 x!2 ~", D: "~@2 x ~ x ~ x!3 ~ x ~@2 x ~@2", E: "~@4 x ~@2 x!2 ~ x ~@3 x ~",
})).gain(0.5)

// … 25 more lines