Strudelify

Sommernacht in Rom

G. G. Anderson

KeyG majorTempo126 bpm
0:00/0:00
// Sommernacht in Rom — G. G. Anderson
// 126 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · "FINGERDBAS"
const bass = note(`<
  ~ A@2 B@4 C D C D C E F G H I J K C D C D C L M N O P Q R S T U ~ V W X Y T Z@3 AA Y@3 AB AC ~ V W X Y T Z AD AE AF AG
  AH Y T AI AJ C D C E F G H I J K C D C D C L M N AK P Q R S T U ~ V W X Y T Z@3 AA Y@3 AB AC ~ V W X Y T Z AD AE AF AG
  AH Y T AL ~ V W X Y T Z AD AE AF AG AH Y T AL ~ V W X Y T Z@3 AA Y@3 AB AC ~@2
>`.pickRestart({
  A: "g1/2", B: "[d2@37 ~@3 d2@14 ~@2 d2@4 g1@4]/4", C: "~@2 g1 ~ d2@7 ~ g1@4", D: "~@2 g1 ~ d2@3 ~ d2@3 ~ g1@4",
  E: "~@2 g1 ~ d2@3 ~ d2@3 ~ d2@4", F: "~@2 d2 ~ a1@7 ~ d2@4", G: "~@2 d2 ~ a1@3 ~ a1@3 ~ a1@4",
  H: "~@2 a1 ~ e2@7 ~ a1@4", I: "~@2 a1 ~ e2@3 ~ e2@3 ~ a1@4", J: "~@2 a1 ~ e2@7 ~ d2@4",
  K: "~@2 d2 ~ a1@3 ~ d2@3 ~ g1@4", L: "~@2 g1 ~ d2@3 ~ d2@3 ~ c2@4", M: "~@2 c2@2 g1@5 ~ g1 ~ c2@4",
  N: "~@2 c2 ~ g1@3 ~ g1@3 ~ a1@4", O: "~@2 a1@2 e1@5 ~ e1@2 a1@4", P: "~ a1 e1@2 a1@2 g1@2",
  Q: "~@2 g1@2 d2@5 ~ d2@2 g1@4", R: "~@2 g1@2 d2@3 ~ d2@2 ~@2 d2@4", S: "~@2 d2@2 a1@5 ~ a1 ~ d2@4",
  T: "~ d2 a1@2 d2@2 g1@2", U: "~@2 g1@2 d2@4 ~@2 d2@2 g1@3 ~", V: "~@6 d2 ~ g2@4 d2@4",
  W: "~@2 d2@2 a1@3 ~ c2@3 ~ d2@4", X: "~@2 d2@2 a1@3 ~ c2@4 d2@4", Y: "~ d2 a1@2 c2@2 d2@2",
  Z: "~@2 g1 ~ b1@4 d2@4 g1@4", AA: "~@2 g1 ~ b1@4 d2@4 d2@4", AB: "~@2 d2 ~ a1@4 d2@4 g1@4",
  AC: "~@2 g1 ~ b1@4 d2@4 g1@3 ~", AD: "~@2 g1 ~ b1@4 d2@4 c2@4", AE: "~ c2 d#2@2 g2@2 c2@2",
  AF: "~ c2 d#2@2 g2@2 g1@2", AG: "~ g1 b1@2 d2@2 g1@2", AH: "~@2 g1@2 b1@4 d2@3 ~ d2@4", AI: "~ g1 d2@4 g1@2",
  AJ: "~@2 g1@2 d2@3 ~ d2@3 ~ g1@4", AK: "~@2 a1@2 e1@5 ~ e1 ~ a1@4", AL: "~@2 g1@2 d2@8 g1@3 ~",
})).s("gm_electric_bass_finger").gain(0.42)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A B C@3 D@8 E@5 F@8 G@3 H@4 I J K@3 L@8 M@2 I J K@3 N@7 O@8 P@6 Q@8 R@3 S@4 I J K@3 L@8 M@2 I J K@3 N@7 T@3 I U@3 V
  N@7 T@3 I J K@3 L@8 M@2 I ~
>`.pickRestart({
  A: "[b3,g4]@11 ~ c4@4, ~@11 a4@5", B: "[d4,g4,b4]@13 [a4,c5]@3",
  C: "[[d4,b4]@8 [c4,f#4,a4]@19 ~ [c4,f#4,a4]@7 ~ b4@4 [e4,a4,c5]@8, ~@35 d4@4 ~@9]/3", // G F#dim Am
  D: "[[d4,b4]@6 [c4,f#4]@6 [b3,d4,g4]@32 [b3,d4]@16 [b3,e4]@15 ~ [b3,f#4]@15 ~ [b3,e4]@16 c4@5 ~ d4@10 c4@4, ~@27 a3@5]/8", // G Cdim G Bm E5 B5 E5
  E: "[~@2 d4@10 e4@16 f#4@16 g4@16 f#4@10 [e4,g4]@3 [d4,f#4]@3 [c4,e4]@4, ~@6 c4@29 ~@5]/5", // Em D C
  F: "[~ [b3,d4]@26 ~ [b3,d4]@16 [b3,e4]@15 ~ [b3,f#4]@15 ~ [b3,e4]@16 b4@7 a4@23 ~@2 [c4,a4]@4, ~@46 c4@15 ~@3]/8", // Bm E5 B5 E5 F
  G: "[~@2 [b3,g#4]@4 [c4,a4]@4 [d4,b4]@5 ~ a4@4 [b3,g#4]@4 [c4,a4]@4 [b3,g4]@6 [a#3,f#4]@5 [b3,g4]@5 [c4,a4]@4, ~@15 c4@4 ~@29]/3", // E F G E F Em D#m Em …
  H: "[[b3,g4]@4 [a3,f#4]@4 [g3,e4]@3 ~ [g3,e4]@7 ~ d4@14 ~@2 [g3,c4,e4]@8 [g3,b3,d4]@17 ~@3, ~@19 f#3@14 ~@31]/4", // Em D C G
  I: "[g4,b4]@4 [a4,c5] [b4,d5]@3", J: "~@2 [b4,d5]@3 [c5,e5] [b4,d5]@2",
  K: "[~@16 [a4,c5]@4 [b4,d5] [c5,e5]@3, ~ f#4@9 ~@2, ~@2 [a4,c5]@13 ~@9, ~@7 d4@5]/3", // Am Bm C Am
  L: "[~@4 [f#4,a4,e5]@6 [d5,f#5]@2 [c5,e5]@8 [b4,d5]@23 ~ [d4,g4,b4]@32 [d4,f#4,c5]@31 ~ [d4,f#4,a4]@20, ~@4 c5@5 ~@3 g4@31 ~@85]/8", // F#m7 D C Bm G D7 D
  M: "[~@3 [d4,g4,b4]@4 ~]/2", // G
  N: "[~@4 [f#4,a4,e5]@6 [d5,f#5]@2 [c5,e5]@8 [b4,d5]@23 ~ [c4,d#4,g4]@32 [b3,d4,g4]@32 [c4,e4,g4]@4, ~@4 c5@5 ~@3 g4@31 ~@69]/7", // F#m7 D C Bm Cm G C
  O: "[~ [a3,d4,f#4]@6 [b3,d4,g4]@8 [b3,d4,d5]@4 [b3,e4,e5]@4 [b3,f#4,f#5]@4 e5@3 b4 [a3,c4,c5], ~@27 [b3,e4]@4 ~]/8", // D G Bm E5 B5 Am E5
  P: "[~@2 d4@10 c4@6 d4@10 [e4,e5]@16 [f#4,f#5]@16 [g4,g5]@16 f#5@8 ~@2 [e4,g4]@2 ~ [d4,f#4]@3 [c4,e4,e5]@4, ~ d5@12 ~ c4@29 ~@5, ~@38 f#4@5 ~@5, ~@21 g5 f#5 ~]/6", // E F# G Em D C
  Q: "[~@4 d5@22 ~@2 [b3,d4,d5]@16 [b3,e4,e5]@16 [b3,f#4,f#5]@16 e5@12 ~@11 a4@23 ~@2 [c4,a4,a5]@4, ~ [b3,d4]@26 ~@49 [b3,e4]@16 c4@30 ~@6, ~@88 b5@10 a5@23 ~@7, ~@23 b4@2 ~@7]/8", // Bm E5 B5 F Bm E5
  R: "[~@12 b5@3 ~ [a4,a5]@4 [b3,g#4,g#5]@4 [c4,a4,a5]@4 [b3,g4]@6 ~@2 f#5@3 ~ g5@4 [c4,a4,a5]@4, ~@2 [b3,g#4]@4 [c4,a4]@4 [d4,b4]@6 ~@12 g5@8 ~@3 [b3,g4]@5 ~@4, ~@4 g#5@4 a5@4 ~@3 c4@4 ~@15 [a#3,f#4]@6 ~@8]/3", // A E F Em F E F G …
  S: "[[b3,g4,g5]@4 [a3,f#4,f#5]@4 [g3,e4,e5]@3 ~ [g3,e4,e5]@7 ~ [d4,d5]@15 ~ [g3,c4,e4]@8 [g3,b3,d4,b4]@17 ~@3, ~@19 f#3@14 ~@2 a4@8 ~@21]/4", // Em D C D C G
  T: "[~ [a3,d4,f#4]@6 [b3,d4,g4]@4 ~]/3", // D G
  U: "[~@2 [b4,d5]@3 [c5,e5] [b4,d5]@4 ~@12 d4@2, ~@5 f#4@7, ~@10 [a4,c5]@13 ~]/3", V: "[a4,c5]@4 [b4,d5] [c5,e5]@3",
})).s("gm_synth_strings_1").gain(0.35)

// chords · synth bass 1 · "SYN BASS 1"
const synth_bass_1 = note(`<
  ~@6 A B C D E F G H I J K L M N O D E F P Q R S T U V W X Y ~@2 Z@4 AA@4 AB AC Z@2 AD ~@2 Z@4 AA@2 AE@2 AF AG AH AI B
  C D E F G H I J K L M N O D E F P Q R S T U V W X Y ~@2 Z@4 AA@4 AB AC Z@2 AD ~@2 Z@4 AA@2 AE@2 AJ AG AH AI AK ~@2 Z@4
  AA@2 AE@2 AJ AG AH AI AK ~@2 Z@4 AA@4 AB AC Z@2 AD ~@2
>`.pickRestart({
  A: "~@12 [g4,b4,d5] ~ [g4,b4,d5] ~", B: "~@2 [g4,b4,d5] ~ [g4,b4,d5] ~@7 [g4,b4,d5] ~ [g4,b4,d5] ~",
  C: "b4 ~ [g4,b4,d5] ~ [g4,b4,d5] ~@7 [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  D: "~@2 [g4,b4,d5] ~ [g4,b4,d5] ~@7 [g4,b4,e5] ~ [g4,b4,e5] ~", // G Em
  E: "b4 ~ [g4,b4,e5] ~ [b4,e5] ~@7 [g4,b4,f#5] ~ [g4,b4,f#5] ~", // Em E5 Gmaj7
  F: "~@2 [g4,b4,f#5] ~ [g4,b4,f#5] ~ b4 ~@5 [g4,b4,e5] ~ [g4,b4,e5] ~", // Gmaj7 Em
  G: "~@2 [g4,b4,e5] ~ [g4,b4,e5] ~@7 [a4,c5] ~ [a4,c5] ~", H: "~@2 [a4,d5] ~ [a4,d5] ~@7 [f#4,a4,d5] ~ [a4,d5] ~",
  I: "~@2 [f#4,a4,d5] ~ [f#4,a4,d5] ~@7 [a4,c5,e5] ~ [a4,e5] ~", // D Am A5
  J: "~@2 [a4,c5,e5] ~ [a4,c5,e5] ~@7 [a4,c5,f#5] ~ [a4,c5,f#5] ~", // Am F#dim
  K: "~@2 [a4,c5,f#5] ~ [a4,c5,f#5] ~@7 [a4,c5,g5] ~ [a4,c5,g5] ~", // F#dim Am7
  L: "~@2 [a4,c5,g5] ~ [a4,c5,g5] ~@7 [a4,c5,f#5] ~ [a4,c5,f#5] ~", // Am7 F#dim
  M: "~@2 [a4,c5,g5] ~ [a4,c5,g5] ~@3 [a4,c5,f#5] ~ [a4,c5,f#5] ~ [g4,e5] ~ [g4,c5,e5] ~", // Am7 F#dim C
  N: "[c5,e5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ d5 ~@5 [d4,g4,b4] ~ [g4,b4] ~", // C G
  O: "~@2 [d4,g4,b4] ~ [d4,g4,b4] ~@7 [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  P: "~@2 [g4,b4,e5] ~ [g4,b4,e5] ~@7 [c4,e4,b4] ~ [c4,e4,b4] ~", // Em Cmaj7
  Q: "[c4,e4,b4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~@5 [c4,e4,g4] ~ [c4,e4,g4] ~", // Cmaj7 Am C
  R: "[c4,e4,g4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~@5 [c4,e4,a4] ~ [c4,e4,a4] ~", // C Am
  S: "[c4,e4,a4] ~ [c4,e4,g#4] ~ [c4,e4,g#4] ~ [c4,e4,g#4] ~@5 [c4,e4,b4] ~ [c4,e4,b4] ~", // Am Caug Cmaj7
  T: "[c4,e4,b4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~@5 [b3,d4,g4] ~ [b3,d4,g4] ~", // Cmaj7 Am G
  U: "[b3,d4,g4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~@5 [b3,d4,a4] ~ [b3,d4,a4] ~", // G Bm Bm7
  V: "[b3,d4,a4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@5 [e4,g4] ~ [e4,g4] ~", // Bm7 G Em
  W: "[e4,g4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~@5 [f#4,a4,d5] ~ [f#4,a4,d5] ~", // Em D
  X: "[f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~@5 [d4,g4,b4] ~ [d4,g4,b4] ~", // D G
  Y: "[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~@3", Z: "[a3,d4] ~ [a3,d4] ~@13",
  AA: "[b3,d4] ~ [b3,d4] ~@13", AB: "[a3,d4,d5,f#5] ~ [a3,d4,d5,f#5] ~ [d5,f#5]@3 ~ [c5,e5] ~ [c5,e5] ~ [c5,e5]@3 ~",
  AC: "[a4,d5] ~ [a4,d5] ~ [a4,d5]@3 ~ [c5,e5]@3 ~@5", AD: "[g4,b4,e5] ~ [g4,b4,e5] ~@5 [g4,b4,d5] ~ [g4,b4,d5] ~@5",
  AE: "[d#4,g4] ~ [d#4,g4] ~@13", // D#
  AF: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5]@3 ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5]@3 ~", // Bm Em
  AG: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5]@3 ~ [b4,d5] ~@7, ~@4 g5 ~@3", AH: "[e4,g4] ~ [e4,g4] ~@13",
  AI: "[d4,f#4] ~ [d4,f#4] ~@9 [g4,b4,d5] ~ [g4,b4,d5] ~", // D G
  AJ: "[b4,d5] ~ [b4,d5] ~ [b4,d5]@3 ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5]@3 ~", // Bm Em
  AK: "~@2 [g4,b4,d5] ~ [g4,b4,d5] ~@7 [d4,g4,b4] ~@3", // G
})).s("gm_synth_bass_1").gain(0.24).pan(0.1)

// chords · synth bass 1 · "SYN BASS 1" · soft notes
const synth_bass_1_soft = note(`<
  ~@7 A B A C D E F G H I J K L M A C D E ~@38 A B A C D E F G H I J K L M A C D E ~@38 A ~@14 A ~@17
>`.pickRestart({
  A: "[g4,b4,d5] ~@5 [g4,b4,d5] ~@9", B: "[g4,d5] ~@5 [g4,b4,d5] ~@9", C: "[g4,e5] ~@3 g4 ~ [g4,b4,e5] ~@9",
  D: "[g4,b4,f#5] ~@5 [g4,f#5] ~@9", E: "[g4,b4,e5] ~@5 [g4,b4,e5] ~@9", F: "[a4,c5] ~@5 [a4,d5] ~@7 f#4 ~",
  G: "[f#4,a4,d5] ~@5 [f#4,a4,d5] ~@7 c5 ~", H: "[a4,c5,e5] ~@5 [a4,c5,e5] ~@9", I: "[a4,c5,f#5] ~@5 [a4,c5,f#5] ~@9",
  J: "[a4,c5,g5] ~@5 [a4,c5,g5] ~@9", K: "[a4,c5,f#5] ~@5 [a4,c5,g5] ~@5 [a4,c5,f#5] ~@3", L: "g4 ~@5 [g4,b4] ~@7 d4 ~",
  M: "[d4,g4,b4] ~@5 [d4,g4,b4] ~@9", // G
})).s("gm_synth_bass_1").gain(0.12).pan(0.1)

// chords · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead = note(`<
  ~@6 A B C D E F G H I J K L M N O D E F G P Q R Q S T U V S ~ W X Y Z AA AB AC AB AD AE AF AG AH AI ~ W X Y Z AA AB AJ
  AK AL AM AN AO AP B C D E F G H I J K L M N O D E F G P Q R Q S T U V S ~ W X Y Z AA AB AC AB AD AE AF AG AH AI ~ W X
  Y Z AA AB AJ AK AL AQ AN AO AP AR ~ W X Y Z AA AB AJ AK AL AQ AN AO AP AR ~ W X Y Z AA AB AC AB AD AE AF AG AH AS ~@2
>`.pickRestart({
  A: "~@12 [b3,d4] ~ [b3,d4] ~", B: "[b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ d4 ~ [b3,d4] ~ [b3,d4] ~",
  C: "[b3,d4] ~ d4 ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
  D: "[b3,d4] ~@3 [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ d4 ~ [b3,e4] ~ [b3,e4] ~", // Bm E5
  E: "[b3,e4] ~@3 [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ b3 ~ [b3,f#4] ~ [b3,f#4] ~", // E5 B5
  F: "[b3,f#4] ~@3 [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,e4] ~ [b3,e4] ~", // B5 E5
  G: "[b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~@5", // E5
  H: "~@4 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~", // D5
  I: "[a3,d4] ~@3 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [c4,e4] ~ [c4,e4] ~", // D5 C
  J: "[c4,e4] ~ c4 ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,f#4] ~ [c4,f#4] ~", // C Cdim
  K: "[c4,f#4] ~ f#4 ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,g4] ~ [c4,g4] ~", // Cdim C5
  L: "[c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,f#4] ~ [c4,f#4] ~", // C5 Cdim
  M: "[c4,f#4] ~ f#4 ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ c4 ~@5", // Cdim C5
  N: "~@4 [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
  O: "[b3,d4] ~ b3 ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
  P: "~@4 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~@5", Q: "~@4 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~@7",
  R: "~@4 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ a4 ~@5", S: "~@4 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4] ~@5",
  T: "~@4 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4] ~@7", U: "~@4 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ d4 ~@5",
  V: "~@4 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~@5", W: "~@12 [f#4,a4,d5] ~ [f#4,a4,d5] ~",
  X: "[a4,d5] ~ d5 ~ [f#4,a4,d5]@5 ~@3 [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D5 D
  Y: "[f#4,a4,d5] ~ [a4,d5] ~ [f#4,a4,d5]@5 ~@3 [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D D5 D
  Z: "[f#4,a4,d5] ~ [a4,d5] ~ [f#4,a4,d5]@7 ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D D5 D
  AA: "[f#4,a4,d5] ~ [a4,d5] ~ [f#4,a4,d5]@7 ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // D D5 D G
  AB: "[g4,b4,d5] ~ [b4,d5] ~ [g4,b4,d5]@7 ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G Bm G
  AC: "[g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5]@7 ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  AD: "[g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5]@7 ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~", // G D
  AE: "[f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5]@8 [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D
  AF: "[f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5]@7 ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D
  AG: "[f#4,a4,d5] ~ a4 ~ [f#4,a4,d5]@7 ~ [f#4,a4,d5] ~ [f#4,a4,d5] ~", // D
  AH: "[f#4,a4,d5] ~ [f#4,a4,d5] ~ [f#4,a4,d5]@7 ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // D G
  AI: "[g4,b4,d5] ~ [b4,d5] ~ [g4,b4,e5]@5 ~@3 [g4,b4,d5] ~@3", // G Bm Em G
  AJ: "[g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5]@7 ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~", // G Cm
  AK: "[c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5]@6 ~@2 [c5,d#5,g5] ~ [c5,d#5,g5] ~", // Cm
  AL: "[c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5]@6 ~@2 [b4,d5,g5] ~ [b4,d5,g5] ~", // Cm G
  AM: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,f#5]@6 ~@2 [b4,d5,g5] ~ [b4,d5,g5] ~", // Bm G
  AN: "[b4,d5,f#5] ~ [b4,d5,f#5] ~ [b4,d5,g5]@6 ~@2 [c5,e5,g5] ~ [c5,e5,g5] ~", // Bm G C
  AO: "[c5,e5,g5] ~ [e5,g5] ~ [a4,d5,f#5]@6 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5] ~", // C Em D
  AP: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5]@5 ~@3 [b3,d4] ~ [b3,d4] ~", // D Bm
  AQ: "[b4,d5] ~ [b4,d5] ~ [b4,d5]@6 ~@2 [b4,d5,g5] ~ [b4,d5,g5] ~", // Bm G
  AR: "[b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ d4 ~@5", // Bm
  AS: "[g4,b4,d5] ~ [b4,d5] ~ [g4,b4,e5]@5 ~@3 [g4,b4,d5]@2 ~@2", // G Bm Em G
})).s("gm_lead_8_bass_lead").gain(0.18).pan(0.9)

// chords · lead 8 bass lead · "BASS&LEAD" · soft notes
const lead_8_bass_lead_soft = note(`<
  ~@7 A B C D E ~@2 F G H ~ I ~ J C D E ~@2 K L K M N O ~ M ~@2 P Q@3 R ~ R ~@3 S ~ R ~@2 P Q@3 R ~@5 T ~ A B C D E ~@2
  F G H ~ I ~ J C D E ~@2 K L K M N O ~ M ~@2 P Q@3 R ~ R ~@3 S ~ R ~@2 P Q@3 R ~@5 T ~ A ~@2 P Q@3 R ~@5 T ~ A ~@2 P
  Q@3 R ~ R ~@3 S ~ R ~@2
>`.pickRestart({
  A: "~@10 b3 ~@5", B: "~@2 b3 ~@13", C: "~@2 [b3,d4] ~@7 b3 ~@5", D: "~@2 [b3,e4] ~@7 e4 ~@5", E: "~@2 [b3,f#4] ~@13",
  F: "~@2 [a3,d4] ~@13", G: "~@2 e4 ~@13", H: "~@2 c4 ~@13", I: "~@2 c4 ~@7 g4 ~@5", J: "~@2 d4 ~@13",
  K: "~@10 [c4,e4,a4] ~@5", L: "~@10 [c4,e4] ~@5", M: "~@10 g4 ~@5", N: "~@8 g4 ~ [b3,d4,g4] ~@5", O: "~@10 f#4 ~@5",
  P: "f#4 ~ [f#4,a4] ~@13", Q: "~@2 f#4 ~@13", R: "~@2 g4 ~@13", S: "~@2 [f#4,d5] ~@13", T: "~@2 c5 ~@13",
})).s("gm_lead_8_bass_lead").gain(0.11).pan(0.9)

// chords · music box
const music_box = note(`<
  A B C D@2 E F ~ G H I H J K L M N M L O G H I H P Q R S T U V W X ~@11 Y Z ~@2 AA ~@10 AB AC ~@3 AD AE AF AG@2 AH AI@3
  AJ@2 AK AL@2 AM@3 AN AO@2 AP@2 AQ@2 AR ~@11 Y Z ~@2 AA ~@10 AS AC ~@13 AS AC ~@13 Y Z ~@2 AA ~@2
>`.pickRestart({
  A: "~@14 g7 [d7,e7]", B: "g6@3 ~ [g5,b5] ~ [g5,b5] ~ [g5,b5]@2 ~@2 [a5,c6]@2 ~@2, b6 ~@15",
  C: "[b5,d6]@5 ~@3 [b5,d6]@4 ~@2 [c6,e6] ~", D: "[[b5,d6]@6 ~@2 [a5,c6]@16 ~@4 [a5,c6] ~ [a5,c6] ~]/2",
  E: "[a5,c6] ~ [b5,d6] ~ [c6,e6]@3 ~", F: "[b5,d6]@5 ~ [f#5,c6]@3 ~@3 [g5,b5]@3 ~", G: "~@12 [b5,d6] ~@3",
  H: "~@12 [b5,e6] ~@3", I: "~@12 [b5,f#6] ~@3", J: "~@12 [a5,c6] ~@3", K: "~@2 [a5,d6] ~@13", L: "~@12 [c6,e6] ~@3",
  M: "~@12 [c6,f#6] ~@3", N: "~@12 [c6,g6] ~@3", O: "~@4 [b5,d6] ~@11", P: "~@12 [d5,b5] ~@3", Q: "~@4 [c5,a5] ~@11",
  R: "~@12 [c5,a5] ~@3", S: "~@2 [c5,g#5] ~@3 [c5,a5] ~@3 [d5,b5] ~@5",
  T: "[c5,a5] ~@3 [c5,g#5] ~@3 [c5,a5] ~@3 [b4,g5] ~@3", U: "~@2 [b4,f#5] ~@5 [b4,g5] ~@3 [b4,a5] ~@3",
  V: "[b4,g5] ~@3 [b4,f#5] ~@3 e5 ~@3 [c5,e5] ~@3", W: "~@4 [a4,d5] ~@11", X: "~@4 [c6,e6] ~@7 [b5,d6] ~@3",
  Y: "[d5,f#5] ~ [d5,f#5] ~ [d5,f#5] ~@3 [c5,e5] ~ [c5,e5] ~ [c5,e5] ~@3", // D C
  Z: "[a4,d5] ~ [a4,d5] ~ [a4,d5] ~@3 [c5,e5] ~@7", // D5 C
  AA: "[b4,e5] ~ [b4,e5] ~ [b4,e5] ~@3 [b4,d5] ~ [b4,d5] ~ [b4,d5] ~@3", // E5 Bm
  AB: "[d6,f#6] ~ [d6,f#6] ~ [d6,f#6]@2 ~@2 [b5,e6] ~ [b5,e6] ~ [b5,e6] ~@3", // D E5
  AC: "[d6,f#6] ~ [d6,f#6] ~ [d6,f#6] ~@3 [d6,g6] ~@7", AD: "~@3 [b4,d5]", AE: "~@3 [b4,e5]", AF: "~@3 [b4,f#5]",
  AG: "[~@12 [b4,e5]@7 ~@5 b4@3 ~ [a4,c5]@4]/2", AH: "~@4 [a4,d5]@9 ~@3",
  AI: "[~@12 [c5,e5]@7 ~@9 [c5,f#5]@6 ~@10 [c5,g5]@4]/3", // C Cdim C5
  AJ: "[~@12 [c5,f#5]@6 ~@2 [c5,g5]@3 ~ [c5,f#5]@2 ~@2 [c5,e5]@4]/2", AK: "~@4 [b4,d5]@7 ~@5",
  AL: "[~@6 [b4,d5]@3 ~@5 [b4,e5]@2]/2", AM: "[~@12 [b4,f#5]@8 ~@8 [b4,e5]@7 ~@5 b5@3 ~ [e5,b5]@4]/3",
  AN: "~@2 [e5,a5]@9 ~@5", AO: "[~@12 [e5,a5]@6 ~@2 [e5,g#5]@3 ~ [e5,a5]@3 ~ [e5,b5]@2 ~@2]/2",
  AP: "[[e5,a5]@3 ~ [e5,g#5]@2 ~@2 [e5,a5]@2 ~@2 [b4,g5]@6 ~@2 [b4,f#5]@2 ~@2 [b4,g5]@2 ~@2 [b4,a5]@2 ~@2]/2", // A5 E A5 Em B5 Em B7
  AQ: "[[b4,g5]@2 ~@2 [b4,f#5]@3 ~ [b4,e5]@2 ~@2 [c5,e5]@6 ~@2 [a4,d5]@5 ~@7]/2", AR: "~@4 [a4,c5]@5 ~@3 [g4,b4]@4",
  AS: "[b5,d6] ~ [b5,d6] ~ [b5,d6]@2 ~@2 [b5,e6] ~ [b5,e6] ~ [b5,e6] ~@3", // Bm E5
})).s("gm_music_box").gain(0.24)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~ A B C@2 D E@2 ~@144>".pickRestart({
  A: "~@4 g4 ~ g4 ~ g4@4 a4@4", B: "b4@7 ~ b4@6 c5@2", C: "[b4@8 a4@18 ~@2 [c4,a4] ~ [c4,a4] ~]/2",
  D: "[c4,a4] [d4,b4] [e4,c5]@2", E: "[[d4,b4]@3 [a3,f#4]@3 [b3,g4]@8 ~@2]/2",
})).s("gm_synth_brass_1").gain(0.44)

// … 82 more lines

More by G. G. Anderson