Strudelify
Ridere di te cover art

C'è Chi Dice No

Ridere di te

Rossi Vasco

KeyD majorTempo78 bpm
0:00/0:00
// Ridere di te — Rossi Vasco
// 78 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/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 · "Bass"
const bass = note(`<
  ~@30 A B A C A D E F G F H I J D K F G F H L M N M O M N P Q B R S T U V W V X Y M Z M O M Z P Q B R AA AB AC AB AA AB
  AC AB U AD U V W AE X AF U AD U V W AE X AF U AD U V W AG
>`.pickRestart({
  A: "b2 a2", B: "g2", C: "g2@15 ~", D: "g2@3 a2", E: "b2@7 ~ a2@7 ~", F: "g2@3 f#2", G: "e2 f#2", H: "e2 a2",
  I: "d2@8 a2@5 ~ a2 a#2", J: "b2@8 a2@5 d2@3", K: "b2@6 f#2@2 a2@7 ~", L: "d2@2 d2 c3", M: "g2 a2", N: "b2@3 a2",
  O: "b2@8 a2@7 ~", P: "g2@7 g2 a2@8", Q: "b2@3 b2 a2@4", R: "a1!2", S: "b2@7 b2 a2@4 e2@4",
  T: "g2@7 d2 g2 ~ g2@3 a2@3", U: "b2 f#2 a2 e2", V: "g2@7 d2 g2 ~ g2@3 f#2@3", W: "e2@7 ~ f#2@6 e2 f#2",
  X: "e2@7 e2 a2@6 ~ a2", Y: "d2@7 a1 d2 ~ d2@3 a2@3", Z: "b2@7 f#2 b2 ~ b2@2 a2@4", AA: "b1@2 [e1,g1,a#1] ~@9 g1 ~@3",
  AB: "a1@7 ~", AC: "b1@2 [f#1,g#1] e1 ~@8 g1 ~@3", AD: "g2@7 d2 g2 ~ g2@2 a2@4", AE: "g2@7 d2 g2 ~ g2@2 f#2@4",
  AF: "d2@7 d2 a2 ~ a1@3 a#1@3", AG: "g2@7 d2 g2 ~ g2@2 f#2@3 ~",
})).s("gm_fretless_bass").gain(0.4)

// chords · electric guitar clean · "Clean gt"
const electric_guitar_clean = note(`<
  A B C B D@2 E@2 F@3 G H@2 I@2 J K@2 L M N O P Q R S T U@2 V@2 W@2 X@2 Y@2 Z@3 AA W@2 AB@2 AC AD@2 L AE AF AG AH AI AJ
  AK AL AM@2 W@2 AB@2 AC AD@2 L AE AF AG AH AI AJ AK AL AM@2 A B C B A B C B AN@2 AB@2 AO AP@2 AQ W@2 AB@2 AR AD@2 AS
  AT@2 AB@2 AU AV
>`.pickRestart({
  A: "b3 d4 f#4 g4@2 f#4 ~@6 [g3,e4] ~@3", B: "[a3,c#4]@15 ~", C: "b3 d4 f#4 g4@2 f#4 ~@6 [g3,e4] [g#3,a3,f#4] ~@2",
  D: "[f#3@2 ~ b3@2 ~ [b2,b3]@2 [e3,a3]@2 e3 a3 ~@2 e3@2 b3@2 ~@6 g3@4 [a2,e3,a3]@4, b2@5 d4@7 b3@3 ~ g3@5 d4@7 ~@4, ~@2 f#3@6 a2@8 g2@11 ~@5, ~@11 e3@2 d4@6 f#4@9 ~@4, ~@9 b3@5 ~@2]/2", // B A5
  E: "[[f#3,b3]@2 ~@4 f#3@2 a3@3 a3 ~@2 e3@2 ~@3 d4@2 ~@3 g3@2 ~ b3 [f#2,f#3,b3]@3 ~, b2@8 [a2,e3]@7 ~ [g2,b3]@12 ~@4, ~@2 f#3@3 d4@8 d4@6 f#4@7 ~@6, ~@3 b3@5 ~@4 b3@4 g3@8 ~@2 g3@2 ~@4, ~@21 d4@11]/2", // B5 A5 G
  F: "[~@3 b3@2 ~ [e3,b3]@2 d3@2 ~@6 g4@2 ~@6 b3@2 ~@4 d3@2 [b2,e3]@2 ~@4 [b2,e3]@2 [a3,d4]@3 ~ [a3,c#4]@2 [e3,a3]@2, [e2,b2]@8 [f#2,a3]@8 g2@11 b3@8 e4@5 ~@4 e4@4, e3@5 e4@3 ~@3 e4@5 ~@3 g4@9 f#2@4 e2@8 ~@8, ~@2 g3@6 ~@2 d3@3 d4@3 b2@5 b3@3 ~@2 g3@6 ~@5 [g3,b3]@3 e3@4 ~@4, ~@7 d3@2 d3@2 d3@2 d3@2 ~@2 [b2,e3]@2 ~ a2@4]/3", // E5 D5 A A5 E5 F#m G E5
  G: "[d3,a3]@2 ~@2 f#4 ~@2 [a3,d4] a3@2 [a3,d4]@2 [a3,d4] [a3,c#4]@3, f#4@2 d4 [d3,a3] [a2,e3]@4, ~@2 [d3,a3]@3 e4@5 ~@6", // D5 A D5 A5 D5
  H: "[[f#3,b3]@2 ~ [b3,d4]@2 ~ f#3@2 [e3,a3]@2 ~ a3 ~@2 e3@2 ~@7 [g3,b3]@3 g3 ~@3 [e3,c#4]@2, b2@7 ~ a2@8 g2@12 [a2,f#3]@4, ~@2 f#3@3 d4@7 b3@3 ~ [g3,b3]@7 ~@4 a3@5, ~@5 b3@3 ~@2 e3@3 d4@8 d4@9 ~@2, ~@19 f#4@4 ~@4 e3@3 ~@2]/2", // B5 Bm A5 G C#m D G
  I: "[b3@3 ~@3 f#3@2 a3@3 ~@3 e3@2 ~@7 g3@3 g3@2 [g3,b3] [f#3,c#4]@3, b2@2 a2@2 g2@3 f#2, f#3@5 b3@3 ~@3 a3@5 [g3,b3]@7 b3@5 ~@4, ~@3 d4@9 b3@3 ~@4 f#4@13, ~@13 d4@8 d4@8 ~@3]/2", // G F#5 G
  J: "e3 ~@2 e3 ~@3 a2, [e2,b2]@8 f#2@5 d4@2 ~, ~@2 e3@3 e4@5 ~ e4@4 ~, ~@3 b3@5 [d3,a3]@8", // E5 D5
  K: "[~@6 f#2@2 e3 ~@2 [b2,e3] [a3,d4]@2 [e3,a3]!2, [g2,b2]@11 g4@4 ~@4 e4@5 ~@8, g3@6 d3@2 g3@10 [e3,g3]@5 ~@9, ~@2 d3@3 b3@11 ~@5 b3@3 ~@4 c#4@4, ~@3 g4@7 d3@6 [e2,b2]@7 ~ a2@8]/2", // E5 D5 A5 G Em E5
  L: "[d3,a3] ~@3 [a3,d4] ~@2 [a3,d4], d4@5 f#4@11, ~@2 d3@3 d4@3 ~@3 d4@3 ~@2, ~@3 a3@5 ~@2 a3@4 ~@2, ~@3 d3@2 d3 c3@2", // D5
  M: "g3@2 ~@4 d3@2 [a3,c#4]@2 ~ c#4@2 ~ [e3,a3]@2, g2@8 [a2,e3]@7 ~, d3@5 b3@3 ~@2 a3@4 ~@2, ~@2 g3@6 ~@5 [c#4,e4]@3, ~@3 g4@5 ~@8", // A A5 C#m
  N: "f#3@2 ~@6 f#3@2 ~ d4 c#4 d4 [f#3,a3,c#4]@2, b2@3 [a2,f#4], b3@7 d4@3 f#3@4 ~@2, ~@2 f#3@3 f#4@7 ~@4, ~@3 d4@3 f#3@2 b3@6 ~@2", // F#m D
  O: "d3@2 ~@4 d3@2 [e3,a3,c#4]@2 ~ [a3,c#4]@2 ~ [e3,a3]@2, g2@7 ~ a2@8, [g3,b3]@5 [g3,b3]@3 ~@5 [c#4,e4]@3, ~ d3@2 ~@2 e3@2 ~, ~@3 g4@5 ~@8", // A A5 G C#m
  P: "[f#3,b3,d4]@2 ~ b3@3 [f#3,b3]@2 [a3,c#4]@2 [a3,c#4]@2 ~ b3 [a3,c#4,f#4]@2, b2 a2, ~ f#3@2 ~@2 e3@3, ~@3 d4@5 ~@4 [a3,c#4]@2 ~@2", // Bm B5 A F#m A
  Q: "g3@2 ~@5 b3 [e3,c#4]@2 ~ c#4@2 ~ [e3,a3,c#4]@2, g2 a2, [d3,b3]@3 d3 ~ e3@2 ~, ~@2 g3@3 [g3,b3]@3 a3@6 ~@2, ~@3 g4@4 ~@6 e4@3", // C#m A G
  R: "f#3@2 ~@9 d4 c#4 d4 [a3,c#4]@2, b2@3 [a2,f#4], b3@5 f#4@3 ~@2 b3@2 b3@2 ~@2, ~ f#3@2 [f#3,b3]@2 f#3@2 ~, ~@3 d4@5 [d4,f#4]@4 ~@4", // A D B5 D
  S: "g3@2 ~@3 g3 [d3,g3]@2 [e3,a3]@2 ~ a3@2 ~ [d3,g3,b3]@2, g2 a2, [d3,b3]@6 ~@4 e3@3 ~@3, ~@2 g3@3 b3@3 c#4@5 e4@3, ~@3 g4@4 ~@9", // G5 A5 G
  T: "d4@3 ~@3 [f#3,b3]@2 [e3,c#4]@3 ~@3 a3@2, b2@8 [a2,a3]@7 ~, [f#3,b3]@6 ~@7 e3@3, ~@3 d4@5 ~@3 [c#4,e4]@5", // B5 C#m A B5 C#m
  U: "[~@5 d4@2 ~@15 d4 ~ [e3,a3,c#4]@8, g2@14 b3@4 b3@5 ~@9, g3@4 [g3,b3]@3 g3@3 g3@2 ~@4, d4@5 ~@2 d4@4 d4@5 a2@15 ~, ~@3 f#4@13 [d4,f#4]@7 ~@9]/2", // A G D
  V: "[f#3@2 ~ b3@2 ~ [b2,b3]@2 [e3,a3]@2 e3 a3 ~@2 e3@2 b3@2 ~@6 g3@4 [e3,a3]@4, ~@2 f#3@6 a2@7 ~@3 b3@10 ~@4, ~@5 d4@7 b3@3 ~ g3@8 ~@8, ~@11 e3@2 d4@8 d4@7 ~@4, ~@19 f#4@9 ~@4]/2", // B A5
  W: "[[f#3,b3]@2 ~ [b3,d4]@2 ~ f#3@2 [e3,a3]@2 ~ a3 ~@2 e3@2 ~@7 [g3,b3]@3 g3 ~@3 [e3,c#4]@2, ~@2 f#3@3 d4@7 b3@3 ~ [g3,b3]@7 ~@4 a3@5, ~@5 b3@3 ~@2 e3@3 d4@8 d4@9 ~@2, ~@19 f#4@4 ~@4 e3@3 ~@2, ~@7 f#3]/2", // B5 Bm A5 G C#m G
  X: "[f#3@2 ~ b3@2 ~ [b2,b3]@2 [e3,a3]@2 e3 a3 ~@2 e3@2 b3@2 ~@6 g3@4 [e3,a3]@4, ~ f#3@3 a2@4 ~ b3@5 ~@2, ~@5 d4@7 b3@3 ~ g3@8 ~@8, ~@11 e3@2 d4@8 d4@7 ~@4, ~@19 f#4@9 ~@4]/2", // B A5
  Y: "[[f#3,b3]@2 ~@4 f#3@2 a3@3 a3 ~@2 e3@2 ~@3 d4@2 ~@3 g3@2 ~ b3 [f#3,b3]@3 ~, ~@2 f#3@3 d4@7 b3@4 b3@11 ~@5, ~@3 b3@5 e3@5 d4@6 f#4@7 ~@6, ~@8 g3@4 ~ g3 ~@2, ~@21 d4@11]/2", // B5
  Z: "[~@3 b3@2 ~ [e3,b3]@2 d3@2 ~@6 g4@2 ~@6 b3@2 ~@4 d3@2 [b2,e3]@2 ~@4 [b2,e3]@2 [a3,d4]@3 ~ [a3,c#4]@2 [e3,a3]@2, b2@8 ~@2 d3@3 d4@3 g2@11 b3@8 e4@5 ~@4 e4@4, e3@5 e4@3 ~@3 e4@5 b2@5 b3@3 ~@2 g3@6 ~@5 [g3,b3]@3 e3@4 ~@4, ~ g3@3 a3@3 d3@2 d3@2 d3@2 d3@2 ~@2 [b2,e3]@2 ~@5, ~@19 g4@9 f#2@4 e2@8 ~@8]/3", // E5 D5 A A5 G E5
  AA: "[d3,a3]@2 ~@2 f#4 ~@2 [a3,d4] a3@2 [a3,d4]@2 [a3,d4] [a3,c#4]@3, f#4@4 d4@2 [d3,a3]@2 e3@7 ~, ~@2 [d3,a3]@3 e4@5 ~@6", // D5 A D5
  AB: "[b3@3 ~@3 f#3@2 a3@3 ~@3 e3@2 ~@7 g3@3 g3@2 [g3,b3] [f#3,c#4]@3, f#3@5 b3@3 ~@3 a3@5 [g3,b3]@7 b3@5 ~@4, ~@3 d4@9 b3@3 ~@4 f#4@13, ~@13 d4@8 d4@8 ~@3]/2", // G F#5 G
  AC: "e3 ~@2 e3 ~@3 a2, b2@7 ~ [d3,a3]@8, ~@2 e3@3 e4@5 ~ e4@4 ~, ~@3 b3@5 ~@2 f#2@6, ~@13 d4@2 ~", // D5
  AD: "[~@6 f#2@2 e3 ~@2 [b2,e3] [a3,d4]@2 [e3,a3]!2, [g2,b2]@11 g4@4 ~@4 e4@5 ~@8, g3@6 d3@2 g3@10 [e3,g3]@5 ~@9, ~@2 d3@3 b3@11 ~@5 b3@3 ~@4 c#4@4, ~@3 g4@7 d3@6 [e2,b2]@7 ~@9]/2", // E5 D5 A5 G Em E5
  AE: "g3@2 ~@4 d3@2 [a3,c#4]@2 ~ c#4@2 ~ [e3,a3]@2, d3@5 b3@3 ~@2 a3@4 ~@2, ~ g3@3 e3@3 ~, ~@3 g4@5 ~@5 [c#4,e4]@3", // A A5 C#m
  AF: "f#3@2 ~@6 f#3@2 ~ d4 c#4 d4 [f#3,a3,c#4]@2, b3@7 d4@3 f#3@4 ~@2, ~@2 f#3@3 f#4@7 f#4@4, ~@3 d4@3 f#3@2 b3@6 ~@2", // F#m
  AG: "d3@2 ~@4 d3@2 [e3,a3,c#4]@2 ~ [a3,c#4]@2 ~ [e3,a3]@2, [g3,b3]@5 [g3,b3]@3 ~@5 [c#4,e4]@3, ~ d3@2 ~@2 e3@2 ~, ~@3 g4@5 ~@8", // A A5 G C#m
  AH: "[f#3,b3,d4]@2 ~ b3@3 [f#3,b3]@2 [a3,c#4]@2 [a3,c#4]@2 ~ b3 [a3,c#4,f#4]@2, ~ f#3@2 ~@2 e3@3, ~@3 d4@5 ~@4 [a3,c#4]@2 ~@2", // Bm B5 A F#m A
  AI: "g3@2 ~@5 b3 [e3,c#4]@2 ~ c#4@2 ~ [e3,a3,c#4]@2, [d3,b3]@3 d3 ~ e3@2 ~, ~@2 g3@3 [g3,b3]@3 a3@6 ~@2, ~@3 g4@4 ~@6 e4@3", // C#m A G
  AJ: "f#3@2 ~@9 d4 c#4 d4 [a3,c#4]@2, b3@5 f#4@3 ~@2 b3@2 [b3,f#4]@3 ~, ~ f#3@2 [f#3,b3]@2 f#3@2 ~, ~@3 d4@5 [d4,f#4]@4 ~@4", // A B5 D
  AK: "g3@2 ~@3 g3 [d3,g3]@2 [e3,a3]@2 ~ a3@2 ~ [d3,g3,b3]@2, [d3,b3]@6 ~@4 e3@3 ~@3, ~@2 g3@3 b3@3 c#4@5 e4@3, ~@3 g4@4 ~@9", // G5 A5 G
  AL: "d4@3 ~@3 [f#3,b3]@2 c#4@3 ~@2 a3 a3@2, [f#3,b3]@6 ~@2 [e3,a3]@5 ~@3, ~@3 d4@5 ~@3 [c#4,e4]@5", // B5 A5 C#m
  AM: "[~@5 d4@2 ~@15 d4 ~ [e3,a3,c#4]@8, b3@4 [g3,b3]@3 g3@3 g3@2 ~@4, d4@5 ~@2 d4@4 d4@5 [d4,f#4]@7 ~@9, ~@3 f#4@13 ~@16, ~@14 b3@4 b3@5 ~@9]/2", // A G D
  AN: "[[f#3,b3]@2 ~ d4@2 ~ f#3@2 [e3,a3]@2 ~ a3 ~@2 e3@2 ~@7 [g3,b3]@3 g3 ~@3 [e3,c#4]@2, ~@2 f#3@3 d4@3 ~@4 b3@3 ~ [g3,b3]@7 ~@4 a3@5, ~@3 b3@5 ~@2 e3@3 d4@8 d4@9 ~@2, ~@19 f#4@4 ~@4 e3@3 ~@2, ~@7 f#3]/2", // B5 A5 G C#m G
  AO: "e3@2 ~@4 e3@2 ~@5 d4@2 ~, ~@2 e3@3 e4@5 ~ e4@4 ~, ~@3 b3@5 [d3,a3]@8", // D5
  AP: "[~@11 g4@4 ~ e3@2 ~@4 [b2,e3]@2 [a3,d4]@4 [e3,a3]@2 [e3,a3]@2, b2@6 ~@2 b2@3 ~@5, g3@6 d3@2 g3@10 ~@3 b3@3 ~@4 c#4@4, ~@2 d3@3 b3@11 ~@3 e4@5 ~@8, ~@3 g4@7 d3@6 ~@2 [e3,g3]@5 ~@9]/2", // E5 D5 A5 Em
  AQ: "[d3,a3] ~@3 [a3,d4] ~@2 [a3,d4], ~@2 d3@3 f#4@11, ~@3 a3@5 ~@2 a3@4 ~@2, ~@5 d4@3 ~@3 d4@3 ~@2, ~@3 d3@2 d3 d3@2", // D5
  AR: "e3 ~@2 e3 ~@3 a2, ~@2 e3@3 e4@5 f#2@6, ~@3 b3@5 [d3,a3]@8, ~@11 e4@4 ~, ~@13 d4@2 ~", // D5
  AS: "[d3,a3]@2 ~@6 [a3,d4]@2 ~ d4@3 [a3,d4]@2, ~@2 d3@3 f#4@11, ~@3 a3@5 ~@2 a3@4 ~@2, ~@5 d4@3 ~@8, ~@3 d3@2 d3 ~@2", // D5
  AT: "[b3@2 ~ [b3,d4]@2 ~ f#3@2 [e3,a3]@2 ~ a3 ~@2 e3@2 ~@7 [g3,b3]@3 g3 ~@3 [e3,c#4]@2, ~@2 f#3@3 d4@7 b3@3 ~ [g3,b3]@7 ~@4 a3@5, ~@5 b3@3 ~@2 e3@3 d4@8 d4@9 ~@2, ~@19 f#4@4 ~@4 e3@3 ~@2, ~@7 f#3]/2", // Bm A5 G C#m G
  AU: "~@6 e3@2 ~@5 d4@2 ~, b2@7 ~ [d3,a3]@8, ~@2 e3@3 e4@5 ~ e4@4 ~, ~@3 b3@5 ~@8", // D5
  AV: "~@2 g3 ~, g3 ~, ~@2 d3@3 b3@7 ~@4, ~@3 g4@8 ~@5, ~@3 d3@2 ~@3",
})).s("gm_electric_guitar_clean").gain(0.25)

// other · acoustic guitar nylon · "Choir"
const acoustic_guitar_nylon = note("<~@50 A B A C A D E F@2 ~@9 A B A C A D E F@2 ~@31>".pickRestart({
  A: "~@5 d4@2 c#4!2 c#4@2 ~@4 c#4", B: "d4@2 d4 d4@2 c#4 d4@3 ~@7", C: "d4@2 d4 d4@2 c#4 c#4@2 ~@8",
  D: "d4@2 d4 d4@2 e4 d4@2 ~@8", E: "~@5 d4@2 c#4 c#4@2 b3 a3@2 a3@2 b3", F: "[d4@5 e4@3 c#4@6 b3 b3@4 ~@13]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// chords · pad halo · "Halo pad"
const pad_halo = note(`<
  ~@30 A B@2 C@2 D@2 E F@3 G A D@2 E F@3 H@2 I@2 J K I@2 J L@2 A D@2 E F@3 H@2 I@2 J K I@2 J L@2 ~@8 M N@2 O P@3 Q R N@2
  O P@3 Q S N@2 O T@2
>`.pickRestart({
  A: "[b3,d4,f#4] [a3,c#4,e4]", B: "[g3@2 b3 [a3,c#4,e4], [d4,f#4]@3 ~]/2",
  C: "[[g3,d4,f#4]@2 [b3,d4,f#4] [a3,c#4,e4], a4@9 ~@7]/2", D: "[g3@2 f#4 [a3,c#4,e4], [b3,d4]@3 ~]/2",
  E: "[g3,d4,f#4]", F: "[[b3,e4,g4]@8 [c#4,f#4]@8 [d4,g4]@16 e4@8 d4@3 ~ c#4@4, ~ a4@5, ~@2 b3]/3",
  G: "[d4,f#4] [c#4,e4], a3", H: "[[d4,f#4]@3 c4 [d4,b4]@2 [c#4,e4,a4]@2, a3 ~, ~@3 g4@3 ~@2]/2",
  I: "[f#4@2 g4 [c#4,e4,a4], [d4,b4]@3 ~]/2", J: "[d4,f#4,b4] [c#4,e4,a4]", K: "[d4,g4,b4] [c#4,e4,a4]",
  L: "[d4 a4, [f#4,b4]]/2", M: "[d4,f#4] ~@7 [c#4,e4]@8", N: "[b3@2 f#4 [c#4,e4], d4@3 ~]/2", O: "[d4,f#4]",
  P: "[[e4,g4]@8 f#4@8 g4@16 e4@8 d4@3 ~ c#4@4, ~ a4@5]/3", Q: "[d4,f#4]@3 [c#4,e4]", R: "[d4,f#4] [c#4,e4]",
  S: "[d4,f#4]@7 ~ [c#4,e4]@8", T: "[[e4,g4]@2 f#4@2 g4@3 ~, ~ a4@2 ~]/2",
})).s("gm_pad_halo").gain(0.23)

// chords · electric guitar muted · "Muted gt"
const electric_guitar_muted = note(`<
  ~ A ~ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB C D AC AB C D E F G AD I J K L M N O P Q R S T U V W X
  Y Z AA AE K AF M N O P AG R S T U V W X Y Z AA AH A AI A AI AJ AK AL AM K AF M N O P AN AM K AF M N AO P AN AM K AF M
  N AP
>`.pickRestart({
  A: "[e3,a3,c#4]", B: "[f#3,b3,d4]@7 ~ [a3,c#4]@7 ~", C: "[g3,d4,f#4]@10 ~@3 [e4,a4]@2 ~, ~@12 [e3,a3,c#4]@3 ~",
  D: "f#4@3 ~ g4@4 ~@4 a4@4, [f#3,b3,d4,b4]@7 ~ [a3,c#4,e4]@7 ~", E: "f#4@12 [a3,d4]@3 ~, d4@5 ~@3",
  F: "[b3,e4]@3 ~ a4@2 d5@2", G: "[g3,d4,f#4]@11 ~ [e4,a4]@4", H: "[b3,e4]@7 ~ d4@4 c#4@3 ~, ~@8 a3@7 ~",
  I: "d4@3 ~@7 d4@2 d4 c#4@3, a3@7 ~ a3@5 ~@3, ~@2 d4@3 e4@3", J: "[f#3,b3,d4,f#4]@3 ~ [c#4,e4,a4]@3 ~",
  K: "[g3,d4,f#4]@10 g3 ~ e4 [e4,a4] ~@2, ~@12 c#4@3 ~", L: "f#4@4 g4@3 ~ a4@3 ~ a4@3 ~, [d4,b4]@7 ~ [c#4,e4]@7 ~",
  M: "[g3,d4,f#4]@5 ~ [a3,d4]@2", N: "[b3,e4]@2 ~ e4@3 b3@2 a4@4 d5@4, ~ b3@2 ~@5", O: "d4@10 d4 ~ e4@4, g3, f#4@3 ~@5",
  P: "~@3 e4@4 ~ d4@3 ~ [c#4,e4]@3 ~, b3@6 ~@2 a3@7 ~", // C#m
  Q: "f#4@5 f#4@3 f#4@3 ~ [c4,d5]@4, d4@8 [d4,a4]@5 ~@3, ~@11 f#4@5", R: "[d4,g4]@7 ~ [e4,a4]@6 ~@2",
  S: "d5@4 ~ f#5@7 [e4,a4]@3 ~, [f#4,b4]@3 ~", T: "[d4,g4,b4]@7 ~ [e4,a4]@6 ~@2", U: "[f#4,b4]@8 [e4,a4]@7 ~",
  V: "~@3 d5@5 ~@3 e5@3 [e4,a4] ~, [d4,g4]@7 ~ [e4,a4]@6 ~@2", W: "b4@3 [b4,f#5]@7 ~@2 [e4,a4]@3 ~",
  X: "~@3 b4@3 ~@2 [e4,a4]@6 ~@2, [d4,g4]@7 ~@9", Y: "[b4,d5]@5 [b4,e5]@2 ~ [e4,a4,c#5]@5 [a4,d5] ~@2, f#4@7 ~@9",
  Z: "[d4,g4,b4]@13 ~@3", AA: "[b3,d4,g4]@7 ~ [c#4,e4]@8", AB: "[b3,d4,f#4]@6 ~@2 [a3,c#4]@7 ~",
  AC: "f#4@12 [a3,c#4]@3 ~, d4@5 ~@3", AD: "[b3,e4]@7 ~ d4@3 ~ c#4@3 ~, ~@8 a3@7 ~",
  AE: "[f#3,b3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~", AF: "f#4@4 g4@4 a4@3 ~ a4@4, [d4,b4]@7 ~ [c#4,e4]@7 ~",
  AG: "f#4@5 f#4@3 [d4,f#4]@3 ~ [c4,d5]@4, d4@8 a4@5 ~@3, ~@11 f#4@5", AH: "~@12 [d3,b3,d4] ~@3",
  AI: "~@12 [d3,g3,b3] ~@3", AJ: "[e3,a3,c#4]@15 ~", AK: "~@12 [g3,b3,d4] ~@3", AL: "[a3,c#4,e4]@15 ~",
  AM: "[b3,d4]@6 ~@2 [a3,c#4]@7 ~", AN: "f#4@5 f#4@3 [d4,f#4]@2 ~@4 d4@2, d4@4 ~ d4@2 ~, ~@11 f#4@5",
  AO: "d4@10 d4 ~ e4@3 ~, f#4@3 ~@5", AP: "d4@10 d4 ~@5, g3@3 ~, f#4@3 ~@5",
})).s("gm_electric_guitar_muted").gain(0.21)

// chords · piano
const piano = note("<~@20 A@2 ~@2 A@2 ~@24 B@2 C D B@2 E F G ~@9 B@2 C D B@2 E F G ~@31>".pickRestart({
  A: "[~@11 e4 ~@6 d5 c#5@2 [f#4,a4]@10 ~, g2@3 g4@2 e3@2 a4@2 f#3@7, ~ b2@7 a2@8 b2@16, ~ d4 b4 d4 a4 d4@4 e4 c#5@2 b4 e4@4 f#4@2 f#4 ~@12, ~@2 d3@6 ~ c#3@7 ~ d3@15]/2", // F#m
  B: "[~@11 e4 ~@6 d5 c#5@2 f#4@7 [b3,d4,f#4]@4, g2@3 g4@2 e3@2 a4@2 f#3@7, ~ b2@7 a2@8 b2@16, ~ d4 b4 d4 a4 d4@4 e4 c#5@2 b4 e4@4 f#4@2 f#4 ~ a4@10 ~, ~@2 d3@6 ~ c#3@7 ~ d3@15]/2", // Bm
  C: "[d4,g4]@4 d4 [d4,g4]@3 [c#4,e4,a4]@8, b3@3 ~@5", D: "[d4,f#4,b4]@7 ~@9",
  E: "g4@3 ~@2 a4@2 b4 [e4,a4,c#5]@8, [b3,d4] ~, ~@2 g4 ~@5", // A Bm
  F: "[f#4,b4,d5]@5 [f#4,b4,e5] ~@2 [e4,a4,c#5]@5 [e4,a4,d5] ~@2", G: "[d4,g4,b4]",
})).s("gm_piano").gain(0.39)

// other · distortion guitar · "Feedb.gt"
const distortion_guitar = note("<~@29 A B C D@2 E ~@22 F G H I@2 J K L M N@2 ~@9 H ~@30>".pickRestart({
  A: "f#4@6 ~ [e4,f#4] e4@8", B: "d4 c#4 b3 a3 b3@3 a3 b3 f#3 a3 e3 f#3 d3 e3 b2",
  C: "d3 a2 b2@6 [g3,a3] f#3 a3 f#3 e3@4", // Gsus2
  D: "[~@2 [b3,c#4,d4] a3 b3@4 ~ a3 b3@3 a3 b3@8 ~@4 d5 ~ [e4,c#5] [e4,c#5]@2 [d4,d#4,b4], ~@25 [e4,f#4]@2 ~@5]/2", // Bm C#m G Esus2
  E: "[b3,c4,c#4] ~@15", F: "f#4@5 g4 ~@2 e4@5 f#4 ~@2", G: "d4@7 ~", H: "f#4@6 e4 e4@8 ~, ~@7 f#4 ~@8",
  I: "[[c#4,d4] [a3,b3] b3@7 a3 b3@3 a3 b3@11 ~@3 c#4@2 b3 a3]/2", J: "b3@3 a3 b3@3 ~ e3@3 d3 e3 d3 e3 d3",
  K: "b2 d3 a2 b2 d3 e3 f#3 a3 b3 e4 e4@5 ~", L: "[e4,g4]@2 e4 d4 e4 b3 d4 a3 b3 g3 a3 e3@3 e3 f#3",
  M: "a3 b3 d4 e4@3 e4 e4@7 ~@2",
  N: "[~@4 g4 f#4 e4 d4 e4 d4 c#4 d4 c#4 b3 a3 a3@5 ~ [a3,e4]@2 d4 e4 [a3,d4] e4 [a3,d4] e4 [a3,d4] e4 [a3,d4]]/2", // A5 D5
})).s("gm_distortion_guitar").gain(0.23)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@50 A B C D A B C E@2 F ~@8 A B C D A B C E@2 F ~@30>".pickRestart({
  A: "b4 c#5", B: "d5@12 c#5 d5 e5 c#5", C: "d5 e5", D: "f#5@3 e5", E: "b4/2", F: "a4",
})).s("gm_string_ensemble_1").gain(0.21)

// drums · kick
const kick = s("bd").struct("<~@30 A@20 B@28 C B C B C B C A B@11 D B@3 E B D B D B D>".pickRestart({
  A: "x", B: "x ~@6 x!2 ~@7", C: "x!2", D: "x ~@6 x!2 ~@2 x ~@4", E: "x ~@6 x ~ x!2 ~@5",
})).gain(0.6)

// drums · rim
const rim = s("rim").struct("<~@30 [~@4 x!2 ~@6 x ~@3]!20 [~@5 x!2 ~@9]!10 ~@48>").gain(0.47)

// drums · snare
const snare = s("sd").struct("<~@50 A@10 B@7 C B@17 D B@15 E B@6>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@3 x!3 ~@5", E: "~@4 x ~@9 x!2",
})).gain(0.53)

// drums · low tom
const low_tom = s("lt").struct("<~@59 A ~@7 A ~@9 B ~@7 B ~@7 A ~@14>".pickRestart({
  A: "~@7 x", B: "~@14 x!2",
})).gain(0.53)

// drums · hihat
const hihat = s("hh").struct("<A@41 B A@7 C A@9 D E F@3 E F@2 G E F@2 H E I F@2 J G E I F I F I F@2 ~@22>".pickRestart({
  A: "x!16", B: "x!10 ~@2 x!4", C: "x!14 ~@2", D: "x!13 ~@3", E: "~ x!7", F: "x!8", G: "x!5 ~@3", H: "x!5 ~ x!2",
  I: "x!7 ~", J: "~ x!6 ~",
})).gain(0.47)

// drums · mid tom
const mid_tom = s("mt").struct("<~@59 A ~@17 A ~@7 B ~@7 A ~@14>".pickRestart({
  A: "~@13 x ~@2", B: "~@11 x!3 ~@2",
})).gain(0.47)

// drums · open hat
const open_hat = s("oh").struct("<~@41 A ~@7 B ~@17 A ~@3 A ~ B ~@2 B A ~ B ~ B ~ B ~@24>".pickRestart({
  A: "~@5 x ~@2", B: "~@7 x",
})).gain(0.47)

// drums · crash
const crash = s("cr").struct(`<
  ~@60 A ~@3 A ~@3 A ~@3 A ~@2 A@2 ~ A@2 ~ A ~ A ~ A@2 ~@3 A ~@3 A ~ A ~ A ~@3 A ~@2 B A ~
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@86 A B@3 A B@2 C A B@3 A B@3 A B@3 A C>".pickRestart({
  A: "~ x!7", B: "x!8", C: "x!7 ~",
})).gain(0.47)

// drums · tambourine
const tambourine = s("tb").struct("<~@60 [~@3 x]!25 ~ [~ x ~ x]!15 [~ x ~@2] [~ x ~ x]!6>").gain(0.6)

// … 19 more lines

More by Rossi Vasco