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, A@4 for four bars: 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 B ~@5 K ~ L ~@5 A M N ~@9 A B ~@5 C D E F G H I J B ~@5 O ~ P ~ Q ~ P ~ P ~@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: "~ a2 g#2 a2 c#3 d3 c#3 ~, [f#1,f#2]@7 ~@9", L: "~ a3 g#3 a3 c#4 d4 c#4 ~, [f#1,f#2] ~", M: "e2 f#2 g#2 e2",
  N: "b1@5 ~@3", O: "~ a2 g#2 a2 c#3 d3 c#3 ~, [f#1,f#2]", P: "[f#1,f#2]@11 ~@5",
  Q: "~@2 a3@2 g#3@2 a3@2 c#4@2 d4@2 c#4@2 b3 ~, [f#1,f#2]@3 ~@5", // F#
})).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 T U V W N AD N AE B AF AG AH AI AJ AK AL
  AM AN L AO N AP AQ AR AI R V T AS V W X Y AT AU AB P AV AI R V AW U V W N AX N AE N AY AZ BA@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@8 c#1@6 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: "f#1@4 ~ f#1 f#1@2 g#1@4 c#2@4",
  AE: "f#1@4 ~ f#1 f#1@2 g#1@8", AF: "g#1 c#1", AG: "f#1@5 ~ f#1 ~ e1@8", AH: "d1@8 a1@5 ~ a1 ~", AI: "e1@13 e1 b1@2",
  AJ: "e2 f#2 g#2 e2", AK: "b1@12 ~ b1 b1@2", AL: "g#1@8 c#2@5 ~ c#2@2", AM: "f#1@5 ~ f#2 ~ e2@5 ~ e2 ~",
  AN: "d2@6 e2 d2 c#2@6 a1 ~", AO: "g#1@2 c#2 c#1", AP: "f#1@4 ~ f#1 f#1@2 g#1@7 ~", AQ: "a1@6 ~ a1 a1@8",
  AR: "g#1@6 ~ g#1 f#1@8", AS: "f#1@4 ~ f#1 f#2 ~ e2@3 ~ e1@4", AT: "b1@10 f#1 ~ b1@4", AU: "c#2@5 ~ c#2@2 g#1@6 g#1@2",
  AV: "g#1@6 ~ g#1 f#1@5 ~ f#1@2", AW: "c#2@4 c#1@3 g#1", AX: "f#1@4 ~ f#1 f#1@2 g#1@4 c#2@3 ~",
  AY: "f#1@4 ~ f#1 f#1@2 g#1@3 ~ c#1@4", AZ: "f#1@4 ~ f#1 f#1@2 f#1@4 ~ f#1 f#1@2", BA: "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 Y Z Y AA AC AD AE@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@2 ~@2 g#2@3 ~", // F#m C#7
  AD: "~@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
  AE: "[~@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 AD AF AD AG ~@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] ~@3 [g#3,b3,c#4] ~ [g#3,b3,c#4] ~ [g#3,b3,c#4] ~", // F#5 C#7
  AG: "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@4 F@2 G@2 H@3 I@2 J K L@2 M N@2 O P Q R S T@3 U V ~@9 W X Y@2 Z@2 AA@2 AB@3 AC AD@3 AE@2 AF@5 O P Q
  R S T@3 U 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, [a3,c#4] b3, ~@2 [d3,f#3] [c#3,f3,g#3]]/4", // A D C#
  F: "[[f#3,a3]@4 [f3,g#3,b3]@4 [f#3,a3]@4 [e3,g#3,b3]@3 ~, c#4@25 ~@7]/2", G: "[[a3,c#4]@2 [g#3,b3] [a3,c#4], e4]/2",
  H: "[[e3,g#3]@3 [f#3,a3] [e3,g#3]@4 [d3,f#3]@4, b3]/3", I: "[[f3,g#3]@4 f#3@2 g#3 c#4, c#4@7 ~, ~@16 a3@13 ~@3]/2",
  J: "[d3,f#3,b3]", K: "[f3,g#3,c#4]", L: "[[f#3,d4] [e3,c#4], a3]/2", M: "[f#3,b3,d4]",
  N: "[[g#3,c#4,f4]@14 a3 [b3,d4], ~@7 c#4]/2", O: "[c#4,e4]!3 [c#4,f#4]", P: "[c#4,g#4] [d4,a4]",
  Q: "[e4,g#4]@3 [f#4,a4]", R: "[e4,g#4,b4]@15 ~", S: "[b3,d4,f#4]",
  T: "[[g#3,f4]@8 a3@7 ~ [b3,d4]@8, c#4@2 ~, ~ f#4@2]/3", U: "[g#3,c#4,f4]@15 ~",
  V: "~@2 a2@2 g#2@2 a2@2 c#3@2 d3@2 c#3 ~@3", W: "~@3 c#4", X: "~ c#4 d4 ~, [f3,g#3]",
  Y: "[f#3@2 g#3@2 f#4@2 [g#3,b3] [a3,c#4], [a3,c#4]@3 ~]/2", // G#m A
  Z: "[~@3 c#4 ~ c#4 d4 ~, b3, d4@3 ~ [f3,g#3]@4, ~@2 f#3@15 ~@15]/2", // Fm
  AA: "[[f#3,a3] [g#3,b3] [f#3,a3] [e3,g#3,b3], c#4@3 ~]/2", // F#m G#m F#m E
  AB: "[[a3,c#4]@8 [g#3,b3]@4 [a3,c#4]@4 [g#3,b3]@7 b3, e4@23 ~]/3", AC: "e4@2 d4@2 c#4 d4 e4@2",
  AD: "[[f#3,d4]@2 [f3,g#3]@2 f#3 g#3, b3@2 a3, ~ c#4@2]/3", AE: "[f#3 f#4 [g#3,c#4,f4]@2, b3, d4 ~]/2",
  AF: "[[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
  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)

// drums · snare
const snare = s("sd").struct("<~@15 A B@20 C B@6 D B@9 E B E C B@20 C B@13 C B@2 E B E C E B E ~@8>".pickRestart({
  A: "~@9 x!4 ~@3", B: "~ x ~ x", C: "~@4 x ~@6 x!2 ~@3", D: "~@4 x ~@5 x!3 ~@3", E: "x!2 ~ x",
// … 18 more lines

More by Mango