Strudelify
Oro cover art

Odissea

Oro

Mango

KeyB minorTempo100 bpm
0:00/0:00
// Oro — Mango
// 100 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 16 piano (copy of ch 5 voice oohs)
// note: Full arrangement: all 119 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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(`<
  ~@26 A B C D E F G H I J K L M N O P@2 Q R S T U V W X Y Z U Z U ~@3 AA AB AC AD AE AB AC AF AG AH AI AJ AK AL AM AN
  AO AP AQ AR AS AT@3 AU AV AW@5 ~ AQ AR AS AT@3 AU AV AX AY ~@3 AZ@2 BA BB@2 BC BD@2 BE BF BG BH@2 BI ~
>`.pickRestart({
  A: "~@16 b1@9 ~@7", B: "~@4 a1@8 g1@2 a1@2 g1@7 ~@9", C: "~ f#1 a1 d2 b1@2 ~@2", D: "~@4 b1@4 d2@4 d#2@4 e2@7 ~@9",
  E: "~@2 e2 f#2 e2 d2 b1 a1 g1@4 ~@4", F: "~ a1 ~ a1 d2@2 ~@2", G: "c#2@2 ~@2 c#2@4 ~@4 a1@2 c#2@2 b1@7 ~@9",
  H: "~@2 e2 f#2 e2 d2 e2 d2 f#2 d2 b1@2 ~@4", I: "~@2 f#1@2 a1@2 d2@2 b1@3 ~@5", J: "~@2 e2 f#2 e2 d2 e2 d2 b1@2 ~@6",
  K: "~ f#1 a1 d2 g1@2 ~@2", L: "a1 ~@3 a1@7 ~ a1@3 ~ d1@10 ~@6", M: "g1 ~@3 g1@5 ~@3 g1@3 ~ a1@8 ~@4 a1@2 ~@2",
  N: "g1@5 ~ g1@2 a1@2 d2@2 c#2@2 ~@2", O: "d1@10 ~@10 g1@5 ~@3 g1@3 ~", P: "[a1@7 ~]/2",
  Q: "b1@7 ~@13 f#1@4 a1@4 d2@4", R: "g1@7 ~@13 e2@4 e2@2 d2@2 e2@2 d2@2", S: "f#2@2 d2@2 b1@5 ~@11 f#1@4 a1@8",
  T: "b1@7 ~@17 d2@8", U: "g1 a1", V: "d2 d#2", W: "e2 d#2", X: "e2 e1", Y: "a1 f#1", Z: "b1 a1",
  AA: "~@22 e1@2 f#1@7 ~", AB: "b1 ~ b1 ~ b1@3 ~ d2@6 b1@8 ~@10", AC: "b1 ~ b1 ~ b1@4 d2@7 ~@5 f#1@4 f#1@4 ~@4",
  AD: "b1 ~ b1 ~ b1@4 d2@6 b1@5 ~@3 a1@6 f#1@4",
  AE: "b1 ~ b1 ~ b1@3 ~ d2@4 ~@2 e2@4 a2@2 f#2@2 e2@2 d2@2 b1@2 a1@2 f#1@2", AF: "b1@9 ~@11 a1@8 g1@2 a1@2",
  AG: "g1@7 ~@13 f#1@4 a1@4 d2@4", AH: "b1@2 ~@3 b1 d2 d#2", AI: "e2@7 ~@13 e2@2 f#2@2 e2@2 d2@2 b1@2 a1@2",
  AJ: "g1@2 ~@3 a1 ~ a1", AK: "d2@4 ~@4 c#2 ~ c#2@2 ~@2 a1 c#2", AL: "b1@7 ~@13 e2@2 f#2@2 e2@2 d2@2 e2@2 d2@2",
  AM: "f#2 d2 b1@2 ~@6 f#1@2 a1@2 d2@2", AN: "b1@3 ~@7 e2 f#2 e2 d2 e2 d2", AO: "b1 ~@4 f#1 a1 d2",
  AP: "g1@8 ~@8 a1 ~@3 a1@7 ~ a1@3 ~", AQ: "d1@10 ~@6 g1 ~@3 g1@5 ~@3 g1@3 ~", AR: "a1@4 ~@2 a1 ~ g1@5 ~ g1@2",
  AS: "a1@2 d2@2 c#2@2 ~@2 d1@5 ~@3", AT: "[~@4 g1@5 ~@3 g1@3 ~ a1@56 ~@8 b1@7 ~@9]/3",
  AU: "~@4 f#1@4 a1@4 d2@4 g1@7 ~@9", AV: "~@4 e2@4 e2@2 d2@2 e2@2 d2@2 f#2@2 d2@2 b1@5 ~@7",
  AW: "[~@4 f#1@4 a1@8 g1@31 ~ e1@32 g1@32 e1@32 ~@16]/5", AX: "~@4 f#1@4 a1@8 b1@7 ~@9", AY: "~@8 d2@8 b1@7 ~@9",
  AZ: "[~@15 b1 ~ b1 ~ b1@3 ~ d2@6 b1@8 ~@9 b1 ~ b1 ~ b1@4 d2@6 ~@4]/2",
  BA: "~@2 f#1@4 f#1@4 ~@4 b1 ~ b1 ~ b1@4 d2@6 b1@4",
  BB: "[~@4 e2@6 d2@4 b1 ~ b1 ~ b1@3 ~ d2@6 b1@8 ~@9 b1 ~ b1 ~ b1@4 d2@6 ~@5]/2",
  BC: "~ f#1@4 f#1@4 ~@4 b1 ~ b1 ~ b1@4 d2@6 b1@5",
  BD: "[~@3 e2@6 d2@4 b1 ~ b1 ~ b1@3 ~ d2@6 b1@8 ~@10 b1!2 ~ b1@4 d2@6 ~@6]/2",
  BE: "f#1@4 f#1@4 ~@4 b1 ~ b1 ~ b1@4 d2@6 b1@5 ~", BF: "~@2 e2@6 d2@4 b1 ~ b1 ~ b1@3 ~ d2@3 ~@3 e2@2 ~@2 f#2@2",
  BG: "a2@2 b2@2 a2@2 f#2@2 b1@2 e2@2 b1 ~ b1 ~ b1@3 d2@6 b1@7",
  BH: "[~@11 b1 ~ b1 ~ b1@4 d2@6 ~@6 f#1@4 f#1@4 ~@4 b1 ~ b1 ~ b1@3 ~ d2@6 b1@7]/2",
  BI: "~@11 b1 ~ b1 ~ b1@3 ~ d2@5 b1@8",
})).s("gm_electric_bass_finger").gain(0.53)

// chords · pad warm
const pad_warm = note(`<
  ~@22 A@2 B@3 C D@2 E F G@5 H I@2 J K@2 L M N@2 ~@9 O@2 P@2 ~@6 Q R S T I U V@2 W@2 I X Y Z AA@4 AB@6 ~ X Y Z AA@4 AC@5
  ~@16
>`.pickRestart({
  A: "[~ [b2,f#3,b3,d4]@2 [b2,g3,b3,d4]]/2", B: "[[b2,a3,c#4,e4] [b2,f#3,b3,d4]@4 [b2,b3,d4]]/3",
  C: "[a2,b3,d4]@15 ~ [g2,d4]@16", D: "[[a2,a3,e4]@16 [b2,f#3,b3,d4]@31 ~ [b2,g3,b3,e4]@15 ~]/2",
  E: "[b2,f#3,b3,d#4]@15 ~ [g2,g3,b3,d4]@16", F: "[a2,a3,c#4,e4]@15 ~ [d2,d3,a3,d4,f#4]@16",
  G: "[[c#2,c#3,a3,c#4,e4]@15 ~ [f#3,b3,d4]@16 [f#3,a#3,d4]@16 [f#3,g#3,d4]@32 [f#3,b3,d4]@16 [f#3,a#3,d4]@15 ~ [g#3,d4]@32 [g2,g3,b3,d4]@16, ~@16 [b1,b2]@64 b1@63 ~@17]/5", // A Bm F#aug G#m7b5 Bm F#aug G#dim G …
  H: "[a2,a3,c#4,e4] [d3,a3,d4,f#4]", I: "[g2,g3,b3,d4] [a2,a3,c#4,e4]", J: "[d3,f#3,a3,d4]@16 [g2,g3,b3,d4]@15 ~",
  K: "[[a2,a3,c#4,e4]@57 ~@7]/2", L: "[b3,d4]", M: "[b3,d4]@16 [a3,e4]@15 ~", N: "[[f#3,b3,d4]@31 ~]/2",
  O: "[f#3,b3,d4]/2", P: "[~@16 c#5@15 ~, f#4@31 ~]/2", Q: "[b2,b3,d4]@16 [a2,b3,d4]@15 ~", R: "[g2,b3,d4] [a2,a3,e4]",
  S: "[b2,f#3,b3,d4]@31 ~", T: "[e2,b2,g3,b3,e4]@15 ~ [b2,f#3,b3,d#4]@15 ~",
  U: "[d2,d3,a3,d4,f#4]@16 [c#2,c#3,a3,c#4,e4]@15 ~", V: "[[f#3,b3,d4] [f#3,a#3,d4] [f#3,g#3,d4]@2, [b1,b2]]/2",
  W: "[[f#3,b3,d4]@16 [f#3,a#3,d4]@15 ~ [g#3,d4]@32, b1@63 ~]/2", X: "[d3,a3,d4,f#4] [g2,g3,b3,d4]",
  Y: "[a2,a3,c#4,e4] [g2,g3,b3,d4]", Z: "[a2,a3,c#4,e4] [d3,f#3,a3,d4]",
  AA: "[[g2,g3,b3,d4]@15 ~ [a2,a3,c#4,e4]@57 ~@7 [f#3,b3,d4]@32 [b3,d4]@16]/4", // G A Bm
  AB: "[[a3,e4]@15 ~ [b3,d4]@32 [g2,g3,b3,d4]@32 [e2,b2,g3,b3,e4]@32 [g2,d3,g3,b3,d4]@31 ~ [e2,b2,g3,b3,e4]@26 ~@22, ~ f#3@4 ~@7]/6", // A5 Bm G Em G Em
  AC: "[[a3,e4]@15 ~ [f#3,b3,d4]@62 ~@2 [b2,b3,d4]@64 ~@16]/5", // A5 Bm
})).s("gm_pad_warm").gain(0.32)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@26 A B C D ~@4 E@3 ~@6 F G ~@21 H I ~@6 J@2 ~@7 K L ~@12 K L ~ M@3 ~@16>".pickRestart({
  A: "~ f#3", B: "f#3@15 ~ [g3,b3]@16", C: "c#4 ~", D: "~@16 e2@15 ~", E: "[~@3 f#3@2 ~, ~@16 b2@63 ~@17]/3", F: "f#3",
  G: "g3@16 c#4@15 ~", H: "f#3@16 f#3@15 ~", I: "g3 c#4", J: "[~ f#3, b2@63 ~]/2", K: "~ g3", L: "c#4@15 ~@17",
  M: "[~ f#3@4 ~]/3",
})).s("gm_pad_warm").gain(0.16)

// chords · church organ
const church_organ = note("<~@47 A B C D E F G H I ~@63>".pickRestart({
  A: "[g2,g3,b3,d4]@15 ~ [a2,a3,c#4,e4]@16", B: "[d3,a3,d4,f#4] [d#3,a3,b3,f#4]", C: "[e3,b3,e4,g4] [d#3,a3,b3,f#4]",
  D: "[e3,g3,b3,e4]", E: "[a2,a3,c#4] [f#2,f#3,a#3,c#4], e4", F: "[b2,f#3,b3,d4] [a2,a3,d4], f#4",
  G: "[g2,g3,b3,d4] [a2,a3,c#4,e4]", H: "[b2,f#3,b3,d4,f#4] [a2,a3,d4,f#4]",
  I: "[g2,g3,b3,d4]@15 ~ [a2,a3,c#4,e4]@15 ~", // G A
})).s("gm_church_organ").gain(0.27)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@39 A ~@27 B C B C B C ~ B C ~@3 D ~@5 E@2 F@2 G ~@16 H@2 I@2 J K L M N@3 O ~
>`.pickRestart({
  A: "~@4 [a2,a3] [d3,d4] [c#3,c#4] [d3,d4]", B: "~@12 b3 ~ b3@3 ~@7 d4@8", C: "b3@3 ~@13",
  D: "[a2,a3] [d3,d4] [c#3,c#4] [d3,d4] ~@4", E: "[~@12 e5 f#5 ~ a5@33 ~@16]/2",
  F: "[~@13 f#5 ~ a5@32 ~@17, ~@6 e5 ~@25]/2", G: "c6 ~@3", H: "[~@4 e4 f#4 a4@14 ~@3 d5@9]/2",
  I: "[~@4 e5@4 d5@2 ~ a4@29 ~@3 c#5@18 ~@3]/2", J: "~@9 b4@2 a4@2 b4@2 ~@4 b4@2 ~@2 a4@2 ~@2 b4@3 ~@2",
  K: "~@5 c5@8 ~@3 b4 ~@5 a4 ~@3 b4 ~@3 a4 ~", L: "c5@9 ~@13 a4@2 ~@2 b4@2 ~@4",
  M: "~@8 d5@6 b4@2 a4@6 ~@4 e4@3 ~ d4 ~", N: "[e4@2 f#4@2 a4@2 d4@4 ~@2 e4@30 ~ e4@29 ~@3 [b1,b2,b3]@5 ~@16]/3",
  O: "~@11 [b1,b2,b3]@5 ~@16", // B
})).s("gm_distortion_guitar").gain(0.17).pan(0.3)

// other · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@108 A B C@2 D E ~@5>".pickRestart({
  A: "~@5 b4 ~@10", B: "~@9 f#4@2 ~@21", C: "[~@7 a4@2 ~@8 a4 ~@13 a4@2 ~@12 a4 ~@18]/2", D: "~@20 b4@2 ~@8 a4 ~",
  E: "~@12 f#4 ~@3",
})).s("gm_distortion_guitar").gain(0.1).pan(0.3)

// chords · lead 1 square
const lead_1_square = note(`<
  ~@16 A B C D A ~ E@2 F@2 G ~@9 H I J K L M ~ N ~ N ~@10 O@4 ~@16 A B C D A ~ P ~ P Q@5 ~ R S T U@3 ~ P ~ V W X@3 ~@11
  Y@2 ~
>`.pickRestart({
  A: "g1@4 [g2,d3]@5 ~@11 a1@4 [a2,e3]@5 ~@3", B: "d2@4 [a2,d3]@5 ~@11 g1@4 [g2,d3]@5 ~@3",
  C: "~@4 [a1,a2,e3]@5 ~@11 [g1,g2,d3]@4 ~@8", D: "[a1,a2,e3]@5 ~@15 [d2,a2,d3]@5 ~@7", E: "[~ [b0,b1]@2 ~]/2",
  F: "[~@16 [b4,e5] d#5 [a4,d5] b4 a4 [c#4,f#4] f4 e4 d4 b3 a#3 a3 f#3 f3 [b2,e3] [a2,d3], ~ [b0,b1]@2 ~]/2", // E5 D5 F#5 E5 D5 B
  G: "[f#2,b2] ~@7", H: "~@16 g1@4 [g2,d3]@5 ~@7", I: "~@4 a1@4 [a2,e3]@5 ~@3 d2@4 [a2,d3]@5 ~@7",
  J: "~@4 g1@4 [g2,d3]@5 ~@7 [a1,a2,e3]@5 ~@7", K: "~@4 [g1,g2,d3]@4 ~@8 [a1,a2,e3]@5 ~@11",
  L: "~@4 [d2,a2,d3]@5 ~@7 g1@4 [g2,d3]@5 ~@7", M: "~@4 a1@4 [a2,e3]@5 ~@19", N: "[b1,b2]@9 ~@23",
  O: "[b1,b2]@3 ~ [b1,b2]@3 ~@25", P: "~@16 [b1,b2]@9 ~@7", Q: "[~@16 g1@32 e1@32 g1@32 e1@29 ~@19]/5", R: "d2 g1",
  S: "a1@4 g1 ~@3", T: "a1 ~@3 d2@4", U: "[g1@15 ~ a1@62 ~@2 [b1,b2]@9 ~@7]/3",
  V: "~@18 b1@2 b2 ~@3 b1 ~ [b1,b2] ~@3 b1 ~", // B
  W: "b2@2 ~@2 b1 ~ b2@2 ~@4 b2@2 b1 ~ b1 ~ b2 ~@7 b2@2 ~@2 b1 ~, b1 ~@5 b1 ~@5 b1 ~@13 b1 ~@5",
  X: "[[b1,b2]@2 ~@3 b2@2 ~@4 b1 ~ b2@2 b1 ~@7 b1 ~ [b1,b2]@2 ~@2 b1 ~ b2@2 ~@2 b1 ~ b2@2 ~@2 b1 ~ b2@2 b1 ~ b1 ~ b2@2 ~@4 b1 ~ b2@2 ~@2 b1 ~ b2@2 ~@4 b2@2 ~@2 b1 ~ b2@2 b1 ~@18, ~@5 b1 ~@7 b1 ~@17 b1 ~@5 b1 ~@5 b1 ~@5 b1 ~@7 b1 ~@5 b1 ~@11 b1 ~@20]/3", // B
  Y: "~@11 [b0,b1]@5 ~@16", // B
})).s("gm_lead_1_square").gain(0.16).pan(0.7)

// chords · lead 1 square · soft notes
const lead_1_square_soft = note(`<
  ~@25
  [~ a#4 ~ f#4 e4 ~ c4 b3 a3 f#3 f3 e3 c#3 c3 ~@2]
  ~@75
  [~@10 b1 ~@7 b1 ~@5 b1 ~@7]
  [~@3 b1 ~@5 b1 ~@9 b2@2 ~@11, ~@19 b1 ~@12]
  ~
  [~ b1 ~@3 b1 ~@26]
  ~@14
>`).s("gm_lead_1_square").gain(0.08).pan(0.7)

// other · shakuhachi
const shakuhachi = note("<A@6 ~@54 A@6 ~@34 B A C D@2 E A@2 F D@2 G A@2 H D I ~@2>".pickRestart({
  A: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  B: "~@16 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  C: "a2 ~ a2!2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2",
  D: "~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2",
  E: "~ a2 ~ a2 ~ a2!2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  F: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2!2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2",
  G: "~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2!2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  H: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2!2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2",
  I: "~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~@22",
})).s("gm_shakuhachi").gain(0.64).pan(0.7)

// chords · pad halo
const pad_halo = note("<~@2 A@4 ~@16 B@2 C@3 ~@9 D E F@2 G H@2 ~@13 I@4 ~@16 F J K L M@3 ~@17 N@5 ~@14>".pickRestart({
  A: "[a0,a1]/4", B: "[~ [b2,f#3,b3,d4]@2 [b2,g3,b3,d4]]/2", C: "[[b2,a3,c#4,e4] [b2,f#3,b3,d4]@4 ~]/3",
  D: "~ [g2,g3,b3,d4]", E: "[a2,a3,c#4,e4] [d3,a3,d4,f#4]", F: "[g2,g3,b3,d4] [a2,a3,c#4,e4]",
  G: "[d3,f#3,a3,d4]@16 [g2,g3,b3,d4]@15 ~", H: "[[a2,a3,c#4,e4]@57 ~@7]/2", I: "[b0,b1]/4",
  J: "[d3,a3,d4,f#4] [g2,g3,b3,d4]", K: "[a2,a3,c#4,e4] [g2,g3,b3,d4]", L: "[a2,a3,c#4,e4] [d3,f#3,a3,d4]",
  M: "[[g2,g3,b3,d4]@15 ~ [a2,a3,c#4,e4]@57 ~@23]/3", N: "[~@16 [b0,b1]@127 ~@17]/5",
})).s("gm_pad_halo").gain(0.16).pan(0.7)

// chords · pad halo · soft notes
const pad_halo_soft = note("<~@91 A B C D@3 ~@22>".pickRestart({
  A: "[d3,a3,d4,f#4] [g2,g3,b3,d4]", B: "[a2,a3,c#4,e4] [g2,g3,b3,d4]", C: "[a2,a3,c#4,e4] [d3,f#3,a3,d4]",
  D: "[[g2,g3,b3,d4]@15 ~ [a2,a3,c#4,e4]@57 ~@23]/3", // G A
})).s("gm_pad_halo").gain(0.11).pan(0.7)

// chords · marimba
const marimba = note(`<
  ~@2 A B 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 AB AC AD AE AF AG AH@2 N AI ~@14 AJ@4 ~@6 C D E F G H
  I J K L AK AL AM AN AO ~@19 AP AQ AR AS@2 AT AU@2 AV AW@2 AX AY@2 AZ BA BB ~@2
>`.pickRestart({
  A: "a2@8 [e3,a3]@2 ~@2 [e3,a3,c#4]@3 ~@5 a2@4 [e3,a3,c#4]@2 ~@2 [e3,a3,c#4]@3 ~", // A5 A
  B: "g2@8 [d3,g3,b3]@2 ~@2 [d3,g3,b3]@3 ~@5 g2@4 [d3,g3,b3]@2 ~@2 [d3,g3,b3]@2 ~@2", // G
  C: "b2@2 ~@6 [f#3,b3,d4]@2 ~@2 [f#3,b3,d4]@3 ~@5 a2@3 ~ [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~", // Bm
  D: "g2@2 ~@6 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@6 a2@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@2", // G A
  E: "b2@2 ~@6 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~@5 b2@2 ~@2 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@2 ~@2", // Bm
  F: "e3@3 ~@5 [g3,b3,e4]@2 ~@2 [g3,b3,e4]@3 ~@5 b2@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~", // Em B
  G: "g2@3 ~@5 [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~@5 a2@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~", // G A
  H: "d3@3 ~@5 [f#3,a3,d4]@3 ~ [f#3,a3,d4]@3 ~@5 c#3@4 [a3,c#4,e4]@2 ~@2 [a3,c#4]@4, ~@14 e4 ~", // D A
  I: "b2@3 ~@5 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~@5 a#2@4 [f#3,a#3,d4]@3 ~ [f#3,a#3,d4]@4", // Bm F#aug
  J: "g#2@3 ~@5 [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@3 ~@5 g#2@4 [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@4", // G#m7b5
  K: "b2@4 ~@4 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~@5 a#2@4 [f#3,a#3,d4]@3 ~ [f#3,a#3,d4]@3 ~", // Bm F#aug
  L: "g#2@3 ~@5 [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@3 ~@5 g#2@3 ~ [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@3 ~", // G#m7b5
  M: "g2@4 ~@4 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@6 a2@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~", // G A
  N: "d3@3 ~@5 [f#3,a3,d4]@2 ~@2 [f#3,a3,d4]@3 ~@5 g2@3 ~ [g3,b3,d4]@2 ~@2 [g3,b3,d4]@3 ~", // D G
  O: "a2@4 ~@4 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~@5 g2@3 ~ [g3,b3,d4]@2 ~@2 [g3,b3,d4]@3 ~", // A G
  P: "a2@3 ~@5 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~@5 d3@2 ~@2 [f#3,a3,d4]@2 ~@2 [f#3,a3,d4]@3 ~", // A D
  Q: "g2@3 ~@5 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@6 a2@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~", // G A
  R: "~@16 b2@3 ~@5 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@2 ~@2", // Bm
  S: "~@4 b2@3 ~ [f#3,b3,d4]@2 ~@2 [f#3,b3,d4]@3 ~ g2@5 ~@3 [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~", // Bm G
  T: "~@4 a2@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ b2@6 ~@2 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~", // A Bm
  U: "~@4 b2@4 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~ b2@4 ~@4 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~", // Bm
  V: "~@4 b2@4 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@2 ~@2 b2@2 ~@6 [f#3,b3,d4]@2 ~@2 [f#3,b3,d4]@3 ~", // Bm
  W: "~@4 a2@3 ~ [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~ g2@2 ~@6 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@2", // Bm G
  X: "~@4 a2@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@2 b2@2 ~@6 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~", // A Bm
  Y: "~@4 b2@2 ~@2 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@2 ~@2 e3@3 ~@5 [g3,b3,e4]@2 ~@2 [g3,b3,e4]@3 ~", // Bm Em
  Z: "~@4 b2@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ g2@3 ~@5 [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~", // B G
  AA: "~@4 a2@3 ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~ d3@3 ~@5 [f#3,a3,d4]@3 ~ [f#3,a3,d4]@3 ~", // A D
  AB: "~@4 c#3@4 [a3,c#4,e4]@2 ~@2 [a3,c#4]@4 b2@3 ~@5 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~, ~@6 e4 ~@9", // A Bm
  AC: "~@4 a#2@4 [f#3,a#3,d4]@3 ~ [f#3,a#3,d4]@4 g#2@3 ~@5 [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@3 ~", // F#aug G#m7b5
  AD: "~@4 g#2@4 [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@4 b2@4 ~@4 [f#3,b3,d4]@3 ~ [f#3,b3,d4]@3 ~", // G#m7b5 Bm
  AE: "~@4 a#2@4 [f#3,a#3,d4]@3 ~ [f#3,a#3,d4]@3 ~ g#2@3 ~@5 [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@3 ~", // F#aug G#m7b5
  AF: "~@4 g#2@3 ~ [f#3,g#3,d4]@3 ~ [f#3,g#3,d4]@3 ~ g2@3 ~@5 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@2", // G#m7b5 G
  AG: "~@4 a2@2 ~@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~ d3@3 ~@5 [f#3,a3,d4]@3 ~ [f#3,a3,d4]@2 ~@2", // A D
  AH: "~@4 g2@2 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@3 ~ a2@3 ~@5 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~", // G A
  AI: "a2@4 ~@4 [a3,c#4,e4]@3 ~ [a3,c#4]@2 ~@18, ~@12 e4 ~@19", // A
  AJ: "d4 ~ b3 ~ f#4 ~ f#3@2 b3@2 ~@2 f#4 ~ d4 ~@3 b3 ~@3 f#3 ~ b3@2 ~@2 f#4 ~@3",
// … 170 more lines

More by Mango