Strudelify

Dimentichiamoci questa citta

Rossi Vasco

KeyD majorTempo136 bpm
0:00/0:00
// Dimentichiamoci questa citta — Rossi Vasco
// 136 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · rock organ
const rock_organ = note(`<
  ~@2 A@8 B@8 C@6 D E@7 F@2 G H@8 I@8 ~@16 J@2 K@2 J@2 K@2 J@2 K@2 J@6 K@2 J@2 K@2 ~@32 L@8 M@14 N O P O P Q ~
>`.pickRestart({
  A: "[[g5,d6]@5 [g5,c6] ~ [d5,g5]@6 [g5,c6] ~ [g5,d6]@6 [g5,c6] ~ [d5,g5]@6 [g5,c6] ~ [g5,d6]@6 [g5,c6] ~ [d5,g5]@6 [g5,c6] ~ [g5,d6]@6 [g5,c6] ~ [d5,g5]@6 [g5,c6]@2 ~]/8", // G5 C5 G5 C5 G5 C5 G5 C5 …
  B: "[[g5,d6]@10 [g5,c6]@4 [g5,b5]@12 [g5,c6]@4 [g5,d6]@12 [g5,c6]@3 ~ [g5,b5]@12 [g5,c6]@4 [g5,d6]@12 [g5,c6]@3 ~ [g5,b5]@12 [g5,c6]@4 [g5,d6]@12 [g5,c6]@3 ~ [g5,b5]@14 [g5,c6]@4]/8", // G5 C5 G C5 G5 C5 G C5 …
  C: "[[g5,d6]@5 [g5,c6] ~ [d5,g5]@6 [g5,c6] ~ [g5,d6]@6 [g5,c6] ~ [d5,g5]@6 [g5,c6] ~ [g5,d6]@6 [g5,c6] ~ [d5,g5]@6 [g5,c6] ~ [g5,d6]]/6", // G5 C5 G5 C5 G5 C5 G5 C5 …
  D: "~@5 [g5,c6] ~ [d5,g5]", // C5 G5
  E: "[~@7 [a4,e5,a5]@8 [g4,d5,g5]@8 [d5,a5,d6]@6 [c5,g5,c6] ~ [g4,d5,g5]@8 [a4,e5,a5]@8 [g4,d5,g5]@8 [d5,a5,d6]]/7", // A5 G5 D5 C5 G5 A5 G5 D5
  F: "[~@5 [c5,g5,c6] ~ [d#5,f#5,b5]@9]/2", G: "[d#5,f#5,b5]",
  H: "[[b5,e6]@10 [a5,d6]@4 [a5,c#6]@12 [a5,d6]@4 [b5,e6]@12 [a5,d6]@3 ~ [a5,c#6]@12 [a5,d6]@4 [b5,e6]@12 [a5,d6]@3 ~ [a5,c#6]@12 [a5,d6]@4 [b5,e6]@12 [a5,d6]@3 ~ [a5,c#6]@14 [a5,d6]@4]/8", // E5 D5 A D5 E5 D5 A D5 …
  I: "[[b5,e6]@5 [a5,d6] ~ [e5,a5]@6 [a5,d6] ~ [b5,e6]@6 [a5,d6] ~ [e5,a5]@6 [a5,d6] ~ [b5,e6]@6 [a5,d6] ~ [e5,a5]@6 [a5,d6] ~ [b5,e6]@6 [a5,d6] ~ [e5,a5]@8 ~]/8", // E5 D5 A5 D5 E5 D5 A5 D5 …
  J: "[[e5,a5]@7 [d5,a5]@4 g5@2 c6 b5 g5, ~@11 c5@4 ~]/2", // A5 D5
  K: "[[e5,a5]@7 [d5,a5]@5 ~ c6 b5 g5, ~@12 c5@3 ~, ~@6 g5 ~]/2", // A5 D5
  L: "[[e5,a5]@5 [d5,g5] ~ [a5,d6]@6 [g5,c6] ~ [e5,a5]@6 [d5,g5] ~ [a5,d6]@6 [g5,c6] ~ [e5,a5]@6 [d5,g5] ~ [a5,d6]@6 [g5,c6] ~ [e5,a5]@6 [d5,g5] ~ [a5,d6]@6 ~@3]/8", // A5 G5 D5 C5 A5 G5 D5 C5 …
  M: "[[e5,a5]@6 [d5,g5] [a5,d6]@7 [g5,c6] [a5,d6]]/2", N: "[e5,a5]@6 [d5,g5] [e5,a5]",
  O: "[a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~", P: "~ [a5,d6] ~@2 [a5,d6] ~ [a5,d6] ~", Q: "[e5,a5]",
})).s("gm_rock_organ").gain(0.2).pan(0.7)

// chords · rock organ · soft notes
const rock_organ_soft = note("<~@91 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@29>".pickRestart({
  A: "[e5,a5]", B: "[d5,a5]",
})).s("gm_rock_organ").gain(0.1).pan(0.7)

// bass · electric bass finger
const bass = note(`<
  A@2 B@8 C@8 D@7 E@2 F G@2 H F I@2 J K@4 L@4 M N O P M N O Q J R J R J R J S T U@2 V W@2 X Y Z@2 AA@2 Z@2 AA@2 Z@2 AA@2
  Z@6 AA@2 Z@2 AA@2 AB AC AD AC AD AC AD AC AD AC AE AC AD AC AE AC AB AC AD AC AD AC AD AC AD AC AE AC AD AC AE AC AF@4
  AG@3 AH AI@14 AJ AK AL AK AL AM ~
>`.pickRestart({
  A: "g1 a1 c2 d2 g1 a1 c2 d2 g1 a1 c2 d2 g1 a1 c2 d2",
  B: "[d2@4 d2@4 ~@2 c2@2 a1@2 g1@7 ~@5 c2@2 ~@2 d2@6 d2@3 ~@3 c2@2 ~@2 g1@6 ~@6 c2@2 ~@2 d2@7 ~@5 c2@2 ~@2 g1@6 ~@6 c2@2 ~@2 d2@7 ~@5 c2@2 ~@2 g1@6 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~]/8",
  C: "[d2@4 d3@2 d2@2 d2 ~ c3@2 ~@2 g1@5 ~ g2@2 g1@2 g1 ~ c2@2 ~@2 d2@6 d3@2 d2@2 d2 ~ c3@2 ~@2 g1@5 ~ g2@2 g1@2 g1 ~ c2@2 ~@2 d2@6 d3@2 d2@2 d2 ~ c3@2 ~@2 g1@5 ~ g2@2 g1@2 g1 ~ c2@2 ~@2 d2@6 d3@2 d2@2 d2 ~ c3@2 ~@2 g1@5 ~ g2@2 g1@2 g1 ~ c2@2 ~@2 d2@2]/8",
  D: "[d2@2 d2@2 d2@2 d2@2 d2@2 c2@3 ~ g1@4 g1@2 g1@2 g1@2 g1@2 c2@3 ~ d2@4 d2@2 d2@2 d2@2 d2@2 c2@3 ~ g1@4 g1@2 g1@2 g1@2 g1@2 c2@3 ~ d2@4 d2@2 d2@2 d2@2 d2@2 c2@3 ~ g1@4 g1@2 g1@2 g1@2 g1@2 c2@3 ~ d2@4 d2@2 d2@2 d2@2 d2@2 c2@3 ~ g1@2]/7",
  E: "[~ g1!6 a1@8 g1]/2", F: "g1", G: "[d2@2 d2@2 d2@2 d2@2 d2@2 c2@3 ~ g1@16 a1@2]/2", H: "a1@7 g1",
  I: "[d2@2 d2@2 d2@2 d2@2 d2@2 c2@3 ~ b1@4 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2]/2", J: "b1!8",
  K: "[e2@2 e2@2 e2@2 e2@2 e2@2 d2@3 ~ a1@4 a1@2 a1@2 a1@2 a1@2 d2@3 ~ e2@4 e2@2 e2@2 e2@2 e2@2 d2@3 ~ a1@4 a1@2 a1@2 a1@2 a1@2 d2@3 ~ e2@2]/4",
  L: "[e2@2 e2@2 e2@2 e2@2 e2@2 d2@3 ~ a1@4 a1@2 a1@2 a1@2 a1@2 d2@3 ~ e2@4 e2@2 e2@2 e2@2 e2@2 d2@3 ~ a1@4 a1@2 a1@2 a1@2 a1@2 d2@4 d#2@2]/4",
  M: "e2!5 d3 d2 a1", N: "a1!2 a2 a1!2 d2 ~ e2", O: "e2!2 e3 e2!2 d3 d2 a1",
  P: "a1@2 a1@2 a2@2 a1@2 a1 ~ d2@2 ~@2 e2@2", Q: "a1!2 a2 a1 a2 a1!2 b1", R: "b1 ~ a1@2 ~@2 e2@4 e2@2 e2@2 b1@2",
  S: "b1 ~@7", T: "~@4 a2@3 ~@3 a1 ~ a2@3 ~", U: "~@2 a1 ~ a2@3 ~@3 a1 ~ a2@3 ~",
  V: "~@2 a1 ~ a2@3 ~@3 f#1 ~ g1@2 g#1@2", W: "a1!8", X: "a1!7 b1", Y: "c2 c#2 d2 d#2 e2 f#1 g1 g#1",
  Z: "[a1!7 d2@2 d2!2 c2@2 c2 b1 g1]/2", AA: "[a1!7 d2@2 d2!3 c2!2 b1 g1]/2", AB: "a1!6 a1@2",
  AC: "d2 d3 d2!2 c3 d2 b2 c3", AD: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1!2",
  AE: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1!2 b1@2",
  AF: "[a1@2 a1@2 a1@2 a1@2 a1@2 g1@3 ~ d2@4 d2@2 d2@2 d2@2 d2@2 c2@3 ~ a1@4 a1@2 a1@2 a1@2 a1@2 g1@3 ~ d2@4 d2@2 d2@2 d2@2 d2@2 c2@3 ~ g1@2]/4",
  AG: "[a1@2 a1@2 a1@2 a1@2 a1@2 g1@3 ~ d2@4 d2@2 d2@2 d2@2 d2@2 c2@3 ~ a1@18]/3",
  AH: "e2 f#2 a2 b2 e2 f#2 a2 b2 e2 f#2 a2 b2 e2 f#2 a2 b2", AI: "[a1!6 g1 d2@2 d2!5 c2 d2]/2", AJ: "a1!6 g1 a1",
  AK: "c2 d2!2 c2 d2!2 c2 d2", AL: "d2 c2 d2!2 c2 d2 c2 d2", AM: "a1",
})).s("gm_electric_bass_finger").gain(0.55)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@9 A B C D A E F G H I J K L M N ~@10 O P Q R O S T U@2 V W X Y L Z AA@2 ~ AB ~ AC@2 ~@2 AD ~@47 AE AF ~@2 AG AH ~@2
  AG AI AJ AK AL AM ~ AN@2 AO AP AQ AR AS AT AU@2 ~@21
>`.pickRestart({
  A: "~@10 d4@2 d4 ~ d4@2", B: "f4@2 f4 ~ d4 ~ d4 ~ d4@2 c4@2 d4@2 ~@2", C: "~@5 d4!2 c4", D: "d4 c4 d4 ~@5",
  E: "a4@2 a4@2 a4@2 a4 ~ a4@2 a4@2 g4@3 ~", F: "~@10 g4@2 g4 ~ g4@2", G: "f#4@2 f#4@2 f#4@3 ~@9", H: "~@5 f5!3",
  I: "e5@2 f5@2 f5@2 f5 ~ f5@2 f5 ~ f5 ~ f5 ~", J: "e5 ~ f5 ~ e5 ~ f5@4 f5@2 e5 ~ d5@2",
  K: "e5@2 f5@2 e5 ~ d5 ~ d5@2 d5@2 d5 ~ d5 ~", L: "d5 ~ d5 ~ d5@2 d5@2 d5 ~ d5 ~ d5@2 d5@2", M: "c5!2 ~@2",
  N: "~@2 c5 a4", O: "~@10 e4@2 e4 ~ e4@2", P: "g#4@2 g#4@2 g#4 ~ f#4@2 f#4@2 e4@2 e4@3 ~", Q: "~@5 e4!3",
  R: "a4@2 b4@2 b4@3 ~@9", S: "d5@2 d5 ~ b4 ~ d5 ~ d5@2 b4@2 d5@4", T: "~@10 e5@2 e5 ~ e5@2",
  U: "[g#5@2 g#5@2 g#5@5 ~@5 a5@5 ~@7 f#5@3 ~ e5@2]/2", V: "g#5@2 g#5@2 g#5@2 f#5 ~ e5@2 e5 ~ e5 ~ e5 ~",
  W: "e5 ~ e5 ~ e5@2 e5@2 e5 ~ e5 ~ e5@2 e5@2", X: "d5@4 d5@5 ~@7", Y: "~@10 d5 ~ d5@2 d5@2",
  Z: "d5 ~ d5 ~ d5@2 f#5@2 ~@2 d5 ~ f#5@2 ~@2", AA: "[e5 ~ e5@3 ~ e5@18 ~@8]/2", AB: "~@5 e5 e5@2",
  AC: "[~@8 e5@2 e5@2 e5@2 e5@5 ~@13]/2", AD: "e5 ~@3", AE: "~@7 a4", AF: "a4 ~ a4 ~ a4@2 a4 ~ a4 ~ a4@3 ~@3",
  AG: "~@10 a4@2 a4 ~ a4 ~", AH: "c5@2 a4 ~ a4@3 ~@3 a4@3 ~@3", AI: "c5@2 c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ a4@3 ~",
  AJ: "~@8 c5@2 c5 ~ c5@2 ~@2", AK: "c5 ~@7", AL: "~@10 d5@2 d5 ~ d5 ~", AM: "d5@2 c5 ~ c5 ~ c5@4 ~@6",
  AN: "[g5@12 ~ g5!2 e5]/2", AO: "g5!3 e5@2 e5@2 ~", AP: "~@2 f#5 ~ f#5@2 d5@2 f#5 ~ f#5 ~ e5@2 g5@2",
  AQ: "g5 ~ g5 ~ f#5@4 e5@5 ~@3", AR: "~@10 f#5 ~ f#5@2 e5@2", AS: "g5 ~ g5 ~ g5@2 e5@3 ~ g5 ~ g5@2 g5@2",
  AT: "g5@3 ~@3 g5@3 ~ g5 ~ g5@2 e5@2", AU: "[g5@2 g5 ~ g5@2 g5@4 g5@19 ~@3]/2",
})).s("gm_lead_8_bass_lead").gain(0.54)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@2 A@8 B ~@2 C B@3 D E@8 F G H@2 F G I@2 J K@8 L@8 M N M N M N M O P Q P Q R Q R S T@2 U@2 T@2 U@2 T@2 U@2 T@6 U@2
  T@2 U@2 V ~@31 W@7 X Y@2 Z@2 Y@2 Z@2 AA@2 Z@2 Y@2 AB AC AD AC AE AF ~
>`.pickRestart({
  A: "[[a3,d4]@4 [a3,d4]@3 ~@3 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 ~@2 [a3,d4]@7 ~@5 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 ~@2 [a3,d4]@7 ~@5 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 ~@2 [a3,d4]@7 ~@5 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 [g3,c4]@2 ~@2]/8", // D5 C5 G C5 D5 C5 G C5 …
  B: "~@10 c3 ~@5", C: "~@4 g2 ~@5 c3 ~@5", D: "~@4 [g2,d3]!4",
  E: "[[a3,d4]@4 [a3,d4]@3 ~@3 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 ~@2 [a3,d4]@7 ~@5 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 ~@2 [a3,d4]@7 ~@5 [g3,c4]@2 ~@2 [g3,b3]@6 [g3,b3]@2 ~@4 [g3,c4]@2 ~@2 [a3,d4]@7 ~@5 [g3,c4]@2 ~@2 [g3,b3]@4 [d3,g3]@2 [d3,g3]@2 [d3,g3]@2 [d3,g3]@2 [d3,g3]@2 [d3,g3]@2 [e3,a3]!2]/8", // D5 C5 G C5 D5 C5 G C5 …
  F: "[a2,e3,a3]@13 ~ [g2,d3,g3] [d3,g3]", G: "[g2,d3,g3]@13 ~ [d3,a3,d4] [a3,d4]",
  H: "[[a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [c3,g3,c4]@2 ~@2 [g2,g3,b3]@16 [a2,e3,a3] [e3,a3], d3@5 ~@11]/2", // D5 C5 G A5
  I: "[[a3,d4]!5 [c3,g3,c4] ~ [f#3,b3]@2 [f#3,b3]!7, d3@5 ~@2 b2@9]/2", J: "[f#3,b3]!8, b2",
  K: "[[b3,e4]@4 [b3,e4]@3 ~@3 [a3,d4]@2 ~@2 [e3,a3]@6 [e3,a3]@2 a3!2 [e3,a3] ~ [a3,d4]@2 ~@2 [b3,e4]@6 [b3,e4]@3 ~@3 [a3,d4]@2 ~@2 [e3,a3]@6 [e3,a3]@2 [e3,a3]!3 ~ [a3,d4]@2 ~@2 [b3,e4]@6 [b3,e4]@3 ~@3 [a3,d4]@2 ~@2 [e3,a3]@6 [e3,a3]@2 [e3,a3] a3 [e3,a3] ~ [a3,d4]@2 ~@2 [b3,e4]@6 [b3,e4]@3 ~@3 [a3,d4]@2 ~@2 [e3,a3]@6 [e3,a3]@2 a3!2 [e3,a3] ~ [a3,d4]@3 ~ [b3,d#4]@2]/8", // E5 D5 A5 D5 E5 D5 A5 D5 …
  L: "[[e3,b3,e4]@4 [e3,b3,e4]@3 ~@3 [d3,a3,d4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3] ~ [d3,a3,d4]@2 ~@2 [e3,b3,e4]@6 [e3,b3,e4]@3 ~@3 [d3,a3,d4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3] ~ [d3,a3,d4]@2 ~@2 [e3,b3,e4]@6 [e3,b3,e4]@3 ~@3 [d3,a3,d4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3] ~ [d3,a3,d4]@2 ~@2 [e3,b3,e4]@6 [e3,b3,e4]@3 ~@3 [d3,a3,d4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@2 [a2,e3,a3] [e3,a3] [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [f#3,b3]!2]/8", // E5 D5 A5 D5 E5 D5 A5 D5 …
  M: "[f#3,b3]!8, b2!2", N: "[f#3,b3] ~ [a2,e3,a3]@2 ~@2 [e3,b3,e4]@8 [b2,f#3,b3] [f#3,b3]", O: "[b2,f#3,b3] ~@7",
  P: "[a2,e3,a3]@6 [a2,e3] ~ [e3,a3,d4]@2 [e3,a3,c#4]@2 [a2,e3] ~ [a2,e3] ~, ~@2 a2 ~", // A5 Dsus2 A A5
  Q: "[a2,e3] ~ [d3,a3,d4]@2 ~@2 [d3,a3] ~ [a3,d4]@2 [a3,d4]@4 d3 ~, ~@2 d3 ~", // A5 D5
  R: "a3@4 [a3,d4]@2 [a2,e3,a3,c#4] ~ [e3,a3,d4]@2 [e3,a3,c#4]@2 [a2,e3] ~ [a2,e3] ~, [a2,e3]@3 ~ a2@2 ~@2", // D5 A Dsus2 A A5
  S: "[a2,e3] ~ [d3,a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2, ~ d3!3", // A5 D5
  T: "[[e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [a3,d4]@4 [a3,d4]@2 [a3,d4]@2 [g3,c4]@4 [g3,c4]@2 [f#3,b3]@2 ~ g3, a2@4 a2@4 ~@7 [g2,d3,g3], ~@7 d3@4 c3@3 ~@2]/2", // A5 D5 C5 B5 G5
  U: "[[e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [a3,d4]@4 [a3,d4]@2 [a3,d4]@2 [a3,d4]@2 [c3,g3,c4]@2 [g3,c4]@2 [f#3,b3]@2 ~ g3, a2@4 a2@4 ~@7 [g2,d3,g3], ~@7 d3@4 ~@5]/2", // A5 D5 C5 B5 G5
  V: "[e3,a3]", // A5
  W: "[[a2,e3,a3]@4 [a2,e3,a3]@3 ~@3 [g2,d3,g3]@2 ~@2 [d3,a3,d4]@6 [d3,a3,d4]@2 [d3,a3,d4] d4 [d3,a3,d4] ~ [c3,g3,c4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@3 ~@3 [g2,d3,g3]@2 ~@2 [d3,a3,d4]@6 [d3,a3,d4]@2 [d3,a3,d4] [a3,d4] [d3,a3,d4] ~ [c3,g3,c4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@3 ~@3 [g2,d3,g3]@2 ~@2 [d3,a3,d4]@6 [d3,a3,d4]@2 [d3,d4] [a3,d4] [d3,a3,d4] ~ [c3,g3,c4]@2 ~@2 [a2,e3,a3]@6 [a2,e3,a3]@12]/7", // A5 G5 D5 C5 A5 G5 D5 C5 …
  X: "e3 f#3 a3 b3 e3 f#3 a3 b3 e3 f#3 a3 b3 e3 f#3 a3 b3",
  Y: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [g2,d3,g3]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 ~ a3 [d3,a3,d4]@2 [d3,a3,d4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2, ~@11 [d3,a3,d4] ~@4]/2", // A5 G5 D5 C5 D5
  Z: "[[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3]@2 [a2,e3,a3]@2 [a2,e3]@2 [g2,d3,g3]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 ~ a3 [d3,a3,d4]@2 [d3,a3,d4]@2 [c3,g3,c4]@2 [d3,a3,d4]@2, ~@11 [d3,a3,d4] ~@4]/2", // A5 G5 D5 C5 D5
  AA: "[[a2,e3,a3]!6 [g2,d3,g3] [d3,a3,d4]@2 [d3,a3,d4]!5 [c3,g3,c4] [d3,a3,d4]]/2", // A5 G5 D5 C5 D5
  AB: "[a2,e3,a3]!3 [a2,e3] [a2,e3,a3] [a2,e3] [g2,d3,g3] [a2,e3,a3]", // A5 G5 A5
  AC: "[d3,a3,d4] d3!2 [d3,a3,d4] d3!2 [d3,a3,d4] d3", AD: "d3 [d3,a3,d4] d3!2 [d3,a3,d4] d3 [d3,a3,d4] d3",
  AE: "d3@2 [d3,a3,d4]@2 d3@2 d3@2 [d3,a3,d4]@2 d3@2 [d3,a3,d4]@2 [d3,a3]!2", AF: "[a2,e3,a3]@15 ~",
})).s("gm_overdriven_guitar").gain(0.39).pan(0.3)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@10 A B C D A E A F ~@18 G ~@3 H ~ G ~@81 I ~@3 J ~@11 I ~@11>".pickRestart({
  A: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ g2 ~ [g2,c3] ~ [g2,d3] ~", // D5 C5 G5
  B: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,c3] ~ [g2,c3] ~ [a2,d3] ~", // G5 C5 D5
  C: "[a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [g2,c3] ~ [g2,c3] ~ [g2,d3] ~", // D5 C5 G5
  D: "[g2,d3] ~ [g2,d3] ~ d3 ~ [g2,d3] ~ [g2,d3] ~ g2 ~ [g2,c3] ~ [a2,d3] ~", // G5 C5 D5
  E: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ g2 ~ [g2,c3] ~ [a2,d3] ~", // G5 C5 D5
  F: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~@9", G: "~@6 e3!2 ~@8", H: "~@7 e3 ~@8", I: "~@7 a3 ~@8", J: "~@6 a3 ~@9",
})).s("gm_overdriven_guitar").gain(0.22).pan(0.3)

// other · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~@66 A@2 B C D E@2 F@2 G@2 H@3 I J K L M N O P Q R@4 ~@38 S@6 T@2 U@3 V ~@9
>`.pickRestart({
  A: "[~@7 e4@3 e4@3 e4@3]/2", B: "e4@6 e4@2 d4 c4 a3@2 d4@2 c4@2", C: "a3 g3 a3@4 ~@2",
  D: "~@2 g4@6 e4 ~ d4@2 c4@2 d4@2", E: "[d4 c4 a3@2 d4@2 c4@6 a3@2 g3@8 ~@4 a4@6]/2",
  F: "[a4@6 a4@8 ~ e4@2 ~ c4@9 ~ g4 ~ a4@2]/2",
  G: "[~@2 c#5@4 b4 ~ c#5@2 b4 ~ a4 ~ f#5@4 e5@2 d#5 ~ d5@2 c5 ~ c#5@2 d5 ~ d#5 ~]/2",
  H: "[e5@2 c5 [c5,d5] a4 c5 a4 g4 e4 a4 g4 e4 d4@2 a4@10 ~@2 a5@14 a5@4 e5@2 g5@2]/3", // Csus2
  I: "e5 [e5,g5] d5 e5 d5 c5 d5!2 c5 a4 c5 c#5 d#5!2 c5@2", J: "c5@5 ~@3", K: "a3@2 d4 c4@5",
  L: "c4 ~ a3@6 c4@2 a3 ~ g#3@2 g3@2", M: "e3 d#3 d3 c3@2 d3@3", N: "a4@8 ~ a4@2 a4 ~ a4!2 ~",
  O: "a4!2 ~ a4 ~ a4!2 ~ a4!2 ~ a4 a4@4", P: "c4@2 a3@6 c4@2 a3@5 ~", Q: "e4 ~ d4 ~ d4 c4 a3 ~ d4@2 c4@6",
  R: "[a3@12 g3@2 f#3@41 ~@9]/4", S: "[~@8 a4@20 ~ g4@2 e4@29 d4@2 ~ a3@23 ~@10]/6", T: "[e4@15 d4@16 ~]/2",
  U: "[a4@14 g4 e4@9]/3", V: "d4@7 ~",
})).s("gm_overdriven_guitar").gain(0.55).pan(0.7)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  A B C D E F G H I J K L K L K M N O N O N O N O N P Q R N P Q R S T@2 U V U V W V U V U V U V U V U X T Y T Y T Y T Z
  ~@64 AA AB AA AB AA AB AC AD AE AF AE AF AE AF AE AF AE AF AE AF AE AF AG AH@4 AI ~
>`.pickRestart({
  A: "g2 a2 c3 d3 g2 a2 c3 ~ g2 a2 c3 ~ g2 a2 c3 ~", B: "g2 a2 c3 d3 g2 a2 c3 d3 g2 a2 c3 d3 g2 a2 c3 d3",
  C: "~@4 d3 ~@11", D: "~@10 c3 ~ c3 ~ d3 ~", E: "~@6 d3 ~@5 c3 ~ g2 ~", F: "~@2 g2 ~@7 c3 ~ c3 ~ d3 ~",
  G: "~@4 d3 ~@5 c3 ~ c3 ~ g2 ~", H: "~@2 g2 ~ g2 ~@5 c3 ~ c3 ~ d3 ~", I: "~@10 c3 ~@3 g2 ~", J: "~@2 g2 ~@13",
  K: "d3 ~@3 d3 ~ d3 ~ d3 ~ c3 ~ c3 ~ g2 ~", L: "g2 ~ g2 ~ g2 ~ g2 ~@3 c3 ~ c3 ~ d3 ~",
  M: "~@2 g2 ~ g2 ~ g2 ~@3 c3 ~ c3 ~ d3 ~", N: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ c3 ~ c3 ~ g2 ~",
  O: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ c3 ~ c3 ~ d3 ~", P: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ a2 ~",
  Q: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~", R: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ d3 ~",
  S: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ c3 ~ c3 ~ b2 ~", T: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~",
  U: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ d3 ~ d3 ~ a2 ~", V: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ d3 ~ d3 ~ e3 ~",
  W: "e3 ~@3 e3 ~ e3 ~ e3 ~ d3 ~ d3 ~ a2 ~", X: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ b2 ~",
  Y: "b2 ~ a2 ~ a2 ~ e3 ~@3 e3 ~ e3 ~ b2 ~", Z: "b2 ~@15", AA: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~ g2 ~ d3 ~",
  AB: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ c3 ~ c3 ~ a2 ~", AC: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~ g2 ~ a2 ~",
  AD: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", AE: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~ d3 ~",
  AF: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ c3 ~ d3 ~", AG: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~ a2 ~",
  AH: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~", AI: "a2@15 ~",
})).s("gm_electric_guitar_muted").gain(0.32).pan(0.1)

// other · electric guitar muted · soft notes
const electric_guitar_muted_2 = note("<A ~ B C D E F G H I J K J K J L ~@23 M ~@112>".pickRestart({
  A: "~@7 d3 ~@3 d3 ~@3 d3", B: "d3 ~ d3 ~@3 d3 ~ d3 ~ c3 ~ c3 ~ g2 ~", C: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@7",
  D: "d3 ~ d3 ~ d3 ~@3 d3 ~ c3 ~@5", E: "g2 ~@3 g2 ~ g2 ~ g2 ~@7", F: "d3 ~ d3 ~@3 d3 ~ d3 ~@7",
  G: "g2 ~@5 g2 ~ g2 ~@7", H: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~@3 c3 ~@3", I: "g2 ~@3 g2 ~ g2 ~ g2 ~ c3 ~ c3 ~ c3 ~",
  J: "~@2 d3 ~@13", K: "~@8 g2 ~@7", L: "g2 ~@7 g2 ~@7", M: "~@2 e3 ~@13",
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.1)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B@7 C B@16 D B E B D B E B@17 D B F B F B F B@33 G B@43 D B@3 H B@5 I@2 J@4 K@2
>`.pickRestart({
  A: "x ~@14 x", B: "x!4", C: "x ~ x ~@2 x ~ x", D: "x ~ x ~ x ~ x!2", E: "x ~ x ~ x!4", F: "x!5 ~ x ~",
  G: "x!3 ~ x ~ x ~", H: "x ~ x ~ x!3 ~", I: "x ~ x!3 ~ x ~", J: "x!8", K: "x",
})).gain(0.71)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A@32 B A@23 C@4 D A@2 E A@26 F A F A F A F A G A F A G A F A@7 H A@7 ~ A@6 C@2 A@19 I ~
>`.pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "x!4", D: "x!3 ~", E: "x!4 ~ x!3", F: "x!4 ~ x ~ x", G: "x ~ x ~ x ~ x ~@3 x!2 ~@2 x ~",
  H: "x!6 ~@2", I: "x",
})).gain(0.47)

// drums · low tom
const low_tom = s("lt").struct("<~@74 A ~@7 A ~@55 B ~@11 B ~>".pickRestart({
  A: "~@14 x!2", B: "~@15 x",
// … 34 more lines

More by Rossi Vasco