Strudelify

L'impossibile vivere

Zero

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

// bass · electric bass finger
const bass = note(`<
  ~@23 A B C D A B C E F G H I J K L M N O P M N Q R S T U V W X U Y X U V W X U Y Z AA@4 ~ AB@3
>`.pickRestart({
  A: "d#2 f2", B: "e2 d#2", C: "c#2 c2", D: "f1@2 f#1 a#1", E: "b1@2 c#2!2", F: "f#2 d#2", G: "f1 f#1", H: "d#1 f1",
  I: "d#1@6 c#1 d#1 c#1@8", J: "f#1 d#1", K: "f1@3 f1 f#1@4", L: "d#1@6 c#1 d#1 c#1@2 c#1@2 c#2@2 c#1@2",
  M: "f#1@5 ~ f#1@2 d#1@8", N: "f1@5 ~ f1@2 f#1@8", O: "d#1@5 ~ d#1@2 f1@8", P: "d#1@6 d#1@2 c#1@3 c#1 c#2@2 c#1@2",
  Q: "d#1@5 ~ d#1@2 c#1@8", R: "d#2", S: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ d2 ~ d2 ~ d2 ~ d2@2", T: "e1@5 ~ e1@2 f#1@8",
  U: "g#1@5 ~ g#1@2 a1@8", V: "f#1@5 ~ f#1@2 g#1@8", W: "f#1@3 f#1 e1@4", X: "a1@5 ~ a1@2 f#1@8",
  Y: "f#1@5 ~ f#1@2 e1@8", Z: "f#1 f1", AA: "[e1@9 f#1@5 g#1@5 c#2@8 d2@8 ~@8 d2@8 ~@13]/4", AB: "[~ a1@4 ~]/3",
})).s("gm_electric_bass_finger").gain(0.71)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S T@2 A U V W X Y Z AA AB AC AD AE AF AG AH@2 AI AD AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV@2 AW AX AY AZ BA BB@2 BC BD ~ BE@7
>`.pickRestart({
  A: "~@4 f#4@2 f4@2 f4 ~@3 b2@2 f#3@2, a#2 [b1,b3], [c#4,g#4]@2 [f#3,c#4]@2 ~ f#2@3, ~ c#3@5 d#4@2", // B C#5 F#5
  B: "~ g#4 f#4 f4 ~@3 f#3, a#2 [b1,b3], ~ c#4 f4 [b2,d#4], ~@5 f#2@3", // B
  C: "~@2 f#4 f4 ~@2 b2 f#3, a#2 [b1,b3], [c#4,g#4] [f#3,c#4] f4 d#4, ~ c#3@5 ~@2, ~@5 f#2@3", // B C#5 F#5
  D: "~@2 f#3 ~ f#3@2 f3@2, f#2 c#2, c#4@2 ~ c#4@5, ~ c#3@7",
  E: "f#4 ~ d#4 f#4 ~@3 g#4, d#2 f2, ~ a#3@4 g#3@3, ~@2 g#4 c#4",
  F: "~@3 g#4 f#4 f#3 f3 d#3, e2 d#2, g#4 c#4 ~@2, ~ g#3@3 ~@4",
  G: "f#4@2 f4@2 f#4@2 ~@2 d#4@6 f4 f#4, a#3@5 ~ a#3@10, d#2 ~@7 c2@8",
  H: "g#4 ~@2 g#4 f#4 a#4 f4 d4, b2@2 c#3 [d3,b3], ~ b3@3 ~@4, ~ d#4 ~@2", // G
  I: "d#2 ~ a#3 f#4 ~@3 g#4, f#4 f#3 g#4 c#4, ~ a#2@3 c#3@4, ~@5 f3@3",
  J: "~@3 g#4 f#4 f4 f#4 a#3, e2 d#2, g#4 c#4 ~@2, ~@2 g#3@6 a#3@5 ~@3",
  K: "~@2 a#3@2 ~@2 f4 f#4 f#4@4 d#4@3 ~, d#3 c3, d#4@3 ~@5, ~ f#3 ~@2",
  L: "~@3 g#4 f#4 a#4 g#4 c#5, b2@2 [c#3,c#4] [c#2,d#4], g#4 d#4 ~@2, ~ b3@3 ~@4", // C# C#sus2
  M: "~@2 f#4 a#4 g#4 ~ f#4 g#4, f#2 b2, a#4 ~@3, ~ c#4@3 ~ g#3@3",
  N: "~@2 c#4 g#4 ~ c#4 f#4@2, c#3 f#2, c#4 ~ a#4 ~, ~ g#3@3 ~@4",
  O: "a#3 ~ d#4 [a#3,f#4] g#4 ~@2 g#4, d#2 f2, f#4 ~ a#3@4 ~@4 g#3@6, ~@3 c#4", // D#m
  P: "~@6 f#4@2 [b3,f#4] ~ g#3 ~ b3@2 b3@2, b2 c#3, f#4 b3 c#4 [f4,g#4], ~@2 f#3@6 ~@4 a#3 ~@3", // B5 Fm
  Q: "~@2 a#3@2 ~@2 a#4 ~@7 b4@2, f#2 d#2, a#4@3 ~ b4@2 f#4@2, ~@2 c#4@2 ~ b3@3",
  R: "~@4 d#4@2 g#4@2 g#4 ~@3 f#4@4, c#2 [f#2,a#3,c#4], g#4@3 ~@5, ~ b3@3 ~@4", // F#
  S: "f#4 ~@5 f#4@2 f#4@4 f4@4, d#2 c#2, ~ g#3@7, ~ b3@3",
  T: "[~@2 f#4 f4 ~@2 b2 f#3 ~ g#4 f#4 f4 ~@3 f#3, a#2 b1 ~ [b1,b3], [c#4,g#4] [f#3,c#4] b3@3 c#4 ~ [b2,d#4], ~ c#3@4 f#2@3 a#2@4 ~ f#2@3, ~@2 f4 d#4@2 ~ f4 ~]/2", // B C#5 F#5 B
  U: "f#2 ~@3 f#3@2 ~@2 f#3@4 f3@4, c#4@2 ~ c#4@5, ~ c#3@7, ~ c#2",
  V: "~@2 a#3@2 f#4 ~ a#3@2 ~@2 g#3@2 [f4,g#4] ~ g#3@2, [d#4,f#4] d#4 [f4,g#4] ~", // Fm D#m Fm
  W: "~@6 g#3 ~ f#4@2 f4@2 a#3 ~ a#3@2, c#4 [c#4,e4,g#4] ~ f#4, ~ g#3@2 ~ a#3@2 ~@2", // C#m
  X: "a#3@2 a#3 ~ a#3 ~ f4 d#4 a#3 ~ a#3@2 ~@2 d#4@2, f#4@3 ~ f#4@3 ~, ~@3 a#3",
  Y: "~@3 g#4 f#4 a#4 f4 d4, g#4@3 ~@5, ~ b3@3 [a#3,d#4]@2 g#3@2, ~ d#4 ~@2", // D#5
  Z: "~@3 f#4 ~@3 c#5, d#2 ~, ~ a#2@3 ~@4, ~ f#3 g#4@2",
  AA: "c#5 ~@5 g#4@2 ~@4 d#4@2 f4 d#4, ~ g#3@3 ~ a#3@3, ~ c#4 a#4@2",
  AB: "~@4 d#4@2 f4 d#4 ~@6 f4 d#4, c#3 c3, f#4@3 ~ f#4@3 ~, ~ a#3@3 ~ d#4@2 ~, ~@3 a#3",
  AC: "~@2 b4 [b4,d#5] ~ c#4 f#4 [g#4,c#5], g#4@4 g#4 ~@3 [g#4,c#5]@4 g#4 ~@3, ~ d#4@3 ~@4", // B C#5
  AD: "[f#4,a#4,c#5]@3 [c#4,f#4,a#4] [b3,d#4,g#4]@4", // F# G#m
  AE: "g#4 ~@3 [f4,g#4]@2 c#5@2 ~@4 f#4@4, ~ c#4@3 ~ c#4@3, ~@6 g#4 ~ a#4@8", // Fm
  AF: "~@3 f#4 ~@3 g#4, f#4@3 ~ g#4@3 ~, ~ b3@3 ~ c#4@3, ~ d#4 ~ f4",
  AG: "~@6 b4 ~ g#4@4 f4 f#4 g#4@2, b4@3 ~@5, ~ d#4@3 ~@4, ~ f#4 ~@2",
  AH: "[~@6 f#4@2 ~@6 a#4 ~@7 g#4@2 g#4 ~@5 a#3 ~, a#4@8 g#4@6 ~ g#4@7 ~@6 f#4@4, ~ a#3@3 ~ b3@3 ~ b3@3 ~ a#3@2 ~, ~ c#4 ~ d#4 ~ d#4 ~@2]/2",
  AI: "~@6 a#4 ~ [g#4,b4]@2 d#5@2 ~@4, a#4@6 ~@4 b4 ~@5, ~ d#4@3 ~@4, ~ f#4 ~@2", // G#m
  AJ: "g#4 ~@3 [f4,g#4]@2 [g#4,c#5]@2 ~@4 f#4@4, ~ c#4@3 a#4@4, ~@5 c#4@3", // Fm C#5
  AK: "~@6 f#4 ~@7 g#4 ~, f#4@3 ~ g#4@3 ~, ~ b3@3 ~ c#4@3, ~ d#4 ~ f4",
  AL: "~@3 b4 f#4@2 f4@2, b4@3 ~@5, ~ b3@3 [c#4,g#4]@4, ~ f#4 ~@2", // C#5
  AM: "~@3 a#4 g#4@2 f#4 g#4, a#5 ~, ~ c#4@7, ~ f#4 ~@2", AN: "g#4 ~@5 b4@2 g#4@2 g#4@2 a#4@4, ~ c#4@7, ~ g#4 ~@2",
  AO: "~@4 f#3@2 a#3@2 g#3@7 ~, f#3 ~@3, ~@2 c#3@13 ~", AP: "~@3 f#4@5, d#3, ~ a#3@7, ~ d#4@3",
  AQ: "[b3,d4]@2 [b3,f#4] [b3,g#4] [a4,d5,f#5,a5] [b4,f#5] [c#5,a5] [b4,d5,f#5,a5], ~@4 d4 ~ d4 ~@3 [d5,a5] ~ f#5 ~@3", // Bm B5 E D B5 F#m Bm7 D5
  AR: "[c#5,e5,c#6]@3 [e4,a4,c#5] [d4,f#4,b4]@4, a5 ~@15", // C#m A Bm
  AS: "~@2 g#4 [b4,e5] ~@2 a4@2, b4@4 b4 ~@3 c#5@8, ~ e4@3 ~ e4@3", // E5
  AT: "~@3 a4 ~@3 b4, a4@3 ~ b4@3 ~, ~ d4@3 ~ e4@3, ~ f#4 ~ g#4",
  AU: "~@6 d5 ~ b4@4 g#4 a4 b4@2, d5@3 ~@5, ~ f#4@3 ~@4, ~ a4 ~@2",
  AV: "[~@6 a4@2 ~@6 c#5 ~@7 b4@2 b4 ~@5 c#4@2, c#5@8 b4@6 ~ b4@7 ~@6 a4@4, ~ c#4@3 ~ d4@3 ~ d4@3 ~ c#4@2 ~, ~ e4 ~ f#4 ~ f#4 ~@2]/2",
  AW: "~@3 c#5 [b4,d5] [d5,f#5] ~@2, c#5@3 ~@5, ~ f#4@3 ~@4, ~ a4 ~@2", // Bm D
  AX: "~@3 a3 ~@2 e4@2, a4 b4, ~ a3@2 ~@2 b3@3, ~ e4 ~@2",
  AY: "~@2 g#4 e5 ~@2 a4@2, b4@4 b4 ~ b4 ~ c#5@8, ~ e4@3 ~ e4@3",
  AZ: "~@6 a4 ~@7 b4 ~, a4@3 ~ b4@3 ~, ~ d4@3 ~ e4@3, ~ f#4 ~ g#4",
  BA: "~@6 d5 ~ a4@4 g#4@4, d5@3 ~@5, ~ d4@3 [e4,b4]@4, ~ a4 ~@2", // E5
  BB: "[~@6 a4@2 ~@6 c#5 ~@7 b4@2 ~@6 c#4@2, c#5@8 b4@6 ~ b4@7 ~@2 b4@4 a4@4, ~ c#4@3 ~ d4@3 ~ d4@3 ~ c#4@2 ~, ~ e4 ~ f#4 ~ f#4 ~@2]/2",
  BC: "a3@3 ~", BD: "~@3 c#4 ~@2 a4@2, c#4@3 ~ d4@4, ~ f#4@3 ~ f4@3, ~ a4 ~@2",
  BE: "[~@7 a4@2 g#4@2 g#4 ~@3 d3@2 a3@2 ~@2 b4@2 a4@2 g#4@2 ~@6 a3@2 ~@4 a4@2 g#4@2 g#4 ~@3 d3@2 a3@2 ~@8 e4 ~@6 e2@6 [e3,a3,b3,c#4]@16 [e5,b5,e6]@15 ~@9, ~@3 c#3@8 [d2,d4]@8 ~@8 [d2,d4]@8 ~@2 e3@10 f#4@5 e4@7 ~@53, ~@3 [e4,b4]@4 [a3,e4]@4 ~@2 a2@6 c#3@8 ~@2 a2@6 [e4,b4]@4 [a3,e4]@4 ~@2 a2@7 ~@4 e3@15 ~@41, ~@5 e3@10 f#4@4 ~@4 e4@4 g#4@4 [d3,f#4]@4 c#3@8 [d2,d4]@9 ~@2 e2@12 ~@46]/7", // A E5 D E5 A5 E5 A5 D
})).s("gm_piano").gain(0.64).pan(0.4)

// other · bassoon
const bassoon = note("<~@45 A B ~@18 C@3 ~@2>".pickRestart({
  A: "~@9 a#3 f#3 a#3 d#3 f#3 a#2@2", B: "g#2 ~", C: "[~@3 c#2@8 d2@9 e2@21 ~@7]/3",
})).s("gm_bassoon").gain(0.52).pan(0.3)

// other · french horn
const french_horn = note(`<
  A B C D ~@15 A B@2 E ~@8 F G H I J G E K L M N O P@2 ~@2 Q R S T U V W X Y Z AA AB@2 AC ~@9
>`.pickRestart({
  A: "~ c#4!2 b3", B: "c#4@2 c#4 b3", C: "~@2 d#4 c#4 c#4@2 b3@2", D: "a#3 g#3", E: "c#4 b3", F: "a#3@8 b3@7 ~",
  G: "b3 c#4", H: "c#4 ~@3 f#4@4 g#4@4 c#5@4", I: "b4 c#5", J: "a#3 b3", K: "f#3 g#3", L: "g#3@2 g#3 f#3",
  M: "~@2 c#4@3 b3@3 d#4@4 c#4@4, f#3 g#3", N: "c#4 b3 [f#3,b3] [f3,a#3], f#3 ~", O: "f#4 g#4",
  P: "[g#4 ~@7 g#4@4 f#4@16 f4@4]/2", Q: "a3", R: "b3@3 a3", S: "a3 b3", T: "a3@3 b3", U: "a3@8 b3@7 ~",
  V: "b3@2 b3 a3", W: "a3@3 g#3", X: "[e3,c#4]@6 [d3,b3]@2 [d3,b3]@7 ~", Y: "[f#3,d4]@3 [e3,c#4] [e3,c#4]@4",
  Z: "~@2 e4@3 d4@3 f#4@4 e4@4, a3 b3", AA: "e4 d4!2 [g#3,c#4], a3@3 ~", AB: "[~ a3 ~@2 g#3@2 [a3,c#4]@2, ~ b3@2 ~]/2",
  AC: "a3 ~@11 g#3@4",
})).s("gm_french_horn").gain(0.37).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@2 A B ~@8 C D E F G H I J K L@2 M N O P Q@2 O R S T U V W@3 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@2 AM AN AO@2
  AK AL@2 AP AQ@8
>`.pickRestart({
  A: "[g#3,f5]@2 [f#3,d#5] [f3,c#5] [f3,c#5]@2 [d#3,b4]@2", B: "c#3 f#2 [g#2,f4,g#4]@2, a#4 ~", C: "f#2 d#2",
  D: "f2 f#2", E: "d#2 f2", F: "d#2 c#2", G: "f#2 d#3", H: "c#2 f#2", I: "d#3 c#3", J: "a#2@8 b2@7 ~", K: "a#2 b2",
  L: "[a#2 b2 c#3 [c#3,g#3], f#3@3 ~]/2", M: "~ d#3 f3@2", N: "g#3 a#3", O: "c#3 c3", P: "f2@2 f#2 a#2",
  Q: "[[d#3,d#4] f3 e3 [d#3,d#4], ~ c#4@2 ~]/2", R: "b2 c#3", S: "[f#2,f#4]@2 g#4 c#4, ~ g#2",
  T: "[f2,g#4]@2 a#4 c#4, ~ f#2", U: "c#4 f#4 g#4 c#5, d#2 f2", V: "c#5@4 f#5@4 f#5 ~@3 g#5@4, d#2 c#2",
  W: "[a#5 f#5 g#5 ~@2 g#5 a#5 ~@4 g#5, f#2 d#2 f2 f#2 d#2 c#2, ~@3 c#5@2 ~@2 c#6@2 f#5@2 ~]/3",
  X: "[f#2,a#4,a#5]@4 [b4,b5]@3 [c#5,c#6], ~ d#2", Y: "[f2,c#6]@4 c#5@3 [f#4,f#5], c#5 ~@7 f#2@8, ~@8 c#6 ~@7",
  Z: "[d#2,f#4,f#5] [f2,g#4,g#5]", AA: "[f#4,f#5]@3 [b4,b5] [f#4,f#5]@2 [f4,f5]@2, d#2 c#2",
  AB: "~ c#5 f#5 c#6 b5@3 g#5, f#2 d#2", AC: "~ c#5 g#5 b5 a#5@3 f#5, f2 f#2", AD: "~ f#5 c#2@2, d#2@4 g#5@3 ~",
  AE: "~@2 f#5 f5 f#5 g#5 a#5 g#5 f#5 f5 f#5 f5 f#5 ~@3, d#2",
  AF: "[d3,d4]@2 [f#3,f#4] [g#3,g#4] [a3,a4] [b3,b4] [c#4,c#5] [d4,d5]", AG: "[e2,c#5]@2 d5 a5, ~ f#2",
  AH: "b5@3 d5 c#5@3 g#4, g#2 a2", AI: "a4@2 d5 c#5 [g#2,b4]@4, f#2 ~", AJ: "e5@2 d5@2 d5@2 e5 d5, f#2 e2",
  AK: "~ e5 a5 c#6 b5 a5 b5 d5, a2 f#2",
  AL: "[d5 ~ e5@2 b5@2 d6@2 c#6@2 b5@2 c#6@2 ~@2 f#2@8 e2@8, g#2 a2 ~@2, ~@7 [e4,e5]@9]/2", // E
  AM: "[e5,e6] [b4,b5] [c#5,c#6] [a4,a5]!2 [e4,e5] [b4,b5] [a4,a5]!2 [d4,d5]!2 [e4,e5]!2 [f#4,f#5]!2 [b4,b5], a2 f#2", // E B C# A E B A D …
  AN: "[b4,b5] [f#5,d6]!4 [e5,c#6]!2 [d5,b5] [b4,b5] [e4,e5]!2 [a4,a5]!2 [b4,b5]!2 [c#5,c#6], g#2 a2", // B D C#m G B E A B …
  AO: "[a5 a4@2 ~@6 a5@2 ~@2 e6@2 e5, f#2 g#2 f#2 e2, ~@3 b4@4 e5@2 ~@2 b5@2 ~@3]/2", AP: "[f#2,c#5] [f2,d5]",
  AQ: "[e2@9 f#2@5 g#2@5 c#3@8 d4@2 a3@2 d4@2 f#4@2 [c#3,e4]@8 d3@8 c#2@8 e5@4 ~@14 a3@5 g#3@6 [a2,c#4,a4]@32 ~@8, e5@18 ~@9 d3@8 ~@16 e4@17 ~@9 d4@11 ~@40, ~@59 d2@9 e2@20 ~@40, ~@63 a5@14 ~@51, ~@63 a4@9 ~@56]/8", // C#m A
})).s("gm_string_ensemble_1").gain(0.35).pan(0.8)

// other · oboe
const oboe = note("<~@2 A B ~@17 A C ~@12 D E ~@9 F C ~@17 G@2 ~@3>".pickRestart({
  A: "g#5@2 f#5 f5 f5@2 d#5@2", B: "c#5 f#4@2 f4", C: "c#5 ~", D: "~ c#5 b4 a#4", E: "g#4@2 g#4 f#4",
  F: "~@4 f#4 g#4 a4 b4", G: "[~@3 g#5@4 f#5@2 e5@2 e5@4 d5@5 c#5@9 ~@3]/2",
})).s("gm_oboe").gain(0.44).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@12 A B C@2 D E F G H I J K L M N O@2 P@2 Q R S T Q R U V W X Y Z AA@2 AB AC AD@2 AE AF AG AH AI AJ AK AL AM AG AN AO
  AP AQ@8
>`.pickRestart({
  A: "~@8 g#3@7 ~, f#3", B: "~ a#3, g#3", C: "[b3 c#4 b3@2, f#3]/2", D: "f#4@2 [f#3,f#4] [g#3,g#4], f#3 ~@15",
  E: "[g#3,g#4]@3 [a#3,a#4]", F: "[f#3,f#4]@3 ~", G: "[g#3,g#4]@2 [f#3,f#4] [f3,f4] [f3,f4]@2 [d#3,d#4]@2",
  H: "~ [g#3,g#4] [f#3,f#4] [f3,f4] [f3,f4]@2 [d#3,d#4]@2", // G# F# F D#
  I: "[g#3,g#4]@2 [f#3,f#4] f4 [f3,f4]@2 [d#3,d#4]@2, ~@6 f3 ~@9", J: "[c#3,c#4,f#4]@9 ~@7",
  K: "~ [f#3,a#3] [f3,g#3]@2", L: "[e3,c#4] [d#3,f#3]", M: "f#4@2 a#4 d#4, a#3", N: "[b3,g#4]@2 [f#4,a#4] [f4,g#4]",
  O: "[[d#4,f#4]@8 g#4@7 ~ g#4@8 [d#4,a#4]@8, ~ c#4@2 ~]/2", // D#m D#5
  P: "[f#4@2 a#4@4 [d#4,d#5]@6 [f#4,a#4] [g#4,b4] c#5@2, a#3@12 ~@16 g#4 ~@3]/2", Q: "[a#3,f#4] [g#3,g#4]",
  R: "[f4,g#4] [f#4,a#4]", S: "d#4 [f4,g#4], f#4 ~@15", T: "[d#4,f#4]@2 [d#4,f#4] [c#4,g#4]",
  U: "d#4@2 ~ [f4,g#4], f#4 ~@7 c#4@8", V: "[f#4,a#4] [c#4,g#4]", W: "[g#4,b4] [f#4,a#4]", X: "d#4 [c#4,g#4], f#4 ~@15",
  Y: "d#4@2 ~ g#4, f#4@3 ~, ~ c#4", Z: "a#4 f#4 a#4 c#5 b4@3 g#4, a#3 g#3",
  AA: "[g#3 ~ c#4@2 g#4@2 b4@2 [a#3,c#5]@6 ~@4 c#5@2 f#5@2 a#5@2 g#5@4 f3@4, ~@7 [f#3,f#4]@7 ~@2]/2", // A#m F#
  AB: "~@2 d#5 c#5 d#5 f5 f#5 f5 a#5 g#5 a#5 g#5 a#5 ~@3, [f#3,a#3]", AC: "b3@2 d4 e4 f#4 g#4 a4 b4, d3, f#3 a3",
  AD: "[[e3,a4]@4 b4@2 d5@2 g#5@3 b4 a3@4, a3 ~@7 b3@16 a4@6 ~@2, ~ d3 e3@2]/2", AE: "[f#3,a3,d4] [g#3,b3,e4]",
  AF: "d4@4 e4@2 d4@2 d4@3 ~ [g#3,e4,e5]@2 [f#3,d4,d5]@2, [f#3,a3]@3 ~", // C#m D F#m
  AG: "~ c#5 e5 a5 g#5 f#5 g#5 b4, [e3,a3]@8 [d3,b3]@7 ~", AH: "b4@2 b4@2 g#5@2 b5@2 a5@2 g#5@2 a5@2 e5 ~, e3, b3 a3",
  AI: "[a3,a4] [e3,b3], e4", AJ: "[a4,c#5] [e4,b4]", AK: "[b4,d5] [a4,c#5]", AL: "[f#4,a4] [e4,b4]",
  AM: "f#4@2 ~ b4, a4@3 ~, ~ e4", AN: "b4 ~ b4@2 g#5@2 b5@2 a5@2 g#5@2 a5@2 e5 ~, e3, b3 a3",
  AO: "a3@2 ~ b4, e4, a4@3 ~, ~ b3", AP: "[f#3,c#4] [f3,d4]",
  AQ: "[[e3,c#4]@9 [d3,a3]@5 [e3,b3]@5 c#4@7 ~ d4@8 c#4@7 ~ d4@8 c#4@7 ~ d4@9 [a3,e4]@9 ~@5 g#3@6 [e3,a3,e4]@33 ~@7, ~@19 a3@16 a3@16 a3@16 ~ e3@20 ~@40, ~@77 d4@11 ~@40]/8", // C#m D5 E5 A5
})).s("gm_string_ensemble_2").gain(0.36).pan(0.2)

// other · flute
const flute = note("<~@21 A B ~@12 C D ~@3 E F ~@4 G H ~@8 I J ~@6 K@3 ~@3>".pickRestart({
  A: "~@3 c#6 c#6@2 b5@2", B: "a#5 f#5@2 f5", C: "~ a#5 g#5 f#5", D: "f5 ~", E: "~@2 c#6@3 b5@3 d#6@4 c#6@4",
  F: "c#6 ~@3 b5@4 b5 ~@3 a#5@4", G: "~@4 a5 b5 c#6 d6", H: "e6 ~", I: "~@2 e6@3 d6@3 f#6@4 e6@4",
  J: "e6@4 d6@4 d6@7 ~", K: "[~@15 d5@2 f#5@2 b5@4 a5@2 g#5@2 g#5@4 f#5@4 ~ e5@11 ~]/3",
})).s("gm_flute").gain(0.31).pan(0.9)

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

// drums · rim
const rim = s("rim").struct("<~@23 [~@3 x]!7 ~ [~ x ~@2]!7 ~@32>").gain(0.6)

// drums · snare
const snare = s("sd").struct("<~@31 A@6 B C@6 D ~ E C@3 F C@2 G C@6 D ~@9>".pickRestart({
  A: "~@3 x", B: "~@2 x!2", C: "~ x ~ x", D: "~ x ~@2", E: "~ x", F: "~ x!3", G: "~ x!2 ~",
})).gain(0.6)

// drums · low tom
const low_tom = s("lt").struct("<~@30 A ~@6 B ~@6 A ~ C ~@3 C ~@2 C ~@3 C ~@2 A ~@9>".pickRestart({
  A: "~@3 x", B: "~@5 x ~ x", C: "~@7 x",
})).gain(0.6)

// drums · hihat
const hihat = s("hh").struct("<~@22 A B C@2 D B C@2 E F G C D F G H I J@2 D I J K ~@25>".pickRestart({
  A: "~@5 x ~@2", B: "~ x!7", C: "x!8", D: "x!6 ~ x", E: "~@2 x!2 ~ x ~ x", F: "~ x!6 ~", G: "x!7 ~", H: "x!4 ~@4",
  I: "~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~@2", J: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", K: "x!6 ~@2",
})).gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@6 B ~@6 A ~ C ~@3 B ~@2 C ~@3 D ~@12>".pickRestart({
  A: "~@11 x ~@4", B: "~@13 x ~@2", C: "~@10 x ~@2 x ~@2", D: "~@3 x",
})).gain(0.6)

// drums · open hat
const open_hat = s("oh").struct("<~@22 A ~@7 B C@2 ~@2 C@2 ~ C@3 ~ C@2 ~@26>".pickRestart({
  A: "~@3 x", B: "x!2 ~@6", C: "~@7 x",
})).gain(0.48)

// … 30 more lines

More by Zero