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: edit a riff to change every repeat.

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@4 A B C D A E C D F G H I J G K@2 L M N D L M D O J G P Q R S T U V W X Y Z W AA AB AC@2 AD@2 AE AF D O AG AH D O A
  M D O AI B D O AJ AK AL Q AM G AL AN AO AP AQ AR AO AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BD AS BH BG AC@2 AD@2
>`.pickRestart({
  A: "c2 ~@6 c2!2 ~@7", B: "d2@2 ~@5 d2!2 ~@7", C: "e2@2 ~@3 b1 d2 e2 ~@5 b1 d2 b1", D: "e2 ~@4 b1 d2 e2 ~@5 b1 d2 b1",
  E: "d2@2 ~@5 d2 d2@2 ~@6", F: "c2 ~@6 c2!2 ~@4 a1 c2 g1", G: "a1@2 ~@5 a1!2 ~@5 a1 a#1", H: "b1 ~@6 b1!2 ~@4 g1 a1 ~",
  I: "b1@2 ~@5 b1!2 ~@4 g1 c2 g1", J: "c2 ~@6 c2!2 ~@5 c2 b1", K: "b1 ~@4 g1 a1 b1 ~@5 g1 a1 ~",
  L: "c2 ~@6 c2!2 ~@5 c2 c#2", M: "d2 ~@6 d2!2 ~@7", N: "e2 ~@4 b1 d2 e2 ~@5 b1 d2 ~", O: "e2 ~@4 b1 e2!2 ~@5 b1 d2 b1",
  P: "b1 ~@4 g1 a1 b1 ~@5 f#1 a1 f#1", Q: "b1 ~@4 f#1 b1!2 ~@5 g1 a1 g1", R: "c2 ~@6 c2!2 ~@5 g1 c2",
  S: "a1@2 ~@5 a1 a1@2 ~@4 a1 a#1", T: "b1@2 ~@3 g1 a1 b1@2 ~@4 f#1 a1 f#1", U: "b1@2 ~@3 f#1 b1 b1@2 ~@4 b1 d2@2",
  V: "e2@2 ~@5 e2!2 ~@5 b1 d2", W: "c#2@2 ~@5 c#2 c#2@2 ~@4 a2 f#2", X: "f#2@2 ~@5 f#2 f#2@2 ~@4 c2 a1",
  Y: "b1@2 ~@5 b1 b1@2 ~@3 f#2 c3 f#2", Z: "e2@2 ~@5 e2 e2@2 ~@4 b1 d2", AA: "f#1@2 ~@5 f#1 f#1@2 ~@4 c2 a1",
  AB: "b1@2 ~@5 b1!2 ~@4 f#2 c3 f#2", AC: "[e2!4 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ c#2@3 c#2 ~@13]/2",
  AD: "[f#2!4 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ b1@3 b1 ~@13]/2", AE: "c2@2 ~@5 c2 c2@2 ~@4 c2 c#2",
  AF: "d2 ~@6 d2!2 ~@6 e2", AG: "c2@2 ~@5 c2!2 ~@6 c2", AH: "d2@2 ~@5 d2!2 ~@4 b1 d2 b1", AI: "c2 ~@6 c2!2 ~@6 c2",
  AJ: "c2@2 ~@5 c2!2 ~@5 c2 g1", AK: "a1@2 ~@5 a1!2 ~@6 a1", AL: "b1@2 ~@3 f#1 a1 b1 ~@5 f#1 a1 f#1",
  AM: "c2@2 ~@5 c2 c2@2 ~@4 c2 g1", AN: "b1@2 ~@3 f#1 b1 b1@5 ~ b1 d2 ~", AO: "e2 ~@6 e2 e2@2 ~@4 d2 c2",
  AP: "c#2@2 ~@5 c#2 c#2@2 ~@4 a2 c#2", AQ: "f#2@2 ~@5 f#2 f#2@3 ~@2 c#2 f#2 a1", AR: "b1@2 ~@5 b1 b1@3 a2 b2 f#2@2 d2",
  AS: "c#2@2 ~@5 c#2 c#2@2 ~@3 f#2 c#3 c#2", AT: "f#2@2 ~@5 f#2 f#2@2 ~@3 c#2 f#1 a1",
  AU: "b1@2 ~@5 b1 b1@3 ~ e2 b1 d2 b1", AV: "e2 ~@6 e2 e2@2 ~@3 b1 d2 c2", AW: "c#2 ~@6 c#2 c#2@2 ~@3 f#2 c#3 c#2",
  AX: "f#2@2 ~@5 f#2!2 ~@4 c2 c#2 c2", AY: "b1@2 ~@5 b1!2 ~@3 f#2 b2 f2 b2", AZ: "e2@2 ~@5 e2 e2@2 ~@4 b1 c2",
  BA: "c#2@2 ~@5 c#2 c#2@2 ~@3 g#1 c#2 g#1", BB: "f#1@2 ~@5 f#1 f#1@2 ~@3 c#2 f#2 c#2",
  BC: "b1@2 ~@5 b1 b1@2 ~ f#2 b2 e2 f#2 b2", BD: "e2@2 ~@5 e2 e2@2 ~@3 b1 d2 c2",
  BE: "c#2@2 ~@5 c#2 c#2@2 ~@3 g#1 c#2 f1", BF: "f#1@2 ~@5 f#1 f#1@2 ~@3 c#2 f#2 a1",
  BG: "b1@2 ~@5 b1 b1@2 ~@3 f#2 b2 d2", BH: "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 C D@2 N O D@2 N O D@2 N O D@2 N O 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: "[b3,e4,a4]", O: "[a#3,d4,g4]",
})).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 S T P@2 Q R P@2 S T U B V@2 W
  X V@2 ~@8 Y Z AA AB AC AD AA AB AE AF AG AH AI AJ AG AK ~@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: "[a3,a4]@5 ~ [g3,g4] [g3,g4]@8 ~", T: "[f#3,f#4]@5 ~ [e3,e4] [e3,e4]@8 ~",
  U: "~ g4 [g4,b4]!4 ~ [g4,b4]@3 [e4,g4]@5 ~", V: "~ [f#4,b4]", W: "~ g4 [g4,b4]!4 ~ [g4,b4]@3 [e4,g4]@2 [a4,c5]@4",
  X: "~ [g4,b4] g4 [g4,b4]!3 ~ [g4,b4]@3 e4@4 ~@2, ~@10 g4 ~@5", Y: "d4@2 ~ d4 ~ [a3,d4] ~@2 [a3,d4]@8",
  Z: "[b3,e4]@3 [b3,e4] ~ [b3,e4] ~@2 [b3,e4]@7 ~", AA: "[a#3,d4]@2 ~ d4 ~ [a#3,d4] ~@2 [a#3,d4]@7 ~",
  AB: "[a3,d4]@3 [a3,d4] ~ [a3,d4] ~@2 [a3,d4]@7 ~", AC: "d4@2 ~@3 [a3,d4] ~@2 [a3,d4]@8",
  AD: "[b3,e4]@3 e4 ~ [b3,e4] ~@2 e4@7 ~", AE: "[d4,g4]@2 ~ [d4,g4] ~ [a3,d4,g4] ~@2 [a3,d4,g4]@7 ~",
  AF: "[b3,e4,a4]@3 [b3,e4] ~ [b3,e4,a4] ~@2 [b3,e4,a4]@6 ~@2", AG: "[a#3,d4]@2 ~ d4 ~ [a#3,d4] ~@2 [a#3,d4,g4]@7 ~",
  AH: "[a3,d4,g4]@2 ~ [a3,d4] ~ [a3,d4] ~@2 [a3,d4,g4]@7 ~", AI: "[d4,g4]@2 ~ g4 ~ [a3,d4,g4] ~@2 [a3,d4,g4]@7 ~",
  AJ: "[b3,e4,a4]@2 ~ [e4,a4] ~ [b3,e4,a4] ~@2 [e4,a4]@6 ~@2", // Esus4 A5 Esus4 A5
  AK: "[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 P N Q ~@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 b3 ~@4 b3@6 ~@2", Q: "~@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 C D@2 ~@12 E F G H ~@11 I A@2 J K L M N@2 ~@4 O P Q O R S T@2 U V U W ~@4 X Y@2 Z ~@4
>`.pickRestart({
  A: "b3@15 ~", B: "d#4/2", C: "b3", D: "[d#4@15 ~]/2", E: "b5@3 d6", F: "~@3 d6", G: "~@7 g5@9", H: "f#5@7 ~@9",
  I: "[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", J: "b4 a4, d#4",
  K: "~@8 a4@7 ~, c4 ~, ~ d#4@15", L: "b3@11 ~@5", M: "~ b5@10 [c6,c7]@3 [d6,d7]@2",
  N: "[[b5,b6] [a5,a6] ~@2, d#4@29 ~@3]/2", O: "[a3,d4,g4,g5]", P: "[b3,e4,a4,a5]", Q: "[a#3,d4,g4,g5]",
  R: "g4, g5 ~@15", S: "[a4,a5]", T: "[g4,g5]", U: "[d5,g5]", V: "[e5,a5]", W: "[d5,g5]@15 ~", X: "~@13 a5@2 ~",
  Y: "[g5@2 a5 g5 e5@28]/2", Z: "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 J@3 ~@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@4 ~@5", J: "~@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 T@2 G H I J K L M N U V W X Y Z AA AB AC@2 AD@2 AE AF AG@2 AE AF
  AH@2 AE AF AG@2 AE AF AI@2 G H I J K L M N AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB AU AV AW AX AY
  AC@2 BC@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: "[[a3,d4,f#4,a4]@6 [g3,b3,e4,g4] [g3,b3,e4,g4]@25]/2", // D Em
  U: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ e2 [a3,d4,g4]@7 ~, ~@4 e2 ~@3", // Em7 Dsus4
  V: "[c#2,b3,e4,a4]@3 [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 e4@6 ~@2, ~@4 c#2 ~@3", // A Esus4
  W: "[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
  X: "[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
  Y: "[e2,d4,g4]@3 d4 ~ [a3,d4] ~ e2 [a3,d4,g4]@7 ~, ~@8 e2@3 ~@5", // Em7 D5 Dsus4
  Z: "[c#2,b3,e4,a4]@3 [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4,a4]@6 ~@2, ~@2 c#2 ~", // A Esus4
  AA: "[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
  AB: "[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
  AC: "[[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
  AD: "[[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
  AE: "~ [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
  AF: "~ [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
  AG: "[[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
  AH: "[[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
  AI: "[[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
  AJ: "[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
  AK: "[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
  AL: "[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
  AM: "[b1,a3,d4,e4,g4]@2 ~ [a3,d4,e4] ~ [a3,d4,e4] ~ b1 [a3,d4,e4,g4]@7 ~, ~@4 b1 ~@3", // Em7 Asus4
  AN: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ e2 [a3,d4,g4]@7 ~, ~@8 e2 ~@7", // Em7 Dsus4
  AO: "[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
  AP: "[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
  AQ: "[b1,a3,d4,g4]@2 ~ [a3,d4] ~ [a3,d4,g4] ~ b1 [a3,d4,g4]@8, ~@4 b1 ~@3", // G D5 Dsus4
  AR: "[e2,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ [e2,d3] [a3,d4,g4]@8, ~@8 e2 ~@7", // Em7 Dsus4 E7 Dsus4
  AS: "[c#2,b3,e4,a4]@2 ~ [b3,e4,a4] ~ [b3,e4,a4] ~ c#2 [b3,e4,a4]@7 ~, ~@4 c#2 ~@3", // A Esus4
  AT: "[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
  AU: "[b1,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ b1 [a3,d4,g4]@7 ~, ~@4 b1 ~@3", // G Dsus4
  AV: "[e2,a3,d4,g4]@2 ~ [a3,g4] ~ [a3,d4,g4] ~ e2 [a3,d4,g4]@7 ~, ~@4 e2 ~@3", // Em7 A7 Dsus4
  AW: "[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
  AX: "[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
  AY: "[b1,a3,d4,g4]@2 ~ [a3,d4,g4] ~ [a3,d4,g4] ~ b1 [a3,d4,g4]@7 ~, ~@8 b1 ~@7", // G Dsus4
  AZ: "[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
  BA: "[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
  BB: "[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#
  BC: "[[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",
// … 132 more lines

More by Toto