Strudelify
Dose cover art

1995 · Short Bus

Dose

Filter

KeyG majorTempo158 bpm
0:00/0:00
// Dose — Filter
// 158 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 1 electric bass pick (copy of ch 4 synth bass 1); ch 5 overdriven guitar (copy of ch 3 distortion guitar); ch 13 distortion guitar (copy of ch 9 distortion guitar)
// note: Full arrangement: all 147 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(158/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, A@4 for four bars: edit a riff to change every repeat.

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@17 A ~ A ~ A B A ~ A ~ A ~ A ~ A ~@83
>`.pickRestart({
  A: "~@2 [d3,f#3] [d#3,g3]", B: "d3 ~@3, f#3 ~@7",
})).s("gm_distortion_guitar").gain(0.36)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  A B C B C B C B D E F G F E H@2 F I J I J I J I J I J I J I J I J K L M N K L O N P@2 Q R S R T U I V I V I J I J I J
  I J I J I J K L W N K L M N P@2 Q R M X Y R P Z P ~ P ~ P AA AB AC AD AC AB AC AB AC AB AC AB AC AB AC AB AE E F E F E
  F E F E F E F E F E F AF L S N K AG AH N P@2 Q R AI R S R P@2 Q R O R AJ R AK ~
>`.pickRestart({
  A: "~@7 e2", B: "d3 e3!7", C: "e3!7 e2", D: "e3 [c3,g3,c4]!7", E: "[d2,a2,d3]!4 [g#2,d#3,g#3]!3 [g2,d3,g3]",
  F: "[g2,d3,g3]!2 [f#2,c#3,f#3]!3 [f2,c3,f3]!3", G: "[d2,d3]!4 [g#2,d#3,g#3]!3 [g2,d3,g3]",
  H: "[[g2,d3,g3]!2 [f#2,c#3,f#3]!3 [f2,c3,f3]!2 ~ [d2,a2,d3]!4 [g#2,d#3,g#3]!3 [g2,d3,g3], ~@14 [f2,c3,f3]@9 ~@9]/2", // G5 F#5 F5 D5 G#5 G5 F5
  I: "[d2,a2,d3]!6 [d#2,a#2,d#3]!2", J: "[d2,a2,d3] [g#2,d#3,g#3]!7", K: "[c3,g3,c4] [d3,a3,d4]!7",
  L: "[c#3,g#3,c#4]!3 [c3,g3,c4]!2 [d2,d3] [f2,c3,f3] [d2,d3]", // C#5 C5 D F5 D
  M: "[f2,c3,f3]@2 d2@2 [d3,a3,d4]@2 [d2,d3]!2, ~@2 d3 ~@5", // F5 D5 D
  N: "[f2,c3,f3] [d2,d3]!2 [f2,c3,f3] [d2,d3]!2 [f2,c3,f3] [d2,d3]", // F5 D F5 D F5 D
  O: "[f2,c3,f3]@2 [d2,d3]@2 d3@2 [d2,d3]!2, ~ [a3,d4]", P: "[c3,g3,c4]!8", Q: "[a2,e3,a3]!8",
  R: "[g#2,d#3,g#3]!3 [g2,d3,g3]!2 [d2,d3] [f2,c3,f3] [d2,d3]", S: "[f2,c3,f3]@2 [d2,d3] ~ d3@2 [d2,d3]!2, ~ [a3,d4]",
  T: "[f2,c3,f3]@2 [d2,d3]@2 [d3,a3,d4]@2 [d3,d4]!2, ~@3 a3", U: "[g#2,d#3,g#3]!3 [g2,d3,g3]!3 [f2,c3,f3]!2",
  V: "[d2,a2,d3] [g#2,a2,d#3,g#3] [g#2,d#3,g#3]!6", W: "[f2,f3]@2 d2@2 [d3,a3,d4]@2 [d2,d3]!2, c3 ~ d3 ~@5",
  X: "[a2,e3,g#3] [g#2,d#3,g#3]!2 [g2,d3,g3]!2 [d2,d3] [f2,c3,f3] [d2,d3]", // Amaj7 G#5 G5 D F5 D
  Y: "[f2,c3,f3]@2 d2@2 d3@2 [d2,d3]!2, ~@4 d3@2 ~@2 [a3,d4]@7 ~", Z: "~@7 c3", AA: "[c3,g3,c4]!7 d2",
  AB: "[e2,b2,e3]!8", AC: "[e2,b2,e3]!7 [d2,a2,d3]", AD: "[e2,b2]!2 [e2,b2,e3]!6, e3 ~@3",
  AE: "[e2,b2,e3] [c3,g3,c4]!7", AF: "[d2,c3,g3,c4] [d3,a3,d4]!7",
  AG: "[c#3,g#3,c#4]!3 [c3,g3,c4]!2 [d2,e2,d3] [f2,c3,f3] [d2,d3]", // C#5 C5 Dsus2 F5 D
  AH: "[f2,f3]@2 [d2,d3] ~ [d3,a3,d4]@2 [d2,d3]!2, c3 ~@7", AI: "[f2,c3,f3]@2 [d2,d3]@2 [d3,a3,d4]@2 [d2,d3]!2",
  AJ: "[f2,c3,f3]@2 d3@2 d3@2 [d2,d3]!2, ~@4 d2@2 ~@2 [a3,d4]@7 ~", AK: "[d2,a2,d3,a3,d4]!8, [g3,c4]@15 ~",
})).s("gm_distortion_guitar").gain(0.26).pan(1)

// bass · synth bass 1
const bass = note(`<
  A B C B C B C B D E F E F E F E F G H G H G H G H G H G H G H G H I J K L I J M L N@2 O P Q P Q R S H G H G H G T@2 H
  G H G H G H I J K L I J M L N@2 O P Q P U@2 N ~ N ~ N ~ N V W X W X W X W X W X W X W X W Y E F E F E F E F E F Z@2 E
  AA@2 F I J AB L I J AB L N@2 O P AC P AD P N@2 O P AD P AE P AF ~
>`.pickRestart({
  A: "~@7 e1", B: "d2 e2!7", C: "e2!7 e1", D: "e2 c2!7", E: "d1!4 g#1!3 g1", F: "g1!2 f#1!3 f1!3", G: "d1!6 d#1!2",
  H: "d1 g#1!7", I: "c2 d2!7", J: "c#2!3 c2!2 d1 f1 d1", K: "f1@2 d1@2 d1!4", L: "f1 d1!2 f1 d1!2 f1 d1",
  M: "f1@2 d1!6", N: "c2!8", O: "a1!8", P: "g#1!3 g1!2 d1 f1 d1", Q: "f1 ~ d1@2 d2@2 d1!2", R: "g#1!3 g1!3 f1!2",
  S: "d1!6 d#1@2", T: "[d1 g#1!6 ~ d1!6 d#1!2, ~@7 g#1@2 ~@7]/2",
  U: "[f1 ~ d1@2 d2@2 d1 ~ g#1!3 g1!2 d1 f1 d1, ~@7 d1@4 ~@5]/2", V: "c2!7 d1", W: "e1!8", X: "e1!7 d1", Y: "e1 c2!7",
  Z: "[d1!4 g#1!2 ~ g1 g1!2 f#1!3 f1!3, ~@12 g#1@7 ~@13]/2", AA: "[g1!2 f#1!3 f1!2 ~ d1!4 g#1!3 g1, ~@14 f1@9 ~@9]/2",
  AB: "f1@2 d1@2 ~@2 d1!2, ~ d2", AC: "f1@2 d1@2 d2@2 d1!2", AD: "f1 ~ d1 ~ d2@2 d1!2", AE: "f1@2 d1 ~ d2@2 d1!2",
  AF: "d1!8",
})).s("gm_synth_bass_1").gain(0.36).pan(0)

// chords · overdriven guitar
const overdriven_guitar = note("<~ A@6 B ~ C@8 ~@36 A@2 D@2 ~@25 E ~ F ~ G ~@2 A@14 H@2 C@14 I@2 ~@26>".pickRestart({
  A: "[b6 [g4,g5]@7]/2", B: "b6 [g4,g5]@3", C: "[a5@31 ~]/2", D: "[b6@4 [g4,g5]@27 ~]/2",
  E: "b6@2 [c4,f4] ~ [c4,c#4,f4] ~ [c4,c#4,f4]@2 b6@2 [c#4,f4] ~ [c4,c#4,f4] ~ [c4,c#4,f4] ~", // F5 C#maj7 C# C#maj7
  F: "b6@2 [c4,d4,f4] ~ [c4,d4,f4] ~ [c4,d4,f4] ~ b6@2 [c4,d4,f4] ~ [c4,d4,f4] ~ [c4,d4,f4] ~", // Dm7
  G: "b6@2 [c4,d4,f4] ~ [c4,d4,f4] ~ [c4,d4,f4]@2 b6@2 [c4,d4,f4] ~ [c4,d4,f4] ~ [c4,d4,f4]@2", // Dm7
  H: "[b6@4 [g4,g5]@17 ~@11]/2", I: "[a5@29 ~@3]/2",
})).s("gm_overdriven_guitar").gain(0.32).pan(1)

// chords · overdriven guitar · soft notes · Dmaj7
const overdriven_guitar_soft = note("<~@53 [~@5 a4 ~@10] ~@28 [~@3 [c#4,d4] d4 ~@5 c4 ~@5] ~@26 [~ c6 ~@14] ~@37>")
  .s("gm_overdriven_guitar").gain(0.16).pan(1)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@5 A B C D E ~@23 F@8 G H G@2 ~@20 F@8 G@4 ~@4 I ~ I ~ I ~ I J K L M N K O P N K N Q R S T U@2 V@8 W@2 X@2 Y@2 Z@2 AA
  G@7 AB@2 AC AD AE@4 AF@2 AC AG AH@4 AI ~
>`.pickRestart({
  A: "[d1,d2,d3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~", // D E
  B: "[e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~", // E
  C: "[d1,d2,d3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ [e1,e2,e3] ~ e3 [e1,e2]", // D E
  D: "[e1,e2,e3] ~ [c2,c5] g4 [c2,c4,g4,c5] ~ [c2,c4,g4,c5] ~ [c2,c4,g4,c5] ~ [c2,c4,g4,c5] ~ [c2,c4,g4,c5] ~ [c2,c4,g4,c5] ~", // E C C5
  E: "~ [d2,d4,a4,d5]@8 ~@7, ~ c#5 ~@14", // D5
  F: "[d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~ d6 ~, d5]/8", G: "d6 ~ d6 ~",
  H: "d6@4 ~@5 d6@4 ~@3",
  I: "[c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~", // C
  J: "[c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c2,c3,c4,c5] ~ [c4,c5] [c2,c3] [c3,c4,c5] ~ [c4,c5] ~, ~@6 c2 ~", // C
  K: "[e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~", // E
  L: "[e1,e2,e4] ~ [e1,e2,e4] ~ [e2,e4] e1 [e2,e4] e1 [e1,e2,e4] ~ [e1,e2,e4] ~ [e2,e4] e1 d4 [d1,d2]", // E D
  M: "[e1,e2,e4] ~ e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] [e1,e2,e4] ~ [e2,e4] e1 e4 [e1,e2]", // E
  N: "[e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [d1,d2,d4] ~", // E D
  O: "[e2,e4] e1 [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ e4 [e1,e2] [e1,e2,e4] ~ [d1,d2,d4] ~", // E D
  P: "[e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ e4 [e1,e2] e4 [e1,e2] [e2,e4] e1 e4 [e1,e2]", // E
  Q: "[e1,e2,e4] ~ e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] ~ [e1,e2,e4]", // E
  R: "e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 ~ e4 [e1,e2] d4 [d1,d2]", // E D
  S: "e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2]", // E
  T: "e4 [e1,e2] e4 [e1,e2] [e2,e4] e1 e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] [e2,e4] e1 d4 [d1,c#2,d2]", // E Dmaj7
  U: "[[e1,e2,e4] ~ e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 e1 e4 ~ [c2,c5] ~ [c2,c5] ~ [c2,c5] ~ [c2,c5] ~ [c2,c5] ~ c5 c2 [c2,c5] ~, ~@15 e2@2 ~@15]/2", // E C
  V: "[d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@5 d6@3 ~@5 d6@4 ~@3 d6@4 ~@4 d6@4 ~@5 d6@3 ~@5 d6@4 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4, d5]/8",
  W: "[[d1,d2,d6]@4 ~@4 [g#1,g#2,d6]@5 ~@2 g1@7 ~ f#2 ~@3 [f1,f2]@4 ~, ~@14 g2@7 ~@11]/2", // D G#dim F
  X: "[[d1,d2]@5 ~@3 [g#1,g#2]@5 ~ [g1,g2]@5 ~ [f#1,f#2]@4 ~@2 f2@4 ~@2, ~@25 f1@4 ~@3]/2", // D G# G F#
  Y: "[[d1,d2,d3]@7 ~ [g#1,g#3]@5 ~ [g1,g3]@5 ~ [f#1,f#3]@5 ~ f1@6, ~@13 f3@2 ~]/2", // D G# G F#
  Z: "[[d1,d2,d4]@7 ~ [g#1,g#4]@5 ~ [g1,g4]@5 ~ [f#1,f#4]@5 ~ f1@4 ~@2]/2", AA: "~@2 d6 ~",
  AB: "[~ c5@3 ~ [e5,g5]@27, d6@4 ~ g#5 ~@26, ~ c6@31, ~ [c2,c3]@27 ~@4]/2", AC: "[a1,a2]@13 ~@3, a5",
  AD: "[g#1,g#2,g#5]@5 ~ [g1,g2]@4 ~@2 [f1,f2] ~ [d1,d2] ~, ~@3 g5@3 f5 d5", // G# G F D
  AE: "[[f1,f5]@4 d1@4 d6@5 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@5 d6@7, ~ d5@15, ~@4 d2@7 ~@21]/4", // F
  AF: "[[c2,c3]@29 ~@3, c6]/2", AG: "[g#1,g#2,g#5]@6 [g1,g2]@3 ~@2 f1 f5@2 [d1,d2] ~, ~@6 g5@5 f2@2 ~ d5@2",
  AH: "[f5@4 ~@4 d6@20 ~@4 d6@4 ~@4 d6@4 ~@4 d6@5 ~@3 d6@7 ~, f1@2 ~@2 d5@59 ~, ~@2 d1@7 ~@23, ~@8 d2@17 ~@39]/4",
  AI: "[d1,d2,d5,d6] ~ [d1,d2,d5,d6] ~ [d1,d2,d5,d6] ~ [d1,d2,d5,d6] ~ [d1,d2,d5,d6] ~ [d1,d2,d5,d6] ~ [d1,d2,d5,d6] ~ [d1,d2,d5,d6]@2", // D
})).s("gm_string_ensemble_1").gain(0.48)

// chords · distortion guitar
const distortion_guitar_3 = note(`<
  ~ A@2 B@4 C@2 ~@2 D@2 ~@2 E@2 ~@36 F@4 ~@25 G ~ H ~ I ~@2 F@4 J@10 K@2 D@2 L@4 M@2 N@8 ~@26
>`.pickRestart({
  A: "[~ [g4,g5]@7]/2", B: "[~@4 [g4,g5]@27 ~]/2", C: "[~@2 [g4,g5]@7 ~@7]/2", D: "g4/2", E: "[g4@29 ~@3]/2",
  F: "[b5@4 g5@27 ~]/2",
  G: "~@2 [c4,c5,d5] ~ [c4,d4,f4,c5,d5,f5] ~ [c4,d4,f4,c5,d5,f5] ~@3 c5 ~ [c4,d4,f4,c5,d5,f5] ~ [c4,d4,f4,c5,d5,f5] ~", // Csus2 Dm7
  H: "~@2 [c4,d4,f4,c5,d5,f5] ~ [d4,f4,c5,d5,f5] ~ [c4,d4,f4,c5,d5,f5] ~@3 [c4,f4,c5,f5] ~ [c4,d4,f4,c5,d5,f5] ~ [c4,d4,f4,c5,d5,f5] ~", // Dm7 F5 Dm7
  I: "~@2 [c4,f4,c5] ~ [c4,d4,f4,c5,d5,f5] ~ [c4,d4,f4,c5,d5,f5] ~@3 [c5,d5,f5] f4 [c4,d4,f4,c5,d5,f5] ~ [c4,d4,f4,c5,d5,f5] ~", // F5 Dm7
  J: "[b5@4 g5@25 ~@3]/2", K: "[b5 g5@5 ~@2]/2", L: "[[g4,g5]@31 ~]/2", M: "[g5@15 ~, g4@13 ~@3]/2", N: "[g5@15 ~]/2",
})).s("gm_distortion_guitar").gain(0.29).pan(0)

// chords · distortion guitar · soft notes · Dm Dm7 D Dm
const distortion_guitar_soft = note(`<
  ~@82
  [~@2 [d4,f4,f5] ~@7 [c4,f4,d5,f5] ~@5]
  ~
  [~@4 c4 ~@5 [d4,d5] ~@5]
  ~
  [~@2 [d5,f5] d4 ~@7 d4 ~@4]
  ~@60
>`).s("gm_distortion_guitar").gain(0.16).pan(0)

// other · distortion guitar
const distortion_guitar_4 = note(`<
  ~@4 A@2 B@2 ~@2 C@2 ~@2 D@2 E@2 F G H@2 I J K@2 L M N@2 O M P@2 Q R S T@2 R S U V W@2 X Y@7 ~ A@2 Z@2 AA@2 AB@2 AC@2
  AD@2 Q R AE T@2 R AF@2 AG AH@2 X AI@5 ~@2 AJ ~ AK ~@10 AL AM AN@7 ~@14 AO@2 R S T@2 AP AQ U AG AH@2 X AR@7 AS AT@5
>`.pickRestart({
  A: "[~@4 b4@27 ~]/2", B: "[~@4 d5@27 ~]/2", C: "g4/2", D: "a4/2", E: "[g5@13 ~@3]/2", F: "d5@7 ~ c5@6 ~@2",
  G: "c5@7 ~ a4@6 ~@2", H: "[d5@8 c5@3 ~ a4@14 ~@2 a4@3 ~]/2", I: "d5@7 ~ c5@3 ~ c5@2 ~@2",
  J: "c5@6 ~@2 a4@2 ~@2 a4@3 ~", K: "[d5@7 ~ c5@3 ~ a4@10 ~@6 a4@3 ~]/2", L: "d5@8 ~ c5@3 ~@4",
  M: "c5@8 a4@2 ~@2 a4@3 ~", N: "[d5@8 c5 ~@3 c5@8 a4@4 ~@4 a4@3 ~]/2", O: "d5@8 ~ c5@2 ~ c5@2 ~@2",
  P: "[d5@8 c5@3 ~ a4@16 ~@4]/2", Q: "d5@7 ~", R: "f5@3 ~ f5@3 ~ f5@3 ~ f5@2 ~@2", S: "f5@3 ~@5 d5@5 ~@3",
  T: "[d5@6 ~@8 d5@17 ~]/2", U: "d5 ~", V: "~@5 c5@2 ~", W: "[c5@5 ~ c5@4 ~@2 a4@16 ~@4]/2",
  X: "g#4@5 ~ g4@4 ~@2 f4@2 ~@2", Y: "[f4@4 ~@4 a6@40 d6@3 ~ d6@3 ~ f6@53 ~@3]/7", Z: "[~@5 b4@19 ~@8]/2",
  AA: "[d5@4 d5@2 ~@2 d5@3 ~ c5 ~@2 d5@4 ~ c5@4 ~@8]/2", AB: "[d5@4 d5@2 ~@2 d5@3 ~ c5 ~ d5@5 ~@13]/2",
  AC: "[f5@3 ~ f5@3 ~ f5@3 ~@3 f5@4 ~@2 d5@3 ~@5 d5 ~ d5 ~]/2", AD: "[d5@7 ~ d5@4 ~@3 d5@6 ~@11]/2",
  AE: "f5@5 ~@3 d5@6 ~@2", AF: "[g5@6 ~ d5@8 ~]/2", AG: "~@5 d5@2 ~", AH: "[d5@5 ~ c5@4 ~@2 a4@17 ~@3]/2",
  AI: "[f4@4 ~@4 a6@40 d6@2 ~@2 d6@4 f6@19 ~@5]/5", AJ: "d7@3 ~@13", AK: "~@8 d7@3 ~@5", AL: "~ b5@8 a#5@7",
  AM: "a5@8 g5@2 ~@5 d5", AN: "[~ g5@2 ~ g5@8 ~@64 b5@2 ~@2 b5@2 ~@2 b5@2 ~@2 b5@2 ~@2 b5@7 ~@13, ~@6 e5@37 ~@13]/7",
  AO: "[~@14 d5@17 ~]/2", AP: "f5@3 ~ f5@3 ~ f5@2 ~@2 f5@2 ~@2", AQ: "f5@4 ~@4 d5@5 ~@3, ~@8 c#5 ~@7",
  AR: "[f4@4 ~@44 d6@3 ~@5 f6@17 ~@5 d5@8 c5@6 a4@18 ~@2, ~@4 a6@33 ~@19, ~@52 d6@27 ~@33]/7", AS: "g#4@3 g4@3 f4 ~",
  AT: "[f4@4 ~@4 a6@40 d6@3 ~ d6@4 f6@22 ~@2]/5",
})).s("gm_distortion_guitar").gain(0.12).pan(0)

// other · distortion guitar · soft notes
const distortion_guitar_soft_2 = note(`<
  ~@2 A@2 ~@4 B@2 ~@2 C@2 ~@12 D ~@6 E ~ F ~@3 F ~@6 G ~@15 H ~ I J ~ F ~@4 K ~@4 L G ~@4 M ~ N ~ O ~@11 P ~@23 F ~ Q ~
  F R ~@4 L G ~@6 S G ~@4
>`.pickRestart({
  A: "[~@2 b4@13 ~]/2", B: "[~@2 f#5@7 ~@7]/2", C: "[~ a5@29 ~@2]/2", D: "~@12 c5@3 ~", E: "~@14 a4 ~", F: "~@14 d5 ~",
  G: "~@4 d4 ~@11", H: "~@12 d5 ~@3", I: "~@12 c5 ~@3", J: "~@14 c5 ~", K: "~@13 f5 ~@2", L: "~@14 d4 ~",
  M: "d7@3 ~@5 d7@4 ~@4", N: "~@2 d7 ~", O: "d7@3 ~@13", P: "~@5 e5@3", Q: "~@14 e5 ~", R: "~@8 [f5,f#5] ~@7",
  S: "~@14 [d4,e4] ~", // Dsus2
})).s("gm_distortion_guitar").gain(0.06).pan(0)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@23 A ~@10 A ~ A ~ A ~ A ~@12 A ~@16 B A ~ C ~@6 A ~@4 A ~@8 D A E ~@6 A ~@6 F ~@3 C ~@4 F ~ F ~ F ~@2 G C ~ H I C ~
  H A H G C ~ F ~ F ~ H ~ J ~
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@5 x ~@2", C: "~@3 x", D: "~ x ~@6", E: "~@2 x ~@2 x ~@2", F: "~@7 x", G: "~@3 x ~ x ~@2",
  H: "~@6 x!2", I: "~@3 x ~@2 x!2", J: "x",
})).gain(0.4)

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

// … 37 more lines

More by Filter