Strudelify

La compagnia

Battisti

KeyG majorTempo57 bpm
0:00/0:00
// La compagnia — Battisti
// 57 bpm, 4/4, key G 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: Full arrangement: all 80 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(57/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 · electric guitar jazz
const electric_guitar_jazz = note(`<
  A B C D@2 E F G D H F H D F H D@2 E F G D H F H I J K@3 L M N@2 O P Q R S D@2 E F G D H F H I J K@3 L M N@2 O T U V W
  X H Y H K@3 L M N@2 Z AA O AB AC AD H AE
>`.pickRestart({
  A: "~@6 [g3,b3,d4] ~@3 [c4,e4]@2 [b3,d4]@6 [g3,d4] ~@5, ~@5 g3@4 ~@3", // G C Bm G5
  B: "~@6 [c4,e4,g4] ~@3 [f4,a4]@2 [e4,g4]@6 [c4,e4,g4] ~@5, ~@5 c4@4 ~@3", // C F Em C
  C: "~@6 [a3,d4,f#4] ~@3 g4@2 [a3,f#4]@6 [a3,d4] ~@5, ~@5 d4@4 ~@3, ~@10 b3 ~@13", // D D5
  D: "~@6 [b3,d4,g4] ~@11 [b3,d4,g4] ~@5", E: "~@6 [b3,d4,f4] ~@11 [b3,d4,f4] ~@5",
  F: "~@6 [c4,e4,g4] ~@11 [c4,e4,g4] ~@5", G: "~@6 [a3,c4,d#4] ~@11 [a3,c4,d#4] ~@5",
  H: "~@6 [a3,d4,f#4] ~@11 [a3,d4,f#4] ~@5", I: "~@6 [b3,d4,g4] ~@11 [g3,b3,d4,g4] ~@5",
  J: "~@6 [g3,b3,d4] ~@9 d4@2 ~@2 [b3,d4]@2 b3 ~, ~@7 b3@3 ~@2, ~@9 g4@2 ~", // G Bm
  K: "[[g3,b3,d4]@5 ~ [g3,b3,d4] ~@5 d#4 ~@3 b3 ~ [b3,d#4,f#4] ~@5 [e4,g4]@6 [b3,e4,g4] ~@5 [b3,e4]@6 [g3,b3,e4] ~@4 e4 [c4,e4]@6 [g3,c4,e4] ~@5 f#4@6 [a3,f#4] ~@5, ~@11 b3@3 d#4@4 ~@5 b3@5 ~@7 g3@6 ~@6 g3@6 ~@6 [a3,d4]@7 ~@6, ~@12 f#4@5 ~@55]/3", // G B Em E5 Em C D D5
  L: "[g3,b3]@6 [g3,b3] ~@5 g4@5 ~ [b3,d4,g4] ~@5, ~@11 [b3,d4]@6 ~@7", // G Bm
  M: "~ d#4 ~ d#4 b3 d#4 b3 d#4 f#4 d#4 b3 d#4 a3 d#4 f#4 d#4 a3 d#4 a3 d#4 f#4 d#4 a3 d#4, b3 f#4 ~@10",
  N: "[g3 c4 e4 c4 g3 c4 g3 c4 e4 c4 g3 c4 g3 c4 e4 c4 g3 c4 g3 c4 e4 c4 g3 ~ [g3,e4]@5 ~ [g3,c4,e4] ~@5 f#4@6 [a3,d4,f#4] ~ [a3,a4] ~@3, ~@23 c4@7 ~@5 [a3,d4]@6 ~@7]/2", // C D A D5
  O: "[b3,d4]@5 g3 [b3,d4] ~ [g3,b3]@2 b3 ~ [b3,d4]@5 [g3,b3] ~ b3 g3@2 b3 ~, g3@2 ~@4 g3@2 ~ d4@2 ~", // Bm G Bm G
  P: "[c4,e4]@5 g3 [c4,e4] ~@5 [c4,e4,g4]@6 [c4,e4,g4] ~@5, g3 ~@5", // C
  Q: "[a3,d4,f#4]@6 [a3,d4,a4] ~@5 f#4@6 [a3,a4] ~@5, ~@11 [a3,d4]@7 ~@6", // D D5 A D5
  R: "[g3,c4,e4]@5 ~ [g3,c4,e4] ~@5 [c4,e4,g4]@5 ~ [c4,e4,g4] ~@3 [g3,c4] ~", // C C5
  S: "[a3,d4,f#4]@6 [a3,d4,f#4] ~@5 [d4,f#4]@5 a3 [d4,f#4] ~@5, ~@3 a3 ~@2", // D
  T: "[g3,c4,e4] ~@5 [g3,b3,d4] ~@11 [b3,d4,g4] ~@5", // C G
  U: "~@10 [g3,c4,e4] ~ [g3,b3,d4] ~@3 [g3,c4,e4] ~@3 [g3,b3,d4] ~@3", V: "~@6 [c4,e4,g4] ~@9 [c4,e4] ~ [c4,e4,g4] ~@5",
  W: "~@6 [a3,c4,d#4] ~@7 [a3,c4,d#4] ~@3 [a3,c4,d#4] ~@5", X: "c4 ~@5 [b3,d4,g4] ~@11 [b3,d4,g4] ~@5",
  Y: "~@6 [c4,e4,g4] ~@11 [c4,e4,g4] ~ [c4,e4] ~@3", Z: "~@6 [g3,c4,e4] ~@11 [g3,c4,e4] ~@5",
  AA: "g3@6 [g3,c4,d4,e4] ~@5 [d4,f#4]@6 [a3,d4,f#4] ~@5, ~@11 a3@6 ~@7", AB: "~@6 [g3,c4,e4] ~@10 c4 [e4,g4] ~@5",
  AC: "~@6 [a3,d4,f#4] ~@11 [d4,f#4,a4] ~@5", AD: "~@6 [g3,c4,e4] ~@11 [c4,e4,g4] ~ c4 ~@3",
  AE: "[g3,b3,d4]@11 ~@13, a3 ~@2", // G
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.3)

// chords · epiano1
const epiano1 = note(`<
  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 AC AD AE AF AG AH AI AJ AK AL P Q R S T U V W X Y Z AA AB AC
  AD AE AF AG AM AN AO AP AQ AR AS AT AS AA AB AC AD AE AF AG AU AV AM AW AX AY AZ BA
>`.pickRestart({
  A: "~@2 d4 ~ d4 b3@2 ~ d4 g2 [a2,d4] [b2,b3], g2 ~, ~@2 b3@7 ~@5 b3@7 ~@3, ~@3 g4@2 ~@4 g4@2 ~", // D5 B
  B: "~@2 c4 ~ c4 g3 ~@2 e4 ~ [c3,e4] [c#3,c4], c3 ~, ~@2 g3@7 ~@9 g4@4 ~@2, ~@3 e4@3 ~ c4@3 ~@2", // C C#maj7
  C: "~@4 d4@2 ~@2 d4@2 a3@2 ~@6 a4@3 ~@3, d3 ~, ~ a3@3 ~@4 f#4@2 ~@2, ~@6 f#4@5 ~@3 d4@6 ~@4",
  D: "~@2 d4 ~@2 b3 ~@2 b3 d4@3, ~@2 b3@7 ~@15, ~@2 g4@3 ~@3",
  E: "~@2 d4 ~ d4 ~@5 d4 ~, g2@5 ~@4 g4@2 ~, ~ b3@2 g4@2 ~@2 b3@3 ~@2",
  F: "~@8 d4@3 ~@5 b3@2 d4@4 ~@2, g2@3 ~@5, ~@2 b3@7 ~@5 g3@6 ~@4, ~@3 f4@2 ~@7",
  G: "~@4 e4@2 ~@4 c4@3 ~@3 e4@2 g4@2 ~@4, ~@2 c4@7 ~@5 c4@5 ~@5, ~@3 g4@4 ~@5",
  H: "~@5 a3@2 ~@2 d#4@2 ~, ~@6 d#4@5 ~@3 f2@8 ~@2, ~@8 c4@7 ~ a3@4 ~@4",
  I: "~@8 d4@2 b3@3 ~@3 d4@2 g4@6, ~@4 b3@5 ~@5 b3@6 ~@4, ~@3 g4@2 ~@7",
  J: "~@2 d4 ~@2 a3@2 ~ a3 [d4,f#4] a3 c#3, d3@4 d4@3 ~@5, ~@2 a3@7 ~@5 d3@6 ~@4, ~@2 f#4@3 ~@3", // D
  K: "~@2 e4 ~@2 c4 ~@2 c4 e4 c4 c#3, c3@5 ~ c3@5 ~, ~ c4@3 e4@2 ~ g3@3 ~@2, ~@6 g4@7 ~@11",
  L: "~@2 d4 ~@2 a3@2 ~@2 f#4 d4 a3, d3@5 ~@2 d3@3 ~@2, ~@3 f#4@2 ~@7, ~@4 d4@3 ~ a3@2 ~@2",
  M: "~@4 b3 g3 ~ g3 b3 a2@2 b2, g2@5 ~ g2@3 ~@3, ~ g3@3 ~@8, ~@3 d4@2 ~@7",
  N: "~@10 c4 c#3, c3@12 c3@11 ~, ~@2 g3@12 g3@4 [g3,e4]@5 ~, ~ c4@3 c4 ~, ~ e4@2 ~", // C
  O: "~@9 [d4,f#4] f2 f#2, d3@7 d3@3 ~@2, ~ a3@4 a3@3 a3@2 ~@2, ~@2 d4@2 d4@5 ~@3, ~ f#4@2 ~", // D
  P: "b3 ~@3 b3 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 b3 ~ b3 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  Q: "b3 ~@3 b3 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~@5 b3 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  R: "b3 ~@5 [g3,b3,d4] ~@3 [g3,b3,d4] ~@7 [g3,b3,d4] ~@3 b3 ~", // G
  S: "~@4 c4 ~ [g3,c4] ~@3 [g3,c4,e4] ~@3 [g3,c4] ~ c4 ~ [g3,c4] ~@3 [g3,c4] ~", // C5 C C5
  T: "~@4 c4 ~ [a3,c4,d#4] ~@3 [a3,c4,d#4] ~@3 [c4,d#4] ~@3 [a3,c4,d#4] ~@3 [a3,c4,d#4] ~", // Adim Cm Adim
  U: "~@4 [g3,b3] ~@5 [g3,b3,d4] ~@3 b3 ~ [g3,b3] ~@3 [g3,b3,d4] ~@3", // G
  V: "~@2 [a3,d4] ~@3 [d4,f#4] ~@3 [a3,d4,f#4] ~@3 a3 ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", // D5 D
  W: "~@6 [g3,c4] ~@3 [g3,c4] ~@3 [c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C5 C
  X: "~@4 a3 ~ [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@7 [a3,d4,f#4] ~@3 [a3,f#4] ~", // D
  Y: "b3 ~ b3 ~ g3 ~ [g3,b3,d4] ~ g3 ~ [g3,b3] ~ g3 ~@5 [g3,b3] ~ g3 ~ [g3,b3,d4] ~, g2@19 ~@5", // G
  Z: "~@2 g3 ~@3 [g3,b3,d4] ~@3 [g3,b3] ~ g3 ~@3 g3 ~ [g3,b3,d4] ~ g3 ~ [g3,b3,d4] ~, g1 ~", // G
  AA: "[g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [a3,d#4,f#4] ~ [a3,d#4] ~ [a3,d#4] ~ [a3,d#4,f#4] ~ [a3,d#4,f#4] ~ [a3,d#4,f#4] ~", // G D#dim Adim D#dim
  AB: "[b3,e4,g4] ~ [e4,g4] ~ [e4,g4] ~ [b3,e4,g4] ~ [e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4] ~ e4 ~ e4 ~ [b3,e4,g4] ~ [e4,g4] ~ [b3,e4,g4] ~", // Em
  AC: "[g3,c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // C D
  AD: "[b3,d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [b3,d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [b3,d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,g4] ~", // G G5 G G5 G G5 G Em
  AE: "[b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~ [b3,d#4] ~ [b3,d#4,f#4] ~ [a3,d#4,f#4] ~ [a3,d#4,f#4] ~ [a3,d#4] ~ [a3,d#4,f#4] ~ [a3,d#4,f#4] ~ [a3,d#4,f#4] ~", // B D#dim Adim D#dim
  AF: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // C Em C
  AG: "[g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // C D
  AH: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~, g2@10 a2 b2", // G Bm G
  AI: "[g3,c4,e4,f4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, c3@6 ~@4 c3 c#3", // C C5 C
  AJ: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~, d3@6 ~@4 d3 c#3", // D
  AK: "[g3,c4,e4] ~ [g3,c4,e4] ~ [c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~, c3@19 ~ c3@2 c#3@2", // C
  AL: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ f#4 ~ [a3,d4,a4] ~ [a3,d4,a4] ~ [a3,d4,a4] ~ [a3,d4,a4] ~@5, d3@2 ~", // D D5
  AM: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~, g2@5 ~", // G Bm G
  AN: "[b3,d4,g4] ~@5 [b3,d4,g4] ~@5 [b3,d4,g4] ~@3 d4 ~ [b3,d4,g4] ~@5", // G
  AO: "[b3,d4,f4] ~@3 d4 ~ [b3,d4,f4] ~@5 [b3,d4,f4] ~@5 [b3,d4,f4] ~@5", // Bdim
  AP: "[g3,c4,e4] ~@3 e4 ~ [c4,e4,g4] ~@3 c4 ~ [g3,c4,e4] ~@5 [c4,e4,g4] ~ c4 ~ c4 ~", // C
  AQ: "[a3,c4,d#4] ~@5 [a3,c4,d#4] ~@5 [a3,c4,d#4] ~ d#4 ~@3 [a3,c4,d#4] ~@5", // Adim
  AR: "[g3,b3,d4] ~@5 [b3,d4,g4] ~@3 [b3,d4,g4] ~ b3 ~@5 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  AS: "[a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5", // D
  AT: "[g3,c4,e4] ~@5 [g3,c4,e4] ~@3 [e4,g4] ~ [c4,e4,g4] ~@3 e4 ~ [c4,e4,g4] ~@3 e4 ~", // C Em C
  AU: "[c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4] ~ e4 ~ [c4,e4,g4] ~ c4 ~ c4 ~", // C
  AV: "[g3,c4,e4] ~ [g3,c4,e4] ~ c4 ~ [g3,c4,e4] ~ e4 ~ [g3,e4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // C D
  AW: "[c4,e4,g4] ~ e4 ~ e4 ~ [c4,e4,g4] ~@5 [g3,c4,e4] ~ c4 ~@3 [g3,c4,e4] ~ e4 ~ [c4,e4,g4] ~", // C
  AX: "[a3,d4,f#4] ~ f#4 ~@3 [a3,d4,f#4] ~@3 f#4 ~ [a3,d4,f#4] ~ f#4 ~ f#4 ~ [a3,d4,f#4] ~@3 f#4 ~", // D
  AY: "[g3,c4,e4] ~ [c4,e4] ~@3 [g3,c4,e4] ~@5 [c4,e4,g4] ~ e4 ~ [c4,e4,g4] ~ [c4,e4,g4] ~@3 g4 ~", // C
  AZ: "[a3,d4,f#4] ~ f#4 ~@3 [a3,d4,f#4] ~@3 a3 ~ [a3,d4,f#4] ~ f#4 ~@3 [a3,d4,f#4] ~ f#4 ~@3", // D
  BA: "[g2,a3,b3,d4]@7 ~@5, g3 ~@23", // G
})).s("gm_epiano1").gain(0.1).pan(0.8)

// chords · epiano1 · soft notes
const epiano1_soft = note(`<
  ~@2 A B C D E F G ~@3 H ~@2 I ~@5 J ~@4 K L M N O P M Q R S ~@2 I ~@5 J ~@4 K L M N O P M Q T ~@2 U ~ V W X K L M N O
  P M ~ Y Q ~ Z AA AB ~
>`.pickRestart({
  A: "~@12 d4 ~@11", B: "~@8 d4@2 ~@4 g3@5 ~@3 b3@2", C: "~@10 b3@3 ~@3 d4@2 ~@4 b3@2",
  D: "~@4 d4@2 ~@4 b3@4 ~@6 b3@2 g3 ~", E: "c3@8 e4@2 ~@10 c4 ~@3", F: "~@16 d#4 ~@3 c4@2 a3@2", G: "~@11 d4",
  H: "~@2 b3 ~@9", I: "~@2 b3 ~@9 b3 ~@11", J: "~@2 f#4 ~@21", K: "~@14 f#4 ~ f#4 ~@7", L: "~@16 b3 ~@3 b3 ~@3",
  M: "~@2 g3 ~@5 g3 ~@15", N: "~@4 b3 ~@5 b3 ~@3 b3 ~ b3 ~@7", O: "~@8 f#4 ~@7 f#4 ~@7", P: "~@8 g3 ~@15",
  Q: "~@16 g4 ~@7", R: "~@16 g3 ~@7", S: "~@10 d4 ~@13", T: "~@2 d4 ~@5 d4 ~@15", U: "~@22 d#4 ~",
  V: "~@10 [a3,f#4] ~@13", W: "~@10 c4 ~@13", X: "~@20 a3 ~@3", Y: "~@8 c4 ~@7 a3 ~@7", Z: "~@4 f#4 ~@19",
  AA: "~@4 c4 ~@19", AB: "~@4 f#4 ~@11 f#4 ~@7",
})).s("gm_epiano1").gain(0.06).pan(0.8)

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

// chords · piano
const piano = note(`<
  ~@3 A@2 B C D E F G F E H I A@2 B C D E F G F E J K L M N O P M N P Q P R A@2 B C D E F G F E J K L M N O P M N S@2 P
  T N Q P Q K L M N O P M P M N P Q P Q U
>`.pickRestart({
  A: "[g2,g3,b3,d4]/2", B: "[g2,f3,b3,d4]", C: "[c3,c4,e4,g4]", D: "[f2,a3,c4,d#4]", E: "[g2,g3,b3,d4]",
  F: "[d3,d4,f#4,a4]", G: "a4 g4@3, [c3,c4,e4]", H: "a4 g4 a4 g4, [c3,c4,e4]", I: "b4@6 a4@6 b4@6 a4@5 ~, [d3,d4,f#4]",
  J: "[g2,b3,d4,g4]", K: "[g4,b4,d5] [a4,d#5,f#5]", L: "[b4,e5,g5]", M: "[g4,c5,e5] [a4,d5,f#5]", N: "[b4,d5,g5]",
  O: "b4 a4, [d#5,f#5]@11 ~", P: "[g4,c5,e5]", Q: "[a4,d5,f#5]", R: "[a4,d5,f#5]@3 ~", S: "[g5 f5, [b4,d5]]/2",
  T: "[a4,c5,d#5]", U: "[d4,g4,b4] ~",
})).s("gm_piano").gain(0.21)

// other · string ensemble 2
const string_ensemble_2 = note("<~@26 A B C D E F G H ~@15 A B C D E F G H ~@8 A B C D E F G I@2 J ~@5>".pickRestart({
  A: "d6 d#6", B: "e6@9 b5@2 ~ g5@6 e5@6", C: "a4@3 b4@4 ~ c5@4 d5@4 e5@4 f#5@4", D: "b5@12 g5@3 d5@4 ~ g5@2 b5@2",
  E: "d#6@3 b5@3 f#6@4 e6 f#6", F: "e6@9 c6@2 ~ g5@9 e5@3", G: "a5@4 b5 c6 d6@5 a5", H: "g5@3 ~",
  I: "[g5@4 ~ a5@4 ~ e5@2 g5@3 a5@4 b5@4 g5@4 a5@4 ~ b5@2 c6@2 d6@4 a5@4 b5@2 c6@2]/2",
  J: "g5@10 b5@2 g5@4 d5@4 e5@3 ~",
})).s("gm_string_ensemble_2").gain(0.17)

// chords · piano
const piano_2 = note(`<
  A B C ~@2 D ~ E F G H ~ I J K L ~ M N O ~@2 P ~ Q R ~@8 S T U V ~@2 W X Y ~@2 Z AA AB AC ~@26 AD AE AF AG ~
>`.pickRestart({
  A: "~@16 g1@2 [g3,d4] ~@5, ~@9 g1@2 g2@7 ~@6, ~@5 g3@4 ~@3, ~@5 [c4,e4] [b3,d4]@3 ~@3", // G5 C Bm
  B: "~@10 [a3,c4,f4]@2 [g3,c4,e4]@6 [g3,e4] ~@5, ~@10 c3 ~@13", // F C
  C: "~@10 [b3,g4]@2 [a3,f#4]@6 [a3,f#4] ~@5, ~@3 d2 ~@4, ~@10 d4@9 ~@5", // Em D
  D: "~@9 [g1,g2] ~ g1 [f3,b3,d4]@6 ~@6, ~@5 [g3,c4,e4] ~@6, ~@11 g2@2 ~@11", // G Bdim C
  E: "~@10 [g3,c#4,d4] ~ [c4,d#4]@6 [a3,c4,d#4] ~@5, ~@5 a3@4 ~@3, ~@10 f1@5 ~@9, ~@5 f4 ~@6, ~@11 f2@7 ~@6", // G Cm Adim
  F: "~@10 [c4,e4]@2 [b3,d4]@6 ~ g2 [g3,b3,d4] ~@3, ~@9 g1@2 ~@13, ~@10 g3@7 ~ [g3,c4,e4]@2 ~@4", // C Bm G C
  G: "~@12 [b3,d4,g4]@2 [d3,a3,f#4] ~@5 [b3,g4] [d2,d3] a3 ~, ~@11 d2@2 ~@7 d4@2 ~@2", // G D Em D
  H: "~@10 a3 c3 [g3,e4]@6 [g3,e4] ~@5, ~@5 c4@4 ~@3, ~@5 [c2,f4] ~@6", // C F5
  I: "~@8 [g3,c4,e4] ~@2 g1 [g3,b3,d4]@4 ~@8, ~@5 [g3,c4,e4] ~@6", // C G C
  J: "~@10 [c2,c3,a3,f4] [c2,c3] [g3,c4,e4]@5 c2 [g3,c4,e4] ~@5, ~@5 c4 ~@6", // F C
  K: "~@10 b3 d3 [a3,d4,f#4]@6 [a3,f#4] ~@5, ~@9 d2@2 ~@13, ~@5 [d4,g4] ~@6", // D G5
  L: "~@9 g2 ~ g1 [g3,b3,d4]@6 ~@6, ~@8 [g3,e4]@4 g2 ~@11, ~@4 c4 ~@7", // G C
  M: "~@7 g2 [g3,e4] g2 ~ g2 [f3,b3,d4]@4 [g3,c4,e4] ~@2 g2 [b3,d4]@2 ~@2, ~@8 c4@2 [g3,c4,e4]@2 g1 ~@7 f3 ~@3", // C Bdim C Bm C
  N: "~@11 c3 [g3,e4]@6 [g3,e4] ~@5, ~@9 c2@2 ~@13, ~@5 c4@4 ~@3, ~@5 [a3,f4] ~@6", // C Dm
  O: "~@8 [c#4,d4,e4] ~ [d4,f4]@2 [c4,d#4]@4 ~@8, ~@4 [a3,f4] a3@3 ~@4, ~@12 f1 ~@11", // C#m Dm Cm Dm
  P: "~@12 f4@2 [g3,e4] ~@2 c2 a3 c3 [g3,e4] ~@3, ~@12 c4@4 ~@2 [c4,f4]@3 ~@3, ~@12 a3 ~@11", // C F5
  Q: "g2@6 [g1,g3,d4] ~@3 [g3,e4] g2 [b3,d4]@5 ~ b3 g2 [g3,b3,d4] ~@3, ~@6 b3@2 ~@2 c4@2 g3@4 ~ g1@2 ~@5, ~@9 [g3,c4,e4] ~@2", // G5 C Bm G C
  R: "~@9 g1 ~ g2 g3@4 g3 ~ g3 ~@5, ~@10 [g3,c4,e4]@2 [b3,d4]@5 g1@2 ~@5", // C Bm
  S: "~@9 c2 ~@7 c3 [g3,d4,e4] ~@5, ~@10 [a3,c4,f4]@2 [g3,c4,e4]@7 ~@5, ~@11 c3@4 ~@9", // Em7 F C
  T: "~@11 d3 [a3,d4,f#4]@6 [a3,d4,f#4] ~@5, ~@9 d2@2 ~@13, ~@5 [b3,d4,g4] ~@6", // D G
  U: "~@7 c2 [a3,c4,f4]@2 [c3,a3] ~@3 [a3,c4,f4]@2 [c3,a3] c2 [g3,c4,e4]@3 ~@3, ~@13 c2@2 ~@9", // F C
  V: "~@6 [b3,d4] ~@3 [b3,g4] d3 [a3,f#4]@5 d2 [d3,a3,d4,f#4] ~@5, ~@5 d2@2 ~@2 d2@2 ~@13, ~@3 g4 ~ d4@4 ~@3", // Bm Em D
  W: "~@10 g3 g2 [b3,d4]@5 g1 [g3,c4,e4]@2 [f3,b3] ~@3, ~@9 g1@2 ~@13, ~@5 [c4,e4] f3@2 ~@4", // Bm C Fdim C
  X: "~@11 c3 [g3,c4,e4]@6 [g3,e4] ~@5, ~@9 c2@2 ~@13, ~@5 [a3,c4,f4] ~@6", // C F
  Y: "~@8 [g3,a3,c#4,d4] ~ f4 f2 [c4,d#4]@4 ~@4 [a3,d4,f4]@2 [c4,d#4] ~, ~@4 f4 a3@3 ~@4, ~@9 f2@2 ~@13, ~@5 d4 ~@6", // Gsus2 Cm Dm Cm
  Z: "~@12 [a3,f4] c3 [g3,e4] ~@2 c2 ~ c3 [g3,e4] ~@3, ~@11 c2@2 ~@11, ~@12 c4@2 ~@4 [a3,c4,f4]@3 ~@3", // Dm C F
  AA: "~@11 d3 [a3,f#4]@6 [a3,d4,f#4] ~@5, ~@9 d2@2 ~@13, ~@5 d4@4 ~@3, ~@5 [b3,g4] ~@6", // D Em
  AB: "~@6 [g3,b3,d4] ~@4 g2 d4@2 d4@4 [g3,b3,d4] ~@5, ~@5 [g1,g3,c4,e4] [g3,b3]@3 ~@3", // G C G
  AC: "~@5 [g1,g2] [g3,b3,d4] ~@4 g2 [b3,d4]@5 g1@2 ~@5, ~@9 g1@2 ~@13, ~@5 [g3,c4,e4] ~@6", // G Bm C
  AD: "~@8 [a3,b3,f4] c3 ~ [c2,c3] [g3,e4]@6 [g3,c4] ~@5, ~@4 c4 c4@4 ~@3, ~@9 c2@2 ~@13, ~@5 [a3,f4] ~@6", // Bm7b5 C C5 Dm
  AE: "~@6 [b3,d4,g4]@2 [a3,f#4] ~@9 g4 d3 f#4@2 ~@2, ~@18 [d2,b3,d4]@2 a3 ~@3", // G D G
  AF: "~@10 a3 ~ [g3,c4,e4]@5 c2 [g3,c4,e4] ~@5, ~@9 c2@2 c3@2 ~@11, ~@5 [c4,f4] ~@6", // C F5
  AG: "~@4 g4 [d2,d3] [a3,d4,f#4] ~@7 [d2,g4] d3 [a3,d4,f#4] ~@3 b3 d3 [a3,f#4] ~, ~@4 [b3,d4]@2 ~@8 [b3,d4]@2 ~@3 d2@2 ~@3, ~@20 [d4,g4]@3 ~", // D G5 D Bm G5
})).s("gm_piano").gain(0.14)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A B ~@2 C ~ D E ~@3 F ~ G H ~ I ~ J ~@2 K ~ L ~@11 M N ~@2 O ~@7 P ~@26 Q R S T ~
>`.pickRestart({
// … 126 more lines

More by Battisti