Strudelify
Innocenti evasioni cover art

Umanamente uomo: il sogno

Innocenti evasioni

Battisti

KeyE majorTempo116 bpm
0:00/0:00
// Innocenti evasioni — Battisti
// 116 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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(`<
  ~@5 A@8 B C@2 D B E C F D G H I J K L M N C O C P D G Q R S T U M V W X Y Z AA AB AC AD AE AF AC AG AH AI ~@6 C AJ C P
  D G AK AL AM AN AO M AP ~@6 AQ R AR AN AO M V AS AT AU AV AW AX AY AZ BA BB AY BC BD BE BF BG BH BI BJ BK BL BM BN
  BO@2 ~
>`.pickRestart({
  A: "b1 b1@6 ~ b1!2 b1@6", B: "b1@4 ~@2 b1 ~ b1@7 ~", C: "b1@5 ~ b1 ~ b1@7 ~", D: "b1@5 ~ b1 ~ b1@6 ~@2",
  E: "b1@6 ~@2 b1 ~ b1@2 ~ b1 ~ b1", F: "b1@5 ~ b1 ~ b1@6 a1 ~", G: "b1@7 ~ b1@2 a1@4 f#1@2",
  H: "e1@5 ~ e1@2 b1@5 ~ b1 ~", I: "e1@5 ~ e1@2 b1@4 ~@2 b1@2", J: "e1@2 f#1@3 ~ g#1@2 a1@5 ~ c#1 ~",
  K: "f#1@5 ~ e1 ~ a1@5 ~ c#1 ~", L: "f#1@5 ~ c#1 ~ f#1@5 ~ f#1 ~", M: "b1!2 ~ b1!2 ~ b1!2 ~ b1!2 ~ b1 ~ b1 ~",
  N: "f#1@7 ~", O: "b1@6 ~@2 b1 b1@2 b1 ~ b1 ~ b1", P: "b1@5 ~ b1 ~ b1@2 a1@2 f#1@2 a1@2", Q: "e1@5 ~ e1@2 b1@5 ~ b1@2",
  R: "e1@5 ~ e1 ~ b1@4 ~@2 b1@2", S: "e1@2 f#1@3 ~ g#1@2 a1@5 ~ c#1@2", T: "f#1@5 ~ e1@2 a1@5 ~ c#1@2",
  U: "f#1@5 ~ c#1@2 f#1@5 ~ f#1 ~", V: "b1 ~@15", W: "f#1@5 ~ f#1 f#1@2 ~ e1@2 c#2@2 c2@2",
  X: "b1@7 ~ b1 b1@4 b1 c#2@2", Y: "e1@6 e1@2 e1@3 e1@4 b1", Z: "e1@5 ~ e1 ~ e1!2 ~ c#2@3 e2@2",
  AA: "f#1@6 c#2 ~ f#1@3 f#1@2 f#1@2 f#1", AB: "b1@6 b1 ~ b1@4 c#2@4", AC: "e1@5 ~ b1 ~ e1 e1@4 e1@2 b1",
  AD: "e1@9 ~@2 b1 e1@2 c#2@2", AE: "f#1@5 ~ f#1 ~ e1@3 c#2 ~ c#2@2 c2", AF: "b1@5 ~ b1@2 b1@5 b1 c#2 b1",
  AG: "e1@7 b1 e1@2 e1@3 c#2 e1@2", AH: "f#1@5 ~ c#2 ~ f#1!2 ~ f#1@3 c#2@2", AI: "b1@5 ~ b1@2 b1@7 ~",
  AJ: "b1 b1@6 ~ b1!2 ~ b1 ~ b1 ~ b1", AK: "e2@5 ~ e2 ~ b1@5 ~ b1 ~", AL: "e2@5 ~ e2 ~ b1@4 ~@2 b1@2",
  AM: "e2@2 f#1@3 ~ g#1@2 a1@5 ~ c#2 ~", AN: "f#1@5 ~ e1 ~ a1@5 ~ c#2 ~", AO: "f#1@5 ~ c#2 ~ f#1@5 ~ f#1 ~",
  AP: "f#1@6 f#1@9 ~", AQ: "e1@5 ~ e1 ~ b1@5 ~ b1 ~", AR: "e1@2 f#1@3 ~ g#1@2 a1@5 ~ c#2 ~",
  AS: "f#1@5 ~ f#1!2 ~ e1 e1@2 c#2@2 c2@2", AT: "b1@7 ~ b1!2 ~ b1 ~ b1 c#2@2", AU: "e1@6 e1 ~ e1!2 ~ e1 ~ e1 ~ b1",
  AV: "e1@5 ~ e1 ~ e1!2 ~ c#2@3 e1@2", AW: "f#1@6 c#2 ~ f#1!2 ~ f#1 ~ f#1 ~ f#1", AX: "b1@4 ~@2 b1 ~ b1@4 c#2@4",
  AY: "e1@5 ~ b1 ~ e1!2 ~ e1 ~ e1 ~ b1", AZ: "e1@9 ~@2 b1 e1@2 c#1 e1", BA: "f#1@5 ~ f#1 ~ e1!2 ~ b1 ~ b1 ~ c2",
  BB: "b1@5 ~ b1 ~ b1 b1@4 b1 c#2 b1", BC: "e1@7 b1 e1 b1 e1@3 c#2 e1@2", BD: "f#1@5 ~ c#1@2 f#1 f#1@2 f#1@2 f#1 c#2@2",
  BE: "b1@5 ~ b1 ~ b1@6 ~ b1", BF: "e1@6 ~ e1!2 e1@2 e1@2 e1@2 b1", BG: "e1@15 ~",
  BH: "f#1@5 ~ f#1@2 e1 e1@2 c#2 ~ c#2@2 c2", BI: "b1@5 ~ b1@2 b1 b1@4 b1 c#2 b1",
  BJ: "e1@5 ~ b0@2 e1 e1@2 e1@2 e1@2 b0", BK: "e1@7 b0@2 ~ e1@3 c#1 e1@2", BL: "f#1@5 ~ c#2 ~ f#1@3 f#1@2 f#1 c#2@2",
  BM: "b1@4 b1@3 b1 ~@2 b1@3 ~ b1@2", BN: "e1@4 e1@2 ~ b0@3 ~ b0@3 b0 ~",
  BO: "[e1!2 ~ b0 e1!2 ~ b0 ~ b0 ~ b0 ~ b0 e1 e1@12 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@5 A B C D A E F E G H I J ~ K L ~@2 M@2 N O P Q R S ~@8 T P Q R U V W X Y V W X Y V W X Y V W ~@7 K L ~@2 M@2 N O P
  Q Z S ~@6 AA N O P Q Z AB V W X Y V W X Y V W X Y V W X Y V W X Y V W X AC@2 ~
>`.pickRestart({
  A: "[b3,d#4,f#4]@3 [b3,d#4,f#4] ~ b3 [b3,f#4] f#4 ~ [b3,f#4]!2 f#4 b3 [b3,f#4]!2 b3", // B B5
  B: "[a3,c#4,e4]@3 [a3,c#4,e4] ~ a3 [a3,e4]!2 ~ e4 [a3,e4]!2 ~ e4 [a3,e4]!2", // A A5
  C: "[b3,d#4,f#4]@3 [b3,d#4,f#4] ~ b3 [b3,f#4]!2 ~ f#4 [b3,f#4]!2 ~ [b3,f#4] f#4 [b3,f#4]", // B B5
  D: "[a3,c#4,e4] [a3,c#4,e4]@2 a3 [a3,e4]!2 [a3,c#4,e4]!2 ~ a3 [a3,e4]!2 [a3,c#4,e4]!2 ~ [a3,e4]", // A A5 A A5 A A5
  E: "[a3,c#4,e4]@2 ~ [a3,c#4,e4] ~ a3 [a3,e4]!2 ~ e4 [a3,e4]!2 ~ e4 [a3,e4]!2", // A A5
  F: "[b3,f#4,b4] [b3,f#4] [b3,f#4,b4] f#4 [b3,f#4] b3 [b3,f#4]!2 b3 f#4 [b3,f#4,b4] [b3,f#4] ~ [b3,f#4] f#4 [b3,f#4]", // B5
  G: "~@4 f#3!2 ~ b3, ~@3 b3@2 b3@2 ~, ~@3 f#3", H: "[e3,b3] b3 [e3,b3]!3 b3 e3!2, ~@3 b3",
  I: "b3!3 [f#3,b3]!5, f#3@5 ~@11", J: "[e3,b3]@3 ~ [e3,b3]@2 b3 ~ b3@2 b3 ~ b3@2 b3@2, ~@8 e3@7 ~",
  K: "~@12 [c#4,e4,a4]@3 ~, ~@11 a3@4 ~", L: "[b3,d#4,f#4,b4]@11 ~@5",
  M: "[~@16 g#4@3 ~ [b3,e4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~, ~@15 [b3,e4]@4 ~@13]/2", // E G#m E5
  N: "[b3,e4,g#4]@3 ~ [b3,e4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~", // E G#m
  O: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~", // G#m A
  P: "[a3,c#4,f#4]@2 ~@2 [a3,c#4,f#4]@3 ~ [c#4,e4,a4]@2 ~@2 [c#4,e4,a4]@3 ~", // F#m A
  Q: "[a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // F#m
  R: "[f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@3 ~", S: "[a3,c#4,e4] ~@2 [a3,c#4,e4]@4 ~",
  T: "~@8 [c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~", U: "[f#3,b3] ~@15",
  V: "[c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~", // C#m
  W: "[d#4,f#4]@3 ~ [d#4,f#4]@2 ~@2 [d#4,f#4]@2 ~@2 [d#4,f#4]@3 ~", // D#m
  X: "[e4,g#4]@3 ~ [e4,g#4]@3 ~ [d#4,g#4]@2 ~@2 [d#4,g#4]@3 ~", // E G#5
  Y: "[e4,g#4]@3 ~ [e4,g#4]@2 ~@2 [e4,g#4]@3 ~ [e4,g#4]@3 ~", // E
  Z: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~", // B
  AA: "g#4@3 ~ [b3,e4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~", AB: "[f#3,b3,d#4] ~@15",
  AC: "[[b3,e4,g#4] [b3,e4,g#4]@2 ~ [e4,g#4] [b3,e4,g#4] ~ [d#4,g#4] b3 [b3,d#4,g#4] [d#4,g#4] [b3,d#4,g#4] [d#4,g#4] [b3,d#4] [b3,e4,g#4] [b3,e4,g#4]@17]/2", // E G#5 G#m G#5 G#m G#5 B E
})).s("gm_electric_guitar_clean").gain(0.29).pan(0.3)

// chords · epiano1
const epiano1 = note("<A@8 B@5 C D ~@5 E@2 ~@7 F ~@3 G@4 ~ H@4 ~@18 I@3 ~@3 E@2 ~@7 F ~ J@2 K@2 ~@34>".pickRestart({
  A: "[~@16 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 [a4,b4], ~@15 [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 ~]/8", // D#m C#m D#m C#m D#m C#m D#m Asus2 …
  B: "[[c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@15 ~, ~@15 [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 [a4,b4]@16 ~]/5", // C#m D#m C#m D#m C#m Bsus2 Asus2 Bsus2 …
  C: "[f#4,b4,d#5]@15 ~", D: "~@2 [e4,a4,c#5]@13 ~",
  E: "[~@16 [d#6,f#6]@15 ~, ~@11 e4@20 ~, ~@12 [a4,c#5]@19 ~, ~@15 b5@16 ~]/2", // D#m A
  F: "[a4,c#5,e5]!2 ~ [a4,c#5,e5] ~@2 [a4,c#5,e5]@6 ~@4", // A
  G: "[~@16 d#6@13 ~@15 c#6@2 b5@17 ~, ~@15 [f#5,b5]@14 ~@2 [e5,a5]@15 ~@18, ~@31 c#6@13 ~@20, ~@16 e6@7 ~@9, ~@21 d#6@2 ~@9]/4", // B5 A5
  H: "[~@24 b5@11 ~@5 c#6@6 ~@2 f#6@14 ~@2, ~@4 b5@3 a5@3 ~ a5@2 ~@19, ~@10 c#5@8 c#5@17 ~@29, ~@12 e5@8 e5@15 ~@4 [e5,a5]@6 ~@2 [f#5,b5]@16 ~, ~@4 g#5 ~@11]/4", // A5 B5
  I: "[~@27 c#5@17 ~@4, ~@6 e5@16 a5@21 ~@5, ~@9 f#5@32 ~@7, ~@12 g#5@7 g#5@25 ~@4, ~@15 b5@29 ~@4]/3",
  J: "[~@16 f#6@15 ~, ~@15 [b5,d#6]@15 ~@2]/2", K: "[~ f#6, ~@11 [a5,c#6]@21, ~@3 e6@5, ~@15 [b5,d#6]@17]/2",
})).s("gm_epiano1").gain(0.29).pan(0.6)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@5 A B C D E F G H I J I K L J L K L M N O P Q R S T U V W X Y Z N O AA Q R AB AC AD AE AF AG AH AE AF AI AJ AK AL AM
  AN AO@6 ~ AP V AQ AR AS AT N O AA Q R AB AU ~@6 N AV AW AX AY AZ BA AD AE BB AG AH AE AF AI AJ AK BC AM BD BE BF AG BG
  BH BI BJ BK BL BC BM@2 ~
>`.pickRestart({
  A: "b3!2 ~ b3 ~ b3!3 ~ b3 ~ b3 ~ b3 ~ b3", B: "b3!2 ~@2 b3!4 ~ b3 ~ b3!5", C: "b3!2 ~ b3!9 ~ b3!3",
  D: "b3 ~@2 b3!9 ~@2 b3!2", E: "b3!2 ~ b3 ~ b3!3 ~ b3!3 ~ b3!3", F: "b3!2 ~@2 b3!4 ~ b3 ~ b3 ~ b3!3",
  G: "b3!2 ~ b3 ~ b3!3 ~ b3 ~ b3!4 ~", H: "b3!2 ~ b3 ~ b3!3 ~ b3 ~ b3@2 b3!3",
  I: "b3 b3@2 [f#3,b3]!2 [f#3,b3]@3, [f#3,d#4]@3 d#4@5", J: "[a3,c#4] a3@2 a3 [e3,a3] [e3,a3]@3, e3 ~, ~ c#4@7",
  K: "[e3,a3]@2 a3@3 ~ [e3,a3]@4 [e3,a3,c#4]@6, ~ c#4@4 ~@3", L: "b3 b3@2 b3 [f#3,b3] [f#3,b3]@3, [f#3,d#4]@3 d#4@5",
  M: "[a3,c#4] ~ [a3,c#4]@4 [a3,c#4] [e3,a3,c#4]@2 [e3,a3,c#4] e3 [e3,a3,c#4] ~ [e3,a3,c#4]!2 e3, e3@3 ~@5", // A
  N: "[g#3,b3,e4] [b3,e4] ~ [g#3,b3,e4] e4 [g#3,b3,e4] ~ [g#3,b3,d#4] ~ [g#3,b3] ~ [g#3,b3,d#4] g#3 [g#3,b3,d#4] ~ [g#3,b3,d#4]", // E E5 E G#m
  O: "[g#3,b3,e4] [b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] g#3 [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] g#3 b3", // E E5 E G#m
  P: "[g#3,b3,d#4]!2 g#3 ~ d#4 [g#3,d#4] [g#3,b3,d#4] [b3,d#4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [a3,c#4,e4] ~ [a3,c#4,f#4], ~@3 [g#3,b3]@2 ~@11", // G#m G#5 G#m B A C#m A F#m …
  Q: "~ [a3,c#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [a3,c#4,e4] ~ [a3,c#4,f#4]", // A F#5 F#m A C#m A F#m
  R: "~ [a3,c#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4]", // A F#5 F#m A F#5 F#m
  S: "[b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 [b3,d#4,f#4]@2", // B
  T: "[a3,c#4,e4]@5 ~ [a3,c#4,e4]@9 ~", U: "b3 b3@2 [f#3,b3]!2 ~ d#4@2, [f#3,d#4]@3 d#4@3 ~@2, ~@5 [f#3,b3]@3",
  V: "[a3,c#4] [a3,c#4]@2 a3 [e3,a3] c#4 c#4@2, e3@4 ~ [e3,a3]@3, ~@3 c#4@2 ~@3", // A A5
  W: "b3@2 b3@4 [b3,d#4]@2 [f#3,b3]@2 [f#3,b3,d#4]@5 ~, [f#3,d#4]@3 ~@5", // B B5 B D#m
  X: "e3@2 [e3,a3]@3 [e3,a3,c#4]@2 a3 [a3,c#4]@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@3, c#4 ~@3, a3 ~@15", // A5 A
  Y: "b3 b3@2 b3 [f#3,b3] d#4 ~ [f#3,b3], [f#3,d#4]@3 d#4@2 [f#3,b3]@2 ~, ~@3 d#4", // B5 D#m B5
  Z: "a3@2 [a3,c#4]@4 [a3,c#4] [e3,a3,c#4]@2 [e3,a3,c#4] e3 [e3,a3,c#4]@2 [e3,a3,c#4]!2 e3, e3@3 ~@5, c#4 ~@15", // A
  AA: "[g#3,b3,e4]!2 g#3 ~ e4 [g#3,e4] [g#3,b3,e4] [b3,e4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [a3,c#4,e4] ~ [a3,c#4,f#4], ~@3 [g#3,b3]@2 ~@11", // E C#m E E5 A C#m A F#m …
  AB: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4]!2 ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4]!4 ~", AC: "[b3,d#4,f#4] ~@7",
  AD: "[c#4,f#4] [a3,c#4,f#4] ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] [a3,f#4] [a3,c#4,f#4]", // F#5 F#m D F#m D F#m D F#m
  AE: "[b3,d#4,f#4] [b3,f#4] ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4]", // B B5 B
  AF: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]", // E G#m
  AG: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] ~ [b3,d#4,g#4]", // E G#m
  AH: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] ~ [a3,c#4,f#4] f#4 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] [a3,f#4] [a3,c#4,f#4]", // F#m D F#m D F#m D F#m
  AI: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 ~ [b3,e4,g#4] g#4 [b3,e4,g#4] ~ [b3,e4,g#4] g#4 [b3,e4,g#4] b3 [b3,e4,g#4]", // E
  AJ: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] ~ [a3,c#4,f#4] f#4 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] f#4 [c#4,f#4]", // F#m D F#m D F#m F#5
  AK: "[b3,d#4,f#4] [b3,f#4] ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] b3 [b3,d#4,f#4]", // B B5 B
  AL: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4] [e4,g#4] [b3,e4,g#4] b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] [b3,g#4] [b3,d#4,g#4]", // E G#m E G#m
  AM: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4] [e4,g#4] [b3,e4,g#4] ~ [d#4,g#4] [b3,g#4] [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] b3 [d#4,g#4]", // E G#5 E G#m G#5
  AN: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] a3 [a3,c#4,f#4] f#4 [a3,c#4,f#4] ~ [a3,c#4,f#4] a3 [a3,c#4,f#4] [a3,f#4] [c#4,f#4]", // F#m D F#m D F#m D F#5
  AO: "[[d#4,f#4] [b3,f#4] ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] d#4 [b3,d#4,f#4] ~ f#4 ~@2 e4@14 ~@2 d#4@14 ~@2 e4@41 ~@7, ~@15 [a2,g#3,c#4]@14 ~@2 [g#2,f#3,b3]@15 f#2@35 ~@15, ~@47 c#4@39 ~@10, ~@47 a3@36 ~@13]/6", // D#m B5 B Amaj7 G#m7
  AP: "b3 b3@2 [f#3,b3]!2 ~ d#4@2, [f#3,d#4]@3 d#4@2 [f#3,b3]@3", // B5 D#m B5
  AQ: "b3@2 b3@4 b3@2 [f#3,b3]@2 [f#3,b3,d#4]@5 ~, [f#3,d#4]@3 d#4@2 ~@3", // B5 B D#m
  AR: "e3@2 [e3,a3]@3 [e3,a3]@2 a3 [a3,c#4]@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@3, c#4@4 ~ c#4 ~@10, a3 ~@15", // A5 A
  AS: "b3 ~ b3@4 b3@2 [f#3,b3]@2 d#4@2 ~@2 [f#3,b3]@2, [f#3,d#4]@3 d#4@2 [f#3,b3]@2 ~, ~@3 d#4", // B5 D#m B5
  AT: "[a3,c#4] ~ [a3,c#4]@4 [a3,c#4] [e3,a3,c#4]@2 [e3,a3,c#4] e3 [e3,a3,c#4]@2 [e3,a3,c#4]!2 e3, e3@3 ~@5", // A
  AU: "[a3,c#4,e4]@6 [a3,c#4,e4]@9 ~", // A
  AV: "[g#3,b3,e4] e4 ~ [g#3,b3,e4] ~ [g#3,e4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] g#3 b3", // E C#m G#m
  AW: "[g#3,b3,e4]!2 g#3 ~ e4!2 [g#3,b3,e4] [b3,e4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [c#4,e4] ~ [c#4,f#4], ~@3 g#3@2 ~@11", // E E5 A C#m A C#m F#5
  AX: "~ c#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [c#4,e4] ~ [c#4,f#4]", // F#5 A C#m A C#m F#5
  AY: "~ c#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ c#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4]", // F#5
  AZ: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]!3 ~", BA: "[b3,f#4,b4] ~@15",
  BB: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] [d#4,g#4] [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]", // E G#m G#5 G#m
  BC: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] [b3,g#4] [b3,d#4,g#4]", // E G#m E G#m
  BD: "[c#4,f#4] [a3,c#4,f#4] ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] a3 [a3,c#4,f#4] ~ [a3,c#4,f#4] [c#4,f#4] [a3,c#4,f#4] ~ [a3,c#4,f#4]!3", // F#5 F#m D F#m D F#m F#5 F#m
  BE: "[b3,d#4,f#4] [b3,f#4] [d#4,f#4] [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] [d#4,f#4] [b3,d#4,f#4] [d#4,f#4] [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4]", // B B5 D#m B D#m B D#m B
  BF: "[b3,e4,g#4]!2 [e4,g#4] [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]!3", // E G#m
  BG: "[a3,c#4,f#4]!2 ~ [a3,c#4,f#4]!2 [a3,f#4] a3 [a3,c#4,f#4] f#4 [a3,c#4,f#4] [c#4,f#4] [a3,c#4,f#4] a3 [a3,c#4,f#4]!3", // F#m D F#m F#5 F#m
  BH: "[b3,d#4,f#4] [b3,f#4] [d#4,f#4] [b3,d#4,f#4]!3 [d#4,f#4] [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] [d#4,f#4] [b3,d#4,f#4]", // B B5 D#m B D#m B D#m B
  BI: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4]!3 g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]", // E G#m
  BJ: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 ~ [b3,e4,g#4] [e4,g#4] [b3,e4,g#4]!3 g#4 [b3,e4,g#4] b3 [b3,e4,g#4]", // E
  BK: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4]!2 a3 [a3,c#4,f#4] f#4 [a3,c#4,f#4] [c#4,f#4] [a3,c#4,f#4] ~ [a3,c#4,f#4]!2 [c#4,f#4]", // F#m D F#m F#5 F#m F#5
  BL: "[b3,d#4,f#4]!2 ~ [b3,d#4,f#4]!5 [d#4,f#4] [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] b3 [b3,d#4,f#4]", // B D#m B
  BM: "[[b3,e4,g#4] [b3,e4,g#4]@2 ~ [e4,g#4] [b3,e4,g#4] ~ [d#4,g#4] b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4] [b3,e4,g#4] [b3,e4,g#4]@13 ~@4]/2", // E G#5 G#m B E
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.7)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@16 A B ~ B A B C D E F G H I ~@3 B J B C D E F G H K ~ L M N O P Q R S T U V W X Y ~@8 B J B C D E F G H K ~@7 D Z
  AA AB AC AD ~ L M AE O P Q R S T U AF W AG AH AI O AJ AK AL AM AN AO AF AP ~@2
>`.pickRestart({
  A: "c#4 e3@2 ~@5", B: "~@3 f#3 ~@4", C: "~@12 e3 ~@3", D: "~ g#3!2 ~@6 d#4 ~@4 d#4 ~", E: "~@2 g#3 ~@3 b3 ~ g#3 ~@7",
  F: "~@5 b3 ~ g#3 ~ a3!2 ~@5", G: "~ f#4 ~ a3!3 [c#4,f#4] ~@2 a3!2 ~@5",
  H: "~ f#4 ~ a3!3 [c#4,f#4] ~@2 f#4 ~ a3!3 [c#4,f#4] ~", // F#5
  I: "~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@4", J: "~@7 c#4 e3@2 ~@6",
  K: "~ [b3,d#4,f#4]!3 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@5", L: "~@3 c#4 ~ c#4 a3 ~ [c#4,f#4] ~ [c#4,f#4] ~@3 c#4 ~",
  M: "~ d#4 [d#4,f#4] ~@3 [b3,d#4,f#4] ~ d#4 ~ [d#4,f#4] ~ d#4 ~ [d#4,f#4] ~", // D#m B D#m
  N: "~@2 e4 ~@5 [d#4,g#4] ~ d#4 ~ d#4 ~ [b3,d#4] ~", O: "~@2 [b3,e4] ~@5 [d#4,g#4] ~ [d#4,g#4] ~ d#4 ~ b3 ~",
  P: "~@3 c#4 ~ c#4 a3 ~ c#4 ~ [c#4,f#4] ~ a3 ~ c#4 ~", // F#5
  Q: "~ d#4 [d#4,f#4] ~@3 [d#4,f#4] ~ d#4 ~ [d#4,f#4] ~ d#4 ~ [d#4,f#4] ~", // D#m
  R: "~@2 e4 ~@5 [b3,d#4,g#4] ~ [b3,d#4] ~ [b3,d#4] ~ d#4 ~", S: "~@2 [b3,e4] ~@5 e4 ~ [b3,e4,g#4] ~ e4 ~@3",
  T: "~@3 c#4 ~ c#4 a3 ~ c#4 ~ [c#4,f#4] ~@3 [a3,c#4] ~", // F#5 A
  U: "~ d#4 [d#4,f#4] ~@3 [b3,d#4,f#4] ~ d#4 ~ [d#4,f#4] ~ [b3,d#4] ~ [d#4,f#4] ~", // D#m B D#m B D#m
  V: "~@2 e4 ~ b3 ~@3 [d#4,g#4] ~ d#4 ~ d#4 ~ d#4 ~", W: "~@2 [b3,e4] ~@3 b3 ~ d#4 ~ [d#4,g#4] ~ d#4 ~@3",
  X: "~@2 a3 c#4 ~ c#4 ~@2 c#4 ~ [c#4,f#4] ~@3 c#4 a3", // F#5
  Y: "~ d#4 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~ d#4 ~ [b3,f#4] ~ [d#4,f#4] [b3,d#4] ~@2", // B B5 D#m B
  Z: "~ b3 g#3 ~@2 b3 [g#3,b3] ~ g#3 ~@7", AA: "~@3 b3@2 [g#3,b3] ~ g#3 ~ a3!2 ~@2 a3 ~ a3",
  AB: "~ [a3,f#4] ~ a3!3 [c#4,f#4] a3 ~ a3!2 ~@2 a3 ~ a3", // D F#5
  AC: "~ [a3,f#4] ~ a3!3 [c#4,f#4] a3 ~ [a3,f#4] ~ a3!3 [c#4,f#4] a3", // D F#5 D F#5
  AD: "~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4]!3 ~@4", AE: "~@2 e4 ~@7 d#4 ~ d#4 ~ [b3,d#4] ~",
  AF: "~@2 e4 ~@5 [d#4,g#4] ~ d#4 ~ d#4 ~ d#4 ~", AG: "~@3 c#4 ~ c#4 ~@2 [c#4,f#4] ~@7",
  AH: "~ d#4 ~@4 [b3,d#4,f#4] ~@5 d#4 ~ [d#4,f#4] ~", AI: "~@8 [d#4,g#4] ~ d#4 ~ d#4 ~@3", AJ: "~@5 c#4 ~@2 c#4 ~@7",
  AK: "~ d#4 ~@6 d#4 ~ [d#4,f#4] ~ d#4 ~@3", AL: "~@2 e4 ~@7 [b3,d#4] ~ [b3,d#4] ~ d#4 ~", AM: "~@2 [b3,e4] ~@9 e4 ~@3",
  AN: "~@3 c#4 ~@4 c#4 ~@7", AO: "~@2 [d#4,f#4] ~@7 [d#4,f#4] ~ [b3,d#4] ~ [d#4,f#4] ~", AP: "~@10 [d#4,g#4] ~ d#4 ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.13).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@43 A@2 B C A@2 D E A@2 B C A@2 ~@32 A@2 B C A@2 D E F@2 B C F@2 D E F@2 B C F@2 D G@2 ~
>`.pickRestart({
  A: "[c#5@3 e5@2 a5@2 [f#5,b5]@9]/2", B: "b4 c#5@2 e5@2 a5 [f#5,b5]@2", C: "[d#5,g#5]@15 ~",
  D: "~ b5 ~ b5, [e5,g#5] [d#5,f#5]", E: "[e5,g#5]",
  F: "[c#5@3 e5@2 a5@2 [f#5,b5]@3 [e5,e6]@2 [d#5,d#6]@2 [b4,b5]@2]/2", G: "[[e5,g#5]@3 ~]/2",
})).s("gm_string_ensemble_1").gain(0.16).pan(0.4)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@5 A B A B A B A B A B A B A B A B A B C@5 D E A B A B A B C@5 D ~ F@2 G@2 H@2 I@2 F@2 G@2 H@2 J K J L@2 ~ A B A B A
  B C@5 D E A B A B A B C@5 M@2 F@2 G@2 H@2 I@2 F@2 G@2 H@2 I@2 F@2 G@2 H@2 N@3 ~
>`.pickRestart({
  A: "[d#4,f#4]", B: "[c#4,e4]", C: "[e4@8 d#4@8 e4@8 d#4@8 e4@8 e4@8 f#4@8 e4@8 f#4@8 e4@7 ~, g#4 a4]/5",
  D: "[f#4,b4]", E: "[e4,a4]", F: "[a4@15 ~ b4@16, f#4]/2", G: "[e4 d#4 e4@2, g#4]/2", H: "[a4 b4, f#4]/2",
  I: "[g#4@8 a4@8 b4@15 ~, e4@31 ~]/2", J: "[a3,e4,a4]", K: "[b3,f#4,b4]", L: "[[b3,d#4,f#4]@31 ~, b2@3 ~]/2",
  M: "[[f#4,b4]@9 ~@7]/2", N: "[g#4@8 a4@8 b4@23 ~@9, e4@13 ~@3]/3",
})).s("gm_synth_strings_1").gain(0.11)

// other · overdriven guitar
const overdriven_guitar = note("<~@88 A B C D E F G H I@3 J K@5 L@6 M@3 ~>".pickRestart({
// … 100 more lines

More by Battisti