Strudelify

After the Fall

Incognito

KeyD majorTempo97 bpm
0:00/0:00
// After the Fall — Incognito
// 97 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 81 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/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 · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@2 A B@2 ~@4 C@2 D@2 E@4 F@2 G@2 E@4 ~@12 C@2 G@2 E@4 H@4 I J K L M N O ~@10 F@2 G@2 P@3 Q R@2 ~@5
>`.pickRestart({
  A: "~@18 b2@3 d3@2 f#3", B: "[c#4@2 ~ c#4@2 [b2,d3,a3] ~@2 [b2,d3,a3] ~@2 f3 f#3@32 ~@4, ~@11 [g2,b2]@32 ~@5]/2",
  C: "[f4@3 e4 ~@2 d4 ~@2 c#4@2 b3@4 e4 ~@2 c#4@3 a3 ~ f3@13 ~@9 d4@2 e4, ~@22 b3 ~]/2",
  D: "[f4@3 e4 ~@2 d4 ~@2 c#4@2 b3@4 e4 ~@2 c#4 ~@2 a3 ~ b3@14 ~@11]/2",
  E: "[a4@3 g4 ~@2 f4 ~@2 e4 ~ d4@3 ~ g4 ~@2 e4@3 c4 ~ a3@14 ~@7 d4 e4@2 f4@9 d4 f4@2 g4@7 e4@3 d4 ~ e4@13 ~@12]/4",
  F: "[f4@3 e4 ~@2 d4 ~@2 c#4@2 b3@4 e4 ~@2 c#4@3 a3 ~ f3@13 ~@8 b3 d4@2 e4]/2",
  G: "[f4@3 e4 ~@2 d4 ~@2 c#4@2 b3@4 e4 ~@2 c#4@3 a3 ~ b3@14 ~@11]/2",
  H: "[~@3 b3 ~ b3 b3@2 b3 ~@2 b3 b3@2 b3 ~@2 b3!2 ~ b3 a3@6 b3 ~ b3 b3@2 b3 a3 ~ b3@2 ~@2 b3 ~ b3 ~@2 b3 a3@6 b3 ~ b3 b3@2 ~ b3 ~ b3 ~@3 b3 ~ b3 ~@3 a3@9 b3@2 b3 a3 ~ b3@2 ~@4 b3 ~@2 b3 a3@3, ~@34 b3 ~@13]/4",
  I: "b4 ~@4 b4 ~@3 a4 ~@2 b4@2 ~@3 a4 ~@2 b4 ~@3", J: "b4@2 ~@3 b4 ~@11 a4 ~@6",
  K: "[f#4,c#5]@2 ~@3 c#5 ~@3 b4 ~@2 c#5 ~@4 b4 ~@6", L: "[g4,c5]@2 ~@3 [g4,c5]@2 ~@5 c5@2 ~@10",
  M: "b4@2 ~@3 b4@2 ~@2 a4 ~@2 b4@2 ~@2 a4 ~@3 b4 ~@3", N: "b4@2 ~@3 b4@2 ~@2 a4 ~@2 b4 ~@4 a4 ~@2 b4@2 ~@2",
  O: "c#5@2 ~@2 c#5@2 ~@3 b4 ~@2 c#5@2 ~@3 b4 ~@2 c#5 ~@3",
  P: "[a4@3 g4 ~@2 f4 ~@2 e4 ~ d4@3 ~ g4 ~@2 e4@3 c4 ~ a3@14 ~@7 d4 e4@2 f4@9 d4 f4@2 g4@7 g4@3 ~@3]/3",
  Q: "d4@20 ~@2 b3 ~", R: "[c#4@2 d4@11 ~ b3 d4@3 e4@9 c#4@4 ~ a3@3 b3@10 ~@3]/2",
})).s("gm_electric_guitar_jazz").gain(0.3)

// other · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note("<~@3 A ~@12 B ~@7 B ~@19 B C ~ D E F G H I J K L ~@16 M ~@8>".pickRestart({
  A: "~@4 f9 ~@19", B: "~@12 d#4 d4 [c4,c#4] ~@9", C: "~@2 b3 ~@21", D: "~@14 b3 ~@9", E: "~@3 b3 ~ b3 ~@8 b3!2 ~@8",
  F: "f#4 ~@4 f#4 ~@3 f#4 ~@2 f#4@2 [f#4,b4] ~@2 f#4 ~@2 f#4 ~@3", // B5
  G: "f#4@2 ~@3 f#4 ~@3 [f#4,a4] ~@2 [f#4,b4]@2 [f#4,b4] ~@2 f#4 ~@2 [f#4,b4] ~@3", // F#m B5
  H: "~@5 f#4 ~@3 f#4 ~@2 f#4 [f#4,c#5] ~@3 f#4 ~@2 [f#4,c#5]@2 ~@2", // F#5
  I: "~@9 [g4,a#4] ~@2 g4@2 [g4,c5] ~@2 [g4,a#4] ~@2 [g4,c5] ~@3", // Gm C5 Gm C5
  J: "f#4@2 ~@3 f#4@2 ~@2 f#4 ~@2 f#4@2 [f#4,b4] ~ f#4 ~@3 f#4 ~@3", // B5
  K: "f#4@2 ~@3 f#4@2 ~@2 f#4 ~@2 f#4 [f#4,b4] ~@3 f#4 ~@2 f#4@2 ~@2", // B5
  L: "f#4@2 ~@2 f#4@2 ~@3 f#4 ~@2 f#4@2 [f#4,c#5] ~@2 f#4 ~@2 f#4 ~@3", M: "~@21 f#4 [e4,f4] d#4",
})).s("gm_electric_guitar_jazz").gain(0.15)

// other · electric guitar muted
const electric_guitar_muted = note("<~@25 A@4 ~@52>".pickRestart({
  A: "[~@2 b3!2 ~ b3 b3@2 b3 ~@2 b3 b3@2 b3 ~@2 b3!2 ~ b3 a3@6 b3 ~ b3 b3@2 b3 a3 ~ b3@2 ~@2 b3 ~ b3 ~@2 b3 a3@6 b3 ~ b3 b3@2 ~ b3 ~ b3 ~@2 b3!2 ~ b3 ~@9 b3 ~ b3 b3@2 b3 a3 ~ b3@2 ~ b3!2 ~ b3 ~@2 b3 a3@3, ~@34 b3 ~@13, ~@23 a3@3 ~@6]/4",
})).s("gm_electric_guitar_muted").gain(0.25)

// bass · electric bass finger
const bass = note(`<
  ~@4 A B C D E F G H I J K L M F G H N O P Q ~@5 R S T U V W Q M F G H N O P Q ~@12 X Y ~@6 Z M F S H AA AB AC Q ~@8
>`.pickRestart({
  A: "~@5 c2@3", B: "b1@4 ~ b1 ~@3 b1 ~@4 f#1 b1@2 ~@3 b1 f#1@3",
  C: "g1@4 ~ g1 ~@5 d2 g2@2 ~ g1@3 ~@2 g1 f#1@3, ~@7 d2 ~@4", D: "e1@3 ~@2 e1@2 ~@4 e1 g1@4 ~ g1@2 ~@4 e1",
  E: "a1@4 ~ a1 ~@5 e1 a1@2 ~ c2@9", F: "b1@4 ~ b1 ~@3 b1 ~@5 b1@2 ~@3 b1 f#1@3", G: "g1@4 ~ g1 ~@5 d2 f#2@5 d2 g1@6",
  H: "e1@4 ~ e1 ~@5 e1 g1@4 ~ g1 ~@5 g1", I: "a1@4 ~ a1 ~@5 g1 a1@6 d2@5 ~",
  J: "g1@4 ~ g1 ~@5 g1 ~@2 e1 g1 ~@5 d2@3, ~@10 g2 ~", K: "a1@4 ~ a1@2 ~@4 e2 a2 ~@2 a2@5 a2 e2@3",
  L: "d#2@10 ~ d#2 e2@12", M: "a1@5 c2@3", N: "a1@4 ~ a1 ~@5 d2 g2@5 e2 c2@6",
  O: "g1@4 ~ g1 ~@5 g1 ~@2 e1 g1 ~@5 g1 g#1@2", P: "a1@4 ~ a1@2 ~@4 a1 ~@3 a1@9", Q: "d#2 e2",
  R: "b1@4 ~ b1 ~@3 b1 ~@4 a1 b1@2 ~@3 b1 f#1@3", S: "g1@4 ~ g1 ~@3 g1 ~@4 d2 f#2@5 d2 g1@3",
  T: "e1@4 ~ e1 ~@5 e1 g1@4 ~ g2 ~@2 e1 g1@2 g#1", U: "a1@4 ~ a1 ~@5 g1 a1@3 c2@2 c#2 d2@5 ~",
  V: "g1@4 ~ g1 ~@5 d2 g2 ~@2 g2@5 d2 g#1@3", W: "a1@4 ~ a1@2 ~@4 a1!2 ~@2 a1@9", X: "f#1@17 ~ f#2@6", Y: "f#2@3 ~",
  Z: "~ e2", AA: "a1@5 ~ a2 ~ a2 ~@2 e2 a2@2 a2@2 ~ a1 c2@6, ~@5 e2@2 ~@17",
  AB: "g1@3 ~@2 g1 ~@5 g1 ~@2 e1 g1 ~@5 d2 g#1@2, ~@10 g2 ~", AC: "a1@4 ~ a1@2 ~@4 e2 a2 ~@2 a2@9",
})).s("gm_electric_bass_finger").gain(0.35)

// bass · slap bass 2
const bass_2 = note("<~@25 A@2 B@2 ~@16 A@2 B@2 C D E@2 F G H ~@2 I J K L M N ~@17>".pickRestart({
  A: "[b1@4 ~ b2 ~@5 a1@3 b2 b1 ~@4 b1 ~@2 a1@6 a2 ~@5 b2@4 ~@2 c#3@6 ~]/2",
  B: "[b1@5 b2 ~@5 b1@3 b2 b1 ~@4 b1 ~@2 a1@6 a1 ~@5 c#3@5 ~ d3@6 ~]/2", C: "e1@5 e1 ~@5 e1 ~@3 e1@2 ~@3 e1 ~@3",
  D: "g1@5 g2 ~@2 e1 f#1@2 g1 ~@2 g1!2 ~@4 g1 ~@2 f1",
  E: "[g1@5 g2 ~@5 g1 ~@2 g1!2 ~@4 g1 ~@3 g1@5 g2 ~@3 g1 ~@4 g1!2 ~@2 c3@6, ~@23 e1@2 ~@23]/2",
  F: "a1@5 a2 ~@4 a1 ~@3 a1 a1@2 ~@3 a1 ~@2 a1", G: "c2@5 c3 ~@5 c2 ~@2 c2 c2@2 ~@3 c2@2 ~ c2",
  H: "g1@5 g2 ~@3 g1 ~@4 g1 g1@2 ~@3 g1 ~@3", I: "b1@5 b2 ~@3 a1 ~@2 b1 ~ b1 ~@3 b2@6",
  J: "g1@4 ~ g1 ~@3 d2 ~@2 e2 ~ e2 ~@3 a2@6", K: "e1@3 ~@2 e1 ~@5 e1 g1@4 ~ g1 ~@3 g1 ~@2",
  L: "a1@5 e2 ~@8 d2 ~@3 c2@5 ~", M: "g1@4 ~ g1 ~@5 f2@3 g1 g1@3 ~@2 g1 ~@2 g1", N: "a1@5 a2 ~@5 a2 ~@3 a2 ~@4 a1@4",
})).s("gm_slap_bass_2").gain(0.35)

// chords · epiano1 · "Seq by Dave de Jong"
const epiano1 = note(`<
  ~@4 A B C D E B F G H I J K L M N G H O P K Q R@2 S@2 B F G H I J K L M N G H O P K T R@2 S@2 U V W@4 X Y@2 Z AA AB AC
  AD@2 AE AF M N G H O P AG AH@2 ~@6
>`.pickRestart({
  A: "~@5 [c2,c3,a4,b4,d5,a5]@3", B: "[b2,b3,a4,b4,d5,f#5]", C: "~ d5@23, [g2,g3,g4,b4]",
  D: "[e2,e3,a4,b4,d5,f#5] [g2,g3,g4,b4,d5]", E: "[a2,a3,g4,b4,d5,e5]@14 ~ [c2,c3,a4,b4,d5,a5]@9",
  F: "[g2,g3,g4,b4,d5]", G: "[e2,e3,d4,f#4,a4,b4] [g2,g3,b3,d4,g4,b4]", H: "[a2,a3,d4,e4,g4,b4]@3 [d3,f4,a4,c5,e5]",
  I: "[g2,g3,g4,a#4,d5]", J: "c5@5 ~ c5@2, [a2,a3,g4,a4,e5], ~@18 b4 ~@5",
  K: "[d#3,d#4,g4,a#4,d5,f5] [e3,e4,g4,c5,d5,g5]", L: "[a2,a3,g4,b4,d5,e5]@5 [c3,d4,a4,b4,d5,e5,a5]@3",
  M: "~@3 e4, [b2,b3,a4,b4,d5,f#5]", N: "d5@3 d5, [g2,g3,g4,b4,a5]", O: "~@3 a5, [g2,g3,g4,a#4,d5]",
  P: "c5@17 ~ c5@6, [a2,a3,a4,e5,g5]", // A7
  Q: "~@16 [g2,a2] ~@5 [c3,c#3]@2, [a#3,f4,a4,a#4,d5], a#2@15 [c2,c#2] [d#2,f2]@3 [g#2,a2]@4 ~, ~@15 f#2@7 ~@2, ~@15 [d2,e2]@3 g2@2 [a#2,b2]@4", // Gsus2 C#maj7 A#maj7 C#maj7 D#sus2 Amaj7 Dsus2 Bmaj7
  R: "[[b2,b3,d4,f#4]@24 e4@17 ~ e4@6, a3, ~ [a2,c#4]]/2", // Bm A
  S: "[~@3 f#5 [a2,a3,b3,e4,g4,e5]@4, c#4, [b2,a3,b3,f#4] ~]/2", T: "[a#2,a#3,f4,a4,a#4,d5]",
  U: "e5@2 c#5 ~@2 b4 ~@3 [b4,b5]@3 ~@3 g5 f#5@2 e5 ~@2 f#5@2 ~", V: "e5@3 f#5@2 ~@19",
  W: "[~@6 g5@2 f#5 ~@3 e5@4 f#5 ~@3 c5 ~@3 e5@3 c5 ~ d5@2 ~@5 a5@3 g5@2 ~ e5@2 ~ c#5@2 ~ c#5@4 ~@2 [f#4,f#5]@9 ~@4 a4 ~@4 g4@3 ~@11 d5 [b4,f#5,g5] ~@2 [a4,f#5]@2 ~ [g4,e5]@2 b4, ~@23 f5@2 ~@11 g#5 ~@4 f5@2 ~ d5@2 ~ e5@2 ~@17 b4@2 ~@3 b4@2 ~@23]/4", // F# Gmaj7 D C
  X: "[f#4,d5]@2 [g4,e5]@2 ~@2 b4@3 a4 ~ b4 ~@3 b4@2 ~@6 a#5", // D C
  Y: "[a5@2 ~ a5@6 ~@3 f#5@2 ~ f#5@19 ~ [d5,e5] g5@2 f#5 d5@2 a4 a#4@2 a4 g4@2 e4, ~@2 a#5@2 ~@7 g5@2 ~ g5@2 ~@26 a4 ~@5]/2", // Dsus2
  Z: "f#4@2 c#5@2 ~@5 c#5@9 ~@3 c#5 ~ d5, ~@10 b4 ~",
  AA: "f#5@5 b4 ~@3 [g4,e5]@3 [f#4,d5]@7 ~@2 c5@2 a4, f5 ~@19 d#5@2 ~@2", // C D
  AB: "c#5@2 ~ b4 ~@7 e4 a4@4 g#4 g4 f#4@3 d4@2 b3, ~ d5 ~@10",
  AC: "~@2 e4 ~@2 d4 b4 ~ c#5@2 ~ d4 d5@2 e5@2 ~ d4 e5@2 f5 ~ c5 a#4",
  AD: "[a4@6 a5@5 g5 ~@7 f5@2 e5@2 ~ e5@2 ~ c5@2 ~ f4@3 g4 ~ e4 ~@9 [g#5,a5] ~@2, ~@6 g#5 ~@11 e5@2 ~@3 d5@2 ~ f5@2 ~@20]/2", // Amaj7
  AE: "g5@5 f5 ~@5 c5 ~@2 f5 ~@2 d5 c5 ~ g#4 g4@2 f4, ~@2 e5 ~",
  AF: "e4@3 ~@2 a4@9 ~ a4 a#4@2 a4@3 g4@3, ~@5 a3@19, ~@5 e4@13 e4@6",
  AG: "[d#3,d#4,g4,a#4,d5,f5]@12 ~@6 g5@5 [d#5,f5], ~ [e3,e4,g4,c5,d5]", AH: "[[g#3,f4,g#4,d5]@9 ~@7]/2",
})).s("gm_epiano1").gain(0.22)

// other · synth brass 2
const synth_brass_2 = note("<~@38 [b4 a4 b4 a4 ~ a4 b4 a4 b4 a4 ~ a4 b4 a4 b4 a4 ~ a4 ~ a4 b4 ~@3] ~@42>")
  .s("gm_synth_brass_2").gain(0.3)

// other · synth brass 2 · soft notes
const synth_brass_2_soft = note("<~@38 [~@4 f#4 ~@5 f#4 ~@5 f#4 ~ b4 ~@2 a4 f#4 ~] ~@42>")
  .s("gm_synth_brass_2").gain(0.2)

// other · synth brass 1
const synth_brass_1 = note("<~@39 A B C@3 D E@2 F G ~@32>".pickRestart({
  A: "~@3 a5, [f#4,b4,d5]", B: "[g4,b4,d5,e5]", C: "[~@22 a5 a#5 b5@6 [e4,g4,e5,d6]@42, [d5,d6]@31 ~@41]/3",
  D: "~@21 d5 e5 f#5, [e4,g4,a4]", // A7
  E: "[a5@9 e5 d5 c#5@9 a4 f#4 ~ b4@5 a4 f#4 e4@11 a4 f4 e4 d4 e4@2 ~, ~@23 a#4 ~@24]/2",
  F: "~@15 e4 f#4 b4 a4 b4 f#4 e4 a4 b4",
  G: "f#4 e4 a4 b4 f#4 e4 a4 f#4 e4 c#4 f#4 e4 c#4 b3 e4 c#4 b3 g3 b3 a3 f#3 e3 f#3 d3",
})).s("gm_synth_brass_1").gain(0.3)

// chords · synth strings 2
const synth_strings_2 = note("<~@49 A B C D E F C G@2 ~@16 H@7>".pickRestart({
  A: "[g#3,b3,c#4,e4]", B: "[g3,b3,d4,e4]", C: "[g3,b3,c#4,f#4]", D: "[f3,g3,a#3,d4]", E: "~@5 c#5@3, [g#3,b3,c#4,e4]",
  F: "[g3,b3,d4,e4,d5]", G: "[[f#3,a#3,c#4,f#4]@43 ~@5]/2",
  H: "[~@4 [g3,b3,g4]@15 [f#3,a#3,d4,f#4]@15 ~ [f3,a3,d4,e4,g4]@39 ~@7 [a3,b3,d4,f#4]@77 ~@10, ~@3 d4@15 ~@63 f#3@62 ~@25, ~@81 c#3@55 ~@32, ~@81 b2@41 ~@46]/7", // G F#aug Dm Bm7
})).s("gm_synth_strings_2").gain(0.2)

// chords · piano
const piano = note("<~@58 A B C D E F G H ~@15>".pickRestart({
  A: "[b2,b3,a4,b4,d5,f#5]", B: "[g2,g3,g4,b4,d5]", C: "[e2,e3,d4,f#4,a4,b4] [g2,g3,b3,d4,g4,b4]",
  D: "[a2,a3,d4,e4,g4,b4]@3 [d3,f4,a4,c5,e5]", E: "[g2,g3,g4,a#4,d5]", F: "c5@5 ~ c5@2, [a2,a3,g4,a4,e5], ~@18 b4 ~@5",
  G: "[d#3,d#4,g4,a#4,d5,f5] [e3,e4,g4,c5,d5,g5]", H: "[a2,a3,g4,b4,d5,e5]@5 [c3,d4,a4,b4,d5,e5]@3",
})).s("gm_piano").gain(0.3)

// other · string ensemble 1
const string_ensemble_1 = note("<~@54 A B C D ~@21 E@2>".pickRestart({
  A: "~@11 g4, ~@10 b3 ~, ~@21 d4@2 ~", B: "f#4 a4 b4 d5", C: "f#5 g5 f#5 ~ f#5@16 ~ b4 [g4,a4] f#4, ~@3 e5@2 ~@19",
  D: "g4 f#4 e4 f#4@20 ~", E: "[~@4 a4@35 ~@9]/2",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@77 A@4>".pickRestart({
  A: "[~@43 b4@44 ~@9, ~@3 [f#3,a3,b3]@26 ~@3, ~@10 c#4@77 ~@9, ~@4 f#4@7 ~]/4", // B7
})).s("gm_string_ensemble_1").gain(0.1)

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

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@3 A ~ B ~@2 C B ~@2 C D ~@2 C B ~@2 C D ~@2 C D ~@2 C B ~@2 C D ~@2 C B ~@2 C D ~@2 C D ~@2 C ~@9 B ~@2 C D ~@2 C B
  ~@2 C D ~@2 C ~@7
>`.pickRestart({
  A: "~@7 x ~@4", B: "~ x", C: "~ x ~@10", D: "~ x ~@4 x ~@5",
})).gain(0.05)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B C D E F G H I J G K L J M N I J O K P J M N P J M Q I J G K L J M N I J O K P J M R S T U Q ~@4 V W V X V I J G
  K L J M Y I J O Z S J M AA ~@7
>`.pickRestart({
  A: "~@2 x!3 ~ x!2", B: "x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~ x", C: "x!5 ~ x!2",
  D: "x ~ x!2 ~@2 x ~@2 x ~@2 x!2 ~ x!8 ~", E: "~@6 x ~@5 x ~@5 x ~ x!2 ~@2",
  F: "x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~ x!2 ~@2", G: "x ~ x!2 ~@2 x ~@5 x ~@5 x ~@2 x ~ x", H: "x!2 ~@2",
  I: "~@2 x ~ x ~ x!2", J: "x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~ x!2 ~ x", K: "x!3 ~ x!4",
  L: "x ~@2 x ~@2 x ~@5 x ~ x!2 ~@2 x ~@2 x ~@2", M: "x ~ x!2 ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~ x", N: "x!3 ~@2 x!3",
  O: "x ~ x!2 ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x", P: "x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~ x", Q: "x!3 ~@2 x ~@2",
  R: "x!3 ~@2 x ~ x", S: "~@3 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~ x", T: "x!3 ~ x ~ x ~",
  U: "x ~ x!2 ~@2 x ~@5 x ~@5 x ~@3 x ~", V: "~ x ~@2", W: "~@5 x ~@2", X: "~ x ~ x", Y: "x ~@2 x ~@2 x ~@4 x!3 ~@10",
  Z: "x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x!2 ~", AA: "x ~@2 x ~@2 x ~@6 x ~@10",
})).gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
// … 50 more lines

More by Incognito