Strudelify

Someone to Love

East 17

KeyA♭ majorTempo72 bpm
0:00/0:00
// Someone to Love — East 17
// 72 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 16 piano (copy of ch 5 choir aahs)
// note: Full arrangement: all 72 bars on a 24-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(72/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 · synth bass 1
const bass = note(`<
  ~@20 A B C D ~@8 E F G H I J K L M N O P Q ~ R S T U T V T W X ~ Y Z AA AB Y Z AA AB Y Z AA AB Y Z AA AC
>`.pickRestart({
  A: "ab2@3 ~ ab2@3 ~ ab2@2 ab2 ~ eb3@3 ~ eb3@2 ~@2 eb3 ~ eb3@2",
  B: "db3@3 ~ db3@3 ~ db3 ~ db3@2 db3@2 ~@2 db3@2 ~@2 db3 ~ eb3@2",
  C: "ab2@2 ~@2 ab2@2 ~@2 ab2 ~ ab2@2 eb3@3 ~ eb3@2 ~@2 eb3 ~ eb3 ~",
  D: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2@2 bb3@2 bb2 ~ bb2@2 bb2 ~ bb3 ~ bb2@2 bb3 ~", E: "~@14 eb1@2 f1@2 ab1@2 bb1@2 ab1 ~",
  F: "ab1@2 ~@2 ab1@2 ~@2 ab1 ~ bb1 ~ eb1@2 ~@2 e1@2 ~@2 ab1 ~ bb1 ~",
  G: "ab1@2 ~@2 ab1@2 ~@2 ab1 ~ bb1 ~ eb1@2 ~@2 eb1@2 ~@2 ab1@2 bb1@2",
  H: "f1@2 ~@2 f1 ~@3 ab1@2 bb1@2 db1@2 ~@2 db1@2 ~@2 eb1@2 f1 ~",
  I: "eb1@3 ~ eb1@3 ~@3 eb1@2 ~@2 eb1@2 f1 ~ ab1@2 bb1 ~ [ab1,a1] ~", // Amaj7
  J: "ab1@2 ~@2 ab1 ~@3 ab1 ~ bb1@2 eb1@2 ~@2 eb1 ~@3 eb1 ~ f1 ~",
  K: "db1@2 ~@2 db1 ~@3 db1 ~ ab1 ~ db1@2 ~@2 db1@2 ~@2 db1 ~ eb1 ~",
  L: "ab1@2 ~@2 ab1@2 ~@2 ab1@2 bb1@2 eb1@2 ~@2 eb1 ~@3 eb1@2 f1@2",
  M: "bb1@2 ~@2 bb1@2 ~@2 ab1@2 bb1 ~ bb1@2 ~@2 bb1@2 ~@2 ab1@2 bb1 ~",
  N: "ab1@2 ~@2 ab1@2 ~@2 ab1@2 bb1@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~ f1@2",
  O: "db1@2 ~@2 db1@2 ~@2 db1 ~ ab1@2 db1@2 ~@2 db1@2 ~@2 db1 ~ eb1 ~",
  P: "ab1@2 ~@2 ab1@2 ~@2 ab1@2 bb1@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 f1 ~",
  Q: "bb1@2 ~@2 bb1@3 ~ ab1 ~ bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 c2@2 bb1 ~",
  R: "gb1@2 ~@2 gb1 ~ gb1@2 ~@2 gb1 ~ gb1 ~@3 gb1 ~ gb1@2 ~@2 ab1 ~",
  S: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1 ~ bb1 ~ ab1 ~",
  T: "gb1@2 ~@2 gb1 ~ gb1@2 ~@2 gb1 ~ gb1@2 ~@2 gb1 ~ gb1@2 ~@2 ab1 ~",
  U: "bb1@2 ~@2 bb1 ~ bb1 ~ ab1 ~ bb1 ~ c2@2 bb1 ~ c2 ~ db2@3 ~@3",
  V: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 ab1 ~",
  W: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1@2",
  X: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~",
  Y: "ab1@3 ~ ab1@2 ~@2 ab1@2 bb1@2 eb1@3 ~ eb1@2 ~@2 eb1@2 f1@2",
  Z: "db1@2 ~@2 db1@2 ~@2 db1@2 ab1 ~ db1@2 ~@2 db1@2 ~@2 db1@2 eb1@2",
  AA: "ab1@3 ~ ab1@2 ~@2 ab1@2 bb1@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 f1@2",
  AB: "bb1@3 ~ bb1@3 ~ bb1@2 c2@2 bb1@2 c2@2 bb1 ~ bb1@2 c2@2 bb1 ~",
  AC: "bb1@3 ~ bb1@3 ~ bb1@2 c2@2 bb1@2 c2@2 bb1 ~@7",
})).s("gm_synth_bass_1").gain(0.53)

// other · bagpipe
const bagpipe = note("<~@56 A@2 ~@14>".pickRestart({
  A: "[c5@2 eb5@43 ~@3]/2",
})).s("gm_bagpipe").gain(0.33)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@17 A B@2 C D E F ~@9 G H G I J K J L M@2 N O P ~@9 P Q@2 R@2 S@2 T@2 U V W X U V W X
>`.pickRestart({
  A: "~@18 db4@5 ~", B: "[eb4@7 [eb4,ab4,c5]]/2", C: "ab4 g4, eb4@23 ~", D: "[f4,ab4]@3 bb4", E: "[ab4,c5]@13 bb4@11",
  F: "[f4,bb4,db5]@17 ~@3 bb5!3 ~", G: "[ab3,c4] [ab3,db4]", H: "[ab3,eb4] [ab3,db4]", I: "[g3,eb4]",
  J: "[ab3,c4,eb4,ab5] [g3,bb3,eb4,bb5]", K: "[f3,ab3,db4,ab5]", L: "~@2 eb4 c5, [f3,bb3,db4,ab5]",
  M: "[[eb3,ab3,c4,ab5] [g3,bb3,eb4] [f3,ab3,db4]@2, ab4@9 ~@7, ~ bb5@3]/2", N: "[eb3,ab3,c4,ab5] [g3,bb3,eb4,bb5]",
  O: "ab5@14 ab5@2 bb5 ~ c6 ~ bb5@2 ab5@2, [f3,ab3,db4]", P: "~ eb6@22 ~, c3@11 ~",
  Q: "[ab5@35 ~@3 ab5@2 bb5@2 c6@2 bb5@2 ab5@2]/2", R: "[eb6@17 ~@2 ab5 bb5 c6 bb5 ab5]/2",
  S: "[eb6@35 ~@3 ab5@2 bb5@2 c6@2 bb5@2 ab5@2]/2", T: "[~@19 ab5 bb5 c6 bb5 ab5, eb6@5 ~]/2", U: "c6 eb6", V: "f6 eb6",
  W: "ab6 bb6", X: "ab6@7 ~",
})).s("gm_string_ensemble_1").gain(0.37)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@24 A B C D E F G H I ~@39>".pickRestart({
  A: "ab3@11 ~", B: "~@2 f3@2 g3@2 ab3@15 ~@3", C: "eb3 g3 ab3 c4@6 ~@3", D: "~ eb4@2 ~, ~ f3@3 ~@8, ~@2 ab3@7 ~@3",
  E: "~@2 g3@2 ab3@2 c4@13 ~@5", F: "~@2 f3@2 g3@2 ab3@2 g3@2 f3@2 ~@2 f3@2 g3@2 ab3@2 g3@2 f3 ~",
  G: "eb3@2 g3@2 ab3@2 c4@2 ab3@2 g3@2 eb3@2 g3@2 ab3@2 c4@2 ab3@2 g3 ~",
  H: "~@2 f3@2 ab3@2 eb4@2 ab3@2 f3@2 ~@2 f3@2 ab3@2 eb4@2 ab3@2 f3 ~",
  I: "~@2 g3@2 ab3@2 c4@2 ab3@2 g3 ~ eb3@2 g3@2 ab3@2 c4@5 ~",
})).s("gm_acoustic_guitar_steel").gain(0.2)

// chords · violin
const violin = note("<~@45 A B C D E F G H I J ~@2 K@2 L M N@2 ~@9>".pickRestart({
  A: "~@12 gb3@2 ab3 bb3 [c4,db4] eb4 [f4,gb4,ab4] [bb4,c5] [db5,eb5] [f5,gb5] [ab5,bb5] c6", // Dbmaj7 Fm Bbsus2 Dbsus2 Gbmaj7 Absus2
  B: "[gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6]@4 ~@2 [gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6]@5 ~", // Gb
  C: "[f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6]@4 bb5 ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6] ~ [f5,bb5,db6]@4 ~@2", // Bbm
  D: "[gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6]@5 ~ [gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6] ~ [gb5,bb5,db6]@4 ~@2", // Gb
  E: "~@2 [f5,ab5,db6] ~ [f5,ab5,db6] ~ [f5,ab5,db6]@5 ~ eb6@5 ~ f6@4 ~@2", // Db
  F: "[gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~ [gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~ [gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~ [gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~", // Gb5
  G: "[f5,db6] ~ [f5,db6] bb5 [f5,db6] ~ [f5,db6] ~ [f5,db6] bb5 [f5,db6] ~ [f5,db6] ~ [f5,db6] bb5 [f5,db6] ~ [f5,db6] ~ [f5,db6] bb5 [f5,db6] ~", // Db
  H: "[gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~ [gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~ [gb5,db6] ~ [gb5,db6] bb5 [gb5,db6] ~ [gb5,db6] ~ [gb5,db6] bb5 db6 ~", // Gb5
  I: "[f5,db6] ~ [f5,db6] bb5 [f5,db6] ~ [f5,db6] ~ [f5,db6] bb5 [f5,db6] ~ [eb5,e5,c6] ~ [eb5,c6] ab5 [eb5,c6] ~ [eb5,c6] ~ [eb5,c6] ab5 [eb5,c6,db6] ~", // Db C Cm
  J: "bb5 gb5 db5 gb5 db5 bb4 db5 bb4 gb4 bb4 gb4 db4 gb4 db4 bb3 db4 bb3 gb3 bb3 gb3 db3 ~@3",
  K: "[~@14 eb5@23 ~@11]/2", L: "~@7 c6@4 bb5", M: "f6@2 ~", N: "[~@14 f5@23 ~@11]/2",
})).s("gm_violin").gain(0.18)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~@11 A@6 ~@39 B C B C B D B E B C B C B D B F>".pickRestart({
  A: "[~@24 [eb3,ab3,c4]@11 ~ [f3,ab3,db4]@11 ~ [eb3,ab3,c4]@11 ~ [f3,ab3,db4]@11 ~ [f3,ab3] ~@11 [f3,ab3,db4]@11 ~@24 eb4 c5@12 ~@12, ~@23 c3@12 db3@12 c3@12 db3@12 c3@12 db3@12 eb3@23 c4@13 ~@13, ~@72 c4@11 ~@13 [g3,bb3,eb4]@23 ab4@12 ~@13]/6", // Ab Db Ab Db Fm Db Eb
  B: "[eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [eb3,g3,bb3]@2 [eb3,g3,bb3]!4 [eb3,g3,bb3]@2 [eb3,g3,bb3]!4", // Ab Eb
  C: "[f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]@2", // Db
  D: "[f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]@2 [f3,bb3,db4]@2", // Db Bbm
  E: "[db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]@2 [db3,f3,bb3]@2", // Bbm
  F: "[db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]!4 ~@6", // Bbm
})).s("gm_acoustic_guitar_steel").gain(0.26).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  A B C B A B C B A B C B D@2 E F G H G H G I G J K A B C B A B C B D@2 E F G H G H G I G J ~ L M L N L M L O P ~@17
>`.pickRestart({
  A: "[c3,eb3,f3,ab3]@2 [c3,eb3,f3,ab3]!4 [c3,eb3,f3,ab3]@2 [c3,eb3,f3,ab3]!4 [c3,eb3,f3,ab3]@2 [c3,eb3,f3,ab3]!4 [c3,eb3,f3,ab3]@2 [c3,eb3,f3,ab3]!4", // Fm7
  B: "[bb2,eb3,g3]@2 [bb2,eb3,g3]!4 [bb2,eb3,g3]@2 [bb2,eb3,g3]!4 [bb2,eb3,g3]@2 [bb2,eb3,g3]!4 [bb2,eb3,g3]@2 [bb2,eb3,g3]!4", // Eb
  C: "[db3,f3,ab3]@2 [db3,f3,ab3]!4 [db3,f3,ab3]@2 [db3,f3,ab3]!4 [db3,f3,ab3]@2 [db3,f3,ab3]!4 [db3,f3,ab3]@2 [db3,f3,ab3]!4", // Db
  D: "[eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4", // Ab Db
  E: "[f3,ab3,c4]@2 [f3,ab3,c4]!4 [f3,ab3,c4]@2 [f3,ab3,c4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4", // Fm Db
  F: "[bb3,eb4,g4]@2 [bb3,eb4,g4]!4 [bb3,eb4,g4]@2 [bb3,eb4,g4]!4 [bb3,eb4,ab4]@2 [bb3,eb4,ab4]!4 [bb3,eb4,g4]@2 [bb3,eb4,g4]!4", // Eb Ebsus4 Eb
  G: "[eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [eb3,g3,bb3]@2 [eb3,g3,bb3]!4 [eb3,g3,bb3]@2 [eb3,g3,bb3]!4", // Ab Eb
  H: "[f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]@2", // Db
  I: "[f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]@2 [f3,bb3,db4]@2", // Db Bbm
  J: "[db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]!4 [db3,f3,bb3]@2 [db3,f3,bb3]@2 [db3,f3,bb3]@2", // Bbm
  K: "~@17 bb3!7",
  L: "[gb3,bb3,db4]@2 [gb3,bb3,db4]!4 [gb3,bb3,db4]@2 [gb3,bb3,db4]!4 [gb3,bb3,db4]@2 [gb3,bb3,db4]!4 [gb3,bb3,db4]@2 [gb3,bb3,db4]@2 [gb3,bb3,db4]@2", // Gb
  M: "[f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]@2 [f3,bb3,db4]@2", // Bbm
  N: "[f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]!4 [eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [f3,ab3,db4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]@2", // Bbm Ab Db
  O: "[f3,bb3,db4]@2 [f3,bb3,db4]!4 [f3,bb3,db4]@2 [f3,bb3,db4]!4 [eb3,ab3,c4]@2 [eb3,ab3,c4]!4 [eb3,ab3,c4]@2 [eb3,ab3,c4]@2 [eb3,ab3,c4]@2", // Bbm Ab
  P: "[db3,gb3,bb3]@2 [db3,gb3,bb3]!4 [db3,gb3,bb3]@2 [db3,gb3,bb3]!4 [db3,gb3,bb3]@2 [db3,gb3,bb3]!4 [db3,gb3,bb3]@2 [db3,gb3,bb3]@2 [db3,gb3,bb3]@2", // Gb
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.4)

// chords · lead 8 bass lead · Fm Dbmaj7 F5 Dbmaj7 F5 Dbmaj7 F5 Dbmaj7
const lead_8_bass_lead = note(`<
  ~@6
  [~@2 [ab3,c4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~ [ab3,c4,db4,f4] ~]
  ~@20
  [~ [c4,db4,f4]!6 [c4,f4] [c4,db4,f4]!4 [c4,f4] [c4,db4] [c4,f4] [c4,db4] [c4,db4,f4]!3 [c4,db4] [c4,db4,f4]!4]
  ~@44
>`).s("gm_lead_8_bass_lead").gain(0.19)

// other · taiko drum
const taiko_drum = note("<~@24 [c3@5 ~] ~@47>").s("gm_taiko_drum").gain(0.47)

// drums · kick
const kick = s("bd").struct("<~@36 [~@10 x!2] [x!2 ~ x!2 ~]!8 ~ [x ~ x ~@2 x!2 ~ x ~@2 x]!8 ~@2 [x!2 ~ x!2 ~]!16>")
  .gain(0.52)

// drums · snare
const snare = s("sd").struct("<~@36 [~@3 x] [~ x ~ x]!8 ~ [~ x ~ x]!8 ~@2 [~ x ~ x]!15 [~ x ~@2]>").gain(0.58)

// drums · clap
const clap = s("cp").struct("<~@37 [~ x ~ x]!8 ~ [~ x ~ x]!8 ~@2 [~ x ~ x]!15 [~ x ~@2]>").gain(0.39)

// drums · low tom
const low_tom = s("lt").struct("<~@36 A ~@8 B ~@9 C ~@3 D ~@3 E ~@3 F ~@4>".pickRestart({
  A: "~@7 x!2 ~@3", B: "~@3 x!3 ~@3 x!3", C: "~@8 x ~ x ~@9 x!4", D: "~@20 x!3 ~", E: "~@7 x!2 ~@2 x", F: "~@11 x",
})).gain(0.52)

// drums · mid tom
const mid_tom = s("mt").struct("<~@44 A B ~@9 C ~@3 D ~@3 E ~@3 F ~@4>".pickRestart({
  A: "~@21 x!3", B: "x ~ x ~ x ~@9 x!2 ~ x ~@6", C: "~@2 x ~ x ~ x ~@7 x!2 ~ x!2 ~@5", D: "~@14 x!2 ~ x!2 ~@5",
  E: "~@9 x!2 ~", F: "~@5 x",
})).gain(0.52)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@58 [~ x ~ x]!2 ~@12>").gain(0.45)

// drums · bongos
const bongos = s("bongo:4").struct("<~@12 [~ x!2 ~@4 x!2 ~@3]!12 ~@48>").gain(0.51)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@12 [~ x ~@3 x ~@2]!12 ~@48>").gain(0.51)

// drums · congas
const congas = s("conga:33").struct("<~@12 [~@3 x!3 ~@3 x!3] [~@3 x ~ x ~@3 x ~ x]!3 [~@3 x!3 ~@3 x!3]!8 ~@48>")
  .gain(1.24)

// drums · congas · soft notes
const congas_soft = s("conga:33").struct("<~@13 [~@2 x ~@2 x]!3 ~@56>").gain(0.83)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@37
  [x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~]!8
  ~
  [x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~]!9
  ~
  [x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~]!15
  [x ~ x!3 ~ x ~ x!3 ~ x ~ x!3 ~@7]
>`).gain(0.39)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<~@33 [~@3 x ~ x ~@3 x ~@2]!4 ~@35>").gain(0.47)

// drums · woodblocks
const woodblocks_2 = s("woodblock:4").struct("<~@33 [~ x!2 ~ x!2] [x!3 ~ x!2] [~ x!2 ~ x!2] [x!3 ~ x!2] ~@35>")
  .gain(0.47)

// drums · triangle
const triangle = s("triangles:35").struct("<~@6 [~ x ~@2] ~@3 [~ x ~@2] ~@61>").gain(5.05)

stack(
  bass, bagpipe, string_ensemble_1, acoustic_guitar_steel, violin, acoustic_guitar_steel_2, acoustic_guitar_steel_3,
  lead_8_bass_lead, taiko_drum, kick, snare, clap, low_tom, mid_tom, crash, tambourine, bongos, bongos_2, congas,
  congas_soft, shaker, woodblocks, woodblocks_2, triangle
// … 1 more lines

More by East 17