Strudelify
Margherita cover art

1976 · Concerto Per Margherita

Margherita

Cocciante

KeyC minorTempo115 bpm
0:00/0:00
// Margherita — Cocciante
// 115 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 126 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P J Q R S T U@2 H V J K L M N O P J W X S T Y Z H J AA J K L M N O P J Q R M T Y Z AB AC
  AD AE AF AG AH AI AJ AK AD AE AF AG AL AI AM AD AN AF AO AP AQ AR AS AC J K L M N O P J@2 K L M N O P J K L M N O P AT
  J@3 K L M N O AU@2 AV K L M N O AW@5
>`.pickRestart({
  A: "~@6 eb4 ~, [c2,c3]@11 ~, ~@2 g3@5 ~, ~@4 c4@3 ~", B: "~@3 f4, [f2,f3,ab4], ~@6 c4@17 ~, ~@12 g4@11 ~",
  C: "~@3 bb4, [bb1,bb2,c4], ~ f3@3, ~ d4", D: "~@3 eb4, [eb2,eb3], g4@11 ~, ~@3 bb3@8 ~, ~@6 f4@5 ~",
  E: "~@3 g3, [g2,d4], ~ g3@2 ~, ~ d3", F: "~@3 c4, [ab1,ab2], c4@3 ~, ~ eb3@3, ~@12 bb3@11 ~",
  G: "~@3 d4, [bb1,bb2], d4@3 ~, ~@3 f3@8 ~, ~@6 c4@5 ~", H: "g3 ~@2 d4, [b1,b2], d4@3 ~, b3@12 b3@11 ~, ~@6 g3@17 ~",
  I: "~@3 d4, g2, g4@11 ~, ~@3 g3@8 ~, ~@6 b3@5 ~", J: "~@3 eb4, [c2,c3], eb4@3 ~, ~@6 g3@17 ~, ~@12 c4@11 ~",
  K: "~@3 f4, [f2,ab4], ~@6 c4@17 ~, ~@12 g4@11 ~", L: "~@3 d4, bb2, d4@3 ~, ~ f3@3, ~@12 c4@11 ~",
  M: "~@3 eb4, [eb2,g4], ~@6 bb3@17 ~, ~@12 f4@11 ~", N: "~@3 d4, g2, d4@3 ~, ~ d3@3, ~ g3",
  O: "~@18 bb3@5 ~, [ab2,c4], ~ eb3@3, ~@12 ab3@11 ~", P: "~@3 d4, [bb2,f4]@23 ~, ~ f3@3, ~@12 bb3@11 ~",
  Q: "~@3 ab4, [f2,f3]@23 ~, ab4@3 ~, ~ c4@3, ~@12 f4@11 ~", R: "~@3 f4, bb2, f4@3 ~, ~ bb3@3, ~@12 d4@11 ~",
  S: "~@9 eb4@2 ~, eb2, g4@11 ~, ~@3 bb3@8 ~, ~@6 f4@5 ~", T: "~@3 b3, [g2,d4], ~ d3@3, ~ g3",
  U: "[~@18 eb4@6 ~@18 d4@5 ~, ab2@36 bb3@11 ~, eb4@18 ~@6 d4@6 f3@17 ~, ~@3 ab3@20 ~, ~@12 c4@11 ~ bb2@23 ~]/2",
  V: "~@18 b3@5 ~, [g2,g4]@23 ~, ~@6 d4@17 ~, ~@12 g3@11 ~", W: "~@3 ab4, [f2,f3]@23 ~, ab4@3 ~, ~ c4@3, ~@4 f4@3 ~",
  X: "~@3 f4, bb2, f4@3 ~, ~ bb3@3, ~@4 d4@3 ~", Y: "~@3 eb4, ab2, eb4@3 ~, ~ ab3@3, ~@12 c4@11 ~",
  Z: "~@18 d4@5 ~, bb2@23 ~, d4@3 ~, ~@6 f3@17 ~, ~@12 bb3@11 ~", AA: "~@3 g3, g4, ~ eb4@3, ~ c4",
  AB: "g3@6 ~@12 d4@5 ~, b2@23 ~, d4@3 ~, b3@12 b3@11 ~, ~@6 g3@17 ~", AC: "~@3 g3, [g2,g4], ~@6 d4@17 ~, ~@12 b3@11 ~",
  AD: "~@18 g5@5 ~, [c2,c3,eb5]@23 ~, ~@6 c5@17 ~, ~@12 g4@11 ~", // Cm
  AE: "~@9 ab4@2 ~, [f2,f3,ab5]@11 ~, ~@3 f5@8 ~, ~@6 c5@5 ~", // Fm
  AF: "~@3 f5, [bb2,bb3,f4]@23 ~, d5@12 d5@11 ~, ~@6 bb4@17 ~", AG: "~@18 eb5@5 ~, [eb3,g5], ~@6 bb3@17 ~, ~ f5",
  AH: "~@18 [b4,d5]@5 ~, g2@23 ~, [b4,d5]@3 ~, ~@6 g3@17 ~, ~@6 g4@5 ~", // Bm
  AI: "ab2@3 ~@6 [ab4,c5,eb5]@2 ~, [ab4,c5,eb5]@3 ~, ab3@6 ab3@5 ~, ~@3 ab2@8 ~", // Ab
  AJ: "bb2@3 ~@6 [bb4,d5,f5]@2 ~, [bb4,d5,f5]@3 ~, bb3@12 bb3@11 ~, ~@6 bb2@17 ~", // Bb
  AK: "~@2 g4 [eb2,eb3,g4,bb4,eb5], [eb2,bb4,eb5]@3 ~, ~ eb3@2 ~", AL: "~@3 [b4,d5], g2, [b4,d5]@3 ~, ~ g3@3, ~ g4",
  AM: "bb2@6 ~@12 [bb4,d5,f5]@5 ~, [bb4,d5,f5]@3 ~, bb3@12 bb3@11 ~, ~@6 bb2@17 ~", // Bb
  AN: "~@3 ab4, [f2,f3,ab5], ~ f5@3, ~ c5", AO: "~@3 d5, [eb3,g5], ~ bb3@3, ~ eb5",
  AP: "~@3 b4, [g3,d5], b4@3 ~, ~@6 d4@17 ~, ~@12 g4@11 ~", AQ: "~@18 c5@5 ~, ab3, c5@3 ~, ~@6 eb4@17 ~, ~@12 ab4@11 ~",
  AR: "~@18 d5@5 ~, bb3@23 ~, d5@3 ~, ~@6 f4@17 ~, ~@12 bb4@11 ~",
  AS: "g4 ~@2 d5, b3@23 ~, d5@3 ~, b4@12 b4@11 ~, ~@6 g4@17 ~", AT: "~@3 g4, [b1,b2], d4@6 d4@5 ~, ~@3 g3@8 ~",
  AU: "[~@2 f3@2 ~@2 g3@9 ~, bb2@15 ~, f4@4 [b3,d4]@11 ~]/2", AV: "~@3 eb4, c2@23 ~, c4@12 c4@11 ~, ~@6 g3@17 ~",
  AW: "[~@7 f3@7 ~ g3@7 g3@7 ~@32 c5@39 ~@20, ~ [bb2,f4]@14 [g2,b3,d4]@15 [c2,c3]@48 ~@42, ~@30 eb4@23 eb4@46 ~@21, ~@19 g3@24 ~@17, ~@23 c4@24 ~@13]/5", // Bb5 G C
})).s("gm_piano").gain(0.31).pan(0.4)

// bass · fretless bass · "BASSO"
const bass = note(`<
  A B C D E F C G E A B C D E F C A B C D E F C G E A B C D E F C A B C D E F C G H@2 A B C D E F C A B C D E F C G E A
  B C D E F C D A B C D E F C A B C D E F C E@2 A B C D E F I J A B C D E F C A B C D E F C G K@2 A B C D E F L@2 A B C
  D E F M@4 ~
>`.pickRestart({
  A: "c1", B: "f1", C: "bb1", D: "eb1", E: "g1", F: "ab1", G: "b1", H: "[c1@15 ~]/2", I: "bb1 b1", J: "c1@11 ~",
  K: "[c1@23 ~]/2", L: "[bb1@3 g1@8 ~]/2", M: "[~ bb1@14 b1@15 c1@63 ~@3]/4",
})).s("gm_fretless_bass").gain(0.57)

// chords · epiano1 · "E.PIANO"
const epiano1 = note(`<
  A B C D E F C G E H B C I E J C K L M I E N O P ~ K Q M I R N O S L M I E T M E U ~@41 A B C D E F C ~ A B C D E F C A
  B C D E F C ~@3 A B C D E F C ~ A B C D E F V ~@4
>`.pickRestart({
  A: "[eb4,g4,c5] ~@5", B: "[f4,ab4,c5] ~@5", C: "[f4,bb4,d5] ~@5", D: "[g4,bb4,eb5]@5 ~@19", E: "[g4,b4,d5] ~@5",
  F: "[eb4,ab4,c5] ~@5", G: "[b4,d5,g5] ~@11", H: "[eb4,g4,c5] ~@3", I: "[g4,bb4,eb5] ~@7", J: "[ab4,c5,eb5] ~@7",
  K: "[g4,c5,eb5] ~@5", L: "[f4,ab4,c5] ~@7", M: "[f4,bb4,d5] ~@7", N: "[c5,eb5,ab5] ~@5", O: "[bb4,d5,f5] ~@5",
  P: "[b4,d5,g5] ~@7", Q: "[ab4,c5,f5] ~@5", R: "[g4,b4,d5] ~@7", S: "[g4,c5,eb5] ~@7", T: "[c5,eb5,ab5] ~@7",
  U: "[g4,c5,eb5]", V: "~ [f4,bb4,d5]@5 ~@18",
})).s("gm_epiano1").gain(0.2).pan(0.4)

// chords · epiano1 · "E.PIANO EC"
const epiano1_2 = note(`<
  A B C D E F C G E A B C D E H C I B C D E J K G ~ I L C D E J K I B C D E J C E I ~@41 A B C D E F C ~ A B C D E F C A
  B C D E F C ~@3 A B C D E F M ~ A B C D E F N ~@4
>`.pickRestart({
  A: "~@4 [eb4,g4,c5] ~@3 [eb4,g4,c5] ~@3 [eb4,g4,c5] ~@11", B: "~@4 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~@11",
  C: "~@4 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@11", // Bb
  D: "~@4 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@11", E: "~@4 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@11",
  F: "~@4 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~@3 [eb4,ab4,c5] ~@11", G: "~@4 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@11",
  H: "~@4 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~@11", // Ab
  I: "~@4 [g4,c5,eb5] ~@3 [g4,c5,eb5] ~@3 [g4,c5,eb5] ~@11", // Cm
  J: "~@4 [c5,eb5,ab5] ~@3 [c5,eb5,ab5] ~@3 [c5,eb5,ab5] ~@11", // Ab
  K: "~@4 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@11", L: "~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@11",
  M: "~@4 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@15", N: "~@5 [f4,bb4,d5]@2 ~@3 [f4,bb4,d5]@2 ~@3 [f4,bb4,d5]@2 ~@7",
})).s("gm_epiano1").gain(0.1).pan(1)

// chords · epiano1 · "E.PIANO EC" · soft notes
const epiano1_soft = note(`<
  A B C D E F G H E A B G D E I G J B G D E K L H ~ J M G D E K L J B G D E K G E J ~@41 A B C D E F G ~ A B C D E F G A
  B C D E F G ~@3 A B C D E F ~@2 A B C D E F N ~@4
>`.pickRestart({
  A: "~@16 [eb4,g4,c5] ~@7", B: "~@16 [f4,ab4,c5] ~@7", C: "~@16 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3",
  D: "~@16 [g4,bb4,eb5] ~@7", E: "~@16 [g4,b4,d5] ~@7", F: "~@16 [eb4,ab4,c5] ~@7", G: "~@16 [f4,bb4,d5] ~@7",
  H: "~@16 [b4,d5,g5] ~@7", I: "~@16 [ab4,c5,eb5] ~@7", J: "~@16 [g4,c5,eb5] ~@7", K: "~@16 [c5,eb5,ab5] ~@7",
  L: "~@16 [bb4,d5,f5] ~@7", M: "~@16 [ab4,c5,f5] ~@7", N: "~@10 [f4,bb4,d5] ~",
})).s("gm_epiano1").gain(0.03).pan(1)

// chords · string ensemble 1 · "ARCHI"
const string_ensemble_1 = note(`<
  ~@42 A@3 B@2 C D E@5 F G@3 H@4 I F J@2 K@3 L M N O P Q R@3 S T U@2 V@3 W@2 X Y@2 Z@2 AA AB@2 AC AD P AE AF AG AH AI
  AJ@2 AK@2 AL@4 AM AN AO@2 AP@5 AN AQ@5
>`.pickRestart({
  A: "[[g3,eb4] ~ d4, c4@2 ~, ~ [ab3,f4]@2]/3", B: "[[bb3,eb4] [b3,d4], g4]/2", C: "[ab3,c4,eb4]", D: "[bb3,d4,f4]",
  E: "[[eb4,g4] f4 d4 eb4 [b3,d4], c4@2 bb3@2 ~, ~ ab4@2 g4@2]/5", F: "[c4,eb4,ab4]",
  G: "[[f4,bb4]@12 ~@12 d5@11 ~, d4@71 ~, ~@24 [g4,b4]@47 ~]/3", // Bb5 G
  H: "[[eb4,g4] f4 d4 [eb4,g4], [c4,c5] [bb3,bb4], ~ ab4@2 ~]/4", I: "[b3,d4,g4,b4]",
  J: "[[d4,f4] [eb4,g4], bb4@47 ~]/2", K: "[[c3,eb4,g4] [f3,ab4] [bb3,d4], [c4,c5]@24 bb4@11 ~, ~ f4@2]/3",
  L: "[eb3,eb4,g4,bb4]", M: "~ b3, [g3,d4,g4,b4]", N: "[ab2,c4,eb4,ab4]", O: "[bb2,d4,f4,bb4]", P: "[c3,c4,eb4,g4,c5]",
  Q: "[f3,c4,f4,ab4]", R: "[[bb2,d4,f4] [eb3,eb4] [d3,d4,b4], bb4@2 ~, ~ g4@2]/3", S: "[eb3,eb4,ab4,c5]",
  T: "[f3,f4,bb4,d5]", U: "[g3,d4,g4,b4]/2", V: "[[c3,eb4,g4] [f3,ab4] [d3,bb3,d4,bb4], c4@2 ~, ~ f4@2]/3",
  W: "[[eb3,bb3,eb4] [d3,b3,d4], g4]/2", X: "[c3,c4,eb4,ab4]", Y: "[[f4,bb4] b4 [c3,eb4,c5]@2, [d3,d4] ~, ~ g4@3]/2",
  Z: "[[c3,eb4,g4,c5] [f3,f4,ab4,eb5], c4]/2", AA: "[d3,bb3,d4,f4,d5]", AB: "[[eb3,g3,bb3,eb4] [d3,b3,d4,g4], g5]/2",
  AC: "[eb3,c4,eb4,ab4,ab5]", AD: "[f3,d4,f4,bb4,bb5]", AE: "eb5 ab5, [f3,c4,f4,ab4]",
  AF: "f5@6 bb5@5 ~, [d3,d4,f4,bb4]", AG: "g5 bb5, [eb3,eb4,g4,bb4]", AH: "[b4,b5] [g4,g5], [d3,g3,b3]",
  AI: "[ab4,ab5] [c5,c6], [eb3,c4,eb4]", AJ: "[[f3,f4,bb4,bb5] [b2,g4,b4,b5], d4]/2", AK: "[c3,c4,eb4,g4,c5,c6]/2",
  AL: "[[c3,eb4,g4] [f3,ab4] [d3,d4] [eb3,eb4,g4], c4 bb4, ~ f4@2 ~]/4", AM: "[d3,b3,d4,g4]", AN: "[eb3,c4,eb4,ab4]",
  AO: "[[f3,f4,bb4]@4 [g3,g4,b4]@7 ~@5, d4@11 ~@5]/2", // Bb5 G
  AP: "[[c3,eb4,g4] [f3,ab4] [d3,d4] [eb3,eb4] [d3,b3,d4], c4@2 bb4@2 ~, ~ f4@2 g4@2]/5", // Cm Fm D Eb G
  AQ: "[~ [f3,f4,bb4]@13 [g3,g4,b4]@15 ~ c5@15 [d4,bb4]@53 ~@22, ~ d4@29 [c3,c4,eb4,g4]@69 ~@21]/5", // Bb5 G Gm Cm
})).s("gm_string_ensemble_1").gain(0.24).pan(0.4)

// other · string ensemble 2 · "VIOLONC."
const string_ensemble_2 = note(`<
  ~@9 A B C D E A D A F@2 G@2 H I J K A B C L M N O@4 P@4 Q R@2 S T U V W X Y Z AA AB AC AD AE AF AG ~@33 A B AH AI@3 AJ
  A AK@3 AL AM AJ AN@3 ~@19
>`.pickRestart({
  A: "c4", B: "eb4", C: "d4", D: "bb3", E: "b3", F: "[ab3@23 bb3@24 ~]/2", G: "[eb3@23 d3@25]/2", H: "c3", I: "bb2",
  J: "b2", K: "g2", L: "g4", M: "~ d4@23", N: "ab4", O: "[bb3@23 c4@24 eb4@24 d4@25]/4", P: "[g4@48 ab4@23 bb4@25]/4",
  Q: "~ b4@23", R: "[c5@47 ~]/2", S: "c4 g4", T: "f4 c5", U: "bb4 f4", V: "~ g4@5 bb3@6", W: "b3 g4",
  X: "ab4@11 ~ c4@12", Y: "d4@12 bb4@11 ~", Z: "g4 c5", AA: "ab4 eb5", AB: "d5 bb4", AC: "g5 bb4", AD: "g5 b4",
  AE: "c5@12 ab5@11 ~", AF: "f5 d5", AG: "d5@23 ~", AH: "d4 bb3", AI: "[g4@2 ab4]/3", AJ: "bb4@23 ~",
  AK: "[~ eb4@10 ab4@12 d4@12 bb4@12 g4@11 ~@2 bb4@12]/3", AL: "b4@12 g4@11 ~", AM: "ab4 c5",
  AN: "[b4@12 g4@11 c5@47 ~@2]/3",
})).s("gm_string_ensemble_2").gain(0.17).pan(0.6)

// other · whistle
const whistle = note(`<
  A@2 B C D E F G ~ H I J K C L M E L M K N H J O@2 H I M@2 C L M E L M K C L M D A@2 ~@16 H E J M C L M P H E M P Q R S
  T E M P Q R S Q ~ H E J M C L U E V H W J I L M C ~@17 X@2 Y M D E Z@3 ~@2
>`.pickRestart({
  A: "c7/2", B: "bb6 f6", C: "g6", D: "b6", E: "c7", F: "d7", G: "g6@7 ~", H: "c6", I: "f6", J: "bb5", K: "eb6",
  L: "ab6", M: "bb6", N: "d6", O: "[b5@3 g6]/2", P: "eb7", Q: "g7", R: "ab7", S: "bb7", T: "c8@19 ~@5", U: "bb6 b6",
  V: "c5", W: "bb4", X: "[~ c7@3]/2", Y: "d7 eb7 f7 d7", Z: "[~ d7@29 c7@31 ~@11]/3",
})).s("gm_whistle").gain(0.12).pan(0.6)

// other · french horn · "FRENCHORN"
const french_horn = note("<~@58 A B C D E F G H ~@8 I J E K L G M@2 N@2 ~@42>".pickRestart({
  A: "c4 g4", B: "f4@23 ~", C: "bb3", D: "eb4 ~@2 f4 ~@2 g4 ~@5 eb4@12", E: "g4", F: "ab4@12 c4@11 ~", G: "d4",
  H: "eb4@23 ~", I: "ab4@12 g4@2 ~ ab4@2 ~ g4 ~@2 ab4@2 ~", J: "bb4@3 f4", K: "g4@17 ~ g4@5 ~", L: "eb4@2 c4 bb3",
  M: "[d4@15 ~]/2", N: "[c4@9 ~@7]/2",
})).s("gm_french_horn").gain(0.32).pan(0.6)

// chords · synth strings 2 · "SYNSTRINGS"
const synth_strings_2 = note(`<
  A@5 B C@3 A@5 B D E@2 D F@2 G H@3 A@5 B D I@5 B J@2 K@2 ~@40 L@3 M@2 G N@2 O@2 P Q@2 R S T U V W X Y Z@2 AA@2 AB@4 AC
  AD AE@2 AF@5 AD AG@5
>`.pickRestart({
  A: "[[eb4,g4] f4 d4 eb4 [b3,d4], c4@2 bb3@2 ~, ~ ab4@2 g4@2]/5", B: "[c4,eb4,ab4]",
  C: "[[f4,bb4] ~ b3, d4, ~ [g4,b4]@2]/3", D: "[d4,f4,bb4]", E: "[[eb4,g4] [f4,ab4], [c4,c5]]/2",
  F: "[[eb3,eb4,bb4] [d3,d4,b4], g4]/2", G: "[c3,c4,eb4,ab4]", H: "[[bb2,f4,bb4] b2 g2, d4, ~ [g4,b4]@2]/3",
  I: "[[eb4,g4] ab4 [d4,bb4] eb4 [b3,d4], [c4,c5]@2 bb3@2 ~, ~ f4@2 g4@2]/5", J: "[bb4 [g4,b4], d4, f4@11 ~@13]/2",
  K: "[eb4,g4,c5]/2", L: "[[c3,eb4,g4] [f3,ab4] [d3,bb3,d4,bb4], c4@2 ~, ~ f4@2]/3",
  M: "[[eb3,bb3,eb4] [d3,b3,d4], g4]/2", N: "[[f4,bb4] b4 [c3,eb4,c5]@2, [d3,d4] ~, ~ g4@3]/2",
  O: "[[c3,eb4,g4,c5] [f3,f4,ab4,eb5], c4]/2", P: "[d3,bb3,d4,f4,d5]", Q: "[[eb3,g3,bb3,eb4] [d3,b3,d4,g4], g5]/2",
  R: "[eb3,c4,eb4,ab4,ab5]", S: "[f3,d4,f4,bb4,bb5]", T: "[c3,c4,eb4,g4,c5]", U: "eb5 ab5, [f3,c4,f4,ab4]",
  V: "f5@6 bb5@5 ~, [d3,d4,f4,bb4]", W: "g5 bb5, [eb3,eb4,g4,bb4]", X: "[b4,b5] [g4,g5], [d3,g3,b3]",
  Y: "[ab4,ab5] [c5,c6], [eb3,c4,eb4]", Z: "[[f3,f4,bb4,bb5] [b2,g4,b4,b5], d4]/2", AA: "[c3,c4,eb4,g4,c5,c6]/2",
  AB: "[[c3,eb4,g4] [f3,ab4] [d3,d4] [eb3,eb4,g4], c4 bb4, ~ f4@2 ~]/4", AC: "[d3,b3,d4,g4]", AD: "[eb3,c4,eb4,ab4]",
  AE: "[[f3,f4,bb4]@4 [d4,g4,b4]@7 ~@5, d4@5 ~@19]/2", // Bb5 G
  AF: "[[c3,eb4,g4] [f3,ab4] [d3,d4] [eb3,eb4] [d3,b3,d4], c4@2 bb4@2 ~, ~ f4@2 g4@2]/5", // Cm Fm D Eb G
  AG: "[~ [f3,f4,bb4]@14 [g3,g4,b4]@15 c5@16 [d4,bb4]@55 ~@19, ~ d4@29 [c3,c4,eb4,g4]@71 ~@19]/5", // Bb5 G Gm Cm
})).s("gm_synth_strings_2").gain(0.25).pan(0.7)

// other · pizzicato strings · "PIZZICATO" · C Eb C Bb D F G Eb …
const pizzicato_strings = note(`<
  ~@82
  [~@6 [c4,c5] ~@5 [eb4,eb5] ~@5 [c4,c5] ~@5]!2
  [~@6 [bb3,bb4] ~@5 [d4,d5] ~@5 [f4,f5] ~@5]
  [~@6 [g3,g4] ~@5 [eb4,eb5] ~@5 [g3,g4] ~@5]
  [~@6 [g3,g4] ~@5 [b3,b4] ~@5 [g3,g4] ~@5]
  [~@6 [ab3,ab4] ~@5 [c4,c5] ~@5 [ab3,ab4] ~@5]
  [~@6 [bb3,bb4] ~@5 [d4,d5] ~@5 [b3,b4] ~@5]
  ~@37
>`).s("gm_pizzicato_strings").gain(0.16).pan(0.7)

// other · timpani · Dsus2
const timpani = note(`<
  ~@57
  [e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2]]
  ~@7
  [e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2] e2 d2 [d2,e2]]
  ~@7
  [~@6 d2@12 e2 d2 [d2,e2] e2 d2 [d2,e2]]
  ~@52
>`).s("gm_timpani").gain(0.36).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@42 x!72 ~ x!7 [~ x ~@2] ~@3>").gain(0.44)

// drums · rim
// … 57 more lines

More by Cocciante