Strudelify

Santa Lucia by Night

George Baker Selection

KeyC majorTempo120 bpm
0:00/0:00
// Santa Lucia by Night — George Baker Selection
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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(`<
  ~@10 A@2 B C D E B C D F B C D G B C D A H I J K A B C@3 D L M L N O C@2 P L Q R S T U R V W X K L N C Y W D Z AA A@2
  AB C D G N C D A AC AD O D AE AF C O C K AG K A B C Y O D Z Q R AH AI AJ R AK O W K L B C AL C AM AN AI C D A F A AO@2
>`.pickRestart({
  A: "c2@3 ~ g2@3 ~ c2@3 ~ g2@3 ~", B: "c2@3 ~ g2@3 ~ c2@2 ~@2 c2@3 ~", C: "g2@3 ~ d2@3 ~ g2@3 ~ d2@3 ~",
  D: "g2@3 ~ f2@3 ~ e2@3 ~ d2@3 ~", E: "c2@2 ~@2 c2@2 ~@2 c2@3 ~ g1@3 ~", F: "c2@2 ~@2 g2@3 ~ c2@3 ~ g2@3 ~",
  G: "c2@3 ~ c2@2 ~@2 c2@3 ~ g1@3 ~", H: "a2@2 ~@2 e2@3 ~ a2@3 ~ e2@3 ~", I: "a2@3 ~ e2@3 ~ a2@3 ~ e2@2 a2@2",
  J: "g2@3 ~ d2@3 ~ g2@2 ~@2 d2@4", K: "g2@3 ~ f2@4 e2@4 d2@3 ~", L: "c2@3 ~ g2@2 ~@2 c2@3 ~ g2@3 ~",
  M: "g2@3 ~ f2@4 e2@3 ~ d2@3 ~", N: "c2@3 ~ g2@3 ~ c2@3 ~ c2@3 ~", O: "g2@2 ~@2 d2@3 ~ g2@3 ~ d2@3 ~",
  P: "g2@3 ~ f2@2 ~@2 e2@2 ~@2 d2@3 ~", Q: "c2@2 ~@2 c2@3 ~ d2@3 ~ e2@3 ~", R: "f2@3 ~ c2@3 ~ f2@3 ~ c2@3 ~",
  S: "f2@3 ~ c2@3 ~ f2@3 ~ c2 ~ f2@2", T: "c2@3 ~ g1@3 ~ c2@3 ~ g1@3 ~", U: "c2@3 ~ g1@3 ~ c2 ~ c2@2 d2@2 e2@2",
  V: "f2@3 ~ c2@3 ~ f2@2 ~@2 c2 ~ f2@2", W: "g2@2 ~@2 d2@3 ~ g2@4 d2@3 ~", X: "g2@3 ~ d2@3 ~ g2@4 d2@3 ~",
  Y: "g2@2 ~@2 d2@3 ~ g2@2 ~@2 d2@3 ~", Z: "c2@3 ~ g2@2 ~@2 c2@3 ~ g2@4", AA: "c2@3 ~ c2@3 ~ g1@3 ~ g1@3 ~",
  AB: "c2@2 ~@2 g2@3 ~ c2@3 ~ c2@3 ~", AC: "a2@3 ~ e2@3 ~ a2@3 ~ e2@3 ~", AD: "a2@3 ~ e2@3 ~ a2@2 ~@2 e2@2 a2 ~",
  AE: "c2@3 ~ g2@2 ~@2 c2@3 ~ g2@2 ~@2", AF: "c2@3 ~ g2@2 ~@2 c2@3 ~ c2@3 ~", AG: "c2@3 ~ g2@3 ~ c2@3 ~ e2@3 ~",
  AH: "f2@4 c2@3 ~ f2@4 c2 ~ f2 ~", AI: "c2@3 ~ g2@4 c2@3 ~ c2@3 ~", AJ: "c2@2 ~@2 g1@3 ~ c2@3 ~ c2@3 ~",
  AK: "f2@3 ~ c2@3 ~ f2@3 ~ c2 ~ f2 ~", AL: "g2@3 ~ d2@3 ~ g2@3 ~ d2@2 ~@2", AM: "g2 f2 e2 d2",
  AN: "c2@3 ~ g1@3 ~ c2@3 ~ g2@4", AO: "[c2@21 ~@11]/2",
})).s("gm_fretless_bass").gain(0.4).pan(0.4)

// bass · synth bass 1 · "SYNTH BASS"
const bass_2 = note(`<
  ~@8 A@5 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A C@2 B@2 A@2 B@4 A B A@2 B@4 A@2 D@2 A E D@2 B@3 A@2 B@4 A F A@3 B@2 A@2 B@2 A
  C@2 B@2 A@2 B@4 A B A@2 B@2 G B A@2 D@2 A E D@2 B@3 A@2 B@3 H A I B@2 A@3 ~@2
>`.pickRestart({
  A: "c3 ~ c4 ~ c3 ~ c4 ~ c3 ~ c4 ~ c3 ~ c4 ~", B: "g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3 ~",
  C: "a2 ~ a3 ~ a2 ~ a3 ~ a2 ~ a3 ~ a2 ~ a3 ~", D: "f2 ~ f3 ~ f2 ~ f3 ~ f2 ~ f3 ~ f2 ~ f3 ~",
  E: "c3 ~ c4 ~ g2 ~ g3 ~ c3 ~ c4 ~ c3 ~ c4 ~", F: "c3 ~ c4 ~ c3 ~ c4 ~ g2 ~ g3 ~ g2 ~ g3 ~",
  G: "g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3 ~ g2@2 g3 ~", H: "g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3 ~ g2 ~ g3@2",
  I: "~@2 c4 ~ c3 ~ c4 ~ c3 ~ c4 ~ c3 ~ c4 ~",
})).s("gm_synth_bass_1").gain(0.28).pan(0.6)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@6 B@4 C@3 D@2 E@2 F@6 G@7 H@8 I J K@6 L@2 M@2 N O M@2 P@3 Q@2 R@4 S@2 T@3 U@2 V@2 W@3 X@2 Y@2 Q@2 Z@8 AA@4 AB@2 AC@2
  N AD M@2 AE@5 AF@5 AG@8
>`.pickRestart({
  A: "[~@16 c4@18 ~@2 [c4,e4]@3 [d4,f4]@2 [e4,g4]@2 a4@2 ~ [g4,b4]@2 [a4,c5]@2 ~ [b4,d5]@19 ~ c5@6 [g4,b4]@17 [a4,c5]@2, ~@14 e3@35 ~@2 [d3,b3]@45, ~ g3@5, ~@43 f4 ~@26 a4@7 ~@19]/6", // C Dm Em G Am Bm G Am …
  B: "[~@19 b4@7 ~@9 c3@27 ~@2, ~@5 [g3,f4]@28 ~ [e4,c5]@30, ~@5 d5@14 g4@45, ~@3 d4@13 c4@15 ~, ~@13 d5@4 ~@15]/4", // G7 C
  C: "[[g3,e4]@40 [a3,f4]@3 ~ [g3,c4,e4]@3 ~, c4@43 ~@5]/3", D: "[[g3,b3,d4]@31 ~]/2",
  E: "[[a3,c4,f4]@7 ~ [g3,c4,e4]@15 ~ [a3,c4,f4]@3 ~ [g3,c4,e4]@3 ~]/2", // F C F C
  F: "[[b3,d4]@31 [c4,e4]@24 ~ [a3,c4,f4]@3 ~ [g3,c4,e4]@3 ~ [g3,d4]@31 [a3,c4], g3@55 ~@8 b3@31 ~@2]/6", // Bm C F C G5 Am
  G: "[f4@7 ~ [g3,c4,e4]@15 ~ a3@3 ~ [g3,c4,e4]@3 ~ g3@31 g3@16 a3@32 ~, ~@23 [c4,f4]@4 ~@4 [b3,d4]@32 [c4,e4]@48 ~]/7", // C F5 Bm C
  H: "[[g3,b3,d4]@23 ~ [a3,c4]@3 ~ f4@3 ~ [c4,e4]@24 [a3,c4,f4]@3 ~ [c4,e4]@3 [b3,d4]@28 ~ [a3,c4,d4,f4]@3 ~ [g3,b3]@32, ~@23 e4@3 ~ b3@3 ~@65 [d4,f4]@31 ~@2, ~@28 g3@27 ~@5 g3@31 ~@37]/8", // G Am C F C Bm Dm7 G …
  I: "[c4,e4]", J: "[b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,a3,c4,e4]@3 ~ [g3,b3,d4,f4]@3 ~",
  K: "[[g3,c4,e4]@23 ~ [a3,c4,f4]@3 ~ [c4,e4]@3 ~ b3@26 ~@2 [a3,c4]@3 ~ g3@30 ~@2, ~@27 g3@31 ~@5 b3@30 ~@3, ~@31 d4@27 ~@2 [d4,f4]@35 ~]/6", // C F C Am Dm
  L: "[[g3,c4,e4]@15 ~]/2", M: "[[a3,c4,f4]@15 ~]/2", N: "[g3,c4,e4]@11 ~ [a3,c4,f4]@3 ~",
  O: "[g3,c4,e4]@2 ~@2 [b3,d4] ~@3 [g3,c4,e4]@7 ~, ~@2 g3 ~@5", // C Bm C
  P: "[[b3,d4,g4]@33 ~@3 [g3,b3,d4]@3 ~ [a3,c4,e4]@3 ~ [g3,b3,f4]@3 ~]/3", // G Am G7
  Q: "[[g3,c4,e4]@23 ~ [a3,c4,f4]@3 ~ [g3,c4,e4]@3 ~]/2", // C F C
  R: "[[g3,b3,d4]@27 ~ [a3,c4]@3 ~ [g3,b3]@30 ~@2, ~@28 [d4,f4]@35 ~]/4", // G Am G Dm
  S: "[[g3,c4,e4]@23 ~ [g3,d4]@7 ~, ~@23 b3@6 ~@3]/2", T: "[[g3,c4,e4]@40 [a3,c4,f4]@3 ~ [g3,c4,e4]@3 ~]/3",
  U: "[[g3,b3]@15 ~, d4]/2", V: "[[a3,f4]@7 ~ [g3,e4]@16 [a3,f4]@3 ~ [g3,e4]@3 ~, c4@31 ~]/2",
  W: "[[b3,d4]@31 ~ g3@16, g3@30 ~ [c4,e4]@16 ~]/3", X: "[[a3,c4,e4]@15 ~]/2",
  Y: "[[g3,b3,d4]@23 ~ [a3,c4,e4]@3 ~ [g3,b3,f4]@3 ~]/2", // G Am G7
  Z: "[[g3,b3,d4]@27 ~ [a3,c4]@3 ~ b3@31 ~ [c4,e4]@16 [b3,d4]@8 [a3,c4,e4]@3 ~ [b3,d4,f4]@4 [c4,e4]@23 ~ [a3,c4,f4]@3 ~ [g3,c4,e4]@3 ~, ~@7 [d4,f4]@9 ~@16, ~@32 g3@55 ~@5 g3@27 ~@9]/8", // G Am C Bm Am Bdim C F …
  AA: "[[g3,b3,d4]@27 ~ [a3,c4]@3 ~ [g3,b3]@31 ~, ~@28 [d4,f4]@35 ~]/4", AB: "[[g3,c4,e4]@29 ~@3]/2",
  AC: "[[a3,c4,f4]@31 ~]/2", AD: "[c4,e4]@4 [b3,d4]@4 [c4,e4]@7 ~, g3@15 ~",
  AE: "[~@16 f4@17 ~@3 [g3,b3,d4]@4 [a3,c4,e4]@3 ~ [b3,d4,f4]@3 ~ [c4,e4]@23 ~ [a3,c4,f4]@3 ~ [g3,c4,e4]@3 ~, [b3,d4,g4]@17 ~@5 g3@13 ~@5]/5", // G Am Bdim C F C G
  AF: "[[g3,b3,d4]@27 ~ [a3,c4]@3 ~ b3@31 ~ [c4,e4]@16, ~@7 [d4,f4]@9 ~@4, ~@2 g3@3]/5", // G Am C Dm
  AG: "[~@4 d4@4 e4@8 [b3,d4,f4]@32 [c4,e4]@73 ~@7, ~@4 g3@117 ~@7, ~@4 c4@11 ~@113]/8", // Bdim C
})).s("gm_string_ensemble_1").gain(0.24)

// chords · flute
const flute = note(`<
  ~@12 A B C D A E F G A B C D A B H I J@2 K L M N O P Q R S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN X
  AO AP AQ AR AS AT B AU AV AW B H AX AY@2 AZ BA BB BC BD BE BF BG BH BI BJ BK AM BL X BM BN AA BO BP AD AE BQ BR BS BT
  BU BV BW BX BY BF BZ CA CB CC CD CE CF CG CH ~
>`.pickRestart({
  A: "[e5,g5] ~ [e5,g5]@2 [d#5,f#5]@2 [e5,g5]@2 [f5,a5]@4 [e5,g5]@4", // Em D#m Em F Em
  B: "[g5,b5] ~ [g5,b5]@4 [f5,a5]@2 [e5,g5]@4 [d5,f5]@4", C: "~ [g5,b5]@2 [f5,a5] [e5,g5]@2 [d5,f5]@2",
  D: "[f5,a5] ~ [f5,a5]@4 g5@2 [d5,f5]@4 [c5,e5]@4, ~@6 e5 ~@9", // F Dm C
  E: "[g5,b5] ~ [g5,b5]@4 [f5,a5]@2 [e5,g5]@4 [d5,f5]@3 ~", F: "~@2 [g5,b5] ~ [g5,b5]@2 [f5,a5]@2 [e5,g5]@4 [d5,f5]@4",
  G: "[c5,e5] ~", H: "~@2 [g5,b5] ~ [g5,b5]@2 [f5,a5]@2 [e5,g5]@4 [d5,f5]@3 ~", I: "[c5,e5]@15 ~",
  J: "[[c5,a5]@31 ~]/2", K: "[b4,g5]", L: "~@4 g5@4 a5@4 b5@3 ~",
  M: "d6@2 [e5,c6] ~ [d#5,b5] ~ [e5,c6]@7 ~ g5 ~, f5 ~@15", // C G#m C
  N: "e6 [c6,e6]!2 c6 [c6,e6] e6!2 ~ [g5,b5]@2 a5@2 [e5,g5] ~ [c5,e5] ~, ~@5 c6@2 ~@3 f5 ~@5", // C G Em C
  O: "[d5,f5]@2 [e5,g5] ~ [c5,e5] ~ [b4,d5]@7 ~ [g5,b5] ~", P: "d6 [b5,d6]!2 b5 [b5,d6]!2 d6 [b5,d6] b5 [b5,d6] d6 ~@5",
  Q: "[a5,c6]@2 [g5,b5] ~ a#5@2 [g5,b5]@6 ~@2 [g5,b5] ~, ~@4 f#5 ~@11", // Am G
  R: "[g5,b5]@2 [f5,a5]@2 g#5@2 [f5,a5]@5 ~ [g5,b5]@4, ~@4 e5 ~@11", // G F G
  S: "a5@2 g5@2 [d#5,f#5] ~ [e5,g5]@2 ~@2 g6 ~ f6 [e6,f6] d6 c6, f5 ~ e5 ~@13", // D#m Em Fmaj7
  T: "[g5,b5]!2 b5 [g5,b5]!3 g5!2 a5@4 b5@3 ~", U: "d6@2 [e5,c6] ~ [d#5,a#5,b5] ~ [e5,c6]@7 ~ [g5,c6] ~, f5 ~@15",
  V: "[c6,e6] e6 [c6,e6] c6 [c6,e6] e6!2 ~ [g5,b5]@2 a5@2 [e5,g5] ~ [c5,e5] ~, ~@5 c6@2 ~@3 f5 ~@5", // C G Em C
  W: "[[d5,f5]@2 [e5,g5] ~ [c5,e5] ~ [b4,d5]@4 b4 d5 [b4,d5]!2 ~ d5@4 ~ d5@2 e5@2 f5@2 g5@2 a5@2 [a5,c6] ~, ~@7 b4@2 ~@7]/2", // Dm Em C Bm Am
  X: "[a5,c6]@2 [g5,b5] ~ [f#5,a#5] ~ [g5,b5]@7 ~ [g5,b5] ~", // Am G F# G
  Y: "[g5,b5]@2 a5@2 g#5@2 [f5,a5]@5 ~ [f5,b5]@3 ~, ~@2 f5 ~ e5 ~@11", // G F Fdim
  Z: "d6@2 [e5,c6] ~ [d#5,b5] ~ [e5,c6]@10, f5 ~@15", AA: "c6 g5 e5 g5 c6 g5 e5 g5 c6 g5 e5 g5 c6 g5 e5 g5",
  AB: "[a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6]@3 ~ [b5,d6]@3 ~", AC: "[a5,c6]@6 b5@2 [f5,a5]@7 ~, ~@6 g5 ~@9",
  AD: "[e5,g5] ~ [e5,g5] ~ [e5,g5] ~ [e5,g5] ~ [e5,g5]@4 [f5,a5]@4", AE: "[e5,g5]@5 ~ [d5,f5] ~ [c5,e5]@6 ~@2",
  AF: "[a5,c6,d6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6]@3 ~ [a5,d6]@3 ~", AG: "[a5,c6]@6 [g5,b5] ~ [f5,a5]@8",
  AH: "[b5,d6] ~ [b5,d6]!3 ~ [b5,d6] ~ [b5,d6]@7 ~", AI: "[b5,f6] ~ [b5,f6] ~ [b5,f6] ~ [b5,f6] ~ [b5,f6]@8",
  AJ: "[b5,g6] ~@3 g5@4 a5@4 b5@4", AK: "d6@2 [e5,c6] ~ [d#5,b5] ~ [e5,c6]@8 g5@2, f5 ~@15",
  AL: "[c6,e6] e6 [c6,e6]!2 c6 e6@3 [g5,b5] ~ [f5,a5] ~ [e5,g5] ~ e5@2, ~@5 c6 ~@8 c5 ~", // C G F Em
  AM: "[d5,f5]@2 g5@2 [c5,e5] ~ [b4,d5]@5 ~ [d5,g5] ~ [g5,b5] ~, ~@2 e5 ~@13", // Dm C Bm G5 G
  AN: "[b5,d6] d6 b5 [b5,d6] d6 b5 [b5,d6] d6 [b5,d6] b5 d6 b5 d6@2 ~@2", // Bm
  AO: "[g5,b5]@2 a5@2 g#5@2 a5@6 b5@3 ~, ~@2 f5 ~ e5 ~ f5@9 ~", AP: "d6@2 c6@2 [d#5,b5] ~ [e5,c6]@10, f5 ~ e5 ~@13",
  AQ: "~@2 [c6,e6]@2 [b5,d6] ~ [a5,c6] ~ [g5,b5]@2 [f5,a5] ~ [e5,g5] ~ [d5,f5] ~, ~@2 b5 ~@5 [f5,a5] ~@7", // C Bm Am G F Em Dm F
  AR: "[e5,g5] [d5,f5] [c5,e5]@7 ~ e5@2 [d5,f5]@2 [f5,a5]@2, ~@10 c5 ~@5", // Em Dm C Dm F
  AS: "[e5,g5]@8 ~@2 [g5,e6] ~ [f#5,d#6] ~ d6@2, ~@14 f5 ~", // Em C D#m
  AT: "[e5,c6] ~ [e5,g5] ~ d#5@2 [e5,g5]@2 [f5,a5]@4 [e5,g5]@3 ~, ~@4 f#5 ~@11", // C Em F Em
  AU: "~@2 [g5,b5]@4 [f5,a5]@2 [e5,g5]@4 [d5,f5]@3 ~", AV: "[f5,a5] ~ [f5,a5]@4 g5@2 [d5,f5]@3 ~ [c5,e5]@4, ~@6 e5 ~@9",
  AW: "~@2 [e5,g5] ~ [d#5,f#5] ~ [e5,g5]@2 [f5,a5]@4 [e5,g5]@4", AX: "[c5,e5]@13 ~@3",
  AY: "[[c5,a5]@29 ~ a5@2, ~@30 c5 ~]/2", AZ: "[b4,g5]@15 ~", BA: "[b4,g5] ~@3 g5@4 a5@4 b5@4",
  BB: "[f5,d6]@2 [e5,c6] ~ [d#5,b5] ~ c6@8 g5@2, ~@3 e5@3 ~@2", // Dm C G#m
  BC: "[c6,e6] e6 [c6,e6] c6 e6!2 ~@2 [g5,b5]@2 a5@2 [e5,g5] ~ [c5,e5] ~, ~@4 c6@2 ~@4 f5 ~@5", // C G Em C
  BD: "[d5,f5]@2 g5@2 [c5,e5] ~ [b4,d5]@4 [d5,g5]@4 [g5,b5] ~, ~@2 e5 ~@7 f5 ~@5", // Dm C Bm G5 G
  BE: "[b5,d6] b5 d6 [b5,d6] b5 d6 b5 [b5,d6] d6 b5 [b5,d6] d6 ~@4", // Bm
  BF: "[a5,c6]@2 [g5,b5] ~ a#5@2 [g5,b5]@7 ~ [g5,b5] ~, ~@4 f#5 ~@11", // Am G
  BG: "[g5,b5]@2 [f5,a5] ~ e5@2 [f5,a5]@5 ~ [g5,b5]@4, ~@4 g#5 ~@11", // G F G
  BH: "[d#5,f5] ~ [e5,g5] ~ [d#5,f#5] ~ [e5,g5]@3 ~ g6@2 f6 [d6,e6] c6 ~, a5 ~@7", BI: "[g5,b5]!7 ~@9",
  BJ: "d6@2 [e5,c6] ~ [d#5,b5] ~ [e5,c6]@7 ~ g5@2, f5 ~@15", // C G#m C
  BK: "[c6,e6] e6 [c6,e6]!2 c6 [c6,e6] e6 ~ [g5,b5]@2 a5@2 [e5,g5] ~ [c5,e5] ~, ~@10 f5 ~@5", // C G Em C
  BL: "d6 [b5,d6]!2 b5 [b5,d6]!3 d6 [b5,d6] b5 [b5,d6] b5 [b5,d6] ~@3", // Bm
  BM: "[g5,b5]@2 a5@2 [e5,g#5] ~ [f5,a5]@6 [g5,b5]@3 ~, ~@2 f5 ~@13", // G E F G
  BN: "[f5,d6]@2 [e5,c6] ~ [d#5,b5] ~ [e5,c6]@8 g5@2", // Dm C G#m C
  BO: "[a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6]@3 ~ [a5,d6]@3 ~", BP: "[a5,c6]@5 ~ [g5,b5] ~ [f5,a5]@8",
  BQ: "[a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6]@4 [a5,d6]@4", BR: "[a5,c6]@3 b5 [f5,a5]@3 ~, ~@6 g5 ~@9",
  BS: "[b5,d6] ~ [b5,d6]!3 ~ [b5,d6] ~ d6@8, ~@4 b5@3 ~", // Bm
  BT: "[b5,f6] ~ [b5,f6] ~ [b5,f6] ~ [b5,f6] ~ f6@8, ~@4 b5@3 ~", BU: "[b5,g6] ~@3 g5@4 a5@4 b5@3 ~",
  BV: "d6@2 [e5,c6] ~ [d#5,b5] ~ c6@6 g5@2 c6@2, f5 ~@5 e5@3 ~@7", // C G#m
  BW: "[c6,e6]!2 e6 [c6,e6]!2 c6 [c6,e6] ~ [g5,b5]@2 a5@2 [e5,g5] ~ [c5,e5] ~, ~@10 f5 ~@5", // C G Em C
  BX: "[d5,f5]@2 g5@2 [c5,e5] ~ [b4,d5]@4 [d5,g5]@4 [g5,b5] ~, ~@2 e5 ~@7 e5 ~@5", // Dm C Bm G5 G
  BY: "d6 [b5,d6] b5 [b5,d6]!3 d6 [b5,d6]!2 b5 [b5,d6] d6 b5 d6 b5 ~", // Bm
  BZ: "[g5,b5]@2 a5@2 [e5,g#5]@2 [f5,a5]@6 [g5,b5]@3 ~, ~@2 f5 ~@13", CA: "[f5,d6]@2 [e5,c6] ~ [d#5,b5] ~ [e5,c6]@10",
  CB: "~@2 e5 f5 g5 a5 b5 c6", CC: "[a5,c6]@2 b5@2 a#5@2 [g5,b5]@7 ~ [g5,b5] ~, ~@2 g5 ~ f#5 ~@11",
  CD: "[g5,b5]@2 a5@2 g#5@2 [f5,a5]@6 [g5,b5]@3 ~, ~@2 f5 ~ e5 ~@11", // G F G
  CE: "[f5,d6]@2 [e5,c6] ~ b5@2 [e5,c6]@10, ~@4 d#5 ~@11", CF: "~ e5 f5 f#5 g5 c6 d6 d#6",
  CG: "e6@3 ~ c6@2 d6@2 e6@2 [a5,f6] ~ e6@2 [f5,d6] ~, ~@4 a5 ~ a5 ~ g5 ~@3 g5 ~@3", CH: "[e5,c6]@9 ~@7",
})).s("gm_flute").gain(0.26).pan(0.3)

// chords · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  A@6 B@4 C@3 ~@15 D ~ E F G H I J K L M F N H I O K P Q@2 R ~ S ~ T ~ U V W G H I O K X Y ~@11 Z ~ AA F G H I O K AB M
  AC Y H I AD@2 AE AF@3 AG@2 AH@2 AI@4 Y H I O K AJ Y AK K AL G AM AN AO ~
>`.pickRestart({
  A: "[~@16 c4@18 ~@2 [c4,e4]@3 [d4,f4]@2 [e4,g4]@2 a4@2 ~ [g4,b4]@2 [a4,c5]@2 ~ [b4,d5]@19 ~ c5@6 ~ g4@16 [a4,c5]@2, ~@14 e3@35 ~@2 [d3,b3]@45, ~ g3@5, ~@43 f4 ~@26 a4@7 b4@17 ~@2]/6", // C Dm Em G Am Bm Am G
  B: "[~@19 b4@7 ~@9 c3@27 ~@2, ~@5 [g3,f4]@28 ~ [e4,c5]@30, ~@5 d5@14 g4@45, ~@3 d4@13 c4@15 ~, ~@13 d5@4 ~@15]/4", // G7 C
  C: "[c4@47 ~, g3@5 ~]/3", D: "[c5,e5,a5]@11 ~@5", E: "[b4,d5,g5]", F: "~@4 g4@4 a4@4 b4@3 ~",
  G: "[f4,d5] ~ [e4,c5] ~ [d#4,b4] ~ [e4,c5]@9 ~", // Dm C G#m C
  H: "~@2 [c5,e5]@2 [b4,d5]@2 c5@2 [g4,b4] ~ [f4,a4] ~ [e4,g4] ~ [c4,e4] ~, ~@6 a4 ~@9", // C Bm G F Em C
  I: "[d4,f4]@2 g4@2 [c4,e4] ~ [b3,d4]@10, ~@2 e4 ~@13", J: "~@4 d4@2 e4@2 f4@2 g4@2 a4@2 [a4,c5] ~",
  K: "[a4,c5]@2 [g4,b4] ~ [f#4,a#4] ~ [g4,b4]@7 ~ [g4,b4] ~", // Am G F# G
  L: "[g4,b4]@2 [f4,a4]@2 e4@2 [f4,a4]@5 ~ [g4,b4]@4, ~@4 g#4 ~@11", M: "[f4,a4]@2 [e4,g4] ~ [d#4,f#4] ~ [e4,g4]@10",
  N: "d5@2 [e4,c5] ~ [d#4,b4] ~ [e4,c5]@10, f4 ~@15", O: "~@4 d4@2 e4@2 f4@2 g4@2 a4@2 c5 ~",
  P: "b4@2 a4@2 [e4,g#4] ~ [f4,a4]@5 ~ [g4,b4]@3 ~, g4 ~ f4 ~@13", // E F G
  Q: "[[f4,d5] ~ [e4,c5] ~ [d#4,b4] ~ [e4,c5]@15 ~@11]/2", R: "[f4,a4,c5]@9 ~@7", S: "[e4,g4,c5]@5 ~@11",
  T: "[f4,a4,c5]@5 ~@11", U: "[g4,b4,d5,g5] ~@3", V: "[b4,d5,f5]@3 ~@5, g4 ~@3", W: "[b4,g5] ~@3 g4@4 a4@4 b4@3 ~",
  X: "[g4,b4]@2 [f4,a4] ~ [e4,g#4] ~ [f4,a4]@5 ~ [g4,b4]@3 ~", Y: "[f4,d5] ~ [e4,c5] ~ [d#4,b4] ~ [e4,c5]@10",
  Z: "[c5,e5,a5]@13 ~@3", AA: "[g4,b4,d5,g5]@13 ~@3", AB: "b4@2 [f4,a4] ~ e4@2 [f4,a4]@5 ~ [g4,b4]@4, g4 ~@3 g#4 ~@11",
  AC: "~@2 g4@2 a4@2 b4 ~",
  AD: "[~@4 d4@2 e4@2 f4@2 g4@2 ~@2 c5@4 [g4,b4] ~ [f#4,a#4] ~ [g4,b4]@7 ~ [g4,b4] ~, ~@6 a4@3 ~@7]/2", // G F# G
  AE: "[g4,b4]@2 [f4,a4]@2 [e4,g#4] ~ [f4,a4]@5 ~ [g4,b4]@2 ~@2", // G F E F G
  AF: "[d5@2 [e4,c5] ~ [d#4,b4] ~ [e4,c5]@14 ~@11 f4 [c5,f5]@2 ~@14, f4 ~@30 a4@2 ~@15]/3", // C G#m C F5
  AG: "[~@15 e4 [c5,e5]@2 ~@14, ~@15 g4@2 ~@15]/2", AH: "[~@15 f4 f5@2 ~@14, ~@15 [a4,c5]@2 ~@15]/2",
  AI: "[~@15 g4 [d5,g5]@2 ~@13 f5 [b4,b5] ~@15 g5 ~@3 g4@4 a4@4 b4@3 ~, ~@15 b4@3 ~@13 [g4,d5]@2 ~@14 [b4,d5]@2 ~@15]/4", // G5 B G5 Bm
  AJ: "[g4,b4]@2 a4@2 [e4,g#4] ~ [f4,a4]@5 ~ [g4,b4]@3 ~, ~@2 f4 ~@13", AK: "~@4 e4@2 f4@2 g4@2 a4@2 b4@2 c5 ~",
  AL: "b4@2 [f4,a4] ~ [e4,g#4] ~ [f4,a4]@6 [g4,b4] ~@3, g4 ~@15", AM: "~ e4 f4 f#4 g4 c5 d5 d#5",
  AN: "e5@2 ~@2 [a4,c5] ~ [a4,d5] ~ [g4,e5] ~ [a4,f5] ~ [g4,e5] ~ [f4,d5] ~", AO: "[e4,c5]@3 ~",
})).s("gm_lead_2_sawtooth").gain(0.24).pan(0.4)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@10 A@2 B C@2 D B C@2 E B C@2 D B C@2 A F@2 C G A B C H I@2 A J A B C H I@2 A K L@2 M N L@2 I@2 O A B C H I@2 A P A E
  B C@2 D B C@2 Q F@2 C R A B C H I@2 A S A B C H I@2 A K L@2 M T L@2 U V W A B C H I@2 A X I@2 A Y A ~@2
>`.pickRestart({
  A: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C
  B: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [a3,c4,f4] ~@3 [g3,c4,e4] ~", // C F C
  C: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  D: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // F C
  E: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  F: "~@2 [a3,c4,e4] ~@3 [a3,c4,e4] ~@3 [a3,c4,e4] ~@3 [a3,c4,e4] ~", // Am
  G: "~@4 [g3,b3,d4]@3 ~ [a3,c4,e4]@3 ~ [g3,b3,f4]@3 ~", // G Am G7
  H: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [a3,c4,d4,f4] ~", // G Dm7
  I: "~@2 [g3,b3,d4,f4] ~@3 [g3,b3,d4,f4] ~@3 [g3,b3,d4,f4] ~@3 [g3,b3,d4,f4] ~", // G7
  J: "~@4 [g3,b3,d4]@3 ~ [a3,c4,e4]@2 ~@2 [g3,b3,f4]@3 ~", // G Am G7
  K: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,a#3,c4,e4] ~@3 [g3,a#3,c4,e4] ~", // C C7
  L: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~", // F
  M: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [a3,c4,f4] ~", // C F
  N: "~@2 [g3,c4,e4] ~@3 [g3,b3,d4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C G C
  O: "[b3,d4,g4] ~@3 [g3,b3,d4]@3 ~ [a3,c4,e4]@3 ~ [g3,b3,f4]@3 ~", // G Am G7
  P: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,b3,d4,f4] ~@3 [g3,b3,d4,f4] ~", // C G7
  Q: "~@2 [g3,c4,e4,f4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C
  R: "[g3,b3,d4] ~@3 [g3,b3,d4]@3 ~ [a3,e4]@2 ~@2 [g3,b3,d4,f4]@3 ~, ~@8 c4 ~@7", // G A5 G7
  S: "[g3,b3,d4] ~@3 [g3,b3,d4]@3 ~ [a3,c4,e4]@2 ~@2 [g3,b3,f4]@3 ~", // G Am G7
  T: "~@2 [g3,c4,e4] ~@3 [g3,b3,d4] ~@3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C G C
  U: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // G
  V: "~@2 [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~", // G7
  W: "[b3,d4,f4,g4] ~@3 [g3,b3,d4]@3 ~ [a3,c4,e4]@3 ~ [g3,b3,d4,f4]@3 ~", // G7 G Am G7
  X: "~@2 [g3,c4,e4] ~@3 [g3,c4,d4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", Y: "[g3,c4,e4]",
})).s("gm_piano").gain(0.4).pan(0.7)
// … 18 more lines

More by George Baker Selection