Strudelify
Mediterraneo cover art

1999 · Come l'acqua

Mediterraneo

Mango

KeyF♯ minorTempo109 bpm
0:00/0:00
// Mediterraneo — Mango
// 109 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(109/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.

// other · clavinet · "Piano"
const clavinet = note(`<
  ~@32 A B ~@5 C D E F G H I J K ~@5 L ~ M ~@5 A N O ~@9 A B ~@5 C D E F G H I J K ~@5 P ~ Q ~ R ~ Q ~ S ~@6
>`.pickRestart({
  A: "~@7 b2", B: "e3 d3 c#3 e2", C: "d2@11 ~ d2@3 ~", D: "a1@11 ~ a1@4", E: "b1@11 ~ b1@4", F: "c#2 g#2",
  G: "c#2@7 ~ c#2@4 b1@4", H: "a1", I: "g#1@7 ~ f#1@8", J: "e1@11 ~@3 b2@2", K: "e3@4 d3@4 c#3@4 e2@3 ~",
  L: "~ a2 g#2 a2 c#3 d3 c#3 ~, [f#1,f#2]@7 ~@9", M: "~ a3 g#3 a3 c#4 d4 c#4 ~, [f#1,f#2] ~", N: "e2 f#2 g#2 e2",
  O: "b1@5 ~@3", P: "~ a2 g#2 a2 c#3 d3 c#3 ~, [f#1,f#2]", Q: "[f#1,f#2]@11 ~@5",
  R: "~@2 a3@2 g#3@2 a3@2 c#4@2 d4@2 c#4@2 b3 ~, [f#1,f#2]@3 ~@5", S: "[f#1,f#2]@3 ~",
})).s("gm_clavinet").gain(0.64).pan(0.3)

// bass · acoustic bass · "Ac Bass"
const bass = note(`<
  ~@15 A B C D E F G H I J K L M N O P Q F R S T U V W X Y Z AA AB P Q AC R V AD AE V AF N AG N AH B AI AJ AK AL AM AN
  AO AP AQ AR AS N AT AU AV AL R V AD AW V W X Y AX AY AB P AZ AL R V BA BB V W BC BD BC AH N BE BF BG@2 ~@6
>`.pickRestart({
  A: "~@5 f#2!2 ~ g#2@4 e2@4", B: "a1@13 ~ a1@2", C: "g#1@8 c#2@7 ~", D: "f#1@3 f#2 e2@4", E: "d2@8 a1@5 ~ a1@2",
  F: "e1@12 ~ b1 b1@2", G: "e2@5 ~ e2@4 b1@2 e2@4", H: "b1@15 ~", I: "g#2@8 c#2@6 g#2 ~",
  J: "f#2@5 ~ f#2@2 e2@5 ~ e2@2", K: "d2@8 c#2@5 ~ c#2@2", L: "b1@12 ~@2 b1 ~", M: "g#2@8 c#2@4 c#1@2 g#1 ~",
  N: "f#1@5 ~ f#1@2 g#1@8", O: "f#1@4 ~ f#1 f#1@2 g#1@3 ~ g#1@3 ~", P: "a1@6 ~ a1 a1@5 ~ a1@2", Q: "g#1 f#1",
  R: "e2 d2 c#2 e1", S: "b1@7 ~ b1@5 ~ b1@2", T: "c#2@7 ~ c#1@5 ~ a1 g#1", U: "f#1@4 ~ f#1 f#2@2 e2@4 e1@4",
  V: "b1@13 ~ b1@2", W: "c#2@2 c#1 c#2", X: "d2@7 ~ a2@2 d2 ~ d2@4", Y: "a1@9 ~ a1 ~ a1@4", Z: "b1@9 ~ f#2 ~ b2@4",
  AA: "c#2 g#1", AB: "c#2@7 ~ c#2@4 b1@4", AC: "e1@12 ~ e1 b1@2", AD: "c#2@8 c#1@6 a1 g#1",
  AE: "f#1@4 ~ f#1 f#2 ~ e2@3 ~ e1@4", AF: "c#2@7 ~ c#1@4 c#2@3 ~", AG: "f#1@4 ~ f#1 f#1@2 g#1@4 c#2@4",
  AH: "f#1@4 ~ f#1 f#1@2 g#1@8", AI: "g#1 c#1", AJ: "f#1@5 ~ f#1 ~ e1@8", AK: "d1@8 a1@5 ~ a1 ~", AL: "e1@13 e1 b1@2",
  AM: "e2 f#2 g#2 e2", AN: "b1@12 ~ b1 b1@2", AO: "g#1@8 c#2@5 ~ c#2@2", AP: "f#1@5 ~ f#2 ~ e2@5 ~ e2 ~",
  AQ: "d2@6 e2 d2 c#2@6 a1 ~", AR: "b1@13 ~ b1 ~", AS: "g#1@2 c#2 c#1", AT: "f#1@4 ~ f#1 f#1@2 g#1@7 ~",
  AU: "a1@6 ~ a1 a1@8", AV: "g#1@6 ~ g#1 f#1@8", AW: "f#1@4 ~ f#1 f#2 ~ e2@4 e1@4", AX: "b1@10 f#1 ~ b1@4",
  AY: "c#2@5 ~ c#2@2 g#1@6 g#1@2", AZ: "g#1@6 ~ g#1 f#1@5 ~ f#1@2", BA: "c#2@4 c#1@3 g#1",
  BB: "f#1@4 ~ f#1 f#2@2 e2@3 ~ e1@4", BC: "f#1@5 ~ f#1@2 g#1@7 ~", BD: "f#1@4 ~ f#1 f#1@2 g#1@4 c#2@3 ~",
  BE: "f#1@4 ~ f#1 f#1@2 g#1@3 ~ c#1@4", BF: "f#1@4 ~ f#1 f#1@2 f#1@4 ~ f#1 f#1@2", BG: "f#1/2",
})).s("gm_acoustic_bass").gain(0.72)

// chords · acoustic guitar nylon · "ClassGtr"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M N O P C D E F G H I J K L M N O P Q R S T M U K M U V Q M W X Q R S T M U K M U Y Z Y AA C
  AB E F G H I J K L M N O P Q R S T M U K M U V Q M W X Q R S T M U K M U AC Z Y AA AD AE AF@8 ~
>`.pickRestart({
  A: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2, a2@3 ~ a2@3 ~", // A5
  B: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [a2,e3,a3]@2, a2@6 ~@2 a2@5 ~@3", // A5
  C: "~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2, a2@3 ~ a2@4", // A5
  D: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3]@2 ~@2 [f3,b3] ~ [f3,b3] ~ [g#2,f3,b3]@2, g#2@7 ~ g#2@4 ~@4", // Fdim
  E: "~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2 ~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2, f#2 e2", // A
  F: "~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2 ~@2 [e3,a3] ~ [e3,a3] ~ [e3,a3]@2, d2@7 ~ a2@8", // A A5
  G: "~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3]@2, e2@7 ~ e2@7 ~", // E5
  H: "~@2 [e3,b3] ~ [e3,b3] ~ [e3,b3]@2 ~@2 [e3,b3] ~ [e3,b3] ~ [e2,e3,b3]@2, e2@7 ~ e2@5 ~@3", // E5
  I: "~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2 ~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2, b1@4 ~@2 b1 ~ b1@7 ~", // Bm
  J: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3]@2 ~@2 [f3,b3] ~ [f3,b3] ~ [c#2,f3,b3]@2, g#2@8 c#2@5 ~@3", // Fdim C#7
  K: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4]@2 ~@2 [g#3,a3,c#4] ~ [g#3,a3,c#4] ~ [g#3,a3,c#4]@2, f#2 e2", // F#m Amaj7
  L: "~@2 [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3]@2 ~@2 [c#3,f#3,a3] ~ [c#3,f#3,a3] ~ [c#2,c#3,f#3,a3]@2, d2@8 c#2@5 ~@3", // D F#m
  M: "~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2 ~@2 [d3,f#3,b3] ~ [d3,f#3,b3] ~ [d3,f#3,b3]@2, b1@7 ~ b1@8", // Bm
  N: "~@2 [f3,g#3,b3] ~ [f3,g#3,b3] ~ [f3,g#3,b3]@2 ~@2 [f3,g#3,b3] ~ [f3,g#3,b3] ~ [c#2,f3,g#3,b3]@2, g#2@8 c#2@5 ~@3", // Fdim C#7
  O: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4]@2 ~@2 [f3,g#3,b3] ~ [f3,g#3,b3] ~ [f3,g#3,b3]@2, f#2 g#2", // F#m Fdim
  P: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e2,e3,g#3,b3]@4, f#2@2 g#2 ~", // F#m E
  Q: "~@2 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]@2 ~@2 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]@2, a2@7 ~ a2@8", // A
  R: "~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2 ~@2 [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4]@2, g#2 f#2", // E A
  S: "~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2 ~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2, e2@7 ~ e2@7 ~", // E
  T: "~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2 ~@2 [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3]@2, e2 d2 c#2 e1", // E
  U: "~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2 ~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2, c#2@7 ~ c#2@8", // C#
  V: "~@2 [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3]@2 ~@2 [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3]@2, d2@7 ~ d2@8", // D
  W: "~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2 ~@2 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4]@2, c#2@7 ~ c#2@6 ~@2", // C#
  X: "~@2 [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4]@2 ~@2 [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4] ~ [f3,g#3,b3,c#4]@2, c#2@6 ~@2 c#2@7 ~", // C#7
  Y: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 ~@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4] ~, f#2@5 ~@3 g#2@8", // F#m C#7
  Z: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [c#2,f3,b3,c#4]@3 ~, f#2@5 ~@3 g#2@4 ~@4", // F#m C#7
  AA: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4]@3 ~, f#2@5 ~@3 g#2@8", // F#m C#7
  AB: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3]@2 ~@2 [f3,b3] ~ [f3,b3] ~ [c#2,f3,b3]@2, g#2@7 ~ c#2@4 ~@4", // Fdim C#7
  AC: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 ~@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4]@2, f#2@5 ~@3 g#2@8", // F#m C#7
  AD: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4]@2 ~@2 [f3,b3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4]@2, f#2@2 ~@2 g#2@3 ~", // F#m C#7
  AE: "~@2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~ [f#2,f#3,a3,c#4] ~ [f3,b3,c#4] ~ [f3,b3,c#4] ~ [c#2,f3,b3,c#4]@4, f#2 ~ g#2 ~", // F#m C#7
  AF: "[~@2 [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4]@2 ~@2 [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4]@114, f#2@4 ~@2 f#2 ~ f#2@6 ~@114]/8", // F#sus4
})).s("gm_acoustic_guitar_nylon").gain(0.39)

// chords · synth bass 2 · "PercSynt"
const synth_bass_2 = note(`<
  ~@30 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA ~@14 A B C D E F G H I J K L M N O P Q R S T U V AB AC AD
  AE AF AG AD AH ~@8
>`.pickRestart({
  A: "~@2 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2", // A
  B: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@3 ~ [a3,c#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2", // G#m E A
  C: "~@2 [g#3,b3,e4] ~ [g#3,b3] ~ [g#3,b3,e4]@3 ~ [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2", // E G#m E G#m E
  D: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@3 ~ [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2", // G#m E G#m E
  E: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@2 ~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@2", // Bm
  F: "~@2 g#3 ~ g#3 ~ [g#3,c#4,f4]@2 ~@2 g#3 ~ g#3 ~ [g#3,c#4,f4]@2", // C#
  G: "~@2 [a3,c#4] ~ f#4 ~ [a3,c#4,f#4]@2 ~@2 [c#4,e4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@2", // A F#m C#m
  H: "~@2 f#4 ~ [b3,d4,f#4] ~ [b3,d4,f#4]@3 ~ [d4,f#4] ~@3 [b3,d4,f#4]@2", // Bm D Bm
  I: "~@4 g#3 ~ [g#3,c#4,f4]@3 ~@3 [g#3,c#4,f4] ~ [g#3,c#4,f4]@2", // C#
  J: "~@2 [a3,d4,f#4] ~ [d4,f#4] ~ [a3,d4,f#4]@3 ~ [d4,f#4] ~@3 [a3,d4,f#4]@2", // D
  K: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@3 ~ c#4 ~@3 [a3,c#4,e4]@2", // A
  L: "~@2 [b3,d4,f#4] ~@3 [b3,d4,f#4]@3 ~ [b3,f#4] ~@3 [b3,d4,f#4]@2", // Bm B5 Bm
  M: "~@4 [g#3,c#4,f4] ~ [g#3,c#4,f4]@3 ~ [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C#
  N: "~@2 [g#3,f4] ~ g#3 ~ [g#3,c#4,f4]@3 ~ [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C#
  O: "~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2", // A
  P: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2 ~@2 [a3,c#4] ~@3 [a3,c#4,e4]@2", // G#m E A
  Q: "~@4 g#3 ~ [g#3,b3,e4]@2 ~@2 [g#3,b3] ~ g#3 ~ [g#3,b3,e4]@2", // E G#m E
  R: "~@2 [g#3,b3] ~ [g#3,b3] ~ [g#3,b3,e4]@2 ~@2 g#3 ~@3 [g#3,b3,e4]@2", // G#m E
  S: "~@2 f#4 ~ [d4,f#4] ~ [b3,d4,f#4]@2 ~@2 [b3,d4,f#4] ~ [d4,f#4] ~ [b3,d4,f#4]@2", // D Bm D Bm
  T: "~@2 [c#4,f4] ~ g#3 ~ [g#3,c#4,f4]@2 ~@2 [g#3,c#4,f4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C#
  U: "~@2 f#4 ~@3 [a3,c#4,f#4]@2 ~@4 [c#4,e4] ~ [c#4,e4,g#4]@2", // F#m C#m
  V: "~@2 f#4 ~ f#4 ~ [b3,d4,f#4]@2 ~@2 f#4 ~@3 [b3,d4,f#4]@2", // Bm
  W: "~@2 [g#3,c#4,f4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2 ~@2 g#3 ~ [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C# C#5 C#
  X: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4]@2 ~@2 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@2", // F#5 C#7
  Y: "~@2 f#3 ~ [f#3,c#4] ~ c#4@2 [g#3,b3] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@3 ~, ~@6 f#3 ~@9", // F#5 G#m C#7
  Z: "f#3 ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4]@2 ~@2 b3 ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@2", // F#5 C#7
  AA: "~@4 [f#3,c#4] ~ f#3 ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4]@3 ~", // F#5 C#7
  AB: "~@2 [g#3,c#4,f4] ~ [g#3,c#4] ~ [g#3,c#4,f4]@2 ~ g#3 ~@2 [g#3,c#4] ~ [g#3,c#4,f4]@2", // C# C#5 C# C#5 C#
  AC: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~@3 [g#3,b3] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 G#m C#7
  AD: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~@3", // F#5 C#7
  AE: "[f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~@3 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 C#7
  AF: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,c#4] ~@3, ~@6 b3 ~", // F#5 C#7 C#5
  AG: "~@2 [f#3,c#4] ~ [f#3,c#4] ~ [f#3,c#4] ~@3 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 C#7
  AH: "b3 ~ [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4] ~@3 [f#3,b3,c#4] ~ [f#3,b3,c#4] ~ [f#3,b3,c#4] ~", // F#sus4
})).s("gm_synth_bass_2").gain(0.18).pan(0.4)

// chords · synth bass 2 · "PercSynt" · soft notes
const synth_bass_2_soft = note(`<
  ~@31 A B C ~ D E F G H I J K E L M N O P Q R S T ~ U T V ~@15 A B C ~ D E F G H I J K E L M N O P Q R S W ~@15
>`.pickRestart({
  A: "~@10 e4 ~@5", B: "~@12 e4 ~@3", C: "~@2 e4 ~ e4 ~@11", D: "~@2 c#4 ~ [c#4,f4] ~@5 c#4 ~ c#4 ~@3",
  E: "~@4 c#4 ~@11", F: "~@12 f#4 ~@3", G: "~@2 [g#3,c#4,f4] ~@7 [c#4,f4] ~@5", H: "~@10 a3 ~@5",
  I: "~@4 [a3,c#4] ~@11", J: "~@10 d4 ~@5", K: "~@2 [g#3,c#4] ~@7 f4 ~@5", L: "~@4 c#4 ~@7 c#4 ~@3",
  M: "~@2 e4 ~@9 c#4 ~@3", N: "~@2 [g#3,b3] ~ b3 ~@7 b3 ~@3", O: "~@2 e4 ~@13", P: "~@2 d4 ~ b3 ~@11",
  Q: "~@2 g#3 ~ c#4 ~@11", R: "~@4 [c#4,f#4] ~@5 c#4 ~ g#4 ~@3", S: "~@2 d4 ~@9 f#4 ~@3", T: "~@10 c#4 ~@5",
  U: "~@2 c#4 ~@5 c#4 ~@7", V: "~@2 f#3 ~@3 c#4 ~@9", W: "~@9 c#4 ~@6",
})).s("gm_synth_bass_2").gain(0.13).pan(0.4)

// other · string ensemble 1 · "StrinLow"
const string_ensemble_1 = note("<~@43 A B C D@2 ~@36 E B C F@2 ~@20>".pickRestart({
  A: "~@3 c#3@11 b2@2", B: "a2", C: "g#2 f#2", D: "[e2@15 ~]/2", E: "~ c#3@13 b2@2", F: "e2/2",
})).s("gm_string_ensemble_1").gain(0.48).pan(0.2)

// chords · string ensemble 1 · "StrinMed"
const string_ensemble_1_2 = note(`<
  ~@17 A B@3 C D@2 E@6 F@2 G@3 H@2 I J K@2 L M@2 N O P Q R S@3 T U ~@9 V W X@2 Y@2 Z@2 AA@3 AB AC@3 AD@2 AE@5 AF O P Q R
  S@3 T AG ~ AG ~@12
>`.pickRestart({
  A: "[g#3,b3,f4]", B: "[f#3@2 g#3@2 f#4@2 ~@2 [g#3,b3]@3 f#3, a3@2 ~, ~@6 e4@5 ~]/3", C: "g#3 a3 b3 c#4",
  D: "[d4@3 c#4 ~ c#4 d4@2, b3, [d3,f#3] [c#3,f3,g#3]]/2", // D C#
  E: "[f#3@8 g#3@8 f#4@16 d4@12 c#4@4 ~@4 c#4@4 d4@5 ~@3 [f#3,a3]@8 [f3,g#3,b3]@8 [f#3,a3]@8 [e3,g#3,b3]@6 ~@2, [a3,c#4]@32 b3@33 ~@31, ~@32 [d3,f#3]@16 [c#3,f3,g#3]@16 c#4@25 ~@7]/6", // F#m Fdim F#m E A D C#
  F: "[[a3,c#4]@2 [g#3,b3] [a3,c#4], e4]/2", G: "[[e3,g#3]@3 [f#3,a3] [e3,g#3]@4 [d3,f#3]@4, b3]/3",
  H: "[[f3,g#3]@4 f#3@2 g#3 c#4, c#4@7 ~, ~@16 a3@13 ~@3]/2", I: "[d3,f#3,b3]", J: "[f3,g#3,c#4]",
  K: "[[f#3,d4] [e3,c#4], a3]/2", L: "[f#3,b3,d4]", M: "[[g#3,c#4,f4]@14 a3 [b3,d4], ~@7 c#4]/2",
  N: "[c#4,e4]!3 [c#4,f#4]", O: "[c#4,g#4] [d4,a4]", P: "[e4,g#4]@3 [f#4,a4]", Q: "[e4,g#4,b4]@15 ~", R: "[b3,d4,f#4]",
  S: "[[g#3,f4]@8 a3@7 ~ [b3,d4]@8, c#4@2 ~, ~ f#4@2]/3", T: "[g#3,c#4,f4]@15 ~",
  U: "~@2 a2@2 g#2@2 a2@2 c#3@2 d3@2 c#3 ~@3", V: "~@3 c#4", W: "~ c#4 d4 ~, [f3,g#3]",
  X: "[f#3@2 g#3@2 f#4@2 [g#3,b3] [a3,c#4], [a3,c#4]@3 ~]/2", // G#m A
  Y: "[~@3 c#4 ~ c#4 d4 ~, b3, d4@3 ~ [f3,g#3]@4, ~@2 f#3@15 ~@15]/2", // Fm
  Z: "[[f#3,a3] [g#3,b3] [f#3,a3] [e3,g#3,b3], c#4@3 ~]/2", // F#m G#m F#m E
  AA: "[[a3,c#4]@8 [g#3,b3]@4 [a3,c#4]@4 [g#3,b3]@7 b3, e4@23 ~]/3", AB: "e4@2 d4@2 c#4 d4 e4@2",
  AC: "[[f#3,d4]@2 [f3,g#3]@2 f#3 g#3, b3@2 a3, ~ c#4@2]/3", AD: "[f#3 f#4 [g#3,c#4,f4]@2, b3, d4 ~]/2",
  AE: "[[d4,f#4]@16 [c#4,e4]@16 [f#3,d4]@16 [f3,g#3,c#4]@27 ~ [a3,c#4]@2 [b3,d4]@2, a3@32 b3@43 ~@5]/5", // D C#m D C# A Bm
  AF: "[c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@4 [c#4,f#4]@4", AG: "~ a2 g#2 a2 c#3 d3 c#3 ~",
})).s("gm_string_ensemble_1").gain(0.31)

// chords · string ensemble 1 · "StrinUpp"
const string_ensemble_1_3 = note(`<
  ~@8 A B C@4 D@2 E F G@3 H I@2 J@2 K@2 L@2 ~ M N O P Q@2 R S T@2 U@3 V W X Y P Z@2 AA AB AC AD ~ AE ~@6 AF AG@3 AH@2
  AI@2 AJ AK AL AM AN AO@2 R AP T@2 AQ@3 V W X Y AR AS AT AU AV ~ AW AX AD ~ AY@7 ~@3
>`.pickRestart({
  A: "~@3 c#4", B: "d4 c#4 d4 e4, [f3,g#3]",
  C: "[f#3@2 [e3,g#3]@2 d3@2 ~@2 d4@3 c#4 d4 c#4 d4 e4, [a3,c#4]@32 b3@31 ~, ~ f#3@2 [f3,g#3,f4], ~@3 f#4@3 ~@2]/4", // E A Fm
  D: "[[f#3,a3]@8 [f3,g#3,b3]@8 [f#3,a3]@8 [e3,g#3,b3]@5 ~@3, c#4@3 ~]/2", E: "[a4,c#5]", F: "[g#4,b4]",
  G: "[f#4@2 g#4@2 f#4@2 c#4@2 g#4@3 f#4, a4@6 e4@5 ~]/3", H: "e4", I: "[[d4,f#4] [f4,g#4], b4]/2",
  J: "[f#4 g#4 f#4 f#5, [a4,c#5]]/2", K: "[d5@3 c#5 ~ c#5 d5 ~, b4, f#4 [f4,g#4]]/2",
  L: "[[f#4,a4]@4 [g#4,b4]@4 [f#4,a4]@4 [e4,g#4,b4]@3 ~, c#5@3 ~]/2", M: "[e4,g#4] [f#4,a4]", N: "[e4,g#4]@3 [f#4,a4]",
  O: "[g#4,b4]@7 [a4,c#5]", P: "[b4,d5]", Q: "[f4@6 ~ g#4 a4@4 g#4@4, c#5, ~@3 f#4 ~@4]/2", R: "[b4,d5,f#5]",
  S: "g#4 g#5, [c#5,f5]", T: "[[d5,f#5]@4 c#5@3 c#6, a5, ~ e5]/2",
  U: "[d6@8 d5@8 [g#4,c#5,f5]@27 ~ [a4,c#5]@2 [b4,d5]@2, [f#5,b5]@17 ~@31, ~@8 b4@35 ~@5]/3", // C# A Bm B5
  V: "[c#5,e5]@3 ~ [c#5,e5]@4 [c#5,e5]@4 [c#5,f#5]@4", W: "[c#5,g#5] [d5,a5]", X: "[e5,g#5]@3 [f#5,a5]",
  Y: "[g#5,b5]@13 ~@3", Z: "[f4@12 f#4@2 g#4@2 a4@3 ~ g#5@2 a5@2 g#5@4 c#6@4, c#5@19 ~@13]/2", AA: "d6 [b4,d5,f#5]@3",
  AB: "[g#4,c#5,f5]", AC: "~@2 a3@2 g#3@2 a3@2 c#4@2 d4@2 c#4 ~@3", AD: "~@8 [b4,c#5] ~@3 [b3,c#4] ~@3",
  AE: "~@8 [b5,c#6] ~@3 [b4,c#5] ~@3", AF: "[d4,f#4]",
  AG: "[[c#4,f4]@2 b4@2 ~@4 f#4@2 [b4,g#5] [c#5,a5], ~@8 g#4@25 ~@15, ~@2 a4@3 ~]/3", // C# E F#m
  AH: "[d5@3 c#5 ~ c#5 d5@2, b4, f#4 [f4,g#4]]/2", // Fm
  AI: "[[f#4,a4]@4 [g#4,b4]@4 ~@2 c#5 d5 [g#4,b4,e5]@4, c#5@5 ~@3, ~@2 [f#4,a4] ~]/2", AJ: "[a4,c#5], e5 ~",
  AK: "[b4,g#5] [c#5,a5]", AL: "g#5@3 a5, b4", AM: "[e5,g#5,b5]", AN: "[f#4,d5]",
  AO: "[f4@6 f#4 g#4 a4@3 a5 g#5@2 g#4@2, c#5@22 g#5 ~@9]/2", AP: "f5@11 f#5@2 g#5@3, [g#4,c#5]",
  AQ: "[[b5,d6]@8 d5@8 [g#4,c#5,f5]@27 ~ [a4,c#5]@2 [b4,d5]@2, f#5 ~@2, ~@8 b4@35 ~@5]/3", AR: "d6 d5, f#5",
  AS: "[c#5,f5]@6 [f#4,f#5] [g#4,g#5]", AT: "[a4,a5]@2 [c#4,c#5]@2 [g#4,g#5]@3 [c#5,c#6]", AU: "[d5,f#5]",
  AV: "[c#5,f5]", AW: "~@6 c#5 ~ [b5,c#6] ~ g#4 ~ [b4,c#5] ~ c#4 ~", AX: "~ a3 g#3 a3 c#4 d4 c#4 ~",
  AY: "[~@8 [b5,c#6] ~ g#4 ~ [f#4,b4,c#5]@89 ~@11]/7", // Bsus2 F#sus4
})).s("gm_string_ensemble_1").gain(0.29).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@16 A@2 B C@5 A@3 B A@3 B C A B C D A B C A B A@3 B C A B A@2 B C B C B@2 A@2 B C@5 A@3 B A@3 B C A B C D A B C A B
  A@3 B C A B A@2 B C B C B@3 A B ~@8
>`.pickRestart({
  A: "x ~@3 x ~@2 x", B: "x!2", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~@2 x",
})).gain(0.56)

// … 21 more lines

More by Mango