Strudelify
Alba chiara cover art

Alba chiara

Rossi Vasco

KeyC majorTempo70 bpm
0:00/0:00
// Alba chiara — Rossi Vasco
// 70 bpm, 4/4, key C 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 5 distortion guitar (copy of ch 6 overdriven guitar); ch 13 distortion guitar (copy of ch 9 overdriven guitar, 0.5 beats late)
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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 · piano
const piano = note("<A@7 B@2 C@8 D E F G H E F I J K@3 L@5 M@4 N@8 O@8 P Q@3 R S T ~>".pickRestart({
  A: "[~@21 b4@4 ~@4 c5@4 ~@13 a4!2 ~ [g4,b4]!3 ~ [a4,c5] ~@3 [b4,d5]!3 b4 [g4,b4]!3 ~ [a4,c5]!2 c5 ~ [b4,d5] ~ [b4,d5]!2 ~ [c5,e5] ~ [c5,e5] [c5,e5]@2 [c5,e5]@9 ~@8 [b2,d5]@8 [a2,e5]@7 ~, ~@13 d5@14 c5 d5@20 a4@4 [g4,b4]@9 ~@3 g4@24 g4@15 ~@9, ~@13 f3@6 ~@6 a4@4 [c3,e5]@32 [g2,g3]@27 [c3,c5,e5]@8 ~@16, ~@15 f4@18 c5@15 f#4@20 c5@5 [b4,d5]@15 ~@4 g5@20, ~@17 c5@9 b4@9 g4@10 d3@19 b4@4 a4@20 ~@24]/7", // G Am Bm G Am Bm C Bm …
  B: "[~@4 d3@3 ~@5 c5@7 ~ d4@3 ~@5 d2@2 ~ g#2, d5@5 ~@3 a4@11 ~@8 [c4,f#4]@5, ~@3 e5@4 ~ [f2,f4]@8 ~@8 [d3,a3,d4]@8]/2", // Cdim F D5
  C: "[g2@2 [b3,g4] [a2,c4]@2 [b2,d4]@3 ~@8 b2@6 ~ b2 [a2,a3]@4 c4@2 ~@2 d4@2 ~ g3@2 ~ g2@2 a3@3 ~ c4 d4 ~@5 d4@4 ~@3 c4 [a3,d4]!2 e4 ~@4 [g2,g3,b3,g4] [a2,g3,c4,g4] ~ [b2,c#4] [g2,a2] ~ [c4,e4]@2 ~ c4 [c4,e4]@2 ~@4 b3 ~@2 g3 ~@3 d4 ~ [a3,c4]@2 d4 ~ g3 ~ g3 c4 g3@2 ~ f#2@2 [a3,c4]@3 ~ [a3,c4]@2 ~@5 g3@2 c4@2 e3 ~@7 c4, ~@3 g4 ~ g3@8 ~@11 [c4,e4]@3 ~@8 d4@5 f2@7 ~ e2@7 ~ d2@6 ~@10 c2@5 ~ c2@2 b2@4 b2@4 a2@8 g2@6 ~@2 f2@8 e2@7 ~ d2@5 ~@3, ~@5 g4@6 ~ g4@53 d4@2 ~@5 g4@10 ~ g4@15 ~ g4@16 [d4,e4,g4]@5 ~@5 d4@2 ~, ~@8 [c3,e4]@9 ~@15 g2@5 c4@6 ~ f3@3 ~@11 a2@4 ~@2 g2@2 ~@6 c3@7 g3@5 ~@3 [a3,c4]@4 ~@10 c4@2 ~@4 c3@5 ~@11 a2@3 e4@2, ~@8 c4@7 d4@12 ~@8 e4@9 ~@2 d4@4 ~@12 [a3,e4]@4 ~@3 [g3,d4,g4]@3 g3 ~@3 d#4 ~@2 d4@3 ~ d4@3 ~@9 [c4,e4]@3 ~ [d4,e4]@5 ~@4 f3@3 [g3,c4]@2 ~@11 [f#3,a3,c4]@3 ~]/8", // Em Am Bm A D5 G Am7 Bsus2 …
  D: "~@2 [g2,b3,f4,g4] [b2,c4,g4] ~ [b2,g3,d4,g4]@3 [g4,c5] c3!2 [g4,c5]@4 ~, ~ g3@2 a2@2 ~@11", // G7 Cmaj7 G C5
  E: "[g4,b4] b2!2 [g4,b4]@5 [e4,a4] ~ a2 [e4,a4]@5", F: "[d4,g4] g2!2 [d4,g4]@5 [c4,f4] f2!2 [c4,f4]@4 ~",
  G: "[g4,c5] c2!2 [g4,c5]@4 ~ [d4,a4] ~ d2 [d4,a4]@5", H: "[d4,g4] g2!2 [d4,g4]@5 [g4,c5] c3!2 [g4,c5]@4 ~",
  I: "[g4,c5] c2!2 [g4,c5]@4 ~@2 [a3,d4]!4 [g#3,c#4] [g3,c4] [f#3,b3]", // C5 D5 C#5 C5 B5
  J: "~ [g3,g4]!4 [f#3,f#4] [f3,f4]@2 [d3,a3,d4]!5 [c#3,g#3,c#4,d#4] [c3,g3,c4,c#4] [b2,g3,b3]", // G F# F D5 C#sus2 C Em
  K: "[~ [g3,g4]!4 [f#3,f#4] [f3,f4]@2 [c4,e4,g4]@3 ~ f4 ~ c2@2 [b2,b3,g4]@4 ~@2 b2@2 [c4,e4]@3 ~ [c4,e4]@2 a2@2 [g2,e4]@4 ~@2 g2@2 [a3,c4]@3 ~ [f3,a3,c4,f4]@4, ~@8 g3@14 ~@2 a3@7 ~ b3@3 ~ [d4,e4]@5 ~@2 c3@5, ~@8 c3@8 f4 ~@3 g4@15 ~ g4@8 ~@4, ~@8 c2@4 [c4,e4,g4]@4 [d4,e4]@3 ~ [b3,d4]@4 a2@4 ~@4 g3 ~@7 f2@7 ~]/3", // G F# F C Em C Am F …
  L: "[[g3,c4,e4]@3 g3!2 ~ e3 ~ [a3,c4,d4,f4]@4 a3@2 ~@4 b3!2 a2@2 [b2,d4]@2 [c4,e4,g4]@3 ~@4 g3 b2@4 ~@2 b2@2 [c4,e4]@3 a3 a3@2 a2@2 g2@3 ~ [d#4,e4] ~ g3 [g3,a3] [a3,c4]@3 ~ [a3,c4]@2 f3 a3 [g3,c4] g3 c4 d#4 ~ c4 g3 c4 [a3,c4,d4] a3 c4 a3 ~ a3 [a2,c4] g#2, e2@7 ~ d2@6 d3@2 g2@4 c4 ~@3 g3 ~@3 [c4,g4]@4 d4@8 a3 ~@3 c4@4 g3 ~@2 b3@3 ~@13 g3@3 ~@5 [c4,c#4,d4]@2 ~@3, ~@4 [d4,e4]@4 ~@7 a3@2 g3@4 ~ [g3,g4] ~ c3@8 g4@3 ~ g4@15 ~@3 e4@12 ~ [d4,e4]@5 f4@2 ~@6, ~@5 c4@2 ~@5 [c4,d4,f4]@6 ~ g4@3 ~@6 e4@8 ~@8 e4@6 ~@3 f4@2 ~@13 e3@3 ~@5 d3@2 ~@2, ~@30 c2@2 g3 ~@7 a2@5 ~@7 [g2,g3]@3 ~ f2@8 e2@7 ~ d2@5 ~@3]/5", // C Dm7 Bm C Emaj7 Gsus2 Am C5 …
  M: "[~@2 [g2,b3,g4] [c4,g4] ~ g3 b2@2 [c3,g3,c4,g4] ~@2 [c3,g3,c4]@5 d4@8 [a2,a3,c4] ~@2 [a2,a3]@5 g2@8 a3@2 ~ [f2,a3]@5 [e2,g3]@6 ~@2 d2@6 ~@2, g2@2 ~ a2@2 ~@22 c4@27 ~@10, ~ g3@3 ~ [d4,g4]@3 ~@3 g4@27 ~@2 f2 ~@23]/4", // G C5 Am A F Em G5
  N: "[~@2 [g2,b3,g4] [a2,c4]@2 ~ b2 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@2 c2 ~ [b2,d4,e4]@4 d#4 ~@2 g3 [c4,e4]@3 ~ d#4 ~@2 a3 [g2,g3,c4,e4]@4 g3@2 g2@2 [a3,c4]@3 ~@2 c4 ~ g3 ~@5 c4 g3 c4 [d4,f#4]@2 a3 [a3,c#4] ~ a3 b2 a2 [g2,a2] ~ [g2,b3,g4] [c4,g4] ~@2 b2 ~ [c3,g4,c5] ~@6 [b2,g4,b4] ~@8 [a2,e4,a4] ~@6 [g2,e4,g4] ~@8 [f2,c4,f4] ~@6 [c2,g4,c5] ~@8 [d2,a3,d4]@8, ~ g3@2 g4 ~ [d4,g4]@3 c3@8 g4@2 ~@2 g4@30 ~@2 e3@4 d3@4 c3@2 ~@5 a2@2 ~@59, ~@8 [c2,g3]@4 ~@10 b2@2 [a2,a3]@6 a2@2 ~@8 f2@7 ~ e2@6 ~@74, ~@8 b2 ~@3 f4 ~@2 g3@3 ~@2 [d4,e4]@4 ~@4 [c4,e4]@4 d#4 ~@3 [c4,d4,e4]@4 ~@3 f3@4 [c4,d4]@3 ~ [d4,e4,g4]@4 ~@4 [d4,f#4]@2 ~ [d4,f#4]@4 ~@3 d4@51 ~@8, ~@44 a3@2 e4@4 ~ g3@2 ~@3 a3 ~@5 a3@2 ~ g3@2 ~@2 [g3,g4]@2 ~@57]/8", // G Am C E7 C Am D A …
  O: "[[d4,g4]@4 f4 ~@11 d5@2 ~@6 e5@3 ~ e5@3 ~ e5@3 d5@2 ~ c5 ~ [f3,a4] ~ [f3,f4,a4] ~ [f3,f4,a4]@3 g4@4 ~@3 e3 ~ [d2,c5]!2 d2 [d2,c5] [d2,d4,c5]!3 [d4,c5] [d4,c5] [g2,d4,g4,b4]!2 [d4,g4,a4,b4] ~@2 b2@2 c3 ~@4 c5@2 ~ [g4,b4,d5]@3 ~@5 [a4,c5]@3 ~@5 [g2,c5,e5]@2 g4 c5 g2 a4 g2@2 [c4,f4,a4]@3 ~ c4@2 f3@2 [e4,g4,a4,c5]@3 ~ c4@2 e3@2 [d4,f#4,a4,c5]@3 ~ d5 ~ f#2 ~, g2 ~@3 d4@43 ~@6 e4@2 ~@14 [d4,g4,a4,b4]@3 d4@8 d4@7 d4@33 ~@8, ~@11 g5@8 ~@3 g5@16 ~@13 c5@4 ~@17 c4@5 f4 ~@2 [c4,c5] ~@3 [g4,b4,d5]@4 ~@4 [a4,c5,e5]@4 g4 ~@2 [g4,b4,d5]@2 ~@15 [e4,g4,c5]@4 ~@8, ~@24 a3@7 ~ g3@6 ~@9 [e3,e4]@6 ~@10 d2@2 ~@2 a2@2 ~ a2 ~ [e4,g4,c5]@4 [e4,g4]@3 ~ b2@4 ~@2 b2@2 [a2,e4]@6 a2@2 ~@8 [f2,c5]@7 ~ e2@6 ~@2 d2@6 ~@2, ~@73 c2@5 ~ c3@2 ~@14 e4@2 ~@4 [e4,c5]@2 ~@5 [f4,a4]@4 [c4,b4] ~@7 c4 ~@3 [c4,d4,f#4,a4,c5]@4]/8", // G5 F D7 G Am C F Am7 …
  P: "~@4 [a4,b4,d5]@2 g2 ~ [e4,g4,c5]@3 ~ [e4,g4,c5]@2 c3@2, [g2,d4,g4,b4] d4@3, ~@3 d3@3 ~@2 c2@4 ~@4, ~@4 [a3,b3] ~@3 c4@7 ~", // Bm7 C G Asus2
  Q: "[[g4,d5]@3 ~@3 b2@2 [a2,e4,a4]@4 d5 ~ a2@2 [g2,g4,c5,e5]@3 g#4 ~ a4 e4 ~ [f4,a4,c5]@3 ~@3 f2 ~ [c4,g4,a4,c5]@3 ~ c4@2 ~ c4 [d3,f#4,a4,c5] ~ [d3,d4,f#4,a4,c5]!2 [d3,f#4,a4,c5] [c#3,c#4] [c3,c4] [b2,b3,c4], d4@4 d4@16 d4 ~ d4@2, b2@4 [g4,d5]@4 c5@3 ~@8 [b4,c5]@3 ~@2 [f2,c4]@6 ~@2 e2@6 ~@10, ~@8 g4 ~@3 [e4,a4,b4,c5,e5]@5 ~@3 g2@3 f3@8 ~@7 e3@2 ~@8, ~@7 [f4,a4,c5] ~ [g4,a4,c5] ~@2]/3", // G5 A5 C F Am7 D7 C# C …
  R: "~ [g2,g3,b3,d4,g4]!4 [f#3,b3,d4,f#4] [f3,b3,f4] ~ [d2,e2,d3,a3,d4] [d2,d3,a3,d4]!3 [d2,d3,a3] c#4 [c3,a3,c4] [b2,b3], ~@3 d4 ~@2 d4@2", // G Bm Fdim Dsus2 D5 F B
  S: "~ [g2,g3,b3,d4,g4]!4 [f#2,f#3,b3,f#4] [f2,g2,f3,b3,f4] ~@9, ~@5 d4@2 ~@9", T: "[c2,c3,g3,e4,g4], c4@3 ~@5",
})).s("gm_piano").gain(0.41)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A@4 ~ B@2 C D E F G H I J K ~ L ~ M ~ L ~@2 N ~ O P O Q R S T U V ~@2 W X Y Z AA ~@3 AB AC AD@2 AE AF AG AH AI AJ AK
  ~ AL ~ AM ~
>`.pickRestart({
  A: "[~@15 g4@4 ~@10 [f#4,a4] f#4!2 ~@6 [a4,c5]!2 ~@11 a4 ~@12, ~@3 f3@32 ~@5 [a4,c5]@9 ~@15, ~@21 c4@32 ~@11, ~@29 d4@32 ~@3, ~@44 d5@9 ~@11]/4", // F#m Am
  B: "[~@8 a4@4 ~@4 g2@7 ~@3 c4@2 ~ c4 ~ f3, ~@8 c5@3 ~ c5@4 ~@16, ~@7 g4@5 ~@4]/2",
  C: "~ c4 ~ c4 ~@2 g3 ~@7 a2 ~, e3 ~, ~@5 e4@3 ~@8", D: "~ g3@3 ~@10 g3@2",
  E: "~@2 b3@4 g3 ~@5 e4@2 ~ [a3,c4], ~ g3@4 ~@9 a2@2", F: "g3 c4 g3 ~@4 g3 ~@4 a3@3 ~, ~@11 c3@4 ~",
  G: "~ g3 ~@3 c4 g3 c4@2 a3 ~@3 e2 f#3@2, ~@2 c4@2 e3@3 ~@9, ~@3 g3@3 ~@10", H: "~@10 g3@3 d#2 ~ c4",
  I: "~@6 b3 ~@3 e4 ~@3 e4 ~", J: "~@14 e4 ~, ~@13 d4@2 ~", K: "~ g3 c4 ~@3 e3 ~@2 a3 c4 a3 ~@4", L: "~@9 a2 ~@6",
  M: "~@9 d2 ~@6", N: "~@12 a#3 ~@3", O: "~@7 g3 ~@8", P: "~@2 g3@3 b3@2 g3 ~@8", Q: "~@5 g3 c4 g3 ~@2 g3@4 ~@2",
  R: "~@2 g3@3 g3 ~ g3 ~@8", S: "~ b3 g3 ~@3 d#4 ~@9", T: "~@15 a3", U: "d3 ~@3 g3 ~@11", V: "b2 ~",
  W: "~@14 d#2 ~, ~@13 g3@2 ~", X: "d#4 ~ g3@4 ~@10", Y: "~@7 g3 e4@4 ~@3 c#4, ~@8 d4 ~@7", Z: "~ g3 c4 ~@13",
  AA: "~@2 d4 ~ g3 ~@11", AB: "~@10 c5@5 ~, ~ [c4,e5], ~@9 g4@7",
  AC: "~@4 d5@5 ~@2 c5@3 ~ a4, b3@7 ~@9, ~ g4@7 ~@2 a4@3 ~@3, ~ b4@3 ~@4",
  AD: "[g4@2 ~ g4@2 e5 ~@2 f4 ~@5 c4 d4@9 d4!2 [d4,c5] d4 ~@4]/2", AE: "~ c5 ~ f#4 [d4,b4] ~@11", AF: "a#4 ~@15",
  AG: "~ e4@2 ~ e4 ~@10 c4", AH: "~@2 c4@2 ~@3 c4 ~@2 d4@2 ~@4, ~@10 c4 ~@5", AI: "d3 ~@7 c3@6 ~@2", AJ: "~@8 d5 ~@7",
  AK: "~@3 e5@3 ~@9 c4, ~@2 e4@3 ~@11", AL: "~@14 c#3 ~", AM: "~@7 c4@9",
})).s("gm_piano").gain(0.18)

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

// bass · electric bass finger · soft notes
const bass_soft = note("<~@10 A B C ~@3 D ~@12 E ~ F G H I ~@4 J K L M ~@11 N ~@6 O>".pickRestart({
  A: "~ a1", B: "g1 f1", C: "~ d2", D: "~@5 e2 ~@10", E: "~@15 g#1", F: "~@11 c2 ~@4", G: "~@3 d2 ~@8 c2@3 ~",
  H: "~@6 c2 g#1 ~@8", I: "~@7 d#2 ~@8", J: "~@3 d#2 ~@7 d#2 ~@4", K: "~@2 d#2 ~@3 b1 ~", L: "~@6 f#1 ~",
  M: "~ g2@2 ~@13", N: "e1 ~@15", O: "~@2 f2 g2 ~ [d#2,e2] d2 ~@9",
})).s("gm_electric_bass_finger").gain(0.17)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@5 A@5 B@4 C D@3 ~@44>".pickRestart({
  A: "[~@8 [c3,e4]@8 [b2,d4]@8 [a2,e4]@8 [g2,d4]@8 f2@8 c3@8 f#2@8 ~@4 b3@3 ~ [c3,c4,e4]@8, ~ c4@4 [c4,e4]@2 d4@2 ~, ~@14 c4@3 ~@3, ~@8 g2 ~]/5", // C Bm A5 G5 C
  B: "[[b2,d4]@2 [a2,e4]@2 [g2,d4]@2 f2@2 c3@2 f#2@2 ~ b3 [c3,c4,e4]@2, ~@8 c4@16 [c4,e4]@15 ~ d4@16 ~@8, ~@10 c4@3 ~@3, ~@6 g2 ~]/4", // Bm A5 G5 C
  C: "[b2,c4,d4] [a2,c4,e4]", D: "[[g2,c4,d4]@2 f2@2 c3@2 [f#2,c4]@2 b3 c4 ~@2, ~ [c4,e4]@2 d4@2 ~, ~@4 g2 ~]/3",
})).s("gm_string_ensemble_2").gain(0.08).pan(0.2)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@17 A B C D E B C F G H I J K L I M K N O M K L O M P Q R S@2 T ~@3 U O V W N X ~@6
>`.pickRestart({
  A: "~@8 [g3,c4] c3!2 [g3,c4]@3 ~@2", B: "[g3,b3] b2!2 [g3,b3]@5 [e3,a3] a2!2 [e3,a3]@5",
  C: "[e3,g3] g2!2 [e3,g3]@5 [c3,d3,f3,f#3] f2!2 [c3,f3]@5", // Em D7 F5
  D: "[g3,c4] c2!2 [g3,c4]@4 [c#2,c#3] [d3,a3] d2!2 [d3,a3]@5", E: "[e3,g3] g2!2 [e3,g3]@5 [g3,c4] c3!2 [g3,c4]@3 ~@2",
  F: "[g3,c4] c2!2 [g3,c4]@4 [c#2,c#3] d3!5 c#3 c3 b2", G: "~ g3!4 f#3 f3 ~ d3!5 c#3 c3 b2",
  H: "~ g3!4 f#3 f3 ~ [g3,c4]@7 ~", I: "[g3,b3]@8 [e3,a3]@7 ~", J: "[e3,g3]@7 ~ [c3,f3]@8",
  K: "[g3,c4]@7 ~ [a2,d3]@7 ~", L: "[d3,g3]@7 ~ [g3,c4]@7 ~", M: "[e3,g3]@7 ~ [c3,f3]@7 ~", N: "[d3,g3]@8 [g3,c4]@7 ~",
  O: "[g3,b3]@7 ~ [e3,a3]@8", P: "[c3,e3] [a2,d3]", Q: "[d3,g3]@7 ~ [g3,c4] ~@6 [g3,b3]", R: "~@8 [e3,a3] ~@6 [e3,g3]",
  S: "[~@8 [c3,f3] ~@6 [g3,c4]@2 ~@7 [a2,d3]@8]/2", T: "[d3,g3]@9 ~@7", U: "~@8 [g3,c4]@7 ~",
  V: "[e3,g3]@8 [c3,f3]@7 ~", W: "[g3,c4]@7 ~ [a2,d3]@7 ~, ~@8 g2 ~@7", X: "[g3,b3] ~",
})).s("gm_overdriven_guitar").gain(0.11).pan(0.8)

// other · rock organ
const rock_organ = note("<~@17 A B ~@2 A B C ~@10 D@5 ~@23>".pickRestart({
  A: "~@13 c5 [f5,f#5,g5,c6] c5", B: "~@13 [d#5,e5,a5]!2 [e5,g5]", C: "~@7 [e5,f5] c5 ~@7",
  D: "[~@10 e5!3 f5 g5 e5@2 f5 g5 e5@2 f5 g5 e5@2 f5 g5 e5@2 f5 g5 e5@2 f5 g5 e5@4 ~@5 e5 f5 g5 e5@5 ~@5 f#5!4 g5 a5 g5@5 ~@12]/5",
})).s("gm_rock_organ").gain(0.23).pan(0)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@9 A@5 B@4 ~@3 C D@2 E ~@13 F@5 ~@19>".pickRestart({
  A: "[~ d4@3 c4 ~ g3@2 c4@28 e4 f4 ~@2 c4@12 ~ [d#4,e4] c5@18 c5@8, ~@39 g4@2 ~@39]/5", // Emaj7
  B: "[~@25 a4@2 ~ e4@2 ~@10 d4@15 ~@9, b4@16 g4@11 g4@2 ~ c4@10 c#4 ~@23, ~@8 a4@12 ~@11 g4@12 ~@21]/4",
  C: "~@12 e6 f6 e6 c6", D: "~@4 e6 f6 e6 c6 ~@4 e6 f6 e6 c6", E: "~@4 e6 f6 e6 c6 ~@8",
  F: "[~@10 e4!5 d4@2 c4 b3 d4@2 c4 b3 c4@2 b3 a3 c4@2 b3 a3 c4@2 g3@2 g3 c4 b3 a3 c4@2 f3@3 c4 b3 a3 c4@2 g3@4 g3 a3 b3 c4 ~ f#3 a3 f#3@2 a3 g3@5 ~@12, ~@57 a3@2 ~@21]/5",
})).s("gm_electric_guitar_jazz").gain(0.3).pan(0.9)

// other · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@9
  [~@5 a3 ~@10]
  ~@11
  [~@12 e5 f5 e5 c5]
  [~@4 e5 f5 e5 c5 ~@4 e5 f5 e5 c5]!2
  [~@4 e5 f5 e5 c5 ~@8]
  ~@37
>`).s("gm_electric_guitar_jazz").gain(0.19).pan(0.9)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@50 A@5 B C D E F G H>".pickRestart({
  A: "[~@7 c5@5 d5 e5 f5 f5@6 ~ e5 [e5,f5] ~ d5 c5 d5@3 c5 g4@6 ~@2 a4@4 c5@4 d5@4 e5@4 f5@15 ~@2 c6@7 b5]/5", // Fmaj7
  B: "c6 b5 a5 g5 ~ f5 e5 e5@6 d5 c5 d5", C: "e5 c5 ~ g4@4 g4@3 ~@3 c5 d5 ~", D: "d5@6 c5 ~ d4!5 c#4 c4 b3",
  E: "~ g4!4 f#4 f4 ~ d4!5 c#4 c4 b3", F: "~ g4!4 f#4 f4 ~@9",
  G: "~ c5 ~ c5 ~ c5@6 a#4 [g4,c5] [g4,a#4] [f4,f#4] [c4,d#4]", // C5 Gm F#maj7 Cm
  H: "[d#4,f4] [a#3,c4] [g3,a#3,c4] [f#3,g3] [d#3,f3] c3@6 ~@5", // D#sus2 A#sus2 C7 Gmaj7 D#sus2
})).s("gm_overdriven_guitar").gain(0.16).pan(0.9)

// other · guitar harmonics
const guitar_harmonics = note("<~@22 A B ~@36 C@2>".pickRestart({
  A: "~@5 c4@8 ~@3", B: "~@5 g3@2 [e3,f3] c3@8", C: "[~@2 c4@3 ~@3]/2",
})).s("gm_guitar_harmonics").gain(0.18).pan(0.9)

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

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

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@17 A ~@6 B@2 A ~@19 C ~@3 D ~@6 B@2 ~@3>".pickRestart({
  A: "~@5 x ~@10", B: "~@8 x!2 ~@6", C: "~ x!3 ~@12", D: "x!2 ~@14",
})).gain(0.15)

// drums · low tom
const low_tom = s("lt").struct("<~@21 A B@2 ~ C ~@4 D ~@11 E ~@6 D@2 ~@3 D ~@3 C ~@2 F>".pickRestart({
  A: "~@7 x ~@6 x ~", B: "~@7 x", C: "~@6 x ~@8 x", D: "~@7 x ~@8", E: "~@5 x!3 ~@8", F: "~@3 x ~@4",
})).gain(0.37)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 A ~@6 B C D ~@3 E ~@7 A ~@3 F ~@6 G E ~@3 E ~@2 B C D ~ H>".pickRestart({
  A: "~@7 x ~@8", B: "~@13 x!2 ~", C: "~@5 x ~@7 x!2 ~", D: "~ x!2 ~ x!2 ~@10", E: "~@3 x ~@4", F: "~ x ~@2",
  G: "~@4 x!3 ~@9", H: "~@4 x!2 ~@10",
})).gain(0.3)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@42 [~@3 x ~@12] ~@19>").gain(0.11)

// drums · open hat
// … 43 more lines

More by Rossi Vasco