Strudelify

Fade to Grey

Visage

KeyA minorTempo112 bpm
0:00/0:00
// Fade to Grey — Visage
// 112 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 91 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · fretless bass · "Bass"
const bass = note("<~@5 A@8 B@8 C@8 D@8 E@8 F@7 G@3 ~@2 H@8 I@8 J@8 K@2 L M N L@2 M N O>".pickRestart({
  A: "[~ a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2]/8",
  B: "[~ c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 f2@4 f3@4 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2]/8",
  C: "[~ d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 f2@4 f3@4 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2]/8",
  D: "[~ a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2]/8",
  E: "[~ f2@4 f3@4 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 f2@4 f3@4 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2]/8",
  F: "[~ c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 ~@15]/7",
  G: "~ a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 ~@15",
  H: "[~@19 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2]/8",
  I: "[~ a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 f2@4 f3@4 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@4 d3@4 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2@2 d2@2 d2@2 d3@2 d2]/8",
  J: "[~ f2@4 f3@4 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 f2@2 f2@2 f3@2 f2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2 c2@4 c3@4 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2@2 c2@2 c2@2 c3@2 c2]/8",
  K: "[~ e2@4 e3@4 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 e2@2 e2@2 e3@2 e2@2 a2@4 a3@4 a2@2 a2@2 a3@2 a2 a2@2 a2@2 a3@2 a2@2 a2@2 a2@2 a3@2 a2@2]/2",
  L: "a2@2 a3@2 a2!2 a3 a2!3 a3 a2!3 a3 a2", M: "c2@2 c3@2 c2!2 c3 c2!3 c3 c2!3 c3 c2",
  N: "e2@2 e3@2 e2!2 e3 e2!3 e3 e2!3 e3 e2", O: "a2",
})).s("gm_fretless_bass").gain(0.38)

// other · ocarina · "Pad Rise"
const ocarina = note("<~@8 A@4 ~@22 B@3 C D E@2 F G H ~@47>".pickRestart({
  A: "[~ d5@104 ~@23]/4", B: "[~ d5@79 c5@8 d5@8]/3", C: "a#4", D: "a4 f4", E: "[g4@6 f4 g4]/2", F: "d4",
  G: "c4@8 a3@6 g3 f3", H: "~ d3@20 ~@11",
})).s("gm_ocarina").gain(0.56)

// chords · synth strings 2 · "Synth Pad"
const synth_strings_2 = note("<~@11 A@6 B@8 C@8 D@2 B@8 C@8 E F@3 ~@5 G H@3 G I@2 J@7 K@8 L@8 ~>".pickRestart({
  A: "[a4@32 g4@32 a4@31 ~, [c4,e4]@95 ~]/6", B: "[[d4,f4]@3 [c4,e4] [d4,f4]@3 [c4,e4], a4]/8",
  C: "[a4 g4 a4 g4, [c4,e4]]/8", D: "a4/2", E: "a4 ~", F: "[c4,e4,a4] ~", G: "g4", H: "a4/3", I: "[a4@63 ~]/2",
  J: "[~ [d4,f4]@48 [c4,e4]@16 [d4,f4]@47, ~ a4@111]/7", // Dm C Dm
  K: "[~ a4@16 ~@16 g4@32 a4@32 g4@31, ~ [c4,e4]@64 [c4,e4]@63]/8", // C
  L: "[~@2 a4@63 g4@64 a4@64 g4@63, ~@2 [c4,e4]@127 [c4,e4]@127]/8", // C
})).s("gm_synth_strings_2").gain(0.24)

// chords · harpsichord · "Harpsi"
const harpsichord = note("<~@45 A B C@2 A B C ~@3 A B D E F G H@2 F G H I@5 J@2 K L M@8 N@8>".pickRestart({
  A: "c6 a5", B: "b5 g5", C: "e6 ~", D: "[a5,c6] [f5,a5]", E: "[g5,b5] [e5,g5]", F: "[a5,c6,e6] [e5,a5,c6]",
  G: "[g5,b5,d6] [e5,g5,b5]", H: "[a5,c6,e6] ~",
  I: "[[a5,c6,e6]@16 ~@16 [a5,d6]@4 ~@2 [a5,d6]@4 ~@2 [a5,d6]@4 ~@16 [a5,d6]@4 ~@2 [a5,d6]@4 ~@2 [a5,d6]@4 ~@16 [d6,f6]@4 ~@2 [d6,f6]@4 ~@2 [d6,f6]@3 ~ [a5,d6]@4 ~@2 [a5,d6]@4 ~@2 [a5,d6]@3 ~ [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@3 ~ [a5,c6]@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@4, ~@31 f5@4 ~@2 f5@4 ~@2 f5@4 ~@16 f5@4 ~@2 f5@4 ~@2 f5@4 ~@16 a5@4 ~@2 a5@4 ~@2 a5@4 f5@4 ~@2 f5@4 ~@2 f5@4 a5@4 ~@2 a5@4 ~@2 a5@4 e5@4 ~@2 e5@4 ~@2 e5@4 ~]/5", // Am D5 Dm D5 C Am
  J: "~ d6@4 ~@2 d6@4 ~@2 d6@4 ~@15, [f5,a5]@2 ~ [f5,a5]@2 ~ [f5,a5]@2 ~@8", // F
  K: "~ f6@4 ~@2 f6@4 ~@2 f6@3 ~ d6@4 ~@2 d6@4 ~@2 d6@3, [a5,d6]@2 ~ [a5,d6]@2 ~ [a5,d6]@2 [f5,a5]@2 ~ [f5,a5]@2 ~ [f5,a5]@2", // D5 F
  L: "a5 e6@4 ~@2 e6@4 ~@2 e6@3 ~ c6@4 ~@2 c6@4 ~@2 c6@3, c6@2 ~ [a5,c6]@2 ~ [a5,c6]@2 [e5,a5]@2 ~ [e5,a5]@2 ~ [e5,a5]@2", // Am A5
  M: "[e6@4 ~@2 e6@4 ~@2 e6@4 ~@16 [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@3 ~ [a5,c6]@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@3 ~ [b5,d6]@4 ~@2 [b5,d6]@4 ~@2 [b5,d6]@3 ~ [g5,b5]@4 ~@2 [g5,b5]@4 ~@2 [g5,b5]@3 ~ [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@4 ~@16 [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@4 ~@16 [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@3 ~ [a5,c6]@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@3 ~ [b5,d6]@4 ~@2 [b5,d6]@4 ~@2 [b5,d6]@3 ~ [g5,b5]@4 ~@2 [g5,b5]@4 ~@2 [g5,b5]@3 ~ [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@4 ~@15 a5, ~@31 a5@4 ~@2 a5@4 ~@2 a5@4 e5@4 ~@2 e5@4 ~@2 e5@4 g5@4 ~@2 g5@4 ~@2 g5@4 e5@4 ~@2 e5@4 ~@2 e5@4 a5@4 ~@2 a5@4 ~@2 a5@4 ~@16 a5@4 ~@2 a5@4 ~@2 a5@4 ~@16 a5@4 ~@2 a5@4 ~@2 a5@4 e5@4 ~@2 e5@4 ~@2 e5@4 g5@4 ~@2 g5@4 ~@2 g5@4 e5@4 ~@2 e5@4 ~@2 e5@4 a5@4 ~@2 a5@4 ~@2 a5@4 ~@17]/8", // C Am Bm G C Am Bm G …
  N: "[[c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@4 ~@16 [c6,e6]@4 ~@2 [c6,e6]@4 ~@2 [c6,e6]@3 ~ [a5,c6]@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@3 ~ [b5,d6]@4 ~@2 [b5,d6]@4 ~@2 [b5,d6]@3 ~ [g5,b5]@4 ~@2 [g5,b5]@4 ~@2 [g5,b5]@3 ~ [c6,e6]@4 ~@2 e6@4 ~@2 e6@4 ~@16 e6@4 ~@2 e6@4 ~@2 e6@4 ~@16 e6@4 ~@2 e6@4 ~@2 e6@3 ~ c6@4 ~@2 c6@4 ~@2 c6@3 ~ d6@4 ~@2 d6@4 ~@2 d6@3 ~ b5@4 ~@2 b5@4 ~@2 b5@3 ~ e6@4 ~@2 e6@4 ~ a5@4 ~@17, ~@5 a5@4 ~@2 a5@4 ~@16 a5@4 ~@2 a5@4 ~@2 a5@4 e5@4 ~@2 e5@4 ~@2 e5@4 g5@4 ~@2 g5@4 ~@2 g5@4 e5@4 ~@2 e5@4 ~@2 e5@4 a5@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@4 ~@16 [a5,c6]@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@4 ~@16 [a5,c6]@4 ~@2 [a5,c6]@4 ~@2 [a5,c6]@4 [e5,a5]@4 ~@2 [e5,a5]@4 ~@2 [e5,a5]@4 [g5,b5]@4 ~@2 [g5,b5]@4 ~@2 [g5,b5]@4 [e5,g5]@4 ~@2 [e5,g5]@4 ~@2 [e5,g5]@4 [a5,c6]@4 ~@2 [a5,c6]@4 ~@23]/8", // C Am Bm G C Am A5 G …
})).s("gm_harpsichord").gain(0.44)

// chords · harpsichord · "Harpsi" · soft notes
const harpsichord_soft = note("<~@67 A@2 ~@2 B@2 ~@5 C@2 ~@2 C@2 ~@2 D@2 ~@2 E>".pickRestart({
  A: "~@9 [a5,d6]@2 ~@5, ~@17 f5@4 ~@11", B: "~@19 d6@4 ~@9, ~@9 [f5,a5]@2 ~@5", C: "~@9 [c6,e6]@2 ~@5, ~@17 a5@4 ~@11",
  D: "~@9 e6@2 ~@5, ~@17 [a5,c6]@4 ~@11", E: "~@6 e6@2 ~ e6@2 ~@5, ~@11 c6@4 ~@2 [a5,c6]@4 ~@11",
})).s("gm_harpsichord").gain(0.22)

// other · synth brass 1 · "Brass"
const synth_brass_1 = note("<~@78 A B ~@2 C D ~@2 C D E F G>".pickRestart({
  A: "~@10 b3 ~ c4 ~ d4 ~", B: "c4@4 b3@2 ~@2 a3@2 ~@2 a3@11 ~@9", C: "~@10 b4 ~ c5 ~ d5 ~",
  D: "c5@4 b4@2 ~@2 a4@2 ~@2 a4@11 ~@9", E: "e4@29 ~@3", F: "d5@3 ~ c5@3 ~ b4@4 c5@8 b4@3 ~ a4@4 g4@3 ~", G: "a4@31 ~",
})).s("gm_synth_brass_1").gain(0.52)

// other · pad new age · "New Age Pad"
const pad_new_age = note("<~ A B@2 C ~@86>".pickRestart({
  A: "g#5@13 e5@3", B: "[~ b4@23 c#5@8]/2", C: "c5",
})).s("gm_pad_new_age").gain(0.32)

// other · pad bowed · "Bowed Pad"
const pad_bowed = note("<~ A@3 B ~@86>".pickRestart({
  A: "[~@13 e5@4 ~@9 b3@14 c#5@8, g#5@13 ~@4 b4@24 ~@7, ~@8 g#4@19 ~@21]/3", B: "c5",
})).s("gm_pad_bowed").gain(0.16)

// other · pad bowed · "Bowed Pad" · soft notes
const pad_bowed_soft = note("<~ A@5 ~@85>".pickRestart({
  A: "[~@8 g#3@26 ~@8 c#3@7 c4@20 ~@11, ~@41 c#4@8 c3@16 ~@15]/5",
})).s("gm_pad_bowed").gain(0.08)

// drums · kick
const kick = s("bd").struct(`<
  ~
  [~ x ~@5 x ~@3 x ~@3 x ~ x ~@3 x ~@3 x ~ x ~@3 x]!8
  [~ x ~@5 x ~ x ~ x ~@3 x ~ x ~@3 x ~@3 x ~ x ~@3 x]!45
  [~ x ~@5 x ~ x ~ x ~@3 x ~ x ~@7 x ~@6]
  [~ x ~@7 x ~@7 x ~@7 x ~@6]!27
  [~ x ~@7 x ~@6 x ~@7 x ~@7]
  [x!4]!7
  ~
>`).gain(0.48)

// drums · clap
const clap = s("cp").struct("<~@11 [~@9 x ~@15 x ~@6]!43 [~@9 x ~@22] ~@36>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@54 [~@25 x ~@6] [~@9 x ~@15 x ~@6]!27 [~@9 x ~@14 x ~@7] [~ x ~ x]!7 ~>").gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  [x!4]
  [~@5 x ~@7 x ~@3 x ~@5 x ~@3 x ~@4]!53
  [~@5 x ~@7 x ~@3 x ~@7 x ~@6]
  [~ x ~@7 x ~@7 x ~@7 x ~@6]!27
  [~ x ~@7 x ~@6 x ~@7 x ~@7]
  [x!4]!7
  ~
>`).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@61 A ~@3 A ~@12 A ~@3 A ~@3 A ~@4>".pickRestart({
  A: "~@3 x",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~
  [~@9 x ~@15 x ~@3 x ~@2]!53
  [~@9 x ~@11 x ~@7 x ~@2]
  [~@5 x ~@7 x ~@7 x ~@7 x ~@2]!27
  [~@5 x ~@7 x ~@6 x ~@7 x ~@3]
  [~ x ~ x ~ x ~ x]!7
  ~
>`).gain(0.24)

stack(
  bass, ocarina, synth_strings_2, harpsichord, harpsichord_soft, synth_brass_1, pad_new_age, pad_bowed, pad_bowed_soft,
  kick, clap, snare, hihat, low_tom, open_hat
)

More by Visage