Strudelify
Georgy Porgy cover art

1978 · Toto

Georgy Porgy

Toto

KeyG majorTempo98 bpm
0:00/0:00
// Georgy Porgy — Toto
// 98 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 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(98/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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@4 A B C@2 A D C@2 E F G H I F J@2 K B L C K B C M I F N O P F Q R S T U V S T W V X@2 Y@2 K Z C M AA AB C M A B C M
  AA B C M AC AD AE O AC F AE AF AG AH AI AJ AG AK AL AM AN AK AO AP AQ AR AS AT AU AV AW AX AU AK AY AX X@2 Y@2
>`.pickRestart({
  A: "c2 ~@6 c2!2 ~@7", B: "d2 ~@6 d2!2 ~@7", C: "e2 ~@4 b1 d2 e2 ~@5 b1 d2 b1", D: "d2@2 ~@5 d2 d2@2 ~@6",
  E: "c2 ~@6 c2!2 ~@4 a1 c2 g1", F: "a1@2 ~@5 a1!2 ~@5 a1 a#1", G: "b1 ~@6 b1!2 ~@4 g1 a1 ~",
  H: "b1@2 ~@5 b1!2 ~@4 g1 c2 g1", I: "c2 ~@6 c2!2 ~@5 c2 b1", J: "b1 ~@4 g1 a1 b1 ~@5 g1 a1 ~",
  K: "c2 ~@6 c2!2 ~@5 c2 c#2", L: "e2 ~@4 b1 d2 e2 ~@5 b1 d2 ~", M: "e2 ~@4 b1 e2!2 ~@5 b1 d2 b1",
  N: "b1 ~@4 g1 a1 b1 ~@5 f#1 a1 f#1", O: "b1 ~@4 f#1 b1!2 ~@5 g1 a1 g1", P: "c2 ~@6 c2!2 ~@5 g1 c2",
  Q: "b1@2 ~@3 g1 a1 b1@2 ~@4 f#1 a1 f#1", R: "b1@2 ~@3 f#1 b1 b1@2 ~@4 b1 d2@2", S: "e2@2 ~@5 e2!2 ~@5 b1 d2",
  T: "c#2@2 ~@5 c#2 c#2@2 ~@4 a2 f#2", U: "f#2@2 ~@5 f#2 f#2@2 ~@4 c2 a1", V: "b1@2 ~@5 b1 b1@2 ~@3 f#2 c3 f#2",
  W: "f#1@2 ~@5 f#1 f#1@2 ~@4 c2 a1", X: "[e2!4 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ c#2@3 c#2 ~@13]/2",
  Y: "[f#2!4 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ b1@3 b1 ~@13]/2", Z: "d2 ~@6 d2!2 ~@6 e2", AA: "c2@2 ~@5 c2!2 ~@6 c2",
  AB: "d2@2 ~@5 d2!2 ~@4 b1 d2 b1", AC: "c2@2 ~@5 c2!2 ~@5 c2 g1", AD: "a1@2 ~@5 a1!2 ~@6 a1",
  AE: "b1@2 ~@3 f#1 a1 b1 ~@5 f#1 a1 f#1", AF: "b1@2 ~@3 f#1 b1 b1@5 ~ b1 d2 ~", AG: "e2 ~@6 e2 e2@2 ~@4 d2 c2",
  AH: "c#2@2 ~@5 c#2 c#2@2 ~@4 a2 c#2", AI: "f#2@2 ~@5 f#2 f#2@3 ~@2 c#2 f#2 a1", AJ: "b1@2 ~@5 b1 b1@3 a2 b2 f#2@2 d2",
  AK: "c#2@2 ~@5 c#2 c#2@2 ~@3 f#2 c#3 c#2", AL: "f#2@2 ~@5 f#2 f#2@2 ~@3 c#2 f#1 a1",
  AM: "b1@2 ~@5 b1 b1@3 ~ e2 b1 d2 b1", AN: "e2 ~@6 e2 e2@2 ~@3 b1 d2 c2", AO: "f#2@2 ~@5 f#2!2 ~@4 c2 c#2 c2",
  AP: "b1@2 ~@5 b1!2 ~@3 f#2 b2 f2 b2", AQ: "e2@2 ~@5 e2 e2@2 ~@4 b1 c2", AR: "c#2@2 ~@5 c#2 c#2@2 ~@3 g#1 c#2 g#1",
  AS: "f#1@2 ~@5 f#1 f#1@2 ~@3 c#2 f#2 c#2", AT: "b1@2 ~@5 b1 b1@2 ~ f#2 b2 e2 f#2 b2",
  AU: "e2@2 ~@5 e2 e2@2 ~@3 b1 d2 c2", AV: "c#2@2 ~@5 c#2 c#2@2 ~@3 g#1 c#2 f1",
  AW: "f#1@2 ~@5 f#1 f#1@2 ~@3 c#2 f#2 a1", AX: "b1@2 ~@5 b1 b1@2 ~@3 f#2 b2 d2",
  AY: "f#2@2 ~@5 f#2 f#2@2 ~@3 c#2 f#2 a1",
})).s("gm_fretless_bass").gain(0.39)

// chords · brass section · "BRASS 1"
const brass_section = note("<~@44 A@2 B@2 ~@48 A@2 C@2>".pickRestart({
  A: "[[a3,d4,g4]!4 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [b3,e4,a4]@3 [b3,e4,a4] ~@13]/2", // Dsus4 Esus4
  B: "[[a#3,d4,g4]!4 ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [b3,d#4,g4,a4]@2 ~ [b3,d#4,g4,a4] ~@13]/2", // Gm Baug
  C: "[[a#3,d4,g4]!4 ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [b3,d#4,g4,a4,d#5,a5,d6]@3 [b3,d#4,g4,a4,d#5,a5,d6] ~@13]/2", // Gm G
})).s("gm_brass_section").gain(0.08).pan(0.4)

// chords · synth brass 2 · "SYNBRASS 2"
const synth_brass_2 = note(`<
  ~@36 A B C D A B C A ~@12 E F@2 G H I J@2 ~@8 D K L D M B N D@2 O N D@2 O N D@2 O N D@2 O N D ~@4
>`.pickRestart({
  A: "[a3,d4,g4]@15 ~", B: "[b3,e4,a4]@15 ~", C: "[a#3,d4,g4]@15 ~", D: "[a3,d4,g4]", E: "c4", F: "d4/2",
  G: "d4@6 e4@9 ~", H: "e4@15 ~", I: "f#4@15 ~", J: "f#4@7 g4@8 ~", K: "[f3,b3,e4,a4]", L: "[a#3,d4,g4], e4 ~@15",
  M: "[a3,d4]@15 ~, g4 ~@15", N: "[a#3,d4,g4]", O: "[b3,e4,a4]",
})).s("gm_synth_brass_2").gain(0.28)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@12 A B ~@2 A B ~@2 C D E@2 C D F@2 A B ~@2 A B ~@2 G H I J K L M N O@2 ~@2 P@2 Q R P@2 Q R P@2 Q R P@2 Q R S B T@2 U
  V T@2 ~@8 W X Y Z AA AB Y Z AC AD AE AF AG AH AE AI ~@4
>`.pickRestart({
  A: "~@3 [g4,b4]!3 ~ [g4,b4]@3 [e4,g4]@5 ~", B: "~ [g4,b4] g4 [g4,b4]!3 ~ [g4,b4]@3 [e4,g4]@5 ~",
  C: "~ b4@2 b4@2 a4 ~ a4@2 g4 ~ a4@3 b4 ~", D: "~ b4 ~ b4@2 a4 ~ a4@2 g4 ~ a4@3 b4@2", E: "[a4@3 g4@13]/2",
  F: "[a4@6 ~ g4@23 ~@2]/2", G: "[d4,g4]@2 ~ [d4,g4] ~ d4 ~@2 [d4,g4]@8",
  H: "[e4,a4]@2 ~ e4 ~ [e4,a4] ~@2 [e4,a4]@6 ~@2", I: "[d4,g4]@2 ~ e4 ~ e4 ~@2 [d4,e4]@6 ~@2",
  J: "[d#4,g4]@2 ~ d#4 ~ [d#4,g4] ~@2 d#4@6 ~@2", K: "[d4,g4]@3 [d4,g4] ~ [d4,g4] ~@2 [d4,g4]@8",
  L: "[e4,a4]@2 ~ [e4,a4] ~ e4 ~@2 [e4,a4]@6 ~@2", M: "d4@3 d4 ~ d4 ~@2 [d4,g4]@7 ~",
  N: "[d#4,g4]@2 ~ [d#4,g4] ~ [d#4,g4] ~@2 [d#4,g4]@6 ~@2", // D#
  O: "[[d4,g4]!4 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [e4,a4]@2 ~ [e4,a4] ~@13]/2", // G5 A5
  P: "~ [b3,b4] ~ [b3,b4] ~ [a3,a4] ~ [a3,a4] ~ [g3,g4] ~ [a3,a4]@3 [b3,b4] ~", Q: "[a3,a4]@6 [g3,g4] [g3,g4]@8 ~",
  R: "[f#3,f#4]@6 [e3,e4] [e3,e4]@7 ~@2", S: "~ g4 [g4,b4]!4 ~ [g4,b4]@3 [e4,g4]@5 ~", T: "~ [f#4,b4]",
  U: "~ g4 [g4,b4]!4 ~ [g4,b4]@3 [e4,g4]@2 [a4,c5]@4", V: "~ [g4,b4] g4 [g4,b4]!3 ~ [g4,b4]@3 e4@4 ~@2, ~@10 g4 ~@5",
  W: "d4@2 ~ d4 ~ [a3,d4] ~@2 [a3,d4]@8", X: "[b3,e4]@3 [b3,e4] ~ [b3,e4] ~@2 [b3,e4]@7 ~",
  Y: "[a#3,d4]@2 ~ d4 ~ [a#3,d4] ~@2 [a#3,d4]@7 ~", Z: "[a3,d4]@3 [a3,d4] ~ [a3,d4] ~@2 [a3,d4]@7 ~",
  AA: "d4@2 ~@3 [a3,d4] ~@2 [a3,d4]@8", AB: "[b3,e4]@3 e4 ~ [b3,e4] ~@2 e4@7 ~",
  AC: "[d4,g4]@2 ~ [d4,g4] ~ [a3,d4,g4] ~@2 [a3,d4,g4]@7 ~", // G5 Dsus4
  AD: "[b3,e4,a4]@3 [b3,e4] ~ [b3,e4,a4] ~@2 [b3,e4,a4]@6 ~@2", AE: "[a#3,d4]@2 ~ d4 ~ [a#3,d4] ~@2 [a#3,d4,g4]@7 ~",
  AF: "[a3,d4,g4]@2 ~ [a3,d4] ~ [a3,d4] ~@2 [a3,d4,g4]@7 ~", AG: "[d4,g4]@2 ~ g4 ~ [a3,d4,g4] ~@2 [a3,d4,g4]@7 ~",
  AH: "[b3,e4,a4]@2 ~ [e4,a4] ~ [b3,e4,a4] ~@2 [e4,a4]@6 ~@2", // Esus4 A5 Esus4 A5
  AI: "[a3,d4,g4]@3 [a3,d4] ~ [a3,d4,g4] ~@2 [a3,d4,g4]@7 ~", // Dsus4 D5 Dsus4
})).s("gm_electric_guitar_jazz").gain(0.12).pan(0.7)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@13 A ~@3 A ~@8 B ~@2 A ~@3 A ~@2 C D E F ~ G H ~@21 I A ~@2 I A ~@10 J ~ K ~ L M K ~ J D N O L M N P ~@4
>`.pickRestart({
  A: "~@2 b4 ~@13", B: "~@6 g4 ~@9", C: "~@5 g4 ~@10", D: "~@3 a4 ~@12", E: "~@3 g4 ~ g4 ~@2 g4@6 ~@2",
  F: "~@3 g4 ~@4 g4@6 ~@2", G: "~@5 a4 ~@10", H: "g4@3 g4 ~ g4 ~@10", I: "~ b4 ~@14", J: "a3@2 ~ a3 ~@12",
  K: "~@3 a#3 ~@12", L: "a3@2 ~ [a3,d4] ~@12", M: "~@3 b3 ~@4 b3@7 ~", N: "g4@2 ~ [a#3,g4] ~ g4 ~@10",
  O: "~@3 g4 ~ g4 ~@10", P: "~@3 g4 ~@12",
})).s("gm_electric_guitar_jazz").gain(0.07).pan(0.7)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@28 A@2 B@2 A@2 C@2 ~@12 D E F G ~@11 H A@2 I J K L M@2 ~@4 N O P N Q R S@2 T U T V ~@4 W X@2 Y ~@4
>`.pickRestart({
  A: "b3@15 ~", B: "d#4/2", C: "[d#4@15 ~]/2", D: "b5@3 d6", E: "~@3 d6", F: "~@7 g5@9", G: "f#5@7 ~@9",
  H: "[f#3,f#4]@3 [g3,g4]@3 [a3,a4]@2 [f#3,f#4]@3 [f#3,g3,f#4,g4] [e3,e4]@4", I: "b4 a4, d#4",
  J: "~@8 a4@7 ~, c4 ~, ~ d#4@15", K: "b3@11 ~@5", L: "~ b5@10 [c6,c7]@3 [d6,d7]@2",
  M: "[[b5,b6] [a5,a6] ~@2, d#4@29 ~@3]/2", N: "[a3,d4,g4,g5]", O: "[b3,e4,a4,a5]", P: "[a#3,d4,g4,g5]",
  Q: "g4, g5 ~@15", R: "[a4,a5]", S: "[g4,g5]", T: "[d5,g5]", U: "[e5,a5]", V: "[d5,g5]@15 ~", W: "~@13 a5@2 ~",
  X: "[g5@2 a5 g5 e5@28]/2", Y: "d5@8 g5@7 ~",
})).s("gm_string_ensemble_1").gain(0.14).pan(0.3)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@49 A B C ~@14 D E ~@3 F ~@28>".pickRestart({
  A: "b5@3 ~", B: "a5@6 b5 ~@9", C: "~@7 e5@8 ~", D: "c4@7 ~ b3@8", E: "b4 b3", F: "[g5,g6] [f#5,f#6]",
})).s("gm_string_ensemble_1").gain(0.08).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@47 A B@2 C D E F G H I@2 ~@10 J K ~@30>".pickRestart({
  A: "~@3 d4", B: "b4@11 ~ d5@4", C: "a4@7 g4@9", D: "f#4@7 e4@5 [d4,a4]@4", E: "[b4,d5]@3 f#5", F: "d5@3 f#5",
  G: "d5@6 b4 b4@8 ~", H: "d4@6 f#4@2 g4@3 a4@5", I: "[c5@15 ~]/2",
  J: "[g3,b3] d4 [g3,b3] [e4,g4] ~ [e4,g4] ~@5 [b4,d5]@5", K: "[e3,g3] b3 g3 [e4,g4] ~ [e4,g4] ~@10",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@14 A B ~@2 A B ~@10 A B ~@2 A B ~@11 C D@2 E F D@2 E G H@2 ~@8 A B ~@2 A B ~@4 I@4 ~@20
>`.pickRestart({
  A: "~@2 d#4 [g4,c5] ~ [g4,c5] ~ d#4 [f#4,b4]@4 ~@4", B: "d#4!3 [g4,c5] ~ [g4,c5] ~ [b3,d#4] [f#4,b4]@5 ~@3",
  C: "~@3 d4", D: "b4@11 ~ d5@4", E: "a4@7 g4@9", F: "f#4@7 e4@5 d4@3 ~",
  G: "a4@3 a#4@3 [a4,d5]@5 [d5,g5]@5, f#4@3 ~@5", H: "[[f5,a5]@3 ~]/2", I: "~@5 g4 ~ g4@3 ~@6",
})).s("gm_overdriven_guitar").gain(0.13).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@14 A B ~@2 A B ~@10 A B ~@2 A B ~@30 A B ~@2 A B ~@28>".pickRestart({
  A: "~@2 b3 ~@4 b3 ~@8", B: "b3!3 ~@13",
})).s("gm_overdriven_guitar").gain(0.06).pan(0.6)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  A B C@2 D E F@2 D E F@2 G H I J K L M N O P Q@2 R S F@2 G H I J K L M N T U V W X Y Z AA AB@2 AC@2 AD AE AF@2 AD AE
  AG@2 AD AE AF@2 AD AE AH@2 G H I J K L M N AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AT AX AY AZ AT AU AV AW AT
  AB@2 BA@2
>`.pickRestart({
  A: "~ [b3,e4,g4]@2 c4@2 [a3,e4,a4]@2 [c4,e4]@2 [c4,e4,g4]@2 [a3,c4,e4,a4]@3 [b3,c4,g4,b4]@2, ~@7 [a3,a4]@4 ~@5", // Em A5 C Am Cmaj7 A
  B: "~ [d4,f#4,b4]@2 [d4,f#4]@2 [a3,d4,f#4,a4]@2 [d4,f#4]@2 [g3,d4,f#4,g4]@2 [a3,d4,f#4,a4]@3 [b3,g4,b4]@2, ~@3 b4@8 ~@5, ~@7 [a3,a4]@4 ~@3 d4 ~", // Bm D Gmaj7 D Em A
  C: "[[a3,d4,f#4,a4]@6 [g3,d4,e4,g4,b4] [g3,d4,e4,g4,b4]@24 ~]/2", // D Em7
  D: "~ [b3,e4,g4,b4]@2 [c4,e4]@2 [a3,c4,e4,a4]@2 [c4,e4]@2 [g3,c4,g4]@2 [a3,e4,a4]@3 [b3,c4,g4,b4] ~, ~@3 [b3,b4]@8 c4@2 ~@3, ~@3 g4@6 ~@7, ~@7 [a3,a4]@4 ~@5", // Em C Am C C5 A5 Cmaj7 B …
  E: "~ [d4,f#4,b4]@2 [b3,d4,f#4,b4]@2 [a3,d4,f#4]@2 [a3,d4,f#4,a4]@2 [d4,f#4]@2 [a3,d4,f#4,a4]@3 [b3,b4]@2, ~@5 a4 ~@3 [g3,g4]@4 ~ d4 ~", // Bm D B G
  F: "[[a3,d4,f#4,a4]@6 [g3,b3,e4,g4] [g3,b3,e4,g4]@24 ~]/2", // D Em
  G: "~ e4 [e4,b4] [c4,e4,b4]!3 ~ [c4,e4,b4]@3 [e4,g4]@6, ~@5 c4@2 ~", // E5 Cmaj7 Em
  H: "~ [c4,e4,b4] e4 [c4,e4,b4] [e4,b4] [c4,e4,b4] ~ [c4,b4]@3 [c4,g4]@3 ~@3, ~@7 e4@6 ~@3", // Cmaj7 E5 Cmaj7 C5
  I: "[a3,c4,d#4]@4 ~ [a3,c4,d#4,g4]@2 ~ [a3,b3,d#4,f#4]@7 ~", // Adim Am7b5 B7
  J: "[a3,c4,d#4,g4]@2 ~ [a3,c4,d#4,g4] ~ [a3,c4,d#4,g4] ~@2 [a3,b3,d#4,f#4]@7 ~", // Am7b5 B7
  K: "~ [c4,e4]!3 [c4,e4,b4]!2 ~ [c4,e4,b4]@3 [c4,e4] ~@5, ~@5 g4 ~@2", // C Cmaj7 C
  L: "~ [c4,e4] e4 [c4,e4] [c4,e4,b4]!2 ~ [c4,e4,b4]@3 [c4,e4,g4]@3 ~@3", // C Cmaj7 C
  M: "[a3,c4,d#4,g4]@5 [a3,c4,d#4,g4]@2 ~ [a3,d#4]@8, ~@4 [b3,f#4]@3 ~", // Am7b5 Adim B5
  N: "[a3,c4,d#4,g4]@3 [a3,c4,d#4] ~ [a3,c4,d#4,g4] ~@2 [a3,b3,d#4,f#4]@6 ~@2", // Am7b5 Adim Am7b5 B7
  O: "~ [b3,c4,e4,g4,b4]@2 [c4,e4]@2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]@2 [g3,c4,e4,g4]@2 [a3,c4,e4,a4]@3 [b3,c4,b4] ~, ~@3 [b3,g4,b4]@6 ~@7", // Cmaj7 C Am C Am Cmaj7 Em
  P: "~ [f#4,b4]@2 [b3,d4,f#4,b4]@2 [a3,d4,f#4,a4]@2 [a3,d4,f#4,a4]@2 [g3,d4,f#4,g4]@2 [a3,d4,f#4,a4]@3 [b3,b4]@2, ~ [b3,d4] ~@12 [d4,f#4] ~", // B5 Bm D Gmaj7 D B Bm D
  Q: "[[a3,d4,f#4,a4]@5 ~ [g3,e4,g4] [g3,e4,g4]@25, ~@3 b3@13]/2", // D C
  R: "~ [b3,c4,e4,g4,b4]@2 [b3,c4,e4,g4,b4]@2 [a3,e4,a4]@2 [a3,a4]@2 [g3,c4,e4,g4]@2 [a3,c4,e4,a4]@3 [b3,c4,e4,b4] ~, ~@5 c4 ~ [c4,e4] ~@8", // Cmaj7 A5 A C Am Cmaj7 C
  S: "~ [b3,d4,f#4,b4]@2 [b3,d4,f#4,b4]@2 [a3,f#4,a4]@2 [a3,d4,f#4,a4]@2 [g3,d4,f#4,g4]@2 [a3,d4,f#4,a4]@3 [b3,d4] ~, ~@5 d4 ~@8 b4@2", // Bm D Gmaj7 D Bm
  T: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ e2 [a3,d4,g4]@7 ~, ~@4 e2 ~@3", // Em7 Dsus4
  U: "[c#2,b3,e4,a4]@3 [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 e4@6 ~@2, ~@4 c#2 ~@3", // A Esus4
  V: "[f#1,a#3,d4,e4,g4]@2 ~ [a#3,d4,e4,g4] ~ [a#3,d4,e4,g4] ~ f#1 [a#3,d4,e4,g4]@7 ~, ~@4 f#1 ~@3", // Em7b5
  W: "[b1,d#4,g4]@3 [a3,d#4,g4] ~ [a3,d#4,g4] ~ b1 [a3,d#4,g4]@5 ~@3, ~@8 b1@3 ~@5", // Baug Am7b5
  X: "[e2,d4,g4]@3 d4 ~ [a3,d4] ~ e2 [a3,d4,g4]@7 ~, ~@8 e2@3 ~@5", // Em7 D5 Dsus4
  Y: "[c#2,b3,e4,a4]@3 [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4,a4]@6 ~@2, ~@2 c#2 ~", // A Esus4
  Z: "[f#1,a#3,e4,g4]@3 [a#3,e4,g4] ~ [a#3,e4,g4] ~ f#1 [a#3,e4,g4]@6 ~@2, ~@8 f#1@3 ~@5", // Edim
  AA: "[b1,a3,d#4,g4]@3 [a3,d#4,g4] ~ [a3,d#4] ~ b1 [a3,d#4,g4]@2 ~@6, ~@2 b1 ~", // Baug Am7b5 Adim Am7b5
  AB: "[[e2,a3,d4,g4]!4 ~ [e2,a3,d4,g4] ~ [e2,a3,d4,g4] ~ [e2,a3,d4,g4] ~ [e2,a3,d4,g4] ~ [e2,a3,d4,g4] ~ [c#2,b3,e4,a4]@2 ~ [c#2,b3,e4,a4] ~@12 c#2]/2", // Em7 A
  AC: "[[f#2,a#3,d4,g4]!4 ~ [f#2,a#3,d4,g4] ~ [f#2,a#3,d4,g4] ~ [f#2,a#3,d4,g4] ~ [f#2,a#3,d4,g4] ~ [f#2,a#3,d4,g4] ~ [b1,a3,d#4,g4]@2 ~ [b1,a3,d#4,g4] ~@13]/2", // Gm Baug
  AD: "~ [b3,c4,e4,g4,b4]@2 [c4,e4]@2 [a3,c4,e4,a4]@2 [c4,e4]@2 [g3,c4,e4,g4]@2 [a3,c4,e4,a4]@3 [b3,c4,g4,b4] ~, ~@3 [b3,b4]@9 ~@4, ~@3 g4@6 ~@7, ~@7 [a3,a4]@4 ~@5", // Cmaj7 C Am C Am Cmaj7 B A
  AE: "~ [b3,d4,f#4,b4]@2 [d4,f#4]@2 [a3,d4,f#4,a4]@2 [d4,f#4]@2 [g3,d4,f#4,g4]@2 [a3,f#4]@3 [b3,g4,b4]@2, ~@3 [b3,b4]@8 [d4,a4]@2 ~ d4 ~, ~@7 [a3,a4]@4 ~@5", // Bm D Gmaj7 D Em B D5 A
  AF: "[[a3,d4,f#4,a4]@6 [g3,d4,e4,g4,b4] ~@15 [g4,b4,e5,g5,b5,e6] [g4,b4,e5,g5,b5,e6]@8 ~, ~@7 [g3,d4,e4]@24 ~, ~@7 [g4,b4]@15 ~@10, ~@16 [f#4,a4,d5,a5,d6,f#6]@15 ~]/2", // D Em7 Em Em7 G D
  AG: "[[a3,d4,f#4,a4]@6 [g3,d4,e4,g4,b4] ~@15 [b4,b5,e6] [g4,b4,e5,g5,e6]@8 ~, ~@7 [g3,d4,e4]@24 ~, ~@7 [g4,b4]@15 ~@10, ~@16 [a4,a5,d6,f#6]@15 ~]/2", // D Em7 E5 Em Em7 G D
  AH: "[[a3,d4,f#4,a4]@6 [g3,d4,e4,g4,b4] ~@15 [b5,e6] [e5,g5,e6]@8 ~, ~@7 [g3,d4,e4,g4,b4]@24 ~, ~@16 [a5,d6,f#6]@15 ~]/2", // D Em7 E5 Em Em7 D
  AI: "[e2,a3,d4,e4,g4]@3 [a3,d4,e4] ~ [a3,d4,e4,g4] ~ [e2,d4,e4] [a3,d4,e4,g4]@7 ~, ~@4 e2 ~@3", // Em7 Asus4 E7 Asus4
  AJ: "[c#2,f3,b3,a4]@3 [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4,a4]@7 ~, ~@8 c#2 ~@7", // C#aug Esus4
  AK: "[f#1,a#3,d4,e4,g4]@3 [a#3,d4,e4] ~ [a#3,d4,e4] ~ f#1 [a#3,d4,e4,g4]@7 ~, ~@4 f#1 ~@3", // Em7b5
  AL: "[b1,a3,d4,e4,g4]@2 ~ [a3,d4,e4] ~ [a3,d4,e4] ~ b1 [a3,d4,e4,g4]@7 ~, ~@4 b1 ~@3", // Em7 Asus4
  AM: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ e2 [a3,d4,g4]@7 ~, ~@8 e2 ~@7", // Em7 Dsus4
  AN: "[c#2,b3,e4,a4]@3 [b3,e4,a4] ~ [b3,e4,a4]@2 c#2 [b3,e4,a4]@7 ~, ~@4 c#2 ~@3", // A Esus4
  AO: "[f#1,a#3,d4,g4]@3 [a#3,d4] ~ [a#3,d4] ~ f#1 [a#3,d4,g4]@7 ~, ~@4 f#1 ~@3", // Gm A# Gm
  AP: "[b1,a3,d4,g4]@2 ~ [a3,d4] ~ [a3,d4,g4] ~ b1 [a3,d4,g4]@8, ~@4 b1 ~@3", // G D5 Dsus4
  AQ: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [e2,d3] [a3,d4,g4]@8, ~@8 e2 ~@7", // Em7 Dsus4 E7 Dsus4
  AR: "[c#2,b3,e4,a4]@2 ~ [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4,a4]@7 ~, ~@4 c#2 ~@3", // A Esus4
  AS: "[f#2,a#3,d4,g4]@2 ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ f#2 [a#3,d4,g4]@6 ~@2, ~@8 f#2 ~@7", // Gm
  AT: "[b1,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ b1 [a3,d4,g4]@7 ~, ~@4 b1 ~@3", // G Dsus4
  AU: "[e2,a3,d4,g4]@2 ~ [a3,g4] ~ [a3,d4,g4] ~ e2 [a3,d4,g4]@7 ~, ~@4 e2 ~@3", // Em7 A7 Dsus4
  AV: "[c#2,b3,e4,a4]@3 [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4]@7 ~, ~@8 a4@5 ~@3, ~@4 c#2 ~@3", // A Esus4 E5
  AW: "[f#2,a#3,d4,g4]@2 ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ f#2 [a#3,d4,g4]@7 ~, ~@8 f#2 ~@7", // Gm
  AX: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [e2,d3] e2 ~@5 d#2 d2, ~ [a3,d4,g4]", // Em7 Dsus4 E7 Dsus4
  AY: "[c#2,b3,e4,a4]@2 ~ [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4,a4]@6 g#1 g1, ~@4 c#2 ~@3", // A Esus4
  AZ: "[f#1,f#2,a#3,d4,g4]@2 ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [f#1,f#2] [a#3,d4,g4]@6 ~@2, ~@8 [f#1,f#2] ~@7", // Gm F# Gm F#
  BA: "[[f#1,a#3,d4,g4]!4 ~ [f#1,a#3,d4,g4] ~ [f#1,a#3,d4,g4] ~ [f#1,a#3,d4,g4] ~ [f#1,a#3,d4,g4] ~ [f#1,a#3,d4,g4] ~ [b1,a3,d#4,g4]@3 [b1,a3,d#4,g4] ~@13]/2", // Gm Baug
})).s("gm_piano").gain(0.2)

// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
  A B ~@2 C D ~@2 C D ~@2 E F G ~ H I ~ J ~@5 K ~@2 E F G ~ H I ~ J ~ L ~ M N ~@2 O ~@11 P ~@7 Q E F G ~ H I ~ J R S T@2
  ~@2 T J ~@2 U ~ V@5 ~ U ~ V@5 ~@3
>`.pickRestart({
  A: "~ [c4,b4]@2 e4@2 c4@2 ~@2 g3@3 ~@4, ~@3 [b3,b4]@9 ~@4, ~@3 g4@6 ~@7", B: "~ b3@2 b3@8 ~@5",
  C: "~ c4@2 ~@6 e4@2 ~@5", D: "~ b3@2 ~@11 f#4 ~", E: "~ [c4,b4] c4 ~@13", F: "~@2 [c4,b4] ~ c4 ~@11", G: "a4@3 ~@13",
  H: "~ b4!3 ~@12", I: "~ b4 [c4,b4] b4 ~@12", J: "~@3 g4 ~@12", K: "~@14 f#4 ~", L: "~@8 [b3,a4]@7 ~", M: "a3 ~@7",
  N: "a3@2 ~ [a3,g4] ~ g4 ~@10", O: "~@5 g4 ~@10", P: "~@6 [g4,e5,g5] b5@8 ~, [f#4,d5]@15 ~",
  Q: "~@6 [e5,g5] b5@8 ~, d5@15 ~", R: "~@3 g4 ~@3 [a3,g4] ~@8", S: "[c#4,e4]@3 ~@13", T: "~@3 g4 ~ g4 ~@10",
  U: "~@7 d3 ~@8", V: "[~@23 d3 ~@31 d3 ~@24, ~@3 g9@67 ~@10]/5",
})).s("gm_piano").gain(0.11)
// … 128 more lines

More by Toto