Strudelify
Bella d'estate cover art

Tutto mango: Oro e Platino

Bella d'estate

Mango

KeyF minorTempo111 bpm
0:00/0:00
// Bella d'estate — Mango
// 111 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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("<~@15 A@2 ~@2 B ~@4 B ~@3 A@2 ~@2 B ~@36 C@3 ~ D@2 ~@70>".pickRestart({
  A: "[~@3 f6@9 ~@4, ~@4 ab6@21 ~@7]/2", B: "~@3 f6@5, ~ ab6@3", C: "[~@7 f6@9 ~@8, ~@4 ab6@7 ~@5]/3",
  D: "[~@7 f6@5 ~@4, ~@3 ab6@3 ~@2]/2",
})).s("gm_piano").gain(0.64).pan(0.4)

// bass · synth bass 2
const bass = note(`<
  ~@7 A B@2 C D E F G H E F G H I J F I@2 E F G H E F G H I J F I@2 F K L M N F O F K L M N F P Q R@2 ~ S@3 T U V W X Y
  U Z AA AB AC AD AA AB AC AE AF AG AH AI AF U V W X Y U AJ U V W X Y U AK@3 ~@2 Q AL@2 F K L M N F P F K L M N F P F K
  L M N F O F K L M N F P F K L M N F O F K L M N AM@2 ~@2
>`.pickRestart({
  A: "~@14 f1 ~", B: "f1@2 ~ f1 ~@2 f1@3 ~ f1 ~@3 f1 ~", C: "f1@3 f1 ~@2 f1@3 ~ f1 ~@3 f1 ~",
  D: "f1@3 f1 ~@2 f1@3 ~@5 f1 ~", E: "f1!4 ~@2 f1 ~ f1 ~ f1 ~@3 f1 ~", F: "f1!4 ~@2 f1@3 ~ f1 ~@3 f1 ~",
  G: "eb1!4 ~@2 eb1 ~ eb1 ~ eb1 ~@3 eb1 ~", H: "eb1!4 ~@2 eb1@3 ~ eb1 ~@3 eb1 c2", I: "db2!4 ~@2 db2@3 ~ db2 ~@3 db2 ~",
  J: "f1!4 ~@2 f1@2 f1 ~ f1@2 ~@4", K: "f1!4 ~@2 f1@3 ~ f1 ~@3 f1 ab1", L: "bb1!4 ~@2 bb1 ~ bb1 ~ bb1 ~@3 ab1 ~",
  M: "bb1!4 ~@2 bb1@3 ~ bb1 ~@3 bb1 ~", N: "eb1!4 ~@2 eb1@3 ~ eb1 ~@3 eb1 e1", O: "f1!4 ~@2 f1@3 ~ f1 ~@3 bb1 c2",
  P: "f1!4 ~@2 f1@3 ~ f1 ~@3 eb1 e1", Q: "f1", R: "[bb1@11 ~@5]/2", S: "[~ f1@2 bb1@3]/3", T: "~@8 f1!4 ~@2 f1@2",
  U: "~@2 f1 ~@3 f1 ~ f1!4 ~@2 f1@2", V: "~@2 f1 ~@3 f1 ab1 bb1!4 ~@2 bb1 ~", W: "bb1 ~ bb1 ~@3 ab1 ~ bb1!4 ~@2 bb1@2",
  X: "~@2 bb1 ~@3 bb1 ~ eb1!4 ~@2 eb1@2", Y: "~@2 eb1 ~@3 eb1 e1 f1!4 ~@2 f1@2", Z: "~@2 f1 ~@3 bb1 c2 f1!4 ~@2 f1 ~",
  AA: "f1 ~ f1 ~@3 f1 ~ f1!4 ~@2 f1@2", AB: "~@2 f1 ~@3 f1 ~ eb1!4 ~@2 eb1 ~",
  AC: "eb1 ~ eb1 ~@3 eb1 ~ eb1!4 ~@2 eb1@2", AD: "~@2 eb1 ~@3 eb1 c2 f1!4 ~@2 f1 ~",
  AE: "~@2 eb1 ~@3 eb1 c2 db2!4 ~@2 db2@2", AF: "~@2 db2 ~@3 db2 ~ f1!4 ~@2 f1@2", AG: "f1 ~ f1@2 ~@4 f1!4 ~@2 f1@2",
  AH: "~@2 f1 ~@3 f1 ~ db2!4 ~@2 db2@2", AI: "~@2 db2 ~@3 db2 ~ db2!4 ~@2 db2@2", AJ: "~@2 f1 ~@3 bb1 c2 f1!4 ~@2 f1@2",
  AK: "[~@2 f1 ~@3 eb1 e1 f1@16 bb1@22 ~@2]/3", AL: "[bb1@3 ~]/2", AM: "[f1@2 c2@2 eb2@2 f1@2 ~@4 f1@19 ~]/2",
})).s("gm_synth_bass_2").gain(0.5)

// other · xylophone
const xylophone = note(`<
  [f4!2 ab4 f4 bb4 ~ ab4 f4!2 ab4 ~ f4 eb4@3 ~]
  [f4!2 ab4 f4 bb4@2 ab4 f4!2 ab4 ~ f4 eb4@2 f4 ~]
  [f4!2 ab4 f4 bb4 ~ ab4 f4!2 ab4 ~ f4 eb4@2 f4 eb4]
  [f4!2 ab4 f4 bb4 ~ ab4 ~ f4 ab4 ~ f4 eb4@2 f4 eb4]
  ~@141
>`).s("gm_xylophone").gain(0.27).pan(0.6)

// other · xylophone · soft notes
const xylophone_soft = note("<[~@14 f4 eb4] [~@15 eb4] ~ [~@7 f4 ~@8] ~@141>").s("gm_xylophone").gain(0.14).pan(0.6)

// chords · marimba
const marimba = note(`<
  ~@4 A B A@3 B A C ~@9 A B A@2 ~@9 A B A@2 ~@5 D E@6 F G H@4 I J@3 K L M N@2 O P Q R@3 Q R@2 S@2 T@2 U V@6 W X@6 W Y@8
  Z@8 AA@8 AB@8 AC@8 AD@7 AE@5
>`.pickRestart({
  A: "f4!2 ab4 f4 bb4 ~ ab4 f4!2 ab4 ~ f4 eb4@2 f4 eb4", B: "f4!2 ab4 f4 bb4@2 ab4 f4!2 ab4 ~ f4 eb4@2 f4 eb4",
  C: "f4!2 ab4 f4 bb4 ~ ab4 f4!2 ab4 ~ f4 eb4 ~ f4 eb4",
  D: "f4!2 ab4 f4 bb4 ~ ab4 f4 ~ ab4 ~@2 eb4@2 f4!2, ~@8 f4@3 f4@3 ~@2",
  E: "[f4 ~ ab4 ~ bb4 ~ ab4 f4 ~ ab4 ~@2 eb4 ~@2 eb4 ~@80, ~ f4@2 f4@4 ~ f4@3 f4@3 f4@82]/6",
  F: "f4 ~ ab4 ~ bb4 ~ ab4 f4 ~ ab4 ~@2 eb4@2 f4!2, ~ f4@2 f4@4 ~ f4@3 f4@3 ~@2",
  G: "f4 ~ ab4 ~ bb4 ~ ab4 f4 ~ ab4 ~@2 eb4 ~@2 eb4, ~ f4@2 f4@4 ~ f4@3 f4@3 f4@2",
  H: "[[f4,c5] ~ [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] ~ c5 ~ [ab4,eb5] ~ [eb4,bb4] ~@2 f4@2 c5 [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] ~ c5 ~ [ab4,eb5] ~ [eb4,bb4] ~@2 c5 ~ c5 [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] ~ c5 ~ [ab4,eb5] ~ [eb4,bb4] ~@2 f4@2 c5 [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] ~ c5 ~ [ab4,eb5] ~ [eb4,bb4] ~ f4@2, ~ f4@2 f4@5 f4@7 ~@2 f4@7 f4@7 f4@9 f4@7 c5 ~ f4@2 f4@5 f4@6 ~@2]/4", // F5 Ab5 Bb5 Ab5 Eb5 Ab5 Bb5 Ab5 …
  I: "[f4,c5] ~ [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] f4 c5 ~ [ab4,eb5] ~ [eb4,bb4] ~@2 c5, ~ f4@2 f4@4 ~ f4@6 f4@2", // F5 Ab5 Bb5 Ab5 Eb5
  J: "[~ c5 [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] ~ c5 ~ [ab4,eb5] ~ [eb4,bb4] ~@2 f4@2 c5 [ab4,eb5] ~ [bb4,f5] ~ [ab4,eb5] ~ c5 ~ [ab4,eb5] ~ [eb4,bb4] ~@2 f4@9 f4 ~ ab4 ~ bb4 ~ ab4 ~, ~ f4@2 f4@5 f4@7 c5 ~ f4@7 f4@7 ~@10 f4@2 f4@5]/3", // Ab5 Bb5 Ab5 Eb5 Ab5 Bb5 Ab5 Eb5
  K: "~ ab4 ~@2 eb4@2 ~ f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@4 ~@2 f4@2 f4@5",
  L: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@5 ~ f4@2 f4@5",
  M: "~ ab4 ~@3 f4@2 f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@2 ~@4 f4@2 f4@5, ~@2 eb4 ~@5",
  N: "~ ab4 ~@2 eb4@2 ~ f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@4 ~@2 f4@7",
  O: "~ ab4 ~@3 f4@2 f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@2 ~@4 f4@7, ~@2 eb4 ~@5",
  P: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4 ~ ab4 f4, f4@3 f4@5 ~ f4@2 f4@4 ~",
  Q: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4@2 ab4 f4, f4@3 f4@3 f4@2 ~ f4@2 f4@4 ~",
  R: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4 ~ ab4 f4, f4@3 f4@3 f4@2 ~ f4@2 f4@4 ~",
  S: "[~ ab4 ~@2 eb4@2 ~ eb4 ~@16 f4 ~ ab4 ~ bb4 ~ ab4 f4, f4@3 f4@3 f4@18 ~ f4@2 f4@4 ~]/2",
  T: "[~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4@2 ab4@3 ~@3 eb4@2 ~ eb4 f4 ~@3 bb4 ~@2 f4, f4@3 f4@3 f4@2 ~ f4@2 f4@3 f4@5 f4@3 f4@2 ~ f4@2 f4@4 ~, ~@17 ab4@9 ab4@4 ab4@2]/2",
  U: "~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~@2 f4, f4@3 f4@3 f4@2 ~ f4@2 f4@4 ~, ~ ab4@9 ab4@4 ab4@2",
  V: "[~@4 eb4@2 ~ eb4 ~@80 f4 ~@3 bb4 ~@2 f4, f4@3 f4@3 f4@82 ~ f4@2 f4@4 ~, ~ ab4@89 ab4@4 ab4@2]/6",
  W: "~@4 eb4@2 f4!3 ~@3 bb4 ~@2 f4, f4@3 f4@3 ~@3 f4@2 f4@4 ~, ~ ab4@9 ab4@4 ab4@2",
  X: "[~@4 eb4 ~@2 eb4 ~@80 f4 ~@3 bb4 ~@2 f4, f4@3 f4@3 f4@82 ~ f4@2 f4@4 ~, ~ ab4@89 ab4@4 ab4@2]/6",
  Y: "[~@4 eb4 ~@2 eb4 [f4,c5] ~ eb5 ~ [bb4,f5] ~ eb5 ~ c5 ~ eb5 ~ [eb4,bb4] ~@2 f4@2 c5 eb5 ~ [bb4,f5] ~ eb5 ~ c5 ~ eb5 ~ [eb4,bb4] ~@2 c5 ~ c5 eb5 ~ [bb4,f5] ~ eb5 ~ c5 ~ eb5 ~ [eb4,bb4] ~@2 f4@2 c5 eb5 ~ [bb4,f5] ~ eb5 ~ c5 ~ eb5 ~ [eb4,bb4] ~ f4@2 [f4,c5] ~ eb5 ~ [bb4,f5] ~ eb5 f4 c5 ~ eb5 ~ [eb4,bb4] ~@2 c5 ~ c5 eb5 ~ [bb4,f5] ~ eb5 ~ c5 ~ eb5 ~ [eb4,bb4] ~@2 f4@2 c5 eb5 ~ [bb4,f5] ~ eb5 ~ c5 ~ eb5 ~ [eb4,bb4] ~@2 f4@9, f4@3 f4@3 f4@2 ~ f4@2 f4@5 f4@7 ~@2 f4@7 f4@7 f4@9 f4@7 c5 ~ f4@2 f4@5 f4@6 ~@3 f4@2 f4@4 ~ f4@6 f4@3 f4@2 f4@5 f4@7 c5 ~ f4@7 f4@7 ~@9, ~ ab4@9 ab4@4 ab4@4 ab4@8 ab4@4 ab4@4 ab4@8 ab4@4 ab4@4 ab4@8 ab4@4 ab4@4 ab4@8 ab4@4 ab4@4 ab4@8 ab4@4 ab4@4 ab4@8 ab4@4 ab4@4 ab4@14]/8", // F5 Bb5 Eb5 Bb5 Eb5 Bb5 Eb5 Bb5 …
  Z: "[f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4, ~ f4@2 f4@5 f4@3 f4@4 ~@2 f4@2 f4@5 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@2 ~@4 f4@2 f4@5 f4@3 f4@4 ~@2 f4@7 f4@3 f4@4 ~@2 f4@7 f4@3 f4@2 ~@4 f4@7 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@4 ~, ~@2 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@7, ~@22 eb4 ~@23 eb4 ~@17]/8",
  AA: "[f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4, ~ f4@2 f4@5 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@2 ~@4 f4@2 f4@5 f4@3 f4@4 ~@2 f4@7 f4@3 f4@4 ~@2 f4@7 f4@3 f4@2 ~@4 f4@7 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@4 ~@2 f4@2 f4@5 f4@3 f4@5, ~@2 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@7, ~@14 eb4 ~@23 eb4 ~@25]/8",
  AB: "[f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4, ~ f4@2 f4@5 f4@3 f4@2 ~@4 f4@2 f4@5 f4@3 f4@4 ~@2 f4@7 f4@3 f4@4 ~@2 f4@7 f4@3 f4@2 ~@4 f4@7 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@4 ~@2 f4@2 f4@5 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@2 ~@3, ~@2 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@7, ~@6 eb4 ~@23 eb4 ~@31 eb4 ~]/8",
  AC: "[f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4, ~ f4@2 f4@5 f4@3 f4@4 ~@2 f4@7 f4@3 f4@4 ~@2 f4@7 f4@3 f4@2 ~@4 f4@7 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@4 ~@2 f4@2 f4@5 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@2 ~@4 f4@2 f4@5 f4@3 f4@4 ~, ~@2 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@7, ~@22 eb4 ~@31 eb4 ~@9]/8",
  AD: "[f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ eb4 f4 ~@3 bb4 ~ ab4@2 ~@5 f4@2 f4 f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 ~ f4, ~ f4@7 f4@3 f4@4 ~@2 f4@7 f4@3 f4@2 ~@4 f4@7 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@4 ~@2 f4@2 f4@5 f4@3 f4@5 ~ f4@2 f4@5 f4@3 f4@2 ~@4 f4@2 f4@5 f4@3 f4@4 ~, ~@2 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@9 ab4@4 ~@3 ab4@7, ~@14 eb4 ~@31 eb4 ~@9]/7",
  AE: "[f4 ~@3 bb4 ~ ab4@2 ~@4 eb4@2 f3 ~@13 bb4@16 ~@36, ~ f4@7 f4@3 f4@4 f4@50 ~@15, ~@2 ab4@4 ~@3 ab4@56 ~@15]/5",
})).s("gm_marimba").gain(0.27).pan(0.6)

// chords · lead 3 calliope
const lead_3_calliope = note("<~@25 A B C D E F G H I J K L M ~@36 N O P Q R S ~@65>".pickRestart({
  A: "[f4,ab4] ~ [f4,ab4]!2 ~@2 [g4,bb4] ~ [g4,bb4] ~ bb4 [g4,bb4] ~@2 [f4,ab4] ~", // Fm Gm Fm
  B: "[f4,ab4] ~@2 [f4,ab4] ~@4 [g4,bb4] ~ [g4,bb4] ~@3 [f4,ab4] ~", // Fm Gm Fm
  C: "[f4,ab4] ~@2 [f4,ab4] ~@2 [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~@3 [f4,ab4] ~", // Fm Gm Fm
  D: "~@8 [g4,bb4] ~ [g4,bb4] ~@3 [f4,ab4] ~", E: "[f4,ab4] ~ [f4,ab4]!2 ~ [f4,ab4] [g4,bb4] ~ [g4,bb4] ~@5 [f4,ab4] ~",
  F: "~@8 [g4,bb4] ~ [g4,bb4]!2 ~@2 [f4,ab4] ~", G: "~@6 [g4,bb4] ~ [g4,bb4] ~@2 bb4 ~@2 [f4,ab4] ~",
  H: "~@2 [f4,ab4] ~@2 [f4,ab4] ~@2 [g4,bb4] ~ [g4,bb4] ~@3 [f4,ab4] ~", I: "~@6 [g4,bb4] ~ [g4,bb4] ~@5 [f4,ab4] ~",
  J: "~ [f4,ab4] ~@6 [g4,bb4] ~ [g4,bb4] ~@3 [f4,ab4] ~", // Fm Gm Fm
  K: "[f4,ab4]!2 ~@4 [g4,bb4] ~ [g4,bb4] ~@2 [g4,bb4] ~@2 [f4,ab4] ~", // Fm Gm Fm
  L: "~@2 [f4,ab4] ~@2 [f4,ab4] ~@2 [g4,bb4] ~@2 [g4,bb4] ~@2 [f4,ab4] ~", // Fm Gm Fm
  M: "ab4 ~@5 [g4,bb4] ~ [g4,bb4] ~@2 [g4,bb4] ~@2 [f4,ab4]!2", N: "~@14 [g4,bb4] ~",
  O: "[g4,bb4] ~@5 [f4,ab4] ~@2 [f4,ab4] ~@6", P: "[g4,bb4] ~ [g4,bb4] ~@3 [f4,ab4] ~ [f4,ab4]!2 ~@4 [g4,bb4] ~",
  Q: "[g4,bb4] ~@2 [g4,bb4] ~@2 [f4,ab4] ~@3 [f4,ab4] ~@2 [f4,ab4] ~@2", // Gm Fm
  R: "[g4,bb4] ~@2 [g4,bb4] ~@2 [f4,ab4] ~ ab4 ~@5 [g4,bb4] ~", S: "[g4,bb4] ~@2 [g4,bb4] ~@2 [f4,ab4]!2 ~@8",
})).s("gm_lead_3_calliope").gain(0.32).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@37 A B@2 C@2 D E@2 F@5 G@2 ~@27 H@7 I@8 ~@6 J K@2 C@2 D E@2 B@2 C@2 D E@2 B@2 C@2 D E@2 B@2 C@2 D E@2 B@2 C@2 D E@2
  L@4 D M@2 ~@2
>`.pickRestart({
  A: "~@10 [f4,ab4,ab5]@3 [ab4,c5,c6]@3, ~@5 f6@3", // Fm Ab
  B: "[[bb4,bb5]@10 [f4,ab4,ab5]@3 [ab4,c5,c6]@3 [g4,bb4,bb5]@8 [f4,ab4,ab5]@8, [f5,f6]]/2", C: "[f4,bb4,db5,f5,ab5]/2",
  D: "[g4,bb4,eb5,g5]", E: "[[f4,ab5]@26 [f4,ab4,ab5]@3 [ab4,c5,c6]@3, f5@31 ~, c5@29 ~@3]/2",
  F: "[[g4,bb4,bb5]@10 [f4,ab5]@3 [ab4,c5,c6]@3 [g4,bb4,bb5]@8 ab5@8 ~@16 f4@16 [g4,bb4,eb5,g5]@16, [f5,f6]@2 f5@3, ~@3 f4@3 ~@4, ~@2 [bb4,db5,ab5]@2 ~]/5", // Gm Fm Ab Gm Eb F Bbm7
  G: "[f4,c5,f5,ab5]/2", // Fm
  H: "[~@2 [f4,ab4,ab5]@3 [ab4,c5,c6]@3 [bb4,bb5]@10 [f4,ab4,ab5]@3 [ab4,c5,c6]@3 [g4,bb4,bb5]@8 [f4,ab4,ab5]@8 [f4,bb4,db5,f5,ab5]@32 [g4,bb4,eb5,g5]@16 [f4,c5,f5,ab5]@24, ~ f6@3 [f5,f6]@16 ~@36]/7", // Fm Ab Bb Fm Ab Gm Fm Bbm7 …
  I: "[~@2 [f4,ab4,ab5]@3 [ab4,c5,c6]@3 [g4,bb4,bb5]@10 [f4,ab5]@3 [ab4,c5,c6]@3 [g4,bb4,bb5]@8 ab5@8 ~@16 f4@15 ~ [g4,bb4,eb5,g5]@16 [f4,c5,f5,ab5]@32 ~@8, ~ [f5,f6]@4 [bb4,db5,f5,ab5]@4 ~@7, ~@4 f4@3 ~@9]/8", // Fm Ab Gm Fm Ab Gm Eb Fm …
  J: "~@10 f5@3 ab5@3, ~@5 [c6,f6]@3", // F5
  K: "[bb4@10 [f4,ab4,ab5]@3 [ab4,c5,c6]@3 [g4,bb4,bb5]@8 [f4,ab4,ab5]@8, f5, [bb5,f6]@3 ~@5]/2", // Fm Ab Gm Fm Bb5
  L: "[[g4,bb4,bb5]@10 [f4,ab5]@3 [ab4,c5,c6]@2 ~ [bb4,bb5]@8 ab5@8 ~@16 f4@15 ~, [f5,f6] [bb4,db5,f5,ab5], ~@15 g4@9 f4@24 ~@16]/4", // Gm Fm Ab Bb F Bbm7
  M: "[~@6 [f3,c5,eb5,ab5] ~@5 [f3,c5,eb5,g5,bb5]@20]/2", // Fm7 Cm7
})).s("gm_string_ensemble_1").gain(0.3).pan(0.3)

// chords · pad sweep
const pad_sweep = note("<~@4 A@6 ~@135>".pickRestart({
  A: "[[bb1,d4]@16 [g4,c5]@77 ~@3, bb4@29 ~@67, f4@13 ~@35, c4@11 ~@37, ~@8 d4@3 ~@37]/6", // Bb C5
})).s("gm_pad_sweep").gain(0.25).pan(0.4)

// chords · pad halo
const pad_halo = note("<~@14 A@2 B@4 C@5 B@8 C@5 D@7 E@7 F@7 G@7 H@8 I@5 G@14 J@8 K@42 ~@2>".pickRestart({
  A: "bb3/2", B: "[ab3 bb3, [c4,f4]]/4", C: "[db4@11 ~@21 ab3@8, f4, ab3@2 bb3@2 ~, ~@11 c4@13 db4@16]/5",
  D: "[c4@32 db4@31 [bb3,eb4]@17 ab3@32, f4, ab3@9 ~@7]/7", // Eb5
  E: "[c4@31 ~ db4@31 ~ [bb3,eb4]@16 ab3@32, f4, ab3@9 ~@7]/7", // Eb5
  F: "[c4@16 db4@31 ~@41 [bb3,db4]@23 ~, f4@111 ~, ab3@5 ~ c4@5 ~@3, ~@16 bb3@40 ab3@55 ~]/7", // Bbm
  G: "[~@8 c4@32 db4@31 ~ [bb3,eb4]@16 ab3@24, ~ f4@13, ~@8 ab3@63 ~@41]/7", // Eb5
  H: "[~ ab3@4 bb3@4 ab3@4 bb3@3, ~ [c4,f4]@8 [c4,f4]@7]/8", // F5
  I: "[~@4 db4@11 ~@21 ab3@4, ~ f4@9, ~ ab3@4 bb3@4 ~, ~@15 c4@13 db4@12]/5",
  J: "[~ c4@2 db4@3 eb4@2 c4@4 [bb3,db4]@3 ~, ~@8 f4@111 ~@9, ~ ab3@5 ~@2 ab3@7 ~, ~@3 bb3@5 ~@8]/8", // Bbm
  K: "[c4@32 db4@31 ~ [bb3,eb4]@16 ab3@32, f4, ab3@9 ~@7]/7", // Eb5
})).s("gm_pad_halo").gain(0.25).pan(0.4)

// chords · pad halo · soft notes
const pad_halo_soft = note(`<
  ~@12 A@4 ~@27 B@2 ~@5 B@2 ~@12 C@3 ~@17 C@3 ~@4 C@3 ~@12 B@2 ~@5 B@2 ~@5 B@2 ~@5 B@2 ~@5 B@2 ~@5 B@2 ~@2
>`.pickRestart({
  A: "[[c4,f4], ab3 ~]/4", B: "c4/2", C: "[~ c4@4 ~]/3",
})).s("gm_pad_halo").gain(0.12).pan(0.4)

// other · steel drums
const steel_drums = note("<~@52 A B C D E F G ~@34 H I E J K L B M ~@44>".pickRestart({
  A: "~@3 f5 c5 ~@2 f5", B: "c5 ~@2 f5 bb4 c5 eb5 bb4", C: "c5@3 ~@3 f5@2 bb4@2 ~@4 f5@2",
  D: "c5@2 ~@4 f5@2 c5@2 ~@4 f5 ~", E: "bb4@2 c5@2 eb5@2 bb4@2 c5@3 ~@3 f5@2", F: "c5 ~@2 f5 c5 ~@2 f5",
  G: "bb4 c5 eb5 bb4 c5 ~@3", H: "~@7 f5", I: "c5@2 ~@4 f5@2 c5@3 ~@3 f5@2", J: "bb4 ~@2 f5 c5 ~@2 f5",
  K: "c5@2 ~@4 f5 ~ bb4@2 c5@2 eb5@2 bb4@2", L: "c5@3 ~@3 f5@2 c5@2 ~@4 f5@2", M: "c5 ~@7",
})).s("gm_steel_drums").gain(0.33).pan(0.4)

// chords · synth brass 1
const synth_brass_1 = note("<~@53 A@4 ~@2 B@2 C@6 ~@27 D@4 ~@47>".pickRestart({
  A: "[~@6 c6@47 ~@11, ~@6 g5@43 ~@15, ~@6 c5@39 ~@19]/4", B: "[~@2 [c5,g5]@27 ~@3]/2",
  C: "[[eb5,bb5]@3 [db5,ab5]@2 [c5,g5]@3 [c5,g5]@6 [bb4,f5]@20 [ab5,eb6]@12 [g5,d6]@4 [eb5,bb5]@38 ~@8]/6", // Eb5 Db5 C5 Bb5 Ab5 G5 Eb5
  D: "[~@14 c6@47 ~@3, ~@14 g5@43 ~@7, ~@14 c5@39 ~@11]/4",
})).s("gm_synth_brass_1").gain(0.46).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B C B C B@3 D B@9 C@2 B C B@9 C@2 B C E B E B@3 C E B E B@3 C ~@6 F G B H B@3 I B@9 I@2 B I H B H B@3 I H B H
  B@3 I J ~@6 K E B E B@3 C E B E B@3 C E B E B@3 C E B E B@3 C E B E B@3 C E B E B@2 L ~@3
>`.pickRestart({
  A: "~@4 x!2 ~@2", B: "x!2 ~@2 x!2 ~@2", C: "x ~ x ~@4 x!2 ~ x ~@5", D: "x!2 ~@2 x ~@3", E: "x!2 ~ x!3 ~@2",
  F: "~@5 x ~@2", G: "~@4 x!2 ~@2 x ~ x ~@3 x ~", H: "x!2 ~@2 x!2 ~ x", I: "x ~ x ~@5 x ~ x ~@4 x", J: "x!2 ~@6",
  K: "~@2 x ~@9 x!2 ~@2", L: "x ~ x!2 ~@2 x ~",
})).gain(0.8)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@23 A ~@12 A ~@2 B ~ B@3 ~@2 B ~ B@3 ~@9 C ~ C@3 ~@12 D ~@2 C ~ C@3 ~@2 C ~ C@3 ~@10 B ~ B@3 ~@2 B ~ B@3 ~@2 B ~ B@3
  ~@2 B ~ B@3 ~@2 B ~ B@3 ~@2 B ~ B@2 ~@4
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@4", C: "~@7 x", D: "~@15 x",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@3 A B@7 C B@40 ~@6 A D B@33 E ~@6 F B@6 G B@6 H B@4 I B J B@19 K ~@3>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@3 x!7 ~", D: "~@6 x!2 ~@4 x ~@3", E: "~ x ~@2", F: "~@4 x ~@9 x!2",
  G: "~@4 x ~@7 x ~ x!2", H: "~@4 x ~@7 x!4", I: "~@4 x ~@7 x ~@2 x", J: "~@4 x ~@4 x ~ x!5", K: "~ x ~@6",
})).gain(0.64)

// drums · clap
const clap = s("cp").struct("<~@3 A B@7 C ~@47 D ~@40 E ~@27 E ~@16>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@10 x", D: "~@6 x!2 ~@8", E: "~@14 x!2",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C D A B C D E F G H E F G E@2 F G E I@2 J I@2 E F G E@2 F G E I@2 J I@2 K I@5 L K I@5 L ~@7 M N I@5 O P Q R S P Q
  R T I U I@3 N I@5 V N I@5 W ~@7 K I@5 L K I@5 L K I@5 L K I@5 L K I@5 L K I@4 ~@4
>`.pickRestart({
  A: "x ~ x!5 ~ x ~@2 x!4 ~", B: "x!2 ~ x!4 ~ x!2 ~@2 x!4", C: "x ~@2 x!7 ~ x!5", D: "x!2 ~ x!4 ~ x!6 ~@2",
  E: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", F: "x!6 ~ x!3 ~ x!3 ~ x", G: "x!2 ~ x!2 ~@2 x!3 ~@2 x!2 ~ x", H: "x!2 ~ x!3 ~ x ~@8",
  I: "x!4 ~ x!7 ~ x!3", J: "x ~ x!2 ~ x!7 ~ x!3", K: "x!4 ~ x!4 ~ x ~ x!4", L: "x!4 ~ x!7 ~ x!2 ~", M: "~@8 x!4 ~ x!3",
  N: "x ~ x ~ x!8 ~ x!3", O: "x!4 ~ x!5 ~ x!3 ~ x", P: "x!2 ~ x!3 ~ x!7 ~ x", Q: "x!2 ~ x!3 ~ x!3 ~ x!2 ~@2 x",
  R: "x!2 ~@2 x!2 ~ x!3 ~ x!3 ~ x", S: "x!2 ~ x!7 ~ x!3 ~ x", T: "x!2 ~ x!3 ~ x!5 ~ x!3", U: "x!4 ~ x!4 ~ x!2 ~ x!3",
// … 66 more lines

More by Mango