Strudelify

O sole mio

Andrea Bocelli

KeyC majorTempo100 bpm
0:00/0:00
// O sole mio — Andrea Bocelli
// 100 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: Full arrangement: all 112 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · acoustic bass
const bass = note(`<
  ~ A B C D E@4 F@4 G H I J K L M N O@3 P Q R S T U@2 V W@3 X Y Z AA AB@7 AC@2 AD@4 AE AF AG AH@2 AI AJ AK AL AM AN AO@2
  AP AQ AR@2 AS AT@2 AU@4 F@4 G H I J K L M N O@3 P Q R S T U@2 V W@3 X AV AH@2 AW AX@2 AY@3
>`.pickRestart({
  A: "~@7 f1@9 g#1@16", B: "c2@7 b1@9 a1@16", C: "d1 g1", D: "~ c2@12 g1@3 c2@3 ~@5 g1@2 ~@6",
  E: "[c1@5 ~@11 g1@15 c2@25 ~@7 c2@27 ~@5 f1@22 ~@3 c2@8]/4",
  F: "[f1@22 ~@2 f1@7 g1@20 ~@4 d2@8 g1@20 ~@5 g1@7 c2@20 ~@5 c2@6 ~@2]/4", G: "d2@15 g1@14 ~@3", H: "c2@17 ~@7 g1@7 ~",
  I: "c2@22 ~@2 c2@7 ~", J: "f1@6 f1 g1", K: "g#1@20 ~@3 g#1@8 ~", L: "g1@16 a1@15 ~", M: "~ d2 g1@2, d1@17 ~@15",
  N: "c2@12 g1@4 c2 ~@6 g1@9", O: "[c2@3 ~@13 g1@62 ~@2 c2@13 g1@3]/3", P: "c2 g1 e2@2", Q: "d#2@16 d2@13 a1@3",
  R: "d2@8 a1@8 d1@13 a1@3", S: "d2@8 a1@7 ~ g1@16", T: "d2@7 ~@2 d2@7 g1@11 ~@2 g1@2 ~",
  U: "[g1@8 f1@8 e1@11 ~ e1@3 e2@9 e1@6 ~ e1@12 ~@2 e1@3]/2", V: "e2@7 e1@7 ~@2 f1@14 ~@2",
  W: "[f1@6 ~@2 d#1@6 ~@2 d1@28 ~@4 e1@15 c2@7 ~ b1@8 a1@14 e1@3]/3", X: "a1@15 ~ d1@12 ~ d1 ~@2",
  Y: "d1@8 d2@8 g1@11 ~@2 g1 ~@2", Z: "g1@7 ~ g1@7 c2@13 ~ g1@3", AA: "c2@4 g1@4 c1@3 ~@5",
  AB: "[g1@15 c2@25 ~@7 c2@27 ~@5 f1@22 ~@3 c2@8 f1@22 ~@2 f1@7 g1@20 ~@4 d2@8 g1@20 ~@5 g1@7 c2@17]/7",
  AC: "[~@8 c2@6 ~@2 d2@15 g1@14 ~@3 c2@16]/2",
  AD: "[~@8 g1@7 ~ c2@22 ~@2 c2@7 ~ f1@24 f1@4 g1@4 g#1@20 ~@3 g#1@8 ~ g1@16]/4", AE: "a1@15 ~@9 d2@8, ~ d1",
  AF: "g1@4 c2@3 g1", AG: "c2 ~@6 g1@9 c2@3 ~@13", AH: "[g1@31 ~]/2", AI: "c2@13 g1@3 c2@8 g1@8", AJ: "e2 d#2",
  AK: "d2@13 a1@3 d2@8 a1@8", AL: "d1@13 a1@3 d2@8 a1@7 ~", AM: "g1@16 d2@7 ~@2 d2@7", AN: "g1@11 ~@2 g1@2 ~ g1@8 f1@8",
  AO: "[e1@11 ~ e1@3 e2@9 e1@6 ~ e1@12 ~@2 e1@3 e2@7 e1@7 ~@2]/2", AP: "f1@7 ~ f1@3 ~ d#1@3 ~", AQ: "d1@7 ~",
  AR: "[e1@15 c2@7 ~ b1@8 a1@14 e1@3 a1@15 ~]/2", AS: "d1@12 ~ d1 ~@2 d1@8 d2@8",
  AT: "[g1@11 ~@2 g1 ~@2 g1@7 ~ g1@7 c2@13 ~ g1@3 c2@8 g1@8]/2",
  AU: "[c1@6 ~@10 g1@15 c2@25 ~@7 c2@27 ~@5 f1@22 ~@3 c2@8]/4", AV: "d1@8 d2@8 g1@11 ~@5",
  AW: "c2@11 ~ d2 ~@2 e2@7 ~ c2@7 ~@2", AX: "[f2@17 g#2@31 d2@16]/2", AY: "[d1@15 ~ c2@60 ~@4 c1@10 ~@6]/3",
})).s("gm_acoustic_bass").gain(0.42)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@23 A@2 B@2 C@4 D@8 ~@18 E F G H I J K@2 L M N O P Q R ~@18 A@2 B@2 C@4 S@6 ~@8
>`.pickRestart({
  A: "[~@17 c4@2 ~@5 c4@2 ~@3 e4 ~@2 e4@2 ~@2 e4 ~@3 c4@7 g4 e4 ~@2 g4@2 ~@3 g4 [e4,g4]@2 ~ e4@4, ~@19 e4@2 e4@2 e4@4 e4@2 ~@2 c4@4 c4@2 [c4,e4]@2 e4@8 ~@2 g4@2 ~@3 g4@2 ~@8, ~@20 c4@2 c4@2 ~@2 c4@2 c4@2 [c4,e4]@2 ~@2 e4@2 ~@2 c4@2 ~@10 e4@2 ~ e4@2 e4@2 ~@2 [e4,g4]@2 ~@3]/2", // Em C Em
  B: "[f#4 d#4 f#4 d#4 ~ d#4 ~@6 d#4@3 f4 d4 f4 ~ f4@2 ~@6 d4@2 [d4,f4]@2 ~@2 f4@2 ~@11 d4@2 [d4,f4]@2 ~ f4 [d4,f4]@2 d4@2 d4@3 f4@2 f4@2 ~, ~@4 f#4@2 [d#4,f#4]@2 d#4@2 d#4@2 ~@6 d4@2 ~ d4@2 d4@2 d4@2 ~@5 d4@2 ~@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~@4 d4@2 ~@12, ~@7 f#4@2 f#4@2 f#4@5 ~@6 f4@2 f4@2 f4@2 ~@3 f4@2 ~@2 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 ~@17]/2", // Dm D#m
  C: "[d4@15 ~ f4 ~@2 d4@2 ~@4 f4@2 [d4,f4]@2 ~@3 f4 [d4,f4]@2 d4 ~ f4@2 ~ f4 d4@2 d4@6 g4 b4 ~ b4@2 [g4,b4]@2 ~ g4@2 ~@14 g4@7 c5 ~@3 c5@2 ~@5 c5@2 ~@9 c5@2 g4@2 ~ g4@3 ~@5 g4@2 ~@7 g4@2 ~ g4, ~@18 f4@2 ~ f4@2 f4@2 ~@5 f4@2 ~@9 f4@7 ~@3 g4@2 ~@3 [g4,b4]@2 ~ b4@2 b4@2 b4@2 b4@2 b4@2 b4@2 b4@8 ~@3 c5@2 ~@3 c5@2 c5@2 ~@3 c5@2 c5@2 c5@2 c5@2 ~@10 e4@2 e4@3 e4@2 e4@2 e4@2 e4@2 ~ e4@2, ~@22 d4@2 d4@2 ~@3 d4@2 d4@2 ~@3 [d4,f4]@2 ~ d4@2 ~@19 g4@2 g4@2 g4@2 g4@2 g4@2 g4@2 ~@11 g4@3 g4@2 g4@2 g4@2 ~ g4@2 g4@2 g4@2 g4@2 g4@2 ~@8 g4@2 g4@2 ~@3 g4@2 g4@2 g4@2 ~@4]/4", // Dm G Dm
  D: "[[e4,g4]@2 ~ e4@2 ~@3 e4@6 ~ f4 g#4@2 ~@7 g#4@2 ~@11 g#4@2 f4@8 [d4,f4] ~@5 f4@2 [d4,f4]@2 ~@11 f4@2 [d4,f4]@9 e4 ~@2 c4@2 ~@4 e4@2 ~@7 e4@2 [c4,e4]@2 [c4,e4]@12 ~@4 [a4,c5]@2 ~@2 c5@2 [a4,c5]@2 ~@6 a4@2 ~ [a4,c5]@8 f4 d4 f4 ~@4 f4@2 ~@7 f4@2 ~@4 d4@2 ~@2 d4@6 ~ g4 ~ b4 ~@3 b4@2 ~@5 b4@2 ~@3 b4@11 ~@9 e4@2 ~@5 e4@2 ~@11 e4@2 e4@2 e4@2 ~@16, ~@2 e4@2 ~@3 g4@6 ~@5 f4@2 f4@2 f4@2 f4@2 ~ f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 ~@11 f4@2 f4@2 ~@5 f4@2 f4@2 f4@2 f4@2 f4@2 ~@13 e4@3 e4@2 e4@2 ~@3 e4@2 e4@2 e4@2 ~@22 c5@2 ~@5 c5@2 c5@2 c5@4 ~@13 f4@2 ~@3 f4@2 f4@2 f4@2 ~@3 f4@2 f4@2 ~@2 f4@2 ~@9 g4@2 g4@2 ~ g4@2 g4@2 g4@2 ~@2 g4@14 ~@6 e4@2 ~@3 e4@2 e4@2 ~@3 e4@2 e4@2 e4@2 e4@2 e4@2 ~@22, ~@19 g#4@2 g#4@2 g#4@2 ~@3 g#4@2 g#4@2 g#4@2 g#4@2 g#4@2 ~@13 d4@2 d4@2 ~@3 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~@16 c4@2 c4@2 ~ c4@2 c4@2 c4@2 c4@2 ~@22 a4@2 ~@3 a4@2 a4@2 a4@2 ~@15 d4@2 d4@2 ~ d4@2 d4@2 d4@2 d4@2 ~ d4@2 d4@2 ~@2 d4@2 ~@11 b4@2 ~@3 b4@2 b4@2 ~@2 b4@2 ~@20 c4@2 ~ c4@2 c4@2 c4@3 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 ~@21]/8", // Em Dm C Am
  E: "~ c4@2 ~@5 c4@2 ~@3 e4 ~@2 e4@2 ~@2 e4 ~@3 c4@7 g4, ~@3 e4@2 e4@2 e4@4 e4@2 ~@2 c4@4 c4@2 [c4,e4]@2 e4@8 ~, ~@2 c4!2 ~ c4!2 [c4,e4] ~ e4 ~ c4 ~@4", // C
  F: "e4 ~@2 g4@2 ~@3 g4 [e4,g4]@2 ~ e4@4 f#4 d#4 f#4 d#4 ~ d#4 ~@6 d#4@3 f4, ~ g4@2 ~@3 g4@2 ~@12 f#4@2 ~ f#4@2 f#4@2 f#4@5, ~@2 e4@2 ~ e4@2 e4@2 ~@2 [e4,g4]@2 ~@9 [d#4,f#4]@2 d#4@2 d#4@2 ~@4", // Em D#m
  G: "d4 f4 ~ f4@2 ~@6 d4@2 [d4,f4]@2 ~@2 f4@2 ~@11 d4@2, ~@2 d4@2 ~ d4@2 d4@2 d4@2 ~@5 d4@2 ~@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~@2, ~@6 f4@2 f4@2 f4@2 ~@3 f4@2 ~@2 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 ~", // Dm
  H: "[d4,f4]@2 ~ f4 [d4,f4]@2 d4@2 d4@3 f4@2 f4@2 ~ d4@15 ~, ~ d4 ~@14", // Dm
  I: "f4 ~@2 d4@2 ~@4 f4@2 [d4,f4]@2 ~@3 f4 [d4,f4]@2 d4 ~ f4@2 ~ f4 d4@2 d4@5, ~@2 f4@2 ~ f4@2 f4@2 ~@5 f4@2 ~@9 f4@7, ~@6 d4@2 d4@2 ~@3 d4@2 d4@2 ~@3 [d4,f4]@2 ~ d4@2 ~@7", // Dm
  J: "~ g4 b4 ~ b4@2 [g4,b4]@2 ~ g4@2 ~@14 g4@7, ~@3 g4@2 ~@3 [g4,b4]@2 ~ b4@2 b4@2 b4@2 b4@2 b4@2 b4@2 b4@8 ~, ~@6 g4!6 ~@4", // G
  K: "[c5 ~@3 c5@2 ~@5 c5@2 ~@9 c5@2 g4@2 ~ g4@3 ~@5 g4@2 ~@7 g4@2 ~ g4 [e4,g4]@2 ~ e4@2 ~@3 e4@6 ~ f4, ~@2 c5@2 ~@3 c5@2 c5@2 ~@3 c5@2 c5@2 c5@2 c5@2 ~@10 e4@2 e4@3 e4@2 e4@2 e4@2 e4@2 ~ e4@2 ~@2 e4@2 ~@12, ~@3 g4@3 g4@2 g4@2 g4@2 ~ g4@2 g4@2 g4@2 g4@2 g4@2 ~@8 g4@2 g4@2 ~@3 g4@2 g4@2 g4@2 ~@11 g4@6 ~@3]/2", // Em
  L: "g#4@2 ~@7 g#4@2 ~@11 g#4@2 f4@8, ~@2 f4@2 f4@2 f4@2 f4@2 ~ f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 ~@9, ~@3 g#4@2 g#4@2 g#4@2 ~@3 g#4@2 g#4@2 g#4@2 g#4@2 g#4@2 ~@10",
  M: "[d4,f4] ~@5 f4@2 [d4,f4]@2 ~@11 f4@2 [d4,f4]@9, ~@2 f4@2 f4@2 ~@5 f4@2 f4@2 f4@2 f4@2 f4@2 ~@11, ~@3 d4@2 d4@2 ~@3 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~@10", // Dm
  N: "e4 ~@2 c4@2 ~@4 e4@2 ~@7 e4@2 [c4,e4]@2 [c4,e4]@10, ~@2 e4@3 e4@2 e4@2 ~@3 e4@2 e4@2 e4@2 ~@14, ~@6 c4@2 c4@2 ~ c4@2 c4@2 c4@2 c4@2 ~@13", // C
  O: "~@6 [a4,c5]@2 ~@2 c5@2 [a4,c5]@2 ~@6 a4@2 ~ [a4,c5]@8 f4, ~@8 c5@2 ~@5 c5@2 c5@2 c5@4 ~@9, ~@9 a4@2 ~@3 a4@2 a4@2 a4@2 ~@12", // Am
  P: "d4 f4 ~@4 f4@2 ~@7 f4@2 ~@4 d4@2 ~@2 d4@6 ~, ~@3 d4@2 d4@2 ~ d4@2 d4@2 d4@2 d4@2 ~ d4@2 d4@2 ~@2 d4@2 ~@7, ~@4 f4@2 ~@3 f4@2 f4@2 f4@2 ~@3 f4@2 f4@2 ~@2 f4@2 ~@6",
  Q: "g4 ~ b4 ~@3 b4@2 ~@5 b4@2 ~@3 b4@11 ~@3, ~@3 g4@2 g4@2 ~ g4@2 g4@2 g4@2 ~@2 g4@14 ~@2, ~@4 b4@2 ~@3 b4@2 b4@2 ~@2 b4@2 ~@15",
  R: "~@6 e4@2 ~@5 e4@2 ~@11 e4@2 e4@2 e4@2, ~@4 e4@2 ~@3 e4@2 e4@2 ~@3 e4@2 e4@2 e4@2 e4@2 e4@2 ~@6, ~@5 c4@2 ~ c4@2 c4@2 c4@3 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 ~@5",
  S: "[[e4,g4]@2 ~ e4@2 ~@3 e4@6 ~ f4 g#4@2 ~@7 g#4@2 ~@11 g#4@2 f4@8 [d4,f4] ~@5 f4@2 [d4,f4]@2 ~@11 f4@2 [d4,f4]@9 e4 ~@2 c4@2 ~@4 e4@2 ~@7 e4@2 [c4,e4]@2 [c4,e4]@12 ~@4 [a4,c5]@2 ~@2 c5@2 [a4,c5]@2 ~@6 a4@2 ~ [a4,c5]@8 f4 d4 f4 ~@4 f4@2 ~@7 f4@2 ~@4 d4@2 ~@2 d4@6 ~@17, ~@2 e4@2 ~@3 g4@6 ~@5 f4@2 f4@2 f4@2 f4@2 ~ f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 ~@11 f4@2 f4@2 ~@5 f4@2 f4@2 f4@2 f4@2 f4@2 ~@13 e4@3 e4@2 e4@2 ~@3 e4@2 e4@2 e4@2 ~@22 c5@2 ~@5 c5@2 c5@2 c5@4 ~@13 f4@2 ~@3 f4@2 f4@2 f4@2 ~@3 f4@2 f4@2 ~@2 f4@2 ~@22, ~@19 g#4@2 g#4@2 g#4@2 ~@3 g#4@2 g#4@2 g#4@2 g#4@2 g#4@2 ~@13 d4@2 d4@2 ~@3 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~@16 c4@2 c4@2 ~ c4@2 c4@2 c4@2 c4@2 ~@22 a4@2 ~@3 a4@2 a4@2 a4@2 ~@15 d4@2 d4@2 ~ d4@2 d4@2 d4@2 d4@2 ~ d4@2 d4@2 ~@2 d4@2 ~@23]/6", // Em Dm C Am
})).s("gm_acoustic_guitar_nylon").gain(0.24).pan(0.4)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@23 A B ~ C@2 ~@2 D@2 E F G ~ H I J ~@18 K L M N O ~ P@2 Q ~ R S T U V W ~@17 A B ~ C@2 ~@2 D@2 E F G ~ X ~@8
>`.pickRestart({
  A: "~@17 e4@2 ~@13", B: "~@15 g4", C: "[~@2 d4 ~@12 f4 ~@7 f4 f4@3 d4@3 ~ f4@3 f4@13 ~@2 d4@2 ~@13, ~@15 d4 ~@16]/2",
  D: "[~@9 c5 g4 ~@23 g4@2 g4@2 e4@2 ~@6 g#4 ~@17, ~@10 c5@35 ~@19]/2", E: "~@9 g#4@7 ~@16", F: "~@17 c4 ~@14",
  G: "~@19 c5 a4@2 ~@10", H: "~@6 f4@2 ~@2 f4@5 ~@15 g4@2", I: "~ b4 ~@15 e4@2 c4@2 ~@11",
  J: "~@11 c4@2 c4@2 ~ [c4,e4]@3 ~@13", K: "~ e4@2 ~@29", L: "~@14 g4@3 ~@15", M: "~@18 d4 ~@12 f4",
  N: "~@7 f4 f4@3 d4@3 ~ f4@3 f4@13 ~, ~@7 d4 ~@8", O: "~ d4@2 ~@29",
  P: "[~@25 c5 g4 ~@23 g4@2 g4@2 e4@2 ~@6 g#4 ~, ~@26 c5@35 ~@3]/2", Q: "~@25 g#4@7", R: "~ c4 ~@30",
  S: "~@3 c5 a4@2 ~@26", T: "~@22 f4@2 ~@2 f4@5 ~", U: "~@14 g4@2 ~ b4 ~@14", V: "~ e4@2 c4@2 ~@22 c4@2 c4@2 ~",
  W: "[c4,e4]@3 ~@29", X: "~@6 f4@2 ~@2 f4@5 ~@17",
})).s("gm_acoustic_guitar_nylon").gain(0.12).pan(0.4)

// chords · epiano1
const epiano1 = note("<~@5 A@8 B@7 C D ~@17 E@3 F@5 G@8 ~@17 A@8 B@7 C D ~@23>".pickRestart({
  A: "[~@96 b4@16 f3@16 f3@28 ~@36 g4@15 ~ f4@14 ~@2 e4@31 ~, ~@16 [g2,b3,d4]@15 [c4,e4]@31 [g#3,c4]@31 f3@19 ~@44 g2@4 f4@29 g3@33 g3@33 ~, ~@30 c3@30 ~ c3@34 g4@17 ~@46 g3@30 g2@35 c3@26 ~@7, ~@32 [g3,g4]@31 e4@31 c4@18 [c4,f4,a4]@44 ~@2 a3@32 b3@17 a3@16 ~@33, ~@64 g#4@32 ~@63 c4@32 d4@17 ~@15 c4@32 ~]/8", // G C G# G F
  B: "[[d3,f4,a4]@13 ~@2 [f4,g#4]@14 ~@3 g4@29 ~@3 g#4@31 ~@17 [f4,a5]@15 g#4@8 g#4@8 ~@9 d5@8 ~@8 g4@7 e4@8 ~ [e3,a4]@7 ~@5 a#4@4 a4@8 g2@7 [g3,b3,d4,g4]@9, ~@29 c3@32 c3@35 ~@15 f5@16 ~@17 e5@17 ~@30 d3@16 ~@17, ~@30 c4@32 [g#3,c4]@33 [f3,g5,b5]@32 [f3,c5]@34 ~@14 [a2,c5]@16 [e4,f#4]@5 [e4,f#4]@13 ~@15, ~@31 [g3,e4]@32 e4@33 ~@8 c4@24 ~@7 [c4,f5]@25 [c3,c4,e4]@16 ~@15 c4@25 ~@8, ~@192 b4@7 ~@25]/7", // Dm Fm F A5 G G# G7 F5 …
  C: "[c3,c4,e4]@23 ~ [f4,b4,d5]@4 ~@4, ~@23 g2@8 ~", D: "[c3,e4,g4,c5]@3 ~@29",
  E: "[~@5 b4, [g2,b3,d4]@15 [c4,e4]@31 [g#3,c4]@31 f3@19, ~@14 c3@30 ~ c3@34 g4@17, ~@16 [g3,g4]@31 e4@31 c4@18, ~@3 g#4@2 ~]/3", // G C G# G
  F: "[f3@16 f3@28 ~@36 g4@15 ~ f4@14 ~@2 e4@31 ~ [d3,f4,a4]@13 ~@2 [f4,g#4], [c4,f4,a4]@44 g2@4 f4@29 g3@33 g3@33 ~@17, ~@46 a3@32 b3@17 a3@16 ~@49, ~@46 g3@30 g2@35 c3@26 ~@23, ~@47 c4@32 d4@17 ~@15 c4@32 ~@17]/5", // Dm Fm F
  G: "[~@16 g4@29 ~@3 g#4@31 ~@17 [f4,a5]@15 g#4@8 g#4@8 ~@9 d5@8 ~@8 g4@7 e4@8 ~ [e3,a4]@7 ~@5 a#4@4 a4@8 g2@7 [g3,b3,d4,g4]@9 [c3,c4,e4]@23 ~ [f4,b4,d5]@4 ~@4 [c3,e4,g4,c5]@3 ~@13, ~@13 c3@32 c3@35 ~@15 f5@16 ~@17 e5@17 ~@30 d3@16 ~@40 g2@8 ~@17, ~@14 c4@32 [g#3,c4]@33 [f3,g5,b5]@32 [f3,c5]@34 ~@14 [a2,c5]@16 [e4,f#4]@5 [e4,f#4]@13 ~@63, ~@15 [g3,e4]@32 e4@33 ~@8 c4@24 ~@7 [c4,f5]@25 [c3,c4,e4]@16 ~@15 c4@25 ~@56, ~@176 b4@7 ~@73]/8", // F A5 G C Bdim C G# G7 …
})).s("gm_epiano1").gain(0.21).pan(0.6)

// chords · epiano1 · soft notes
const epiano1_soft = note(`<
  ~@5 A ~@5 B ~ C ~@3 D E ~@20 F ~@5 G H@2 ~@3 I J ~@19 A ~@5 B ~ C ~@3 D E ~@26
>`.pickRestart({
  A: "~ f3", B: "~@16 c4@15 ~", C: "c5@12 ~@3 [g3,b4]@16 ~, d4@31 ~", D: "~ g#4", E: "~@24 e4@7 ~", F: "f3@17 ~@15",
  G: "c4@15 ~@17", H: "[~@16 c5@12 ~@3 [g3,b4]@16 ~@17, ~@16 d4@31 ~@17]/2", I: "g#4@17 ~@15", J: "~@8 e4@7 ~@17",
})).s("gm_epiano1").gain(0.14).pan(0.6)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A B C D@2 ~@15 E@4 F@5 G@8 H ~@16 I@3 J@6 K@8 ~@6 L@2 ~@2 M@2 ~@4 E@4 F@5 N@7 O@2 P Q@5
>`.pickRestart({
  A: "~ g#5 g5 [f4,f5], f2 [g#2,d4], ~@7 [g#3,c4]@25", // F G#dim G#
  B: "[c3,e5]@8 [b2,g4,g5]@8 [c5,c6]@7 [g4,g5]@8 ~, [c4,e4]@16 [a2,e4]@15 ~", // C Em C G C A5
  C: "b4 a#4 a4@2 ~@2 [b3,g5]@2, [d3,c4,e4] g2, ~@23 e4@8 ~", // Em C
  D: "[c3@10 ~@2 c3@3 ~ c3@3 ~@4 g2@8 c2@4 ~@13 g2@15 ~, [e3,g3,c4,e5]@35 ~@29]/2", // C
  E: "[~@17 g2@60 ~@2 e4@16 [d4,f4]@8 [e4,g4]@8 ~ d5@8 c5@7 [d#3,f#4,b4], ~@16 [c4,f4,a4,c5]@61 ~@2 [c3,c4]@32 g4@16 ~, ~@7 [e3,e4]]/4", // Dm Em B F C E
  F: "[~@7 a4@8 d4@17 ~@8 e4@7 [d4,f4]@32 ~@16 f4@8 [c4,f4,a4]@9 g4@15 [f3,f4]@16 d4@8 c4@8 b3, d#4@15 [d3,a3]@64 [g2,g3]@49 ~@15 [e3,g4]@17, ~@3 f4@5 ~@24, ~@32 c#4@15 ~@40 [a3,c4]@16 ~@9 [b3,d4]@32 ~@16]/5", // Dm F D5 G Em Am Bm
  G: "[~@7 c4@9 d5@7 c5@8 b4@8 g4@7 ~ [f2,f3]@14 ~@3 [f2,f3]@5 ~@2 [d#2,d#3]@5 ~@4 [d3,c4,d4]@31 d4@8 c4@8 b3@8 g3@8 ~ d4@15 c4@16 g4@16 f4@8 e4@8 ~ g3@15 [f3,b3]@16 c3@10 ~@3 c3@3 c3, ~@16 [c3,e4]@31 ~@32 d2@32 ~@32 [a2,e3]@32 ~@32 [g2,d4]@33 ~@16, ~@16 g4@19 ~@12 [f4,g#4]@64 g4@64 c4@49 ~@32, ~@31 c4@15 ~ c4@31 ~@33 e3@32 ~@32 [d3,a3]@32 ~@32 [e3,g3,c4]@17]/8", // F D# D7 Fdim C A5 G5 Fm …
  H: "~@15 [c2,c3,c4]@5 ~@12, ~@7 g3@13 ~@12, ~@7 g2@8 ~@17, ~@8 e3@13 ~@11", // C
  I: "[~ g2@60 ~@2 e4@16 [d4,f4]@8 [e4,g4]@8 g4, [c4,f4,a4,c5]@61 ~@2 [c3,c4]@33]/3", // Dm Em F C
  J: "[d5@8 c5@7 ~@8 a4@8 d4@17 ~@8 e4@7 [d4,f4]@32 ~@16 f4@8 [c4,f4,a4]@9 g4@15 [f3,f4]@16 d4@8 c4@8 b3@8 c4@9, [e3,e4]@15 [d#3,f#4]@16 f4@25 ~@136, ~@15 b4@8 ~@8 [d3,a3]@64 [g2,g3]@49 ~@15 [e3,g4]@33, ~@16 d#4@16 ~@16 c#4@15 ~@40 [a3,c4]@16 ~@9 [b3,d4]@32 ~@32]/6", // Dm F E D#m D5 G Em Am …
  K: "[d5@7 c5@8 b4@8 g4@7 ~ [f2,f3]@14 ~@3 [f2,f3]@5 ~@2 [d#2,d#3]@5 ~@4 [d3,c4,d4]@31 d4@8 c4@8 b3@8 g3@8 ~ d4@15 c4@16 g4@16 f4@8 e4@8 ~ g3@15 [f3,b3]@16 c3@10 ~@3 c3@3 c3@4 ~@5 e3@7 [c2,c3,c4], [c3,e4]@31 ~@32 d2@32 ~@32 [a2,e3]@32 ~@32 [g2,d4]@33 ~@23 [g2,g3]@9, g4@19 ~@12 [f4,g#4]@64 g4@64 c4@49 ~@48, ~@15 c4@15 ~ c4@31 ~@33 e3@32 ~@32 [d3,a3]@32 ~@32 [e3,g3,c4]@21 ~@12]/8", // F D# D7 Fdim C A5 G5 G …
  L: "[~@23 d4@7 a3@17 ~@17]/2", M: "[~@31 b3@16 ~@17]/2",
  N: "[~@7 c4@9 d5@7 c5@8 b4@8 g4@7 ~ [f2,f3]@14 ~@3 [f2,f3]@5 ~@2 [d#2,d#3]@5 ~@4 [d3,c4,d4]@31 d4@8 c4@8 b3@8 g3@8 ~ d4@15 c4@16 g4@16 f4@8 e4@8 ~ g2@16, ~@16 [c3,e4]@31 ~@32 d2@32 ~@32 [a2,e3]@32 ~@49, ~@16 g4@19 ~@12 [f4,g#4]@64 g4@64 ~@49, ~@31 c4@15 ~ c4@31 ~@33 e3@32 ~@32 [d3,a3,c4]@33 ~@16]/7", // F D# D7 C A5 Fm D7
  O: "[[g1,g2,f4,a4,d5]@31 ~]/2", // Dm
  P: "[c2,c3,e4,c5,e5]@12 [d2,d3,d4,f4,d5,f5]@3 ~@8 [c4,c5,e5]@9, g4, c4@21 ~@11, ~@15 [e5,g5]@7 ~@10, ~ [e2,e3,e4]", // C Dm C Em E
  Q: "[[g4,a#4,g5,a#5]@8 [f4,g#4,f5]@8 [f2,f3]@31 [d2,d3]@32 ~ d4@29 ~@2 c4@33 ~@16, [f2,f3]@15 ~ [d4,f4,g#4,c5,c6]@64 [c2,c3,e4,g4,c5]@64 ~@16, ~@8 g#5@70 ~ [g5,c6]@66 ~@15]/5", // Gm Fm F D F Dm7b5 C C5
})).s("gm_string_ensemble_1").gain(0.33)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@3 A ~ B ~@19 C@3 ~@31 D@2 ~@11 E@5 F G H I@6 ~@6 C@3 ~@17>".pickRestart({
  A: "~@3 f3", B: "~@16 [d3,f3]@15 ~, ~@15 b3@15 ~@2", C: "[~@24 a4@55 ~@17]/3", D: "[~@8 a4@55 ~]/2",
  E: "[~@31 g5@32 g#5@32 b5@16 a5@47 ~@2]/5", F: "~@7 c5@9 b4@7 d5@2 ~@7", G: "~@8 c4@7 b3@9 ~@8", H: "~@15 g3@17",
  I: "[~@31 g3@32 g#3@34 ~@14 a3@16 g#3@32 g3@17 ~@16]/6",
})).s("gm_string_ensemble_1").gain(0.2)

// chords · pad warm
const pad_warm = note("<~@40 A@7 B@8 ~@18 C@4 D E@2 ~ F@8 ~@23>".pickRestart({
  A: "[g4@14 g#4@31 ~@3 g4@15 [f4,a4]@45 ~@11 [a4,c5]@8 g4@8 d5@9 ~@7 [a5,c6]@8 g5@8 d6@6 ~@3 a5@15 g5@17 ~@16, e4@46 ~ b4@17 ~@63 b4@16 ~@16 b5@14 ~@2 f5@16 ~@33]/7", // F Am
  B: "[~@16 g4@30 g#4@28 ~@5 [g4,b4]@15 ~@17 g#4@27 ~@5 g4@18 ~@14 f#4@16 d4@16 ~ g4@33 ~@15, ~@16 c4@63 ~@16 f4@44 ~@4 e4@45 ~@3 b3@14 ~@2 [c4,e4]@34 ~@15, ~@16 e4@58 ~@20 a4@17 ~@145]/8", // G C
  C: "[~@16 g4@14 g#4@31 ~@3 g4@15 [f4,a4]@45 ~@4, ~@16 e4@46 ~ b4@17 ~@48]/4", // F
  D: "~@7 [a4,c5]@8 g4@8 d5@9, ~@15 b4@16 ~", // Am
  E: "[~@7 [a5,c6]@8 g5@8 d6@6 ~@3 a5@15 g5@17, ~@15 b5@14 ~@2 f5@16 ~@17]/2", // Am
  F: "[g4@30 g#4@28 ~@5 [g4,b4]@15 ~@17 g#4@27 ~@5 g4@18 ~@14 f#4@16 d4@16 ~ g4@33 ~@31, c4@63 ~@16 f4@44 ~@4 e4@45 ~@3 b3@14 ~@2 [c4,e4]@34 ~@31, e4@58 ~@20 a4@17 ~@161]/8", // G C
})).s("gm_pad_warm").gain(0.25).pan(0.7)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@39 A@3 B@2 ~ C@2 ~@3 D@3 ~@20 E@2 F@2 ~@2 G ~@3 H@4 ~@25>".pickRestart({
  A: "[~@31 c4@49 ~@16]/3", B: "[~@15 c4@28 ~@21]/2", C: "[~@31 e5@17 ~@16]/2", D: "[~@3 c4@91 ~@2]/3",
  E: "[~@15 c4@49]/2", F: "[~@31 c4@28 ~@5]/2", G: "~@15 e5@17", H: "[~@19 c4@91 ~@18]/4",
})).s("gm_pad_warm").gain(0.13).pan(0.7)

// chords · pizzicato strings
const pizzicato_strings = note(`<
  ~@6 A B C D E F G H I J K L M N O P ~@17 Q@2 R S@2 T U V W X Y Z AA AB AC AD ~@18 A B C D E F G H I J K L M N O P ~@23
>`.pickRestart({
  A: "[c3,e3,g3] ~@12 [e3,g3,c4] ~ g3 [e3,e4] ~@7 [e3,g3,c4] ~@7, c2@2 ~@10 g2@2 ~ c3@2 ~@7 g2@2 ~@6", // C E C
  B: "[c3,g#3] ~@12 g#2@3 [e3,g#3,e4] ~@7 [e3,g#3,c4] ~@7, c2@3 ~@10 c4 ~@2 c3@3 ~@5 g#2@2 ~@6", // Fm E Eaug
  C: "[f2,f3]@2 ~@11 [a3,c4] ~@2 [a3,f4] ~@7 [a3,c4] ~@7, a3 ~@12 c3@2 ~ f3@2 ~@6 c3@2 ~@6", // F Am Dm Am
  D: "[f3,a3] ~@12 c4 ~ [a3,f4] ~@7 a3 [f3,c4] ~@7, f2@2 ~@10 c3@3 f3@2 ~@7 c3@2 ~@6", // F Dm F5
  E: "[f3,a3] ~@12 [d3,a3,c4] ~ [a3,f4] d3@2 ~@5 [f3,a3,c4] g2@2 ~@6, g2@3 ~@29", // F D7 Dm F
  F: "[g3,b3] ~@12 d3@2 b3 d3@2 ~@6 [g2,g3,b3,d4] ~@7, g2@2 ~@11 d4 ~@2 g4 ~@15", // G
  G: "[e3,g3] ~@12 [e3,g3,c4] ~@2 [e3,g3,e4] ~@7 [e3,g3] c4 ~@6, c2@3 ~@10 g2@3 c3@2 ~@6 g2@2 ~@6", // Em C Em
  H: "c2@2 ~@6 [f3,a3,d4] ~@7 g2@4 ~@4 [d3,f3,b3] ~@7", // Dm Bdim
  I: "[c3,e3,g3] ~@11 c4 [g2,g3] ~@2 [e3,g3,e4] ~@6 [g3,c4] g2@2 ~@5 [c3,e3,g#3], c2 ~@7 c3 ~@7", // C G Em C5 Caug
  J: "c2@4 ~@9 g#2@2 ~ [e3,g#3,e4] ~@7 [e3,g#3,c4] ~@7, ~@13 c4 ~@2 c3@3 ~@5 g#2@2 ~@6", // E Eaug
  K: "[f3,a3] ~@12 c3@2 ~ [a3,f4] ~@7 [a3,c4] ~@7, f2@2 ~@11 c4 ~@2 f3@3 ~@5 c3@3 ~@5", // F Dm Am
  L: "g#2@3 ~@9 c4 c3@2 f4 f3@3 ~@5 [f3,c4] ~@7, ~@12 c3 ~@3", // F5
  M: "[g3,c4] ~@12 c3@2 ~ [g3,e4] ~@7 c3@3 ~@4 a3, g2@2 ~@11 c4 ~@2 e3@2 ~@6 c4 ~@7", // C5 C
  N: "f#2@2 ~@6 [a3,d4] ~@3 a2@2 ~@2 d3@2 ~@5 [d3,f3,b3] g2@3 ~@5", // D5 Bdim
  O: "[e3,g3,c4] ~@12 g2@2 [e3,c4] c3@2 ~@5 e3 g2@2 ~@6, c2@4 ~@9 g3 ~@10 g3 ~@7", P: "[c3,e3,g3,c4] ~@31, c2 ~@15",
  Q: "[~@16 [c3,e3,g3] ~@12 [e3,g3,c4] ~ g3 [e3,e4] ~@7 [e3,g3,c4] ~@7 [c3,g#3] ~@12 g#2@3, ~@16 c2@2 ~@10 g2@2 ~ c3@2 ~@7 g2@2 ~@6 c2@3 ~@10 c4 ~@2]/2", // C E C Fm
  R: "[e3,g#3,e4] ~@7 [e3,g#3,c4] ~@7 [f2,f3]@2 ~@11 [a3,c4] ~@2, c3@3 ~@5 g#2@2 ~@6 a3 ~@12 c3@2 ~", // E Eaug F Am
  S: "[[a3,f4] ~@7 [a3,c4] ~@7 [f3,a3] ~@12 c4 ~ [a3,f4] ~@7 a3 [f3,c4] ~@7 [f3,a3] ~@12 [d3,a3,c4] ~ [a3,f4], f3@2 ~@6 c3@2 ~@6 f2@2 ~@10 c3@3 f3@2 ~@7 c3@2 ~@6 g2@3 ~@13]/2", // Dm Am F Dm F5 F D7 Dm
  T: "d3@2 ~@5 [f3,a3,c4] g2@2 ~@6 [g3,b3] ~@12 d3@2 b3, ~@16 g2@2 ~@11 d4 ~@2", // F G
  U: "d3@2 ~@6 [g2,g3,b3,d4] ~@7 [e3,g3] ~@12 [e3,g3,c4] ~@2, g4 ~@15 c2@3 ~@10 g2@3", // G Em C
  V: "[e3,g3,e4] ~@7 [e3,g3] c4 ~@6 c2@2 ~@6 [f3,a3,d4] ~@7, c3 ~@3 g2 ~@11", // Em Dm
  W: "g2@4 ~@4 [d3,f3,b3] ~@7 [c3,e3,g3] ~@11 c4 [g2,g3] ~@2, ~@8 c2 ~@7", // Bdim C G
  X: "[e3,g3,e4] ~@6 [g3,c4] g2@2 ~@5 [c3,e3,g#3] c2@4 ~@9 g#2@2 ~, c3@2 ~@27 c4 ~@2", // Em C5 Caug
  Y: "[e3,g#3,e4] ~@7 [e3,g#3,c4] ~@7 [f3,a3] ~@12 c3@2 ~, c3@3 ~@5 g#2@2 ~@6 f2@2 ~@11 c4 ~@2", // E Eaug F
  Z: "[a3,f4] ~@7 [a3,c4] ~@7 g#2@3 ~@9 c4 c3@2 f4, f3@3 ~@5 c3@3 ~@21", // Dm Am
  AA: "f3@3 ~@5 [f3,c4] ~@7 [g3,c4] ~@12 c3@2 ~, ~@8 c3@2 ~@6 g2@2 ~@11 c4 ~@2", // F5 C5
  AB: "[g3,e4] ~@7 c3@3 ~@4 a3 f#2@2 ~@6 [a3,d4] ~@3 a2@2 ~@2, e3@2 ~@6 c4 ~@23", // C D5
  AC: "d3@2 ~@5 [d3,f3,b3] g2@3 ~@5 [e3,g3,c4] ~@12 g2@2 [e3,c4], ~@16 c2@4 ~@9 g3 ~@2", // Bdim C
  AD: "c3@2 ~@5 e3 g2@2 ~@6 [c3,e3,g3,c4] ~@15, ~@8 g3 ~@7 c2@2 ~@14", // C
})).s("gm_pizzicato_strings").gain(0.2).pan(0.4)

// chords · pizzicato strings · soft notes
const pizzicato_strings_soft = note(`<
  ~@7 A B C D E ~@2 F G H I J K L ~@19 M N O N P ~@2 Q R O S T U Q ~@20 A B C D E ~@2 F G H I J K L ~@24
>`.pickRestart({
  A: "e3 ~@12 [e3,g#3] ~@18", B: "~@13 f3 ~@18", C: "~@13 [f3,a3] ~@18", D: "~@13 f3 ~@10 d3 ~@7",
  E: "~@13 [g3,b3] ~@18", F: "~@13 e3 ~@9 e3 ~@8", G: "~@13 [e3,g#3] ~@18", H: "~@13 [f3,a3] ~@10 f3 ~@7",
  I: "f3@2 ~@11 f3 ~@18", J: "e3 ~@12 g3 ~@10 g3 ~@7", K: "f#3 ~@15", L: "~@13 e3 ~@18", M: "~@16 e3 ~@12 [e3,g#3] ~@2",
  N: "~@29 f3 ~@2", O: "~@29 [f3,a3] ~@2", P: "~@8 d3 ~@20 [g3,b3] ~@2", Q: "~@29 e3 ~@2",
  R: "~@7 e3 ~@21 [e3,g#3] ~@2", S: "~@8 f3 ~@7 f3@2 ~@11 f3 ~@2", T: "~@16 e3 ~@12 g3 ~@2", U: "~@8 g3 ~@7 f#3@2 ~@14",
})).s("gm_pizzicato_strings").gain(0.1).pan(0.4)

// chords · flute
const flute = note("<~ A B@2 C ~@18 D@2 E@3 F@2 G@7 ~@20 H@4 I@2 J@2 K@5 ~@20 D@2 E@3 F@2 G@7 ~@8>".pickRestart({
  A: "~@8 [f5,f6]@8 [e5,e6]@7 ~ d6@8, ~@23 d5@9", // F E
  B: "[[g5,g6]@8 [e5,e6]@7 ~ d5@7 ~ c6@6 ~@2 d5@24 [e5,e6]@8, ~@15 d6@8 c5@7 c#5@2 ~@32, ~@31 d6@25 ~@8]/2", // G E
  C: "[c5,c6]", D: "[~@23 [g4,e5]@8 [a4,f5]@8 ~ e5@7 ~ f5@8 [e5,c6]@8, ~@39 g5@8 d6@9 ~@8]/2",
  E: "[[d#5,b5]@7 ~ c5@7 f5@16 c#5@9 e5@7 [f4,d5]@32 ~@9 [f5,d6]@8, ~@7 a5@8 a4@32 ~@49]/3", // G#m Dm
  F: "[[e5,c6]@8 [c5,a5]@7 ~ d5@25 ~@7 d5@7 c5@8 b4, ~@15 b5@25 ~@24]/2", // C F
  G: "[~@15 d6@8 c6@9 b5@7 g5@9 ~@16 f4@8 d#4@7 d4@32 ~ e5@15 ~ f5@7 [e5,g5]@8 [b5,d6]@8 [a5,c6]@8 ~ b5@8 [a5,c6]@7 ~@17 f5@16 ~@16, ~@7 c5@33 ~@8 g#5@40 ~@23 c5@16 d5@8 ~@24 g#5@9 ~@7 a5@33 ~@16, ~@11 d5@2 ~]/7", // Em Bm Am
  H: "[~@7 [g4,e5]@8 [a4,f5]@8 ~ e5@7 ~ f5@8 [e5,c6]@8 [d#5,b5]@7 ~ c5@7 f5@16 c#5@9 e5@7 [f4,d5]@32 ~, ~@23 g5@8 d6@9 ~@15 a5@8 a4@32 ~@33]/4", // C Dm C G#m Dm
  I: "[~@8 [f5,d6]@8 [e5,c6]@8 [c5,a5]@7 ~ d5@25 ~@7, ~@31 b5@25 ~@8]/2", // Dm C F
  J: "[d5@7 c5@8 b4@8 ~@8 d6@8 c6@9 b5@7 g5@9, ~@23 c5@33 ~@8]/2",
  K: "[~@16 f4@8 d#4@7 d4@32 ~ e5@15 ~ f5@7 [e5,g5]@8 [b5,d6]@8 [a5,c6]@8 ~ b5@8 [a5,c6]@7 ~@17 f5@16, g#5@40 ~@23 c5@16 d5@8 ~@24 g#5@9 ~@7 a5@33, ~@4 d5]/5", // Em Bm Am
})).s("gm_flute").gain(0.29)

// other · piano
// … 93 more lines

More by Andrea Bocelli