Strudelify

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

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note(`<
  ~@2 A ~ A B A ~ A@2 ~@4 C ~@3 D@2 ~ E C ~@3 D@2 F@2 G@4 H@2 ~@4 C ~@3 I@2 F@2 J@4 H@2 ~@32 J@4 H@2 ~@84
>`.pickRestart({
  A: "f#3", B: "f#3@15 ~", C: "b3", D: "[a3, e4 ~]/2", E: "~ b3", F: "[e4, b3 ~]/2", G: "a3/4", H: "a3/2",
  I: "[a3@31 ~, e4 ~]/2", J: "[a3@63 ~]/4",
})).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 V W X W Y ~@16 I Z@2 F AA@2 AB@2 AC@4 AD@2 AE AF
  AG@2 AH@2 AD@2 AE AF AG@2 AI@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: "[d4,g#4]", W: "[c#4,g#4]@15 ~", X: "[c#4,f#4]@15 ~", Y: "[c#4,f#4]@13 ~@3",
  Z: "f#5/2", AA: "[c#6@3 f#5@3 a5@2]/2", AB: "[b5@5 d#5@2 f#5]/2",
  AC: "[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", AD: "[b5@3 c#6@4 a5]/2", AE: "b5@3 e5",
  AF: "f#5", AG: "[b5@6 c#6@7 g#6@3]/2", AH: "[f#6@5 b5@5 d#6@6]/2", AI: "[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 AC@2 AD@32 AE@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]@31 ~]/2",
  AB: "[[f#1,f#2]@28 [f#1,f#2] ~ [f#1,f#2]@32 ~@2]/4", AC: "[[f#1,f#2]@15 ~]/2",
  AD: "[~@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#
  AE: "[[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 ~ C@3 ~ B@3 ~ C@3 ~ C@3 ~ B@3 ~ C@3 ~@4>".pickRestart({
  A: "~@14 c#3 ~", B: "[c#3@11 ~@3 c#3@23 ~ c#3@2 f#3 ~@7]/3", C: "[c#3@11 ~@3 c#3@23 ~ c#3 ~ 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 G D E F H@4 I@3 J K@2 L@2 I@3 J K@2 M@2 N O P@2 ~@8 A B G D E F H@4 I@3 J K@2 Q@2 I@3 J K@2
  M R N O P@2 S T U V I@3 J K@2 Q@2 W X Y@2 Z@3 AA@3 K@4 AB@2 K@2 AB@2 K@2 AB@2 K@2 AC@2 K@2 AB@2 K@2 AB@2 K@2 AB@2 K@2
  AC@2 AD@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@2 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: "b3 ~ b3@2 a3 ~ b3 ~ b3 ~ a3 ~ b3 ~ b3@2", H: "[f#2@12 c#3@2 f#2@15 ~ f#2@15 ~ f#2@12 a#2@5 ~]/4",
  I: "[[b2,f#3]@23 ~]/3", J: "~@2 [f#3,b3,d4] ~@3 b2@2 [f#3,b3,d4]@2 b2 ~@5", K: "[[f#2,c#3]@31 ~]/2",
  L: "[[e2,c#3]@7 ~]/2", M: "[e2,c#3]@15 ~", N: "[d3,a3]", O: "[c#3,g#3]", P: "[[d3,a3]@14 [c#3,g#3]@17 ~]/2",
  Q: "[e2,c#3]/2", R: "[e2,c#3]", S: "c#4", T: "d4", U: "d#4", V: "e4@7 ~", W: "f#3", X: "[e3,b3]@3 [e3,a3]@5",
  Y: "[[a2,d3]@7 c#3@9]/2", Z: "[f#2,c#3]/3", AA: "[~@12 [f#2,c#3]@2 [f#2,c#3]@33 ~]/3", AB: "[[f#2,c#3]@29 ~@3]/2",
  AC: "[[f#2,c#3]@18 [f#3,b3,d#4] ~@3 b2 ~ [f#3,b3,d#4]@4 b2 ~@3]/2", AD: "[[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 O@2 P@4 Q@4 R@2 S T Q@4 U@4 V W X@2
  Y@4 F@2 I@2 J@2 K@2 O@2 P@4 Q@4 U@4 Z@4 AA@2 S T AB AC AD@2 ~@4 Z@4 U@4 AE AF X@2 AG@2 AH@2 AI@2 AH@2 AI@2 AH@2 AJ@2
  AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AI@2 AH@2 AK@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@15 ~ a3@16 [c#3,b3]@16 [c#3,a3]@16, f#3, c#3@31 ~@33]/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]/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: "[[d3,a3,d4,f#4]@31 ~]/2",
  P: "[[c#4,b4]@7 [c#4,a4]@8 [e4,g#4]@8 [d#4,f#4]@9]/4", Q: "[f#3 g#3 a3 g#3, [b2,b3,d4]]/4",
  R: "[g#3 f#3, c#3@31 ~]/2", S: "[c#3,g#3]", T: "[c#3,f#3]", U: "[g#3 f#3 g#3 f#3, c#3]/4", V: "[d2,a3,d4,f#4]",
  W: "[c#2,g#3,c#4,f#4]", X: "[[d2,a3,d4,f#4]@7 [g#3,c#4,f#4]@4 [g#3,c#4,f4]@5, ~@7 c#2@9]/2",
  Y: "[b3@16 a3@16 b3@16 a3@15 ~, [c#3,f#3]]/4", Z: "[f#3@16 g#3@16 a3@16 g#3@15 ~, [b2,b3,d4]]/4",
  AA: "[g#3@16 f#3@15 ~, c#3@31 ~]/2", AB: "[d2,a3,d4,f#4]@15 ~", AC: "[c#2,g#3,c#4,f#4]@15 ~",
  AD: "[[d2,a3,d4,f#4]@13 ~ [g#3,c#4,f#4]@8 [g#3,c#4,f4]@10, ~@7 c#2@9]/2", AE: "[d3,a3,d4]", AF: "b3@3 a3@5, [c#3,e4]",
  AG: "[g#4 f#4, c#4]/2", AH: "[[c#4,e4]@7 [f#3,d#4]@9, b3]/2", AI: "[g#4 f#4, c#4@31 ~]/2",
  AJ: "[g#4@16 f#4@15 ~, c#4]/2", AK: "[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 B@2 C ~@4 D E D F G H I@2 ~@44>".pickRestart({
  A: "g#3@5 ~ f#3@4 c#3@6", B: "g#3@3 f#3@2 c#3@3", C: "g#3@6 ~@4 c#4@5 ~, ~@3 f#3@4 ~", D: "b3@15 ~", E: "a3",
  F: "a3@3 ~", G: "[d3,a3]@13 ~@3", H: "[e3,b3]@6 [e3,a3]@7 ~@3", I: "[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 G 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
  G: "[a4,e5] ~ [a4,e5] ~@3 [a4,e5] ~ [a4,e5] ~@3 [a4,e5] ~ [a4,e5] ~", // 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 ~",
// … 67 more lines

More by Zero