Strudelify

Le donne mi hanno detto

Pooh

KeyC♯ minorTempo76 bpm
0:00/0:00
// Le donne mi hanno detto — Pooh
// 76 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 8, 4/4 at bar 9) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 13 "OverdGtr" distortion guitar (copy of ch 12 "CleanGtr" electric guitar clean); ch 16 "PedalGtr" electric guitar jazz (copy of ch 15 "CleanGtr" electric guitar clean)
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(76/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.

// chords · epiano2 · "Rhodes"
const epiano2 = note(`<
  ~@2 A@2 B@2 C ~@2 D E F G D H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@2 AM AN AM AO@3
  AP AQ AR AS AT T AU AV AW AX AY AZ BA BB BC BD BE BF BG BH@2 BI BJ BK@2 AM BL BM BN BM BO BP BQ@6
>`.pickRestart({
  A: "[~@5 [d#4,b4] [a1,a2,b3,c#4,e4,g#4]@2, ~ [c#1,c#2]@2 ~, ~@3 [g#4,e5]@3 ~@2, ~@7 [f#4,d#5]@5 ~@4, ~@2 [e4,c#5] ~]/2", // G#m Amaj7 C# C#m D#m C#m
  B: "[[g#1,b3,d#4]@2 ~@3 [d#4,b4] [a1,a2,b3,c#4,e4,g#4]@2, g#2@3 ~@5 [c#1,c#2]@8 [e4,c#5]@8 ~@8, ~@11 c#3@13 ~@8, ~@3 [g#4,e5]@3 ~@2, ~@7 [f#4,d#5]@5 ~@4]/2", // G#m Amaj7 C# C#m D#m
  C: "[g#1,g#2,f#3,b3,d#4]", D: "f#1", E: "e3@2 ~ c#4, ~ d#3", F: "f#3@3 e3, [e1,g#3]", G: "[g#1,g#2]",
  H: "~@3 g#4, ~ [c1,g#3,d#4]", I: "[c#2,d#4]", J: "f#4@2 [g#3,e4] [f#3,d#4], ~ c3", K: "[a2,b3] [f#2,a3,e4], c#4",
  L: "~ d#4, b1", M: "b3@3 b3, [e2,f#3,g#3]", N: "~@13 b3@3, d#4, b3@13 ~@3, ~@5 f#4@3", O: "[f#3,b3,c#4,e4], a3@3 ~",
  P: "~ d#4", Q: "[f#3,b3]@12 ~@3 f#3, g#3@15 ~", R: "[f#3,b3]@10 ~@3 f#4@2 f#3, d#4, ~@10 f#3@2 f#3@3 ~, ~@11 b3@5",
  S: "[b3,c#4,e4]", T: "[a3,b3,c#4,e4]@2 ~ f#4, ~ [g#3,d#4,g#4]", U: "[c#3,g#3,d#4,e4]",
  V: "c#4!2 [g#3,e4] [f#3,d#4], [d#3,f#4,a4] ~", W: "~@3 g#3 [f#2,f#3,b3,e4]@4, [e3,b3,c#4]@9 ~@7",
  X: "[b3,c#4,e4]@7 f#3 ~@7 f#3, ~ [b2,c#4,d#4,f#4], ~@4 b3@3 b3, ~@11 f#3@4 ~, ~@3 b4", // C#m7 B
  Y: "b3@4 b3@3 e3 [b3,d#4,f#4]@4 [b3,e4,g#4]@4, [e3,f#4,g#4,b4] [c#3,b4]", // B E C#7
  Z: "a3@3 a3 [f#3,a3,c#4,e4,a4]@2 [b3,c#4,d#4,f#4]@2, [f#3,c#4,e4,a4] ~", // F#m7 B F#m7
  AA: "b3@3 ~@5 [e4,g#4]@8, [f#4,b4]@5 f#4@3 ~@8, ~@3 b3@5 b3@4 ~@4, ~@3 b4@5", // E B5
  AB: "a3@2 ~@3 c#4@2 f#3 [a3,c#4,e4,g#4]@3 f#3 [c#4,d#4,f#4]@3 f#3, [e4,a4] ~, c#4@5 ~@7 b3@2 ~@2, f#3 ~ f#3@2 f#3@3 ~@9, ~@3 a3@3 ~@10", // Amaj7 D#m7 A5
  AC: "b3@4 ~@3 e3 [b3,d#4,f#4,b4]@3 ~ [e4,g#4,b4]@3 g#3, [e3,g#4,b4] c#3, f#4@3 f#4 ~@2 b3 ~, ~@4 b3@4 ~@3 g#3@4 ~", // B E
  AD: "a3@2 ~@3 c#4@2 f#3 [a3,c#4,e4,a4]@4 [b3,d#4,f#4]@4, [e4,a4] ~, c#4@5 ~@11, f#3 ~ f#3@2 f#3@3 ~@9, ~@3 a3@3 ~@10", // A B A5
  AE: "b3@4 ~@3 g#3 b3@4 b3@3 g#3, [f#4,b4]@5 f#4@3 ~@8, ~ b3 [c#3,g#3,e4,b4]@2, ~@3 b4 ~@4", // B5 C#m7
  AF: "c#4@4 c#4@3 d#3 [g#3,d#4,g#4]@4 g#3@2 g#3@2, [d#3,a4] ~, f#4@3 ~@3 [d#4,f#4]@2", // G#5 D#dim D#m
  AG: "g#3@2 ~ c#4 g#3@2 ~ d#4, [c#3,e4]@2 ~ g#3, c#4@3 ~ e4@4, ~@2 g#3@2 d#4@3 ~", // C#m
  AH: "e3 ~@6 e3 f#4@4 f#4@4, b3 [b3,d#4], [c#4,e4]@5 c#4@3 ~@8, ~@3 a3@5 ~@8, ~@3 e4 ~@4", // B C#m
  AI: "b3@3 ~@4 g#3 [g#3,b3,e4]@4 g#3@2 g#3@2, f#4@5 g#3@2 ~@9, g#3 ~@2 b3@5 ~@8, ~@3 f#4 ~@2 [d#4,e4]@2", // E Emaj7
  AJ: "~@7 e3 ~@4 f#4@4, [e3,b3,e4] [f#3,b3,d#4], c#4@3 c#4 ~@4, ~ a3 ~@2", // E5 B
  AK: "b3@2 ~@5 g#3 g#3@4 g#3@3 g#3, [f#4,b4]@5 f#4@3 ~@8, g#3 ~ g#3@2 g#3@2 b4@10, ~@3 b3@5 [c#3,b3,e4]@8", // B5 C#m7
  AL: "[[a3,b3,c#4,e4]@15 ~ [f#4,b4]@16, f#3@17 ~@15, ~@15 [b3,c#4,e4]@17]/2", // A B5 C#m7
  AM: "~@3 [d#4,b4], [c#1,c#2] [e4,c#5], ~@3 c#3@13, ~ [g#4,e5]@3, ~@3 [f#4,d#5]@5", // G#m C# C#m D#m
  AN: "[a1,b3,c#4,e4,g#4]@8 f#3@3 ~@2 b3@2 g#1, a2 ~ [g#1,d#4,f#4]@2, ~@8 b3@5 ~@3, ~@8 g#2 ~@2 f#3@5", // Amaj7 G#7
  AO: "[[a2,b3,c#4,e4,g#4]@8 [f#3,b3]@8 b3@12 b3@4 f#3@11 ~ f#4@4, ~ [g#2,d#4]@3 [b3,d#4]@2, ~@16 [f#3,g#3]@17 ~@10 f#3@5]/3", // Amaj7 B5 G#5 B F#sus2
  AP: "a3@6 ~ c#4, e4, [b3,c#4]@13 b3@3, ~@3 a3", AQ: "[a3,b3,c#4,e4]@8 [f#3,b3]@3 ~ b3@4, ~ d#4, ~@11 f#3@5",
  AR: "[e3,b3]@9 e3@2 ~@2 b4@3, [f#3,g#3], ~@11 e4@5, ~@12 e3@3 ~", // E5 F#sus2
  AS: "~@13 d#4@2 g#3, [f#3,b3,f#4], [g#3,d#4]@12 g#3@3 ~, ~@5 b4@3", // B5 G#5
  AT: "a3@6 ~ c#4, [f#3,e4], [b3,c#4]@13 b3@3, ~@3 a3", AU: "g#3@6 ~ c#4, [d#4,e4], ~@3 g#3",
  AV: "c#4!2 [g#3,e4] [f#3,d#4], a4 ~, f#4@3 ~@5", AW: "e3@2 ~ g#3 [f#2,f#3,b3,e4]@4, [b3,c#4]@2 a3 ~",
  AX: "a3@2 a3@2 ~ [a3,c#4]@2 f#3 [f#3,b3]@2 ~@5 f#3, [b2,b3,e4]@8 f#4@5 f#4@3, c#4@4 f#3@3 ~ d#4@8, ~@5 f#3!2 b4, ~@11 b3@5", // A B5 E5
  AY: "b3@6 ~ e3 [c#3,b3,d#4,f#4,b4]@3 ~ [b3,e4,g#4,b4]@3 c#3, [e3,f#4,g#4,b4]@8 ~@3 c#3@4 ~, ~@3 b3 ~@4", // B E
  AZ: "a3@2 ~@5 f#3 [b2,f#3,b3,c#4,e4]@3 f#3 [a2,f#3,d#4,f#4]@3 f#3, [f#2,c#4,e4,a4] ~, ~@2 f#3@3 f#3@2 ~@9, ~@3 a3@5 a3 ~@7, ~@3 b3 ~@2 b3 ~", // Bsus4 D#dim F#m7
  BA: "b3@3 ~@4 f#3 ~@4 g#3@3 c#3, g#2 [c#3,b3,e4], [f#4,b4]@5 f#4@3 ~@8, f#3 ~@2 f#3@3 b4@10, ~ b3 ~@2", // C#m7 B5
  BB: "a3@2 ~@5 f#3 a3@2 ~@5 f#3, [f#2,b3,e4]@4 [b2,c#4,e4,g#4]@2 b3!2, ~ f#3!2 a3 ~ a3 [c#4,f#4]@2, ~@3 a3@2 c#4@3 ~@3 f#3@4 ~, ~@13 d#4@3", // Esus2 C#m7 F#5
  BC: "e3@4 e3@3 e3 [b3,d#4,f#4]@3 ~ b3@2 ~ g#3, [f#4,g#4,b4]@8 ~@3 g#3@3 b3@2, b3@3 ~ [c#3,b4]@4, ~@3 [e4,g#4]", // B G#m7 C#7 E
  BD: "[f#3,a3]@2 ~@3 e4@2 f#3 ~ c#4@3 b3@2 b3@2, [c#4,a4] ~, e4@5 ~@7 [d#4,f#4]@4, ~@2 f#3@2 f#3@3 ~@9, ~@3 a3@3 ~@2 [a3,b3,e4]@4 ~@4", // F#m D#m Asus2
  BE: "b3@2 ~@6 b3@4 b3@3 g#3, f#4@5 f#4@2 g#3@8 ~, ~ g#3!2 b4@5, ~@3 b3@5 [c#3,e4]@8", // C#m
  BF: "c#4@4 c#4@3 d#3 [g#3,d#4]@4 g#3@2 g#3@2, [d#3,a4,c#5]@2 ~ [d#4,f#4], f#4@3 ~ g#4@4", // G#5 D#m7b5 D#m
  BG: "[g#3,c#4]@2 ~ c#3 g#3@2 g#3@2, e4 ~, c#3@3 ~ [b2,d#4,e4]@4, ~ [g#3,c#4] ~@2", // C#5 Emaj7 C#5
  BH: "[~@7 e3 ~@8 g#3@3 ~@4 g#3 [c#3,g#3,e4]@4 [b2,g#3,d#4,e4]@4, [a2,b3,e4]@8 ~@4 b4@9 f#4@3 ~@8, c#4@6 c#4@2 [d#4,f#4]@8 ~@3 g#3@3 b4@6 ~@4, ~@3 a3@5 b3@6 ~@2 [b3,f#4]@4 b3@4 b3@2 ~@6]/2", // C#m Emaj7 Asus2 D#m B5
  BI: "~@3 e4 b3@2 ~ d#4, [a2,b3] ~, [c#4,e4]@5 c#4@3 f#4@8, ~@3 e3@5 ~@4 b3@4, ~@2 a3@2 d#4@3 ~", // Asus2 C#m
  BJ: "[g#3,b3]@2 ~@2 g#3@2 ~ g#3 g#3@4 g#3@3 c#3, b4, f#4@3 f#4 ~@4, ~ g#3 ~@2 [c#3,e4]@4, ~@3 b3@5 b3@6 ~@2", // G#m C#m
  BK: "[[f#2,c#4,e4]@15 ~ [e4,f#4,b4]@16, ~@15 [a3,b3,c#4]@17]/2", // F#7 Esus2 A
  BL: "[a1,b3,c#4,e4,g#4]@8 g#2@3 ~@2 b3@2 g#1, a2 ~ [g#1,d#4,f#4]@2, ~@2 [f#3,b3] f#3, ~@11 g#2@5", // Amaj7 G#7 B5
  BM: "c#2@3 ~@9 [d#4,b4]@4, [c#1,g#3,c#4] [e4,c#5], ~@3 c#2@13, ~ [g#4,e5]@3, ~@3 [f#4,d#5]@5", // G#m C#5 C#m D#m
  BN: "a2 ~@6 a2 [g#2,f#3]@2 ~@3 b3@2 g#1, [a1,e4,g#4]@8 ~@3 f#3@5, c#4@3 c#4 [d#4,f#4]@4, b3@4 b3@4 b3@5 ~@3, ~@2 a2@5 ~@3 g#2@2 g#2@4", // G#7 Amaj7 D#m
  BO: "[a2,b3]@2 ~@2 a2@3 a2 [g#2,f#3]@2 ~@5 g#1, [a1,e4,g#4] [g#1,d#4], c#4@6 ~@5 f#3@3 f#3@2, ~ a2 ~@3 g#2 g#2@2, ~@3 b3@5 b3@5 b3@3", // Asus2 G#7 Amaj7 G#5
  BP: "~@3 [d#4,b4], [c#1,g#3,c#4] [e4,c#5], ~@3 c#2@13, ~ [g#4,e5]@3, ~@3 [f#4,d#5]@5", // G#m C#5 C#m D#m
  BQ: "[[a1,a2,b3,c#4,e4,g#4]@9 [g#1,g#2,f#3,b3,d#4,f#4]@10 [c#1,c#2,c#3,g#3,c#4]@69 ~@8]/6", // Amaj7 G#m7 C#5
})).s("gm_epiano2").gain(0.35)

// chords · epiano2 · "Rhodes" · soft notes
const epiano2_soft = note(`<
  ~@2 A@2 B ~ C D E F G H I F J K L M N ~ O@2 P Q ~ R ~@3 S T ~ U V W X Y Z AA ~ AB AC ~@2 AD@2 ~ AE ~ AF@3 ~@2 AG@2 ~@3
  AA AH ~@2 AI ~@2 AJ Y ~ AA ~ AK AL ~ X AM ~@2 AE ~@3 AN ~@7
>`.pickRestart({
  A: "[~@11 c#3@13 ~@8]/2", B: "f#3@3 ~ f#3@4 ~@8, f#4 ~, ~@3 g#2@5 ~@8", C: "f#4", D: "[e1,e2,f#3,g#3,b3]",
  E: "[g#1,g#2,f#3,b3]", F: "[f#2,e3,a3,b3]", G: "[b0,b1,a3,b3]", H: "[e2,b3]", I: "[d#3,f#3,b3]",
  J: "[b0,b1,e3,a3,b3] c2", K: "[c#3,g#3,e4]", L: "[d#3,c#4,a4] ~", M: "~@3 g#3 ~@2 f#3@2, e3 ~",
  N: "[a3,b3,c#4,e4]@2 ~ b2, b2@3 ~, ~ [f#3,b3]", O: "[f#3@15 c#3@2 ~@11 a3@4]/2",
  P: "[b2,f#3,a3,b3,c#4,e4]@7 f#3 [f#3,b3]@8", Q: "~@3 b3, ~@11 f#3@4 ~", R: "a3@3 a3, f#3", S: "a2 ~@7 a3@8",
  T: "~@2 f#3 a3 ~@4, b2 ~, a3@3 ~@5", U: "~@7 f#3 ~@8", V: "~@7 g#3 ~@4 b3@4", W: "~@3 a3 ~@3 b3", X: "~@7 b3",
  Y: "~@3 a3 ~@4", Z: "~@2 g#3@5 ~@9", AA: "~@3 f#4 ~@4", AB: "~@2 e3@5 ~@9", AC: "~@2 g#3@3 ~@6 g#3 ~@4",
  AD: "[~@7 a3@9]/2", AE: "~ a2 ~@2", AF: "[~@8 f#4@25 ~@15]/3", AG: "[~@10 b3@5 e3@2 ~@15]/2", AH: "~@4 e3@5 ~@3 a3@4",
  AI: "~@5 a3 ~ b3", AJ: "~@3 b3 ~@4", AK: "~@2 e3@3 e3@2 ~@8 a3, ~@7 b3", AL: "~@5 b3 ~@2", AM: "[f#3,a3,b3]",
  AN: "~@3 c#4 ~@4",
})).s("gm_epiano2").gain(0.2)

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@16 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 Y AA AB AC AD AE AF AE AG AH AI AJ AK AL AM AN AO M AP AQ P Q
  R S T U V W X Y Z Y AA AB AC ~ AE AD AR AD AS AD AT@4 ~@2
>`.pickRestart({
  A: "~@2 f#2 ~ g#2@12", B: "a2 ~", C: "~@12 b2 f#2 b1@2", D: "e2@15 ~", E: "g#2", F: "f#2", G: "b1@11 f#2@2 a2 f#2@2",
  H: "e2@7 ~", I: "g#2@11 ~ g#2@4", J: "f#2@7 ~", K: "b1@5 ~ b2 ~ c2@7 ~", L: "c#2", M: "d#2 c2", N: "a2@3 ~@5",
  O: "~@10 b2 ~ b2@4", P: "e2@4 ~ e1 b1 c2 c#2@4 ~@2 g#1 g1", Q: "f#1@3 f#1 ~@2 a1 a#1 b1@4 a1@4",
  R: "g#1@4 ~ g#1 b1 c2 c#2@5 ~ e2 f2", S: "f#2@4 ~ f#1 c#2 f#2 b1@3 f#2 b2 f#2 b1@2",
  T: "e1@4 ~ e1 b1 c2 c#2@4 ~@2 g#1 c#2", U: "f#1@4 ~ f#1 c#2 f#2 b1@4 a1@4", V: "g#1@4 ~ d#1 b1 c2 c#2@5 g#1 d#2 e2",
  W: "d#2@6 ~ c#2 c2@4 g#2 d#2 c2@2", X: "c#2@5 ~ c#2 ~ b1@5 ~ b1 a#1", Y: "a1@6 e2@2 a2@5 a1 f#2 a2",
  Z: "g#2@2 c#2 b1", AA: "g#2@5 g#1 d#2 d2 c#2@6 g#1 g1", AB: "f#1", AC: "b1@15 ~", AD: "c#1", AE: "a1 g#1",
  AF: "c#1@15 ~", AG: "e2@13 e1 f#1 g1", AH: "g#1@10 ~@2 g#2 d#2 g#1@2", AI: "f#1@12 ~ f#1 g#1 a1",
  AJ: "b1@9 ~ f#2@2 b2@2 b1@2", AK: "e2@11 ~ e2 ~ f#1 g1", AL: "g#1@5 ~ g#2@2", AM: "f#2@12 ~ f#1 g#1 a1",
  AN: "b1@8 c2@4 g#2 d#2 c2@2", AO: "c#2@12 ~ g#1 c#2 d2", AP: "a1@6 g#1@2 f#1@6 a1 ~",
  AQ: "b1@6 ~ b1 f#2 b2!2 f#2 b2 f#2 b1@2", AR: "a1@8 g#1@6 b1 c#2", AS: "a1@8 g#1@7 ~",
  AT: "[a1@9 g#1@10 c#1@43 ~@2]/4",
})).s("gm_fretless_bass").gain(0.54)

// bass · fretless bass · "Bass" · soft notes
const bass_soft = note(`<
  ~@15 A B C D ~@4 E ~ F G ~@2 H I ~ J ~@5 K ~@12 L ~@2 M N ~@4 O ~@2 J ~@5 K ~@7 P ~@12
>`.pickRestart({
  A: "c#2@15 ~", B: "d#2 ~@7", C: "~ f#2", D: "b1@11 ~@5", E: "~@14 f#2 g2", F: "~@14 e2 f#2", G: "~@5 f#2 ~ b1 ~@8",
  H: "~@3 g#2 f#2@4", I: "b1@9 f#2 ~@6", J: "~@5 f#1 ~@10", K: "~@6 d2 ~@9", L: "~@11 d#2 ~@4", M: "~@11 b1 ~ e1 ~@2",
  N: "~@11 g#1 ~@4", O: "~@14 g#1 a#1", P: "c#1",
})).s("gm_fretless_bass").gain(0.27)

// chords · synth strings 2 · "Pad"
const synth_strings_2 = note(`<
  ~@2 A@2 B@2 C D@4 E@4 F G H I J K L M N K L O P Q L R@5 S@3 T U V@2 W@2 X@2 Y@2 Z@4 L AA AB AC AD@2 AE Q AF AG AH@4
  AI@3 AJ AK AL@2 AM@2 AN@2 AO AP AO AP AQ AP AQ AR@6
>`.pickRestart({
  A: "[~ [c#1,c#2,c#3]@2 [a1,a2], ~ [g#3,c#4]@3]/2", B: "[[g#1,g#2,f#3,b3] [c#1,c#2,c#3,g#3,c#4]@2 [a2,g#3,c#4,e4]]/2",
  C: "[g#2,f#3,b3,d#4]", // G#m7
  D: "[[e2,g#3]@4 [g#1,g#2]@4 [f#1,f#2]@4 ~@3 c#4, b3@29 ~@3, f#3 a3, ~@4 e3@3 d#3, ~@3 [b0,b1]]/4", // E G# F# B
  E: "[[e1,e2,g#3]@4 [g#1,g#2]@4 [f#1,f#2]@4 b1@2 ~ g#4, b3@13 ~@3, f#3@4 [e3,a3]@3 [c2,g#3,d#4]]/4", // E G# F# A5 G#
  F: "[c#2,c#3,g#3,d#4,e4]", G: "[d#3,a3,c#4,f#4]@2 [g#3,e4] [f#3,d#4]", H: "[a2,b3] [f#2,a3], [e3,c#4]",
  I: "[a3,b3,c#4,e4] [b3,d#4,f#4], b2", J: "[b3,e4]@3 [g#3,b3,e4], e3@3 ~@13", K: "[f#3,b3,d#4]", L: "[e3,a3,c#4]",
  M: "[b2,a3,c#4,e4] [b3,d#4], f#4", N: "[g#3,b3,e4]", O: "[b2,a3,c#4,e4]@2 g#4 f#4, ~ [g#3,d#4]",
  P: "d#4 c#4, [g#3,e4]", Q: "[a3,c#4,f#4]@2 [g#3,e4] [f#3,d#4]",
  R: "[[b3,e4]@2 b3!2 [f#4,g#4]@2 [d#4,f#4] g#4 [a3,c#4]@2 [b3,c#4] b3 ~@2 g#4@2 [f#3,a3,b3,c#4] [b3,c#4,e4,a4] [a3,c#4,e4,g#4] [a3,b3,d#4,f#4], b4@8 a4@3 b4@6 ~@3, [a3,c#4] b3 ~ b3 ~, ~@8 d#4@9 ~@11 e4@16 [d#4,f#4]@12 e4@12 ~@12]/5", // E5 F#sus2 D#m A Bsus2 F#m A Amaj7 …
  S: "[[e4,g#4]@2 [d#4,f#4] g#4 [a3,c#4,a4]@3 [d#4,f#4]@3 [e4,g#4]@2, [b3,b4]@4 ~@3 [b3,b4]@5, ~@3 e4@4 ~@5]/3", // E D#m A D#m E B
  T: "[c#4,f#4,a4]@2 g#4 f#4, ~ [g#3,d#4]", U: "c#4 d#4, [g#3,e4]",
  V: "[[a3,b3,c#4,e4] ~ [d#4,f#4] e4, c#5@3 b4@5, ~ [b3,d#4,f#4] b3@2]/2", // A D#m B
  W: "[[c#4,e4] ~ [d#4,f#4] e4, b3 b3, c#5@3 b4@5, a3 ~@3 [d#4,f#4]@4 ~@8]/2", X: "[~ [b1,b2], [a3,b3,c#4,e4,a4]]/2",
  Y: "[[c#1,c#2]@2 [a1,a2] [g#1,g#2,f#3,b3], [g#3,c#4]@3 ~]/2", // C# A G#m7 C#5
  Z: "[[c#1,c#2]@4 [a1,a2]@2 [g#1,g#2,f#3]@2 g#3@4 ~@3 d#4, [g#3,c#4]@12 b3@19 ~, ~ f#3]/4", // C# A G#7 C#5
  AA: "[a3,c#4,e4]@2 ~ f#4, ~ [b3,d#4]", AB: "f#4 e4, [b3,g#4]", AC: "[b3,d#4,f#4]",
  AD: "[[a3,b3,c#4,e4]@6 ~ f#4, ~@3 [g#3,d#4]]/2", AE: "[g#3,c#4,e4]", AF: "b3 a3, [c#4,e4]",
  AG: "[a3,b3,e4] [b3,d#4,f#4], [c#4,b4]", // Asus2 B C#7
  AH: "[[f#4,g#4]@2 [d#4,f#4] g#4 [a3,b3]@2 b3 [d#4,f#4] [d#4,f#4]@2 g#4@2 [b3,c#4] [c#4,e4,a4] [a3,c#4,e4,g#4] [b3,d#4,f#4], [b3,b4]@4 [c#4,a4]@3 b3@5 ~@4, ~@3 e4@4 b4@6 ~@3, ~@10 e4@3 ~@3]/4", // F#sus2 D#m Asus2 D#m Bsus2 A Amaj7 B …
  AI: "[[f#4,g#4]@2 [d#4,f#4] g#4 [a3,b3]@2 b3 [b3,d#4,f#4]@3 [b3,e4,g#4]@2, [b3,b4]@4 [c#4,a4]@3 ~@5, ~@3 e4@4 b4@5]/3", // F#sus2 D#m Asus2 B E B F#m
  AJ: "[c#4,f#4,a4,c#5]@2 g#4 f#4, ~ [g#3,d#4]", AK: "c#4 d#4, [e4,g#4]",
  AL: "[[a3,c#4,e4] ~ [d#4,f#4] e4, c#5@3 b4@5, ~ [b3,d#4,f#4] b3@2]/2", // A D#m B
  AM: "[[a3,b3,c#4,e4] ~ [b3,d#4,f#4] [b3,e4], c#5@3 b4@5, ~ [b3,d#4,f#4] ~@2]/2", // A B E5 B
  AN: "[[f#3,a3,b3,c#4,e4] [a3,c#4,e4,f#4], a4]/2", AO: "[c#2,c#3,g#3,c#4]",
  AP: "[a1,a2,g#3,c#4,e4] [g#1,g#2,f#3,b3,d#4]", AQ: "[c#1,c#2,g#3,c#4]",
  AR: "[[a1,a2,g#3,c#4,e4]@9 [g#1,g#2,f#3,b3,d#4]@10 [c#1,c#2,c#3,g#3,c#4]@69 ~@8]/6", // Amaj7 G#m7 C#5
})).s("gm_synth_strings_2").gain(0.27)

// chords · synth bass 2 · "Seq 1"
const synth_bass_2 = note(`<
  ~@7 A ~ B ~ A ~ B ~@5 A ~ B ~ A ~ B ~@5 A C D ~ D C D E F G D G D ~@6 A ~ B ~ A ~ B ~@5 A C D ~ D C D E F G D G D ~@15
>`.pickRestart({
  A: "~@4 [f#3,b3] ~@2 [f#3,b3]@2 ~ [f#3,b3] ~@5", B: "~@4 [e3,a3,b3] ~@2 [e3,a3,b3]@2 ~ [e3,a3,b3] ~@5",
  C: "~@4 [e3,b3] ~@2 [f#3,b3]@2 ~ [f#3,b3] ~@5", D: "~@4 [f#3,b3] ~@2 [e3,b3]@2 ~ [e3,b3] ~@5",
  E: "~@4 [f#3,c#4] ~@2 [f#3,c4]@2 ~ [f#3,c4] ~@5", F: "~@4 [g#3,c#4] ~@2 [g#3,c#4] ~@2 [g#3,c#4] ~@5",
  G: "~@4 [g#3,c#4] ~@2 [f#3,b3]@2 ~ [f#3,b3] ~@5", // C#5 B5
})).s("gm_synth_bass_2").gain(0.32)

// bass · fretless bass · "Fretless"
const bass_2 = note("<~@3 A B@2 C ~@37 D@2 ~ E F G ~@8 H I ~@15 J@2 ~ E K L@2 M@2 N@4 ~@2>".pickRestart({
  A: "~@3 d#3", B: "[c#3@4 b2@4 [c#2,g#2]@14 ~@2 f#3@7 ~]/2", C: "f#3@7 ~", D: "[f#2@6 f#3@3 b2@6 ~]/2",
  E: "~ d#3 c#3 b2", F: "[c#2,g#2]@7 ~", G: "f#3@7 ~ f#3@8", H: "c#3@7 ~", I: "d#3@2 f#3 ~ g#3@11 ~",
  J: "[f#2@11 ~ c#3@2 f#3@16 ~@2]/2", K: "g#2@15 ~", L: "[f#3@2 a3@11 f#3@2 e3@2 ~@15]/2",
  M: "[~@6 d#3@5 b2@3 g#2@17 ~]/2", N: "[f#3@8 ~ f#3@10 c#3@35 ~@10]/4",
})).s("gm_fretless_bass").gain(0.4).pan(0.4)

// chords · electric guitar clean · "CleanGtr"
const electric_guitar_clean = note("<A@7 ~@37 B@2 C@4 ~@25 B@2 D@6 E@5 ~@2>".pickRestart({
  A: "[~@21 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@6 g#4@2 ~@3 c#5@13, ~@8 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 ~@2 g#4@16, ~@11 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@8 ~@13, ~@17 b4@16 b4@16 b4@16 b4@16 b4@31]/7",
  B: "[~@6 b4@10 ~@6 b4@9 ~, b4@3 ~@5 b4@3 ~@5, ~@3 c#5@16 c#5@12 ~]/2",
  C: "[~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@6 g#4@10, g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 ~@10, ~@3 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@13, ~@9 b4@16 b4@16 b4@23]/4",
  D: "[~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3 ~@13 g#4@3, g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3 g#4@6 g#4@7 ~@3, ~@3 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@7 c#5@9 c#5@4, ~@9 b4@16 b4@16 b4@16 b4@16 b4@16 b4@7]/6",
  E: "[~@13 g#4@3 ~@19 [c#4,g#4]@32 ~@13, g#4@6 g#4@7 ~@3 g#4@9 g#4@10 ~@45, ~@3 c#5@9 c#5@7 c#5@9 c#5@32 ~@20, ~@9 b4@32 ~@39]/5", // C#5
})).s("gm_electric_guitar_clean").gain(0.19)

// other · electric guitar muted · "MuteGtr"
const electric_guitar_muted = note("<~@19 A B C D A E A F G H I@2 ~@19 A B C J A E A F G H I@2 ~@28>".pickRestart({
  A: "~@2 b3 ~@2 b3 ~ b3 ~@2 b3 ~@2 b3 ~ b3", B: "~@2 b3 ~@2 b3 ~ b3 ~ g#3 c#4 ~ c#4 b3@3",
  C: "~@2 b3 ~@2 b3 ~ b3 ~@2 b3 ~ b3!2 ~ b3", D: "~@2 b3 ~ b3 ~@2 c#4 ~@2 c#4 g#3 b3 g#3@3",
  E: "~@2 b3 ~ b3!2 ~ d#4 ~ b3 c#4 g#3 b3@3 ~", F: "~@2 b3 ~@2 b3 ~ c4 ~@2 c4 ~ d#4@4", G: "~@4 e4@3 ~, c#4@7 ~",
  H: "~@3 a3@3 c#4@2 [g#3,e4]@4 [f#3,d#4]@4, f#4 ~", // C#m D#m
  I: "[e3@4 ~@12 b3@4 ~ b3 ~ b3 ~@2 b3 ~ b3@3 ~, c#4@21 ~@11, ~@3 b3@5 ~@8, ~@7 a3@9 ~@16, ~@8 e4@13 ~@11]/2",
  J: "~@2 b3 ~ b3!2 ~@3 b4 ~@2 f#4 e4 ~@2",
})).s("gm_electric_guitar_muted").gain(0.57)

// other · electric guitar muted · "MuteGtr" · soft notes
const electric_guitar_muted_2 = note("<~@19 A B C D E ~ F G H ~ I ~@20 A B C J E ~ F G H ~ I ~@29>".pickRestart({
  A: "~@4 b3 ~@4 b3 ~@2 b3 ~@3", B: "~ b3 ~@14", C: "~ g#3 ~@2 b3 ~@11", D: "~ g#3 ~@4 b3 ~@2 b3 ~@6",
  E: "~@9 b3 ~@2 b3 ~@3", F: "~ g#3 ~@2 b3 ~@4 g#3 ~@6", G: "~@9 g#3 ~@6", H: "~@6 g#3@9 ~", I: "~@5 e3@10 ~",
  J: "~@7 b3 ~@8",
})).s("gm_electric_guitar_muted").gain(0.29)

// chords · electric guitar clean · "CleanGtr"
const electric_guitar_clean_2 = note(`<
  ~@20 A ~ B ~ C ~ D E F G H I J K L M N O P Q R@2 S T@3 ~@5 A ~ U ~ C ~ V E F G H I J K L M N O P Q R@2 S T@3 ~@13
>`.pickRestart({
  A: "~@10 c#4 ~ c#4 b3@3", B: "~@7 c#4 ~@2 c#4 ~ b3 g#3@3", C: "~@7 d#4 ~@2 c#4 ~ b3@3 ~", D: "~@7 c4 ~@2 c4 ~ d#4@4",
  E: "[g#3,e4]", F: "~@3 c#4 [g#3,e4]@2 [f#3,d#4]@2, f#4 ~, ~@3 a3@5 ~@8",
// … 154 more lines

More by Pooh