Strudelify

Rien ne va plus

Ruggeri

KeyC majorTempo130 bpm
0:00/0:00
// Rien ne va plus — Ruggeri
// 130 bpm, 4/4, key C major. 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: Full arrangement: all 163 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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(`<
  ~@53 A B@3 C@3 D@3 ~@25 E F@3 G@3 H@4 I J@2 K L@3 M@3 ~@9 N O@3 P@5 Q@2 R S@3 T@5 U@3 V W@3 X@3 Y ~@14
>`.pickRestart({
  A: "~@2 c2@17 ~@5", B: "[~@11 a#1@18 ~@16 d#2@18 ~@9]/3", C: "[~@6 a#1@26 ~@2 a#1@5 ~ f2@22 ~@10]/3",
  D: "[~ d#2@31 ~@3 a#1@15 ~@22]/3", E: "~@4 d2@17 ~@3", F: "[~@14 c2@18 ~@15 f2@18 ~@7]/3",
  G: "[~@8 c2@26 ~@2 c2@5 ~ g2@22 ~@8]/3", H: "[~@3 f2@31 ~@2 c2@15 ~@18 c2@27]/4", I: "~ c#2@5 d2@17 ~",
  J: "[~@5 c2@6 ~@5]/2", K: "~ f2@18 ~@5", L: "[~@10 c2@26 ~ c2@5 ~ g2@22 ~@7]/3", M: "[~@4 f2@31 ~@3 c2@15 ~@19]/3",
  N: "~@5 d2@16 ~@3", O: "[~@13 c2@17 ~@16 f2@17 ~@9]/3", P: "[~@6 c2@25 ~@2 c2@5 ~ g2@21 ~@11 f2@30 ~@3 c2@15 ~]/5",
  Q: "[~@16 c2@27 ~ c#2@4]/2", R: "~ d2@17 ~@6", S: "[~@10 c2@18 ~@15 f2@18 ~@11]/3",
  T: "[~@4 c2@25 ~@2 c2@5 ~ g2@21 ~@11 f2@31 ~@2 c2@15 ~@3]/5", U: "[~@15 c2@27 c#2@5 d2@16 ~@9]/3", V: "~@7 c2@17",
  W: "[~@15 f2@17 ~@15 c2@25]/3", X: "[~@2 c2@5 ~ g2@21 ~@11 f2@30 ~@2]/3", Y: "~ c2@15 ~@8",
})).s("gm_acoustic_bass").gain(0.63)

// bass · acoustic bass · soft notes
const bass_soft = note("<~@62 A@3 ~@43 B C@2 ~@37 D@3 ~@12>".pickRestart({
  A: "[~@4 a#1@9 ~@2 a#1@5 ~ a#1@34 ~@17]/3", B: "~@7 c2@10 ~ c2@5 ~", C: "[~ c2@39 ~@8]/2",
  D: "[~@18 c2@9 ~@2 c2@5 ~ c2@36 ~]/3",
})).s("gm_acoustic_bass").gain(0.31)

// chords · piano
const piano = note(`<
  A@5 B@5 C@3 D@8 E@3 F@6 G@3 H@3 I@3 J@5 K@6 L M@6 N@3 O P@3 Q@7 R@3 S@3 T@2 U@8 V@5 W@7 X@3 Y@6 Z AA@3 AB@6 AC@4 AD@4
  AE AF@2 AG@8 AH@7 AI@2 AJ@2 AK@2 AL@6 AM@7
>`.pickRestart({
  A: "[~@48 [g3,c4]@4 ~@30 c4@6 ~@29 g4@3, ~@19 g3@7 g3@17 d#4@10 d#4@18 g#4@17 g4@23 d#4@9, ~@20 c4@11 ~ c4@16 ~@5 c4@6 g#3@28 ~ a#4@11 d#3@21, ~@21 c3@33 g#2@34 d#3@5 a#2@27, ~@21 d#4@16 g4@17 g#4@11 c4@11 d#4@10 ~@2 d#4@17 a#3@15]/5", // C5
  B: "[~@64 a#6@20 ~ g3@6 ~@24 c4@5, ~@3 a#2@25 d#4@7 f4@28 f6@21 ~@7 g3@29, ~@3 f4@19 a#3@63 c4@17 ~ c4@12 ~@5, ~@3 [d#4,a#4]@12 f3@27 [d4,a#4]@20 a#5@23 d#4@12 d#4@12 d#4@11, ~@9 d#3@76 c3@35]/5", // D#5 Gm
  C: "[~@15 f3@6 ~@12 g3@6 ~ g3@5 ~@13 [d#4,c5]@6 ~ d4@6 d#4, ~@2 [g#3,c4,f4]@19 [a#3,d4,g4]@18 ~ [c4,d#4]@12 c4@13 ~@7, ~@8 c3@13 ~@6 d3@12 ~ c3@32, ~@23 g3@13, ~@29 g4@7]/3", // Cm Fm Gm Cm
  D: "[~@5 a#3@6 ~@25 a#3@4 ~@34 g4@6 ~@31 c3@6 ~ a#3@6 ~@6 a#3@4 ~@2 a#3@5 ~@32 g4@7 f4@6 d4@6, ~@5 a#2@36 ~@8 a#2@30 ~@7 c3@25 ~@6 a#2@37 ~@7 a#2@30 ~, ~@5 f4@18 ~ d4@18 d#4@19 a#3@18 ~ c4@12 ~@7 c4@18 [d4,f4]@24 ~ [c4,f4]@12 ~ d4@19 ~@18, ~@5 d4@12 a#3@13 a#4@12 ~ g4@18 ~@6 a#4@12 ~ [f4,g#4]@20 ~@5 g4@12 ~@37 f4@18 ~@20, ~@11 f3@30 a#3@14 d#3@25 ~@12 f3@25 ~@7 f3@23 ~ f3@15 ~@4 f3@21 ~@4]/8", // Dm F5 Fm
  E: "[~@30 g4@5 ~@31 c4@6, c3 g#2, d#4@2 c4@4 ~ d#3@5, ~@6 g3@18 c5@12 g#4@17 ~ [d#4,c5]@6 g#4@12, ~@18 d#4@17 d#4@13 g#3@24]/3", // Cm
  F: "[~@30 d#4@6 ~@30 f4@5 ~ f4@6 ~@24 a#3@6 g3@5 ~@7 c4@6 c4@6 d4@6 d#4@6, d#3@10 ~@2 d#3@24 d4@6 f3@36 f4@17 ~ f4@12 c4@10 ~@26, ~ [d#4,g4]@30 ~@5 a#3@14 ~@4 f4@11 ~@7 d4@18 d4@16 ~@2 d#4@12 ~@24, ~ a#4@17 a#3@6 a#4@12 f4@12 d4@11 ~ d4@10 ~@2 a#2@35 ~ c3@36, ~@6 a#2@30 a#2@18 [a#2,a#4]@18 d5@12 a#4@21 ~@9 g3@11 ~ g3@18]/6", // D# A#
  G: "[~@12 f3@6 ~@12 g3@5 ~@19 d#4@6 d4@6 d#4@6, [g#3,c4,f4]@18 [a#3,d4]@17 ~ g3@5 ~ g3@30, ~@6 c3@12 ~ g4@17 d#4@12 ~@6 g4@18, ~@24 d3@11 ~ c3@36, ~@37 c4@11 c4@12 ~@12]/3", // Fm A#
  H: "[a#3@6 ~@24 a#3@5 ~@31 g4@5 ~, a#2@35 ~@7 a#2@29 ~, f4@18 d4@17 ~ [a#3,d#4,g4]@18 a#3@18, d4@11 ~ a#3@12 a#4@11 ~@25 a#4@12, ~@6 f3@29 ~@13 d#3@24]/3", // D#
  I: "[~@30 c3@5 ~ d#3@5 ~@25 d#4@6, [f4,g#4]@18 c4@17 ~ [d#4,g4]@14 ~@4 a#3@18, c4@11 ~ f3@24 a#3@12 d#3@24, ~ c3@4 ~@2 a#2@5, ~@2 c5 ~@2 a#4]/3", // Fm D#
  J: "[~@12 d4@5 ~ d4@5 ~@41 f3@5 ~@7 [c4,d#4,g4] ~@5 [c4,d#4,g4]@5 ~@6 [c4,d#4,g4]@2 ~@4 [c3,c4,d#4,g4]@5 ~@6 [a#3,f4] ~@4 [a#3,d4,f4]@5, a#2@29 f4@16 ~@2 f4@9 ~@3 a#3@8 ~@3 [c1,c2]@17 [g1,g2]@11 c2@6 a#1@15 ~, [a#3,f4]@17 ~ a#3@22 ~ a#4@8 ~@61 d4@2 ~@8, d4@11 ~@7 [f4,a#4]@6 d4@26 ~@3 d4@8 ~@43 a#2@11 ~@5, ~@6 f3@29 d5@10 ~@75]/5", // Cm A#5 A# C G A#5
  K: "[~@7 f4@2 ~@3 [a#1,a#2,a#3,d4,f4]@5 ~@6 [a#3,d#4] ~@5 [a#3,d#4,g4]@5 ~@6 [a#3,d#4,g4]@2 ~@4 a#3@5 ~@6 [a#3,d4,f4]@2 ~@3 [a#3,d4,f4]@6 ~@5 [a#3,d4,f4]@2 ~@4 [a#1,a#2,a#3,d4,f4]@6 ~@5 [c4,f4,g#4]@3 ~@3 [c4,f4,g#4]@5 ~@6 [f4,g#4] ~@4 [f2,f3,c4,f4,g#4]@5 ~@6 [a#3,d#4,g4]@2 ~@4 [a#3,d#4,g4]@6 ~@5 [a#3,d#4,g4]@2 ~@2, ~ a#1@9 ~@8 [d#1,d#2]@15 ~ d#1@10 ~ [d#1,d#2,d#4,g4]@6 ~@34 [f1,f2]@17 ~@42, ~ a#2@7 ~@26 d#2@8 ~@9 [a#1,a#2]@16 ~ [a#1,a#2]@11 ~@22 [f2,f3]@10 ~@7 [d#2,d#3]@15 ~@2 [d#2,d#3]@8 ~, ~@6 [a#3,d4]@3 ~@14 g4@2 ~@82 c4@2 ~@35]/6", // A# D#5 D# A# Fm D# F A# …
  L: "~@2 [d#2,d#3,a#3,d#4,g4]@5 ~@6 [a#3,d4,f4] ~@5 [a#3,d4,f4]@5, ~@7 [a#1,a#2]@12 ~@5", // D# A#
  M: "[[a#1,a#2]@6 ~@5 a#2@2 ~@9 [a#3,d4,f4] ~@5 [a#3,f4]@6 [a#1,a#2]@5 [a#3,d4,f4]@6 [b1,b2]@5 ~@6 [c4,d#4,g4] ~@4 [c4,d#4,g4]@6 ~@6 [c4,g4]@2 ~@3 [c2,c3,c4,d#4,g4]@6 ~@5 [a#3,f4] ~@5 [a#3,d4,f4]@5 a#2@6 [a#3,d4,f4]@3 ~@2 [a#1,a#2,a#3,d4,f4]@5 ~@7 [a#3,d#4] ~@4 [a#3,d#4,g4]@6 ~@5 [a#3,d#4,g4]@2 ~@3, ~@6 [a#3,d4,a#4]@13 ~@9 d4@9 ~@35 d#4@2 ~@10 a#2@11 ~@39 d#2@8 ~@2, ~@11 a#1 ~@5 [a#1,a#2]@13 ~@20 [c1,c2]@16 ~ [g1,g2]@11 ~@6 a#1@15 ~ a#1@9 ~@8 [d#1,d#2]@15 ~@2 d#1@10, ~@89 d4@2 ~@32 g4@2 ~@19]/6", // A# A#5 A# B Cm C5 Cm A#5 …
  N: "[~ [d#1,d#2,a#3,d#4,g4]@6 ~@5 [a#3,d4,f4]@2 ~@4 [a#3,d4,f4]@5 ~@6 [a#3,d4,f4]@2 ~@3 [a#1,a#2,a#3,d4,f4]@6 ~@6 [c4,f4,g#4]@3 ~@2 [c4,f4,g#4]@6 ~@5 [f4,g#4] ~@5 [f2,f3,c4,f4,g#4]@4, ~@7 [a#1,a#2]@16 [a#1,a#2]@11 ~@6 [f1,f2]@17 [f2,f3]@10 ~@5, ~@31 c4 ~@4]/3", // D# A# Fm A# F
  O: "~@7 [a#3,d#4,g4]@2 ~@3 [a#3,d#4,g4]@6 [d#2,d#3]@6, ~ [d#2,d#3]@15 ~@8", // D#
  P: "[[a#3,d#4,g4]@2 ~@3 [d#2,d#3,a#3,d#4,g4]@5 ~@6 [a#3,d4,f4] ~@5 [a#3,d4,f4]@6 ~@5 [d4,a#4]@6 [a#1,a#2,d4,f4]@5 ~@6 [a#3,d4,f4]@5 ~ [a#3,d4,f4]@6 a#4@6 f4@4, ~@11 [a#1,a#2]@12 ~@5 [a#1,a#2]@7 ~@10 [a#1,a#2]@13 ~@4 a#2@10, ~@33 a#3@13 ~@26]/3", // D# A# Gm A#
  Q: "[~@2 d4@6 ~@30 g4@6 ~@31 c4@6 ~@29 d#4@6 ~@13 d4@6 ~@6 d4@6 ~ f4@6 f4@6 ~ a#4@6 f4, ~@8 c3@36 g#2@25 g#4@12 a#4@17 a#3@7 a#4@12 f4@12 ~@6 a#4@17 ~@2 d5@12 ~@2, ~@8 d#4@12 c4@24 d#4@7 ~@5 g#3@24 ~@6 a#2@30 ~ a#2@18 a#2@19 [a#2,d4]@14, ~@14 g3@30 ~@6 d#3@30 ~ d#3@10 ~@2 d#3@24 d4@6 f3@25 ~@20, ~@26 d#4@6 c5@12 ~ g#4@17 c5 d#4@18 [d#4,g4]@30 ~@6 a#3@14 ~@4 f4@12 ~@21]/7", // A# D#
  R: "[~@13 c5@53 ~@6, ~@8 c2@57 ~@7, ~@10 c4@55 ~@7, ~@11 [c3,e4]@55 ~@6, ~@2 g4@9 ~]/3", // C
  S: "[~@18 a3@5 ~@7 f4@6 d4@6 ~ e4@6 f4@5 ~@13 g3@5, ~@3 d3@6 ~ d3@2, ~@18 d4@17 ~@37, ~@3 f4@2 ~@7, ~@24 a3@11 ~ a3@18 [a#3,d4,g4]@18]/3", // Gm
  T: "[~@13 a3@5 ~ a3@5 ~@13 f4@6 e4@5, ~ [c4,e4,a4]@17 ~ [d4,f4]@12 d4@12 ~@5, ~@7 e3@11 ~ d3@29, ~@25 a3@23, ~@3 a4]/2", // Am Dm
  U: "[~ f4@5 ~ c4@5 ~@25 c4@5 ~@31 a4@5 ~@30 d3@5 ~@31 f4@6 ~@12 e4@5 ~ e4@5 ~@13 e5@5 c5, ~@6 c3@35 ~@8 c3@29 ~@6 d3@24 ~@6 f3@10 ~@2 f3@24 ~@6 g3@24 g4@12, ~@6 e4@11 ~ c4@13 c5@11 ~ a4@17 ~@6 c5@12 [g4,a#4]@19 ~@6 d5@12 ~@5 c3@30 c3@35 ~@7, ~@7 g4@18 e4@17 [c4,f4]@18 c4@18 d4@11 ~@7 d4@17 ~ [f4,a4]@14 ~@4 c4@18 [c4,g4]@17 ~ c4@22 ~@2, ~@12 g3@29 ~@13 f3@24 ~@12 g3@24 c5@12 ~@12 c5@12 e4@11 ~@7 [g4,c5]@6 e4@18]/8", // Gm F5 F C5
  V: "[~@23 [c#2,c#3]@5 ~@6 [d4,f4,a4] ~@5 [d4,f4,a4]@5 ~@6 [d4,f4,a4]@2 ~@4 [d3,d4]@5 ~@6 [c4,g4] ~@4 [c4,e4,g4]@6 ~@5 [g4,c5]@5 ~ [c2,c3,c4,g4]@5 ~@6 [c4,f4] ~@4 [c4,f4,a4]@6 ~@5 [c4,f4,a4]@2 ~, ~@5 g4@9 ~@3 c4@8 ~@37 c3@11 ~@6 c3@7 ~@34, ~@11 [c2,c3]@10 ~@7 [d1,d2]@17 [a1,a2]@11 [d2,f4,a4]@6 c2@15 ~@2 c2@9 ~@7 [f1,f2]@15 ~@2 [f1,f2]@8, ~@11 e4@8 ~@49 e4@2 ~@14 e4@11 ~@6 a4@2 ~@17]/5", // C# Dm D C5 C C5 F5 F …
  W: "[~@3 [f1,f2,c4,f4,a4]@6 ~@5 [c4,e4,g4]@2 ~@4 [c4,e4,g4]@5 ~@6 [c4,e4,g4]@2 ~@3 [c2,c3,c4,e4,g4]@6 ~@5 [d4,g4,a#4]@3 ~@3 [d4,g4,a#4]@5 ~@6 [g4,a#4] ~@4 [g2,g3,d4,g4,a#4]@5 ~@6 [c4,f4,a4]@2 ~@4 [c4,f4,a4]@5 ~@6 [c4,f4,a4]@2 ~@3 [f2,f3,c4,f4,a4]@5 ~@7 [c4,e4,g4] ~@4 [c4,e4,g4]@6 ~@5 c5@5 ~ g4@5 ~@6 [c4,e4,g4] ~@4 [c4,g4]@6 [c2,c3]@5 [c4,e4,g4]@5, ~@9 [c2,c3]@16 [c2,c3]@11 ~@6 [g1,g2]@16 [g2,g3]@10 ~@7 [f2,f3]@15 ~ [f2,f3]@8 ~@9 [c2,c3]@12 ~@5 [c2,c3]@7 ~@4 c3@2 ~@30, ~@64 d4@2 ~@64 [c4,e4]@13 ~@9 e4@9 ~@7, ~@136 c2 ~@4 [c2,c3]@13 ~@14]/7", // F C Gm F C C5 C G …
  X: "[~ [c#2,c#3]@5 ~@6 [d4,f4,a4] ~@5 d4@5 ~@6 [d4,f4,a4]@2 ~@3 [d2,d3,d4,f4,a4]@6 ~@5 [c4,g4] ~@5 [c4,e4,g4]@5 c3@6 [g4,c5]@5 ~ [c4,g4]@4, ~@6 [d1,d2]@16 ~ [a1,a2]@11 ~@6 c2@15 ~ c2@9 ~@2 [c2,c3]@5, ~@17 [f4,a4]@6 ~@17 c3@11 ~@21, ~@45 e4@2 ~@15 e4@10]/3", // C# Dm C5 C C5 D A C …
  Y: "[~@6 [c4,f4] ~@5 [c4,f4,a4]@5 ~@6 [c4,f4,a4]@2 ~@3 [f1,f2,c4,f4,a4]@6 ~@6 [c4,e4,g4]@2 ~@3 [c4,e4,g4]@6 ~@5 [c4,e4,g4]@2 ~@4 [c2,c3,c4,e4,g4]@5 ~@6 [d4,g4,a#4]@3 ~@2 [d4,g4,a#4]@6 ~@5 [g4,a#4] ~@5 [g2,g3,d4,g4,a#4]@5 ~@6 [c4,f4,a4]@2 ~@3 [c4,f4,a4]@6 ~@6 [c4,f4]@2 ~@3 [f2,f3,c4,f4,a4]@5 ~@6 [c4,e4,g4] ~@4, ~ [f1,f2]@15 ~ f1@10 ~@40 [g1,g2]@17 ~@5 d4@2 ~@31 a4@2 ~@20, ~@6 a4@2 ~@9 f2@8 ~@9 [c2,c3]@16 ~ [c2,c3]@11 ~@22 [g2,g3]@10 ~@6 [f2,f3]@15 ~@2 [f2,f3]@8 ~@9 [c2,c3]@10]/6", // F5 F C Gm F F5 F C …
  Z: "~ [c4,e4,g4]@6 ~@6 c5@6 g4@5, ~@7 [c2,c3]@8 ~@4 c3@2 ~@3, ~@13 [c4,e4]@11, ~@19 c2 ~@4", // C
  AA: "[~@7 [c4,e4,g4] ~@26 e4@7 ~@25 d5@6, ~ [c2,c3]@15 ~@4 [c2,c3,c5]@21 ~@7 a3@24, ~@14 e4@10 ~@3 g4@14 f4@12 d4@19, ~@14 [c4,g4]@8 ~@19 d3@31, ~@59 f4@13]/3", // C C5
  AB: "[a4@6 ~@32 d4@6 ~@30 f4@6 ~@31 g4@5 g4@5 ~ c5@5 g4@6 [c2,c3,e4]@8 ~@3, ~@6 a#2@26 a#4@12 a4@31 ~@6 g4@12 e4@6 g4@6 e4@10 ~ e5@8 ~@20, ~@6 f4@13 a#3@25 c5@12 f3@24 ~ c4@14 ~@4 c5@19 ~@26, ~@7 a#4@18 [f4,d5]@18 ~ f4@18 c4@7 c5@12 e4@6 g3@36 ~@21, ~@13 f3@31 f3@6 c3@30 ~ c3@18 c3@17 [c3,e4]@17 ~@11]/6", // C Dm C
  AC: "[[c#2,c#3]@5 ~@6 [d4,f4,a4] ~@4 [d4,f4,a4]@5 ~@6 [d4,f4,a4]@2 ~@3 [d2,d3,d4,f4,a4]@5 ~@6 [c4,g4] ~@4 [c4,e4,g4]@6 ~@5 [g4,c5]@5 ~ [c4,g4]@5 ~@5 [c4,f4] ~@4 [c4,f4,a4]@6 ~@5 [c4,f4,a4]@2 ~@3, ~@5 [d1,d2]@16 [a1,a2]@11 ~@5 c2@15 ~@2 c2@9 ~ [c2,c3]@5 ~ [f1,f2]@14 ~@2 f1@10, ~@38 c3@11 ~@5 c3@7 ~@25 f2@8 ~@2, ~@43 e4@2 ~@14 e4@11 ~@5 a4@2 ~@19]/4", // C# Dm C5 C C5 F5 F D …
  AD: "[~ [f1,f2,c4,f4,a4]@5 ~@6 [c4,e4,g4]@2 ~@3 [c4,e4,g4]@5 ~@6 [c4,e4,g4]@2 ~@3 [c2,c3,c4,e4,g4]@6 ~@5 [d4,g4,a#4]@3 ~@3 [d4,g4,a#4]@5 ~@5 [g4,a#4] ~@5 [g2,g3,d4,g4,a#4]@5 ~@6 [c4,f4,a4]@2 ~@3 [c4,f4,a4]@5 ~@6 [c4,f4,a4]@2 ~, ~@6 [c2,c3]@16 [c2,c3]@10 ~@7 [g1,g2]@16 [g2,g3]@10 ~@6 [f2,f3]@15 ~ [f2,f3]@8 ~, ~@30 d4 ~@17]/4", // F C Gm F C G F
  AE: "~@2 [f2,f3,c4,f4,a4]@5 ~@6 [c4,e4,g4] ~@5 [c4,e4,g4]@5, ~@8 [c2,c3]@11 ~@5", // F C
  AF: "[~@5 c5@5 ~ g4@5 ~@6 [c4,e4,g4] ~@4 g4@6 [c2,c3]@5 [c4,e4,g4]@6 [c#2,c#3]@4, [c2,c3]@7 ~@4 c3@2 ~@35, ~@5 [c4,e4]@13 ~@9 [c4,e4]@8 ~@13, ~@11 c2 ~@4 [c2,c3]@13 ~@19]/2", // C C# C
  AG: "[~@6 f4 [d4,a4] ~@4 [d4,f4,a4]@5 ~@6 [d4,f4,a4]@2 ~@4 [d3,d4]@5 ~@5 [c4,g4] ~@5 [c4,e4,g4]@5 c3@6 [g4,c5]@5 ~ [c4,g4]@5 ~@5 [c4,f4] ~@5 [c4,f4,a4]@5 ~@6 [c4,f4,a4]@2 ~@3 [f1,f2,c4,f4,a4]@5 ~@6 [c4,e4,g4]@2 ~@4 [c4,e4,g4]@5 ~@6 [c4,e4,g4]@2 ~@3 [c2,c3,c4,e4,g4]@6 ~@5 [d4,g4,a#4]@3 ~@3 [d4,g4]@5 ~@5 [g4,a#4] ~@5 [g2,g3,d4,g4,a#4]@5 ~@6 [c4,f4,a4]@2 ~@3 [c4,f4,a4]@5 ~@6 [c4,f4,a4]@2 ~@3, ~ [d1,d2]@16 [a1,a2]@11 [d2,f4,a4]@6 c2@15 ~ c2@9 ~@2 [c2,c3]@5 ~ [f1,f2]@15 ~ f1@10 ~@40 [g1,g2]@16 ~@43, ~@34 c3@11 ~@38 f2@8 ~@9 [c2,c3]@16 [c2,c3]@10 ~@23 [g2,g3]@10 ~@6 [f2,f3]@15 ~ [f2,f3]@8 ~@3, ~@39 e4@2 ~@15 e4@11 ~@5 a4@2 ~@69 a#4@6 ~@5 d4@2 ~@36]/8", // D5 Dm D C5 C C5 F5 F …
  AH: "[[f2,f3,c4,f4,a4]@5 ~@6 [c4,e4,g4] ~@5 [c4,e4,g4]@5 [c2,c3]@6 c5@5 g4@5 ~@6 [c4,e4,g4] ~@4 g4@6 [c2,c3]@5 [c4,e4,g4]@5 [c#2,c#3]@5 ~@6 [d4,f4,a4] ~@5 [d4,f4,a4]@5 ~@5 [d4,f4,a4]@2 ~@4 [d2,d3,d4,f4,a4]@5 ~@5 [c4,g4] ~@5 [c4,e4,g4]@5 c3@6 [g4,c5]@5 [c2,c3,c4,g4]@5 ~@6 [c4,f4] ~@4 [c4,f4,a4]@5 f2@6 [c4,f4,a4]@2 ~@3 [f1,f2,c4,f4,a4]@5 ~, ~@6 [c2,c3]@12 ~@10 [c4,e4]@12 ~@9 [c4,e4]@8 ~@51 e4@2 ~@15 e4@11 ~@5 a4@2 ~@25, ~@33 c3@2 ~@68 c3@11 ~@54, ~@33 c2 ~@5 [c2,c3]@12 ~@20 [d1,d2]@16 [a1,a2]@11 ~@5 c2@15 ~ c2@9 ~@7 [f1,f2]@14 ~@2 f1@9 ~@8]/7", // F C C# Dm C5 C C5 F5 …
  AI: "[~@5 [c4,e4,g4]@2 ~@4 [c4,g4]@5 ~@5 [c4,e4,g4]@2 ~@4 [c2,c3,c4,e4,g4]@5 ~@5 [d4,g4,a#4]@3 ~@3 [d4,g4,a#4]@5, [c2,c3]@8 [c2,c3]@5 ~@3 [g1,g2]@8, ~@5 e4@3 ~@16]/2", // C C5 C Gm C G
  AJ: "[~@5 a#4 g4 ~@4 [g2,g3,d4,g4,a#4]@5 ~@6 [c4,f4,a4]@2 ~@3 [c4,f4,a4]@5 ~@6 [c4,f4,a4]@2 ~@3 [f2,f3,c4,f4,a4]@5, [g2,g3]@10 ~@6 [f2,f3]@15 ~ [f2,f3]@8 ~@8, ~@5 d4@2 ~@41]/2", // Gm F G F
  AK: "[~@6 [c4,e4,g4] ~@5 [c4,e4,g4]@5 [c2,c3]@6 c5@6 g4@6 ~@5 [c4,e4,g4] ~@5 [c4,e4,g4]@2, ~ [c2,c3]@12 ~@10 [c4,e4]@13 ~@12, ~@29 c3@2 ~@17, ~@29 c2 ~@5 [c2,c3]@13]/2", // C
  AL: "[~@17 e4@5 ~@34 a4@6 ~@36 d4@7 ~@32 c5@7, ~@4 [c2,c3,c5]@18 d4@8 a3@19 d5@13 ~ a#4@20 d5 f4@21 ~ f4@22 c4@16, ~@11 g4@12 d3@39 ~ a#2@42 ~ c5@15 f3@23, ~@23 f4@13 d4@26 ~@7 f3@22 a#4@14 a4@39, ~@24 a4@11 ~@8 f4@19 f4@14 a#3@29 f3@8 c3@31]/6", // C
  AM: "[~@2 f4@10 c3@10 ~@44 g5@11 ~@3 c6@71 ~@17, ~@12 g4@28 ~@4 g4@35 g5@72 ~@17, ~@23 c3@128 ~@17, ~@33 e4@45 [c5,e5]@74 ~@16, ~@54 e5@23 c4@75 ~@16]/7", // C
})).s("gm_piano").gain(0.5).pan(0.6)

// other · accordion
const accordion = note("<~@28 A@2 B@3 C D@2 ~@82 E F@2 G H@4 I@3 J@3 K L@2 M N O@3 P@4 Q@2 R S@2 ~@14>".pickRestart({
  A: "[~@12 g4@17 ~ d#5@18]/2", B: "[g#4@11 a#4 ~@6 g4@12 d5@4 ~@2 c5@18 c5@9 ~@6 c5@3]/3", C: "d5@18 ~ d5@5",
  D: "[d#5 f5 g5@6]/2", E: "~@11 [d3,d4]@2 [e3,e4]@3 [f3,f4]@3 [g3,g4]@2 [a3,a4]@2 ~",
  F: "[[a2,a3]@3 [d3,d4]@2 [e3,e4]@3 [f3,f4]@2 ~ [a3,a4]@3 [g3,g4]@21 [c4,c5]@5 [a3,a4]@5 ~ [c3,c4]@2]/2", // A D E F A G C A …
  G: "~ [c3,c4]@2 [f3,f4]@3 [g3,g4]@3 [a3,a4]@2 [a#3,a#4]@2 ~ [c4,c5]@3 c3@2 [f3,f4]@3 [g3,g4]@2, ~@17 c4 ~@6", // C F G A A# C F G
  H: "[~ [a3,a4]@2 [a#3,a#4]@2 ~ [c4,c5]@22 [g3,g4]@5 [a3,a4]@5 ~ [d3,d4]@2 [d3,d4]@2 ~ [g3,g4]@3 [a3,a4]@3 [a#3,a#4]@2 [c4,c5]@2 ~ [d4,d5]@3 d3@2 [g3,g4]@3 [a3,a4]@3 [a#3,a#4]@3 [d4,d5]@2 [c4,c5]@3 [c3,c4]@2 ~ [f3,f4]@2 [g3,g4]@3 [a3,a4]@3 [a#3,a#4]@2 [c4,c5]@3 c3@3 [f3,f4]@3, ~@5 [b3,b4]@2 ~@51 d4 ~@31 c4 ~@5]/4", // A A# C G A D G A …
  I: "[[g3,g4]@2 [a3,a4]@3 ~ [b3,b4] ~ [c4,c5]@61 ~@3, ~@5 [a#3,a#4]@2 ~@65]/3", // G A B C A#
  J: "[~@7 d3@2 e3@3 f3@3 g3@2 ~ a3@2 a2@3 d3@3 e3@3 f3@2 a3@3 g3@22 c4@5 a3@6 c3@3 c3@2]/3",
  K: "f3@3 g3@3 a3@2 ~ a#3@2 c4@3 c3@3 f3@3 g3@2 a3@2",
  L: "[~@2 b3@2 c4@22 g3@5 a3@5 ~ d3@2 d3@2 ~ g3@3 a3@3, ~ a#3@2 ~@45]/2",
  M: "a#3@2 c4@2 ~ d4@3 d3@2 g3@3 a3@3 a#3@2 d4@3 c4@3", N: "c3@2 ~ f3@2 g3@3 a3@3 a#3@3 c4@2 c3@3 f3@3 g3@2",
  O: "[a3@3 ~ b3@2 c4@61 ~@5, ~@3 a#3@2 ~@67]/3",
  P: "[~@4 d3@3 e3@3 f3@2 g3@2 ~ a3@2 ~ a2@2 d3@3 e3@3 f3@2 a3@3 g3@21 ~ c4@5 a3@5 c3@3 c3@2 ~ f3@2 g3@3 a3@2 ~ a#3@2 ~ c4@2 c3@3 f3@3 g3@2 a3@2 ~@2 b3@2, ~@93 a#3@2 ~]/4",
  Q: "[c4@21 g3@5 ~ a3@5 d3@3 d3@2 g3@3 a3@3 a#3@2 c4@2 ~]/2", R: "d4@3 d3@2 ~ g3@2 a3@3 a#3@3 d4@2 c4@3 c3@2 ~ f3@2",
  S: "[g3@3 a3@3 a#3@2 c4@3 c3@3 f3@3 g3@2 a3@3 ~ a3@2 g3@17 ~@6, ~@11 a#3 ~@12]/2",
})).s("gm_accordion").gain(0.34).pan(0.7)

// other · accordion · soft notes
const accordion_soft = note("<~@30 A B C ~@3 D@3 E@3 ~@121>".pickRestart({
  A: "~@12 g#4 a#4 g#4 a#4 g#4 [g#4,a#4] ~@6", B: "~@11 [c5,d5] ~@12", C: "~@6 d5 ~@9 g5@2 d#5@3 ~@3",
  D: "[f5@12 g#4@6 f5@18 d#5@11 g4@6 ~ d#5@16 d5 d#5]/3", E: "[d5@35 ~]/3",
})).s("gm_accordion").gain(0.19).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@41 A@2 B@7 C@3 D@7 E@4 F@7 G@3 H@3 I@8 J@3 K@7 L@7 M@4 N@6 O@6 P@4 Q@7 R@8 S@4 T@7 U@6 V@8 ~
>`.pickRestart({
  A: "[~@11 [d#4,g4,c5]@13]/2", // Cm
  B: "[~@8 [f4,a#4,d5]@33 ~@56 f5@6 g5@6 [c5,f5,g#5]@32 ~ [a#4,g5]@26, ~@41 a#4@17 a#5@48 ~@35 d#5@27, ~@42 [g4,d#5]@33 [f4,d5]@34 ~@59]/7", // A# Fm D# Cm Dm
  C: "[~@7 a#4@34 a#5@28 ~@3, ~@7 d5@65, ~@7 f5@63 ~@2]/3",
  D: "[~@2 [g4,c5,d#5]@33 ~ [d5,f5]@33 a#4@16 ~@45 g5@6 [c5,f5,g#5]@32, ~@35 a#4@33 ~ [g4,d#5]@33 [f4,d5]@34 ~@32, ~@85 a#5@48 ~@35, ~@125 f5@7 ~@36]/7", // Cm Dm Fm Cm Dm
  E: "[~ [a#4,d#5,g5]@33 ~@34 a#5@28, ~@17 d5@31, ~@17 a#4@17 ~@14, ~@35 f5@61]/4", // D#
  F: "[~@8 c3@36 ~@18 c6@18 ~ a#2@18 g2@17 [a#2,f4,d5]@52, ~@2 d#5@27 ~@13, ~@4 c5@35 ~ a#5@44, ~@8 g4@34 ~@2 g#2@37 ~@87, ~@44 g#4@34 ~@2 g4@35 ~@53]/7", // A#
  G: "[~@3 [e4,c5]@19 ~@2, ~@7 c6@58 ~@7, ~@8 c3@57 ~@7]/3", H: "[~ [d4,f4,a4]@2 [d4,g4,a#4]]/3",
  I: "[[e4,a4,c5]@3 [d4,f4,a4]@6 [e4,g4]@6 [c4,f4,a4]@6 [d4,g4,a#4]@6 [c4,f4,a4]@5, ~@27 c4@17 ~@52]/8", // Am Dm Em F Gm F
  J: "[~ [c4,e4,g4]@11]/3", // C
  K: "[~@4 [f4,a4,d5]@34 [g4,c5,e5]@33 c5@17 ~@44 a5@6 [d5,g5,a#5]@30, ~@71 [a4,f5]@33 [g4,e5]@34 ~@30, ~@88 c6@47 ~@33, ~@127 g5@7 ~@34]/7", // Dm C Gm Dm C
  L: "[~ a5@11 c5@11 c6@9 ~@2 [f4,a4,d5]@11 [g4,c5,e5]@11, ~@2 [c5,f5]@33 ~ e5@65 ~@67, ~@18 g5@31 ~@35]/7", // Dm C F5
  M: "[~ c5@16 ~@44 a5@6 [d5,g5,a#5]@29, ~ [a4,f5]@33 [g4,e5]@34 ~@28, ~@17 c6@47 ~@32, ~@56 g5@7 ~@33]/4", // Gm Dm C
  N: "[~@4 [c5,f5,a5]@33 [c5,e5]@73 ~@3 [d3,d4,f5]@31, ~@37 g5@70 ~@37]/6", // F C Dm
  O: "[~@25 d6@18 ~@37 g3@58 ~ [e3,c5]@5, c4@7 [a#3,d4]@36 a3@36 ~@65, ~@6 a#2@38 [c3,c6]@95 ~@5]/6", // C A# C
  P: "[[d3,c#5]@5 [d4,f4,a4]@32 [c4,e4,g4]@32 ~ [c4,f4,a4]@26]/4", // Dmaj7 Dm C F
  Q: "[~@6 [c4,e4,g4]@32 [d4,g4,a#4]@33 [c4,f4,a4]@33 [c4,e4,g4]@64]/7", // C Gm F C
  R: "[~ [f4,a4,d5]@33 [g4,c5,e5]@33 c5@16 ~@44 a5@6 [d5,g5,a#5]@32 [c5,f5,a5]@27, ~@67 [a4,f5]@33 [g4,e5]@33 ~@59, ~@83 c6@47 ~@62, ~@122 g5@7 ~@63]/8", // Dm C Gm F Dm C
  S: "[~@38 c6@27 ~@6 [f4,a4,d5]@25, ~@5 e5@64 ~@27, ~@5 c5@33 ~@58, ~@6 g5@61 ~@29]/4", // Dm
  T: "[~@7 [g4,c5,e5]@32 c5@16 ~@43 a5@6 [d5,g5,a#5]@32 [c5,f5,a5]@32, ~@39 [a4,f5]@32 [g4,e5]@33 ~@64, ~@55 c6@46 ~@67, ~@93 g5@7 ~@68]/7", // C Gm F Dm C
  U: "[~ g5@66 ~@4 d4@32 c4@8 ~@20 d6@13, e5@69 ~@2 f5@60 ~@13, c5@67 ~@4 d3@39 ~ [a#2,a#3]@33, ~@7 d4@2]/6", // A#
  V: "[~@10 g3@19 ~@3, ~@9 [c5,c6]@166 ~@17, ~@9 a3@50 ~@133, ~@10 c3@165 ~@17]/8", // C
})).s("gm_string_ensemble_2").gain(0.35).pan(0.4)

// other · violin
const violin = note("<~@78 A B@4 C@3 D@3 ~@74>".pickRestart({
  A: "~@7 f5@3 e5@3 d5@6 a4@5", B: "[d5@7 e5@23 g5@12 ~ a5@11 c5@6 a5@18 ~ a#5@7 ~@10]/4",
  C: "[~@19 f5@11 a4@7 f5@14 ~@21]/3", D: "[~@18 c5@16 ~ c5@12 c#5@6 d5@16 ~@3]/3",
})).s("gm_violin").gain(0.22).pan(0.7)

// other · oboe
const oboe = note(`<
  ~@28 A@2 B@3 C@2 D E@3 F@3 ~@3 G@8 H@2 I J@4 K@4 L@3 M@7 ~@14 N@2 O P@2 Q@8 R@3 S@7 ~@7 T U@2 V W@3 X@4 ~@11 Y@6 Z
  AA@4 ~@12
>`.pickRestart({
  A: "[~@12 g4@17 ~ d#5@18]/2", B: "[g#4@18 g4@12 ~ d5@6 c5@16 ~ c5@6 d5@6 d#5@6]/3", C: "[~ d5@17 f5@18 g5@11 ~]/2",
  D: "a#4 g5@3", E: "[~ f5@10 g#4@6 ~ f5@18 d#5@11 g4@6 ~ d#5@18]/3", F: "[d5@35 ~]/3",
  G: "[~@10 a#5@39 f5@6 g5@6 g#5@33 g5@33 f5@63 ~@2]/8",
  H: "[~@8 c5@2 d5@3 d#5@3 ~@3 g5@19 ~@3 a#4@2 ~ c5@2 d5@2, ~@16 f5@5 ~@27]/2", I: "~ d#5@3 f5@19 ~",
  J: "[~@2 d#5@3 f5@3 g5@3 g#5@3 a#5@16 ~@6 a#4@2 c5@3 d5@3 d#5@3 f5@11 g5@6 g#5@32]/4", K: "[~@2 g5@33 f5@61]/4",
  L: "[~@8 d#5@54 ~ c6@9]/3", M: "[~@9 a#5@97 c6@56 ~@6]/7",
  N: "[~@10 d5@3 e5@2 f5@3 ~@3 a5@19 ~@3 c5@2 ~ d5@2, ~@18 g5@5 ~@25]/2", O: "~ e5@2 f5@3 g5@18",
  P: "[~@4 f5@3 g5@3 a5@3 a#5@3 c6@16 ~@6 c5@2 d5@3 e5@3 f5@2]/2",
  Q: "[~ g5@11 a5@6 a#5@33 a5@33 g5@66 ~@6 d5@3 e5@2 f5@3 ~@3 a5@19 ~@3 c5@2 d5, ~@164 g5@5 ~@23]/8",
  R: "[~@2 e5@2 ~ f5@3 g5@19 ~@3 f5@3 g5@2 a5@3 a#5@3 c6@16 ~@6 c5@2 ~ d5@3 e5@3]/3",
  S: "[f5@3 g5@11 a5@6 a#5@33 a5@33 g5@68 ~@14]/7", T: "~@11 d5@2 e5@3 f5@3 g5@2 a5@2 ~",
  U: "[a4@3 d5@2 e5@3 f5@2 ~ a5@3 g5@21 c6@5 a5@5 ~ c5@2]/2", V: "~ c5@2 f5@3 g5@2 a5@2 ~ a#5@2 ~ c6@2 c5@3 f5@3 g5@2",
  W: "[~ a5@2 a#5@2 ~ c6@22 g5@5 a5@5 d5@3 ~ d5@2 g5@3 a5@3 a#5@2 c6@2 ~ d6@3 d5@2 g5@3 a5@3 a#5@2 d6@3 ~, ~@5 b5@2 ~@65]/3",
  X: "[c6@2 c5@2 ~ f5@2 g5@3 a5@3 a#5@2 c6@3 c5@3 f5@2 g5@3 a5@3 ~@2 c6@61 ~@4, ~@29 a#5@2 ~@65, ~@15 b5 ~@32]/4",
  Y: "[~@4 d5@3 e5@3 f5@2 g5@2 ~ a5@2 ~ a4@2 d5@3 e5@3 f5@2 a5@3 g5@21 ~ c6@5 a5@5 c5@3 c5@2 ~ f5@2 g5@3 a5@2 ~ a#5@2 c6@3 c5@3 f5@2 g5@3 a5@2 ~@3 c6@22 g5@5 a5@5 ~ d5@3 d5@2 ~ g5@2 a5@3 a#5@2 c6@2 ~, ~@93 a#5@2 ~@49, ~@47 b5 ~@24]/6",
  Z: "d6@3 d5@2 g5@3 a5@3 a#5@3 d6@3 c6@2 c5@2 ~ f5@2",
  AA: "[g5@3 a5@3 a#5@2 c6@3 c5@3 f5@2 g5@3 a5@3 ~ a5@2 g5@66 ~@5, ~@11 a#5 ~@36]/4",
})).s("gm_oboe").gain(0.25).pan(0.3)

// bass · tuba
const bass_2 = note(`<
  ~@53 A B@3 C@3 D E@2 ~@25 F G@3 H@3 I J@2 K L@3 M@8 ~@8 N@4 O@6 P Q@4 R@6 S@5 T@6 ~@13
>`.pickRestart({
  A: "~ c2@9 ~@2", B: "[~@12 a#1@19 ~@14 d#2@21 ~@6]/3", C: "[~@7 a#1@21 ~@12 f2@21 ~@11]/3", D: "~ d#2@22 ~",
  E: "[~@11 a#1@21 ~@16]/2", F: "~@2 d2@9 ~", G: "[~@14 c2@19 ~@14 f2@21 ~@4]/3", H: "[~@8 c2@21 ~@12 g2@21 ~@10]/3",
  I: "~ f2@7", J: "[~@4 c2@7 ~@5]/2", K: "~@7 c2@5", L: "[~ c#2@5 d2@33 c2@33]/3",
  M: "[f2@34 c2@33 g2@33 f2@33 ~ c2@38 ~@20]/8", N: "[~@5 d2@32 c2@32 f2@27]/4",
  O: "[~@6 c2@32 g2@33 f2@32 ~ c2@32 ~@8]/6", P: "~@9 c2@11 c#2@4", Q: "[~ d2@33 c2@33 f2@29]/4",
  R: "[~@4 c2@32 g2@33 f2@33 c2@32 ~@10]/6", S: "[~@7 c2@11 c#2@5 d2@32 c2@32 f2@33]/5",
  T: "[c2@32 g2@32 f2@33 c2@36 ~@11]/6",
})).s("gm_tuba").gain(0.46).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@53 A B C ~ D E ~ F G ~@26 H I J ~ K L ~ M B C ~ N E ~ F O P ~ H I ~@10 Q I R ~ S T J ~ U E V F O P ~ H W C ~ S T X ~
  D T ~ Y U E ~ F ~@14
>`.pickRestart({
  A: "~ x ~@10", B: "~ x", C: "~@7 x", D: "~@7 x ~@16", E: "~@2 x", F: "~ x ~@22", G: "~@11 x ~@12", H: "~ x ~@4",
  I: "~@7 x ~@4", J: "~@23 x", K: "~@3 x ~@4", L: "~@3 x", M: "~ x ~@6", N: "~ x ~@4 x ~@17", O: "~@5 x ~@6",
  P: "~@19 x ~@4", Q: "~@5 x ~@18", R: "~@11 x", S: "~ x ~@2", T: "~@5 x ~@2", U: "~ x ~", V: "~@5 x", W: "~@13 x ~@10",
  X: "~@18 x ~@4 x", Y: "x",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct(`<
  ~@53 A ~ B C D ~ E F ~ B ~@25 G ~ H I ~ J K A ~ L ~ D ~ M N ~ O P G ~ H ~@8 Q R ~ S C T ~ H U ~ V ~ F ~ W X Y ~ L C T
  ~@2 U D ~ H I ~ V M F ~@14
>`.pickRestart({
  A: "~@19 x ~@4", B: "~ x ~@4", C: "~@7 x ~@4", D: "~@23 x", E: "~@3 x ~@4", F: "~@3 x", G: "~@7 x", H: "~@7 x ~@16",
  I: "~@2 x", J: "~ x ~@22", K: "~@5 x ~@6", L: "~@5 x ~@18", M: "~ x ~", N: "~@17 x ~@6", O: "~ x ~@6", P: "~ x",
  Q: "~@18 x!2 ~ x ~ x", R: "x!2 ~ x!2 ~@16 x ~@2", S: "~ x ~@2", T: "~@11 x", U: "~@5 x ~@2", V: "x", W: "~ x ~@10",
  X: "~@11 x ~@12", Y: "~@5 x",
})).gain(0.39)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@117 [~@8 x!10 ~ x!2 ~@3] ~@45>").gain(0.16)

stack(
  bass, bass_soft, piano, accordion, accordion_soft, string_ensemble_2, violin, oboe, bass_2, kick, crash, crash_soft
)

More by Ruggeri