Strudelify

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: 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 AG N K AH AI N P@2 Q R AJ R S R P@2 Q R O R AK R AL ~
>`.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: "[f2,c3,f3]@2 [d2,d3] ~ d3@2 [d2,d3]!2, ~@8 [a3,d4]@7 ~", // F5 D D5
  AH: "[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
  AI: "[f2,f3]@2 [d2,d3] ~ [d3,a3,d4]@2 [d2,d3]!2, c3 ~@7", AJ: "[f2,c3,f3]@2 [d2,d3]@2 [d3,a3,d4]@2 [d2,d3]!2",
  AK: "[f2,c3,f3]@2 d3@2 d3@2 [d2,d3]!2, ~@4 d2@2 ~@2 [a3,d4]@7 ~", AL: "[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 AC L N@2 O P AD P AE P N@2 O P AE P AF P AG ~
>`.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 ~@2 d1!2, ~@8 d2@7 ~", AD: "f1@2 d1@2 d2@2 d1!2",
  AE: "f1 ~ d1 ~ d2@2 d1!2", AF: "f1@2 d1 ~ d2@2 d1!2", AG: "d1!8",
})).s("gm_synth_bass_1").gain(0.36).pan(0)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~ A@6 B ~ C@4 D@2 E@2 ~@36 F@4 ~@25 G ~ H ~ I ~@2 A@14 J@2 C@2 E@2 D@2 C@8 K@2 ~@26
>`.pickRestart({
  A: "[b6 [g4,g5]@7]/2", B: "b6 [g4,g5]@3", C: "[a5@31 ~]/2", D: "[~ a5@31]/2", E: "a5/2",
  F: "[b6@4 ~ [g4,g5]@27 b6@4 [g4,g5]@27 ~]/4", // G
  G: "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
  H: "b6@2 [c4,d4,f4] ~ [c4,d4,f4] ~ [c4,d4,f4] ~ b6@2 [c4,d4,f4] ~ [c4,d4,f4] ~ [c4,d4,f4] ~", // Dm7
  I: "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
  J: "[b6@4 [g4,g5]@17 ~@11]/2", K: "[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 I@8 G@2 J K ~@4 L ~ L ~ L ~ L M N O P Q R S T U V W X Y Z AA AB@2 AC@8 AD@2 AE@2
  AF@2 AG@2 AH K AI AJ AI G@3 AK@2 AL AM AN@4 AO@2 AP AQ AR@4 AS ~
>`.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@4 ~@4 d6@5 ~@3 d6@4 ~@4 d6@5 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@5 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4, d5]/8",
  G: "d6 ~ d6 ~", H: "d6@4 ~@5 d6@4 ~@3",
  I: "[d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@5 ~@3 d6@5 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@5 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@5 ~@3 d6@4 ~@4, d5]/8",
  J: "d6@4 ~@4 d6@5 ~@3", K: "d6@5 ~@3 d6@4 ~@4",
  L: "[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
  M: "[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
  N: "[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
  O: "[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
  P: "[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
  Q: "[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
  R: "[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
  S: "[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
  T: "[e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e2,e4] e1 [e1,e2,e4] ~ e4 [e1,e2]", // E
  U: "e4 [e1,e2] [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [d1,d2,d4] ~", // E D
  V: "[e1,e2,e4] ~ [e2,e4] e1 [e1,e2,e4] ~ e4 [e1,e2] e4 [e1,e2] [e2,e4] e1 [e1,e2,e4] ~ [e1,e2,e4] ~", // E
  W: "[e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e1,e2,e4] ~ [e2,e4] e1 [e1,e2,e4] ~ [d1,d2,d4] ~", // E D
  X: "[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
  Y: "e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 [e1,e2] e4 ~ e4 [e1,e2] d4 [d1,d2]", // E D
  Z: "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
  AA: "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
  AB: "[[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
  AC: "[d6@4 ~@4 d6@4 ~@4 d6@5 ~@4 d6@4 ~@3 d6@4 ~@5 d6@4 ~@4 d6@3 ~@5 d6@4 ~@3 d6@4 ~@4 d6@4 ~@5 d6@4 ~@4 d6@4 ~@3 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4 d6@4 ~@4, d5]/8",
  AD: "[[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
  AE: "[[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#
  AF: "[[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#
  AG: "[[d1,d2,d4]@7 ~ [g#1,g#4]@5 ~ [g1,g4]@5 ~ [f#1,f#4]@5 ~ f1@4 ~@2]/2", AH: "~@2 d6 ~", AI: "d6@4 ~@4 d6@3 ~@5",
  AJ: "d6@3 ~@5 d6@4 ~@4", AK: "[~ c5@3 ~ [e5,g5]@27, d6@4 ~ g#5 ~@26, ~ c6@31, ~ [c2,c3]@27 ~@4]/2",
  AL: "[a1,a2]@13 ~@3, a5", AM: "[g#1,g#2,g#5]@5 ~ [g1,g2]@4 ~@2 [f1,f2] ~ [d1,d2] ~, ~@3 g5@3 f5 d5",
  AN: "[[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
  AO: "[[c2,c3]@29 ~@3, c6]/2", AP: "[a1,a2,a5]@15 ~",
  AQ: "[g#1,g#2,g#5]@6 [g1,g2]@3 ~@2 f1 f5@2 [d1,d2] ~, ~@6 g5@5 f2@2 ~ d5@2", // G# G D
  AR: "[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",
  AS: "[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@2 C@2 D@2 ~@2 E@2 ~@2 F@2 ~@36 G@2 H@2 ~@25 I ~ J ~ K ~@2 H@4 L@2 M@2 L@6 N@2 O@2 P@4 Q@2 R@6 S@2 ~@26
>`.pickRestart({
  A: "[~ [g4,g5]@7]/2", B: "[~@4 [g4,g5]@27 ~]/2", C: "[~@2 [g4,g5]@13 ~]/2", D: "[~@2 [g4,g5]@7 ~@7]/2", E: "g4/2",
  F: "[g4@29 ~@3]/2", G: "[b5 g5@7]/2", H: "[b5@4 g5@27 ~]/2",
  I: "~@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
  J: "~@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
  K: "~@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
  L: "[b5@4 g5@25 ~@3]/2", M: "[b5@2 g5@13 ~]/2", N: "[b5 g5@5 ~@2]/2", O: "[g4@31 ~]/2", P: "[[g4,g5]@31 ~]/2",
  Q: "[g5@15 ~, g4@13 ~@3]/2", R: "[g5@15 ~]/2", S: "[g5@29 ~@3]/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 U V W X@2 Y Z@7 ~ A@2 AA@2 AB@2 AC@2 AD@2
  AE@2 AF R AG T@2 AH AI@2 AJ AK@2 Y AL@5 ~@2 AM ~ AN ~@10 AO AP AQ@7 ~@14 AR@2 AS AT T@2 AS AU V AJ AK@2 Y AV@7 AW AX@3
  AY@2
>`.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: "f5@4 ~@4 d5@5 ~@3", V: "d5 ~", W: "~@5 c5@2 ~", X: "[c5@5 ~ c5@4 ~@2 a4@16 ~@4]/2",
  Y: "g#4@5 ~ g4@4 ~@2 f4@2 ~@2", Z: "[f4@4 ~@4 a6@40 d6@3 ~ d6@3 ~ f6@53 ~@3]/7", AA: "[~@5 b4@19 ~@8]/2",
  AB: "[d5@4 d5@2 ~@2 d5@3 ~ c5 ~@2 d5@4 ~ c5@4 ~@8]/2", AC: "[d5@4 d5@2 ~@2 d5@3 ~ c5 ~ d5@5 ~@13]/2",
  AD: "[f5@3 ~ f5@3 ~ f5@3 ~@3 f5@4 ~@2 d5@3 ~@5 d5 ~ d5 ~]/2", AE: "[d5@7 ~ d5@4 ~@3 d5@6 ~@11]/2", AF: "d5@15 ~",
  AG: "f5@5 ~@3 d5@6 ~@2", AH: "f5@3 ~ f5@3 ~ f5@3 ~ f5@3 ~", AI: "[g5@6 ~ d5@8 ~]/2", AJ: "~@5 d5@2 ~",
  AK: "[d5@5 ~ c5@4 ~@2 a4@17 ~@3]/2", AL: "[f4@4 ~@44 d6@2 ~@2 d6@4 f6@19 ~@5, ~@4 a6@21 ~@15]/5", AM: "d7@3 ~@13",
  AN: "~@8 d7@3 ~@5", AO: "~ b5@8 a#5@7", AP: "a5@8 g5@2 ~@5 d5",
  AQ: "[~ 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", AR: "[~@14 d5@17 ~]/2",
  AS: "f5@3 ~ f5@3 ~ f5@2 ~@2 f5@2 ~@2", AT: "f5@3 ~@5 d5@4 ~@4", AU: "f5@4 ~@4 d5@5 ~@3, ~@8 c#5 ~@7",
  AV: "[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", AW: "g#4@3 g4@3 f4 ~",
  AX: "[f4 ~ a6@10]/3", AY: "[d6@3 ~ d6@4 f6@22 ~@2]/2",
})).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",
// … 51 more lines

More by Filter