Strudelify

Malafemmena

Leali

KeyG majorTempo111 bpm
0:00/0:00
// Malafemmena — Leali
// 111.2 bpm, 4/4, key G 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 162 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111.2/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 · "MIDI"
const epiano2 = note(`<
  ~ A@4 B C D@2 E@4 F@6 G@2 H@2 I J@5 K L M@4 N@2 O@6 P@2 Q@2 R@2 S@2 T@2 U V@2 W@3 X Y D@2 E@4 F@6 G@2 H@2 I J@5 K L
  M@4 N@2 O@6 P@2 Q@2 R@2 S@2 T@2 U V@2 W@3 X Y D@2 E@4 F@6 Z@2 H@2 I AA AB AC@3 AD@4 AE@2 AF@2 AG@2 AH AI AJ@2 AK@2
  AL@2 AM AN AO AP AQ@3
>`.pickRestart({
  A: "[~@10 d4@2 [d4,b4]@2 ~@6 f#3@2 [f#3,b3]@2 ~@4 b2@2 ~@4 b3@2 b3@2 ~@4 [g3,b3,d4]@2 a2 ~@5 a3@2 [a3,d4,f4]@2 [d3,a3,d4,f4,a4]@2 ~@2 d3@2 ~@2 g#4@2, g1@10 a4@4 ~@4 d3@8 [d4,a4]@4 e4@6 d4@2 b3@2 e3@5 ~ a3@4 ~@14, [d4,g4,b4]@6 g4@8 [d4,f#4]@8 [f#4,b4]@8 ~@4 e3@4 e4@7 ~ [d4,f4]@6 ~@12, ~@4 g2@10 [b1,d5]@16 [e2,g4]@15 ~ d2@10 [g2,b3,d4,f4,g4]@4 [g#2,g#3,b3,d4,f4]@4, ~@6 [d4,b4]@2 g3@6 ~@2 b2@6 [b2,d4]@2 [f#3,b3]@6 ~@2 b2@13 ~@3 d3@6 ~@10]/4", // G B5 G Dm D5 G D B5 …
  B: "~@6 c4 ~@5 [e3,g3,c4]@3 a#2, c2@7 c4 a3@2 c3@5 ~, [a3,e4]@6 c3 e4@9, [c4,g4]@6 g4@9 ~, ~ g2@3", // C A5 C5
  C: "d#3@4 ~@2 [g3,a3]@4 [d#3,g3,a3]@4 a2 ~, d#2@15 ~, [g3,a3,d#4]@6 d#4@9 ~, ~@2 d#3@3 ~@3", // Gsus2 Am7b5
  D: "[~@16 d5@4 [d5,d6]@11 ~, d2@8 g4@7 [d4,a4] [d2,d3]@15 ~, d3@6 [d3,d4]@4 a4@2 a2@19 ~, ~@2 g3@29 ~, ~@4 a3@27 ~]/2", // D D5 D
  E: "[d3 ~@17 [g3,d4]@2 ~ [b3,d4]@2 ~@3 g3@2 [g3,a3,b3,d4]@2 e2 ~@15 a3@2 ~@8 e4@2 ~@2 e3@2 ~ a2, g2@24 [b3,d4]@4 ~@3 g3@19 c5@2 a3 [a4,e5]@5 e3 [a3,e4]@3 [a3,c4,g4]@2, a3@6 d4@8 b3@4 a3@5 g3 g4@7 ~ [a3,c4]@4 a2@2 [c4,g4]@10 a3@2 g5@14, g3@6 g4@14 g3 e4@10 ~ e4@6 a3@4 e3@6 a2@7 a3 c5@8, [b3,d4]@4 d3@2 b3@4 g3@4 a3@2 d3@15 ~ a1@32]/4", // G5 Bm G Bm A5 Am7 Am C5 …
  F: "[~@8 [a3,f#4]@2 [g#3,f4] ~ g2 ~ g3@4 g3@2 g3@2 ~@6 [g3,e4]@3 [d2,a3] ~@4 g3@2 g3@2 g3@2 [d3,g3,g4]@2 g2 ~@18 d3 ~@8 [b3,d4]@2 [f#2,f#3] ~ b2 ~@15 [g#3,b3,d4]@2 e2 ~, d2@11 ~@3 [c2,e3]@8 g3@4 c3@5 g3@3 g2@10 ~@6 g2@12 c3@2 [g2,a3]@11 ~@3 [e2,f4]@17 ~, [a3,f#4]@8 ~@6 c4@6 c4@12 b3@6 b3@7 ~ e4@8 c4@4 c3@2 [c4,e4,c5]@3 g3@7 g3@5 ~@3 [g#3,b3]@6 e3@2 e4@9 ~, ~@4 a2@7 ~@7 g2@14 g1@13 ~ [c2,g3]@18 ~@4 d3@7 ~@7 b2@13 ~, ~@6 d3@5 ~@11 d4@10 d4@6 d3@2 [b2,d4]@5 ~ c4@6 c3@2 g4@10 [b3,d4]@8 ~@6 d4@8 [g#3,b3]@4 e3@5 ~]/6", // D C# C D5 G5 Bm F# G#dim …
  G: "[~@8 g3@2 [g3,d4]@2 a#2 ~@15 [d#3,g3,a3]@2 d3 ~, [a1,a3,e4]@13 ~ d#2@17 ~, c4@7 e3@6 ~ d#4@6 d#3@6 a#2@5 ~, g3@3 g3 ~@3 [g3,a3]@7 ~@2, ~@4 a2@4 [a2,c4]@5 ~ d#3@4 a#2@4 [d#4,g4,a4]@9 ~]/2", // G5 Am7b5 A5 Gsus2 Am Am7b5
  H: "[[g2,g3,a3,b3]@8 g3@2 [g3,d4]@2 e2 ~ g3@4 ~@2 b3@2 c#3@4 ~@2 [g3,c#4,e4]@2 g2 ~, d4@10 ~@4 e3@8 [g3,c#4,e4]@4 [c#3,e3]@5 ~, ~@8 [g2,d3,a3,b3]@5 ~ a1@17 ~, ~@14 c#3@4 g3@4 b3@9 ~, ~@14 b3@4 a2@13 ~]/2", // G G5 C#dim C#m G
  I: "g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 [g3,c4]@2 [g3,d4] a#2, [c2,e3]@15 ~, c4@4 c4@4 e4@7 ~, ~@2 g2@13 ~, ~@4 c3@2 d4@4 c3@5 ~", // C5 G5 C
  J: "[g3@2 [g3,c4,g4]@2 [c4,e4] ~@3 f#3@2 f#3@2 [f#3,d4]@2 d3!2 ~@18 g4@3 ~@29 g3@2 ~ g3@2 ~@7 d3@2, d#2@15 ~ g2@21 g4@2 g3 a4@14 b3@4 d3@4 g1@4 b3@2 d3 a3@2 d3 [g3,b3]@2 d3@2 [g3,d4]@4, [a#3,d#4]@5 ~ [d2,f#4]@9 ~@5 d3@10 g3@4 [b3,d4]@6 f#4@2 g3@5 [d3,b3] [g2,d4,f#4]@4 d3@2 f#4@26, ~@6 d4@4 a3@5 g3@7 [b3,d4]@10 d3@2 e4@3 b4@17 d4@10 g2@16, ~@3 a3 d3@3 ~ [a3,b3,d4]@3 a3@11 [e4,g4]@11 f#3@7]/5", // C5 C D G G5 D#5 D Bm …
  K: "e3@3 ~@3 e3@2, g2, [g3,b3,d4]!2, ~@3 e3@3 ~@2", // G
  L: "~@6 [g#3,b3]@2 ~ [g#3,b3]@2 ~@3 e2@2, e2@3 [g#3,b3,d4], e3@8 e3 f4@7, [g#3,b3]@6 d4@5 e3@5, ~ b2@3", // G#m G#dim G#m
  M: "[~@10 e3@4 ~@14 [c4,g4]@3 a2 ~@12 a2@2 ~@4 [a3,d4]@2 ~ a3@2 ~@7 e2@2, a1@23 a3 [e4,a4]@2 e3@5 f#3@15 a2@10 a3@2 d3@2 [a3,d4,a4]@4, a3@6 e4@8 e3@2 a2@2 g4@2 a3 [f#4,b4]@11 [a3,d4]@6 f#4@14 d3 d4@2 d3 f#4@8, [g3,c4,e4]@3 g3@13 d2@5 d3@4 f#3@7, ~@2 a2 c4@6 c5@7 ~@2 d3 [a3,d4]@5 d2@8]/4", // C5 D5 A5 D5 B5 D5 C D5
  N: "[~@14 e3@2 ~@2 [g3,c4]@2 ~ [g3,c4]@2 ~ [g3,c4]@2 ~ g3@3 ~ a2, a1, e4@16 e3@4 e3 g4@5 e3@6, [g3,c4]@6 [g3,c4]@12 e4@5 e3 e4@3 [c4,g4]@5, ~@2 a2 e3@2 a2@3 a2@7 [g3,e4]]/2", // C5 C
  O: "[~@8 [f#3,a3,d4]@2 [d3,f3,g#3,c#4] ~ g2 ~@9 g3@2 g3@2 g3@2 ~@10 g3@2 g3@2 [g3,b3]@2 g2 ~ g3@4 ~@3 c4@2 ~@5 [c4,g4]@3 d3 ~@6 b3@4 b3@4 g4@4 ~@12 d3@2, d2@11 ~@3 [c2,e3]@10 d4@2 e4@2 [g3,g4]@2 d2@2 [g1,a3]@13 ~ c2@10 c4@2 c3@5 ~ [b3,d4]@4 d3@10 [b3,d4,e4]@4 [g4,b4]@2 d4@2 b3@2 [f#4,a4]@2 d4@2 [e4,g4]@4, [f#3,a3,d4]@8 ~@6 [g3,c4]@8 c4@9 g3@5 g2@8 ~@6 e4@3 g4@2 c3 [e4,c5]@7 a3@7 a3@26, ~@6 d3@4 ~@8 g2@14 b3@6 b3@4 ~@4 c4@6 g2@11 ~ g2@32, ~@20 c3@12 d4@8 [d3,d4]@5 ~@5 g3@13 g3@7 d4@4 g3@22]/6", // D C# G C5 C G Gsus2 Bm …
  P: "[~@18 [f#3,b3]@2 ~ f#3@2 ~@5 [f#3,g3,d4]@2 d3 ~, g2@10 g1@13 b2 [f#3,a3]@2 d3@4 ~@2, [b3,d4,f#4]@6 f#4@25 ~, ~@4 d3@8 g2@19 ~, ~@6 [b3,d4]@8 d3@2 b2@2 [g3,d4]@2 d3 b3@10 ~]/2", // B5 Gmaj7 F#m Bm G5
  Q: "[e3@6 ~@2 [g3,b3]@5 ~@5 b2@2 ~ [d3,g#3]@3 ~@4 [g#3,b3,d4,f4]@3 e2, g2@13 ~ e2@10 [g#3,d4]@2 [e2,e3]@6, [g3,b3]@4 ~@3 d4@5 d3@4, ~@6 e3@7 ~ [g#3,b3]@6 b2@12, ~@21 b3@7 ~@4]/2", // G Ddim G#dim E G G#m
  R: "[~@10 [g3,c4,e4]@2 b2 ~ [g#3,b3,d4]@4 [g#3,b3,d4,f4]@2 b2 ~@7 [g#3,b3,d4]@2 g2 ~, [a1,a3]@13 ~@13 e3@5 ~, [g3,c4,e4]@9 e3@4 ~@9 [g#3,b3]@6 ~@4, ~@6 a2@7 ~ e2@7 ~ [e2,e4]@9 ~]/2", // C G#dim A C G#m E
  S: "[[e3,g3,a3,c4]@6 c3 ~@3 c2@2 c3 [d#2,a#2] ~@4 d#2 ~@5 d#3 [g3,a3,d#4] ~ d#3 [d#3,g3,a3,d#4]@2 d3 ~, c2@4 [e3,g3,a3,c4]@2 ~ [g3,a3,d#4]@5 ~@4, ~@7 d#3@4 ~@5, ~@5 d#2@2 ~]/2", // Am7 D#5 Am7b5 Am7 Am7b5
  T: "[[g3,a3,b3,d4]@7 ~ [g3,a3,b3,d4]@2 f#2 ~ g#2 ~ [g#3,b3,d4,f4]@4 [g#3,b3,d4,f4]@2 b2 ~ [e2,g#3,b3,e4]@4 b2 ~ [b3,d4] ~ e2 ~, g2@5 ~@3 g2 ~@5 e2@6 ~@8 g#3@2 ~@2]/2", // G G#dim E Bm
  U: "~@5 [g3,b3,c#4,e4]@3, [a1,c#3], [g3,b3]@5 ~@3, e3!2, ~@4 a2@11 ~", // C#m7b5 A G
  V: "[c2@6 c3 ~@5 [f#3,a3,c4]@3 d3 ~@14 f#2@2, g3@15 g3@7 [b3,g4]@6 [a3,d4]@4, [a3,c4]@6 ~@2 a3@3 d4@2 g3@3, e3@8 d2@7 ~ g2@16, ~@10 d3@5 ~ [b3,d4]@4 d3@12]/2", // F#dim Em D5 Am Bm
  W: "[~@12 [a3,d4,f#4]@2 b2 ~@11 [e4,g4,b4]@2 a2 ~@7 [a3,d4,f4]@2 [d4,f4]@2 ~@2 d3@2 [g#3,b3]@2 [g#3,b3,g#4]@2, [b1,b3]@15 ~ e2@13 ~ d2@14 ~@4, f#3@6 [a3,d4]@6 ~@3 [b3,d4]@5 e3@2 [g3,b3,d4]@7 ~ g4@10 [g2,b3,d4,f4,g4]@4 [g#2,d4,f4]@4, d4@6 a4@9 ~ [e4,g4]@8 e3@5 ~ a4@8 d3@4 ~@6, ~@4 b2@6 [b2,f#3]@5 ~@3 b2@11 ~ [a3,d4,f4]@4 d3@4 [a3,a4]@6 ~@4]/3", // D Em Dm G#m B D5 Bm G …
  X: "~@3 [g3,c4,e4], [c2,g4]@5 c3@3, e4@6 e3 a3@9, [a3,c4]@2 c3 [g3,c4] e3@4, ~ g2@7", // C C5 Am C5
  Y: "d#3@4 ~@2 [g3,a3]@4 [d#3,g3,a3]@4 a2 ~, d#2@15 ~, [g3,a3]@6 d#4@9 ~, ~@2 d#3@3 ~@3", // Gsus2 Am7b5 Gsus2
  Z: "[~@8 g3@2 [g3,d4]@2 a#2 ~@15 [d#3,g3,a3]@2 d3 ~, [a1,a3,e4]@13 ~ d#2@17 ~, c4@7 e3@6 ~ d#4@6 d#3@6 a#2@5 ~, g3@3 g3 ~@3 [g3,a3]@7 ~@2, ~@4 a2@4 [a2,c4]@6 d#3@4 a#2@4 [d#4,g4,a4]@9 ~]/2", // G5 Am7b5 A5 Gsus2 Am Am7b5
  AA: "~@4 g3@2 ~@4 a#3@2 [a#3,d#4,g4]@2 f2 ~, d#2@15 ~, [a#3,d#4]@6 g3@9 ~, g3@4 d#3@2 [a#3,d#4]@2 d#3@7 ~, ~@2 a#2@13 ~", // D# D#5
  AB: "~@7 [f3,a#3], [a#1,f4,a#4], [a#3,d4]@3 d4@5, ~@2 a#2@3 a#2@3, ~@3 [f3,a#3]@4 ~", // A#5 A# A#5
  AC: "[f3@2 [d4,f4,a#4] ~@2 [a#3,d4]@2 ~@5 [a#3,d4,f4]@2 f2 ~@11 a#2@4 [a#2,f3]@3 [a3,d4,f4,a4] ~ [a#2,f3] [a3,d4]@2 ~ a3@2 ~ a3@2 ~@2 a#2@2, a#2@15 ~@5 a#2@6 ~@12 a#2@6 [a#1,a3,d4]@4, ~@4 f3@3 f3@8 a3@7 [d3,a3,d4]@12 ~@4 f3 d4@3 f4@6, ~@5 f4@3 [a#3,d4]@2 [f2,f#2]@5 ~ [a#1,f4,a4]@18 ~@5 a4@9, ~@8 a#4@7 ~ d4@6 f3@8 ~@6 f4@5 f3@7]/3", // A# A#5 Dm A#5 D5 A#maj7 D5 A# …
  AD: "[~@10 [f3,g#3,d4]@2 d#3 ~ [g#3,b3]@4 [g#3,b3,f4]@2 d#3 ~ b3@4 b3@2 [b3,d4,f4,g4]@2 ~@6 g3@2 [g3,c4]@4 c4@2 [c4,d#4]@2 ~@14 [c4,d#4,g4]@2 a#2 ~, f2@13 ~ [g#2,d4]@7 ~ [g2,g3]@8 c4@8 d#4@4 g3@8 c3@2 g3@2 [c3,g5,c6]@4 g3@5 ~, d4@8 c3@5 ~@17 d#3@26 c5@7 ~, [f3,g#3]@6 c4@7 ~@9 [d4,f4]@6 ~@2 c2@16 c2@17 ~, ~@4 c3@2 [f3,g#3]@4 ~@16 f3@4 g3@4 c3@4 c3@8 [c4,d#4,g4]@9 d#5@8 ~]/4", // Ddim G#m Fdim G7 C5 Cm G#dim G …
  AE: "[d#3@6 [a#2,d#3]@2 [d#3,g3,d#4] ~ [f2,f3,f4] ~ f2 ~@15 [f#3,a#3,d#4]@2 f2@2, [d#2,g3,a#3,d#4]@8 [d#2,a#3]@2 ~@4 g#2@12 g#2@5 ~, ~@14 [f#3,a#3,c#4,d#4]@8 c#4@9 ~, ~@20 g#1@11 ~, ~@11 [f#3,a#3,d#4]@3 ~@2]/2", // D#5 D# F D#m D# D#5 D#m7 D#m
  AF: "[[a#1,a#2,f3,a#3,d4]@6 a#3 ~ [a#2,a#3,d4,f4,a#4]@2 [a2,a3,d4,f4,a4] ~@3 [g#3,b3,g#4]@4 [g#3,b3] ~ [g#3,b3,d4,g#4] ~@9 g2@2, ~@14 [g#2,d#3,d4]@7 ~ f3@10, ~@11 g2@4 ~, ~@11 [g3,b3,d4,f4]@3 [g3,b3,d4,f4]@2, ~@13 d3@3]/2", // A# Dm G#m G#dim G# G7
  AG: "[[c2,c3,g3] ~ [c2,c3,g3,a#3,c4]@2 [d2,d3,c4] ~ [g3,a#3,c4]@2 [c#2,d#2,d#3,c4] ~ [d#2,d#3,c4] ~ [g3,a#3,c4]@2 [f2,f3,g3,a#3,c4]@4 f2@4 f2@2 ~@4 f2@2 f2@2, [a#3,c4]@2 ~@2 [g3,a#3]@2 [d2,d3] ~ [g3,a#3]@2 [g3,a#3]@2 [e2,e3] ~@5 f3@14, ~@9 [g3,a#3,c4]@4 [g3,a#3,c4]@3, ~@6 f2 ~]/2", // C5 C7 D7 C7 Cm C7 Fsus4 A#sus2 …
  AH: "~@6 a#3 ~@7 f2@2, [a#1,d#3]@5 f2 [g#3,a#3]@2, [g#3,c4]@7 c4@9, ~@4 f2@3 a#3 g#3@2 a#2@6, ~@3 d#4@5", // D#5 G#sus2 G#
  AI: "[a#1,a#2,a#3] ~ [a#1,a#3]@2 [c3,c4] ~ [c3,c4] ~ [c#2,c#3] ~ [c#2,c#3,c#4]@2 [d2,d3,d4]@2 [d2,d3,d4] ~, ~@2 a#2 ~ c2@2 c2@2 c#4@2 ~@6", // A# C C# D
  AJ: "[d#2@4 d#2@2 [a#2,d#3] ~@3 [f2,f3,f4]@2 f2 ~@15 [f#3,a#3,c#4,d#4]@2 a#2 ~, [d#3,d#4]@7 ~ [d#2,d#3,g3,a#3,d#4]@4 ~@2 g#2@12 a#2@4 ~@2, ~@14 [f#3,a#3,c#4,d#4]@9 [a#4,c#5]@8 ~, ~@18 a#1@13 ~, ~@22 d#5@9 ~]/2", // D#5 F D#m7 D# D#m7 A#m
  AK: "[[a#2,f3]@4 [a#2,f3]@2 [a#2,f3,a#3] ~ [a#2,f3,d4,f4,a#4]@2 [a2,a3,d4,f4,a4] ~@3 g#3@4 g#3@2 [g#3,b3,d4,g#4] ~@7 [f3,g3,b3]@2 g2 ~, [a#3,d4]@7 ~ a#3 ~@5 [g#2,d#3,b3,d4,g#4]@7 ~ [g2,d4,f4]@9 ~, ~@11 [g3,b3]@3 ~@2, ~@26 d3@5 ~]/2", // A#5 A# Dm G#dim G7 A# G#m G7 …
  AL: "[[c2,c3,g3,a#3,c4] ~ [c2,c3,g3,a#3,c4]@2 [d3,g3,a#3,c4]@2 [d2,d3,c4] ~ [d#3,g3,a#3,c4]@2 [g3,a#3,c4]@2 [g3,a#3,c4]@2 [f2,f3,g3,a#3,c4]@4 f2@4 ~@4 [g3,a#3,c4]@4 f2 ~, ~@4 d2 ~ [g3,a#3]@2 [c#2,d#2,f3] ~ [d#2,d#3] ~ [e2,e3] ~@5 f3@13 ~, ~@9 [g3,a#3,c4]@4 ~@3, ~@11 f2@4 ~]/2", // C7 Gm D7 Cm7 C7 Fsus4 C7 Gm …
  AM: "a#3@4 ~@8 [g#4,c5]@2 f3 ~, [a#2,d#4]@15 ~, c5@10 a#3@5 ~, g#4@6 [a#4,d#5]@9 ~, ~@2 a#3 g#4@3 ~@2", // G# D#5
  AN: "~@10 a#3@4 f3 ~, a#3@2 a#3@3 ~@3, ~ [a#2,c6]@6 ~, ~ d#5@3 d#5@3 ~, ~@5 [c5,g#5]@9 ~@2", // A#sus2 Fm
  AO: "a#3@2 ~@3 a#3 ~ f3, [a#1,g4], d#4@3 [g3,d#4]@5, ~@2 a#3@3 ~ [d#3,a#3]@2", // D# Cm D#5
  AP: "~@12 [d#4,a#4]@3 ~, a#2@5 a#4@2 a#3 [g4,d#5]@2 a#3@5 ~, ~@2 a#5@13 ~, ~@2 d#5@3 g5@10 ~, ~@4 f3@11 ~", // D#5 Cm
  AQ: "[c4 ~@10 f5@27 ~@10, [a#2,f3,d4]@2 ~, ~ [a#3,f4]@32 ~@15, ~@9 c5@29 ~@10, ~@5 d5@14 ~@5]/3", // A# A#5
})).s("gm_epiano2").gain(0.36).pan(0.4)

// bass · electric bass finger · "MIDI"
const bass = note(`<
  ~ A B C D E F G H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q R S R T U V W X Y Z W AA AB@2 R AC U AD U AD U V AE@2 AF AG AH@2 AI
  AJ AK AL AM AN AO F G H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q R S R T U V W X Y Z W AA AB@2 R AC U AD U AD U V AE@2 AF AG
  AH@2 AI AP AK AL AM AN AO F G H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P AQ AR AS AT AU AV AW AX@2 AY@2 AZ@2 BA@8 ~@9
>`.pickRestart({
  A: "g2@5 ~ g2 ~ g2@2 g1@2 a1@2 a#1@2", B: "b1@5 ~ b1 ~ b1@5 ~ b1@2", C: "e2@5 ~ e2 ~ e2@5 ~ d#2@2",
  D: "d2@5 ~ d2 ~ g2@4 a#1@2 b1@2", E: "c2@5 ~ c2 ~ c2@5 ~ c2@2", F: "f1@5 ~ f1 ~ f1@5 ~ f1@2",
  G: "d1@5 ~ d1 ~ d1@6 a1@2", H: "~@4 d1@11 ~, d2@15 ~", I: "[g1@5 ~ g1 ~ g1@4 ~@2 g1@7 ~ g1 ~ g1@8]/2",
  J: "[a1@5 ~ a1 ~ a1@5 ~ a1@7 ~ a1 ~ a1@4 d2@4]/2", K: "[d1@5 ~ d1 ~@7 d2@8 d1 ~ d1@4 d1@4, ~@8 d1@13 ~@11]/2",
  L: "[g1@5 ~ g1 ~ g1@6 d1@4 d1@8 ~@2 d2@2 d1@2, ~@13 d1@2 ~]/2",
  M: "[g1@5 ~ g1 ~ g1@6 e1@8 e1@3 ~@3 e2@2 e1@2, ~@13 e1@2 ~]/2", N: "[a1@5 ~ a1 ~ a1@6 c2@7 ~ c2@4 c2@2 c2@4]/2",
  O: "[g1@5 ~ g1 ~ g1@6 a1@4 a1@4 a1@3 ~ a1@2 a1@2 a1@2]/2", P: "d2 ~ d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 d2@2",
  Q: "~@6 d1@3 ~ d1 ~ f#1@3 ~", R: "g1@5 ~ g1 ~ g1@8", S: "~@2 g1 ~@2 g1 ~@2 g1@5 ~ d1 e1",
  T: "~@2 g1 ~@2 g1 ~@2 g1@6 d1 e1", U: "g1@5 ~ g1 ~ g1@7 ~", V: "g#1 ~ g#1 ~@2 g#1 ~@2 g#1@5 ~ g#1 ~",
  W: "a1@5 ~ a1 ~ a1@8", X: "~@2 a1 ~@2 a1 ~@2 a1@5 ~ [d#2,e2] a1", Y: "d1@5 ~ d1 ~ d1@8",
  Z: "~@2 d1 ~@2 d1 ~@2 d1@5 ~ d1 g#1", AA: "~@2 a1 ~@2 a1 ~@2 a1@5 ~ a1 e1",
  AB: "[d1@5 ~ d1@2 ~@2 d2@3 ~ [d1,d2]@8 d1@3 ~ d1@2 d2@2 d1 ~, ~@4 d1@3 ~@9]/2", // D
  AC: "d1 ~@2 d2@2 d1 f#1 ~, ~@2 d1@7 ~@7", AD: "g1 ~ g1 ~@2 g1 ~@2 g1@6 d1 e1",
  AE: "[a1@5 ~ a1 ~ a1@6 ~@4 e2@4 e1@3 ~ e1@2 b1@2 e1@2, ~@7 e1@4 ~@5]/2", AF: "c2@5 ~ c2 ~ c2@6 f1@2",
  AG: "~@2 f1@4 f1@2 f1@6 c2 ~", AH: "[g1@5 ~ g1 ~ g1@2 d1@2 ~@6 e2@4 e1@3 ~ e1@2 b1@2 e1@2, ~@7 e1@4 ~@5]/2",
  AI: "a1@5 ~ a1 ~ a1@6 a1@2", AJ: "d1@5 ~ d1 ~ d1@5 ~ d1 ~", AK: "g1@5 ~ g1 ~ g1@2 g1@2 a1@2 a#1@2",
  AL: "b1@6 b1 ~ b1@5 ~ b1@2", AM: "e2@5 ~ e2 ~ e2@6 d#2@2", AN: "d2@5 ~ d2 ~ g2@4 d2@2 c#2@2",
  AO: "c2@4 ~@2 c2 ~ c2@5 ~ c2@2", AP: "d1@5 ~ d1 ~ d1@5 ~ d1@2",
  AQ: "f2@2 f2@2 f2 ~ f2 ~ f2@2 c2@2 f2 ~ c2@2, ~@10 a#1 ~@5", AR: "a#1@4 ~@2 a#1 ~ a#1@6 ~@2",
  AS: "a#1 ~ a#1 ~@2 a#1 ~@2 a#1@5 ~ f1 g1", AT: "a#1@4 ~@2 a#1 ~ a#1@8", AU: "~@2 a#1 ~@2 a#1 ~@2 a#1@4 ~@2 a#1 ~",
  AV: "f2@5 ~ f2 ~ f2@5 ~ f2@2", AW: "d2@5 ~ d2 ~ g1@4 d2@2 c#2@2",
  AX: "[c2@5 ~ c2 ~ c2@5 ~ c2@7 ~ c2 ~ c2@3 ~ c2@2 d2@2]/2",
  AY: "[d#2@5 ~ d#2 ~ d#2@5 ~ g#1@4 g#1@3 ~ g#1 ~ g#1@3 ~ g#1@4]/2",
  AZ: "[a#1@5 ~ a#1 ~ a#1@4 f1@2 g1@4 c2@2 d2@2 f2@2 f#2@2 g2@2 d2@2 c#2 ~]/2",
  BA: "[c2@4 d2@2 d2@2 d#2@2 d#2@2 e2@2 ~@9 e4@105, ~@7 a2@57, ~@11 e2@53]/8",
})).s("gm_electric_bass_finger").gain(0.48)

// other · overdriven guitar · "MIDI"
const overdriven_guitar = note(`<
  ~ A@5 B@3 ~@40 C@2 D@2 E@2 A@5 B@3 ~@40 C@2 D@2 E@2 A@5 B@3 ~@24 F@2 G@2 H@2 ~@2 F@2 G@2 H@2 ~@7
>`.pickRestart({
  A: "[b4@9 ~ b4@4 d5@11 ~ b4@2 a4@2 g4@12 [g#4,a4]@2 g4@2 a#4@4 [g#4,a4] ~ g4@2 a4@2 g4@3 ~ e4@6 g4@14]/5", // Amaj7
  B: "[a#4!3 a4 ~ g4 ~ d4@6 [c4,e4]@2 [c5,e5]@9]/3", C: "[e5@4 e5 d#5 e5 g5@6 d5@3]/2",
  D: "[d5@7 ~ d5@2 c#5@2 d5 ~ f5@8 e5@10, ~@14 e5 ~@17]/2", E: "[b5@2 a5@2 e5@2 g5@5 ~ [a5,a#5,b5] ~ a5@18]/2",
  F: "[g5@4 g5 f#5 g5 a#5@6 f5@3]/2", G: "[f5@7 ~ f5@2 e5@2 f5 ~ g#5@8 g5@10, ~@14 g5 ~@17]/2",
  H: "[d6@2 c6@2 g5@2 a#5@5 ~ [c6,c#6,d6] ~ c6@18]/2",
})).s("gm_overdriven_guitar").gain(0.27).pan(0.6)

// chords · brass section · "MIDI"
const brass_section = note(`<
  ~@23 A B ~@24 C@2 D@2 E F ~@22 A B ~@24 C@2 D@2 E F ~@22 A B ~@8 G@2 H@2 I@2 J@2 G@2 K@2 L@2 M@2 ~@5
>`.pickRestart({
  A: "[g4,a4,c5]@15 ~", B: "[a#4,c5,d#5]@15 ~", C: "[[e4,a4,c5]@13 ~ [d#4,a4,c5]@17 ~, g4@31 ~]/2",
  D: "[[d4,g4,b4]@12 ~@2 [d4,f4]@7 ~ e4@8 ~@2, ~@14 [g#4,b4]@17 ~]/2", E: "[c#4,e4,g4]@15 ~",
  F: "[c4,e4,g4]@8 [d4,f#4]@7 ~, a4@15 ~", G: "[[g4,c5,d#5]@13 ~ [f#4,c5,d#5]@17 ~, a#4@31 ~]/2",
  H: "[[f4,a#4,d5]@12 ~@2 [f4,g#4]@7 ~ g4@9 ~, ~@14 [b4,d5]@17 ~]/2", // A# Fm Bm
  I: "[[g4,a#4]@13 ~ [d#4,g4,a#4]@8 [f4,a4]@8 ~@2, e4@7 c5@8 ~]/2", J: "[[g#4,a#4,c5,d#5]@13 ~ [g#4,a#4,d#5]@17 ~]/2",
  K: "[[f4,a#4,d5]@10 ~@4 [f4,g#4]@8 g4@9 ~, ~@14 [b4,d5]@17 ~]/2", // A# Fm Bm
  L: "[[e4,g4,a#4]@13 ~@9 [f4,a4]@8 ~@2, ~@14 c5@17 ~, ~@7 [d#4,g4,a#4]@5 ~@4]/2", M: "[[g#4,a#4,c5,d#5]@31 ~]/2",
})).s("gm_brass_section").gain(0.35)

// chords · string ensemble 1 · "MIDI"
const string_ensemble_1 = note("<~@155 A@4 B@3>".pickRestart({
  A: "[~ a#5@62 ~]/4", B: "[[a#2,d4,f4,a#4,a#5]@23 ~]/3",
})).s("gm_string_ensemble_1").gain(0.24)

// chords · pad choir · "MIDI"
const pad_choir = note("<~@23 A B ~@52 A B ~@52 A B C@2 D@2 E@4 ~@21>".pickRestart({
  A: "[e4,g4,a4,c5]@15 ~", B: "[g4,a#4,c5,d#5]@15 ~", C: "[[f4,a#4,d5]@31 ~]/2", D: "[[a4,d5,f5]@31 ~]/2",
  E: "[[f4,g#4,c5,d5]@13 ~ [g#4,b4,d5,f5]@8 [g4,b4,d5,f5]@7 ~ [d#4,g4]@7 ~ [g4,c5]@7 ~ [g4,a#4,c5,d#5]@7 ~ [c5,d#5,g5]@9 ~, ~@30 a#4@15 ~@19]/4", // Dm7b5 G#dim G7 D# C5 Cm7 Cm
})).s("gm_pad_choir").gain(0.15).pan(0.4)

// other · acoustic guitar nylon · "MIDI"
const acoustic_guitar_nylon = note("<~@116 A B C D E@2 F G H I J K L M N O ~@30>".pickRestart({
  A: "~@6 d4@2 e4@2 ~ f#4@2 g4@2 e4", B: "~ e4@2 e4@9 ~@4", C: "~@6 d4@2 ~ e4@2 f#4 g4@4", D: "e4 e4@6 ~",
  E: "[~@7 e4@2 ~ f#4 g4@2 a4@2 g4@2 ~ f#4@2 f#4@8 ~@4]/2", F: "~@6 e4@2 ~ d4@2 e4@2 d4 ~ e4", G: "d4@3 ~",
  H: "~@5 d4@2 ~ e4@2 ~ f#4@2 g4@2 ~", I: "e4@2 e4@2 e4@9 ~@3", J: "~@8 e4@2 f4@2 e4 d#4@2 e4", K: "a4@5 ~@3",
  L: "~@5 c5@2 ~ b4@2 ~ a4@2 g4@2 a4", M: "b4@2 ~ d4 d4@9 ~@3", N: "~@6 e4@2 e4@2 ~ f#4@2 g4 b4 ~", O: "a4@15 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.69)

// chords · synth strings 1 · "MIDI"
const synth_strings_1 = note(`<
  ~ A@2 B@2 C D E F G@2 H@2 I@2 J@2 K@2 L@2 M@2 N O P@6 H@2 Q@2 H@2 I@2 R@2 S@4 T@2 U@2 L@2 V@2 W@2 X Y Z AA C D E F G@2
  H@2 I@2 J@2 K@2 L@2 M@2 N O P@6 H@2 Q@2 H@2 I@2 R@2 S@4 T@2 U@2 L@2 V@2 W@2 X Y Z AA C D E F G@2 H@2 I@2 J@2 K@2 L@2
  M@2 N AB AC@2 AD@2 AE@4 AF@2 AG@2 AH@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@3
>`.pickRestart({
  A: "[[d4,g4,b4]@13 ~ [d4,f#4,b4]@18]/2", // G Bm
  B: "[[e4,g4,b4]@13 ~ [f4,a4]@9 ~ g4@3 ~ [f4,g#4]@3 ~, ~@14 d4@17 ~, ~@24 b4@7 ~]/2", C: "[c4,e4,g4,b4]@15 ~",
  D: "[d#4,g4,a4]@15 ~", E: "[d4,g4,a4]@15 ~", F: "[d4,f#4,a4] ~", G: "[[d4,g4,b4]@31 ~]/2",
  H: "[[e4,g4,a4,c5]@31 ~]/2", I: "[[d4,f#4,a4]@13 ~ [c4,e4,g4]@17 ~]/2", J: "[[d4,g4,b4]@13 ~ [c4,e4,g4]@16 ~@2]/2",
  K: "[[g4,b4]@13 ~ [e4,g#4,b4]@17 ~, d4@11 ~@21]/2", L: "[[e4,g4,a4,c5]@12 ~@2 [d#4,g4,a4,c5]@17 ~]/2",
  M: "[[d4,g4,b4]@6 ~ a4@8 ~, ~@7 c#5@7 ~@2]/2", N: "[e4,g4,a4,c5]@7 ~", O: "~@4 f#4@3 ~, [g4,a#4]@7 ~",
  P: "[[d4,g4]@32 [d4,f#4]@31 ~ [e4,g4]@13 ~ [e4,g#4,b4]@17 ~, b4@77 ~@19]/6", Q: "[[d4,f#4,a4]@31 ~]/2",
  R: "[[d4,g4,b4]@13 ~@9 c5@9 ~, ~@14 [c4,e4,g4]@17 ~]/2", S: "[g4@31 ~ f#4@31 ~, [d4,b4]@63 ~]/4",
  T: "[[e4,g4,b4]@13 ~ [e4,g#4,b4]@17 ~]/2", U: "[[e4,g4,a4,c5]@6 ~ b4@4 e4@4 ~, ~@7 g#4@8 ~, ~@11 b4@3 ~@2]/2",
  V: "[[d4,g4,b4]@13 ~ b4@7 ~ [e4,b4]@8 ~@2, ~@7 g#4@8 ~]/2", // G E5
  W: "[[g4,a4,c#5]@13 ~ g4@9 ~ f#4@7 ~, ~@14 [d4,a4]@17 ~]/2", X: "[d4,g4,b4]@15 ~", Y: "[d4,f#4,b4]",
  Z: "[e4,b4], g4@7 ~", AA: "[f4,a4]@7 ~ g4@3 ~ [f4,g#4]@3 ~, d4@15 ~, ~@8 b4@7 ~", AB: "[d#4,g4,a#4]@7 ~",
  AC: "[[f4,a#4,c5,d5]@31 ~]/2", AD: "[[f4,d5]@15 ~, a4@7 ~]/2",
  AE: "[[f4,g#4,c5,d5]@13 ~ [g#4,b4,d5]@7 ~ [g4,b4,d5]@6 ~@10 c5@24 ~@2, ~@30 [c4,d#4,g4]@31 ~@3]/4", // Dm7b5 G#dim G Cm
  AF: "[[d#4,g4,a#4]@12 ~@2 [f#4,a#4,c#5,d#5]@17 ~]/2", AG: "[[f4,a#4,d5]@6 ~ [g#4,b4,d5]@4 [g4,b4,d5]@3 ~@2]/2",
  AH: "[[e4,g4,a#4,c5]@13 ~ [d#4,g4,a#4]@17 ~]/2", AI: "[[d#4,g#4,c5]@23 ~ [f4,a#4,d5]@6 ~@2]/2",
  AJ: "[[d#4,g4,a#4]@11 ~@3 [f#4,a#4,c#5,d#5]@17 ~]/2", AK: "[[f4,a#4,d5]@11 ~@3 [g#4,b4,d5]@8 [g4,b4,d5,f5]@7 ~@3]/2",
  AL: "[[e4,g4,a#4,d5]@13 ~ [d#4,g4,a#4]@17 ~]/2", AM: "[[d#4,g#4,c5]@31 ~]/2", AN: "[[d#4,g4,a#4]@31 ~]/2",
  AO: "[[f4,a#4,d5]@41 ~@7]/3", // A#
})).s("gm_synth_strings_1").gain(0.15).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@5 B@2 C A D A D A D A D A D A D A D E F B G B G B G B G B G B G A H B G B G B G B G A H A I A H A B@8 C A D A D A
  D A D A D A D A D E F B G B G B G B G B G B G A H B G B G B G B G A H A I A H A B@8 C A D A D A D A D A D A D A D E J
  B G B G B G K ~@22
>`.pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x!2 ~@3", C: "x", D: "~@3 x!2 ~@3", E: "x!8", F: "x ~@5 x ~ x ~@2 x ~@2 x ~",
  G: "x ~ x ~@2 x ~@2 x ~@7", H: "~ x ~ x ~ x ~ x", I: "~ x ~ x!2 ~@2 x", J: "x!5 ~@3", K: "x ~@2 x ~@3 x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B D B D B D B D B D B D B D ~ B@30 E B@7 C B D B D B D B D B D B D B D ~ B@30 E B@7 C B D B D B D B D B D B D
  B D ~ F B@7 C ~@21
>`.pickRestart({
  A: "~@12 x ~ x!2", B: "~ x ~ x", C: "~ x ~@2", D: "~@3 x", E: "~@4 x ~@7 x!2 ~@2", F: "~@10 x ~ x!3 ~",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@6 C B@13 D B E B@12 F B@2 G B@13 F B@7 C B@13 D B E B@12 F B@2 G B@13 F B@7 C B@13 D B@9 H ~@21
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!2 ~@6", D: "x!6 ~ x", E: "x!5 ~@3", F: "x!7 ~", G: "x!5 ~ x ~", H: "x!3 ~@5",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@23 A B ~@52 A B ~@52 A C ~@29>".pickRestart({
  A: "x!8", B: "~@5 x ~@2", C: "x!5 ~@3",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<A ~@7 B ~@15 A ~@15 C ~@13 A ~@7 B ~@15 A ~@15 C ~@13 A ~@7 B ~@45>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~@5 x ~ x",
})).gain(0.48)

// … 34 more lines

More by Leali