Strudelify

Gli innamorati

Tozzi

KeyG majorTempo97 bpm
0:00/0:00
// Gli innamorati — Tozzi
// 97 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 87, 4/4 at bar 87) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 15 piano (copy of ch 14 piano)
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/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(`<
  ~@9 A B C D E F G ~ A H C I@2 J@8 K L@8 M@8 N@6 O K P@8 ~@29 Q R@2 ~@3 S@4 T@6 U@8 V@8 W@3 ~
>`.pickRestart({
  A: "~@2 f5@2 f5@2 f5@2 f5@3 e5@3 e5@2", B: "e5@3 d5@3 d5@4 c5 a4@3 ~@2", C: "~@2 c5@2 c5@2 c5@2 c5@3 a#4@3 a4@2",
  D: "c5@2 a4 g4@3 ~@2", E: "~@2 g4@2 g4@2 g4@2 g4@3 a4@3 a#4@2", F: "f5@3 e5@3 a4@4 g4 f4@3 ~@2",
  G: "~@2 c5@2 c5@2 c5@2 d5@3 c5@3 a4@2", H: "e5@3 d5@3 d5@2 ~@8",
  I: "[c5@4 ~@2 g4@6 ~@6 g4@2 g4@2 g4@2 g4@3 ~@3 a#4@2, ~@4 a4@23 a4@5]/2",
  J: "[f5@3 e5@3 ~@4 g4 f4@3 ~@4 c5@2 c5@2 c5@2 d5@3 c5@3 c5@2 a5@80 ~@3 g5@3 d5@2 ~@3 g5@3 d5@2, ~@3 a4@61, ~@14 a5!2]/8",
  K: "g5@3 f5@3 ~@2 g5@3 f5@3 c5@2, ~@3 a5@5",
  L: "[f5@3 e5@3 c5@2 e5@3 f5@3 ~@2 g5@12 ~@6 f5@2 f5@2 f5@2 f5@3 e5@3 e5@2 e5@3 d5@3 d5@4 c5 ~@7 c5@2 c5@2 c5@2 c5@3 a#4@3 ~@2 c5@4 ~@2 g4@6 ~@6 g4@2 g4@2 g4@2 g4@3 ~@3 a#4@2 f5@3 e5@3 ~@4 g4 f4@3 ~@2, ~@7 a5@57, ~@59 a4@19 a4@6 a4@23 a4@11 a4@10]/8",
  M: "[~@2 c5@2 c5@2 c5@2 d5@3 c5@3 ~@6 g5@2 g5@10 f5@3 e5@3 c5@2 f5@3 e5@3 c5@2 f5@3 e5@3 c5@2 f5@3 e5@3 c5@2 d5@3 c5@3 f4@2 d5@3 c5@3 f4@2 g4@8 ~@11 g5@3 d5@2 ~@3 g5@3 d5@2 g5@3 f5@3 ~@2 g5@3 f5@3 c5@2, ~@7 a4@57, ~@8 a5@40 a5@4 a5@7 a5@5]/8",
  N: "[f5@3 e5@3 c5@2 e5@3 f5@3 ~@2 g5@10 ~@2 g5@2 f5@2 f5@3 e5@3 c5@2 f5@3 e5@3 c5@2 f5@3 e5@3 c5@2 f5@3 e5@3 c5@2 d5@3 c5@3 f4@2 d5@3 c5@3 f4@2 g4@8 ~@8, ~@7 a5@6 a5@35]/6",
  O: "~@3 g5@3 d5@2 ~@3 g5@3 d5@2, a5!2", P: "[f5@3 e5@3 c5@2 e5@3 f5@3 ~@2 g5@12 ~@100, ~@7 a5@57]/8",
  Q: "~@13 c5@2 ~", R: "[~ d5@2 ~@2 e5@2 ~@2 f5@2 ~@2 g5@14 ~@5]/2",
  S: "[~@13 a4@2 a4@2 a4@2 a4@3 b4@3 c5@2 g5@4 f#5@2 b4@4 a4 g4@3 ~@4 d5@2 d5@2 d5@2 e5@3 d5@3 b4@2 b5@3 a5@2]/4",
  T: "[~@11 g5@3 f#5@3 d5@2 g5@3 f#5@3 d5@2 g5@3 f#5@3 d5@2 g5@3 f#5@3 d5@2 e5@3 d5@3 g4@2 e5@3 d5@3 g4@2 a4@8 ~@8 b5@3 ~@3 e5@2 b5@3 ~@3 e5@2 ~@3 g5@2, ~ a5@77 a5@8 a5@5 a5@5]/6",
  U: "[~ b5@2 ~@3 g5@3 d5@2 g5@3 f#5@3 d5@2 f#5@3 g5@3 b5@2 ~@10 b5@2 ~@2 g5@2 g5@3 f#5@3 d5@2 g5@3 f#5@3 d5@2 g5@3 f#5@3 d5@2 g5@3 f#5@3 d5@2 e5@3 d5@3 g4@2 e5@3 d5@3 g4@2 a4@8 ~@8 b5@3 ~@3 e5@2 b5@3 ~@3 e5@2 ~@3 g5@2, ~@3 a5@24 a5@12 a5@71 a5@8 a5@5 a5@5]/8",
  V: "[~ b5@2 ~@3 g5@3 d5@2 g5@3 f#5@3 d5@2 f#5@3 g5@3 b5@2 ~@10 b5@2 ~@2 g5@8 ~@20 b5@2 ~@2 g5@8 ~@8 d6@8 ~@4 b5@2 ~@2 g5@8 ~@15, ~@3 a5@24 a5@12 a5@32 a5@32 a5@25]/8",
  W: "[~@5 b5@2 ~@2 g5@8 ~@8 d6@8 ~@4 b5@2 ~@2 g5@7, ~@7 a5@34 ~@7]/3",
})).s("gm_piano").gain(0.46)

// other · piano
const piano_2 = note("<~@16 A@4 ~@4 B C@2 D ~@29 E F G H I J K@8 ~@13 L M@2 ~@7 N@2 O@3 ~@29>".pickRestart({
  A: "[~@2 g4 g4@2 f4 f4@2 ~@24, a4]/4", B: "~@2 g5 g5@5", C: "f5@3 e5@3 c5@2 f5@3 e5@3 c5@2",
  D: "d5@3 c5@3 f4@2 d5@3 c5@3 f4@2", E: "~@2 g5@2 g5@2 g5@2 g5@3 a5@3 a#5@2", F: "a#5@2 f5 a#5@3 g#5@2",
  G: "~ f5!4 g5 g#5 a#5", H: "~@2 g#5 g5@2 g#5@2 ~", I: "~@2 f5@2 f5@2 f5@2 f5@3 g5@3 g#5@2", J: "g#5@2 g5 g5@3 ~@2",
  K: "[~ g5 g5@62]/8", L: "~@9 g5@2 g5@2 c6@3", M: "[~ g5@2 g5@6 f5@2 f5@8 ~@13]/2",
  N: "[~@13 g5@2 g5@2 g5@2 g5@3 f#5@3 f#5@2 f#5@3 e5@2]/2",
  O: "[~ e5@4 d5 b4@3 ~@4 d5@2 d5@2 d5@2 d5@3 c5@3 b4@2 d5@4 b4@2 ~@15]/3",
})).s("gm_piano").gain(0.46)

// other · piano
const piano_3 = note(`<
  ~ A B C D A B C D ~@8 A ~@6 D A B C D E B ~ D A ~@6 D A B C D E B ~ D A B C D E B ~ D F B G H I J K L M@2 ~@6 N@2 ~@5
  O@16 P@5 Q@8 R ~@18
>`.pickRestart({
  A: "f3@15 ~", B: "d3@15 ~", C: "a#3@15 ~", D: "c3@7 ~", E: "g3@15 ~", F: "d#3", G: "c#3", H: "c3@15 ~", I: "b2@15 ~",
  J: "a#2@7 ~", K: "a2", L: "a#2", M: "[~@8 f3@15 ~@9]/2", N: "[~@8 g3@15 ~@9]/2",
  O: "[~@8 d3@14 ~@2 g3@15 ~ e3@15 ~ c4@15 ~ d3@14 ~@2 a3@15 ~ e3@15 ~@9]/8",
  P: "[~@8 d3@14 ~@2 g3@15 ~ e3@15 ~ c4@15 ~ d3@8]/5",
  Q: "[~@8 g3@15 ~ e3@15 ~ c4@15 ~ d3@14 ~@2 g3@15 ~ e3@15 ~ c4@15 ~ d3@8]/8", R: "~@8 g2@5 ~@3",
})).s("gm_piano").gain(0.2)

// other · piano · soft notes
const piano_soft = note("<~@31 A ~@15 A ~@7 A ~@31 B@2 ~@6 B@2 ~@31>".pickRestart({
  A: "a3@15 ~", B: "[~@8 b3@15 ~@9]/2",
})).s("gm_piano").gain(0.1)

// chords · piano
const piano_4 = note(`<
  ~ A B C D E F G H ~@9 I@2 J@2 ~ 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 AD AE AL AM AN AO AP
  AQ AR AS AT AU AV AW AX AY AZ BA BB@2 BC BD BE BF BG BH BI@2 ~@2 BJ BK ~@2 BI@2 ~@2 BL BM ~@2 BL BN ~ BL BO BP BG BH
  BQ@2 ~ BR BJ BS BT BU BV BW ~@18
>`.pickRestart({
  A: "~@6 f4@5 ~@5, f2@3 ~@5, ~ a3@2 ~@5, ~ c4 ~@2", B: "~@6 f4@9 ~, d3@7 ~@9, ~ a3@5 ~@2, ~@4 d4@9 ~@3",
  C: "~@2 g3@2 ~@2 f4@9 ~, a#2@9 ~@7, ~@2 c4@3 ~@3", D: "~@3 c4@4 ~, c3@11 ~@5, ~ f3@2 ~@5, ~ g3@2 ~",
  E: "~@10 f3@5 ~, ~@2 a3@4 f4@7 ~@3, ~@4 c4@7 ~@5", F: "~@6 f4@9 ~, d3@3 ~@5, ~ a3@2 ~@5, ~@4 d4@7 ~@5",
  G: "~@2 f4 ~@2 a#3@2 ~, a#2 ~@3, ~@2 c4@4 g4@7 ~@3", H: "~@3 f3 ~@2 c4@8 ~@2, c3@3 ~@5, ~@2 g3@3 ~@3",
  I: "[~@10 a2@2 e3@2 f3@9 ~@9]/2", J: "[~@8 f3@2 e3@2 c3@2 d3@11 ~@7]/2", K: "~@3 g3@3 c3@2 f3@3 g3@3 c3@2",
  L: "[c3,f3]@3 g3@3 c3@2 f3@3 g3@3 c3 ~", M: "[a3,c4]@5 ~ f4@7 ~@3, f3@3 ~@5",
  N: "~@6 f4@5 ~@5, d3@13 ~@3, ~ a3@3 ~@4, ~ c4 ~@2", O: "~@3 f4@4 ~, a#2 ~, ~@2 a#3@7 ~@7, ~@2 c4@3 ~@3",
  P: "f3 ~@2 g3@3 c3@4 f3@2 g3@2 c3@2", Q: "~@6 g3@2 ~@2 g3@5 ~, ~@2 g2@13 ~, ~@4 d3@11 ~, ~@8 d4@7 ~",
  R: "~@3 f4@3 ~@2, ~ a3@3 ~@4, ~@2 d4@3 ~@3", S: "~@3 f4@3 ~@2, ~ a3@3 ~@4, ~@2 c4@3 ~@3",
  T: "f3@2 ~ g3@3 c3@2 f3@3 g3@3 c3 ~", U: "[f3,a3,c4] ~", V: "[f3,a3,d4] ~", W: "[a#3,c4,f4] ~", X: "[a#3,c4,g4] ~",
  Y: "g3 ~@2 g4@3 ~@2, ~ a#3@2 ~@5, ~ d4 ~@2", Z: "d3@2 a3@2 d4@2 f4@3 ~@7", AA: "f3 ~@2 g3@3 c3@2 f3@3 g3@3 c3@2",
  AB: "f3@3 g3@3 c3@2 f3@3 g3@3 c3 ~", AC: "[a3,c4,f4]@7 ~@9", AD: "[a3,d4,f4]@3 ~@5", AE: "[a#3,c4,f4]@3 ~@5",
  AF: "f3@2 ~ g3@3 c3@4 f3@2 g3@2 c3 ~", AG: "g3@7 ~@9", AH: "[a3,d4,f4]@7 ~@9", AI: "[a3,c4]@3 ~@5",
  AJ: "f3@3 g3@3 c3@3 ~ f3@2 g3@2 c3 ~", AK: "[g3,c4,f4]@7 ~@9", AL: "f3@3 g3@3 c3@3 ~ f3@2 g3@2 c3@2", AM: "g3 ~@7",
  AN: "d3@2 a3@3 ~@11", AO: "f3@3 g3@3 c3@2 ~@2 f3@2 g3@2 c3@2", AP: "f3@3 g3@3 c3@2 [c3,g3]@3 ~@5",
  AQ: "d#3@8 a#2@2 ~ d#3@4 ~, a#3@15 ~, g3@13 ~@3", AR: "d3@6 d4@2 d3@2 a#3@2 f3@3 ~, f3@9 ~@7, a#3@5 ~@11",
  AS: "g#3@6 c#3@4 g#2@2 c#3 ~@3, f3@7 ~, c#3@5 ~@11", AT: "~@10 d#3@3 ~@3, [c3,d#3,g#3]@4 c3@3 ~, ~@3 g#2@3 ~@2",
  AU: "g#3@5 ~@5 d3@2 b2 ~@3, f3@7 ~, b2@3 ~, ~@3 g#3@3 ~@2", AV: "a#2@8 ~@2 a#2 ~@5, [d#3,g3]@7 ~",
  AW: "[a2,d#3]@3 ~@3 c3@5 ~@5, g3@3 ~@5, ~ d#3 ~@2", AX: "[a#2,d#3,f3,a#3]@11 ~@5", AY: "~@8 [c4,f4]@7 ~",
  AZ: "~@4 [a3,d4,f4]@3 ~", BA: "~@4 [a#3,c4,f4]@3 ~", BB: "[~@8 f3@2 ~ g3@3 c3@4 f3@2 g3@2 ~@2 g3@7 ~]/2",
  BC: "~@8 [a3,d4,f4]@7 ~", BD: "~@4 [a3,c4]@3 ~", BE: "~@8 f3@3 g3@3 c3@2", BF: "~@8 [d4,g4]@7 ~",
  BG: "~@4 [b3,e4,g4]@3 ~", BH: "~@4 [c4,d4,g4]@3 ~", BI: "[~@8 g3@2 ~ a3@3 d3@4 g3@2 a3@2 d3 ~@9]/2",
  BJ: "~@11 a3 ~@2 d3@2, ~@4 g3@3 ~", BK: "~@3 a3 ~@2 d3 ~ g3@7 ~, g3@3 ~@5", BL: "~@8 g3@3 a3@3 d3@2",
  BM: "~@2 g3@2 a3@2 d3 ~ g3@2 ~@6", BN: "~ g3 a3 d3 ~@4", BO: "~@2 g3@2 a3@2 d3@2 g3@3 a3@3 d3@2",
  BP: "a3@3 ~@5 [d4,g4]@7 ~", BQ: "[~@8 g3@2 ~ a3@3 d3@4 g3@2 a3@2 d3 ~ [g3,b3,d4]@3 ~@5]/2",
  BR: "~@8 [c4,d4,g4]@3 ~@5", BS: "~@3 a3 ~@2 d3 ~ [g3,d4]@5 ~@3, g3@3 ~@5", BT: "~@2 d4@2 b3@3 ~ e3@3 ~@5",
  BU: "~@8 [g3,c4,d4]@3 ~@5", BV: "~@8 g3@3 a3 ~@2 d3@2", BW: "~@2 g3@2 a3@3 ~ [g2,d3,g3,b3]@2 ~@6",
})).s("gm_piano").gain(0.26)

// other · piano
const piano_5 = note(`<
  ~ A B C D A B C D A B C D E B F D A B C D E B G D A B C D E B G D A B C D E B H D A B C D E B I D A B C D E B G D J@2
  K D L M@4 ~ N@3 ~ O P@5 Q@8 R@3 S@5 Q@8 T@8 U ~@18
>`.pickRestart({
  A: "f3@15 ~", B: "d4@15 ~", C: "a#3@15 ~", D: "c4@7 ~", E: "g3@15 ~", F: "f4@15 ~", G: "e4@15 ~", H: "e4@7 ~ f4@7 ~",
  I: "c4@15 ~", J: "[g4 f4, a#4]/2", K: "c#4@15 ~", L: "d4",
  M: "[g4@32 ~@8 c5@5 ~ a#4@2 [d4,a#4]@6 ~@10, d#4@47 ~@17, ~@4 f4@3 ~]/4", N: "[~@8 a#3@15 ~ c4@14 ~@10]/3",
  O: "~@5 [a4,c5] ~ [a4,d5]", // Am D5
  P: "[~@2 [a4,e5]@2 ~@2 [a#4,f5]@2 ~@2 c5@10 ~@4 g3@15 ~ e4@15 ~ c4@15 ~ d4@8, ~@5 g5@8 ~@27]/5", // A5 A#5
  Q: "[~@8 a3@15 ~ e4@15 ~ g4@15 ~ d4@14 ~@2 g3@15 ~ e4@15 ~ c4@15 ~ d4@8]/8", R: "[~@8 a3@15 ~ e4@15 ~ f#4@7 ~]/3",
  S: "[g4@6 ~@2 d4@14 ~@2 g3@15 ~ e4@15 ~ c4@15 ~ d4@8]/5",
  T: "[~@8 g3@15 ~ e4@15 ~ c4@15 ~ d4@14 ~@2 g3@15 ~ e4@15 ~ c4@15 ~ d4@8]/8", U: "~@2 g3 ~",
})).s("gm_piano").gain(0.31)

// other · piano
const piano_6 = note("<~@3 A@2 ~@13 B@2 C@2 ~@12 D@2 E@2 ~@37 F@2 G ~@50>".pickRestart({
  A: "[f4@7 ~]/2", B: "[~@10 a2@2 e3@2 f3@17 ~]/2", C: "[~@4 f3 e3 c3@6 ~@4]/2", D: "[~@10 a2@2 g3@2 f3@17 ~]/2",
  E: "[~@3 c3 f3 e3 c3@6 ~@4]/2", F: "[~@2 b2@2 f#3@2 g3@17 ~@7 d3@2]/2", G: "g3 f#3 d3@6",
})).s("gm_piano").gain(0.31)

// bass · piano
const bass = note(`<
  ~ A B C D A B C D A B C D E F G D A B C D E F G D A B C D E F G D A B C D E F G D A B C D E F G D A B C D E F G D H I
  J K L M N O@2 P Q R S T U V S W X Y Z AA AB AC AD W AE Y Z AA AB AC AD W AE Y Z AA AB AC AD W AE Y AD W AE Y AD W AE Y
  AF ~@18
>`.pickRestart({
  A: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~", B: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ a2@2",
  C: "a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~", D: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ e2@2",
  E: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", F: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ f2@2",
  G: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", H: "d#2@13 ~ d#3@2", I: "d3@13 ~ d2@2", J: "c#2@13 ~ c#2@2",
  K: "c2@11 ~@3 g#1 a#1", L: "b1@13 ~ b1@2", M: "a#1@13 ~ a#1@2", N: "a1@13 ~ a1@2",
  O: "[a#1@22 ~@2 f2 ~ f2 ~ f2 ~ f2 ~]/2", P: "f2 ~ f2 ~ f2 ~ f2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  Q: "d2 ~ d2 ~ d2 ~ a2@2 a#2 ~ a#2 ~ a#2 ~ a#2 ~", R: "a#2 ~ a#2 ~ a#2 ~ a#2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  S: "c2 ~ c2 ~ c2 ~ e2@2 g2 ~ g2 ~ g2 ~ g2 ~", T: "g2 ~ g2 ~ g2 ~ g2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  U: "d2 ~ d2 ~ d2 ~ f2@2 a2 ~ a2 ~ a2 ~ a2 ~", V: "a2 ~ a2 ~ a2 ~ a2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  W: "g2 ~ g2 ~ g2 ~ g2 ~ e2 ~ e2 ~ e2 ~ e2 ~", X: "e2 ~ e2 ~ e2 ~ b2@2 c3 ~ c3 ~ c3@2 c3 ~",
  Y: "c3 ~ c3 ~ c3 ~ c3 ~ d2 ~ d2 ~ d2 ~ d2 ~", Z: "d2 ~ d2 ~ d2 ~ f#2@2 a2 ~ a2 ~ a2 ~ a2 ~",
  AA: "a2 ~ a2 ~ a2 ~ a2 ~ e2 ~ e2 ~ e2 ~ e2 ~", AB: "e2 ~ e2 ~ e2 ~ g2@2 b2 ~ b2 ~ b2 ~ b2 ~",
  AC: "b2 ~ b2 ~ b2 ~ b2 ~ d2 ~ d2 ~ d2 ~ d2 ~", AD: "d2 ~ d2 ~ d2 ~ f#2@2 g2 ~ g2 ~ g2 ~ g2 ~",
  AE: "e2 ~ e2 ~ e2 ~ b2@2 c3 ~ c3 ~ c3 ~ c3 ~", AF: "d2 ~ d2 ~ d2 ~ d2@2 g1@8",
})).s("gm_piano").gain(0.46)

// chords · piano
const piano_7 = note("<~ A B C D A E F G ~@14 H ~@73 I J K L M J K L M J K L N ~@18>".pickRestart({
  A: "[a2,f3] ~ [a2,f3] ~ [a2,f3] ~ [a2,f3] ~ [a2,f3] ~ [a2,f3] ~ [a2,f3] ~ [a2,f3]!2", // Dm
  B: "[f#2,d3]@2 [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3]!2", // D
  C: "[d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2]!2", // Gm
  D: "[e2,c3]@2 [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~", // C
  E: "[f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3]!2", // D
  F: "[d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~ [d2,a#2] ~", // Gm
  G: "[e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~", H: "f3 ~@15",
  I: "~@8 [b2,g3] ~ [b2,g3] ~ [b2,g3] ~ [b2,g3] ~", // Em
  J: "[b2,g3] ~ [b2,g3] ~ [b2,g3] ~ [b2,g3]!2 [g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~", // Em C#m
  K: "[g#2,e3] ~ [g#2,e3] ~ [g#2,e3] ~ [g#2,e3]!2 [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~", // C#m C
  L: "[e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [e2,c3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~", // C D
  M: "[f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [b2,g3] ~ [b2,g3] ~ [b2,g3] ~ [b2,g3] ~", // D Em
  N: "[f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~ [f#2,d3] ~@9", // D
})).s("gm_piano").gain(0.41)

// chords · piano
const piano_8 = note(`<
  ~ A@8 B@5 C D E F@5 C D E G@4 H C D E F@5 C D E F@5 C D E F@5 C D I J@5 K@2 L@7 M@8 N@16 O@2 P@8 Q@5 ~@18
>`.pickRestart({
  A: "[f2@15 ~ e4@12 ~@4 [a#2,f3]@16 ~@8 g4@7 ~, f4@55 ~@9, a3@32 [a#3,c4]@31 ~, c4@25 ~@3 d4@16 ~@20, ~@16 d2@15 ~@17 [c3,g3]@15 ~]/4", // A#5 A#sus2 C5
  B: "[f2@15 ~ e4@12 ~@4 [a#2,f3]@16 ~@16 [g2,g3,a#3,d4]@16, f4@63 ~@17, a3@32 [a#3,c4]@31 ~@17, c4@25 ~@3 d4@16 ~@12 g4@23 ~, ~@16 d2@15 ~@17 [c3,g3]@15 ~@17]/5", // A#5 Gm A#sus2 C5
  C: "[d3,d4]@15 ~", D: "[a2,a3,c4,f4]", E: "f4@3 g4, [c3,g3]@15 ~",
  F: "[f2@15 ~ e4@12 ~@4 [a#2,f3]@16 ~@16 [g2,a#3,d4]@16, f4@63 ~@17, a3@32 [a#3,c4]@31 ~@17, c4@25 ~@3 d4@16 ~@12 g4@23 ~, ~@16 d2@15 ~@17 [c3,g3]@15 ~@17]/5", // A#5 Gm A#sus2 C5
  G: "[f2@15 ~ e4@12 ~@4 [a#2,f3]@16 [c3,g3]@15 ~, f4@63 ~, a3@32 [a#3,c4]@31 ~, c4@25 ~@3 d4@16 ~@20, ~@16 d2@15 ~@33]/4", // A#5 C5 A#sus2
  H: "[g2,a#3,d4]", I: "[c3,g3]@15 ~, g4@3 ~",
  J: "[[d#3,d#4,g4]@2 [d3,d4]@2 [f3,c#4]@2 a#4 g#4 [b2,d4,f4,b4]@2, a#3@47 ~ [c3,c4,d#4]@16 ~@16, ~@16 f4@31 ~@33, ~@16 g#3@23 ~]/5", // D# D C# Bdim Cm
  K: "[[a#3,a#4] [a3,c4], [d#4,g4]]/2", // A# Am D#
  L: "[~@16 d4@7 ~ f3@15 ~ e4@12 ~@4 [a#2,f3]@16 [c3,g3]@15 ~ [g2,a#3,d4]@16 [d3,d4,f4]@8, [f3,a#3,f4]@23 ~ f4@63 ~@25, ~@24 a3@32 c4@31 ~@25, ~@24 c4@25 ~@3 d4@16 ~@4 g4@27 ~@13, ~@40 d3@15 ~@57]/7", // A#5 C5 Gm Dm A#5
  M: "[~@8 [a2,a3,c4,f4]@16 [c3,g3,a#3,g4]@15 ~ g2@15 ~ f#4@12 ~@4 [c3,g3]@16 ~@16 [a2,c4,e4]@16 [e3,e4]@8, ~@24 f4@8 ~@8 g4@63 ~@25, ~@40 b3@32 [c4,d4]@31 ~@25, ~@40 d4@25 ~@3 e4@16 ~@12 a4@23 ~@9, ~@56 e2@15 ~@17 [d3,a3]@15 ~@25]/8", // F C7 C5 Am E Csus2 D5
  N: "[~@8 [b2,b3,d4,g4]@16 g4@12 a4@4 g2@15 ~ f#4@12 ~@4 [c3,g3]@16 ~@16 [a2,c4,e4]@16 [e3,e4]@8, ~@24 [d3,a3]@15 ~ g4@63 ~@25, ~@40 b3@32 [c4,d4]@31 ~@25, ~@40 d4@25 ~@3 e4@16 ~@12 a4@23 ~@9, ~@56 e2@15 ~@17 [d3,a3]@15 ~@25]/8", // G C5 Am E D5 Csus2 D5
  O: "[~ [b2,b3,d4,f#4]@2 [d3,a3,a4]]/2", // Bm D5
  P: "[~@8 g3@16 e3@15 ~ [c3,g3,c4]@16 g3@8 a3@8 g3@16 e3@15 ~ [c3,g3,c4]@16 [d3,g3,c4]@8, ~@8 [b3,d4]@32 d4@31 ~@33 d4@24, ~@7 d3@2 ~@7, ~@14 c4@3 ~ [b3,d4]@8 ~@6]/8", // C5 Csus2 Bm
  Q: "[a3@8 g3@16 e3@15 ~ [c3,g3,c4]@16 g3@8 a3@7 ~@9, ~@8 [b3,d4]@32 d4@31 ~@9, ~@7 d3@2 ~, ~@14 c4@3 ~@3]/5", // C5 Bm
})).s("gm_piano").gain(0.26)

// chords · piano · soft notes
const piano_soft_2 = note(`<
  ~@14 A ~ B ~@4 C A ~ B ~@4 C A ~ B ~@4 C A ~ B ~@4 C A ~ B ~@4 C A ~ B ~@12 D@2 ~@6 E@3 F@2 ~@3 E@3 F@2 ~@3 E@3 F@2
  ~@11 G ~@18
>`.pickRestart({
  A: "f4@15 ~", B: "a#3@15 ~", C: "g3@15 ~", D: "[~@8 g3@15 ~@9]/2", E: "[~@8 a3@15 ~ g4@15 ~@9]/3",
  F: "[~@8 c4@15 ~@9]/2", G: "~@8 g3@5 ~@3",
})).s("gm_piano").gain(0.15)

// bass · piano
const bass_2 = note("<A B@23 C B@7 D B@7 C B@7 D B@8 E F@4 G F H B@8 I B@7 J B@7 I B@19 K ~@18>".pickRestart({
  A: "~@12 c#2!2 ~@2", B: "~@4 c#2 ~@7 c#2 ~@3", C: "~@4 c#2 ~@5 c#2!3 ~@3", D: "~@4 c#2 ~@7 c#2!2 ~@2",
  E: "a3 ~@7 c#2 ~@7", F: "~@8 c#2 ~@7", G: "~@10 g2 f2!2 ~@3", H: "a3 ~@15", I: "~@4 c#2!2 ~@6 c#2 ~@3",
  J: "~@2 c#2!3 ~@7 c#2 ~@3", K: "~@4 c#2 ~@11",
})).s("gm_piano").gain(0.36)

// other · piano
const piano_9 = note("<~@4 A B C ~@52 D ~@11 E F@2 ~@23 G H@3 I H@3 I H@3 ~@19>".pickRestart({
  A: "~@14 c4 ~", B: "f4@2 ~ e4@2 ~ c4@2 ~@2 f4 ~ e4 ~ c4@2", C: "f4@2 ~ e4@2 ~ c4@2 ~@2 f4 ~ e4 ~@3", D: "f4",
  E: "~@10 c4 ~@3 d4 ~", F: "[~@2 e4 ~@3 f4 ~@3 g4@14 ~@8]/2", G: "~@6 d4 ~ g4@2 ~ f#4@2 ~ d4@2",
  H: "~@2 g4 ~ f#4 ~ d4 ~ g4@2 ~ f#4@2 ~ d4@2", I: "~@2 g4 ~ f#4 ~ d4@2 g4@2 ~ f#4@2 ~ d4@2",
})).s("gm_piano").gain(0.41)

// other · piano · soft notes
// … 81 more lines

More by Tozzi