Strudelify

Morning Dance

Spyro Gyra

KeyF majorTempo102 bpm
0:00/0:00
// Morning Dance — Spyro Gyra
// 102 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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 · acoustic bass · "Bass Gtr"
const bass = note(`<
  ~@7 A B C D E B C D E B F G H D C I J B F G H D C I K L M N O P Q R S T B U G V D U W J B U G V D U W X Y Q Z AA AB AC
  AD AE AF B F G H D C I K L M N O P Q R S AG AH AI AH AI AH AI AH AI AH AI AH AI AH AI AH AI AH AI AH AJ@3
>`.pickRestart({
  A: "~@3 f3", B: "f2@3 f2 c2 b1 bb1 a1@4 a1!3 ~@2", C: "bb1@3 bb1 f2 ~@2 eb2@3 ~ eb2!3 ~ eb2",
  D: "f2@3 f2 c2 b1 bb1 a1@3 ~ a1!3 ~@2", E: "bb1@2 ~ bb1!2 ~@2 eb2@4 eb2 eb2@2 e2@2",
  F: "bb1@3 bb1 f2 ~ eb2@4 ~ eb2!3 ~ eb2", G: "f2@3 f2 c2 b1 bb1 a1@3 ~ a1!3 ~ a1",
  H: "bb1@3 bb1!3 ~ bb1 c2@3 c2!3 d2 e2", I: "d2@2 ~ d2!2 ~@2 g2@4 g2 g2@3 c2", J: "c2@3 c2 g2@3 g2 c3@3 c3 c2@2 d2@2",
  K: "c2@3 c2 g2@3 g2 c3@3 c3 g2@4", L: "eb2 bb2 d2 a2", M: "g2@3 g2 c2@4 f2@3 f2 c2@2 c2 f2",
  N: "e2@3 e2 eb2@3 eb2 d2@3 d2 d2@2 e2 f2", O: "g2@3 g2 g2@2 e2 d2 c2@3 g2 c2@2 db2 d2",
  P: "eb2@3 eb2 bb2@3 bb2 d2@3 d2 a2@3 a2", Q: "g2@3 g2 c2@3 c2 f2@3 f2 c2@2 c2 f2",
  R: "eb2@3 eb2@4 d2@2 d2@2 d2 g2@2 g2!2", S: "c2@3 c2 g2@2 g2 c3@4 c3 g2@3 g2", T: "c2@3 g2 g2@3 c3 c3@3 c3 c2@2 d2 ~",
  U: "bb1@3 bb1 f2 ~@2 eb2@4 eb2!3 ~ eb2", V: "bb1@3 bb1!3 ~ bb1 c2@2 c2@2 c2@2 d2@2",
  W: "d2@3 d2 d2@2 ~@2 g2@3 g2 g2@2 e2 d2", X: "c2@3 c2 g2@3 g2 c3@3 c3 g2@2 f2@2",
  Y: "eb2@2 ~ eb2 bb2@3 d2 d2@3 a2 a2@3 d2", Z: "e2@3 e2 eb2@3 eb2 d2@3 d2 d2@2 ~@2",
  AA: "g2@3 g2 g2@3 g2 c2@3 c2 c2@2 d2@2", AB: "eb2@3 eb2 bb2@3 d2 d2@3 a2 a2@3 d2",
  AC: "g2@3 g2 c2@3 c2 f2@3 f2 c2@3 f2", AD: "e2@3 e2 eb2@3 eb2 d2@3 d2 g2@2 g2@2, f2 ~@15",
  AE: "c2@3 g2 g2@3 bb2 c3@3 c3 g2@2 d2@2", AF: "c2@3 g2 g2@3 c3 c3@3 g2 g2@2 gb2@2",
  AG: "db2@3 db2 ab2!2 bb2 db3@5 ab2@2 g2@2", AH: "gb2@3 gb2 db2 c2 b1 bb1@4 bb1!3 ~@2",
  AI: "b1@3 b1 ab2 ~ e2@4 db3@2 e2@2 f2@2", AJ: "[b1@3 b1 ab2 ~ e2@4 db3@2 ~ e2@2 f2@2 gb1@23 ~@8]/3",
})).s("gm_acoustic_bass").gain(0.38)

// chords · epiano1 · "El Piano"
const epiano1 = note(`<
  ~@16 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 Z AB Z AC AD AE Z AA Z AB Z AC AD AF AG AH AI AJ AK@2 AL
  AM@2 AN AA Z AO Z AC AD AE Q R S T U V W X AP AQ AR AQ AR AQ AR AQ AR AQ AR AQ AR AQ AR AQ AR AQ AR AQ AS AT@2
>`.pickRestart({
  A: "[f3,a3,c4]@6 ~ [g3,a3,c4,e4]@6 ~@3", B: "[ab3,bb3,db4,f4]@6 ~ [g3,bb3,db4,f4]@6 ~@3",
  C: "[f3,a3,c4,f4]@6 ~ [g3,a3,c4,e4]@6 ~@3", D: "[a3,d4,f4]@3 ~ [a3,d4,f4]@3 [bb3,d4,f4]@4 ~ [c4,d4,f4]@4",
  E: "[f3,a3,c4]@6 ~ [g3,a3,c4]@6 ~@3", F: "[ab3,bb3,db4]@6 ~ [bb3,db4,f4]@6 ~@3", G: "[c4,d4,f4]@11 ~ [b3,d4,f4]@4",
  H: "[bb3,d4,f4]@6 ~ [g3,bb3,d4,f4]@6 ~@3", I: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~ [a3,c4,e4]@7 ~@2",
  J: "[ab3,bb3,db4]@3 ~ [ab3,bb3,db4]@3 [bb3,db4,f4]@5 [g3,bb3,db4]@4", // Bbm7 Bbm Gdim
  K: "[a3,c4,f4]@3 ~ [a3,c4,f4]@3 [c4,e4,g4]@5 [a3,c4,e4]@3 ~", // F C Am
  L: "[a3,d4,f4]@3 ~ [a3,d4,f4]@3 [bb3,d4,f4]@5 [g3,bb3,d4]@4", // Dm Bb Gm
  M: "[f3,a3,c4]@3 ~ [f3,a3,c4]@3 [a3,c4,e4]@5 [g3,c4,e4]@4", // F Am C
  N: "[f3,bb3,db4]@3 ~ [f3,bb3,db4]@3 [bb3,db4,f4]@5 [g3,bb3,db4]@4", // Bbm Gdim
  O: "[a3,c4,d4]@3 ~ [a3,c4,d4]@3 [b3,d4,f4]@4 ~ [g3,b3,d4]@3 ~", P: "[g3,bb3,d4]@3 ~ [g3,bb3,d4]@3 [bb3,d4,f4]@8 ~",
  Q: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 [c4,d4,f4]@5 [a3,c4,d4]@4", R: "[bb3,d4,f4]@4 [d4,f4,bb4]@3 [c4,f4,a4]@6 ~@3",
  S: "[d4,g4,bb4]@2 [db4,e4,a4]@2 [c4,d4,f4]@3 ~", T: "[c4,d4,f4]@4 [b3,d4,f4]@3 [bb3,d4,f4]@7 ~@2",
  U: "[bb3,d4,f4]@4 [bb3,d4,f4]@2 ~ [c4,d4,f4]@7 ~@2", V: "[bb3,d4,f4]@3 ~ [c4,d4,g4]@3 [a3,c4,f4]@7 ~@2",
  W: "[bb3,d4,g4]@2 ~ [db4,e4,g4]@3 ~ [c4,d4,f4]@4 ~ [c4,d4,f4]@3 ~", X: "[bb3,d4,f4,c6]@12 [g3,bb3,d4]@3 ~",
  Y: "[g3,bb3,d4]@12 [bb3,d4,f4]@3 ~", Z: "[a3,c4,f4] [a3,c4,e4]", AA: "[bb3,db4,f4]@7 ~", AB: "[bb3,d4,f4]@7 ~",
  AC: "[bb3,db4,f4]@15 ~", AD: "[a3,c4,d4,f4]@7 [g3,b3,d4,f4]@9", AE: "[g3,bb3,d4,f4]@5 [bb3,d4,f4,g4]@3",
  AF: "[g3,bb3,d4,f4]@10 ~@3 c6 f6 a6, ~@5 [bb3,d4,f4,g4]@3", // Gm7
  AG: "[bb5,bb6] ~ [bb5,bb6] [a5,a6] ~ [f5,f6] [d5,d6] ~@3 [d5,c6,d6] ~ [c5,c6] [d5,d6] ~@2, [g3,bb3,d4]@7 [c5,c6]@2 ~@7, ~@8 [c4,d4,f4]@7 ~", // Bb A F D D7 C D Gm …
  AH: "[bb3,d4,f4,a4,a5]@2 [bb4,bb5] [b4,b5] [c5,c6] ab5 [a4,a5] [f4,f5] ~ a4 [d4,f4,bb4] ~ [c4,f4,a4]@2 ~ g5, ~@2 [g3,bb3,d4] ~@5", // Bbmaj7 Bb B C A F Bb F …
  AI: "g5 f5 e5 d5 db5 e5 g5 bb5 a5 f5 g5 a5 ~@3 c6, [d4,g4,bb4]@4 [db4,e4,g4]@4 [c4,d4,f4]@7 ~", // Gm Dbdim Dm7
  AJ: "[f5,d6]@2 [g5,e6] [a5,f6] ~ [g5,e6] ~ [g5,d6] [f5,c6]@3 [f5,c6] ~@2 c5 ~, [c4,d4,f4]@4 [b3,d4,f4]@4 [bb3,d4,f4]@7 ~", // Dm C Dm C G5 F5 Dm7 Bdim …
  AK: "[d4 ~ f4 ~ d5 [d5,f5] [d5,f5,a5] [f5,a5,d6] ~ [a5,c6,e6] ~ [bb5,d6,f6] ~ [c6,e6,g6] ~@2 [bb3,d4,f4]@3 ~@2 [c6,g6] ~ [a5,f6] [c6,f6,a6]@3 ~@5, [g3,bb3]@7 ~@13 [g3,bb3,d4]@2 ~ [f3,a3,c4]@8 ~, ~ d4@6 ~ [c4,d4,f4]@7 [c6,f6,a6]@5 ~@12]/2", // Dm Am Bb C Bb C5 Dm F …
  AL: "~ g5 c6 ~ bb5 ~ bb5 ~ [a5,bb5] f5 d5 f5 ~ f5 a5 [c6,d6], [bb3,d4,g4] [bb3,db4,e4] [a3,c4,d4] [g3,b3,d4]", // Bbmaj7 Csus2 Gm Bbdim D7 G
  AM: "[~@15 c6@13 [g3,bb3,d4,g4]@3 ~, [bb3,d4,f4]@13 g5@15 ~@4, c6@11 f5@17 ~@4, ~@2 c5@5 ~, ~@9 d5@19 ~@4]/2", // Gm Bb
  AN: "[a3,f4] [a3,c4,e4]", AO: "[bb3,d4,f4,d5]@7 ~", AP: "[ab3,b3,eb4]@12 [b3,eb4,gb4]@3 ~",
  AQ: "[bb3,db4,gb4] [bb3,db4,f4]", AR: "[b3,d4,gb4]@7 ~", AS: "[b3,d4,gb4]@15 ~", AT: "[~ [gb3,bb3,db4,f4]@23 ~@8]/2",
})).s("gm_epiano1").gain(0.35)

// chords · acoustic guitar nylon · "Guitar 3"
const acoustic_guitar_nylon = note(`<
  A B A B A B A B C D C D C D C D E F G H I J K L E F G H I J K L M N O P Q R S T U V W X Y Z AA AB@2 E F G H I J K L AC
  AD AE AF AG AH AI AJ AK E F G H I J K L AL AM AN AO AP AQ S T AR AS AT AS AT AS AT AS AT AS AT AS AT AS AT AS AT AS AT
  AS AU AV@2
>`.pickRestart({
  A: "[a3,c4,f4] ~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [g3,c4,e4] ~@8", // F C
  B: "[bb3,db4,f4]!2 ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [g3,bb3,db4,f4] ~ [g3,bb3,db4,f4] ~ [db4,f4,g4] [db4,f4,ab4] [db4,f4,g4] ~@2", // Bbm Gm7b5 Db Gm7b5
  C: "[a3,c4,f4]@4 [a3,c4,f4]@2 ~ [a3,c4,e4]@8 ~", D: "[bb3,db4,f4]@4 [bb3,db4,f4]@3 [bb3,db4,eb4,f4]@7 ~@2",
  E: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~ [a3,c4,e4]@5 [a3,c4,e4]@2 ~@2", // F Am
  F: "[bb3,db4,f4]@3 ~ [bb3,db4,f4]@2 ~ [bb3,db4,eb4,f4]@5 [bb3,db4,eb4,f4] ~ [bb3,db4,eb4] ~", // Bbm Eb7
  G: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~ [a3,c4,e4]@5 [c4,e4] ~ [a3,c4,e4] ~", // F Am C Am
  H: "[bb3,d4,f4]@2 ~ [bb3,d4,f4]!3 ~ [bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4]!2 ~ [g3,bb3,d4,f4] ~", // Bb Gm7
  I: "[a3,c4,f4]@4 [a3,c4,f4]@3 [a3,c4,e4]@5 [g3,c4,e4]@2 [a3,c4,e4]@2", // F Am C Am
  J: "[bb3,db4]@4 [ab3,bb3,db4,f4]@3 [bb3,db4,eb4,f4]@5 [bb3,db4,f4]@4", // Bbm Bbm7 Bbm
  K: "[a3,c4,d4,f4]!2 ~ [a3,c4,d4,f4]@2 [a3,c4,d4,f4]@2 [b3,d4,f4]@5 [b3,d4,f4]@4", // Dm7 Bdim
  L: "[g3,bb3,d4,f4]@4 [g3,bb3,d4,f4]@4 [g3,bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4,f4]@2 [g3,bb3,d4,f4] [bb3,d4,f4]@2", // Gm7 Bb Gm7 Bb
  M: "[a3,d4,f4]@2 [a3,d4,f4]!2 [d4,f4] [a3,d4,f4] ~ [d4,f4] [c4,d4,f4]@3 [a3,c4,d4] [c4,d4,f4] [a3,c4,d4] ~ [c4,d4,f4]", // Dm Dm7 D7 Dm7 D7 Dm7
  N: "[bb3,d4,f4]@3 [bb3,d4,f4] [d4,f4,a4] [bb3,d4,f4] ~ [bb3,d4,f4] [a3,c4,f4]@3 [a3,c4,f4] [c4,f4,a4] [a3,c4,f4] ~ [a3,c4,f4]", // Bb Dm Bb F
  O: "[bb3,d4,g4]@2 [bb3,d4,g4] [g3,bb3,d4] [bb3,db4,e4]!2 ~ [bb3,db4,e4] [c4,d4,f4]@3 [a3,c4,d4] [c4,d4,f4]!2 ~ [a3,c4,d4]", // Gm Bbdim Dm7 D7 Dm7 D7
  P: "[c4,d4,f4]@3 [c4,d4,f4] [c4,d4,g4] [c4,d4,f4] ~ [bb3,d4,f4] [bb3,d4,f4]@3 [bb3,d4,g4]!2 [bb3,d4,f4] ~@2", // Dm7 Csus2 Dm7 Bb Gm Bb
  Q: "[d4,f4,a4]@3 [d4,f4,a4] [d4,f4] [d4,f4,a4] ~@2 [c4,d4,f4]@3 [c4,d4,f4] [a3,c4,d4] [c4,d4,f4] ~ [c4,d4,f4]", // Dm Dm7 D7 Dm7
  R: "[bb3,d4,f4]@3 [bb3,d4,f4]!3 ~ [c4,d4,f4] [c4,d4,f4]@2 ~ [c4,d4,f4] [bb3,d4,f4]!2 ~ [bb3,d4,f4]", // Bb Dm7 Bb
  S: "[bb3,d4,g4]@3 [bb3,db4,e4]@3 [c4,d4,f4]@6 [c4,d4,f4]@4", // Gm Bbdim Dm7
  T: "[bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4]!2 ~ [bb3,d4,f4]@4 [bb3,d4,f4] [g3,bb3,d4]@3 [bb3,d4,f4]", // Bb Gm Bb
  U: "[bb3,d4,f4]@3 [g3,bb3,d4] [g3,bb3,d4]@2 [g3,bb3,d4]@2 [bb3,d4,f4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [bb3,d4,f4] ~", // Bb Gm Bb Gm Bb
  V: "[a3,c4,f4]@2 c4 [a3,c4,f4] [a3,c4] [c4,f4]!2 [c4,e4] [a3,c4] [a3,c4,e4] [a3,c4,e4]@2 [c4,e4]@2 [a3,c4,e4]@2", // F Am F5 C Am C Am
  W: "[bb3,db4,f4]@2 [bb3,db4,f4] [ab3,db4,f4] [bb3,db4,f4]!6 [bb3,db4,f4]@2 [bb3,db4,g4]@2 [bb3,db4,f4]@2", // Bbm Db Bbm Gdim Bbm
  X: "[a3,c4,f4]@2 [a3,c4,f4] [a3,c4] [c4,f4] [a3,c4] [a3,c4,f4] [c4,e4,a4] [c4,e4,g4]!2 [c4,e4,g4]@2 [a3,c4,e4]@2 [g3,c4,e4]@2", // F Am F5 Am F Am C Am …
  Y: "[bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4] [bb3,d4,f4] [f3,bb3,d4] [bb3,d4,f4]!2 [g3,bb3,d4] [bb3,d4,f4] [bb3,d4,f4]@2 [g3,bb3,d4]@2 [bb3,d4,f4]@2", // Bb Gm Bb Gm Bb
  Z: "[a3,c4,f4]@2 [a3,c4,f4] [c4,f4] [a3,c4,f4] [c4,f4,a4] [a3,c4,f4] [a3,c4,e4] [g3,c4,e4] [a3,c4,e4] [c4,e4,a4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2", // F F5 F Am C Am C
  AA: "[bb3,db4,f4]@2 [ab3,db4,f4] [bb3,db4,f4] [ab3,db4,f4]!2 [bb3,db4,f4]!3 [g3,bb3,db4] [bb3,db4,f4]@2 [bb3,db4,f4]@2 [g3,bb3,db4]@2", // Bbm Db Bbm Db Bbm Gdim Bbm Gdim
  AB: "[[a3,c4,d4]@3 [c4,d4,f4]@3 [d4,f4,a4]@2 ~ [d4,g4,b4] [b3,d4,g4]@3 [b3,d4,f4]@2 [g3,b3,d4]@2 [g3,bb3,d4]!2 [bb3,d4,f4] [g3,bb3,d4] [bb3,d4,f4]@3 [bb3,d4,f4]@4 [d4,f4,a4]@3 ~]/2", // D7 Dm7 Dm G Bdim G Gm Bb …
  AC: "[bb3,d4,f4] ~ [bb3,d4,f4]!2 ~ [bb3,d4,g4] ~ [d4,f4,a4] ~@3 [c4,f4,a4] ~@4", // Bb Gm Dm F
  AD: "[d4,f4,a4] ~@2 [d4,g4,bb4] ~@3 [c4,f4,a4]@3 ~@6", // Dm Gm F
  AE: "[bb3,d4,g4]@4 [e4,g4,bb4] ~@3 [d4,f4,a4]@2 ~ [c4,f4,a4]@3 [a3,c4,f4] ~", // Gm Edim Dm F
  AF: "[c4,d4,g4]@4 [c4,d4,g4] ~@3 [d4,f4,a4]@2 ~ [d4,f4,a4]@3 [d4,f4,a4] ~", // Csus2 Dm
  AG: "[bb3,d4,f4]@2 ~ [bb3,d4,f4] ~ [d4,f4,bb4] ~ [d4,f4,a4] ~ [c4,f4,a4] [d4,f4,a4] ~ [c4,f4,a4] ~@3", // Bb Dm F Dm F
  AH: "[d4,f4,bb4]@2 ~@2 [d4,g4,bb4] ~@2 [c4,f4,a4] ~ [c4,f4,a4] [a3,c4,f4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~", // Bb Gm F
  AI: "[d4,g4,bb4]@3 ~ [e4,g4,bb4]@3 ~ [c4,d4,f4,a4]@4 [c4,d4,f4]@2 ~@2", // Gm Edim Dm7
  AJ: "[bb3,d4,f4]@2 [bb3,d4,f4] [bb3,d4,g4]@4 ~ [bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,f4]@4 ~", // Bb Gm Bb
  AK: "[bb3,d4,f4]@2 [bb3,d4,g4] [bb3,d4,f4]@4 ~ [bb3,d4,f4]@2 [bb3,d4,g4] [bb3,d4,f4]@3 [f4,g4,bb4] ~", // Bb Gm Bb Gm Bb Gm7
  AL: "[bb3,d4,f4]@2 [bb3,d4,f4]!2 [g3,bb3,d4]@2 [bb3,d4,f4] [c4,d4,f4] [a3,c4,d4]@2 [a3,c4] [c4,d4,f4] [a3,c4,d4]@2 [a3,c4,d4] [c4,d4,f4]", // Bb Gm Bb Dm7 D7 Am Dm7 D7 …
  AM: "[bb3,d4,f4]@2 [g3,bb3,d4] [bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4,f4] [bb3,f4] [a3,c4,f4]@2 [a3,c4,f4]!2 a3@2 c4 f4", // Bb Gm Bb Bb5 F
  AN: "[d4,g4,bb4]@2 [bb3,d4,g4] [d4,g4,bb4] [db4,e4,g4]@2 [a3,db4,e4] [bb3,db4,e4] [c4,d4,f4]@2 [a3,c4,d4] [c4,d4,f4] [a3,c4,d4]@2 [c4,d4,f4]!2", // Gm Dbdim A Bbdim Dm7 D7 Dm7 D7 …
  AO: "[c4,d4,g4]@2 [c4,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2 [bb3,d4,f4]@2 [bb3,d4,f4] [g3,bb3,d4]@2 [bb3,d4,f4] [bb3,d4,f4]@2", // Csus2 G Bb Gm Bb
  AP: "[bb3,d4,f4]@2 [bb3,d4,f4]!2 [g3,bb3,d4]@2 [bb3,d4,f4]!2 [c4,d4,f4]@2 [c4,d4,f4] [a3,c4,d4] [c4,d4,f4]@2 [c4,d4,f4]!2", // Bb Gm Bb Dm7 D7 Dm7
  AQ: "[bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [g3,c4,e4] [bb3,d4,f4] [a3,c4,f4]@2 [a3,c4,e4] [a3,c4,f4] [a3,c4,f4]@2 [f3,a3,c4] [a3,c4,f4]", // Bb C Bb F Am F
  AR: "[b3,eb4,gb4]@3 [ab3,b3,eb4] [ab3,b3,eb4]@2 [ab3,b3,eb4]@2 [b3,eb4,gb4]@2 [ab3,b3,eb4]@2 [ab3,b3,eb4]@2 [b3,eb4,gb4] ~", // B Abm B Abm B
  AS: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 ~ [bb3,db4,f4]@8 ~", AT: "[b3,d4,gb4]@4 [b3,d4,gb4]@3 [b3,d4,e4,gb4]@7 ~@2",
  AU: "[b3,d4,gb4]@4 [b3,d4,gb4]@3 [b3,d4,e4,gb4]@8 ~", AV: "[~ [gb3,bb3,db4,f4]@23 ~@8]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0.3)

// chords · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note(`<
  ~ A@3 B@2 C@2 ~@16 D E ~ F G H I J ~@8 K@2 ~@24 L@2 M N O P Q R S ~ T U V W X Y Z AA AB AC AD AE AF AG AH AA AB AC AD
  AE AF AG AH AA AB AC AI AJ@2
>`.pickRestart({
  A: "[~@14 f5@26 ~ [eb5,g5]@7]/3", B: "[f5@12 ~ d6@3]/2", C: "[[f5,f6]@31 ~]/2", D: "~@7 [a4,c5] ~@8",
  E: "[c4,ab4] [bb3,g4] ~ [ab3,f4]@5 ~@8", F: "~ [d5,f5] ~@3 [bb4,d5] ~@3 [d4,g4,c5] ~@2 [d4,g4,bb4] ~ [d4,g4,bb4] ~",
  G: "[f4,a4,c5]@6 ~ [g4,a4,c5]@6 ~@3", // F Am7
  H: "[f4,bb4,db5]@5 ~ [f4,ab4,db5] [eb4,g4,c5] [db4,f4,bb4]@4 [db4,f4,bb4] ~ [db4,f4,g4] ~", // Bbm Db Cm Bbm Gm7b5
  I: "[a3,c4,d4]@3 [a3,c4,d4] ~@5 [d5,f5]@3 [b4,d5] ~ [d4,f4,g4] ~", J: "[d4,g4,c5]@6 ~ [d4,g4,c5]@9",
  K: "[~@13 c5 d5 f5@4 ~@13]/2",
  L: "[[f4,a4,c5]!2 ~ [f4,a4,c5]@3 ~@3 [f4,a4,c5] ~ [f4,a4,c5] ~ [c4,e4,a4] ~ [db4,f4,bb4]@4 ~ [db4,f4,bb4]@2 ~ [db4,f4,bb4]!4 ~ [db4,f4,bb4] ~ [db4,f4,bb4]!2]/2", // F Am Bbm
  M: "[c4,f4,a4]@2 ~ [c4,f4,a4]!3 ~ [c4,e4,a4]@5 ~@4", // F Am
  N: "~ [bb4,d5] ~ [d5,f5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb3,d4,g4] ~ [bb3,d4,f4] [bb3,d4,g4]!3 [bb3,d4,f4]", // Bb Dm Bb Gm Bb Gm Bb
  O: "[c4,f4,a4]!2 ~ [c4,f4,a4] ~ [c4,f4,bb4] ~ [e4,g4,a4]@5 ~@4", // F Fsus4 A7
  P: "[db4,f4,bb4]!2 ~ [db4,f4,bb4] ~ [f4,bb4,db5] ~ [db4,f4,bb4]@4 ~ [db4,f4,bb4]@2 ~@2", // Bbm
  Q: "[c4,f4,a4]@7 ~@2 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@3", // F G
  R: "[d4,f4,a4]@2 ~ [d4,f4,a4]@4 ~ [d4,f4,a4]@3 [d4,f4,a4]@3 [f4,a4,c5] ~", S: "[f4,a4,d5]@6 ~ [f4,a4,c5]@9",
  T: "[d4,g4,bb4]!2 ~@2 [e4,g4,bb4]!2 ~@2 [d4,f4,a4]!2 ~@2 [d4,f4,a4] ~ [c4,f4,a4] ~", // Gm Edim Dm F
  U: "[c4,d4,f4]@2 ~@2 [c4,d4,g4]@2 ~@2 [d4,f4,a4]@2 ~ [d4,f4,a4]@3 [bb3,d4,f4,a4] ~", // Dm7 Csus2 Dm Bbmaj7
  V: "[d4,f4,a4]@2 [d4,f4,a4]!2 ~@3 [d4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4]!2 ~ d4 f4 g4", // Dm F
  W: "[f4,a4] [e4,g4] [d4,f4] [e4,g4] ~ [f4,a4] ~ [e4,g4] ~ [d4,f4] ~ [a3,c4]@4 ~", // F Em Dm Em F Em Dm Am
  X: "[d4,g4,bb4]@3 [db4,e4,g4,bb4]@4 [c4,d4,f4,a4]@4 ~ [c4,d4,f4,a4]@2 ~@2", // Gm Dbdim Dm7
  Y: "[f4,g4,bb4]@3 [d4,f4,g4,bb4] [f4,g4,bb4]!3 [f4,g4,bb4]@3 ~ [f4,g4,bb4]!4 ~", // Gm7
  Z: "[gb4,ab4,b4]@2 ~ [gb4,ab4,b4]!5 ~ [gb4,ab4,b4] ~ [gb4,ab4,b4]!4 ~", // Abm7
  AA: "[db4,gb4,bb4]@2 ~@2 [db4,gb4,bb4] ~@2 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4]!2 ~ [db4,gb4,bb4] ~", // Gb
  AB: "[d4,gb4,b4] ~@2 [d4,gb4,b4]!2 b4 [d4,gb4] [d4,gb4,a4] ~ [d4,gb4,a4] ~ [d4,gb4,a4] [d4,gb4,b4] ~ [d4,gb4,a4] ~", // Bm D Bm D
  AC: "~@2 [db4,gb4,bb4] ~ [db4,gb4,bb4]@2 ~ [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4]!2 ~ [db4,gb4,bb4] ~", // Gb
  AD: "[d4,gb4,b4]!4 ~ [d4,gb4,b4] ~ [d4,gb4,b4] ~ [d4,gb4,b4] ~ [d4,gb4,b4] [gb4,b4] ~ [d4,gb4,b4] ~", // Bm B5 Bm
  AE: "~@2 [gb4,bb4,db5] ~ [gb4,bb4,db5] ~@2 [gb4,bb4,db5] ~ [gb4,bb4,db5] ~ [gb4,bb4,db5] [bb4,db5] ~ [gb4,bb4,db5] ~", // Gb Bbm Gb
  AF: "[gb4,b4,d5] ~ [gb4,b4,d5] ~ [gb4,b4,d5]@2 ~ [gb4,b4,d5]@5 ~ [gb4,b4,d5]@2 ~", // Bm
  AG: "[gb4,bb4,db5] ~ [gb4,bb4,db5] ~ [gb4,bb4,db5] ~@2 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~ [db4,gb4,bb4]!2 ~ [db4,gb4,bb4] ~", // Gb
  AH: "[d4,gb4,b4] ~@3 [d4,gb4,b4] ~@2 [d4,gb4,b4] ~ [d4,gb4,a4] ~ [d4,gb4,a4]!2 ~ [d4,gb4,b4] ~", // Bm D Bm
  AI: "[d4,gb4,b4]!4 ~ [d4,gb4,b4] ~ [d4,gb4,b4] ~ [d4,gb4,b4] ~ [d4,gb4,b4] ~ [gb4,b4] ~ [d4,gb4,b4]", // Bm B5 Bm
  AJ: "[~ [gb4,bb4,db5]@22 ~@9]/2", // Gb
})).s("gm_electric_guitar_clean").gain(0.17)

// other · xylophone · "Xylo"
const xylophone = note("<~@32 A B ~@2 C B ~@2 D E F G H I J K L M N O P Q R S T ~@17 U B ~@2 C B ~@25>".pickRestart({
  A: "f4 [f4,a4]!4 [e4,g4] [d4,f4] f4 [f4,a4]!5 d4 f4 g4", // F Em Dm F
  B: "[f4,a4] [e4,g4] [d4,f4] [e4,g4] ~ [f4,a4] ~ [e4,g4] ~ [d4,f4] ~ [a3,c4]!5", // F Em Dm Em F Em Dm Am
  C: "[f4,a4] [g4,bb4] [f4,a4]@3 [e4,g4] [d4,f4] f4 [f4,a4]!5 d4 f4 g4", D: "~@4 d4 f4 ~ g4 a4 bb4 ~ c5 d5@2 f4 d4",
  E: "f5 c5 ~ c5@2 c5@2 c5 ~@8", F: "~@4 c5 db5 c5 bb4 ~ c5 bb4 ~ f4!4",
  G: "a4@2 ~ f5!3 ~ a4 ab4 g4 ~ e5@2 g4 ~ gb4, g4 ~@15", H: "f4 ~ f4 ~ f4 ~ f4 ~ bb4 ~ c5 ~ db5 c5 bb4 a4",
  I: "c5@2 a4 c4 ~ c4 c4@2 ~ c4 d4 [f4,g4] f4 g4 c5 ~", J: "db5 ~ db5 c5 bb4@2 c5 db5@2 a5 ~ c6 a5 c6 ~ g5",
  K: "[ab5,a5] c5@2 c5@2 c5 d5 c5 ~@8", L: "bb5 a5 bb5 a5 g5@3 g5 [ab5,a5] c5@2 c5!2 ~ d5@2",
  M: "f5 ~ g5 ~ f5 ~ d6 ab5 ~@2 c5 ~ d5 ~ f5 ~", N: "~ g5 ab5 [f5,g5] g5 c5 f5 bb5 a5 f5 eb5 c5 bb4 ab4 f4 eb4",
  O: "c4 ~ f4 ~ g4 ~@2 g4 [ab4,a4] c5!2 ~ c5 ~@2 g4", P: "[ab4,a4] c4 ~@2 c4 ~ c4 ~ c4 f4 ~ g4 a4 c5 ~ db5",
  Q: "d5@2 c5 a4 g4@2 f4 g4@2 f4@3 f4 ~ f4 ~", R: "~@2 bb5 a5 bb5 a5 g5 a5 [g5,ab5] ~ g5 f5 g5 ~ f5 ~",
  S: "~@2 d5 ~ d5@2 d5 f5@2 g5@2 g5 [ab5,a5] c6!2 a5", T: "c6@2 a5 c6@2 a5@2 c6@2 c6@2 a5 c6!2 a5 ~",
  U: "[f4,a4] [g4,bb4] [f4,a4] f4 [f4,a4] [e4,g4] [d4,f4] f4 [f4,a4]!5 ~@2 f4", // F Gm F Em Dm F
})).s("gm_xylophone").gain(0.4)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@83 A B C D A D E D A B C D A D E D A B C D F@2>".pickRestart({
  A: "bb5@3 db6", B: "b5@7 gb5@9", C: "bb5@9 db6@6 ~", D: "gb5", E: "bb5", F: "[~ ab5@23 ~@8]/2",
})).s("gm_string_ensemble_1").gain(0.4)

// other · marimba
const marimba = note("<A B A C A D A E F G F G F G F G ~@67 H I H I H I J K L K L K L K L K L K L M N O>".pickRestart({
  A: "f5 c5 ~ c5 ~ c5 ~ c5 ~@8", B: "~@3 c5!13", C: "~@3 c5!6 ~@2 c5!5", D: "~ c5 ~ c5!11 ~@2", E: "c5!5 ~@11",
  F: "f4 [f4,a4]!7 a4 [a4,c5]!7", G: "[f4,a4] [f4,bb4]!14 ~", H: "gb4 [gb4,bb4]!7 bb4 [bb4,db5]!7",
  I: "[gb4,bb4] [gb4,b4]!14 ~", J: "gb4 [gb4,bb4]!7 [bb4,db5]!6 bb4 [bb4,db5]", K: "[gb4,b4]!14 gb4 ~",
  L: "[gb4,bb4]!8 [bb4,db5]!6 bb4 [bb4,db5]", M: "[gb4,b4] gb4 [gb4,b4]!10 b4 [gb4,b4]!2 gb4", N: "~ gb4 [gb4,bb4]!14",
  O: "[gb4,bb4]!8 ~@8", // Gb
})).s("gm_marimba").gain(0.4)

// drums · kick
const kick = s("bd").struct("<A@38 B C@2 A@39 B C@2 A@19 D E ~>".pickRestart({
  A: "x ~@3 x ~@2 x ~@3 x!2 ~@2 x", B: "x ~@2 x ~@3 x ~@3 x ~@4", C: "x ~@2 x ~@3 x ~@3 x!2 ~@2 x",
  D: "x ~@3 x ~@2 x ~@3 x ~ x ~@2", E: "x!2 ~@14",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<A@23 B A@14 C D E A@7 F A@7 G A@6 H I J A@14 C D E A@19 K L ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x ~ x ~@2 x!3 ~", C: "x ~@2 x ~@2 x!3 ~@3 x ~ x!2", D: "x!2 ~ x",
  E: "~ x ~ x!3 ~ x ~ x ~@6", F: "~@4 x ~@4 x ~ x!2 ~ x!2", G: "~@4 x ~@4 x ~ x ~@4", H: "~@4 x ~@3 x!5 ~ x!2",
  I: "~@4 x ~@2 x!3 ~ x!2 ~ x ~", J: "x ~ x!3 ~ x ~ x!2 ~ x!2 ~@3", K: "~@4 x ~@8 x ~@2", L: "~ x ~@14",
})).gain(0.4)

// … 54 more lines

More by Spyro Gyra