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, A@4 for four bars: 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@3 C D E F G D E F G H I E H@2 D E F G D E F G H I E H@2 E J K L M E N E J K L M E O P Q@2 ~ R@3 S T U V W X T
  Y Z AA AB AC Z AA AB AD AE AF AG AH AE T U V W X T AI T U V W X T AJ@3 ~@2 P AK@2 E J K L M E O E J K L M E O E J K L
  M E N E J K L M E O E J K L M E N E J K L M AL@2 ~@2
>`.pickRestart({
  A: "~@14 f1 ~", B: "f1@2 ~ f1 ~@2 f1@3 ~ f1 ~@3 f1 ~", C: "f1@3 f1 ~@2 f1@3 ~@5 f1 ~",
  D: "f1!4 ~@2 f1 ~ f1 ~ f1 ~@3 f1 ~", E: "f1!4 ~@2 f1@3 ~ f1 ~@3 f1 ~", F: "eb1!4 ~@2 eb1 ~ eb1 ~ eb1 ~@3 eb1 ~",
  G: "eb1!4 ~@2 eb1@3 ~ eb1 ~@3 eb1 c2", H: "db2!4 ~@2 db2@3 ~ db2 ~@3 db2 ~", I: "f1!4 ~@2 f1@2 f1 ~ f1@2 ~@4",
  J: "f1!4 ~@2 f1@3 ~ f1 ~@3 f1 ab1", K: "bb1!4 ~@2 bb1 ~ bb1 ~ bb1 ~@3 ab1 ~", L: "bb1!4 ~@2 bb1@3 ~ bb1 ~@3 bb1 ~",
  M: "eb1!4 ~@2 eb1@3 ~ eb1 ~@3 eb1 e1", N: "f1!4 ~@2 f1@3 ~ f1 ~@3 bb1 c2", O: "f1!4 ~@2 f1@3 ~ f1 ~@3 eb1 e1",
  P: "f1", Q: "[bb1@11 ~@5]/2", R: "[~ f1@2 bb1@3]/3", S: "~@8 f1!4 ~@2 f1@2", T: "~@2 f1 ~@3 f1 ~ f1!4 ~@2 f1@2",
  U: "~@2 f1 ~@3 f1 ab1 bb1!4 ~@2 bb1 ~", V: "bb1 ~ bb1 ~@3 ab1 ~ bb1!4 ~@2 bb1@2",
  W: "~@2 bb1 ~@3 bb1 ~ eb1!4 ~@2 eb1@2", X: "~@2 eb1 ~@3 eb1 e1 f1!4 ~@2 f1@2", Y: "~@2 f1 ~@3 bb1 c2 f1!4 ~@2 f1 ~",
  Z: "f1 ~ f1 ~@3 f1 ~ f1!4 ~@2 f1@2", AA: "~@2 f1 ~@3 f1 ~ eb1!4 ~@2 eb1 ~", AB: "eb1 ~ eb1 ~@3 eb1 ~ eb1!4 ~@2 eb1@2",
  AC: "~@2 eb1 ~@3 eb1 c2 f1!4 ~@2 f1 ~", AD: "~@2 eb1 ~@3 eb1 c2 db2!4 ~@2 db2@2",
  AE: "~@2 db2 ~@3 db2 ~ f1!4 ~@2 f1@2", AF: "f1 ~ f1@2 ~@4 f1!4 ~@2 f1@2", AG: "~@2 f1 ~@3 f1 ~ db2!4 ~@2 db2@2",
  AH: "~@2 db2 ~@3 db2 ~ db2!4 ~@2 db2@2", AI: "~@2 f1 ~@3 bb1 c2 f1!4 ~@2 f1@2",
  AJ: "[~@2 f1 ~@3 eb1 e1 f1@16 bb1@22 ~@2]/3", AK: "[bb1@3 ~]/2", AL: "[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@8 ~@9 A@4 ~@9 A@4 ~@5 B C@6 D E F@4 G H@3 I J K L@2 M N O P@3 O P@2 Q@2 R@2 S T@6 U T@6 U V@8 W@8 X@8 Y@8 Z@8
  AA@7 AB@5
>`.pickRestart({
  A: "f4!2 ab4 f4 bb4 ~ ab4 f4!2 ab4 ~ f4 eb4@2 f4 eb4",
  B: "f4!2 ab4 f4 bb4 ~ ab4 f4 ~ ab4 ~@2 eb4@2 f4!2, ~@8 f4@3 f4@3 ~@2",
  C: "[f4 ~ ab4 ~ bb4 ~ ab4 f4 ~ ab4 ~@2 eb4 ~@2 eb4 ~@80, ~ f4@2 f4@4 ~ f4@3 f4@3 f4@82]/6",
  D: "f4 ~ ab4 ~ bb4 ~ ab4 f4 ~ ab4 ~@2 eb4@2 f4!2, ~ f4@2 f4@4 ~ f4@3 f4@3 ~@2",
  E: "f4 ~ ab4 ~ bb4 ~ ab4 f4 ~ ab4 ~@2 eb4 ~@2 eb4, ~ f4@2 f4@4 ~ f4@3 f4@3 f4@2",
  F: "[[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 …
  G: "[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
  H: "[~ 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
  I: "~ ab4 ~@2 eb4@2 ~ f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@4 ~@2 f4@2 f4@5",
  J: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@5 ~ f4@2 f4@5",
  K: "~ ab4 ~@3 f4@2 f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@2 ~@4 f4@2 f4@5, ~@2 eb4 ~@5",
  L: "~ ab4 ~@2 eb4@2 ~ f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@4 ~@2 f4@7",
  M: "~ ab4 ~@3 f4@2 f4!2 ~ ab4 ~ bb4 ~ ab4 ~, f4@3 f4@2 ~@4 f4@7, ~@2 eb4 ~@5",
  N: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4 ~ ab4 f4, f4@3 f4@5 ~ f4@2 f4@4 ~",
  O: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4@2 ab4 f4, f4@3 f4@3 f4@2 ~ f4@2 f4@4 ~",
  P: "~ ab4 ~@2 eb4@2 ~ eb4 f4 ~ ab4 ~ bb4 ~ ab4 f4, f4@3 f4@3 f4@2 ~ f4@2 f4@4 ~",
  Q: "[~ ab4 ~@2 eb4@2 ~ eb4 ~@16 f4 ~ ab4 ~ bb4 ~ ab4 f4, f4@3 f4@3 f4@18 ~ f4@2 f4@4 ~]/2",
  R: "[~ 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",
  S: "~@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",
  T: "[~@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",
  U: "~@4 eb4@2 f4!3 ~@3 bb4 ~@2 f4, f4@3 f4@3 ~@3 f4@2 f4@4 ~, ~ ab4@9 ab4@4 ab4@2",
  V: "[~@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 …
  W: "[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",
  X: "[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",
  Y: "[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",
  Z: "[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",
  AA: "[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",
  AB: "[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@16, [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 E@42 ~@2>".pickRestart({
  A: "bb3/2", B: "[ab3 bb3, [c4,f4]]/4", C: "[db4@11 ~@21 ab3@8, f4, ab3@2 bb3@2 ~, ~@22 c4@26 db4@31 ~]/5",
  D: "[c4@32 db4@31 [bb3,eb4]@17 ab3@32, f4, ab3@9 ~@7]/7", E: "[c4@32 db4@31 ~ [bb3,eb4]@16 ab3@32, f4, ab3@9 ~@7]/7",
  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
})).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 F E I B F B J ~@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: "bb4 ~@2 f5 c5 ~@2 f5", J: "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",
  V: "x!4 ~ x!2 ~ x!4 ~ x!3", W: "x!4 ~ x!2 ~@9",
})).gain(0.32)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
// … 61 more lines

More by Mango