Strudelify

What a Day for a Daydream

Right Said Fred

Tempo120 bpm
0:00/0:00
// What a Day for a Daydream — Right Said Fred
// 120 bpm, 4/4, key unknown. 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 94 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · acoustic bass
const bass = note(`<
  A B C D@2 E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AC AE AC AF AG AH AI AJ AK AL AM AN AO AP AC AQ AR
  AS AC AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BI BK BL BM BL BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB
  CC CD CE@2 CF@3
>`.pickRestart({
  A: "c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2", B: "a1 ~@2 a1 ~@2 a1 ~ a2@4", C: "d2 ~@11", D: "[~@3 g1@20 ~]/2",
  E: "c2@5 c2 c2@4 c2 a1", F: "a1@5 e2 a2@4 a2 a1", G: "d2@5 a1 d1@4 a1 d1", H: "g1@5 d2 g2@3 g1@3",
  I: "c2@5 a1 c2@4 c2 a1", J: "a1@5 e2 a2@4 e2 a1", K: "d2@5 a1 d2@2 a1 d1@3", L: "g1 b1 d2 b1",
  M: "f1 ~@2 f1 ~@2 f#1 ~@2 f#1 ~@2", N: "g1 ~@2 g1 ~@2 a1 ~@2 a1@3", O: "f1 ~@2 f1 ~@2 f#1 ~@2 f#1 ~ f#1",
  P: "g1@2 f#1 g1 ~ a1@4 e1 ~ e1", Q: "f1@2 ~ f2@2 ~ f#1@2 ~ f#2@2 ~", R: "g1@2 ~ g2@2 a1@4 a1@2 f1",
  S: "g1 ~ g1 b1@2 g1 d2@3 e2@3", T: "g2@2 g1 ~@2 g1 ~@2 c#2@4", U: "c2 g1 g2 g1", V: "a1@3 b1@3 c2@3 d2@2 a1",
  W: "c2@3 a1@3 d2@3 a1@2 g#1", X: "g1@3 d2@2 b1 g2@3 c#2@3", Y: "c2@3 g1@2 g1 c2@2 g1 a1@2 ~", Z: "a1 g1 f1 e1",
  AA: "c2@3 a1@2 a1 c2@3 a1@2 g#1", AB: "g1@3 d2@2 d2 g2@2 g1@4", AC: "f1@3 f2@2 f1 f#1@3 f#2@2 f#1",
  AD: "g1@5 g1 a1@3 g1@2 g1", AE: "g1@2 a1 c2@2 a1@4 g1@2 f#1", AF: "c2@2 g1 g#1@2 a1@4 a1@3",
  AG: "g1@2 d2 g2@2 d2 g2@2 d2 g2 d2 g1", AH: "g2@2 d2 g2@2 d2 g2@2 c#2@4", AI: "c2 g1 c2 g1",
  AJ: "a1@3 b1@3 c2@3 c#2@2 a1", AK: "d2 a1 d2 g#1", AL: "g1@2 d2 g2@2 d2 g2@2 d2 g2@2 d2",
  AM: "c2@3 g1@3 c2@2 a1 g1@2 e1", AN: "a1@3 b1@3 c2@2 a1 c#2@2 a1", AO: "d2@3 a1@3 d2@2 d2 a1@3",
  AP: "g2@2 g1@2 ~ d2 g2 d2 g2 b1@2 e1", AQ: "g1@3 g2@2 g1 a2@3 e1@3", AR: "f1@3 f2 c2 f1 f#1@3 f#2 c#2 f#1",
  AS: "g1@3 g2 d2 g1 a1@3 e1@3", AT: "c2@2 e1 g1@2 a1@3 e1 a1@2 e1", AU: "g1@2 d2 g2@2 d2 d3@2 g2@4",
  AV: "g2@2 g2!4 g2@2 g1@4", AW: "g#1@2 d#2 g#2@2 d#2 g#2@2 g#1@4", AX: "g#1@2 d#2 g#2@2 d#2 g#2@2 g#1 c2@2 d#2",
  AY: "c#2@2 c#2 g#1@3 c#2@2 g#1 a1@3", AZ: "a#1@3 c2@2 a#1 c#2@2 a#1 d2@2 a#1", BA: "d#2@2 d#2 a#1@3 c#2@3 a#1@3",
  BB: "g#1@3 d#2@3 g#2@2 d2@4", BC: "c#2@3 g#1@3 c#2@2 g#1 a1@3", BD: "a#1@3 c2@3 c#2@3 d2@2 c#2",
  BE: "d#2@2 d#2 a#1@3 d#2@3 a#1@3", BF: "g#1@3 d#2@2 g#1 g#2@2 d#2 g#1@3", BG: "f#1!2 g1!2", BH: "g#1!2 a#1!2",
  BI: "f#1@3 f#1@2 f#1 g1@3 g1@2 g1", BJ: "g#1@3 g#1@2 g#1 a#1@3 f1@2 f1", BK: "g#1@3 g#1@2 g#1 a#1@3 a#1@3",
  BL: "f#1@5 f#1 g1@5 g1", BM: "g#1@3 g#1@2 g#1 a#1@2 d#2 c#2 a#1 g#1", BN: "g#1@3 g#1@2 g#1 a#1@2 c#2 a#1@3",
  BO: "f#1@3 ~@2 f#1 g1@3 ~@2 g1", BP: "g#1@3 ~@2 g#1 a#1 d#2 c#2 c2 a#1 g#1", BQ: "f#1@3 f#2@2 f#1 g1@3 g2@2 g1",
  BR: "g#1@3 g#2@2 g#1 g#2 g2 d#2 c#2 a#1 g#1", BS: "f#1@3 f#2 c#2 f#1 g1@3 g2 d2 g1",
  BT: "g#1@3 g#2 d#2 g#1!4 d#2 c2 g#1", BU: "f#1 ~@3 g1@2", BV: "g#1 ~@7 a#1@3 ~", BW: "f#1 ~@7 g1@4",
  BX: "~@2 g#1 ~@2 g#1 ~@2 a#1 g#1 g1 f#1", BY: "~@2 g1", BZ: "g#1 ~@4 a#1@6 ~", CA: "g#1@2 ~ g#2@2 ~ g#2 ~@2 g#1@3",
  CB: "g#2@2 ~ g#2@2 ~ g#1 ~ g#1@4", CC: "c#2@3 c#2@3 c#2@2 a#1 g#1@2 a1", CD: "a#1@3 a#1@3 a#1 ~ a#1@4",
  CE: "[c#2@2 ~ c#3@2 ~ c3@2 ~ a#2@2 ~ g#2@2 ~ f#2@2 ~ d#2@2 ~ c#2@20 ~@7]/2", CF: "[c#3@35 ~]/3",
})).s("gm_acoustic_bass").gain(0.35)

// chords · piano
const piano = note(`<
  A B C D@2 E F G H I J K L M N M N M N O P Q R S T U V W X Y Z Y AA Y AA AB@2 AC AD AE AF@2 AG AH AI AJ AK AJ AL AJ AL
  AB@2 AM@2 AN AO AP AQ AR AS AT AU AV AW AV AW AV AW AV AW AV AW AX AY AZ BA BB AW ~@8 BC BD ~ BE@4
>`.pickRestart({
  A: "[g3,c4,e4] ~@2 [g3,c4,e4] ~@2 [g3,c4,e4]@2 [g3,c4,e4]!2 ~@2", // C
  B: "[a3,c#4,f4] ~@2 [a3,c#4,f4] ~@2 [a3,c#4,f4] ~ [a3,c#4,f4]@3 ~", C: "[f3,a3,d4] ~@11", D: "[~ g2@7]/2",
  E: "[g3,c4,e4]@11 ~", F: "[g3,c#4,e4]@9 [g3,c#4,e4] ~@2", G: "[f#3,a3,c4]@7 ~ [a3,c4,e4] ~@2 a3",
  H: "[g3,b3,e4]@8 ~ [g3,b3,e4]@2 ~", I: "[g3,c4,e4]@3 [g3,c4,e4]",
  J: "~@2 [g3,a3,c#4,f4] ~@3 a3@3 a3@3, ~ [g3,c#4,f4]", K: "[f#3,a3,c4,e4]@8 ~ [c4,e4,f#4,a4]@3",
  L: "[g3,b3,e4,g4]@7 ~ [a3,d4,e4,g4]@4", M: "[f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f#3,a3,c4] ~@2 [f#3,a3,c4] ~@2",
  N: "[g3,a3,c4] ~@2 [g3,a3,c4] ~ [e3,a3,c#4]@2 ~ [e3,a3,c#4]@3 ~", // Am7 A
  O: "[e3,g3,b3] ~@2 [e3,a3,c4] ~@2 [g3,b3,d4] ~ [b3,d4,g4]@4", // Em Am G
  P: "[g3,b3,d4] ~@2 [g3,b3,e4] ~@2 [b3,d4,f4] ~ [a#3,c#4,e4,g4]@4", Q: "~@3 [g3,c4,e4] ~@5 [g3,c4,e4] ~@2",
  R: "~@2 [c#4,f#4,a4] ~@2 [c#4,f#4,a4] [c#4,f4,a4]@4 ~ [c#4,f4,a4]", S: "[c4,e4,a4]@8 ~ [a3,c4,e4]@3",
  T: "~@2 [b3,d4,e4,g4]@3 [c4,d4,e4,a4] [b3,d4,e4,g4]@2 [c4,d4,e4,a4] [d4,e4,g4,b4]@2 [e4,g4,a4,c5]", // Em7 Am Em7 Am Em7 Am7
  U: "~@2 [c4,e4,g4] ~@2 [g3,c4,e4]@7", V: "~@3 [a3,c#4,f#4] ~@2 [a3,c#4,f4] ~@2 [a3,c#4,f4] ~@2",
  W: "[a3,c4,e4]@7 ~ [a3,c4,e4] ~@3", X: "[b3,d4,e4,g4] ~@2 [b3,d4,e4,g4]@2 ~ [b3,d4,e4,g4] ~ [c4,e4,a4]@4",
  Y: "[a3,c4,e4] ~ [a3,c4,f4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~", Z: "[c4,e4,g4]@3 ~@3 [c4,e4,g4]@3 ~@7 [a3,c4,e4]@6 ~@2",
  AA: "[c4,e4,g4]@3 ~@3 [c4,e4,g4]@3 ~@7 [c4,f4,a4]@6 ~@2", // C F
  AB: "[g3,b3,d4]@3 ~@3 [g3,b3,e4]@3 ~@3 [b3,d4,f4]@3 ~ [b3,d4,g4]@6 ~@2", // G Em Bdim G
  AC: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  AD: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,f4] ~ [a3,c#4,f4] ~", // A Aaug
  AE: "[a3,c4,e4]@9 ~ [a3,c4,e4]@3 ~@3 [a3,c4,e4]@2 [a3,c4,e4]@6", // Am
  AF: "[~@6 [g3,b3,e4]@3 ~@3 [g3,b3,e4]@3 ~ [g3,b3,e4]@3 ~@3 [g3,c4,e4]@6 ~@2 [c4,e4,a4]@3 ~@3 [c4,e4,a4]@3 ~@3 [c4,e4,a4]@3 ~@3]/2", // Em C Am
  AG: "[a3,c#4,f4]@6 ~@2 [a3,c#4,f4] [a3,c#4,f4]@3", AH: "[a3,c4,e4]@6 ~@2 [a3,c4,e4] [a3,c4,e4]@3",
  AI: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [g3,b3,d4] ~", // Am G
  AJ: "[f3,a3,c4] ~ [f3,a3,c4] ~ [f#3,a3,c4] ~ [f#3,a3,c4] ~", // F F#dim
  AK: "[g3,c4,e4] ~ [g3,c4,e4] ~ [a3,c#4,f4] ~ [a3,c#4,e4] ~", // C Aaug A
  AL: "[g3,c4,e4]@3 ~ g4@2 [a3,c4,e4]@3 ~@3 [a3,c4,f4]@3 ~ a4@2 [a3,c4,f4]@3 ~@3", // C Am F
  AM: "[g#3,c4,d#4]@3 ~@3 [g#3,c4,f4]@3 ~@3 [c4,d#4,f#4]@3 ~ [c4,d#4,g#4]@6 ~@2", // G# Fm Cdim G#
  AN: "[g#3,c#4,f4] ~ [g#3,c#4,f4] ~ [g#3,c#4,f4] ~ [g#3,c#4,f4] ~", // C#
  AO: "[a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f#4] ~ [a#3,d4,f#4] ~", // A# A#aug
  AP: "[a#3,c#4,f4]@9 ~ [a#3,c#4,f4]@3 ~@3 [a#3,c#4,f4]@2 [a#3,c#4,f4]@6", // A#m
  AQ: "~@6 [g#3,c4,f4]@3 ~ g#4 c#5 [g#4,c#5,f5]@3 ~ [g#4,c#5,d#5]@2 ~@2 d#5 c#5 a#4@2, ~@9 [g#4,c#5]@2 ~", // Fm C# G#sus4 C#5
  AR: "[c#4,f4,g#4]@6 [c#4,f4]@3 ~ [g#3,c#4,d#4]@2 ~@6 [c#4,f4,a#4]@3 ~@3", // C# G#sus4 A#m
  AS: "~@2 g#4 a#4 ~ c#5 d#5 ~ f#5 a#5 ~ f#5 g#5 ~ f5 c#5 ~ f5 d#5 ~ c#5 a#4 ~ g#4, [a#3,d4,f#4]@11 ~", // A#aug
  AT: "[c#4,d#4,a#4]@2 [c#4,d#4,a#4] [c#4,d#4,g#4]@2 [c#4,d#4,g#4] [c#4,d#4,f#4]@2 [c#4,d#4,f#4] [c#4,d#4,f4]@2 [c#4,d#4,f4]", // D#7 C#sus2 D#m7 C#
  AU: "[c4,d#4,g#4]@2 [c4,d#4,g#4] [c4,d#4,g#4]@2 [c4,d#4,g#4]!2 ~ [c4,d#4,g#4]@4", // G#
  AV: "[a#3,c#4,f4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f4] ~ [a#3,c#4,f4] ~", // A#m F# A#m
  AW: "[c#4,f4,g#4]@3 ~@3 [c#4,f4,g#4]@3 ~@7 [g#3,c#4,f4]@6 ~@2", // C#
  AX: "[a#3,c#4,f4]@3 ~@3 [a#3,c#4,f#4]@3 ~@3 [a#3,c#4,f4]@3 c#6 a#5 ~ [a#3,c#4,f4]@2 c#6 a#5 c#6 a#5, ~@18 [a#5,c#6] ~@5", // A#m F# A#m
  AY: "c#6 a#5 c#6 a#5 c#6 a#5 ~ c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 ~ a#5 c#6 a#5 c#6 a#5 c#6 a#5, [c#4,f4,g#4]@3 ~@3 [c#4,f4,g#4]@3 ~@7 [g#3,c#4,f4]@6 ~@2", // C#
  AZ: "[a#3,c#4,f4]@2 a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 ~ [a#3,c#4,f4]@2 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 ~ c#6, c#6 ~@5 [a#3,c#4,f#4]@3 ~@3 [a#5,c#6] ~@5 [a#3,c#4,f4]@3 ~@3", // A#m F# A#m
  BA: "a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 c#6 a#5 ~ c#6 a#5 c#6 a#5 c#6 a#5, [c#4,f4,g#4]@3 ~@3 [c#4,f4,g#4]@3 ~@7 [g#3,c#4,f4]@6 ~@2", // C#
  BB: "[a#3,c#4,f4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f4] ~ [a#3,c#4,f4] ~, c#6 ~@23", // A#m F# A#m
  BC: "[c#4,f4,g#4]@3 ~@3 [c#4,f4,g#4]@3 ~@3 [c#4,f4,g#4]@4 a#4@2 [c#4,f4,g#4]@4 ~@2", // C#
  BD: "[c#4,f#4,a#4]@4 ~@2 [c#4,f#4,a#4]@4 ~@2 [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@8", BE: "[~@5 [c4,d#4,g4,a#4]@42 ~]/4",
})).s("gm_piano").gain(0.35)

// chords · percussive organ
const percussive_organ = note("<~@59 A B C D E F E F E F E F E F E F E F E G H I J K L M N O P Q ~@5>".pickRestart({
  A: "[f5,g#5,c#6]@3 [f5,g#5,c#6]", B: "[d5,f#5,a#5]", C: "[f5,a#5,d#6]",
  D: "[c6,d#6,g#6]@2 [c6,d#6,g#6] [c6,d#6,g#6]@2 [c6,d#6,g#6] [c6,d#6,g#6]@2 [c6,d#6,g#6]@4", // G#
  E: "[c#5,f#5]@2 d#5 c#5, a#5, ~ g5", F: "[f5,g#5] [f5,a#5], c#5",
  G: "~@4 c#7 [a#6,c7] [f6,f#6,g#6] [c#6,d#6] [a#5,c6] [f#5,g#5] f5 [d#5,d#7] [f#6,g#6,a#6,c7,c#7] [c#6,d#6,f6] [a#5,c6] [f#5,g#5] [d#5,f5] c#5 [f#4,g#4,a#4,c5] [c#5,d#5,f5] [f#5,g#5] [a#5,c6] [c#6,d#6,f6] [f#6,g#6], c#5@17 ~@7, [f5,g#5]@5 ~ f5@2 ~@4, ~@6 a#5 ~@5", // A#sus2 Fm C#sus2 A#sus2 F#sus2 D# F# C# …
  H: "[a#6,c7] ~@23", I: "~@9 [a#4,c5] [c#5,d#5,f5] [f#5,g#5,a#5] [c6,c#6,d#6] [f6,f#6,g#6] a#6 ~ [c#6,f6,a#6]@6 ~@2",
  J: "[a#5,c#6,f#6]@3 ~@13 [a#5,c#6,g6]@7 ~", // F# Gdim
  K: "~@4 [c#6,f6,g#6]@3 ~@3 [c#6,f6,g#6]@3 ~@3 [c#6,f6,a#6]@2 [c#6,f6,g#6]@2 [a#5,c#6,g6]@2 [a#5,c#6,f#6]@2", // C# A#m C# Gdim F#
  L: "~@9 [a#4,c5] [c#5,d#5,f5] [f#5,g#5,a#5] [c6,c#6,d#6] [f6,f#6,g#6] a#6 ~ [a#5,c#6,g6]@6 ~@2", // A#sus2 C# F# Cm Fm Gdim
  M: "[f6,g#6,c#7]@3 ~ [e6,g6,c7]@2 [d#6,f#6,b6]@2 ~@2 [c#6,f6,a#6]@8 c#7 [a#6,c7] [f#6,g#6] [d#6,f6] [c6,c#6] [g#5,a#5]", // C# C B A#m A#sus2 F#sus2 D#sus2 C#maj7 …
  N: "~@2 [c6,d#6,g#6] ~ [c6,d#6,g#6] ~@3", O: "[c6,d#6,g#6]@3 ~@3 [c6,d#6,g#6]@3 ~@7 [d#6,g#6,a#6]@7 ~",
  P: "[g#5,c#6,f6]", Q: "[a#5,c#6,f#6]",
})).s("gm_percussive_organ").gain(0.25)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@21 A B C D A E C F ~@8 A B C D A G C H ~@49>".pickRestart({
  A: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  B: "[a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f4] ~ [a3,c#4,f4] ~", // F#m Aaug
  C: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~", D: "[g3,b3,e4] ~ [g3,b3,e4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~",
  E: "[g3,c#4,f#4] ~ [g3,c#4,f4] ~ [g3,c#4,f4] ~ [g3,c#4,f4] ~", // F# Gm7b5
  F: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,e4,g4] ~ [c4,e4,g4] ~", // G Em C
  G: "[a3,c#4,f4] ~ [a3,c#4,f4] ~ [a3,c#4,f4] ~ [a3,c#4,f4] ~", // Aaug
  H: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [g3,b3,d4] ~", // Am G
})).s("gm_electric_guitar_jazz").gain(0.15)

// other · trumpet
const trumpet = note(`<
  A B C D ~@10 E@2 F@2 G@2 H ~@9 E@2 F@2 I ~ H J K L M N O P Q ~@7 R ~ S@2 ~@8 T@2 U@2 T@2 V@2 T@2 U@2 T@2 ~ W X Y Z AA
  AB AC AD AE AF ~ AG@4
>`.pickRestart({
  A: "~@6 [c5,c6]@4 [c5,c6]@2 [a4,a5]@4 [c5,c6]@2 [a4,a5]@3 ~@3", // C A C A
  B: "[c5,c6]@4 ~@2 [c5,c6]@4 ~@2 [a4,a5]@4 [c5,c6]@7 ~", // C A C
  C: "~@3 [d4,d5]!2 ~ [d4,d5] ~@2 [d4,d5] ~@2 [d4,d5] ~@2 [d4,d5] ~@2 [d4,d5] ~ [e4,e5] [f4,f5] ~ [f#4,f#5]", // D E F F#
  D: "[g4,g5] ~@11", E: "[~@3 a5@2 g5@4 a5@2 c5@9 ~@4]/2", F: "[~@3 a5@2 g5@4 a5@2 c6@4 ~@9]/2",
  G: "[~@3 a5@2 g5@4 e5@2 d5@12 ~]/2", H: "[d4,d5]@4 ~@2 [e4,e5]@4 ~@2 [f4,f5]@3 ~ [g4,g5]@7 ~", I: "~@3 a5@2 g5@4 ~@3",
  J: "~@3 e5@2 ~ e5@2 g5 a5@2 c6", K: "~@4 a5@3 ~@17", L: "~@6 d5@3 ~@3 d5@4 e5@2 f5@4 f#5@2",
  M: "g5@3 ~@3 a5@3 ~@3 a#5@4 b5@2 ~@4 c6@2", N: "~@5 e5 e5@2 g5 a5 ~ c6", O: "~ a5 ~@4",
  P: "~@4 c6@2 a5@4 g5@2 c6@4 d6 c6 a5@4 g5@2", Q: "c6@3 ~ c6@3 ~@3 a5@2 ~@4 g5@6 ~@2", R: "d5@2 ~ e5@2 ~ f5@2 g5@4",
  S: "[d#5@2 ~ f5@2 ~ f#5@2 g#5 a#5@2 c#6@4 ~@9]/2", T: "[~@3 a#4@2 g#4@4 a#4@2 c#4@9 ~@4]/2",
  U: "[~@3 a#4@2 g#4@4 a#4@2 c#5@4 ~@9]/2", V: "[~@3 a#4@2 g#4@3 a#4 g#4 a#4 c#5@4 ~@9]/2",
  W: "[a#4,c#5,f#5] ~@3 [a#4,c#5,g5]@2", X: "[c#5,f5,g#5]@3 ~@13 [c#5,f5,a#5]@8",
  Y: "[a#4,c#5,f#5]@3 ~@13 [a#4,c#5,g5]@8", // F# Gdim
  Z: "~@4 [c#5,f5,g#5]@3 ~@3 [c#5,f5,g#5]@3 ~@3 [c#5,f5,a#5]@2 [c#5,f5,g#5]@2 [a#4,c#5,g5]@2 [a#4,c#5,f#5]@2", // C# A#m C# Gdim F#
  AA: "~@2 [a#4,c#5,g5]", AB: "[c#5,f5,g#5]@3 ~@13 [c#5,f5,a#5]@5 ~@3", AC: "~@2 [c5,d#5,g#5] ~ [c5,d#5,g#5] ~@3",
  AD: "[c5,d#5,g#5]@3 ~@3 [c5,d#5,g#5]@3 ~@7 [c5,d#5,a#5]@7 ~", // G# Cm7
  AE: "~@6 [f5,g#5,c#6]@3 ~ [f5,g#5,c#6]@2 [f5,g#5,a#5]@4 [f5,g#5,c#6]@2 [f5,g#5,a#5]@3 ~@3", // C# A#7 C# A#7
  AF: "[f5,g#5,c#6]@3 ~@3 [f5,g#5,c#6]@4 ~@2 [f5,g#5,a#5]@3 ~ [f5,g#5,c#6]@8", AG: "[~@5 [c4,d#4,g4]@42 ~]/4",
})).s("gm_trumpet").gain(0.7)

// other · brass section
const brass_section = note(`<
  A B C D ~@10 E@2 F@2 G@2 H ~@9 E@2 F@2 I J@2 K L M N O P Q R ~@6 J@2 S@2 ~@9 T@2 U@2 T@2 V@2 T@2 U@2 T@2 ~ W X Y Z AA
  AB AC AD AE AF ~ AG@4
>`.pickRestart({
  A: "~@6 [c5,c6]@4 [c5,c6]@2 [a4,a5]@4 [c5,c6]@2 [a4,a5]@3 ~@3", // C A C A
  B: "[c5,c6]@4 ~@2 [c5,c6]@4 ~@2 [a4,a5]@4 [c5,c6]@7 ~", C: "~@3 d5!2 ~ d5 ~@2 d5 ~@2 d5 ~@2 d5 ~@2 d5 ~ e5 f5 ~ f#5",
  D: "g5 ~@11", E: "[~@3 a5@2 g5@4 a5@2 c5@9 ~@4]/2", F: "[~@3 a5@2 g5@4 a5@2 c6@4 ~@9]/2",
  G: "[~@3 a5@2 g5@4 e5@2 d5@12 ~]/2", H: "[d4,d5]@4 ~@2 [e4,e5]@4 ~@2 [f4,f5]@3 ~ [g4,g5]@7 ~", I: "~@3 a5@2 g5@4 ~@3",
  J: "d4@2 ~ e4@2 ~ f4@2 g4@4", K: "~@3 e4@2 ~ e4@2 g4 a4@2 c5", L: "~@4 a4@3 ~@17",
  M: "~@6 d4@3 ~@3 d4@4 e4@2 f4@4 f#4@2", N: "g4@3 ~@3 a4@3 ~@3 a#4@4 b4@2 ~@4 c5@2", O: "~@5 e4 e4@2 g4 a4 ~ c5",
  P: "~ a4 ~@4", Q: "~@4 c5@2 a4@4 g4@2 c5@4 d5 c5 a4@4 g4@2", R: "c5@3 ~ c5@3 ~@3 a4@2 ~@4 g4@6 ~@2",
  S: "d#4@2 ~ f4@2 ~ f#4@2 g#4@4", T: "[~@3 a#4@2 g#4@4 a#4@2 c#4@9 ~@4]/2", U: "[~@3 a#4@2 g#4@4 a#4@2 c#5@4 ~@9]/2",
  V: "[~@3 a#4@2 g#4@3 a#4 g#4 a#4 c#5@4 ~@9]/2", W: "[f#4,f#5] ~@3 [g4,g5]@2", X: "[g#4,g#5]@3 ~@13 [a#4,a#5]@8",
  Y: "[f#4,f#5]@3 ~@13 [g4,g5]@8", // F# G
  Z: "~@4 [g#4,g#5]@3 ~@3 [g#4,g#5]@3 ~@3 [a#4,a#5]@2 [g#4,g#5]@2 [g4,g5]@2 [f#4,f#5]@2", AA: "~@2 [g4,g5]",
  AB: "[g#4,g#5]@3 ~@13 [a#4,a#5]@5 ~@3", AC: "~@2 [g#4,g#5] ~ [g#4,g#5] ~@3",
  AD: "[g#4,g#5]@3 ~@3 [g#4,g#5]@3 ~@7 [a#4,a#5]@7 ~", // G# A#
  AE: "~@6 [c#5,c#6]@3 ~ [c#5,c#6]@2 [a#4,a#5]@4 [c#5,c#6]@2 [a#4,a#5]@3 ~@3", // C# A# C# A#
  AF: "[c#5,c#6]@3 ~@3 [c#5,c#6]@4 ~@2 [a#4,a#5]@3 ~ [c#5,c#6]@8", AG: "[~@5 [d#4,a#4]@42 ~]/4",
})).s("gm_brass_section").gain(0.45).pan(0.3)

// other · trombone
const trombone = note(`<
  A B C D@2 ~@9 E@2 F@2 G@2 H I ~@8 E@2 F@2 J K L M N O P Q R S T U V U V U V W@2 X@2 ~@9 Y@2 Z@2 Y@2 AA@2 Y@2 Z@2 Y@2 ~
  AB AC AD AE AF AG AH AI AJ AK ~ AL@4
>`.pickRestart({
  A: "~@6 c4@4 c4@2 a3@4 c4@2 a3@3 ~@3", B: "c4@4 ~@2 c4@4 ~@2 a3@4 c4@7 ~",
  C: "~@3 d3!2 ~ d3 ~@2 d3 ~@2 d3 ~@2 d3 ~@2 d3 ~ e3 f3 ~ f#3", D: "[g3 ~@2 g2@20 ~]/2",
  E: "[~@3 a4@2 g4@4 a4@2 c4@9 ~@4]/2", F: "[~@3 a4@2 g4@4 a4@2 c5@4 ~@9]/2", G: "[~@3 a4@2 g4@4 e4@2 d4@12 ~]/2",
  H: "~@2 g3 ~@2 g3 ~@2 c#3@4", I: "c3 ~@5", J: "~@3 a4@2 g4@4 ~@3", K: "d4@2 ~ e4@2 ~ f4@2 g4@4",
  L: "g3 ~ g2@2 ~ g2@2 ~ g2@4", M: "~@3 e4@2 ~ e4@2 g4 a4@2 c5", N: "~@4 a4@3 ~@17",
  O: "~@6 d4@3 ~@3 d4@4 e4@2 f4@4 f#4@2", P: "g4@3 ~ [g2,g3]@3 ~@3 [g2,g3]@3 ~@3 [g2,g3]@2 [g2,g3]@3 ~ [g2,g3]@2",
  Q: "[c3,c4] ~@4 e4 e4@2 g4 a4 ~ c5", R: "~ a4 ~@4", S: "~@4 c5@2 a4@4 g4@2 c5@4 d5 c5 a4@4 g4@2",
  T: "c5@3 ~ c5@3 ~@3 a4@2 ~@4 g4@6 ~@2", U: "[f3,a3]@11 ~ [f#3,a3]@11 ~", V: "g3@2 ~ g#3@2 a3@5 ~@2",
  W: "[[g2,g3]@47 ~]/2", X: "[g#2,g#3]/2", Y: "[~@3 a#4@2 g#4@4 a#4@2 c#4@9 ~@4]/2",
  Z: "[~@3 a#4@2 g#4@4 a#4@2 c#5@4 ~@9]/2", AA: "[~@3 a#4@2 g#4@3 a#4 g#4 a#4 c#5@4 ~@9]/2", AB: "f#4 ~@3 g4@2",
  AC: "g#4@3 ~@13 a#4@8", AD: "f#4@3 ~@13 g4@8", AE: "~@4 g#4@3 ~@3 g#4@3 ~@3 a#4@2 g#4@2 g4@2 f#4@2", AF: "~@2 g4",
  AG: "g#4@3 ~@13 a#4@5 ~@3", AH: "~@2 g#4 ~ g#4 ~@3", AI: "g#4@3 ~@3 g#4@3 ~@7 a#4@7 ~",
  AJ: "~@6 c#4@3 ~ c#4@2 a#3@4 c#4@2 a#3@3 ~@3", AK: "c#4@3 ~@3 c#4@4 ~@2 a#3@3 ~ c#4@8", AL: "[~@5 c4@42 ~]/4",
})).s("gm_trombone").gain(0.45).pan(0.7)

// other · clarinet
const clarinet = note("<~@45 A B C D E F@2 G@3 ~@19 H@3 I J K ~@14>".pickRestart({
  A: "~@4 g3@2 a3@2 c4@2 d4@2 d#4@3 f4 d#4 c4 d4@4 c4@2", B: "e4@2 g4 a4 e4 g4@4 ~@3",
  C: "~@4 g4@2 a4@2 c5@2 d5@2 d#5@9 c5 d5 c5", D: "e5@3 f5 [d5,e5] c5 c#5@3 a5@10 ~@5",
  E: "~@4 g5@2 a5@2 c6@2 d6@2 d#6@2 ~ [d6,d#6,f6] c6@2 d6@4 c6@2", F: "[e6@4 f6@2 f#6@3 ~ g6@36 e6 g6]/2",
  G: "[a5 f5 g5@18 ~@2 e6@12 d6@2 c#6 e6@2 d#6@2 ~ c#6 ~ a#5 a5 ~@2 g5 ~ f#5 f5 e5@2 f5@2 ~ d#5@2 ~ c#5 ~@2 a#4 ~@8, ~@41 d6@2 ~@4 g#5@2 ~@7 e5@2 ~ d5@2 ~ c5@2 ~@8]/3",
  H: "[~@2 c#6@2 a#5@2 c#6@3 ~ c#6@4 c#6@2 a#5@2 c#6@3 ~ c#6@4 c#6@2 a#5@2 c#6@3 ~ c#6@36 d#6@2]/3",
  I: "c#6@4 a#5@2 f#5@4 a#5@2 g5@9 ~ a#5@2", J: "g#5@2 f5@2 c#5@2 g#5@2 f5@2 c#5@2 d5@2 d#5@2 e5@2 f5 e5 d#5 d5 c#5 c5",
  K: "c#5 ~@11",
})).s("gm_clarinet").gain(0.54)

// other · clarinet · soft notes · Bmaj7 Dmaj7 Emaj7 Fmaj7 Dmaj7 Cmaj7 A#maj7 G#maj7 …
const clarinet_soft = note(`<
// … 101 more lines

More by Right Said Fred