Strudelify
Via dei Martiri cover art

Tutti gli zeri del mondo

Via dei Martiri

Zero

KeyF♯ minorTempo138 bpm
0:00/0:00
// Via dei Martiri — Zero
// 138 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 176 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/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.

// bass · fretless bass
const bass = note(`<
  ~@36 A@2 B@2 C D E F G H I J K L M N O P Q@4 R@4 S T U V R@4 S T U W X Y Z@2 ~@14 AA@4 R@4 S T U V R@4 S T U W X Y Z@2
  AB@2 AC AD R@4 S T U V AE AF Z@2 AG@3 AH@2 AG AI AJ AG@3 AK AG@3 AK AG@3 AK AG@3 AK AG@3 AK AG@3 AK AG@3 AK AG@3 AK
  AL@4
>`.pickRestart({
  A: "[f#1@12 ~@2 f#1@15 ~@3]/2", B: "[f#1@13 ~ f#1@10 f#2@4 ~@4]/2", C: "f#1@4 ~@2 f#1 ~ f#1@4 ~@2 f#1 ~",
  D: "f#1@4 ~@2 f#1 ~ f#1 ~ f#1@3 ~ f#1!2", E: "f#1@5 ~ f#1 ~ f#1@4 ~@2 f#1 ~", F: "f#1@4 ~@2 f#1@2 e1 ~ e1@3 ~ e1@2",
  G: "d1@4 ~@2 d1 ~ d1@4 ~@2 d1 ~", H: "d1@4 ~@2 d1 ~ d1 ~ d1@2 ~@2 g#1 ~", I: "a1@4 ~@2 a1 ~ a1@6 ~@2",
  J: "a1@4 ~@2 a1 ~ a1@2 ~@2 a1@3 ~", K: "b1@4 a1 ~ b1@2 ~@2 a1@2 b1@4", L: "~@2 b1 ~ f#1@2 a1 ~ b1 ~ b1@5 ~",
  M: "c#2@4 b1 ~ c#2 ~@3 b1 ~ c#2@4", N: "~@2 c#2@3 ~ c#2@2 a1@2 c#2@4 ~@2", O: "d2@4 a1 ~ d2 ~@3 a1@2 d2@4",
  P: "~@2 d2@3 ~ d2@2 a1@2 d2@3 ~ d2@2",
  Q: "[f#1@3 ~ f#1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1@5 ~ f#1 ~ f#1 f#1@2 ~ c#2@2 e2@2 f#2@7 ~ f#2 ~ f#2 ~ f#2 ~ f#2@2 f#1@4 f#2 ~ f#2 ~ f#2 ~ f#2@2 f#1@2 a#1@3 ~]/4",
  R: "[b1@4 ~@2 b1 ~ b1@5 ~ b1@6 ~@2 b1 ~ b1@4 ~@2 b1@7 ~ b1 ~ b1@4 ~@2 b1@7 ~ b1 ~ b1@3 ~ b1@4]/4",
  S: "f#1@4 ~@2 f#1@6 ~@2 f#1 ~", T: "f#1@2 ~ f#1@3 ~ f#1", U: "e1@4 ~@2 e1@6 ~@2 e1 ~", V: "e1@2 ~ e1@2 f#1 a#1@2",
  W: "e1@4 ~@2 e1@5 ~ e1@3 ~", X: "d1@2 ~ d1@3 ~ d1", Y: "c#1@4 ~@2 c#1@6 ~@2 c#1 ~",
  Z: "[d1@4 ~@2 d1@3 ~ d1@3 ~ c#1@6 ~@2 c#1@2 c#2@2 c#1@2 c#2@3 ~]/2",
  AA: "[f#1@3 ~ f#1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1@5 ~ f#1 ~ f#1@4 c#2@2 e2@2 f#2@7 ~ f#2 ~ f#2 ~ f#2 ~ f#2@2 f#1@4 f#2 ~ f#2 ~ f#2 ~ f#2@2 f#1@2 a#1@3 ~]/4",
  AB: "f#1@4 ~ f#1 f#1@3 ~ f#1@3 ~ f#1 ~", AC: "f#1@4 f#1 ~ f#1@4 f#1@3 ~ f#1@2", AD: "f#2@4 f#1@2 f#2@4 f#1@2 f#2@3 ~",
  AE: "d2@2 ~ [d1,d2]@4 d2", AF: "c#2@2 ~ c#2@4 ~", AG: "f#1@5 ~ f#1@9 ~",
  AH: "[f#1@5 ~ f#1@6 f#2@2 f#1@7 ~ f#1@9 ~]/2", AI: "f#1@3 f#1@4 f#2", AJ: "f#1@5 ~ f#1@4 f#1@5 ~",
  AK: "f#1@5 ~ f#1@6 f#2@2 f#1@2", AL: "[[f#1,f#2]@51 ~@13]/4",
})).s("gm_fretless_bass").gain(0.53)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@2 A B C@2 A B C@2 D@4 E@4 ~ F G@2 E@4 ~ F ~ H I@2 J@2 K@2 L@2 M@2 E@4 ~ F ~ H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q R S
  T@4 U V W@2 X@2 Y@2 Z@6 AA AB I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q R S AC@4 AD AE AF@2 X@2 Y@2 AG AH AI AJ AK AL AM AN AO
  AP AQ AR AS AT AU@2 AV@4 AW@2 AX@2 AY AZ BA BB AY AZ BA BB AY AZ BA BB AY AZ BA BB AY AZ BA BB AY AZ BA BB AY AZ BA BB
  AY AZ BA BB BC@3 ~
>`.pickRestart({
  A: "b3", B: "[f#3,a3]", C: "[~ d#3, b3@31 ~]/2", D: "[e4 d4 c#4 d4, b3]/4", E: "[~ a3 b3 a3, f#3]/4", F: "d4",
  G: "[b3@2 a3 g#3, e4]/2", H: "a3", I: "d4/2", J: "[b3,e4]/2", K: "[~ f#4, [f#3,d4]]/2",
  L: "[[c#4,b4]@7 [c#4,a4]@9]/2", M: "[[c#4,g#4]@7 [d#4,f#4]@9]/2", N: "[f#3 g#3, b3]/2", O: "[a3 g#3, b3]/2",
  P: "[c#3,g#3]", Q: "[c#3,f#3]", R: "[e3,g#3]", S: "[e3,f#3]@15 ~", T: "[[b4,f#5] [b4,g#5], d5]/2", U: "[c#5,b5]",
  V: "[c#5,g#5]", W: "[g#4 f#4, c#5]/2", X: "[d4 c#4, f#4@31 ~]/2", Y: "[[d4,f#4]@7 f#4@5 f4@4, ~@7 c#4@9]/2",
  Z: "[g#4@6 e5@6 c#5@3 g#5@7 f#5@6 a5@10 e6@6 d6@4]/6", AA: "e6@3 b5", AB: "a5@3 e5@5",
  AC: "[[b3,f#4] [b3,g#4], d4]/2", AD: "[c#4,c#5]", AE: "[c#4,g#4]", AF: "[g#4,c#5]/2", AG: "[f#3,c#4]", AH: "[f#3,d4]",
  AI: "[f#3,d#4]", AJ: "[a#3,c#4,e4]", AK: "c#6@5 f#5@3", AL: "b5@5 d5@3", AM: "a5@5 f#5@3", AN: "g#5",
  AO: "b5@9 ~ c#5@6", AP: "a5@5 c#5@3", AQ: "g#5@5 c#5@3", AR: "f#5@9 ~ a4@6", AS: "f#5", AT: "b4 a4, e5",
  AU: "[[d5,f#5]@7 f#5@5 f5@4, ~@7 c#5@9]/2", AV: "[~@23 f#5@9, c#6@32 b5@17 ~@15, ~@14 f#5@29 ~@21]/4",
  AW: "[g#5 f#5, c#5@31 ~]/2", AX: "[c#5,g#5]/2", AY: "g#4", AZ: "f#4", BA: "[b3,e4]", BB: "[b3,d#4,b4]",
  BC: "[[f#1,f#2]@23 ~]/3", // F#
})).s("gm_string_ensemble_2").gain(0.57)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note(`<
  ~@2 A ~ A@3 ~ A@2 ~@4 B ~@3 C@2 ~ D B ~@3 C@2 E@2 F@4 G@2 ~@4 B ~@3 C@2 E@2 F@4 G@2 ~@32 F@4 G@2 ~@84
>`.pickRestart({
  A: "f#3", B: "b3", C: "[a3, e4 ~]/2", D: "~ b3", E: "[e4, b3 ~]/2", F: "[a3@63 ~]/4", G: "a3/2",
})).s("gm_string_ensemble_2").gain(0.36)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@86 A@2 B@2 C@2 D@4 E F G H I G H J K@2 L M N O P Q ~@4 R@4 S T U T V W V X ~@16 I Y@2 F Z@2 AA@2 AB@4 AC@2 AD AE
  AF@2 AG@2 AC@2 AD AE AF@2 AH@2 ~@4
>`.pickRestart({
  A: "[a4@6 d4@20 b3 d4 e4 f#4 a4 f#4]/2", B: "[e4@24 ~@2 f#4 a4 b4 c#5 e5 b4]/2",
  C: "[a4@6 f#4@6 d4@11 ~@3 c#5 d5 e5 f#5 g#5 a5]/2", D: "[b5@14 a5@14 c#6@2 b5@15 ~ b5@17 ~]/4", E: "d6", F: "b5",
  G: "a5", H: "g#5", I: "c#5", J: "f#5@6 b5 c#6", K: "[b5 g#5, d6@31 ~]/2", L: "~@5 f#5@3, a5", M: "g#5@5 b5@3",
  N: "c#6", O: "b5@3 e6", P: "c#6@6 b5 a5", Q: "g#5@8 f#5@7 ~", R: "g#5@3 f#5@2 [c#5,c#6]@3", S: "[d4,f#4]@15 ~",
  T: "[d4,g#4]@15 ~", U: "[d4,a4]@15 ~", V: "[c#4,g#4]@15 ~", W: "[c#4,f#4]@15 ~", X: "[c#4,f#4]@13 ~@3", Y: "f#5/2",
  Z: "[c#6@3 f#5@3 a5@2]/2", AA: "[b5@5 d#5@2 f#5]/2",
  AB: "[g#5@12 f#5@2 a5@14 g#5@2 b5@14 f#5@2 d#6@12 c#6@3 f#5@2 ~]/4", AC: "[b5@3 c#6@4 a5]/2", AD: "b5@3 e5",
  AE: "f#5", AF: "[b5@6 c#6@7 g#6@3]/2", AG: "[f#6@5 b5@5 d#6@6]/2", AH: "[f#6@5 b5@5 d#6@5 ~]/2",
})).s("gm_string_ensemble_1").gain(0.54).pan(0.3)

// chords · piano
const piano = note(`<
  ~@36 A@2 B@2 C D@3 E F G H I@2 J@2 K@2 L@4 M@4 N@2 O@2 M@4 N@2 O@2 P Q R@2 ~@14 S@4 M@4 N@2 O@2 M@4 N@2 O@2 P Q R@2 T
  U V W M@4 N@2 X@2 Y Z R@2 AA@2 AB@4 AA@2 AC@32 AD@4
>`.pickRestart({
  A: "[[f#1,f#2,f#3,b3]@12 ~@2 [f#1,f#2,f#3,a3]@15 ~@3]/2", B: "[[f#1,f#2,e3,g#3]@12 ~@2 [f#1,f#2,d#3,f#3]@17 ~]/2",
  C: "~@5 f#2@3, b3@15 ~, [f#1,c#3]@13 ~@3", // F#5
  D: "[f#1@9 ~ f#1 ~@5 [c#3,b3]@14 ~@2 [c#3,a3]@12 [c#3,a3]@2 f#2 ~, [c#3,a3]@14 f#1@13 ~@3 f#1@16 ~@2, ~@16 f#2@13 ~@3 f#2@14 ~@2]/3", // C#7 F#m
  E: "[e3,a3]@5 ~@2 e3, d2@15 ~, ~@3 a3", F: "d2@5 d1@2 ~, [d3,a3]@15 ~", G: "b3@10 ~@4 a1 ~, a1@3 b3, e3@9 ~ e3@5 ~",
  H: "a1@5 ~ a1 ~, [e3,a3]@7 ~", I: "[a3@18 ~@10 a3@3 ~, d4@11 a3@2 b1@3, b1@13 ~@5 b1@6 d4@7 ~]/2",
  J: "[c#2@16 ~@12 b3@3 ~, e4@23 ~ e4@7 ~, b3@20 ~@2 b3@5 ~@5, ~@18 c#2@7 ~ c#2@6]/2",
  K: "[d2@8 ~@5 d2 [a3,d4] d2, d4@23 ~ d4@4 ~@4, a3@20 ~@2 a3@5 ~@5, ~@18 d2@7 ~@7]/2", // D5
  L: "[~@5 f#2@5 [f#3,b3]@2 [f#1,f#2] ~ [f#1,f#2]@8 ~@4 f#2@2 [f#3,a3] ~ [f#1,f#2]@8 ~@4 f#2@2 e3 ~ [f#1,f#2]@8 ~@4 f#2@2 [d#3,f#3]@2 [f#1,f#2] ~, f#1@10 ~@14 f#1@4 ~@12 f#1@5 ~@11 f#1@5 ~@3, [f#3,b3]@8 ~@6 [f#3,a3]@7 ~ [f#3,a3]@5 ~@3 [e3,g#3]@7 ~ [e3,g#3]@6 ~@2 [d#3,f#3]@6 ~@2 [d#3,f#3]@4 ~@6]/4", // B5 F# F#m F# D#m F# B5 F#m …
  M: "[[b1,b2]@21 ~@5 b1@2 ~@32 d4@2 ~@2, ~@7 b2@9, ~@30 b1@33 ~, ~@27 d5@2 f#4@2 ~, ~@28 a4@3 ~]/4", // B
  N: "[[f#1,f#2]@7 ~ f#2@6 ~@2, ~@15 f#1@13 ~@4]/2", // F#
  O: "[~@4 g#4@2 ~@4 c#4@7 ~@3 g#4@2 ~@4 c#4@4 ~@2, [e1,e2]@15 ~, ~@6 c#5@15 ~ c#5@8 ~@2, ~@8 g#4@11 ~@5 g#4@6 ~@2]/2", // E
  P: "[d2,f#3,d4]@15 ~", Q: "[c#2,f#3,c#4]", R: "[[d2,f#3,d4]@13 ~ [c#2,f#3,c#4]@15 ~@3]/2",
  S: "[~@4 f#2@6 [f#3,b3]@2 [f#1,f#2] ~ [f#1,f#2]@8 ~@4 f#2@2 [f#3,a3] ~ [f#1,f#2]@8 ~@4 f#2@2 e3 ~ [f#1,f#2]@8 ~@4 f#2@2 [d#3,f#3]@2 [f#1,f#2] ~, f#1@10 ~@14 f#1@4 ~@12 f#1@5 ~@11 f#1@5 ~@3, [f#3,b3]@8 ~@6 [f#3,a3]@7 ~ [f#3,a3]@5 ~@3 [e3,g#3]@7 ~ [e3,g#3]@6 ~@2 [d#3,f#3]@6 ~@2 [d#3,f#3]@4 ~@6]/4", // B5 F# F#m F# D#m F# B5 F#m …
  T: "f#3@5 ~@7 f#2@2 f#3 ~, [f#2,c#4]@5 c#4@3, ~@6 f#3@7 ~@3", // F#5
  U: "f#3@5 ~ f#3@4 ~@2 f#2@3 ~, [f#2,d4]@10 [f#3,d4]@5 ~", V: "f#3@5 ~@7 f#2@3 ~, [f#2,d#4]@5 d#4@2 ~, ~@6 f#3@9 ~",
  W: "f#3@3 ~ f#3@2 f#3@3 ~ f#3@2 f#2@2 f#3 ~, f#2@11 ~@5, [a#3,c#4,e4]@6 [a#3,c#4,e4]@9 ~", // A#dim
  X: "[~@2 g#4 ~@2 c#4@3 ~@2 g#4 ~@2 c#4@2 ~, e1@29 ~@3, e2@8 e2@7 ~, ~@6 c#5@15 ~ c#5@8 ~@2, ~@8 g#4@11 ~@5 g#4@6 ~@2]/2",
  Y: "[d2,a3,d4]@7 ~", Z: "[b3,e4]@5 ~ [a3,e4]@8 ~@2, c#2@7 ~", AA: "[[f#1,f#2]@15 ~]/2",
  AB: "[[f#1,f#2]@28 [f#1,f#2] ~ [f#1,f#2]@32 ~@2]/4", // F#
  AC: "[~@16 f#3@13 ~@31 [f#1,f#2]@3 ~, [f#1,f#2]@30 f#3@25 ~@3 [c#3,f#3]@4 ~@2, ~@8 [f#1,f#2]@7 ~]/4", // F# F#5 F#
  AD: "[[f#1,f#2]@15 ~]/4", // F#
})).s("gm_piano").gain(0.59)

// chords · piano · soft notes
const piano_soft = note("<~@40 A ~@100 B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~@4>".pickRestart({
  A: "~@14 c#3 ~", B: "[c#3@11 ~@3 c#3@23 ~ c#3@2 f#3 ~@7]/3",
})).s("gm_piano").gain(0.33)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@30 A B C D E F ~@12 A B C D E F G@4 H@3 I J@2 K@2 H@3 I J@2 L@2 M N O@2 ~@8 A B C D E F G@4 H@3 I J@2 P@2 H@3 I J@2
  L@2 M N O@2 Q R S T H@3 I J@2 P@2 U V W@2 X@3 Y@3 J@4 Z@2 J@2 Z@2 J@2 Z@2 J@2 AA@2 J@2 Z@2 J@2 Z@2 J@2 Z@2 J@2 AA@2
  AB@4
>`.pickRestart({
  A: "a3 ~@3 g#3 ~ a3 ~@3 g#3 ~ a3 ~@3", B: "g#3 ~ a3 ~@3 g#3 ~ a3 ~@3 g#3 ~ a3 ~",
  C: "b3 ~ b3@2 a3 ~ b3 ~ b3 ~ a3 ~ b3 ~ b3@2", D: "a3 ~ b3 ~ b3 ~ a3 ~ b3 ~ b3@2 a3@2 g#3 ~",
  E: "a3 ~ a3@2 g#3 ~ a3 ~ a3 ~ g#3 ~ a3 ~ a3 ~", F: "g#3 ~ a3 ~ a3 ~ g#3 ~ a3 ~ a3 ~ g#3@2 a3 ~",
  G: "[f#2@12 c#3@2 f#2@15 ~ f#2@15 ~ f#2@12 a#2@5 ~]/4", H: "[[b2,f#3]@23 ~]/3",
  I: "~@2 [f#3,b3,d4] ~@3 b2@2 [f#3,b3,d4]@2 b2 ~@5", J: "[[f#2,c#3]@31 ~]/2", K: "[[e2,c#3]@7 ~]/2",
  L: "[e2,c#3]@15 ~", M: "[d3,a3]", N: "[c#3,g#3]", O: "[[d3,a3]@14 [c#3,g#3]@17 ~]/2", P: "[e2,c#3]/2", Q: "c#4",
  R: "d4", S: "d#4", T: "e4@7 ~", U: "f#3", V: "[e3,b3]@3 [e3,a3]@5", W: "[[a2,d3]@7 c#3@9]/2", X: "[f#2,c#3]/3",
  Y: "[~@12 [f#2,c#3]@2 [f#2,c#3]@33 ~]/3", Z: "[[f#2,c#3]@29 ~@3]/2",
  AA: "[[f#2,c#3]@18 [f#3,b3,d#4] ~@3 b2 ~ [f#3,b3,d#4]@4 b2 ~@3]/2", AB: "[[f#2,c#3]@15 ~]/4",
})).s("gm_distortion_guitar").gain(0.45).pan(0.3)

// chords · pad warm
const pad_warm = note(`<
  ~@2 A@8 B C@2 D E@4 F@2 G@2 H@4 F@2 I@2 J@2 K@2 L@2 M@2 N@2 H@4 F@2 I@2 J@2 K@2 L@2 O@4 P@4 Q@2 R S P@4 T@4 U V W@2
  H@4 F@2 I@2 J@2 K@2 L@2 O@4 P@4 T@4 P@4 Q@2 R S U V W@2 ~@4 P@4 T@4 X Y W@2 Z@2 AA@2 Z@2 AA@2 Z@2 AA@2 Z@2 AA@2 Z@2
  AA@2 Z@2 AA@2 Z@2 AA@2 Z@2 AA@2 Z@2 AA@2 Z@2 AA@2 AB@3 ~
>`.pickRestart({
  A: "[b3 a3 e3 d#3, f#3, c#3 b3]/4", B: "[f#3,b3,e4]", C: "[[f#3,d4] [f#3,c#4], b3]/2", D: "[f#3,b3,d4]",
  E: "[b3 a3 [c#3,b3] [c#3,a3], f#3, c#3 ~]/4", F: "[e4 d4, [f#3,a3]]/2", G: "[[b3,c#4]@2 a3 [g#3,b3], e4]/2",
  H: "[b3 a3 b3 a3, [c#3,f#3]]/4", I: "[b3 a3, [c#4,e4]]/2", J: "[b2,a3,d4,f#4]/2", K: "[c#3,a3,b3,e4]/2",
  L: "[[d3,a3,d4,f#4]@31 ~]/2", M: "[[c#4,f#4,b4]@13 ~ [c#4,f#4,a4]@17 ~]/2", N: "[[c#4,f#4,g#4]@7 [b3,d#4,f#4]@9]/2",
  O: "[[c#4,b4]@7 [c#4,a4]@8 [e4,g#4]@8 [d#4,f#4]@9]/4", P: "[f#3 g#3 a3 g#3, [b2,b3,d4]]/4",
  Q: "[g#3 f#3, c#3@31 ~]/2", R: "[c#3,g#3]", S: "[c#3,f#3]", T: "[g#3 f#3 g#3 f#3, c#3]/4", U: "[d2,a3,d4,f#4]",
  V: "[c#2,g#3,c#4,f#4]", W: "[[d2,a3,d4,f#4]@7 [g#3,c#4,f#4]@4 [g#3,c#4,f4]@5, ~@7 c#2@9]/2", X: "[d3,a3,d4]",
  Y: "b3@3 a3@5, [c#3,e4]", Z: "[g#4 f#4, c#4@31 ~]/2", AA: "[[c#4,e4]@7 [f#3,d#4]@9, b3]/2", AB: "[f#2@23 ~]/3",
})).s("gm_pad_warm").gain(0.29).pan(0.8)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@7 A@3 ~@15 B C ~@9 D@2 E@2 ~@3 F G H ~@8 I@4 J K L K@2 J K J@2 K L K@2 J K J ~@7 B C ~@9 I@4 J K L K@2 J K J@2 K L
  K@2 J K J ~@8 J K L K@2 J K J ~@19 M ~@28
>`.pickRestart({
  A: "[~ f#4@14 ~]/3", B: "g#4 ~ f#4@2 c#4 ~ g#4 ~@3 c#4 ~ f#4@4", C: "e4@11 ~@5", D: "[[f#4,b4]@7 [f#4,a4]@9]/2",
  E: "[[e4,g#4]@14 [d#4,f#4]@15 ~@3]/2", F: "g#4@2 f#4 ~ c#4 ~ g#4 ~ f#4@2 c#4@6", G: "e4@13 ~@3", H: "~@3 e4@2 d4@2 ~",
  I: "[[f#4,b4]@7 [f#4,a4]@8 [e4,g#4]@8 [d#4,f#4]@8 ~]/4", J: "f#3", K: "g#3", L: "a3",
  M: "~@2 [f#4,b4] ~@5 [f#2,f#4,b4]@3 ~@5", // B5
})).s("gm_overdriven_guitar").gain(0.25)

// other · electric guitar clean
const electric_guitar_clean = note("<~@116 A@3 B ~@4 C D C E F G H@2 ~@44>".pickRestart({
  A: "g#3@3 f#3@2 c#3@3", B: "g#3@6 ~@4 c#4@5 ~, ~@3 f#3@4 ~", C: "b3@15 ~", D: "a3", E: "a3@3 ~", F: "[d3,a3]@13 ~@3",
  G: "[e3,b3]@6 [e3,a3]@7 ~@3", H: "[f#3@13 ~ f#3@8 f3@7 ~@3, ~@7 c#3@8 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.3)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@19 A ~ B ~ C ~@3 D ~ E F G H I J K ~@5 C ~@3 L ~ M F G H I J K ~@25 C ~@3 D ~ E F G H I J K ~@84
>`.pickRestart({
  A: "e4 ~ a3 ~ d4 ~@2 e4 ~@2 d4@2 a3@2 ~@2", B: "b3 ~ a3 ~ e3 ~ b3 ~ a3 ~ g#3@2 e3@2 ~@2",
  C: "~@2 c#4 ~@3 g#4 ~@3 c#4 ~ g#4 ~@3", D: "e4 ~ d4@2 a3 ~ e4 ~@3 d4@2 a3@2 ~@2",
  E: "a3 ~ a3 ~ e3 ~ a3 ~@3 e3 ~ a3 ~@3", F: "a3 ~@3 g#3 ~ a3 ~@3 g#3 ~ a3 ~@3",
  G: "g#3 ~ a3 ~@3 g#3 ~ a3 ~@3 g#3 ~ a3 ~", H: "b3 ~ b3 ~ a3 ~ b3 ~ b3 ~ a3 ~ b3 ~ b3@2",
  I: "a3 ~ b3 ~ b3 ~ a3 ~ b3 ~ b3@2 a3@2 g#3 ~", J: "a3 ~ a3 ~ g#3 ~ a3 ~ a3@2 g#3 ~ a3 ~ a3@2",
  K: "g#3 ~ a3 ~ a3@2 g#3 ~ a3 ~ a3 ~ g#3@2 a3 ~", L: "e4 ~ d4 ~ a3 ~ e4@2 d4@2 a3@3 ~@3",
  M: "b3@2 c#4 ~@3 b3@2 c#4@2 a3@2 ~@4",
})).s("gm_electric_guitar_muted").gain(0.57).pan(0.2)

// chords · percussive organ
const percussive_organ = note("<~@48 A B C D E F ~@32 A B C D E F ~@84>".pickRestart({
  A: "[a4,d5] ~ [a4,d5] ~@3 [a4,d5] ~ [a4,d5] ~ d5 ~ [a4,d5] ~ [a4,d5] ~", // D5
  B: "~@2 [a4,d5] ~ [a4,d5] ~@3 [a4,d5] ~ [a4,d5] ~@5", // D5
  C: "[b4,e5] ~ [b4,e5] ~@3 [b4,e5] ~ [b4,e5] ~@3 [b4,e5] ~ [b4,e5] ~", // E5
  D: "~@2 [b4,e5] ~ [b4,e5] ~@3 [b4,e5] ~ [b4,e5] ~@5", // E5
  E: "[a4,e5] ~ [a4,e5] ~@3 [a4,e5] ~ [a4,e5] ~@3 [a4,e5] ~ e5@2, ~@14 a4 ~", // A5
  F: "~@2 [a4,e5] ~ [a4,e5] ~@3 [a4,e5] ~ [a4,e5]@2 ~@4", // A5
})).s("gm_percussive_organ").gain(0.38).pan(0.3)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@40 A ~ A ~ A ~ A ~ A ~ A ~ A ~@5 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@21 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@3 B ~ B
  ~ B ~ B ~ B ~ B ~ B ~@11 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@5
>`.pickRestart({
// … 58 more lines

More by Zero