Strudelify

happy

Yaume

KeyA♭ majorTempo164 bpm
0:00/0:00
// happy — Yaume
// 164 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6083718; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 192 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(164/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.

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  ~ A B C D ~@2 E@2 F ~ G H ~@2 I J ~@2 K L M@2 N O P Q R S P Q T U P Q R S P Q V W X Y Z@2 ~@3 AA AB@2 ~@2 F ~ AC AD AE
  AF AG ~ AH@2 AI AJ AK AL AM ~ AN AO AP W AQ AR AQ AS AQ AR AQ AT AU@4 AV@3 AW ~ AX@2 AY@2 AX@2 AY@2 AZ@2 AY@2 AZ@2
  AY@2 ~@23 BA BB@3 BA BC@3 ~@4 BD BE BF BG BH BI ~@2 BJ BK@2 BL ~@4 BD BE BF BG BH BI ~@2 BJ BK@2 BL ~@16 BH BI ~@2 BJ
  BM@2
>`.pickRestart({
  A: "~@2 g4 f4 g4 c5 a4 ~@3 b4@3 ~@3", B: "~@2 a4 g4 a4 e5 db5 ~@3 eb5@3 ~@3",
  C: "~@2 e5 d5 e5 a5 gb5 ~@3 gb5 e5 gb5 b5 ab5 ~", D: "~@2 e5@2 gb5@2 ab5@2 a5 ~@2 c5 db5 eb5 f5 g5",
  E: "[~@2 c5@4 b4@4 c5@4 db5@4 d5@4 eb5@6 db5 d5 eb5 e5]/2", F: "f5 ~@7", G: "~@2 bb4 ab4 ~ c5 db5 ~",
  H: "eb4 e4 ~ bb4 ~ f4 ~@2", I: "~ ab5!3 ~ f5 ~ eb5", J: "~@2 eb5@2 f5@2 ab5@2 ~@2 ab5 g5 ab5 g5 ab5 ~",
  K: "~ c5 eb5 f5 ~ eb5 f5 ab5", L: "~ f5 ab5 b5 bb5 ab5 f5 eb5", M: "[eb5@4 c5@3 bb4@4 ab4@5]/2",
  N: "~ eb5 c5 ~ bb4 ab4 ~ eb5", O: "~@3 f5 ~@4", P: "~@2 f5 ~@5", Q: "~ c5 bb4 ab4 ~@4", R: "~@3 c5 eb5 c5 f5 ~",
  S: "~ bb4 c5 eb5 f5 ab5 f5 ~", T: "~ c5 eb5 c5 f5 ~@2 e5", U: "~ f5 ~@3 f5 gb5 ~", V: "~ c5 eb5 c5 f5 ~@3",
  W: "~@3 e5 ~ f5 ~@2", X: "~ gb5 ~@3 f5 ~@2", Y: "~ e5 ~@3 eb5 ~@2", Z: "[~@5 e5@2 gb5@2 g5@2 a5@2 ab5@2 g5]/2",
  AA: "~ eb5@2 f5@2 ab5@2 bb5", AB: "[~@3 bb4 c5 eb5 ab5 b5@2 bb5 f5 ab5@3 ~@2]/2",
  AC: "~@2 bb4 ~ c5 ~ eb5 ~@3 c5 ~ eb5 ~ f5 ~", AD: "~@2 b5 ~ bb5 ~ ab5 ~@9", AE: "~@4 b4 bb4 ab4 f4",
  AF: "~ f4 ab4@2 ~@4", AG: "~@6 bb4 ~ c5@2 eb5 ~ bb5@2 ab5@2", AH: "[~ f5 eb5 c5 bb4@2 ab4 f4@2 f4@2 ab4@2 f4 ~@2]/2",
  AI: "~@6 bb4 ~ c5@2 eb5 ~@3 e5 ~", AJ: "~@2 f5 ~@7 f5@2 gb5@2 ~@2", AK: "~ ab5 f5 eb5 f5 eb5 c5 eb5",
  AL: "~ eb5 c5 bb4@3 ~@2", AM: "~@3 eb5 ~ c5 f5 ~", AN: "~@4 f5 eb5 c5 eb5", AO: "~ f5 ~ bb4 ~ f5!2 eb5",
  AP: "~@4 c5!2 bb4 ~", AQ: "eb5 f5 ~@2 eb5 f5 ~@2", AR: "eb5 f5 ~ f5 ~ gb5 ~@2",
  AS: "~@2 eb4 ~ f4@2 ab4@2 bb4@2 c5 ~ e5@2 f5@2", AT: "eb5 f5 ~ bb5 ~ ab5@3",
  AU: "[~@5 f4 ~ ab4@7 f4 bb4@7 c5 ab4@9]/4", AV: "[~@5 f4 ~ ab4@7 f4 bb4@7 c5 ab4]/3", AW: "~@3 gb5 ~ e5 ~@2",
  AX: "[~@5 bb4 ~ db5@5 ~@4]/2", AY: "[~@5 bb4 ~ ab4@5 ~@4]/2", AZ: "[~@10 ab4@2 bb4 ~ db5@10 ~@8]/2",
  BA: "~@5 eb5 db5 b4", BB: "[bb4 ab4 gb4 gb4@4 f4@5 ~@2 gb4 eb4@7 ~@2]/3", BC: "[bb4 ab4 gb4 eb4@4 f4@7 gb4 d4@9]/3",
  BD: "~@5 eb4 f4 ab4", BE: "~ f4 bb4@6", BF: "~@5 f5 eb5 b4", BG: "~ ab4 bb4 db5 ~ d5 ~@2", BH: "~ f5 ~@2",
  BI: "~@2 d5 c5 ~ bb4 ab4 ~", BJ: "~@4 c5!2 ~ c5", BK: "[~ bb4@3 ~ eb4 f4 ab4@3 ~@3 c5 ~ bb4]/2", BL: "~ eb5!3 ~@4",
  BM: "[~ bb4@3 ~ eb4 f4 ab4@9]/2",
})).s("gm_trumpet").gain(0.46).pan(0.7)

// other · trumpet · "Bb Trumpet"
const trumpet_2 = note(`<
  ~ A B C D ~@2 E@2 F ~ G H ~@2 I J ~@2 K L M@2 N O P Q R S P Q T U P Q R S P Q V W X Y Z@2 ~@3 AA AB@2 ~@2 AC ~ AD AE
  AF AG AH ~ AI@2 AJ AK AL AM AN ~ AO AP AQ W AR AS AR AT AR AS AR AU AV@4 AW@3 AX ~ AY@2 AZ@2 AY@2 AZ@2 BA@2 AZ@2 BA@2
  AZ@2 ~@35 BB BC BD BE BF BG ~@2 BH BI@2 BJ ~@4 BB BC BD BE BF BG ~@2 BH BI@2 BJ ~@16 BF BG ~@2 BH BK@2
>`.pickRestart({
  A: "~@2 g4 f4 g4 c5 a4 ~@3 b4@3 ~@3", B: "~@2 a4 g4 a4 e5 db5 ~@3 eb5@3 ~@3",
  C: "~@2 e5 d5 e5 a5 gb5 ~@3 gb5 e5 gb5 b5 ab5 ~", D: "~@2 e5@2 gb5@2 ab5@2 a5 ~@2 c5 db5 eb5 f5 g5",
  E: "[~@2 c5@4 b4@4 c5@4 db5@4 d5@4 eb5@6 db5 d5 eb5 e5]/2", F: "c5 ~@7", G: "~@2 f4 eb4 ~ g4 ab4 ~",
  H: "bb3 b3 ~ f4 ~ c4 ~@2", I: "~ eb5!3 ~ c5 ~ bb4", J: "~@2 bb4@2 c5@2 eb5@2 ~@2 eb5 d5 eb5 d5 eb5 ~",
  K: "~ c5 eb5 f5 ~ eb5 f5 ab5", L: "~ f5 ab5 b5 bb5 ab5 f5 eb5", M: "[bb4@4 f4@3 f4@4 c4@5]/2",
  N: "~ eb5 c5 ~ bb4 ab4 ~ eb5", O: "~@3 f5 ~@4", P: "~@2 f5 ~@5", Q: "~ c5 bb4 ab4 ~@4", R: "~@3 c5 eb5 c5 f5 ~",
  S: "~ bb4 c5 eb5 f5 ab5 f5 ~", T: "~ c5 eb5 c5 f5 ~@2 c5", U: "~ eb5 ~@3 c5 eb5 ~", V: "~ c5 eb5 c5 f5 ~@3",
  W: "~@3 c5 ~ eb5 ~@2", X: "~ db5 ~@3 c5 ~@2", Y: "~ b4 ~@3 bb4 ~@2", Z: "[~@5 b4@2 db5@2 d5@2 e5@2 eb5@2 d5]/2",
  AA: "~ eb5@2 f5@2 ab5@2 bb5", AB: "[~@3 bb4 c5 eb5 ab5 b5@2 bb5 f5 ab5@3 ~@2]/2", AC: "f5 ~@7",
  AD: "~@2 bb4 ~ c5 ~ eb5 ~@3 c5 ~ eb5 ~ f5 ~", AE: "~@2 b5 ~ bb5 ~ ab5 ~@9", AF: "~@4 b4 bb4 ab4 f4",
  AG: "~ f4 ab4@2 ~@4", AH: "~@6 bb4 ~ c5@2 eb5 ~ bb5@2 ab5@2", AI: "[~ f5 eb5 c5 bb4@2 ab4 f4@2 f4@2 ab4@2 f4 ~@2]/2",
  AJ: "~@6 bb4 ~ c5@2 eb5 ~@3 e5 ~", AK: "~@2 f5 ~@7 f5@2 gb5@2 ~@2", AL: "~ ab5 f5 eb5 f5 eb5 c5 eb5",
  AM: "~ eb5 c5 bb4@3 ~@2", AN: "~@3 eb5 ~ c5 f5 ~", AO: "~@4 f5 eb5 c5 eb5", AP: "~ f5 ~ bb4 ~ f5!2 eb5",
  AQ: "~@4 c5!2 bb4 ~", AR: "eb5 f5 ~@2 eb5 f5 ~@2", AS: "eb5 f5 ~ bb4 ~ c5 ~@2",
  AT: "~@2 eb4 ~ f4@2 ab4@2 bb4@2 bb4 ~ b4@2 c5@2", AU: "eb5 f5 ~ f5 ~ eb5@3",
  AV: "[~@5 f4 ~ ab4@7 f4 bb4@7 c5 ab4@9]/4", AW: "[~@5 f4 ~ ab4@7 f4 bb4@7 c5 ab4]/3", AX: "~@3 gb5 ~ e5 ~@2",
  AY: "[~@5 bb4 ~ db5@5 ~@4]/2", AZ: "[~@5 bb4 ~ ab4@5 ~@4]/2", BA: "[~@10 ab4@2 bb4 ~ db5@10 ~@8]/2",
  BB: "~@5 eb4 f4 ab4", BC: "~ f4 bb4@6", BD: "~@5 f5 eb5 b4", BE: "~ ab4 bb4 ab4 ~ bb4 ~@2", BF: "~ f5 ~@2",
  BG: "~@2 bb4 ab4 ~ g4 f4 ~", BH: "~@4 c5!2 ~ c5", BI: "[~ bb4@3 ~ eb4 f4 eb4@3 ~@3 f4 ~ ab4]/2", BJ: "~ bb4!3 ~@4",
  BK: "[~ bb4@3 ~ eb4 f4 eb4@9]/2",
})).s("gm_trumpet").gain(0.44).pan(0.2)

// other · trombone
const trombone = note(`<
  ~ A B ~ C ~@2 D@2 E ~ F G ~@2 H I ~@2 J K L@2 M N O P Q R O P S T O P Q R O P U V W X Y@2 ~@3 Z AA@2 ~@2 E ~ AB AC AD
  AE AF ~ AG@2 AH AI AJ AK AL ~ AM AN AO AP AQ AR AQ AS AQ AR AQ AT AU@4 AV@3 AW ~ AX@2 AY@2 AX@2 AY@2 AZ@2 AY@2 AZ@2
  AY@2 ~@35 BA BB BC BD BE BF ~@2 BG BH@2 BI ~@4 BA BB BC BD BE BF ~@2 BG BH@2 BI ~@16 BE BF ~@2 BG BJ@2
>`.pickRestart({
  A: "~@5 b3@3", B: "~@5 eb4@3", C: "~ e4 gb4 ab4 a4@2 ~@2", D: "[~ gb3@2 f3@2 e3@2 eb3@2 d3@2 c3@5]/2", E: "f4 ~@7",
  F: "~@2 bb3 ab3 ~ c4 db4 ~", G: "eb3 e3 ~ bb3 ~ f3 ~@2", H: "~ ab4!3 ~ f4 ~ eb4",
  I: "~@2 eb4@2 f4@2 ab4@2 ~@2 ab4 g4 ab4 g4 ab4 ~", J: "~ c4 eb4 f4 ~ eb4 f4 ab4", K: "~ f4 ab4 b4 bb4 ab4 f4 eb4",
  L: "[f4@4 eb4@3 db4@4 bb3@5]/2", M: "~ eb4 c4 ~ bb3 ab3 ~ eb4", N: "~@3 f4 ~@4", O: "~@2 f4 ~@5",
  P: "~ c4 bb3 ab3 ~@4", Q: "~@3 c4 eb4 c4 f4 ~", R: "~ bb3 c4 eb4 f4 ab4 f4 ~", S: "~ c4 eb4 c4 f4 ~@2 e4",
  T: "~ f4 ~@3 f4 gb4 ~", U: "~ c4 eb4 c4 f4 ~@3", V: "~@3 e4 ~ f4 ~@2", W: "~ a4 ~@3 ab4 ~@2", X: "~ g4 ~@3 gb4 ~@2",
  Y: "[~@5 ab4@2 bb4@2 c5@2 db5@2 c5@2 b4]/2", Z: "~ eb4@2 f4@2 ab4@2 bb4",
  AA: "[~@3 bb3 c4 eb4 ab4 b4@2 bb4 f4 ab4@3 ~@2]/2", AB: "~@2 bb3 ~ c4 ~ eb4 ~@3 c4 ~ eb4 ~ f4 ~",
  AC: "~@2 b4 ~ bb4 ~ ab4 ~@9", AD: "~@4 b3 bb3 ab3 f3", AE: "~ f3 ab3@2 ~@4", AF: "~@6 bb3 ~ c4@2 eb4 ~ bb4@2 ab4@2",
  AG: "[~ f4 eb4 c4 bb3@2 ab3 f3@2 f3@2 ab3@2 f3 ~@2]/2", AH: "~@6 bb3 ~ c4@2 eb4 ~@3 ab4 ~",
  AI: "~@2 bb4 ~@7 bb4@2 b4@2 ~@2", AJ: "~ ab4 f4 eb4 f4 eb4 c4 eb4", AK: "~ eb4 c4 bb3@3 ~@2", AL: "~@3 eb4 ~ c4 f4 ~",
  AM: "~@4 f4 eb4 c4 eb4", AN: "~ f4 ~ bb3 ~ f4!2 eb4", AO: "~@4 c4!2 bb3 ~", AP: "~@3 bb3 ~ c4 ~@2",
  AQ: "eb4 f4 ~@2 eb4 f4 ~@2", AR: "eb4 f4 ~ bb3 ~ c4 ~@2", AS: "~@2 eb3 ~ f3@2 ab3@2 bb3@2 bb3 ~ b3@2 c4@2",
  AT: "eb4 f4 ~ f4 ~ eb4@3", AU: "[~@5 f3 ~ ab3@7 f3 bb3@7 c4 ab3@9]/4", AV: "[~@5 f3 ~ ab3@7 f3 bb3@7 c4 ab3]/3",
  AW: "~@3 gb4 ~ e4 ~@2", AX: "[~@5 bb3 ~ db4@5 ~@4]/2", AY: "[~@5 bb3 ~ ab3@5 ~@4]/2",
  AZ: "[~@10 ab3@2 bb3 ~ db4@10 ~@8]/2", BA: "~@5 eb3 f3 ab3", BB: "~ f3 bb3@6", BC: "~@5 f4 eb4 b3",
  BD: "~ ab3 bb3 db4 ~ d4 ~@2", BE: "~ f4 ~@2", BF: "~@2 bb3 ab3 ~ g3 f3 ~", BG: "~@4 c4!2 ~ c4",
  BH: "[~ bb3@3 ~ eb3 f3 eb3@3 ~@3 f3 ~ ab3]/2", BI: "~ bb3!3 ~@4", BJ: "[~ bb3@3 ~ eb3 f3 eb3@9]/2",
})).s("gm_trombone").gain(0.23).pan(0.3)

// other · alto sax · "Saxophone Alto"
const alto_sax = note(`<
  ~ A B C D ~@2 E@2 F ~ G H ~@2 I J ~@2 K L M@2 N O P Q R S P Q T U P Q R S P Q V W X Y Z@2 ~@3 AA AB@2 ~@2 AC ~ AD AE
  AF AG AH ~ AI@2 AJ AK AL AM AN ~ AO AP AQ AR AS AT AS AU AS AT AS AV AW@4 AX@3 AY AZ BA@2 BB@2 BA@2 BC AZ BA@2 BB@2
  BA@2 BC BD ~@23 BE@4 BF@4 ~@4 BG BH BI BJ BK BL ~@2 BM BN@2 BO ~@4 BG BH BI BJ BK BL ~@2 BM BN@2 BO ~@16 BK BL ~@2 BM
  BP@2
>`.pickRestart({
  A: "~@2 g4 f4 g4 c5 a4 ~@3 b4@3 ~@3", B: "~@2 a4 g4 a4 e5 db5 ~@3 eb5@3 ~@3",
  C: "~@2 e5 d5 e5 a5 gb5 ~@3 gb5 e5 gb5 b5 ab5 ~", D: "~@2 e5@2 gb5@2 ab5@2 a5 ~@2 c5 db5 eb5 f5 g5",
  E: "[~@2 c5@4 b4@4 c5@4 db5@4 d5@4 eb5@6 db5 d5 eb5 e5]/2", F: "eb5 ~@7", G: "~@2 g4 f4 ~ ab4 bb4 ~",
  H: "c4 db4 ~ g4 ~ f4 ~@2", I: "~ c5!3 ~ ab4 ~ eb4", J: "~@2 f4@2 ab4@2 c5@2 ~@2 c5 b4 c5 b4 c5 ~",
  K: "~ c5 eb5 f5 ~ eb5 f5 ab5", L: "~ f5 ab5 b5 bb5 ab5 f5 eb5", M: "[c5@4 ab4@3 g4@4 e4@5]/2",
  N: "~ eb5 c5 ~ bb4 ab4 ~ eb5", O: "~@3 f5 ~@4", P: "~@2 f5 ~@5", Q: "~ c5 bb4 ab4 ~@4", R: "~@3 c5 eb5 c5 f5 ~",
  S: "~ bb4 c5 eb5 f5 ab5 f5 ~", T: "~ c5 eb5 c5 f5 ~@2 bb4", U: "~ c5 ~@3 bb4 ab4 ~", V: "~ c5 eb5 c5 f5 ~@3",
  W: "~@3 bb4 ~ c5 ~@2", X: "~ gb5 ~@3 f5 ~@2", Y: "~ e5 ~@3 eb5 ~@2", Z: "[~@5 e5@2 gb5@2 g5@2 a5@2 ab5@2 g5]/2",
  AA: "~ eb5@2 f5@2 ab5@2 bb5", AB: "[~@3 bb4 c5 eb5 ab5 b5@2 bb5 f5 ab5@3 ~@2]/2", AC: "f5 ~@7",
  AD: "~@2 bb4 ~ c5 ~ eb5 ~@3 c5 ~ eb5 ~ f5 ~", AE: "~@2 b5 ~ bb5 ~ ab5 ~@9", AF: "~@4 b4 bb4 ab4 f4",
  AG: "~ f4 ab4@2 ~@4", AH: "~@6 bb4 ~ c5@2 eb5 ~ bb5@2 ab5@2", AI: "[~ f5 eb5 c5 bb4@2 ab4 f4@2 f4@2 ab4@2 f4 ~@2]/2",
  AJ: "~@6 bb4 ~ c5@2 eb5 ~@3 e5 ~", AK: "~@2 f5 ~@7 f5@2 gb5@2 ~@2", AL: "~ ab5 f5 eb5 f5 eb5 c5 eb5",
  AM: "~ eb5 c5 bb4@3 ~@2", AN: "~@3 eb5 ~ c5 f5 ~", AO: "~@4 f5 eb5 c5 eb5", AP: "~ f5 ~ bb4 ~ f5!2 eb5",
  AQ: "~@4 c5!2 bb4 ~", AR: "~@3 e5 ~ f5 ~@2", AS: "eb5 f5 ~@2 eb5 f5 ~@2", AT: "eb5 f5 ~ f5 ~ gb5 ~@2",
  AU: "~@2 eb4 ~ f4@2 ab4@2 bb4@2 c5 ~ e5@2 f5@2", AV: "eb5 f5 ~ bb4 ~ c5@3",
  AW: "[~@5 f4 ~ ab4@7 f4 bb4@7 c5 ab4@9]/4", AX: "[~@5 f4 ~ ab4@7 f4 bb4@7 c5 ab4]/3",
  AY: "~ bb4 b4 c5 db5 eb5 gb5@2 ~@2 e5@2 ~@4", AZ: "~ f5 eb5 db5@3 bb4 ~",
  BA: "[db5 eb5 f5!2 ~ f5 eb5 db5@3 bb4 ~ db5 ~ db5 ~]/2", BB: "[~ eb5 bb4!2 ~ f5 eb5 db5@3 bb4 ~ db5@2 bb4 ~]/2",
  BC: "~ eb5 bb4 bb4@3 ab4 ~", BD: "ab4 ~", BE: "[~ eb5 db5 b4 bb4 ab4 gb4 f4@4 gb4@4 ab4@5 ~@2 bb4 gb4@7 ~@2]/4",
  BF: "[~ eb5 db5 b4 bb4 ab4 gb4 f4@3 bb4 gb4@3 ~ ab4@7 bb4 f4@9]/4", BG: "~@5 eb4 f4 ab4", BH: "~ f4 bb4@6",
  BI: "~@5 f5 eb5 b4", BJ: "~ ab4 bb4 db5 ~ d5 ~@2", BK: "~ f5 ~@2", BL: "~@2 d5 c5 ~ bb4 ab4 ~", BM: "~@4 c5!2 ~ c5",
  BN: "[~ bb4@3 ~ eb4 f4 ab4@3 ~@3 c5 ~ bb4]/2", BO: "~ eb5!3 ~@4", BP: "[~ bb4@3 ~ eb4 f4 ab4@9]/2",
})).s("gm_alto_sax").gain(0.4)

// other · baritone sax · "Saxophone Baryton"
const baritone_sax = note(`<
  ~ A B ~ C ~@2 D@2 E ~ F G ~@2 H I ~@2 J K L@2 M N O P Q R O P S T O P Q R O P U V W X Y@2 ~@3 Z AA@2 ~@2 E ~ AB AC AD
  AE AF ~ AG@2 AH AI AJ AK AL ~ AM AN AO AP AQ AR AQ AS AQ AR AQ AT AU@4 AV@3 AW ~ AX@2 AY@2 AX@2 AY@2 AZ@2 AY@2 AZ@2
  AY@2 ~@35 BA BB BC BD BE BF ~@2 BG BH@2 BI ~@4 BA BB BC BD BE BF ~@2 BG BH@2 BI ~@16 BE BF ~@2 BG BJ@2
>`.pickRestart({
  A: "~@5 b3@3", B: "~@5 eb4@3", C: "~ e4 gb4 ab4 a4@2 ~@2", D: "[~@2 gb3@4 f3@4 e3@4 eb3@4 d3@4 c3@6 db4 d4 eb4 e4]/2",
  E: "f4 ~@7", F: "~@2 bb3 ab3 ~ c4 db4 ~", G: "eb3 e3 ~ bb3 ~ f3 ~@2", H: "~ ab3!3 ~ f3 ~ eb3",
  I: "~@2 eb3@2 f3@2 ab3@2 ~@2 ab3 g3 ab3 g3 ab3 ~", J: "~ c4 eb4 f4 ~ eb4 f4 ab4", K: "~ f4 ab4 b4 bb4 ab4 f4 eb4",
  L: "[ab3@4 eb3@3 db3@4 c3@5]/2", M: "~ eb4 c4 ~ bb3 ab3 ~ eb4", N: "~@3 f4 ~@4", O: "~@2 f4 ~@5",
  P: "~ c4 bb3 ab3 ~@4", Q: "~@3 c4 eb4 c4 f4 ~", R: "~ bb3 c4 eb4 f4 ab4 f4 ~", S: "~ c4 eb4 c4 f4 ~@2 e4",
  T: "~ f4 ~@3 f4 gb4 ~", U: "~ c4 eb4 c4 f4 ~@3", V: "~@3 e4 ~ f4 ~@2", W: "~ e3 ~@3 eb3 ~@2", X: "~ d3 ~@3 db3 ~@2",
  Y: "[~@5 db3@2 eb3@2 e3@2 gb3@2 f3@2 g3]/2", Z: "~ eb4@2 f4@2 ab4@2 bb4",
  AA: "[~@3 bb3 c4 eb4 ab4 b4@2 bb4 f4 ab4@3 ~@2]/2", AB: "~@2 bb3 ~ c4 ~ eb4 ~@3 c4 ~ eb4 ~ f4 ~",
  AC: "~@2 b4 ~ bb4 ~ ab4 ~@9", AD: "~@4 b3 bb3 ab3 f3", AE: "~ f3 ab3@2 ~@4", AF: "~@6 bb3 ~ c4@2 eb4 ~ bb4@2 ab4@2",
  AG: "[~ f4 eb4 c4 bb3@2 ab3 f3@2 f3@2 ab3@2 f3 ~@2]/2", AH: "~@6 bb3 ~ c4@2 eb4 ~@3 e4 ~",
  AI: "~@2 f4 ~@7 f4@2 gb4@2 ~@2", AJ: "~ ab4 f4 eb4 f4 eb4 c4 eb4", AK: "~ eb4 c4 bb3@3 ~@2", AL: "~@3 eb4 ~ c4 f4 ~",
  AM: "~@4 f4 eb4 c4 eb4", AN: "~ f4 ~ bb3 ~ f4!2 eb4", AO: "~@4 c4!2 bb3 ~", AP: "~@3 ab3 ~ bb3 ~@2",
  AQ: "eb4 f4 ~@2 eb4 f4 ~@2", AR: "eb4 f4 ~ bb3 ~ c4 ~@2", AS: "~@2 eb3 ~ f3@2 ab3@2 bb3@2 c4 ~ e4@2 f4@2",
  AT: "eb4 f4 ~ f3 ~ eb3@3", AU: "[~@5 f3 ~ ab3@7 f3 bb3@7 c4 ab3@9]/4", AV: "[~@5 f3 ~ ab3@7 f3 bb3@7 c4 ab3]/3",
  AW: "~@3 gb4 ~ e4 ~@2", AX: "[~@5 bb3 ~ db4@5 ~@4]/2", AY: "[~@5 bb3 ~ ab3@5 ~@4]/2",
  AZ: "[~@10 ab3@2 bb3 ~ db4@10 ~@8]/2", BA: "~@5 eb3 f3 ab3", BB: "~ f3 bb3@6", BC: "~@5 f4 eb4 b3",
  BD: "~ ab3 bb3 db4 ~ d4 ~@2", BE: "~ f4 ~@2", BF: "~@2 d4 c4 ~ bb3 ab3 ~", BG: "~@4 c4!2 ~ c4",
  BH: "[~ bb3@3 ~ eb3 f3 ab3@3 ~@3 c4 ~ bb3]/2", BI: "~ eb4!3 ~@4", BJ: "[~ bb3@3 ~ eb3 f3 ab3@9]/2",
})).s("gm_baritone_sax").gain(0.4)

// chords · electric guitar clean · "Guitare électrique"
const electric_guitar_clean = note(`<
  A B C D E F G H@2 I ~ J K L M L M L M L M N@2 O P Q@2 R S T@2 U V Q@2 R S T@2 W X Y Z AA@2 L M I AB AC@2 ~@2 L M L ~
  Q@2 R S T@2 U V Q@2 R S T@2 W X AD AE AD AF AD AE AD AG AH AI AJ AK AH AI AJ AL AM AN AO AP AM AN AO AP AM AN AO AP AM
  AN AO AP AM AN AO AP AM AN AO AP AM AN AO AP AM AN AO AP ~@16 AQ@4 AR@2 AS@2 AQ@4 AR@2 AS@2 AQ@4 AR@2 AS@2 AQ@4 AR@2
  AS@2 AQ@4 AR@2 AS@2 AQ@4 AR@2 AS@2 AQ@4 ~ AT@2
>`.pickRestart({
  A: "~@10 c4 db4 eb4 e4 gb4 ab4", B: "a4 b4", C: "db5 eb5", D: "e5 gb5", E: "ab5 a5",
  F: "~@2 g3 f3 g3 c4 a3 ~@3 [db3,gb3,b3]@6", G: "~@2 e3 d3 e3 a3 gb3 ~@3 [d3,g3,a3]@6",
  H: "[~ c4@2 b3@2 c4@2 db4@2 d4@2 eb4@5]/2", I: "[f3,bb3,eb4,ab4,c5] ~@7",
  J: "[f3,bb3,eb4,ab4,c5] ~@3 [f3,bb3,eb4,ab4,c5] ~@2 [db4,e4,a4,c5]", K: "~@4 [f3,bb3,eb4,ab4,c5] ~@3",
  L: "[f3,bb3,eb4,ab4,c5] ~@3 [g3,c4,f4,bb4,d5] ~@2 [ab3,db4,gb4,b4,eb5]", // Fm7 Gm7 Abm7
  M: "~@3 [ab3,db4,gb4,b4,eb5] ~ [f3,bb3,eb4,ab4,c5] ~@2", // Abm7 Fm7
  N: "[[f4,bb4,c5,eb5]@4 [eb4,f4,ab4,c5]@3 [db4,f4,g4,bb4]@4 [bb3,c4,e4,ab4]@5]/2", // Fsus4 Fm7 Gm7b5 Caug
  O: "[eb4,ab4,c5] ~@3 [f4,bb4,d5] ~@2 [ab4,c5,eb5]", P: "~@3 [f4,bb4,eb5] ~ [f4,ab4,d5]@3", Q: "[c4,f4,ab4]/2",
  R: "[eb4,g4,bb4]@7 [c4,f4,a4]", S: "~ bb3 c4 eb4 f4 ab4 f4 ~", T: "[~@7 db4@9, [c4,f4,ab4], eb4 ~]/2",
  U: "[eb4,g4,bb4]@7 [a3,e4]", V: "~ [bb3,f4] ~@3 [bb3,f4] [b3,gb4] ~", W: "[eb4,g4,bb4]",
  X: "~@3 [a3,e4] ~ [bb3,f4] ~@2", Y: "~ [a4,db5,gb5] ~@3 [ab4,c5,f5] ~@2", Z: "~ [g4,b4,e5] ~@3 [gb4,bb4,eb5] ~@2",
  AA: "[~@2 bb4 b4 bb4 ab4 f4 eb4 c4 ~ [ab4,b4,e5]@4 [bb4,db5,gb5]@4 [c5,d5,g5]@4 [db5,e5,a5]@4 [c5,eb5,ab5]@4 [b4,d5,g5]@2]/2", // E Gb Csus2 A Ab G
  AB: "~ eb4@2 f4@2 ab4@2 bb4", AC: "[~ [bb3,eb4,ab4]@6 [ab3,db4,gb4]@9]/2",
  AD: "[eb4,ab4,c5] [f4,bb4,eb5] ~@2 [eb4,ab4,c5] [f4,bb4,eb5] ~@2", // Ab Ebsus2 Ab Ebsus2
  AE: "[eb4,ab4,c5] [f4,bb4,eb5] ~ [ab4,c5,eb5] ~ [a4,db5,f5] ~@2", AF: "~@12 [eb4,ab4,c5]@2 [f4,bb4,eb5] ~",
  AG: "[eb4,ab4,c5] [f4,bb4,eb5] ~ [f4,bb4,eb5] ~ [eb4,ab4,c5]@3", AH: "[ab3,c4,eb4,f4]", AI: "[ab3,bb3,db4,f4]",
  AJ: "[g3,ab3,c4,eb4]", AK: "[ab3,db4,eb4,f4]", AL: "~ bb3 b3 c4 db4 eb4 [ab3,db4,gb4]@2 ~@2 [gb3,b3,e4]@2 ~@4",
  AM: "[eb3,ab3,db4,f4] ~@4 [eb3,ab3,db4,f4] ~@2", AN: "~ [eb3,ab3,db4,f4] ~@3 [e3,a3,d4,gb4] ~@2",
  AO: "[eb3,ab3,db4,f4]@2 ~@2 [eb3,ab3,db4,f4] ~ [eb3,ab3,db4,f4] ~", AP: "~ [eb3,ab3,db4,f4] ~@3 [db3,gb3,b3,eb4] ~@2",
  AQ: "[f2@2 ~@2 bb2@2 c3@2 ~@2 eb3@2 f3@2 ab3@4 f3 eb3 c3@2 f3@2 eb3@2 c3@2 ab2@2 ~@2]/2",
  AR: "[eb2@2 ~@2 bb2@2 c3@2 ~@2 eb3@2 f3@2 bb3@4 f3 eb3 c3@2 f3@2 eb3@2 c3@2 ab2@2 ~@2]/2",
  AS: "[eb2@2 ~@2 bb2@2 c3@2 ~@2 eb3@2 f3@2 ab3@4 f3 eb3 c3@2 f3@2 eb3@2 c3@2 ab2@2 ~@2]/2", AT: "[~@5 c3 ~ f2@9]/2",
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.3)

// chords · epiano1 · "Piano"
const epiano1 = note(`<
  A B C D E F G H@2 I J K L M N O N M N O N P@2 O Q R@2 S T U@2 V W R@2 S T U@2 X Y Z AA AB@2 M N AC AD AE@2 ~@2 M N O
  AF R@2 S T U@2 V W R@2 S T U@2 X Y AG AH AG AI AG AH AG AJ AK AL AM AN AK AL AM AO AP AQ AR AS AP AQ AR AS AP AQ AR AS
  AP AQ AR AS AP AQ AR AS AP AQ AR AS AP AQ AR AS AP AQ AR AS AT@2 AU@4 AV AW AX@2 AY@4 AZ@2 BA BB BC@2 BD@2 BE BF BA BB
  BC@2 BD@2 BE BF BA BB BC@2 BD@2 BE BF BA BB BC@2 BD@2 BE BF BA BB BC@2 BD@2 BE BF BA BB BC@2 BD@2 BE BF BA BB BC@2 BG
  BH@2
>`.pickRestart({
  A: "~@10 c4 db4 eb4 e4 gb4 ab4", B: "[a1,e4,gb4,a4]@4 ~ b1@3, ~ [e4,gb4,b4]",
  C: "[db2,e4,ab4,db5]@4 ~ eb2@3, ~ [gb4,b4,eb5]", D: "[e2,g4,c5,e5] [gb2,a4,db5,gb5]",
  E: "[ab2,b4,e5,ab5] [a2,b4,e5,a5]", F: "~@2 [g2,g4] [f2,f4] [g2,g4] [c3,c5] [a2,a4] ~@3 [gb2,db4,gb4,b4]@6",
  G: "~@2 [e2,e4] [d2,d4] [e2,e4] [a2,a4] [gb2,gb4] ~@3 [d2,d4,g4,a4]@6", // E D E A Gb Dsus4
  H: "[~ [gb2,eb4,c5]@2 [f2,d4,b4]@2 [e2,c4,c5]@2 [eb2,e4,db5]@2 [d2,f4,d5]@2 [c2,gb4,eb5]@3 ~@2]/2", // Cdim Bdim C Dbm Dm Cdim
  I: "[f2,eb4,ab4,c5,f5] ~@7", J: "~@4 [bb2,c4,f4,bb4,d5]!2 [ab2,bb3,eb4,ab4,c5] ~",
  K: "[f2,c4,f4,ab4,bb4] ~@3 [g2,c4,eb4,ab4,b4] ~@2 [ab2,bb4,c5,eb5,ab5]", // Fm Abmaj7 Ab
  L: "~@3 [bb2,f4,bb4,d5] ~ [f2,eb4,ab4,c5] ~@2", M: "[f2,eb4,ab4,c5] ~@3 [g2,f4,bb4,d5] ~@2 [ab2,bb4,eb5,ab5]",
  N: "~@3 [bb2,f4,bb4,eb5] ~ [f2,eb4,ab4,c5] ~@2", O: "[f2,eb4,ab4,c5] ~@3 [g2,f4,bb4,d5] ~@2 [ab2,ab4,c5,eb5]",
  P: "[[ab2,f4,bb4,c5,eb5]@4 [eb2,eb4,f4,ab4,c5]@3 [db2,db4,f4,g4,bb4]@4 [c2,bb3,c4,e4,ab4]@5]/2", // Fm7 Gm7b5 Caug
// … 132 more lines

More by Yaume