Strudelify

Tutti gli Zeri del mondo

Zero

KeyA minorTempo150 bpm
0:00/0:00
// Tutti gli Zeri del mondo — Zero
// 150 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 162 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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
const bass = note(`<
  ~@60 A@2 B@2 C@2 A@2 D@2 E@2 F G H I J@2 K@2 L@2 M@2 N O P@6 Q@5 R@3 S@4 T@8 U@2 V@8 W@2 X@4 Y Z AA@8 AB AC@6 AD@5
  AE@2 AF@3 AG@6 ~
>`.pickRestart({
  A: "[a1@23 ~]/2", B: "[c#2@11 ~]/2", C: "[d2@32 ~@4 e2@11 ~]/2", D: "f#2/2", E: "e2/2", F: "d2@23 ~", G: "c#2@23 ~",
  H: "b1", I: "e1 e2", J: "a1/2", K: "[c#2@47 ~]/2", L: "[d2@36 e2@11 ~]/2", M: "[a1@37 ~@11]/2", N: "a1@23 ~", O: "a1",
  P: "[d2@12 d1@25 ~ d#2@15 a1@23 b1@22 ~@2 c#2@23 d2@12 d1@9]/6", Q: "[~@3 c#2@26 e1@34 a1@48 ~@4 c1@5]/5",
  R: "[~ c2@28 c1@10 ~@2 e1@23 e2@8]/3", S: "[~@4 e1@10 ~ f1@23 g1@23 c2@6 c1@17 c2@12]/4",
  T: "[~@6 b1@5 a1@46 ~ g2@49 f2@24 e2@24 d2@24 g1@12 g2]/8", U: "[~@5 g1@5 ~ c2@18 c1@19]/2",
  V: "[~@5 c2@6 e1@24 e2@22 ~@2 f1@23 g1@23 ~ c2@33 ~@2 c2@11 ~ g1@24 c2@15]/8", W: "[~ f1@3 f2@2]/2",
  X: "[~@2 f1@3 g1@3 a1@23 d2@12 d1@13 g1@22 f2@18]/4", Y: "~@6 e2@6 ~ e1@11", Z: "~@7 d2@17",
  AA: "[~@9 c2@24 ~ c2@24 ~@2 f1@51 d1@81]/8", AB: "~@5 c2@7", AC: "[~@10 d2@27 e2@24 ~ f2@28 e2@26 ~ g2@27]/6",
  AD: "[~@12 c2@51 ~@8 g1@4 ~@3 g1@5 ~ g1@5 ~ g1@12 ~ g1@12 c2@5]/5", AE: "[~@2 g2@5 ~ c3@8 ~@4 c2@21 ~@7]/2",
  AF: "[~ g1@26 ~ g1@36 ~@3 c2@5]/3", AG: "[~ c1@143]/6",
})).s("gm_fretless_bass").gain(0.66)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@34 A@7 B@8 C@4 ~@7 D@4 E@2 F@2 G@4 H@2 I J K@2 L@2 M@2 N@2 O@8 P Q@8 R@2 S T@2 U@8 ~@2 V@8 W@2 X@3 Y@8 ~ Z@5 AA@5
  AB@4 AC@2 AD@7 ~
>`.pickRestart({
  A: "[~@22 d3@22 ~ [d3,f#3,a3]@45 e4@33 d#4@11 ~ g#3@22 ~@6 g#3@5, [a2,g3,d4]@45 d2@11 ~@34 [f#3,a3,b3]@45 b3@29 ~@4, ~@135 e3@21 ~ e3@11]/7", // D Dsus4 B7
  B: "[~@7 e4@6 [e3,e4]@21 ~@3 d3@24 b3@24 [a3,c#4]@24 [d3,f#3,a3,c#4]@48 c#4@13 a3@14 ~ [g#3,b3]@7, b3@13 a3@48 g3@48 ~@48 f#3@27 ~@8, ~@17 d4@26 ~@53]/8", // E A Dmaj7 G#m
  C: "[~@8 [f#3,a3]@13 [e3,a3,c#4]@74 ~]/4", // F#m A
  D: "[~@24 a3@12 ~@12 a4@12 g#4@12 e4@23 ~, a2 ~, ~ e3@3 c#3@4, ~@3 b3@5]/4",
  E: "[e4@11 ~@25 [e2,g#3]@12, [d2,a3]@3 ~, ~ d4@3]/2", F: "[~@2 b3 a3, [a2,e3,c#4]]/2",
  G: "[~@2 f#4 a4 ~@2 [g4,c#5]@2, f#2 e2, a4 ~ g#4 ~, ~@4 c#4@15 ~ c#4@12]/4", // Gdim
  H: "[[c#4,c#5] ~@2 a4, f#4@23 ~ e4@24, ~ b3@3, ~@12 b4@25 ~@11]/2", I: "[d4,f#4,a4]", J: "[a3,d4,f#4] [b3,e4,g#4]",
  K: "[[a3,a4]@2 [b3,b4] [c#4,c#5], e4]/2", L: "[~ e5, [c#3,e4,a4]]/2",
  M: "[e5 ~@2 g#4, [d3,f#4,a4]@3 ~, ~@12 d5@35 ~]/2", // D
  N: "[a4@17 ~@19 a5@12, e4, c#5@11 ~ c#5@12, ~@3 a4@5, ~@5 e5@3]/2",
  O: "[[d5,g5]@24 ~@61 [a3,d#4,f#4]@15 ~@36 g#4@11 [c#4,g4]@23 ~ [a3,f#4]@11 ~ a3@5 b3@4, b5@9 a5@8 ~@31, ~@12 [c#5,e5]@12 d5@21 ~@11 a4@12 ~@28, ~@66 a4@24 ~@10 [c#4,e4]@23 ~ d4@23 ~@45]/8", // G5 D#dim C#dim D C#m
  P: "~@3 a4@5, ~ c#4@7",
  Q: "[~@20 g#4@16 ~@23 e5@30 ~ [g4,e5]@46 ~ d5@11 c5@11 ~ g5@23 [c5,g5]@9, ~@5 b3@34 [e4,a4]@51 ~@47 g4@46 ~@9]/8", // C C5 A5
  R: "[~@2 f4@23 a5@11 ~ g5@11, ~ c5@17 ~@6]/2", S: "~ [b4,b5]@11 [c5,c6]@11 ~",
  T: "[[d5,d6]@11 e6@12 e4@11 [a4,a5]@11 ~ [c5,c6]@2, ~@11 c4@37, ~@11 [a4,e5]@23 ~@14, ~@11 e4@11 ~@26]/2", // D A C A5
  U: "[~@9 [b4,b5]@11 ~@25 d5@13 ~ c5@12 [a4,a5]@12 [g4,g5]@12 [c4,c5]@12 [f3,a3,c4]@36 [g3,b3,d4]@12 [c4,e4]@24 d4@12 c4, ~@9 g4@49 ~ a3@24 g3@24 ~@48 g3@37, ~@9 b3@23 a#3@26 ~ e3@48 ~@85, ~@7 e5@8 ~@49, ~@21 e4@22 ~@16 c4@35 ~@98]/8", // B A G C F G C
  V: "[~@10 [d4,g4,b4]@11 ~ [c4,f4,a4]@23 [b3,e4,g4]@11 ~@12 c4@13 ~@12 c5@5 e5@6 ~ [f4,a#4,d5,f5]@35 [e4,c5]@6 [d4,a#4]@6 f4@7 ~@17 f5@12 [c5,a5]@4, ~@57 g4@28 ~@2 g4@18 ~@47 a4@11 ~ c5@23 ~@5, ~@57 e4@23 ~ e4@23 ~@48 c4@24 ~@16, ~@161 f4@18 ~@13]/8", // G F Em A# C Gm F
  W: "[~@2 [d5,b5]@5 [e5,c6,e6]@35 ~ [d5,b5,d6]@5]/2", X: "[~ [c5,a5,c6]@6 [d3,g3,b4,d5,b5]@47 [e2,c4,e4]@18]/3",
  Y: "[~@19 b3@12 ~@14 [g4,a#4,d5,f5]@12 ~ [e4,e5]@6 [d4,d5]@6 ~ [c4,c5]@12 ~@39 a4@11 ~@2 [a3,c4,a4]@13 ~ [c4,e4,c5,a5]@14 [b3,d4,d5,b5]@16 ~ [a3,c4,e5,c6]@12, ~@7 [d2,f4]@26 ~@51 a4@36 ~@72, ~@7 c4@14 ~@63 [e3,a3,c4]@51 ~@57, ~@97 a5@27 ~@68]/8", // Gm7 E D C Am Bm Am Dm …
  Z: "[~@9 [c4,e4]@25 b3@12 b3@15 ~@39 f4@14 [e4,c5]@6, ~@9 g4@51 ~ g4@37 ~@22, ~@34 [d4,f4]@27 [a#3,e4]@24 c4@28 ~@7, ~@79 c5@34 ~@7]/5", // C Dm A#dim
  AA: "[~@7 c4@13 ~@20 f4@20 [c4,e4,g4]@49 ~@11, ~@7 g4@52 ~@61, ~@20 b3@39 ~@61, ~@2 d4@3 ~@5]/5", // C
  AB: "[~@6 [d3,f3]@12 ~@13 g#4@12 f4@12 ~ e4@37 ~@3, ~@6 b3@37 [g3,c4,g4]@49 ~@4, ~@18 [d3,f3,d4]@25 ~@53]/4", // Dm C5 Dm
  AC: "[~ [d3,f3,g#3,b3]@47]/2", AD: "[~@19 [c2,c3,g3,c4,e4]@149]/7",
})).s("gm_string_ensemble_2").gain(0.33)

// other · pan flute
const pan_flute = note(`<
  ~@59 A B C D@2 E F G@2 H I J@2 K L M N O P Q ~@4 R S T U ~@3 V W ~@11 X Y@8 ~@7 Z@2 AA@4 AB@3 ~@34
>`.pickRestart({
  A: "~@17 c#5@4 c#5@3", B: "~ c#5@6 ~@2 c#5@9 c#5@4 ~@2", C: "c#5@5 ~ c#5 e5",
  D: "[~ e5@5 ~ e5@23 ~@9 a4@2 ~ a4@3 a4@2 ~]/2", E: "~ a4@5 ~ a4@12 a4@2 ~ a4@2", F: "~ a4@16 ~ a4@3 c#5@3",
  G: "[~ c#5@5 ~ c#5@25 ~@10 f#5@3 g#5@3]/2", H: "~ a5@5 ~ a5@14 a5@2 ~", I: "a5@5 ~ a5@15 g#5@3",
  J: "[~ f#5@5 e5@22 ~@14 d5@3 e5@3]/2", K: "~ f#5@11 ~ f#5@8 f#5@3", L: "~ e5@6 a4@11 e5@6", M: "~ d5@5 ~ d5@15 ~@2",
  N: "~@12 c#5@5 ~ c#5@5 ~", O: "c#5@8 ~ c#5@8 ~@2 c#5@5", P: "c#5@9 f#5@9 e5@5 ~", Q: "~ e5@8 ~ e5@14",
  R: "~@18 e5@3 ~ f#5@2", S: "~ g5@6 ~ g5@10 ~ g5@5", T: "~ g5@8 f#5@9 e5@5 ~", U: "f#5@6 ~ f#5@14 ~@3",
  V: "e4@3 ~ e5@16 c#5@3 ~", W: "a4@3 f#5@3 d5@3 a4@10 ~@5", X: "~@18 a5@5 ~",
  Y: "[b5@5 c6@11 ~ c6@10 ~ c6@2 ~ c6@3 ~ c6@8 ~ b5@9 a5@5 ~ a5@3 g5@2 ~ g5@13 ~@16 f5@7 g5@7 a5@7 ~ a5@8 ~ a5@6 ~ g5@9 c5@8 g5@6 ~ f5@5 ~ f5@15 ~@15]/8",
  Z: "[~@21 g5@6 a5@5 ~ a#5@9 ~ a#5@5]/2",
  AA: "[~@2 a#5@2 ~@2 a#5@3 ~ a#5@9 a5@8 ~ g5@6 a5@10 ~ a5@12 ~@11 a5@6 b5@5 ~ c6@8 ~ c6@7]/4",
  AB: "[~@2 c6@6 c6@8 ~ b5@9 a5@6 b5@8 ~ b5@19 ~@12]/3",
})).s("gm_pan_flute").gain(0.68).pan(0.6)

// other · string ensemble 1
const string_ensemble_1 = note("<~@83 A B C ~@24 D@8 ~@10 E F@4 ~@29>".pickRestart({
  A: "~@3 e4", B: "d4@3 b3", C: "d4@12 c#4@11 ~",
  D: "[~@23 f5@29 ~@7 e4@18 [d4,d5]@27 [g4,g5]@3 [c4,c5]@20 ~ [g4,g5]@3 b4@20 g4@3 b4@12 a4@24 g4@2, ~@11 a4@42 e5@24 ~@54 d4@22 ~@39]/8", // D G C G
  E: "a5@3 b5@3 c6@6 ~ g5@11", F: "[~ c6@6 f5@37 ~ a#5@13 e5@13 a#5@14 ~@11]/4",
})).s("gm_string_ensemble_1").gain(0.33).pan(0.7)

// other · oboe
const oboe = note("<~@92 A@5 ~@33 B@2 C@2 D@6 ~@16 E@4 ~@2>".pickRestart({
  A: "[~@3 a4@43 ~ g#4@17 a4@45 ~@11]/5", B: "[~@22 f4@13 e4@13]/2", C: "[c5@37 ~@11]/2",
  D: "[~@15 a4@13 ~ c5@15 d5@16 e5@32 ~ a5@13 g5@20 ~@18]/6", E: "[~@5 c6@43]/4",
})).s("gm_oboe").gain(0.3).pan(0.3)

// other · flute
const flute = note("<~@128 A@3 ~@3 B@4 ~@17 C@5 ~@2>".pickRestart({
  A: "[g4@3 ~ g4@3 g4@24 f4@26 ~@15]/3", B: "[~@15 e5@13 ~ a5@15 b5@16 c6@19 ~@17]/4", C: "[~@8 c4@111 ~]/5",
})).s("gm_flute").gain(0.24).pan(0.3)

// chords · french horn
const french_horn = note(`<
  ~@47 A@4 ~@9 B@2 C@2 D@2 E@4 F G H I J@2 K@4 L@2 M@2 N O P Q@6 ~ R@8 S T U@3 V@3 W@5 X@7 Y@2 Z@4 AA@2 AB@5 AC@4 AD@6
  AE@3 ~@6 AF@7 ~
>`.pickRestart({
  A: "[~@14 f#3@13 a3@14 g#3@15 f#3@13 e3@22 ~@5]/4", B: "[[a3,c#4]@47 ~]/2", C: "[a3,e4]/2", D: "[a3@13 g#3@3, d4]/2",
  E: "[a3,c#4]/2", F: "g#3, c#4@7 ~", G: "[g3,c#4]", H: "[f#3,c#4]", I: "e3", J: "[[f#3,a3]@3 [g#3,b3]]/2",
  K: "[~@48 c#3@47 ~, [a3,c#4]@95 ~]/4", L: "[e4 ~@2 g#3, a3@3 ~, ~ d4@3]/2", M: "[a3@3 e4]/2", N: "d4 b3", O: "d4 c#4",
  P: "e4 d4", Q: "[c#4@13 ~ b3@15 c#4@23 d4@24 ~ e4@34 d4@13 ~@20]/6",
  R: "[~@15 [a3,c#4]@51 ~ e4@46 d4@11 c4@11 ~ b3@23 a3@23 c4@10]/8", S: "~@2 d4@11 e3@11", T: "~ g3@11 c4@11 ~",
  U: "[g3@11 a4@23 e4@11 ~ a4@12 g4@14]/3", V: "[~@21 e4@26 d4@24 c4]/3",
  W: "[~@11 a3@6 ~@6 f4@6 a4@18 g4@12 c4@47 ~ c4@13, ~@17 c4@42 e4@61]/5",
  X: "[~@11 d4@23 [b3,g4]@12 f4@23 e4@12 ~ [c4,e4]@47 d3@24 f3@11 e3@4, ~@8 g3@27 ~@11 a3@35 ~@87]/7", Y: "[~ c3@5]/2",
  Z: "[~@2 d3@6 e3@23 g3@12 f#3@12 d3@41]/4", AA: "[~@6 g3@37 ~ a3@4]/2",
  AB: "[~@9 [d4,f4]@25 [c4,e4]@25 ~ [a3,c4]@51 [a3,c4]@9, ~@3 [g3,a#3]@17 e4@20]/5", // Dm C Am Gm
  AC: "[~@5 [c4,e4]@15 [b3,d4]@16 a3@46 c4@14, ~@9 c4@11 ~@4]/4", AD: "[~@10 b3@27 a#3@24 ~ a3@28 c4@43 b3@11]/6",
  AE: "[~@12 c4@49 ~@11]/3", AF: "[~@19 [g2,c3,g3]@149]/7",
})).s("gm_french_horn").gain(0.21).pan(0.3)

// chords · piano
const piano = note(`<
  A B C@7 D@7 E@7 F@8 G@3 H@7 I J K@2 L@7 M@8 N@2 O@2 P Q R@2 S@2 T@2 U V W X Y@2 Z@2 AA AB AC@2 AD AE AF@6 AG AH AI@8
  AJ@6 AK@5 AL@3 AM@8 AN@5 AO@6 AP@6 AQ@2 AR@8 AS AT@8 ~@2
>`.pickRestart({
  A: "~@8 [g#3,b3,f4]@3 [g#3,b3,e4], ~@5 e2@7, ~@2 d4", // Fdim E
  B: "~@4 [g#3,b3,f4]@6 [e3,b3,e4]@11 ~ [f3,b3,d4]@2, ~@5 e2@7, ~@5 d4@2 ~@5", // Fdim E5 Bdim
  C: "[~@48 c#4@13 ~@7 [f3,g#3,d4]@5 ~ [f3,g#3,c#4]@5 ~ [g#3,d4]@5 ~ g#3@12 ~ b3@11 ~@44 c#3@6 a1@8, ~@11 [a1,d4]@24 e3@6 a3@20 ~@7 b3@11 ~@7 c#4@23 ~@15 a3@18 c#3@6 a3@12 ~@8, ~@11 a3@12 [e3,c#4]@6 c#3@32 ~@19 f3@29 ~@3 e3@18 c#3@6 e3@21 ~@11, ~@11 e3@12 a2@38 ~@63 a2@33 ~@11, ~@17 e2@44 e2@48 ~@3 [a1,b3]@46 ~@10]/7", // Ddim C# G#dim D5 C#m Asus2
  D: "[~@76 a3@10 ~@2 e4@18 e4@7 ~@22 f#3@6 ~@6 d4@12 f#3@6 g3@3, ~@5 c#3@36 [e3,c#4]@6 a2@40 ~ c#2@46 ~ [d2,e4]@23 ~@10, ~@11 e3@12 e3@18 a1@24 b3@22 ~@81, ~@17 a3@36 e3@33 ~@2 e3@4 ~@49 f#3@12 ~@15, ~@29 e4@30 c#4@27 ~@82]/7", // C#m Dsus2
  E: "[~@2 [e2,g#3]@11 ~@7 e3@12 ~@23 e4@6 ~@36 c#4@11 ~@18 g#4@6 ~@6 g3@9 ~@9 c#4@6 f#3@6, ~@14 [a2,c#4]@44 ~@3 f#2@28 ~@2 f#2@17 e2@46 ~@2 [d2,f#4]@12, ~@32 e3@12 e3@16 ~@19 a4@29 g#4@12 ~@12 g4@23 ~@13, ~@38 b3@21 ~@2 a4@10 ~@2 c#4@12 f#4@24 ~@11 c#4@11 ~@37, ~@50 a3@10 ~@7 a3@41 ~@6 g#3@18 ~@36]/7", // E A D
  F: "[~@6 f#4@6 ~@17 e4@6 ~@18 a3@4 ~@2 [a3,d4]@11 [g#3,d4]@13 ~@35 a3@9 ~@41 g#3@4 ~@2 f#3@6 ~@5 d4@7, b3@11 ~ c#2@23 [b1,d4]@22 ~@2 e2@24 ~ [a1,c#4]@42 ~@3 c#2@44 ~ [d2,e4]@18, ~@12 e4@15 ~@79 e4@20 ~@20 e4@11 a3@17 ~@18, ~@12 b3@9 ~@2 a3@11 ~@13 f#3@10 ~@38 a3@16 ~@18 [a3,e4]@9 ~@2 a3@11 g#3@11 ~ e4@11 ~@18, ~@18 e3@17 ~@6 b2@17 ~@43 e3@8 ~@3 e3@15 ~@8 e3@39 ~@6 f#3@11 ~]/8", // D5 G#dim Bm A Dsus2 A5
  G: "[~@4 f#3@6 g3@6 [e2,g#3]@11 ~@11 a3@11 ~@17 e3@6, ~@3 [a1,c#4]@5, ~@33 e3@9 ~@7 b3@22 ~, ~@55 e3@10 ~@7, ~@61 a3@11]/3", // E A
  H: "[~@17 d4@5 ~@12 c#4@11 ~@22 d4@22 ~ a3@6 ~@11 e4@4 ~@18 f#3@4 ~@24 g#3@6 b3@4 ~, e2@23 ~@22 d2@43 ~@2 b1@21 ~ [b1,b3]@21 ~@2 [e2,e4]@33, d4@15 ~@7 d4@13 ~@10 e4@13 ~@4 e4@28 e4@11 a3@9 ~@2 e4@11 ~ d#4@11 ~@11 e3@18 ~@4, ~@6 f#3@10 ~@6 a2@21 ~@8 d3@32 ~@58 b2@27, ~@11 g3@13 ~@4 g3@10 ~@18 a3@13 ~@27 f#3@15 ~@7 f#3@10 ~@7 g#3@17 f#3@13 ~@3]/7", // B E
  I: "~@7 f#4@4 ~@8 c#3@5, ~ [d2,g#3,b3,e4]@11 ~ [c#2,e4]@11", // E7 C#m
  J: "~@7 e4@5 ~@7 b2@5, ~ [e3,a3]@10 ~@2 [b1,d4]@11, ~@13 g#3@9 ~@2", // A5 Bm
  K: "[~ g#3@11 ~@19 d4@6 c#4@11, ~@13 a1@35, ~@13 b3@23 ~@12, ~@13 d4@12 g3@23, ~@13 g3@6 a2@20 ~@9]/2",
  L: "[~ e4@12 ~@36 c#4@12 ~@14 [a3,c#4]@13 ~ [g#3,b3]@15 [f#3,a3]@13 ~@34 a3@11 e2@6, ~@13 [d2,a4]@48 ~@56 [e2,c#4]@45 ~@6, ~@13 c#4@24 f#4@24 ~@68 a3@15 ~@24, ~@19 a2@42 b2@56 ~@23 e4@22 ~@6, ~@31 a3@22 ~@8 f#3@41 ~@21 e3@9 ~@2 e3@9 ~@2 e3@10 ~@13]/7", // A G#m F#m D5 C#m
  M: "[~@28 e4@13 ~@8 [g#3,b3,f4]@6 [g#3,b3,e4]@5 ~ [g#3,b3,f4]@6 [e3,b3,e4]@11 ~ [f3,b3,d4]@12 ~@36 c#4@13 ~@7 [f3,g#3,d4]@5 ~ [f3,g#3,c#4]@6 d4@6 ~@15 b3@12, ~@6 e3@15 ~@22 e2@23 ~ e2@24 [a1,d4]@24 e3@6 a3@19 ~@7 b3@12 ~@7 c#4@25 ~, ~@11 a3@30 ~@50 a3@12 [e3,c#4]@6 c#3@31 ~@19 [f3,g#3]@32 ~, ~@17 c#4@25 ~@7 d4@16 ~@2 d4@4 ~@20 e3@12 a2@37 ~@52, ~@97 e2@43 ~ e2@51]/8", // Fdim E Fdim E5 Bdim Ddim C# D5 …
  N: "[~@3 a3, a1@24 b3@23 ~, c#4@18 c#4@29 ~, e3@12 e3@35 ~, ~ a2@7]/2",
  O: "[e3@4 ~@8 a3@6 e4@7 ~@23, c#2@15 ~, e4@3 ~@5, ~ e3@6 ~]/2", P: "f#3 ~ d4@2, [d2,e4], ~ f#3@2 ~",
  Q: "f#3@6 g3@6 [e2,g#3]@11 ~", R: "[~ e3@2 ~@4 e4, [a2,c#4]@15 ~, ~@3 e3@2 e3@3, ~@8 b3@7 ~, ~@36 a3@11 ~]/2",
  S: "[~@36 c#4@11 ~, f#2@14 ~ f#2@9, a4@10 ~@2 c#4@12 f#4@23 ~, ~@6 a3@41 ~, ~@18 a4@29 ~]/2",
  T: "[~@6 g#4@2 ~@2 g3@3 ~@3, e2@47 ~, g#4@12 c#4@11 ~ g4@24, ~ g#3@3 ~@4]/2",
  U: "~@3 f#4, d2@23 ~, f#4@7 ~@5, c#4@8 ~@4 b3@11 ~, ~@6 f#3@17 ~",
  V: "~@3 e4, c#2@23 ~, e4@5 ~@3, b3@3 ~ a3@4, ~@6 e3@17 ~", W: "~@18 a3@5 ~, [b1,d4]@23 ~, ~@6 b2@17 ~, ~@12 f#3@11 ~",
  X: "[a3,d4]@11 ~ [g#3,d4]@12, e2@11 ~", // D5 G#dim
  Y: "[~@36 a3@11 ~, c#4@47 ~, a1@15 ~, ~@12 a3@17 ~ e3@17 ~, ~@18 e3@6 e4@23 ~]/2",
  Z: "[~@21 g#3@2 ~, c#2@47 ~, [a3,e4]@10 ~@2 a3@12 g#3@12 e4@11 ~, ~@6 e3@41 ~, ~@3 e4@2 a3@3]/2", // A5
  AA: "f#3 ~ d4@2, d2@23 ~, e4@19 ~@5, ~ f#3@2 ~", AB: "f#3 g3 [e2,g#3]@2",
  AC: "[~@6 a3@6 ~@9 e3@2 ~, c#4, a1@23 ~, ~@6 e3@9 ~@9 b3@23 ~, ~@30 e3@6 a3@11 ~]/2",
  AD: "g3@11 ~@7 b3@5 ~, d4@23 ~, b3@7 ~@5, ~@6 g3@5 ~", AE: "a3@9 ~@3 a3@11 ~, c#4@11 ~, e3@5 ~",
  AF: "[[a3,f#4]@36 ~@2 [a3,d#4]@13 ~@2 a3@11 ~@6 a3@5 ~ a3@11 ~ g#3@11 ~@18 e4@6 a3@16 ~@2 a3@3, d4@30 ~@8 d#2@3 ~@12 a1@24 ~@23 c#4@8 ~@3 c#4@11 ~@22, ~@53 c#4@22 ~@25 e4@12 ~@32, ~@53 e3@4 ~@7 e3@9 ~@3 [b1,d4]@24 c#2@24 ~@20, ~@105 g3@16 ~@2 [d2,e4]@21]/6", // D Adim Bm Dsus2
  AG: "~@3 a3@5 ~@14 a2@2, ~ e4@7, ~@3 a2@16 ~@5, ~@3 c#4@10 ~@2 c#4@9, ~@9 a3@14 ~", AH: "~@5 [e2,a3,b3,d4,f#4]@19",
  AI: "[~ [b3,e4]@13 ~@21 e4@6 a4@6 ~@13 e4@4 ~@3 e5@8 ~@26 c4@11 ~@12 c4@12 ~@12 c4@11 ~@12 f4@11 [a3,c4]@10, ~@15 [a1,a2]@49 ~@3 c2@46 ~@6 e2@34 ~@6 f2@33, ~@22 a3@18 ~@14 e5@11 ~@31 g3@10 ~@7 g3@45 ~ g4@14 ~@19, ~@28 c#4@13 ~@6 e4@11 ~@32 e4@22 ~ d4@11 e3@15 ~@3 e3@16 ~@7 a3@16 ~@11, ~@136 b3@12 ~@11 c4@22 ~@11]/8", // E5 Am A
  AJ: "[~@2 d4@11 ~@41 b2@5 ~@41 e3@4 ~@25 e3@9 ~@3 e3@3, ~@13 e4@46 ~@6 a2@37 ~@4 g2@15 ~@2 g2@21, ~@13 c2@18 g3@11 c3@12 ~@5 a1@46 ~@12 b3@11 ~ a#3@15, ~@19 c3@14 ~@3 c2@12 g3@8 ~@3 e3@12 a3@11 c4@28 ~ g3@18 ~@15, ~@25 c4@34 c4@18 e3@10 ~ e3@6 a3@11 ~ e3@21 ~@17]/6",
  AK: "[~@4 g2@5 ~@14 d4@10 ~@14 c4@9 ~@3 a3@4 ~@14 f4@4 ~@2 [a3,c4,f4]@11 ~ [g3,b3]@12 ~@6 g3@6 [c4,e4], ~@11 e4@41 ~@7 f4@13 ~@35 e4@10 ~@3, ~@11 a3@23 ~ d4@14 ~@10 c4@8 ~@4 c4@12 ~@37, ~@11 f2@20 ~@4 [e2,g3]@22 ~@2 d2@19 ~@5 g2@24 c2@13, ~@65 a3@17 ~@38]/5", // F G C Em
  AL: "[~@11 g4@3 ~@15 g4@3 ~@15 c5@6 ~@6 g4@13, ~@5 c2@26 ~@4 e2@14 ~@4 e2@19, ~@11 e5@20 ~@4 g5@24 ~@13, ~@23 c5@8 ~@4 c5@9 ~@28, ~@41 g4@10 ~@8 c4@11 ~@2]/3",
  AM: "[~@28 f2@4 ~@2 b3@5 ~@13 b3@5 ~@42 g3@5 ~ f3@5 ~@13 a#3@5 ~ f3@4 ~@2 f3@10 ~ f3@4 ~@2 a3@5 ~@13 c4@4 ~@14 [c4,a4]@4, ~@10 g4@25 ~@11 e4@11 ~ c4@11 c4@18 g3@6 g4@11 ~ d4@8 ~@4 d4@11 ~ f4@10 ~@19 a3@15 ~@3 [c4,a4]@11 ~@5, ~@10 f2@14 ~@10 g2@23 ~ c2@47 ~@6 f3@17 ~@24 f2@20 ~@10 f2@10, ~@16 c4@17 ~@7 b3@10 ~@8 g3@13 ~@4 g3@6 e4@23 ~ a#3@12 ~@12 a#3@22 ~ [c4,f4]@11 ~ f4@12 ~@16, ~@22 f4@11 ~ f4@13 ~@16 c3@41 ~ g2@23 ~ [c2,d4]@24 ~@39]/8", // F F5 Csus2
  AN: "[~@2 [d4,b4]@6 c4@5 ~@12 g4@5 ~ [c4,e4,g4]@11 ~ a3@4 ~@2 a3@4 ~@2 [b3,d4]@3 ~@27 g2@5 ~ [f2,b3,d4,f4]@11 ~@13 g3@5, ~@8 a1@24 ~@47 g4@11 ~@30, ~@8 g4@13 ~@22 f#4@12 ~@12 d4@23 ~@30, ~@8 e4@9 ~@3 e4@11 ~@12 d4@10 ~@8 b3@10 ~@2 b3@17 ~@12 [e3,c4]@18, ~@14 c4@17 d2@23 ~ g2@27 ~@20 e2@15 ~@3]/5", // G C Bm Bdim C
  AO: "[~ e2@4 ~@2 c4@13 b3@12 ~ [a4,a#4,d5]@24 ~ g4@5 ~@2 f4@5 ~ [e4,c5]@10 ~@3 a4@15 ~@30 f2@3 ~@3 [d2,c4,e4,f#4,a4]@9, ~@7 [d2,f3]@25 ~ c2@48 ~@3 f2@31 ~ f2@10 ~@18, ~@33 f5@22 ~@3 e5@22 ~@4 e4@24 ~@2 e4@11 ~@23, ~@65 d5@16 ~@3 c5@38 ~@22, ~@103 a4@18 ~@2 a4@11 ~@10]/6", // A#maj7 C D7 Dm
  AP: "[~@20 d4@16 [c4,a4]@44 ~@2 c4@6 ~@12 e4@5 ~ f4@13 b3@14 [e2,a#3,g4]@11, ~@5 c5@18 ~@59 e4@12 c4@11 ~ d4@15 ~@23, ~@20 b4@19 ~@43 c2@23 ~ d2@25 ~@13, ~@88 g3@16 ~@2 b3@11 ~@27]/6", // F Edim
  AQ: "[~@8 g4@5 ~ g4@14 f4@14 [e2,e4]@6, ~@2 c4@41 ~@5, ~@7 f2@14 ~@3]/2", // E
  AR: "[~@14 e4@6 ~@14 b3@26 ~@7 g2@6 e3@7 ~@26 g3@6 ~@7 [g#3,b3,d4,g#4]@6 ~ [g3,b3,d4,g4]@5 ~ [g#3,b3,d4,g#4]@6 [g3,b3]@10 ~@3 f4@12 [c4,f4]@11 ~@2 c4@4 ~@8 c2@4, ~ g3@16 ~@4 [g2,f4]@39 c3@14 ~@6 c3@33 g2@51 ~@28, ~@8 c4@11 ~@41 c2@52 ~@51 c2@22 ~@7, ~@86 g3@10 ~@4 c4@13 ~@25 [d4,g4]@24 ~@14 e4@16, ~@93 e3@19 ~@39 f3@4 ~@8 g3@29]/8", // G#dim G G#dim G F5 G7 G5
  AS: "~@16 g4@5 ~@3, ~@3 g3@20 ~, ~@9 c4@13 ~@2",
  AT: "[~@8 [g#3,f4]@6 ~ [g#3,e4]@5 ~ [b3,f4]@7 b3@18 ~ d4@19 ~@76 e5@48 ~@2, ~ g2@61 ~@5 [c2,c4,e4]@48 ~@2 e4@48 ~@27, ~@8 f3@59 ~@14 g2@48 ~ g4@48 ~@14, ~@8 b3@12 ~ g#3@44 ~@2 g3@38 g3@48 ~@39, ~@28 e4@37 ~@28 e3@48 ~@51]/8", // C# C#m Bdim C
})).s("gm_piano").gain(0.48)

// chords · piano · soft notes
const piano_soft = note(`<
  A B@2 ~@3 C@5 ~@2 D@2 E ~ F@2 ~@3 G ~@3 H@3 ~ I@2 J@2 ~ K ~ L ~@5 M N@2 O@2 ~@3 P Q@2 R@2 ~@7 S T ~ U@2 ~@3 V ~@4 W@2
  ~@2 X ~ Y@2 ~@3 Z ~@3 AA ~@2 AB ~@2 AC AD ~ AE ~@6 AF@2 ~@4 AG@2 AH@2 ~@17 AI@2 ~@2 AJ ~@11 AK@2 ~@10
>`.pickRestart({
  A: "~@19 g#1@3 ~@2", B: "[~@10 g#3@11 ~ g#3@11 ~@15]/2", C: "[~@11 e2@20 ~@4 a2@24 ~]/5",
  D: "[~@4 a3@6 ~@12 e4@17 ~@9, ~ e3@37 ~@10, ~@8 g#3@11 ~@5]/2", E: "~@3 f#3@2 ~@3", F: "[~ a3@12 ~@11]/2",
  G: "~@3 g3@2 ~@7, c#4@11 ~@13", H: "[~@18 a2@37 ~@17]/3", I: "[~@23 f#3@5 ~@20]/2", J: "[~@10 e3@5 ~@9]/2",
  K: "~@5 g3@2 ~", L: "~@2 d3 ~, ~@7 a3@11 ~@6", M: "~@7 d4@4 ~@13", N: "[~@19 a2@18 ~@11]/2",
  O: "[~ d3@14 ~@16 a3@6 ~@11, ~@19 d3@18 ~@11]/2", P: "~@13 e3@5 ~@6", Q: "[~@22 e3@19 ~@7, a2@7 ~]/2",
  R: "[~@4 g#1@3 ~@12 g#3@11 ~ g#3@11 ~@6]/2", S: "~@2 e4@5 ~, g#3@7 ~", T: "~@3 f#3", U: "[~ a3@2 ~]/2",
  V: "~@9 g3@2 ~, ~@12 c#4@11 ~", W: "[~ a2@7]/2", X: "~@6 f#3 ~", Y: "[~@9 e3@5 ~@10]/2", Z: "~@3 d2@8 ~@13",
  AA: "~@15 d4@8 ~", AB: "~ g#4@13 ~@10", AC: "~@2 c4 ~, ~@9 g3@13 ~@2", AD: "~@11 g3@5 ~@8", AE: "~@9 e2@5 ~@10",
  AF: "[~@7 g3@10 ~@7]/2", AG: "[~@17 g4@9 ~@22]/2", AH: "[~@28 c4@3 ~@17, ~@22 e4@9 ~@17]/2",
  AI: "[~@3 [e4,c5]@12 e2@12 ~@2 e4@15 ~@4]/2", AJ: "~@10 g3@5 ~@9", AK: "[~@7 c4@7 ~@10, ~ c3@8 ~@15]/2",
})).s("gm_piano").gain(0.27)

// bass · viola
const bass_2 = note(`<
  ~@60 A@2 B@2 C@2 D@2 E@2 F@2 G H I J A@2 B@2 K@2 L@2 M N O@6 P Q@8 R@3 S@2 T@6 U@5 ~ V@6 W@5 X@4 ~@29
>`.pickRestart({
  A: "[~ a1@3, a2]/2", B: "c#2/2", C: "[d2@5 d#2 e2@2]/2", D: "[~@3 a2@5, a1]/2", E: "f#2/2", F: "e2/2", G: "d2",
  H: "c#2", I: "b1", J: "e2", K: "[d2@3 e2]/2", L: "[~@5 a2@11, a1]/2", M: "a2", N: "a1",
  O: "[d2@52 ~@6 a2@18 b1@23 ~ c#2@23 d2@21, ~@53 a1@24 ~@67]/6", P: "~ c#2@7",
  Q: "[~@5 e2@34 a2@51 ~ c2@46 e2@46 f2@9]/8", R: "[~@14 g2@23 c2@35]/3", S: "[~@6 b1@5 a2@37]/2",
  T: "[~@10 g2@49 f2@24 e2@24 d2@24 g2@13]/6", U: "[~@47 c2@12 e2@46 ~@15, ~@11 c3@48 ~@61]/5",
  V: "[~@10 c2@47 g2@24 c3@23 f2@40]/6", W: "[~@8 a2@23 ~@12 d3@11 ~ g2@35 ~ f2@11 e2@18, ~@31 d2@24 ~@65]/5",
  X: "[~@7 d2@26 c2@49 ~@14]/4",
})).s("gm_electric_bass_finger").gain(0.35)

// other · piano
const piano_2 = note("<~@103 A B@4 ~@11 C@7 D@2 ~@34>".pickRestart({
  A: "~@3 a5", B: "[b5@6 c6@39 b5@7 a5@10 g5@22 ~@12]/4",
  C: "[~@21 g5@6 a5@6 a#5@34 a5@9 g5@6 a5@40 b5@6 c6@32 b5@8]/7", D: "[~ a5@6 b5@32 ~@9]/2",
})).s("gm_piano").gain(0.05)

stack(
  bass, string_ensemble_2, pan_flute, string_ensemble_1, oboe, flute, french_horn, piano, piano_soft, bass_2, piano_2
)

More by Zero