Strudelify

Vai sola

Nek

KeyD minorTempo60 bpm
0:00/0:00
// Vai sola — Nek
// 60 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/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 · reed organ · "VOCE2"
const reed_organ = note(`<
  ~ A B A C D E F G H I J K L M N O P Q R S ~@8 T U V W X Y Z@2 AA AB AC AD AE AF AG@2 AH AI AJ@2 ~@4 AK AL AM AN ~@8 AO
  AP AO AQ AO AP AO AQ AO AP AR AS AT@2
>`.pickRestart({
  A: "[d4,f4,a4]@3 ~ [bb3,d4,f4]@3 ~", B: "[c4,e4,g4]@3 ~ [a3,db4,e4]@3 ~", C: "[c4,e4,g4]@13 ~@3",
  D: "~ a4@2 ~ a4 ~@8 a4 g4 f4", E: "[f4,g4] g4@3 ~@8 g4!2 f4 e4", F: "[e4,f4] f4@3 ~@8 f4!2 e4 f4",
  G: "[d4,f4] d4@11 ~@4", H: "a4 a4@2 a4!2 ~@7 a4!2 g4 f4", I: "f4 g4@3 ~@6 g4!3 f4@2 e4",
  J: "f4 e4 d4@2 ~@7 a3!2 c4 d4@2", K: "d4@7 ~@9", L: "bb3 d4 [bb3,d4]@12 ~@2, ~ f4@12 ~@3", M: "[c4,f4,a4]@13 ~@3",
  N: "[bb3,d4,g4]@13 ~@3", O: "~@9 [c4,c5] [d4,d5] [f4,f5] e4 c4 a3 d4, a4@13 ~@3, [d4,f4]@11 ~@5",
  P: "[bb3,d4,f4]@13 ~@3", Q: "g4@3 ~ f4@3 ~, [a4,c5]@7 ~", R: "[g4,bb4,d5]@13 ~@3",
  S: "d5@7 ~ db5@7 ~, [a4,e5]@15 ~, ~@8 a5@3 ~@5", T: "[a4,a5]@2 ~ a5 ~@8 a5 g5!2 f5", U: "g5@3 ~@8 bb4 g5 f5!2 e5",
  V: "f5@3 ~@7 a4!2 f5 e5!2 f5", W: "d5@3 ~@5", X: "[a4,a5] a5 a5@3 c6 a5@2 ~@3 d5 a5 g5!2 f5",
  Y: "g5@3 ~@4 d5 g5!4 f5@2 e5 f5", Z: "[e5 d5@2 ~@3 a4 f5 e5 d5@2 a4 c5 d5@2 d5@4 ~@13]/2",
  AA: "[bb3,d4,g4,bb4]@3 ~ [db4,e4,a4]@3 ~", AB: "[d4,f4,a4]@6 ~@2 [d4,f4,a4]@3 ~ [c4,e4,g4]@3 ~",
  AC: "[bb3,d4,f4,bb4]@3 ~ [bb3,d4,g4]@3 ~", AD: "[a4,db5,e5]@3 ~ [g4,a4,db5,e5]@3 ~ [a4,e5]@3 ~ [e4,a4,db5,e5]@3 ~",
  AE: "~@8 c5@2 ~ d5@2 ~@3", AF: "c5@3 ~@5 a4@2 ~ c5@2 ~@3", AG: "[d5@3 ~@5 c5@2 ~ d5@2 ~ a4 c5@4 ~@13]/2",
  AH: "d5@3 ~@5 c5@2 ~ d5@2 ~@2 c5", AI: "e5!4 e5@2 e5@2 e5@2 ~ f5@2 ~@3",
  AJ: "[d5@3 ~@2 d5@2 d5 c5@2 ~ d5@2 ~ f5 e5@3 f5 [e5,f5] e5@2 f5 [e5,f5] e5@4 ~@4]/2", // Fmaj7
  AK: "[g4,bb4,d5]@3 ~ [a4,db5,e5]@3 ~", AL: "[f4,a4,d5]@6 ~@2 [d3,d4,f4,a4,d5]@3 ~ [c3,c4,e4,g4,c5,e5]@3 ~",
  AM: "[bb3,d4,f4,bb4]@3 ~ [bb3,d4,g4,bb4]@3 ~", AN: "[a4,d5,e5]@3 ~ a3 [g3,g4] [f3,f4] [e3,e4], ~ [a4,db5,e5]",
  AO: "~@12 [a4,a5]@3 ~, [d4,d5]@5 ~@3, ~@4 bb3@3 ~", AP: "[c4,g4,g5]@6 ~@2 f4@3 ~ [e4,a4,a5]@3 [g4,g5]",
  AQ: "c4@6 ~@2 c4!2 d4 e4 f4 e4 [d4,a4,a5] [c4,g4,g5], [g4,g5]@5 ~@3", AR: "~@13 [a4,a5]@3, [d4,d5]@11 ~@5, ~@9 bb3@7",
  AS: "~@2 c4@8 ~@2 c4!2 d4 e4, ~ [g4,g5]@6 ~", AT: "[f4 ~ e4 [d4,a4,a5] [c4,g4,g5] d4@13 ~@14]/2",
})).s("gm_reed_organ").gain(0.28)

// chords · electric guitar jazz · "CHITARRA1"
const electric_guitar_jazz = note(`<
  ~ A B A ~ C D E F C G H I ~ J K L ~@31 M N O N O P Q R S ~@8 T U T V T U T V T U W X Y@2
>`.pickRestart({
  A: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [d4,g4,bb4]@3 ~ [d4,g4,bb4]@3 ~", // Dm Gm
  B: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [db4,e4,a4]@3 ~ [db4,e4,a4]@3 ~", C: "~ a4@2 ~ a4 ~@8 a4 g4 f4",
  D: "~ g4@3 ~@9 g4 f4 e4", E: "~ f4@3 ~@9 f4 e4 f4", F: "~ d4@6 ~@9", G: "~ g4@3 ~@6 g4!3 f4@2 e4",
  H: "f4 e4 d4@2 ~@7 a3!2 c4 d4@2", I: "d4@7 ~@9", J: "a4@13 ~@3", K: "g4@13 ~@3", L: "~@9 c4 d4 f4 ~@4",
  M: "~@12 [c4,e4,g4]@3 ~", N: "[d4,f4,a4]@13 ~@3", O: "[a3,d4,f4]@6 ~@2 [a3,d4,f4]@3 ~ [g3,db4,e4]@3 ~",
  P: "[g4,bb4,d5]@3 ~ [g4,bb4,d5]@3 ~ [db4,e4,a4]@3 ~ [db4,e4,a4]@3 ~", // Gm A
  Q: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [a3,d4,f4,a4,d5]@3 ~ [g3,c4,e4,g4,c5]@3 ~", // Dm C
  R: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [bb3,d4,g4]@3 ~ [d4,g4,bb4]@3 ~", // Bb Gm
  S: "[e4,a4,d5]@3 ~ [e4,a4,d5]@3 ~ [e4,a4]@2 [e4,g4]@2 [f4,a4]@2 [e4,a4]@2", T: "d4@3 ~ bb3@3 ~",
  U: "c4@6 ~@2 f4@3 ~ e4@3 ~", V: "c4@6 ~@2 c4!2 d4 e4 f4 e4 d4 c4", W: "d4@7 ~@2 bb3@7", X: "~@2 c4@8 ~@2 c4!2 d4 e4",
  Y: "[f4 ~ e4 d4 c4 d4@13 ~@14]/2",
})).s("gm_electric_guitar_jazz").gain(0.14)

// chords · acoustic guitar nylon · "CHITARRA2"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I F J K@2 L M N O L P N Q R S R T R U R V W@8 X Y Z AA R S R T R S R AB AC AD AC ~ AE AF AG AH R S R T
  R S R AI AJ AK AJ AL AJ AK AJ AL AJ AK AM AN AO@2
>`.pickRestart({
  A: "~@12 a5@2 ~ [gb4,g4,a4,gb5,g5,ab5]", B: "[eb4,e4,f4,eb5,e5,f5] ~@11 [a4,a5]@3 ~, [d4,d5]@5 ~@3",
  C: "[g4,g5]@5 ~ [f4,f5]@2 [e4,e5]@3 ~ [a4,a5]@3 ~", D: "[d4,d5]@10 ~@2 [a4,a5]@2 ~ [g4,g5]",
  E: "[g4,g5]@13 ~@3, [f4,f5] ~@15", F: "a4@2 ~ a4 ~@8 a4 g4 ~ f4", G: "g4@3 ~@9 g4 f4 ~ e4", H: "f4@3 ~@9 f4 e4 ~ f4",
  I: "d4@3 ~@5", J: "g4@3 ~@6 g4!3 f4@2 e4 f4", K: "[e4 d4@2 ~@7 a3!2 c4 d4@2 d4@7 ~@10]/2", L: "[bb4,d5,f5]@13 ~@3",
  M: "[a4,c5,f5]@13 ~@3", N: "[g4,bb4,d5]@13 ~@3", O: "[a4,d5,f5]@13 ~@3", P: "[a4,c5,g5]@3 ~ [a4,c5,f5]@3 ~",
  Q: "[a4,d5,e5]@3 ~ [a4,d5,e5]@3 ~ [a4,db5,e5,a5]@3 ~ [a4,db5,e5]@3 ~", // Asus4 A
  R: "[d4,f4,a4,d5,f5,a5]@3 ~ [bb3,d4,f4,bb4,d5,f5]@3 ~", // Dm Bb
  S: "[c4,e4,g4,c5,e5,g5]@6 ~@2 [f4,a4,c5,f5,a5]@3 ~ [e4,g4,c5,e5,g5]@3 ~", // C F C
  T: "[c4,e4,g4,c5,e5,g5]@3 ~ [c4,e4,g4,c5,e5,g5]@3 ~", U: "[c4,e4,g4,c5]@6 ~@2 [f4,a4,c5]@3 ~ [e4,g4,c5]@3 ~",
  V: "[c4,e4,g4,c5,e5,g5]@13 ~@3", W: "~ d4 f4 a4 d5 a4 f4 d4 ~ d4 f4 a4 d5 a4 f4 d4",
  X: "[bb3,d4,g4,bb4]@3 ~ [db4,e4,a4]@3 ~", Y: "[d4,f4,a4]@6 ~@2 [d4,f4,a4]@3 ~ [c4,e4,g4]@3 ~",
  Z: "[bb3,d4,f4,bb4]@3 ~ [bb3,d4,g4]@3 ~", AA: "a4@3 ~ g4@3 ~ f4@3 ~ a4 [f4,g4] e4 [db4,d4]",
  AB: "[c4,e4,g4,c5,e5,g5]@3 ~@13", AC: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@3 ~",
  AD: "[b3,d4,f4]@3 ~ [b3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [g3,db4,e4]@3 ~", // Bdim Bb Dbdim
  AE: "[g4,bb4,d5]@3 ~ [g4,bb4,d5]@3 ~ [db4,e4,a4]@3 ~ [db4,e4,a4]@3 ~", // Gm A
  AF: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [a3,d4,f4,a4,d5]@3 ~ [g3,c4,e4,g4,c5]@3 ~", // Dm C
  AG: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [bb3,d4,g4]@3 ~ [d4,g4,bb4]@3 ~", // Bb Gm
  AH: "[e4,a4,d5]@3 ~ [e4,a4,d5]@3 ~ [e4,a4]@2 [e4,g4]@2 [f4,a4]@2 [e4,a4]@2", // Dsus2 A5 Em F A5
  AI: "[c4,e4,g4,c5,e5,g5]@3 ~ [c4,e4,g4,c5,e5,g5]@3 ~ [c4,e4,g4,c5,e5,g5]@3 ~ [c4,e4,g4,c5,e5,g5]@3 ~", // C
  AJ: "[d4,d5]@10 ~@2 [a4,a5]@3 ~", AK: "[g4,g5]@6 ~@6 [a4,a5]@2 ~ [g4,g5]", AL: "[g4,g5]@10 ~@4 [a4,a5] [g4,g5]",
  AM: "[d4,d5]@11 ~@2 [a4,a5]@3", AN: "~ [g4,g5]@6 ~", AO: "[~@3 [a4,a5] [g4,g5] [d4,f4,a4]@13 ~@14]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.15)

// chords · acoustic guitar steel · "CHITARRA3"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I F J K L ~@8 M N M O M N M P Q@8 ~@3 R M N M O M N M S T ~ T ~@5 M N M O M N M U V W X Y V W X Y V W
  Z AA AB@2
>`.pickRestart({
  A: "~@12 a4@2 ~ [gb4,g4,ab4]", B: "[eb4,e4,f4] ~@11 a4@3 ~, d4@5 ~@3", C: "g4@5 ~ f4@2 e4@3 ~ a4@2 ~ [gb4,g4,ab4]",
  D: "[eb4,e4,f4] ~@11 a5@2 ~ g5, d4@5 ~@3", E: "g5@13 ~@3, f5 ~@15", F: "a4@2 ~ a4 ~@8 a4 ~ g4 f4",
  G: "g4@3 ~@9 g4 ~ f4 e4", H: "f4@3 ~@9 f4 ~ e4 f4", I: "d4@3 ~@5", J: "g4@3 ~@6 g4!3 f4@2 e4 f4",
  K: "~ e4 d4@2 ~@7 a3!2 c4 d4@2", L: "d4@7 ~@9", M: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~",
  N: "[c4,e4,g4]@3 ~ [bb3,d4,g4]@3 ~ [f4,a4,c5]@3 ~ [e4,g4,c5]@3 ~", // C Gm F C
  O: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ c5 c4 d4 e4 f4 e4 d4 c4", P: "[c4,e4,g4]@13 ~@3",
  Q: "~ d4 f4 d5@2 f4 d4@2 ~ d4 f4 d5@2 f4 d4@2", R: "a4@3 ~ g4@3 ~ f4@3 ~ a4 [f4,g4] e4 [db4,d4]",
  S: "[c4,e4,g4]@3 ~@9 [c4,e4,g4]@3 ~", T: "[a3,d4,f4]@13 ~@3",
  U: "[c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~", // C
  V: "[d4,d5]@6 ~@2 d5@3 ~ a5@3 ~, ~@8 bb3@7 ~", W: "c4@6 ~@2 f4@3 ~ e4@3 ~", X: "d4@3 ~ bb3@3 ~",
  Y: "c4@6 ~@3 [c4,c5] [d4,d5] [e4,e5] [f4,f5] [e4,e5] [d4,d5] [c4,c5]", Z: "d4@7 ~@2 bb3@7",
  AA: "~@2 c4@8 ~@3 [c4,c5] [d4,d5] [e4,e5]", AB: "[[f4,f5] ~ [e4,e5] [d4,d5] [c4,c5] [d4,f4]@13 ~@14]/2",
})).s("gm_acoustic_guitar_steel").gain(0.16)

// other · distortion guitar · "CHITARRA SOLISTA"
const distortion_guitar = note(`<
  A B C D E ~@9 F ~ G@2 ~@3 H I J K H I J L ~@11 M H I J K H I J N O P Q R S ~@3 H I J K H I J T B U B V B U B V B U W X
  Y@2
>`.pickRestart({
  A: "~@12 [a4,a5]@3 ~", B: "[d4,d5]@10 ~@2 [a4,a5]@3 ~", C: "[g4,g5]@5 ~ [f4,f5]@2 [e4,e5]@3 ~ [a4,a5]@3 ~",
  D: "[d4,d5]@10 ~@2 [a4,a5]@2 ~ [g4,g5]", E: "[g4,g5]@13 ~@3, [f4,f5] ~@15", F: "~@9 a3 c4 a4@4 ~",
  G: "[~@9 c4 d4 f4 e4 c4 a3 d4@4 ~@13]/2", H: "~@2 f5@2 f5 d5@2 ~@2 f4 bb4 d5@2 f5 bb4@2",
  I: "c5@2 c4@2 g4@2 e4@2 f4@2 c4@2 d4 e4 f4 g4", J: "d4@2 f5@2 f5 d5@2 ~@2 f4 bb4 f4 f5 d5 bb4 f4",
  K: "c5@2 c4@7 c4 d4 e4 f4 e4 d4 c4", L: "c4@13 ~@3", M: "a4@3 ~ g4@3 ~ f4@3 ~ a4 [f4,g4] e4 [db4,d4]",
  N: "c4@3 ~@9 a5@2 ~ [gb5,g5,ab5]", O: "[eb5,e5,f5] ~@12 d5 [e5,f5] g5, d5@5 ~@3",
  P: "a5@3 ~@2 g5 g5@3 d5 f5 g5 a5!2 ~ a5, ~@6 f5 ~@9",
  Q: "a5 [g5,a5] [d5,f5]@2 ~@2 d5 [f5,g5] a5 [d5,g5] f5 d5 ~@3 a5", // Gsus2 Dm Fsus2 G5
  R: "a5@3 ~ g5@2 ~ d5 f5 e5 d5 c5 d5 [e5,f5] [f5,g5] [d5,e5]", S: "d5@3 ~@5, c5 ~@15", T: "[c4,c5]@10 ~@4 a5 g5",
  U: "[g4,g5]@6 ~@6 [a4,a5]@2 ~ [g4,g5]", V: "[g4,g5]@10 ~@4 [a4,a5] [g4,g5]", W: "[d4,d5]@11 ~@2 [a4,a5]@3",
  X: "~ [g4,g5]@6 ~", Y: "[~@3 [a4,a5] [g4,g5] d4@13 ~@14]/2",
})).s("gm_distortion_guitar").gain(0.2)

// chords · piano
const piano = note(`<
  ~@5 A B C D A E F G ~@8 H I H J H I H ~@9 K L M N H I H J H I H O P Q P Q R S T U H I H J H I H J V W X Y V W X Y V W
  Z AA AB@2
>`.pickRestart({
  A: "~ a4@2 ~ a4 ~@8 a4 g4 f4", B: "~ g4@3 ~@9 g4 f4 e4", C: "~ f4@3 ~@9 f4 e4 f4", D: "~ d4@6 ~@9",
  E: "~ g4@3 ~@6 g4!3 f4@2 e4", F: "f4 e4 d4@2 ~@7 a3!2 c4 d4@2", G: "d4@7 ~@9",
  H: "[d4,f4,a4,d5,f5,a5]@3 ~ [bb3,d4,f4,bb4,d5,f5]@3 ~", // Dm Bb
  I: "[c4,e4,g4,c5,e5,g5]@6 ~@2 [f4,a4,c5,f5,a5]@3 ~ [e4,g4,c5,e5,g5]@3 ~", // C F C
  J: "[c4,e4,g4,c5,e5,g5]@3 ~ [c4,e4,g4,c5,e5,g5]@3 ~", K: "g4@3 ~ db4@3 ~", L: "d4@3 ~ c4@3 ~", M: "bb3@3 ~ g3@3 ~",
  N: "[a4,db5]@3 ~ [g4,a4,db5]@3 ~ [f4,a4,db5]@3 ~ [e4,a4,db5]@3 ~", O: "~@12 c4@3 ~",
  P: "[d4,f4,a4] d5 [d4,f4,a4] d5 [c4,f4,a4] c5 [c4,f4,a4] c5", // Dm F
  Q: "[b4,d5,g5] b4 [b4,d5,g5] b4 [bb4,d5,g5] bb4 [a4,db5,e5] a4, b3@2 bb3 a3", // G Gm A
  R: "[g4,bb4,d5]@3 ~ [g4,bb4,d5]@3 ~ [db4,e4,a4]@3 ~ [db4,e4,a4]@3 ~", // Gm A
  S: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [a3,d4,f4,a4,d5]@3 ~ [g3,c4,e4,g4,c5]@3 ~", // Dm C
  T: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [bb3,d4,g4]@3 ~ [d4,g4,bb4]@3 ~", // Bb Gm
  U: "[e4,a4,d5]@3 ~ [e4,a4,d5]@3 ~ [e4,a4]@2 [e4,g4]@2 [f4,a4]@2 [e4,a4]@2", // Dsus2 A5 Em F A5
  V: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~", // Dm Bb
  W: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [f4,a4,c5]@3 ~ [e4,g4,c5]@3 ~", // C F C
  X: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [bb3,d4,f4]@3 ~ [d4,f4,bb4]@3 ~", // Dm Bb
  Y: "[c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~", // C
  Z: "[d4,f4,a4]@4 [d4,f4,a4]@4 ~ [bb3,d4,f4]@4 [d4,f4,bb4]@3", // Dm Bb
  AA: "~@2 [c4,e4,g4,c5]@4 ~ [c4,e4,g4,c5]@4 ~ [c4,e4,g4,c5]@4", AB: "[[c4,e4,g4,c5]@4 ~ [d4,f4,a4,d5]@13 ~@14]/2",
})).s("gm_piano").gain(0.19)

// chords · piano · "EL.PIANO"
const piano_2 = note(`<
  ~@5 A B A C A D A C E F G H E I G J K L K M K L K N ~@8 O P Q R K L K M K L K S ~@4 T@2 U V K L K M K L K W X Y Z AA X
  Y Z AA X Y AB AC AD@2
>`.pickRestart({
  A: "[d4,f4,a4] d4 [d4,f4,a4] d4 [d4,f4,a4] c4 [d4,f4,a4] c4, d3 c3", // Dm
  B: "[b3,d4,g4] b3 [b3,d4,g4] b3 [bb3,d4,g4] bb3 [a2,a3]@2, b2@4 bb2@2 [db4,e4] ~", // G Gm A Dbm
  C: "[b3,d4,f4] b3 [b3,d4,f4] b3 [bb3,d4,f4] bb3 [a3,db4,e4] a3, b2@2 bb2 a2", // Bdim Bb A
  D: "[b3,d4,g4] b3 [b3,d4,g4] b3 [bb3,d4,g4] bb3 [a3,db4,e4] a3, b2@2 bb2 a2", E: "[bb3,d4,f4]@13 ~@3",
  F: "[a3,c4,f4]@13 ~@3", G: "[g3,bb3,d4]@13 ~@3", H: "[a3,d4,f4]@13 ~@3", I: "[a3,c4,g4]@3 ~ [a3,c4,f4]@3 ~",
  J: "[a3,d4,e4]@3 ~ [a3,d4,e4]@3 ~ [a3,db4,e4,a4]@3 ~ [a3,db4,e4]@3 ~", // Asus4 A
  K: "[d4,f4,a4] d4 [d4,f4,a4] d4 [bb3,d4,f4] bb3 [bb3,d4,f4] bb3, d3 bb2", // Dm Bb
  L: "[c4,e4,g4] c4 [c4,e4,g4] c4 [f4,a4] f4 [bb3,d4,g4] bb3, c3@2 f3 e3", // C F Gm
  M: "[c3,c4,e4,g4] [c3,c4] [c3,c4,e4,g4] [c3,c4]!2 [c3,e4] [c3,g4] [c3,c4]", N: "[c3,g3,c4,e4,g4]@13 ~@3",
  O: "[g3,bb3,d4]@3 ~ [g3,bb3,d4]@3 ~ [db3,e3,a3]@3 ~ [db3,e3,a3]@3 ~", // Gm A
  P: "[d3,f3,a3]@5 ~ d3@2 [d3,f3,a3]@3 ~ [c3,e3,g3]@3 ~", // Dm C
  Q: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [g3,bb3,d4]@3 ~ [g3,bb3,d4]@3 ~", R: "a3@3 ~ g3@3 ~ f3@3 ~ e3@3 ~",
  S: "[c3,c4]@3 ~@9 [c3,e3,g3]@3 ~", // C
  T: "[[g3,bb3,d4]@7 ~ [db3,e3]@7 ~@9 [a2,d4]@3 ~ [g2,c3,e3,g3,c4]@3 ~, ~@8 a3@19 ~@5, ~@16 [d3,f3]@11 ~@5]/2", // Gm Dbm D5 C Dm
  U: "[f3,bb3]@7 ~ bb2@3 ~ bb3@3 ~, d3@15 ~, ~@8 g3@7 ~", V: "[e3,a3]@5 [e3,g3] [f3,a3] [e3,a3], d4@7 ~@9",
  W: "[c3,c4,e4,g4] [c3,c4] [c3,c4,e4,g4] [c3,c4] [c3,c4,e4,g4] [c3,c4] [c3,c4,e4,g4]!2", // C
  X: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~", // Dm Bb
  Y: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [f4,a4,c5]@3 ~ [e4,g4,c5]@3 ~", // C F C
  Z: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [bb3,d4,f4]@3 ~ [d4,f4,bb4]@3 ~", // Dm Bb
  AA: "[c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~ [c4,e4,g4,c5]@3 ~", // C
  AB: "[d4,f4,a4]@4 [d4,f4,a4]@4 ~ [bb3,d4,f4]@4 [d4,f4,bb4]@3", // Dm Bb
  AC: "~@2 [c4,e4,g4,c5]@4 ~ [c4,e4,g4,c5]@4 ~ [c4,e4,g4,c5]@4", AD: "[[c4,e4,g4,c5]@4 ~ [d4,f4,a4]@13 ~@14]/2",
})).s("gm_piano").gain(0.11)

// bass · synth bass 2 · "BASSO"
const bass = note(`<
  ~ A B C D ~@8 E F G H I H J K L M L N L M L O P Q R S T Q U S V W X Y L M L N L M L Z AA AB AA AB AC AD AE AF L M L N
  L M L AG A AH A AI A AH A AI A AH AJ AK AL@2
>`.pickRestart({
  A: "d2@3 ~ bb1@3 ~", B: "c2@5 ~ bb1@2 a1@3 ~ a1@3 ~", C: "d2@5 ~ a1@2 bb1@3 ~ bb1@3 ~", D: "c2@13 ~@3",
  E: "bb1@6 ~@3 bb1 bb1@5 ~", F: "a1@2 a1@5 ~@2 a1 a1@2 a1!2 a1@2", G: "g1@2 g1@5 ~@2 g1 g1@2 g1!2 g1@2",
  H: "d2@2 d2@5 ~@2 d2 d2@2 d2!2 d2@2", I: "bb1@2 bb1@5 ~@2 bb1 bb1@2 bb1!2 bb1@2",
  J: "g2@2 g2@5 ~@2 bb1 bb1@2 g2!2 g2@2", K: "a1@2 a1@3 ~@2 a1 a1@2 a1@2 a1@2 a1@2",
  L: "d2@2 d2@5 d2 bb1@2 bb1@3 ~ bb1@2", M: "c2@3 ~ bb1@3 ~ a1@3 ~ c2@3 ~", N: "c2@2 c2@7 c2 d2 e2 f2 e2 d2 c2",
  O: "c2@10 ~@2 c3@3 ~", P: "d2@3 ~@3 d2@2 c2@3 ~@3 d2 c2", Q: "b1@5 ~ b1@2 bb1@3 ~ a1@3 ~",
  R: "d1@5 ~ d2@2 c2@3 ~@3 c2@2", S: "b1@3 ~@3 b1@2 bb1@3 ~ a1@3 ~", T: "d3 d2 f2 g2 d3 d2 a2@2 c2@3 ~@3 c2@2",
  U: "d1@5 ~ d1@2 c1@3 ~@3 c2@2", V: "g1@2 g1@3 ~@3 a1@2 a1@5 ~", W: "d2@6 ~@2 d2@3 ~ c2@3 ~",
  X: "bb1@2 bb1@3 ~@2 bb1 g1@2 g1@3 ~@3",
  Y: "[a1,a2]@2 a1@2 [g1,g2]@2 g1@2 [a1,f2]@2 f1@2 [a1,a2] [f1,g1,f2,g2] [e1,e2] [db1,d1,db2,d2]", Z: "c2@3 ~@9 c2@3 ~",
  AA: "d2@2 d2@5 ~ c2@3 ~ c2@2 c2@2", AB: "b1@2 b1@3 ~@2 f2 bb1@3 ~ a1@3 ~", AC: "g1@2 g1@3 ~ g2@2 a1@2 a1@5 ~",
  AD: "d2@2 d2@3 ~@2 d2 d2@3 ~ c2@3 ~", AE: "bb1@2 bb1@3 ~@2 bb1 g1@2 g1@3 ~ a1@2",
  AF: "a1@2 a1@3 ~@3 [a1,a2]@2 [g1,g2]@2 [f1,f2]@2 [e1,e2]@2", AG: "c2@3 ~ c2@2 c2@2 c2@2 c2@2 c2@2 c2@2",
  AH: "c2@6 ~@2 f2@3 ~ e2@3 ~", AI: "c2@6 ~@2 c2!2 d2 e2 f2 e2 d2 c2", AJ: "d2@7 ~@2 bb1@7",
  AK: "~@2 c2@8 ~@2 c2!2 d2 e2", AL: "[f2 ~ e2 d2 c2 d2@13 ~@14]/2",
})).s("gm_synth_bass_2").gain(0.48)

// chords · percussive organ · "ORGANO"
const percussive_organ = note(`<
  ~ A B A C D E F G H I J@2 ~@3 K ~@24 L M L N L M O@2 ~@15 P Q R S T U R S T U R V W@3
>`.pickRestart({
  A: "d4@3 ~ bb3@3 ~", B: "c4@3 ~ a4@3 ~", C: "c4@5 ~@3", D: "a5@2 ~ a5 ~@8 a5 ~ g5 f5", E: "g5@3 ~@9 g5 f5 ~ e5",
// … 105 more lines

More by Nek