Strudelify

heathers the musical - blue

Music and

KeyF♯ majorTempo108 bpm
0:00/0:00
// heathers the musical - blue — Music &
// 108 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: metre changes (2/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 4 "Alto Saxophone" alto sax (copy of ch 3 "Soprano Saxophone" soprano sax)
// note: Transcription provider: pdmx. https://musescore.com/score/5987326; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/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 · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  ~@5 A B C D E F@2 G ~ H ~ H ~ I@3 J@2 K L ~@2 M N O P Q R@2 S T U V W X Y Z AA ~@3 AB AC AD AE ~ AF AG AH AI AJ@2 AK
  AL@2 AM AN AO ~ AO ~ AO ~ AO AP AQ AR AS@3
>`.pickRestart({
  A: "~@2 c#4@2 b3@2 a3@2 g#3@3 b3@3 a3 g#3", B: "f#3@3 ~@5", C: "~@2 c#4@2 b3@2 a3@2 g#3@3 b3@3 c#4 b3", D: "a3@3 ~@5",
  E: "~@2 e4@2 d4@2 c#4@2 b3@3 c#4 b3@2 c#4 b3", F: "[a3@4 ~@3 f#3 f#3@2 a3@2 c#4@2 b3@14 ~@4]/2",
  G: "~@6 e4!2 c#4!2 b3@2 a3@2 b3 c#4", H: "~@3 a3 f#3 a3 f#3 a3",
  I: "[~@6 e3@2 f#3 a3 c#4@4 b3@10 ~@2 c#4@2 e4@2 c#4 e4@5 ~@2 e4@2 c#4@2 b3 a3@3 b3@2]/3",
  J: "[a3@2 ~@2 c#4@4 b3 a3 g#3@4 b3@4 a3 g#3 f#3@4 ~@8]/2", K: "~@4 c#4@4 b3 a3 g#3@4 b3@2",
  L: "b3@2 a3 g#3 f#3@4 ~@8", M: "c#4 b3@2 ~@4 e4", N: "f#4 e4 c#4@2 e4@2 ~@10", O: "~@7 e3",
  P: "f#3 a3 ~ e3 f#3 a3 ~@2", Q: "~@7 b3", R: "[c#4@2 c#4 c#4@3 c#4@2 f#4@2 e4@2 c#4@2 c#4@4 d4 c#4 b3@10 a3@2]/2",
  S: "e4 e4@2 e4@3 e4@2 f4@2 d4@2 d4 a#3 c#4@2", T: "~@2 d4@2 c4@2 a#3@2 a3@3 c4@3 a#3 a3", U: "g3@3 ~@5",
  V: "~@2 d4@2 c4@2 a#3@2 a3@3 c4@3 d4 c4", W: "a#3@2 ~ a#4 g4 a#4 g4 a#4", X: "~@2 f4@2 d#4@2 d4@2 c4@3 d4 c4@2 d4 c4",
  Y: "a#3@4 ~@4 [g3,g4]@2 [a#3,f4]@2 d4@2 d#4 d4", Z: "c4@6 ~ f3", AA: "d4@2 f4@2 d4!2 f4!2 d4@2 c4@2 a#3@2 c4 d4",
  AB: "~@5 c4 a#3 f3", AC: "g3 a#3 ~@5 f3", AD: "g3 a#3 ~@5 c4", AE: "d4@2 f4 d4 g4@5 g#4 g4 f4@3 ~@2",
  AF: "~@2 d#4@2 c#4@2 b3@2 a#3@3 c#4@3 b3 a#3", AG: "g#3@3 ~@5", AH: "~@2 d#4@2 c#4@2 b3@2 a#3@3 c#4@3 d#4 c#4",
  AI: "b3@3 ~@5", AJ: "[~@2 f#4@2 f#4@2 d#4@2 g#4@2 f#4 d#4@3 c#4 b3@5 ~@12]/2",
  AK: "~@2 e4@2 d#4 g#3@2 b3 ~@2 e4@2 d#4 g#3@2 b3", AL: "[~@2 e4@2 d#4 g#3@2 b3@3 b3@2 c#4 d#4@2 e4@17]/2",
  AM: "~@6 b4@2 b4@2 b4 b4@3 c#5@2", AN: "c#5", AO: "~@6 c#4@2 d#4@2 d#4@2 d#4@2 c#4!2",
  AP: "~@2 f4@2 d#4@2 c#4@2 c4@3 d#4@3 c#4 c4", AQ: "a#3 ~@3", AR: "~@4 g#3@4 ~ c#4@4 d#4@3",
  AS: "[~ c#4@4 ~ d#4@4 [c#4,f4]@26 ~@12]/3", // C#
})).s("gm_baritone_sax").gain(0.5)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@6 A ~ A ~@2 B C D E F G H I@2 J K@2 L@2 H M N O P Q R S@2 T ~ U ~ V W X Y Z ~@4 AA@2 ~ AB ~ AC ~ AC AD@2 AE@3 AF AG
  AH AI AJ AK AL AM AN AO AP AQ AR@3
>`.pickRestart({
  A: "~@3 a3 f#3 a3 f#3 a3", B: "~@4 e3@2 e3@2 f#3@2 e3@2 e3@2 ~ e3", C: "c#4@2 e4@2 c#4@2 e4!2 c#4!2 b3@2 a3@2 b3 c#4",
  D: "~@2 c#4@2 b3@2 a3@2 g#3@3 b3@3 a3 g#3", E: "f#3@3 ~@5", F: "~@2 c#4@2 b3@2 a3@2 g#3@3 b3@3 c#4 b3", G: "a3@3 ~@5",
  H: "~@2 e4@2 d4@2 c#4@2 b3@3 c#4 b3@2 c#4 b3", I: "[a3@6 e3@2 f#3 a3 c#4@4 b3@10 ~@8]/2",
  J: "~@6 e4@2 c#4@2 b3 a3@3 b3@2", K: "[a3@2 ~@2 c#4@4 b3 a3 g#3@4 b3@4 a3 g#3 f#3@4 ~@8]/2",
  L: "[~@4 e4@4 d4 c#4 b3@4 d4@4 c#4 b3 a3@4 ~@8]/2", M: "a3@2 ~ e3 f#3 a3 c#4 b3", N: "~@3 e4 c#4 b3 ~ e4",
  O: "f#4 e4 c#4@2 e4@2 ~@4 b3@2 a3@2 e3@2", P: "f#3 a3 ~ e3 f#3 a3 ~@2", Q: "~@7 e3", R: "f#3 a3 ~ e3 f#3 a3 ~ b3",
  S: "[c#4@2 c#4 c#4@3 c#4@2 f#4@2 e4@2 c#4@2 c#4@4 d4 c#4 b3@10 a3@2]/2",
  T: "e4 e4@2 e4@3 e4@2 f4@2 d4@2 d4 a#3 c#4@2", U: "~@6 a#3!2 g3@2 a#3@2 g3@2 a#3@2", V: "~@3 a#4 g4 a#4 g4 a#4",
  W: "~@2 f4@2 [d#4,f4]@2 [d4,f4]@2 [c4,f#4]@3 d4 c4@2 [d4,g4] [c4,f4], ~@11 f#4@3 ~@2", X: "[a#3,g4] ~@3",
  Y: "~ f3!3 g3 f3 ~ f3", Z: "d4@2 f4@2 d4!2 f4!2 [d4,g4]@2 [c4,f4]@2 [a#3,d4]@2 [c4,d#4] [d4,f4]",
  AA: "~@3 f3 g3 a#3 ~@2", AB: "g#4@2 g#4 f#4@2 f#4 g#4@2 f#4@2 d#4@2 c#4@2 [c#4,d#4] b3", AC: "~@3 b3 g#3 b3 g#3 b3",
  AD: "[~@2 f#4@2 f#4@2 d#4@2 g#4@2 f#4 d#4@3 c#4 b3@5 ~@4 [g#3,g#4]@2 [b3,f#4]@2 d#4@2 e4 d#4]/2", // G# B5
  AE: "[c#4@24 ~@2 d#4@2 e4 f#4@2 g#4@4 f#4@13]/3", AF: "~@6 b4@2 b4@2 b4 b4@3 c#5@2", AG: "c#5",
  AH: "~@6 c#4@2 f#4@2 f#4@2 f#4@2 f4!2", AI: "~@2 c#5 ~", AJ: "c#5@4 ~@2 c#4@2 f#4@2 f#4@2 f#4@2 f4!2",
  AK: "~@3 c#4 c#4@2 ~ c#4", AL: "c#4@4 ~@2 c#4@2 f#4@2 f#4@2 f#4@2 f4!2", AM: "~@10 c#4!2 ~@4",
  AN: "c#4!2 ~@4 c#4@2 f#4@2 f#4@2 f#4@2 f4!2", AO: "~@2 f4@2 d#4@2 c#4@2 c4@3 d#4@3 c#4 c4", AP: "a#3 ~@3",
  AQ: "~@4 g#3@4 ~ c#4@4 d#4@3", AR: "[~ e4@4 ~ f#4@4 g#4@26 ~@12]/3",
})).s("gm_tenor_sax").gain(0.5)

// chords · soprano sax · "Soprano Saxophone"
const soprano_sax = note(`<
  ~@22 A ~ B C D E F G@3 H@2 ~ I J I K L K M N ~@6 O ~ P Q P R S@2 T U@2 ~ V W V W X Y X Y Z AA AB AC@3
>`.pickRestart({
  A: "~@6 a4@2 f#4 ~ a4@2 f#4@2 e4!2", B: "~@6 [a4,c#5]@2 [f#4,b4] ~ [a4,c#5]@2 [f#4,b4]@2 [e4,a4]!2",
  C: "~@4 [e4,a4]@4 [f4,g#4]@3 [f4,g#4]@3 [f#4,a4] [g#4,b4]", D: "[a4,c#5] ~", E: "f#4 g#4 a4 b4", F: "c#5@3 e5@3 e4 ~",
  G: "~ a4 ~ a4", H: "[[f#4,a4]@5 [g#4,b4] [a4,c#5] [b4,d5]@6 [a4,c#5] [b4,d5] [c#5,e5]]/2",
  I: "f4@8 f#4@6 [d#4,g4] [f4,a4], d4@7 ~", J: "[g4,a#4]@4 ~@2 a#4!2 g4@2 a#4@2 g4@2 a#4@2", K: "[g4,a#4] ~@3",
  L: "~@2 f4@2 [f4,g4]@2 [f4,a#4]@2 [f#4,a4,d5]@3 [f#4,a4,c5]@3 [g4,a#4,d5] [f#4,a4,c5]", M: "g4@2 d4 f4@13",
  N: "~@6 f4!2 [a#4,d5]@2 [a4,c5]@2 [g4,a#4]@2 [a4,c5] [a#4,d5]", O: "~@4 [d4,d5] [d#4,d#5] [f4,f5] [f#4,f#5]",
  P: "[b3,d#4,f#4]@8 [b3,d#4,g4]@6 [c#4,e4,g#4] [d#4,f#4,a#4]", Q: "[e4,g#4,b4]@2 ~ b4 g#4 b4 g#4 b4",
  R: "[e4,g#4,b4] ~@2 b4 g#4 b4 g#4 b4", S: "[[f#4,b4]@4 [g4,a#4,c#5]@3 [g#4,b4,d#5]@3 ~@6]/2",
  T: "~@2 e4@2 d#4 g#3@2 b3 ~@2 e4@2 d#4 g#3@2 b3",
  U: "[~@2 [e4,g#4,b4]@2 [d#4,f#4,a#4] [g#3,d#4,f#4]@2 [b3,e4,g#4]@3 [d#4,f#4,b4]@2 [e4,g#4,e5] [f#4,b4,d#5]@2 g#4 f#4@16, ~@15 [b4,c#5]@17]/2", // E D#m G#7 E B E B Bsus2
  V: "~@2 [d#4,f#4,a#4]@2 [c#4,f4,g#4]@2 [f4,g#4,c#5]@2 [f4,a4,c5]@2 [d#4,g4,a#4]@2 [f4,a4,c5]@2 [g4,a#4,c#5] [f4,g#4,c5]", // D#m C# F D# F Gdim Fm
  W: "[f#4,a#4,c#5] ~", X: "~ a#4 g#4 f4 ~ c#5 c5 a#4",
  Y: "~@2 [e4,e5]@2 [d#4,d#5]@2 [c#4,c#5]@2 [f#4,d#5]@2 [f#4,d#5]@2 [f#4,d#5]@2 [f4,c#5]!2", // E D# C# D#m C#
  Z: "~@2 f4@2 d#4@2 c#4@2 c4@3 d#4@3 c#4 c4", AA: "a#3 ~@3", AB: "~@4 g#4@4 ~ c#5@4 [b4,d#5]@3",
  AC: "[~ [a4,c#5]@4 ~ [b4,d#5]@4 [c#5,f5]@26 ~@12]/3", // A B C#
})).s("gm_soprano_sax").gain(0.45)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<~@20 A ~@13 A ~@15 B C@2 D@2 E@2 ~@2 F G H@4 I@4 ~@2 J K@3>".pickRestart({
  A: "e5!4 ~@12", B: "~@8 d#5!2 ~ c#5 ~ b4 c#5 ~", C: "[~@4 b4@4 a#4@3 a#4 ~@2 g#4@6 ~@6 g#4@2 ~@2 g#4@2]/2",
  D: "[~@4 b4@4 a#4@3 a#4 ~@2 g#4@6 ~@12]/2", E: "[~@4 b4@4 a#4@3 a#4 ~@2 b4@10 ~@8]/2",
  F: "~@6 b3 c#4 e4@2 c#4!2 e4@2 f#4 ~", G: "f#5!4 ~@12", H: "[~@4 g#4@4 a4@3 a4 ~@2 a#4@10 ~@2 c#5 ~ c#5 ~ c#5!2]/2",
  I: "[~@4 f5@4 d#5@3 d#5 ~@2 c#5@10 ~@2 a#4 ~ a#4 ~ g#4!2]/2", J: "~@9 a4@4 b4@3",
  K: "[~ c#5@4 ~ d#5@4 f5@26 c#5@2 ~@10]/3",
})).s("gm_trumpet").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax_2 = note(`<
  A B@4 ~@12 C@2 D E F@4 G@2 D H ~@4 I E J@2 K@2 L@2 M N ~@4 O@2 P Q R@2 S@2 T@2 ~ U V E W@4 X@2 Y Z ~@2 AA AB ~ AC
>`.pickRestart({
  A: "~@10 e3 ~ f#3 ~ a3 ~", B: "[~@4 e3@4 f3@3 f3 ~@2 f#3@4 f#3 ~ d3 f#3@2 f#3 a3 ~ g#3 ~ f#3 ~ g#3 a3]/2",
  C: "[e3@8 f3@3 f3 ~@2 f#3@10 ~@8]/2", D: "b3 ~ a3@4 f#3@4 a3@4 b3@2", E: "e4!4 ~@12", F: "[~@7 f#3@5 ~@4]/2",
  G: "[~@4 c#4@4 b3@3 b3 ~@2 a3@10 ~@8]/2", H: "f#3!3 ~@3 e5@2 ~@8", I: "~ e3@2 f3@2 a3@2 b3",
  J: "[f3@8 f#3@3 d3 ~@2 d#3@8 e3 f3 ~@8]/2", K: "[~@4 f3@4 f#3@3 d3 ~@2 d#3@6 ~@12]/2",
  L: "[~@4 f3@4 f#3@3 d3 ~@2 g3@10 ~@8]/2", M: "d#3 ~ f3@4 g3@4 a#3@4 c4@2", N: "f4 ~@3",
  O: "[d#4@3 c#4@4 d4@4 d4@4 d4]/2", P: "d#4 ~ d4@4 g3@4 a#3@4 b3@2", Q: "~@8 g#4!2 ~ e4 ~ g#4 e4 ~",
  R: "[~@4 f#3@4 g3@3 g3 ~@2 g#3@4 ~@8 f#3@2 ~@2 f#3@2]/2", S: "[~@4 f#3@4 g3@3 g3 ~@2 g#3@4 f#3 g#3 b3 ~@11]/2",
  T: "[~@4 f#3@4 g3@3 g3 ~@2 g#3@10 ~@8]/2", U: "c#3@10 c#3 ~@2 c#3@3", V: "f#3@6 b2 c#3 e3@2 c#3!2 e3@2 f#3 ~",
  W: "[~@4 f4@4 d#4@3 d#4 ~@2 c#4@10 ~@2 a#4 ~ a#4 ~ g#4!2]/2", X: "[~@4 g#4@4 a4@3 f4 ~@2 f#4@10 ~@4 d#4 c#4 d#4 ~]/2",
  Y: "f4 g#4!2 ~@3 a#4 e4, e4 ~@15", Z: "~@4 a#4@2 e4@2 e4 d#4 c#4 ~ f#4 ~ e4 ~", AA: "~@9 c#4@4 d#4@3",
  AB: "~ e4@4 ~ f#4@4 ~@6", AC: "~@2 c#3 ~@5",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<~@21 [e3@8 f3@3 f3 ~@4] [~@5 e3 ~ e3] [~@4 e3@2 ~@2 f3@3 f3 ~@4] [~@5 e3 ~ e3] ~@50>")
  .s("gm_tenor_sax").gain(0.2)

// chords · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note(`<
  A B@4 C@2 D@2 E@3 F G@4 H@3 I J K@3 J L M N O@5 P Q R Q S Q T U V W@4 X@2 Y Z AA@2 AB@2 AC@2 AD AE AF AG AH@2 AI@2 AJ
  AK AJ AK AL@2 AM AN AO AP
>`.pickRestart({
  A: "~@10 e4 ~ f#4 ~ a4 ~", B: "[~@4 c#5@4 b4@3 b4 ~@2 a4@10 [c5,c#5] ~ b4 ~ a4 ~ b4 c#5, ~@4 c5 ~@27]/2",
  C: "[~@4 [a2,e3,a3,c#4,e4]@2 ~@5 [f3,b3,c#4,g#4] ~@2 d4@2 d4@4 [d3,a3,d4,f#4]@2 ~@4 [d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4,f#4]@2, ~@7 [d3,a3,f#4]@3 ~@6]/2", // A C#7 D
  D: "[~@4 [a2,e3,a3,c#4,e4]@2 ~@5 [f3,b3,c#4,g#4] ~@2 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@2 ~@4 [d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4,f#4]@2]/2", // A C#7 D
  E: "[~@4 [a2,e3,a3,c#4,e4]@2 ~@2 [f3,b3,c#4,g#4]@3 [f3,b3,c#4,g#4] ~@2 [f#2,c#3,f#3,a3,c#4,f#4]@6 [f#2,c#3,f#3,a3,c#4,f#4]@2 ~@2 f#3@2 a3@2 c#4@2 b3@16 c#4@2]/3", // A C#7 F#m
  F: "[e3,a3,d4,a4,d5,f#5] ~@3", // D
  G: "[~ c#4@5 ~@2 [f3,b3,c#4,g#4]@3 [f3,b3,c#4,g#4] ~@2 [d3,a3,f#4]@6 [d3,a3,f#4]@2 ~@2 f#3@2 a3 ~ f#3@2 a3 ~, [a2,e3]@3 ~@13]/2", // C#7 D A5
  H: "[~ c#4@5 ~@2 [f3,b3,c#4,g#4]@3 [f3,b3,c#4,g#4] ~@2 [f#2,c#3,f#3,a3,c#4,f#4]@6 [f#2,c#3,f#3,a3,c#4,f#4]@2 ~@2 f#3@2 a3@2 c#4@2 b3@4 c#3@4 d3@4 f#3@4 a3@2, [a2,e3] ~@7]/3", // C#7 F#m A5
  I: "[e3,b3,d4,a4,b4,e5]!4 ~@12", J: "~@2 e2 f#2 a2!2 f#2 e2 ~@8", K: "~@2 e3 f#3 a3!2 f#3 e3 ~@2 e2@2 ~@2 e2@2",
  L: "~@2 c#3!2 a3!2 g#3 f#3 ~@2 f#3 ~ e3@2 c#3@2", M: "b2 c#3@2 d3@2 f#3@2 a3", N: "e2!3 ~ e2 ~ [e3,e4]@6 ~@4",
  O: "[d3@10 c#3@2 d3@2 d#3@12 b2@2 d#3@2 e3@12 d#3@2 e3@2 f#3@12 f#3 g#3 a3@2 b3@4 b3@2 b3@2 b3@2 b3!2 b3@2 b3@2 b3@2]/5",
  P: "[e3,b3,e4]!4 ~@4 f3@2 d3@2 c3 a#2 c3@2", Q: "~@2 f2 a2 a#2!2 g2 f2 d3@2 d3@2 d3@2 d#3@2",
  R: "~@2 f3 g3 a#3!2 g3 f3 ~@2 [f2,d#3,a#3,d4,g4]@2 ~@2 [f2,d#3,a#3,d4,g4]@2", S: "~@2 f3 g3 a#3@2 ~@10",
  T: "~@2 d3!2 a#3!2 a3 g3 g3@2 g3@2 g3@2 a#2@2", U: "[c3,d#3,a#3,f4]!8",
  V: "[d#3,f3,g3,a#3]@2 a#3!6 a#3@2 a#3@2 a#3@4", // D#
  W: "[a#3@6 a#3@2 ~@2 c#4 c4 a#3@2 g4@8 c#4 d4@2 a#3 c4@2 g3@2 ~@2 d#3@6 a#3@2 ~@2 c#4 c4 a#3@2 [f3,a#3,g4]@8 c#4 [g3,a#3,d4]@2 a#3 c4@2 g3@2 a#3@2, ~@15 a#3@4 e3@3 ~@10]/4", // Gm7 Gm
  X: "[[g3,a#3,d#4,g4]@2 [g3,a#3,d#4,g4] [a#2,e3,g3,c#4,e4]@3 [f2,f3,a#3,d4,g4] [f2,f3,a#3,d4,g4]@3 [f2,f3,a#3,d4,g4] [e3,a#3,d4,g4]@3 [e3,a#3,d4,g4]!2]/2", // D# A#dim Gm7 Em7b5
  Y: "[c3,g3,a#3,d#4,g4]@6 [c3,g3,a#3,d#4,g4] [f#2,b2,e3,g#3,b3,e4]", // Cm7 E
  Z: "~@8 [f#2,b2,e3,g#3,b3,e4] [f#2,b2,e3,g#3,b3,e4]@2 [f#2,b2,e3,g#3,b3,e4] ~ [f#2,b2,e3,g#3,b3,e4] [f#2,b2,e3,g#3,b3,e4]@2", // E
  AA: "[~@4 [b2,f#3,b3,d#4]@4 [d#3,a#3,c#4,g4]@3 [d#3,a#3,c#4,g4] ~@2 [e3,b3,d#4,g#4,b4]@4 f#3 g#3 b3!2 g#3 f#3 ~@2 [f#2,e3,b3,d#4,g#4,b4]@2 ~@2 [f#2,e3,b3,d#4,g#4,b4]@2]/2", // B D#7 Emaj7
  AB: "[~@4 [b2,f#3,b3,d#4]@4 [d#3,a#3,c#4,g4]@3 [d#3,a#3,c#4,g4] ~@2 [e3,b3,d#4,g#4,b4]@4 f#3 g#3 b3@2 ~@10]/2", // B D#7 Emaj7
  AC: "[[b2,f#3,b3,d#4]@4 [b2,f#3,b3,d#4]@2 ~@2 [d#3,a#3,c#4,g4]@3 [d#3,a#3,c#4,g4] ~@2 [g#2,d#3,g#3,b3,d#4,g#4]@4 d#3!2 b3!2 a#3 g#3 ~@2 d#3@2 b2@2 g#2@2]/2", // B D#7 G#m
  AD: "[c#3,f#3,b3,e4]@14 [c#3,f#3,b3,e4]!2", AE: "[c#3,f#3,b3,e4]@10 [c#3,f#3,b3,e4] ~@2 [c#3,f#3,b3,e4]@3",
  AF: "[f#3,b3,e4]@4 [f#3,b3,e4]@2 [e3,b3,e4,g#4,b4,e5]!2 [e3,b3,e4,g#4,b4,e5]@2 [e3,b3,e4,g#4,b4,e5]!2 [e3,b3,e4,g#4,b4,e5]@2 [e3,b3,e4,g#4,b4,e5]@2", // Esus2 E
  AG: "[f#3,b3,e4]!4 ~@8 g#5@4", // Esus2
  AH: "[c#3@4 [g#3,c#4,f4]@4 [a3,c4,d#4]@3 [a3,c4,d#4] ~@2 [f#3,a#3,c#4]@6 [f#3,a#3,c#4] ~@5 g#2 ~@3 g#2 ~]/2", // C# Adim F#
  AI: "[~@4 [g#3,c#4,f4]@4 [a3,c4,d#4]@3 [a3,c4,d#4] ~@2 [f#3,a#3,c#4]@6 [f#3,a#3,c#4] ~@5 g#2 ~@3 g#2 ~]/2", // C# Adim F#
  AJ: "g#3 a#3 c#4!2 ~ c#4 a#3 g#3 d#4 c#4@2 c#4 ~ g#3 f4 d#4", AK: "~ d#4 c#4@2 c#4 a#3@2 f#3 f4@2 d#4@2 c#4@2 d#4 f4",
  AL: "[~@11 [a3,c4,d#4] ~@2 [f#3,a#3,c#4]@6 [f#3,a#3,c#4]@2 ~@10]/2", AM: "~@9 [e3,a3,c#4]@4 [f#3,b3,d#4]@3",
  AN: "~ [a3,c#4,e4]@4 ~ [b3,d#4,f#4]@4 [c#4,f4,g#4]!6", AO: "[c#4,f4,g#4]!16", AP: "[c#4,f4,g#4]!4 c#3@2 ~@10",
})).s("gm_electric_guitar_clean").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note("<A B@4 C@4 D@2 E F C@4 G@2 H I J@2 K@2 G@2 L M N@5 O ~@40>".pickRestart({
  A: "~@10 e2 ~ f#2 ~ a2 ~", B: "[a1@4 ~@2 b1 c2 c#2@4 ~@2 d2@8 d2 d#2 e2 ~@3 e1 ~@3]/2",
  C: "[a1@4 ~@2 b1 c2 c#2@4 ~@2 d2@6 d2 d#2 e2 ~@3 e1 ~@3 e1 ~]/2",
  D: "[a1@4 ~@2 a2@2 g#2@3 c#2 ~@2 f#1@4 f#1@2 f#2@2 f2 e2 d#2@2 d#2@2 ~@2 a1 a#1]/2", E: "b1!4", F: "e2@4 ~@10 e1 f#1",
  G: "[a1@4 ~@2 a2@2 g#2@3 c#2 ~@2 f#1@4 f#1@2 f#2@2 e2 f#2 ~@2 f#2@2 f#1@2 f#2@2]/2", H: "b1@4 b1@4 b1@4 b1@2 c#2 d2",
  I: "e2!4 ~@7 e3 [d3,d#3,e3] [a2,a#2,b2,c3,c#3] [f2,f#2,g2,g#2] [c2,c#2,d2,d#2,e2]",
  J: "[[a#1,b1] ~@5 b1 c2 c#2@4 ~@2 d2@6 d2 d#2 e2 ~@3 e1@2 ~@2 e1@2, a1 ~@7]/2", // Bmaj7
  K: "[a1@4 ~@2 b1 c2 c#2@4 ~@2 d2@6 d2 d#2 e2 ~@3 e1@2 ~@2 e1@2]/2", L: "b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1!2",
  M: "e1!3 ~ e1 ~@5 b2@2 a2@2 e2@2",
  N: "[d2@2 d2@2 d2@2 d2@2 d2@2 c#2@2 d2@2 d#2@4 d#2@2 d#2@2 d#2@2 d#2@2 b1@2 d#2@2 e2@4 e2@2 e2@2 e2@2 e2@2 d#2@2 e2@2 f#2@4 f#2@2 f#2@2 f#2@2 f#2@2 f#1 g#1 a1@2 b1@5 f#1 b1@3 f#1 b1!2 c#2@2 d2@2 e2@2]/5",
  O: "e1!4 ~@4 f1 f1@2 f1!2 g1 a#1 ~",
})).s("gm_electric_bass_pick").gain(0.25)

// chords · piano
const piano = note(`<
  A B@4 C@2 D@2 E@2 F G H@4 I@2 J K L@4 M@2 N O P@5 Q R@2 S@2 T@2 U V W X Y@2 Z X AA AB AC@2 AD@2 AE@2 AF@2 AG AH AI@2
  AJ@2 AK@2 AL@2 AM@2 AN AO@3
>`.pickRestart({
  A: "~@5 e2 f#2 a2",
  B: "[[c#3,e3,a3,c#4]@2 e3@2 [c#3,e3,a3,c#4]@2 b2 c3 [f3,g#3,b3] a3 [c#3,f3,g#3,b3]@2 c#3 a2 [c#3,d3,f#3,a3]@4 [d2,c#3,d3,f#3,a3]@2 [b2,f#3] ~ d3 [d#3,e3,f#3] [d5,a5,c#6] ~ [d5,g#5,b5] ~ [d5,f#5,a5] ~ [d5,g#5,b5] [c#5,e5,a5,c#6], a2 ~@7 c#3@2 ~@10 d3@2 ~@2 e3@2 ~@6, ~@21 [a2,a3]@2 ~@5 e2@2 ~@2]/2", // A Fdim C#7 Dmaj7 B5 D#m Dmaj7 G#dim …
  C: "[[a2,e3,a3,c#4]@3 e3 [e3,a3,c#4] ~ b2 c3 [f3,g#3,b3] ~@2 [c#3,f3,g#3,b3] ~@2 [d3,f#3,a3]@6 [f#3,a3] ~ d#3 e3 ~@2 [e2,d3,f#3,a3,c#4] ~@3 [e2,d3,f#3,a3,c#4] ~, ~@8 c#3@3 ~@3 c#3@2 ~@4 d3@2 ~@10]/2", // A Fdim C#7 D F#m Dmaj7
  D: "[[a2,e3,a3,c#4]@3 e3 [e3,a3,c#4] ~ b2 c3 [c#3,f3,g#3,b3]@3 [c#3,f3,g#3,b3] ~@2 [d3,f#3,a3]@6 [f#3,a3] ~ d#3 e3 ~@2 [e2,d3,f#3,a3,c#4] ~@3 [e2,d3,f#3,a3,c#4] ~, ~@7 c#3 ~@2 d3 ~@5]/2", // A C#7 D F#m Dmaj7
  E: "[[a2,e3,a3,c#4,e4]@3 c#4 [e3,c#4,e4] ~@2 d#3 [g#3,b3,c#4,f4]@3 [g#3,b3,c#4,f4] g#2@2 f#2@4 f#2@2 [a3,c#4,f#4] ~ f3!2 [f#3,a3,c#4] ~ [f#3,a3,c#4] ~@3 a2 a#2, ~@4 a3@3 ~@7 [a3,c#4,f#4]@6 f#3@2 ~@2 d#3@2 d#3@2 ~@4]/2", // A C#m C#7 F#m
  F: "[d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] ~ [d3,f#3,a3] a#3, b3@2 b2@2 b2@2 b2 ~", // D
  G: "[e3,f#3,a3,d4,e4]@2 ~@5 b3 [d5,a5,c#6] ~ [d5,g#5,b5] ~ [d5,f#5,a5] ~ [e2,d5,g#5,b5] [f#2,f#5,a5,c#6], ~@4 e4!2 ~@2", // D Dmaj7 G#dim D E7 F#m
  H: "[[a2,e3,a3,c#4]@3 e3 [e3,a3,c#4] ~ b2 c3 [c#3,f3,g#3,b3]@3 [c#3,f3,g#3,b3] ~@2 [d3,f#3,a3]@6 [f#3,a3] ~ d#3 e3 ~@2 [d3,f#3,a3,c#4,e4] ~@3 [d3,e3,f#3,a3,c#4] ~, ~@7 c#3 ~@2 d3 ~@5]/2", // A C#7 D F#m Dmaj7
  I: "[[a2,e3,a3,c#4,e4]@3 c#4 [e3,c#4,e4] ~@2 d#3 [g#3,b3,c#4,f4]@3 [g#3,b3,c#4,f4] g#2@2 f#2@4 f#2@2 [a3,c#4,f#4] ~@2 c#3 [d#3,f#3,a3,c#4]@4 [f#2,d#3,f#3,a3,c#4]@3 f#2, ~@4 a3@3 ~@7 [a3,c#4,f#4]@6 f#3@3 ~@9]/2", // A C#m C#7 F#m D#m7b5 F#m
  J: "[d3,f#3,a3,b3]@2 [f#3,a3,c#4]@2 ~@2 [f#3,a3,d4]@2 ~@2 [f#3,a3,d4,f#4]@2 [b1,b2]@2 c#3 d3, [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 ~ [a3,d4,f#4,a4]", // Bm7 F#m D B D
  K: "[e2,e3,e4,f#4,a4,b4,d5,e5]!4 ~@2 e4@2 ~@3 e4@5", // Bm7
  L: "[[a2,e3,a3,c#4]@3 e3 ~@2 b2 c3 [c#3,f3,g#3,b3]@3 [c#3,f3,g#3,b3] ~@2 [d3,f#3,a3]@6 ~@2 d#3 e3 ~@2 [e2,d3,f#3,a3,c#4] ~@3 [e2,d3,f#3,a3,c#4] ~, ~@2 [e3,a3,c#4]@2 ~@3 c#3 ~@2 [d3,f#3,a3]@2 ~@4]/2", // A C#7 D Dmaj7 A D
  M: "[[a2,e3,a3,c#4,e4]@3 c#4 [e3,a3,c#4,e4]@3 d#3 [g#3,b3,c#4,f4]@3 [g#3,b3,c#4,f4] g#2@2 f#2@4 f#2@2 [f#3,a3,c#4,f#4]@3 c#3 [d#3,f#3,a3,c#4]@4 [f#2,d#3,f#3,a3,c#4]@3 f#2, ~@7 [a3,c#4,f#4]@3 ~@6]/2", // A C#7 F#m D#m7b5 F#m
  N: "[b2,d3,f#3,a3,b3]@2 [b2,f#3,a3,c#4]@2 b1@2 [b1,f#3,a3,d4]@2 b1@2 [b1,f#3,a3,d4,f#4]@2 b1@2 ~ b2, ~@7 [a3,d4,f#4,a4]", // Bm7 F#m Bm7 D
  O: "[e2,e3,f#3,a3,d4,e4]!2 [e2,e3,f#3,a3,d4,e4]@2 [e2,e3]@2 [e4,f#4,a4,d5,e5]@2 ~@2 b2@2 a2@2 e2@2", // D E D
  P: "[[d2,d3,f#3,a3]@2 [d2,d3,f#3,a3]@2 [d2,d3,f#3,a3]@2 [d2,d3,f#3,a3]@2 [d2,d3,f#3,a3]@2 [c#2,d3,f#3,a3]@2 [d2,d3,f#3,a3]@2 [d#2,d#3,f#3,a3,b3]@4 [d#2,d#3,f#3,a3,b3]@2 [d#2,d#3,f#3,a3,b3]@2 [d#2,d#3,f#3,a3,b3]@2 [d#2,d#3,f#3,a3,b3]@2 [b1,d#3,f#3,a3,b3]@2 [d#2,d#3,f#3,a3,b3]@2 [d#3,f#3,a3,b3]@2 [e3,a3,c#4]@2 [e2,e3,a3,c#4]@2 [e2,e3,a3,c#4]@2 [e2,e3,a3,c#4]@2 [e2,e3,a3,c#4]@2 [d#2,e3,a3,c#4]@2 [e2,e3,a3,c#4]@2 [d#3,f#3,a3,c#4]@2 [d#3,f#3,a3,c#4]@2 [f#2,d#3,f#3,a3,c#4]@2 [f#2,d#3,f#3,a3,c#4]@2 [f#2,d#3,f#3,a3,c#4]@2 [f#2,d#3,f#3,a3,c#4]@2 f#2 g#2 [a2,d#3,f#3,a3,c#4]@2 [d3,f3,a3,d4]@2 [d3,f#3,a3,d4]@2 ~ f#2 [b2,f3,a3,e4]@2 ~ f#2 b2!2 c#3!2 [d3,a3,d4,f4,a4]@2 [e3,b3,d4,f4,a4,b4]@2, ~@15 e2@2 ~@6 f#2@2 ~@4 [d#3,f#3,a3,c#4] ~ b2@2 [f3,a3,e4] ~ [f3,a3,d4,f4]!2 [a3,d4,f4,a4] ~@2]/5", // D Dmaj7 D B7 A D#m7b5 Dm D …
  Q: "[e2,e3,e4,f#4,a4,b4,d5,e5]!3 ~@5 [f2,f3,d4] [d#4,f4] g4 [f2,f3,a4,a#4] [f2,f3,c5] [g2,g3,d5,d#5] f5 [g5,a5], ~@9 [f2,f3]@2 ~@3 [a#2,a#3]@2", // Bm7 Dm D#sus2 A#maj7 F5 D#maj7 Gsus2 F …
  R: "[[a#2,d3,f3,a#3,d4]@3 f3 [f3,a#3,d4]@2 c3 c#3 [d3,f#3,a3,c4]@3 [d3,f#3,a3,c4] ~@2 [d#3,g3,a#3]@6 [d#3,g3,a#3]@2 e3 f3 ~@2 [d#4,f4,g4,a#4,d5] ~@3 [f3,d#4,g4,a#4,d5] ~, ~@7 d3 ~@8]/2", // A# D7 D# D#maj7
  S: "[[a#2,d3,f3,a#3,d4]@3 f3 [f3,a#3,d4]@2 c3 c#3 [d3,f#3,a3,c4]@3 [d3,f#3,a3,c4] ~@2 d#3@4 ~ e3 [d#3,g3,a#3]@2 ~@10, ~@14 [g3,a#3]@6 f3 ~@11, ~@7 d3 ~ d#3 ~@6]/2", // A# D7 D# Gm
  T: "[[a#2,f3,a#3,d4,f4]@3 d4 [f3,a#3,d4,f4]@3 e3 [a3,c4,d4,f#4]@3 [a3,c4,d4,f#4] a2@2 g2@4 g2@2 [g3,a#3,d4,g4]@3 d3 [e3,g3,a#3,d4]@4 [g2,e3,g3,a#3,d4]@3 g2, ~@7 [a#3,d4,g4]@3 ~@6]/2", // A# D7 Gm Em7b5 Gm
  U: "[d#3,g3,a#3]@2 [d#3,g3,a#3]@2 [d#3,g3,a#3]@2 [d#3,g3,a#3]@2 [d#3,g3,a#3]@2 [d#3,g3,a#3]@2 [c1,d#3,g3,a#3]@2 [a#3,b3,c4,c#4,d4] [b1,d#4,e4,f4,f#4,g4,g#4,a4,a#4,b4,c5], c2@2 c1@2 c1@2 ~ [d#3,g3]", // D# Cm7 D#
  V: "[f1,f2,g4,a#4,d#5,f5]@4 ~@3 c2 [d#5,a#5,d6] ~ [d#5,a5,c6] ~ [d#5,g5,a#5]@2 [f5,a5,c6] [g5,a#5,d6], [c#5,d5,e5] ~@7 [f1,f2]@4 f1@4", // D# D#maj7 Adim D# F Gm C#m F
  W: "[d#4,g4,a#4] ~ [d#4,g4,a#4] ~ [d#4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,a4,c5] ~ [c#4,e4,a4,c5] ~ [c#4,e4,a4,c5] ~ [f4,g4,a#4,d5] ~, [d#2,d#3]@2 d#2 [e2,e3]@3 e2 [f2,f3]", // D# C#dim A Gm7 D# E F
  X: "[f4,g4,a#4,d5] ~ [f4,g4,a#4,d5] ~ [f4,g4,a#4,d5] ~ [e4,g4,a#4,d5] ~ [e4,g4,a#4,d5] ~ [e4,g4,a#4,d5] ~ [g2,e4,g4,a#4,d5]@2 g2@2, [f2,f3]@2 f2 [g2,g3]@3 ~@2", // Gm7 Em7b5 F G
  Y: "[[d#4,g4,a#4] ~ [d#4,g4,a#4] ~ [d#4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [f4,g4,a#4,d5] ~ [f4,g4,a#4,d5] ~ [f4,g4,a#4,d5] ~ [f4,g4,a#4,d5] ~ [e4,g4,a#4,d5] ~ [e4,g4,a#4,d5] ~ [e4,g4,a#4,d5] ~ [g2,e4,g4,a#4,d5]@2 g2@2, [d#2,d#3]@2 d#2 [e2,e3]@3 e2 [f2,f3]@3 f2 [g2,g3]@3 ~@2]/2", // D# C#dim Gm7 Em7b5 D# E F G
  Z: "[d#4,g4,a#4] ~ [d#4,g4,a#4] ~ [d#4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [c#4,e4,g4,a#4] ~ [f4,g4,a#4,d5] ~, [d#2,d#3]@2 d#2 [e2,e3]@3 e2 [f2,f3]", // D# C#dim Gm7 D# E F
  AA: "[c2,c3,d#4,g4,a#4,c5] [c2,d4,g4,a#4,d5] c2 [c2,d#4,g4,a#4,d#5] c2 [c2,g4,a#4,d#5,g5] c2 [f#2,f#3,b4,e5,g#5,b5]", // Cm7 Gm Cm7 E
  AB: "~@8 [f#2,f#3,d#5,e5,g#5,b5] [f#2,f#3,d#5,e5,g#5,b5]@2 [f#2,f#3,c#5,e5,g#5,b5] ~ [f#2,f#3,b4,e5,g#5,b5] [f#2,f#3,c#5,e5,g#5,b5]@2", // Emaj7 C#m7 E C#m7
  AC: "[[b1,d#4,f#4,b4,d#5]@3 f#4 ~@2 c#2 d2 [d#2,d#4,g4,a#4,c#5]@3 [d#4,g4,a#4,c#5] ~@2 [e2,e4,g#4,b4]@6 e2@2 f2 f#2 ~@2 [f#3,e5,g#5,b5,d#6] ~@3 [f#2,e5,g#5,b5,d#6] ~, ~@2 [f#4,b4,d#5]@2 ~@3 d#4 ~@2 [e4,g#4,b4]@2 ~@4]/2", // B D#7 E Emaj7 B E
  AD: "[[b1,d#4,f#4,b4,d#5]@3 f#4 ~@2 c#2 d2 [d#2,d#4,g4,a#4,c#5]@3 [d#4,g4,a#4,c#5] ~@2 [e2,e4,g#4,b4]@6 [e2,e4,g#4,b4]@2 ~@10, ~@2 [f#4,b4,d#5]@2 ~@3 d#4 ~@8]/2", // B D#7 E B
  AE: "[[b1,f#4,b4,d#5,f#5]@3 d#5 [b2,f#4,b4,d#5,f#5]@3 f2 [a#2,a#4,c#5,d#5,g5]@3 [a#4,c#5,d#5,g5] a#1@2 ~@2 g#2@2 [g#1,g#2]@2 [g#2,g#3,b4,d#5,g#5]@3 [d#2,d#3] [g#2,g#3,f4,g#4,b4,d#5]@4 [g#1,g#2,f4,g#4,b4,d#5]@3 [g#1,g#2], ~@7 [b4,d#5,g#5]@3 ~@6, ~@7 g#1@2 ~@7]/2", // B D#7 G# G#m D# Fm7b5 G# G#m
  AF: "[e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [c#1,c#2,e3,g#3,b3]@2 ~ [c2,c3], [c#2,c#3]@2 [c#1,c#2]@2 [c#1,c#2]@2 ~ [e3,g#3,b3]", // E C#m7 C C# E
  AG: "[f#1,f#4,b4,e5]@6 [b1,b4,e5,g#5] c#2 e2@2 [c#2,e5,g#5,b5] c#2 e2@2 [f#2,e5,g#5,b5,c#6]@2, ~@7 [b4,e5,g#5]@3 ~ [e5,g#5,b5]@3 ~@2", // Esus2 E C#m7 E
// … 78 more lines

More by Music and