Strudelify

De nacht is nog zo lang

Renee de Haan

KeyA majorTempo185 bpm
0:00/0:00
// De nacht is nog zo lang — Renee de Haan
// 185 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 201 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 25.
setcpm(185/3)

// 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.

// chords · accordion
const accordion = note(`<
  A B@2 C@6 B@2 D E F@4 G H@2 I J@4 K@7 L@4 M N@4 O@2 P Q@5 B@2 R@6 B@2 S@6 T@4 U@4 V@3 W@5 B@2 C@6 B@2 D E F@4 G H@2 I
  J@4 K@7 L@4 M N@4 O@2 P Q@5 B@2 R@6 B@2 S@6 T@4 U@4 V@3 W@5 B@2 R@6 B@2 S@6 T@4 U@4 V@3 X@2 Y@3 V@3 Z@4 AA
>`.pickRestart({
  A: "~@10 [f#4,a4]@5 ~", B: "[[e4,g#4]@15 [d4,f#4]@6 [b3,d4]@5 [g#3,b3]@6]/2",
  C: "[[e4,g#4]@15 [d4,f#4]@5 ~ [f#4,a4]@8 [e4,g#4]@2 [d4,f#4]@11 [c#4,e4]@13 [c#4,a5]@2 ~ [c#4,a5]@2 ~ [d4,b5]@2 [e4,c#6]@2 ~ [f#4,d6]@2 [e4,c#6]@2 ~ [d4,b5]@2 ~ [c#4,a5]@2 ~ [d4,b5]@2 [e4,c#6]@2 ~@9 [f#4,a4]@5 ~]/6", // E D F#m E D C#m F#m G …
  D: "[e4,g#4]", E: "[b3,d4]@5 [d4,f#4]@5 [c#4,e4]@5 ~",
  F: "[~@4 a4@6 g#4@5 f#4@6 e4@5 d4@5 c#4@8 ~ a3@2 c#4@2 ~ e4@2 a4@3 ~@8 [c#4,e4]@6, [a3,c#4]@3 ~@29]/4", G: "[e4,c#5]",
  H: "[[e4,c#5]@15 [g#4,e5]@16 ~]/2", I: "d5@5 b4@5 d5@5 ~", J: "[c#5@5 a4@22 ~@2 f#4@3]/4",
  K: "[e4@15 d4@6 ~@8 g#3@2 e4@16 d4@6 f#4@5 e4@5 d4@8 ~ d4@2 c#4@38, ~@21 b3@10 ~@40 e4@2 ~@39]/7",
  L: "[e4@5 a4@4 ~ b4@5 [e4,c#5]@15 ~ [e4,c#5]@4 ~ [e4,c#5]@5 ~ [e4,b4]@5 [e4,a#4]@16 ~]/4", // C#m E5 Edim
  M: "[e4,a#4]@5 [e4,c#5]@5 [e4,b4]@5 ~", N: "[d5@8 ~ c5@2 b4@43 ~@5 d5@5, ~@4 c#5 ~@27]/4",
  O: "[c#5@12 d5@2 ~@2 b4@5 c#5@5 ~ d5@5, ~@7 c#5 ~@8, ~@15 c5@2 ~@15]/2", P: "b4",
  Q: "[a4@5 b4@5 c#5@5 a4@5 a4@6 g#4@5 f#4@6 e4@5 d4@5 c#4@8 ~ a3@2 c#4@2 ~ e4@2 a4@3 ~@8 [f#4,a4]@5 ~]/5", // F#m
  R: "[[e4,g#4]@15 [d4,f#4]@5 ~ [f#4,a4]@8 [e4,g#4]@2 [d4,f#4]@11 [c#4,e4]@13 c#4@2 ~ c#4@2 ~ d4@2 e4@2 ~ f#4@2 e4@2 ~ d4@2 ~ c#4@2 ~ d4@2 e4@2 ~@9 [f#4,a4]@5 ~]/6", // E D F#m E D C#m F#m
  S: "[[e4,g#4]@15 [d4,f#4]@5 ~ [f#4,a4]@8 [e4,g#4]@2 [d4,f#4]@11 [c#4,e4]@13 e4@2 ~ e4@2 ~ e4@2 e4@2 ~ d4@2 d4@2 ~ c#4@2 ~ c#4@2 ~ d4@2 [c#4,e4]@5 ~ [e4,a4]@5 [e4,b4]@6]/6", // E D F#m E D C#m A5 E5
  T: "[[e4,c#5]@15 [e4,c#5]@5 ~ [e4,c#5]@5 [d4,b4]@5 [c#4,a#4]@21 ~ [e4,c#5]@8 [d4,b4]@3]/4", // C#m G F# C#m G
  U: "[[f#4,d5]@8 [f4,c#5]@2 [e4,c5] [d4,b4]@13 d4@2 d4@2 ~ d4@2 d4@2 ~ c#4@2 ~ c#4@2 b3@2 ~ b3@2 ~ c#4@2 d4@2 ~@10 [f#4,d5]@5]/4", // D C# C G D
  V: "[[e4,c#5]@12 [f#4,d5]@2 ~@2 [d4,b4]@5 [e4,c#5]@5 [f#4,d5]@5 [d4,b4]@16 ~, ~@7 [e4,c#5] ~@16, ~@15 [d#4,c5]@2 ~@31]/3", // C#m D G C#m D G C#m Cm
  W: "[[c#4,a4]@5 [d4,b4]@5 [e4,c#5]@5 a4@5 a4@6 g#4@5 f#4@6 e4@5 d4@5 c#4@8 ~ a3@2 c#4@2 ~ e4@2 a4@3 ~@8 [f#4,a4]@5 ~, ~@15 c#4@11 ~@54]/5", // F#m G C#m F#m
  X: "[[c#4,a4]@5 [d4,b4]@5 [e4,c#5]@5 a4@5 ~@4 e4@2 ~ f#4@2 e4@2 ~, ~@15 c#4@11 ~@6]/2", // F#m G C#m
  Y: "[g#4@2 f#4@2 ~ e4@2 ~ d4@2 c#4@2 ~ b3@2 c#4@3 ~@6 c#4@2 c#4@2 ~ d4@2 e4@3 ~@9 [f#4,d5]@5]/3", // D
  Z: "[[c#4,a4]@5 [d4,b4]@5 [e4,c#5]@5 a4@5 a4@6 g#4@5 f#4@6 e4@5 d4@5 c#4@4 ~@7 [d4,g#4]@3 ~@3, ~@15 c#4@11 ~@38]/4", // F#m G C#m Ddim
  AA: "[c#4,e4,a4] ~@3", // A
})).s("gm_accordion").gain(0.4)

// bass · tuba
const bass = note(`<
  A@8 B@6 C@8 D@8 E@8 F@8 G@2 H@8 A@8 I@8 J@7 K@8 L@7 C@8 D@8 E@8 F@8 G@2 H@8 A@8 I@8 J@7 M@8 N@8 O@8 P@8 Q@8 R@2
>`.pickRestart({
  A: "[~@15 b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2@4 ~@12 a1@4 ~@12 e2]/8",
  B: "[~@10 e2@4 ~ b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@2 a2@4 ~ g#2@4 ~ f#2]/6",
  C: "[~@5 e2@5 d2@4 ~ c#2@7 ~@4 a1@11 ~@10 a1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e2@4 ~@7 e2@4 ~ a1@4 ~@12 e2]/8",
  D: "[~@15 a1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2]/8",
  E: "[~@15 a1@4 ~@12 e2@4 ~@12 a1@4 ~@12 a2@4 ~@7 g2@4 ~ f#2@4 ~@12 f#1@4 ~@2 g#1@4 ~ a#1@4 ~ b1@4 ~@12 f#1]/8",
  F: "[~@15 b1@4 ~@12 b1@4 ~@7 e2@4 ~ a1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2]/8",
  G: "[~@15 a1@4 ~@2 e2@4 ~ c#2@5 a1]/2",
  H: "[~@10 a1@4 ~ b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@5 a1@4 ~@12 e2@4 ~@12 a1@4 ~@12 e2]/8",
  I: "[~@15 a1@4 ~@12 a2@4 ~@7 g2@4 ~ f#2@4 ~@12 f#2@4 ~@7 f#2@4 ~ b1@4 ~@12 f#2@4 ~@12 b1@4 ~@12 b1]/8",
  J: "[~@10 e2@4 ~ a1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2@4 ~@12 a1]/7",
  K: "[~@5 e2@4 ~ c#2@5 a1@15 ~ b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2@4 ~@12 a1]/8",
  L: "[~@15 e2@4 ~@7 e2@4 ~ b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@2 a2@4 ~ g#2@4 ~ f#2]/7",
  M: "[~@5 e2@4 ~ c#2@5 a1@15 ~ b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@5 a1@4 ~@12 e2@4 ~@12 a1]/8",
  N: "[~@15 e2@4 ~@12 b1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2@4 ~@12 a1]/8",
  O: "[~@15 e2@4 ~@12 a1@4 ~@12 a2@4 ~@7 g2@4 ~ f#2@4 ~@12 f#2@4 ~@7 f#2@4 ~ b1@4 ~@12 f#2@4 ~@12 b1]/8",
  P: "[~@15 b1@4 ~@7 e2@4 ~ a1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2@4 ~@12 a1]/8",
  Q: "[~@15 e2@4 ~@7 e2@5 a1@4 ~@12 e2@4 ~@12 b1@4 ~@12 e1@4 ~@2 f#1@4 ~ g#1@4 ~ a1@4 ~@12 e2@4 ~@7 e2@5 a1]/8",
  R: "[~@10 e1@4 ~ a1@4 ~@13]/2",
})).s("gm_tuba").gain(0.45)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@3 A ~@4 B ~@2 A ~@4 C ~@18 D@2 ~@14 A ~@3 E ~@3 A ~@3 E ~@3 F@2 ~@2 G ~@11 A ~@4 B ~@2 A ~@4 C ~@18 D@2 ~@14 A ~@3 E
  ~@3 A ~@3 E ~@3 F@2 ~@2 G ~@11 A ~@3 E ~@3 A ~@3 E ~@3 F@2 ~@2 G ~@13 C ~@3
>`.pickRestart({
  A: "~@8 [b3,d4,g#4] ~@7", B: "~@3 e4 ~ e4@2 ~@4 [e4,a4]@3 ~@2, ~@5 c#4 ~@2", C: "~@3 [c#4,e4,a4] ~@12",
  D: "~@5 e4@2 ~@4 e4@3 ~@2", E: "~@8 [c#4,e4,a4] ~@7", F: "~@5 c#4@2 ~@4 c#4@3 ~@2", G: "~@8 [b3,d4,f#4] ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.8)

// other · fretless bass
const fretless_bass = note(`<
  A B C D E F@2 ~ A D G H I J ~@2 K L M N O P@2 ~ Q R S R T U@2 ~ V L W X Y Z@3 AA L AB AC AD AE@2 ~ AF D G D AG F@2 ~
  AF D G H E AH@2 ~ AI AJ W AK@2 AL@2 ~ AM L AN AO AP AQ@2 ~ A B C D E F@2 ~ A D G H I J ~@2 K L M N O P@2 ~ Q R S R T
  U@2 ~ V L W X Y Z@3 AA L AB AC AD AE@2 ~ AF D G D AG F@2 ~ AF D G H E AH@2 ~ AI AJ W AK@2 AL@2 ~ AM L AN AO AP AQ@2 ~
  AF D G D AG F@2 ~ AF D G H E AH@2 ~ AI AJ W AK@2 AL@2 ~ AM L AN AO AP AQ@2 ~ AM L AN AO AP AQ@2 ~@2
>`.pickRestart({
  A: "~@11 a4@5", B: "g#4@7 ~", C: "f#4@4 ~ d4@5 b3@5 ~", D: "g#4@15 ~", E: "f#4@5 a4@7 ~ g#4@2 ~",
  F: "[f#4@9 ~ e4@22]/2", G: "f#4@5 d4@5 b3@5 ~", H: "g#4", I: "d4@5 f#4@5 e4@5 ~", J: "c#4", K: "~@10 e3@5 ~",
  L: "c#4@15 ~", M: "c#4@5 c#4@4 ~@2 c#4@5", N: "e4", O: "d4@5 b3@4 ~ d4@5 ~", P: "[c#4@10 ~ a3@21]/2",
  Q: "~@10 f#4@5 ~", R: "e4@15 ~", S: "d4@5 b3@4 ~ g#3@5 ~", T: "d4@4 ~ f#4@7 ~ e4@2 ~", U: "[d4@9 ~ c#4@21 ~]/2",
  V: "e3@4 ~ a3@5 ~ b3@4 ~", W: "c#4@4 ~ c#4@4 ~ b3@4 ~@2", X: "a#3", Y: "a#3@4 ~ c#4@7 ~ b3@2 ~",
  Z: "[d4@10 ~ b3@22 ~@15]/3", AA: "~@11 d4@4 ~", AB: "b3@5 c#4@4 ~ d4@5 ~", AC: "b3@15 ~", AD: "a3@5 b3@4 ~ c#4@5 ~",
  AE: "[a3@7 ~]/2", AF: "~@10 a4@5 ~", AG: "f#4@4 ~ a4@7 ~ g#4@2 ~", AH: "[f#4@10 ~ e4@17 ~@4]/2",
  AI: "e3@5 a3@5 ~ b3@4 ~", AJ: "c#4@7 ~", AK: "[a#3@20 ~ c#4@7 ~ b3@2 ~]/2", AL: "[d4@9 ~ b3@22]/2", AM: "~@11 d4@5",
  AN: "b3@4 ~ c#4@4 ~ d4@5 ~", AO: "b3", AP: "a3@4 ~ b3@4 ~ c#4@5 ~", AQ: "a3/2",
})).s("gm_fretless_bass").gain(0.35)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A@3 B C D C E A@3 F G D G H C@2 A@2 C@3 I A J A@2 C@5 K L M N@2 O N C P A@2 C@2 G Q A@4 C@3 R A@4 C@3 R C K S T N U
  N V C P A@2 C@2 G Q A@3 B C D C E A@3 F G D G H C@2 A@2 C@3 I A J A@2 C@5 K L M N@2 O N C P A@2 C@2 G Q A@4 C@3 R A@4
  C@3 R C K S T N U N V C P A@2 C@2 G Q A@4 C@3 R A@4 C@3 R C K S T N U N V C P A@2 C@2 G Q C P A@2 C@2 W X
>`.pickRestart({
  A: "~@5 [b3,d4,g#4]@2 ~@4 [d4,g#4]@3 ~@2, ~@5 b3 ~@2", // G#dim Ddim
  B: "~@5 [b3,d4,g#4] b3 [d4,g#4] [b3,d4,g#4]!2 b3 [d4,g#4] [b3,d4,g#4]!2 b3 [d4,g#4]", // G#dim Ddim G#dim Ddim G#dim Ddim
  C: "~@5 [c#4,e4,a4]@2 ~@4 [e4,a4]@3 ~@2, ~@5 c#4 ~@2", // A A5
  D: "[c#4,e4,a4] ~ [c#4,e4,a4]!2 ~ [c#4,e4,a4]@2 ~@4 [e4,a4]@3 ~@2, ~@5 c#4 ~@2", // A A5
  E: "[a3,c#4,f#4] ~ [a3,c#4,f#4]!2 ~ [a3,c#4,f#4]@2 ~@3 a3 [c#4,f#4] ~@4", // F#m F#5
  F: "[b3,d4,g#4] ~ [b3,d4,g#4]!2 ~ [b3,d4,g#4]@2 ~@4 [d4,g#4]@3 ~@2, ~@5 b3 ~@2", // G#dim Ddim
  G: "~@5 [c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 ~ [e4,a4]@3 ~@2, ~@5 c#4 ~@2", // A A5
  H: "~@5 [c#4,e4,a4]@2 ~@2 [c#4,e4,a4] c#4 [e4,a4] [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A A5 A
  I: "~@3 [c#4,e4,a4]@2 [c#4,e4,a4]@2 ~@3 c#4 [e4,a4] [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A A5 A
  J: "~@3 [b3,d4,g#4]@2 [b3,d4,g#4]@2 ~@4 [d4,g#4]@3 ~@2, ~@5 b3 ~@2", // G#dim Ddim
  K: "~@5 [c#4,e4,a4]@2 ~@4 [d4,g4]@3 ~@2, ~@5 b3 ~@2", // A G5
  L: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@2 ~@4 [c#4,f#4]@3 ~@2, ~@5 a#3 ~@2", // F# F#5
  M: "~@4 [a#3,c#4,f#4] [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4] ~ [c#4,f#4]@3 [a#3,c#4,f#4] ~, ~@5 a#3 ~@2", // F# F#5 F#
  N: "~@5 [b3,d4,f#4]@2 ~@4 [d4,f#4]@3 ~@2, ~@5 b3 ~@2", // Bm D
  O: "~@5 [b3,d4,f#4] ~@2 [b3,d4,f#4] ~@2 [d4,f#4]@3 ~@2, ~@5 b3 ~@2", // Bm D
  P: "~@5 [c#4,e4,a4]@2 ~@2 [c#4,e4,a4] ~ [e4,a4]@2 [c#4,e4,a4] ~ [c#4,e4,a4], ~@5 c#4 ~@2", // A A5 A
  Q: "~@5 [c#4,e4,a4]@2 ~@3 c#4 [e4,a4] [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A A5 A
  R: "[c#4,e4,a4] ~ [c#4,e4,a4]!2 ~ [c#4,e4,a4]@2 ~@3 c#4 [e4,a4] ~@4", // A A5
  S: "~@5 [a#3,e4,f#4]@2 ~@4 [e4,f#4]@3 ~@2, ~@5 a#3 ~@2", // F#7 Esus2
  T: "[a#3,e4,f#4] ~ [a#3,e4,f#4]!2 ~ [a#3,e4,f#4]@2 ~@4 [e4,f#4]@3 ~@2, ~@5 a#3 ~@2", // F#7 Esus2
  U: "[b3,d4,f#4] ~ [b3,d4,f#4]!2 ~ [b3,d4,f#4]@2 ~@4 [d4,f#4]@3 ~@2, ~@5 b3 ~@2", // Bm D
  V: "[b3,d4,f#4] ~ [b3,d4,f#4]!2 ~ [b3,d4,f#4]@2 ~@3 b3 [d4,f#4] ~@4", // Bm D
  W: "[c#4,e4,a4]@2 ~@9 [d4,g#4]@3 ~@2, ~@5 b3 ~@2", X: "[c#4,e4,a4] ~@7",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.3)

// chords · accordion
const accordion_2 = note(`<
  A B@4 C@3 D E@4 F G@2 H ~@5 I J@3 K L@2 M@2 N O@5 P@2 Q R S@4 T U@2 A B@4 C@3 D B@4 V@2 W X Y Z AA@5 AB AC@2 AD@3 AE@2
  AF B@4 C@3 D E@4 F G@2 H ~@5 I J@3 K L@2 M@2 N O@5 P@2 Q R S@4 T U@2 A B@4 C@3 D B@4 V@2 W X Y Z AA@5 AB AC@2 AD@3
  AE@2 AF B@4 C@3 D B@4 V@2 W X Y Z AA@5 AB AC@2 AG@3 AH AI AJ AC@2 AD@3 AK@2 AL
>`.pickRestart({
  A: "~@11 [f#5,a5]@5", // F#m
  B: "[[e5,g#5]@15 [d5,f#5]@6 [b4,d5]@5 [g#4,b4]@5 [e5,g#5]@16 [d5,f#5]@5 [f#5,a5]@9 [e5,g#5]@3]/4", // E D Bm G#m E D F#m E
  C: "[[d5,f#5]@10 ~@14 a4 ~@2 a4@2 b4 ~@2 c#5 ~ d5 ~@2 c#5@2 ~ b4@2 a4 ~@2 b4@2 ~, ~@5 e5@14 ~@5, ~@10 c#5@21 ~@17]/3", // D
  D: "c#5@2 ~@9 [f#5,a5]@5", // F#m
  E: "[[e5,g#5]@15 [d5,f#5]@6 [b4,d5]@5 [g#4,b4]@5 [e5,g#5]@16 [b4,d5]@6 [d5,f#5]@5 [c#5,e5]@6]/4", // E D Bm G#m E Bm D C#m
  F: "[a4,c#5]@5 [c#5,a5]@5 [b4,g#5]@5 ~", // A F#m E
  G: "[[a4,f#5]@5 [g#4,e5]@5 [f#4,d5]@5 [e4,c#5]@7 ~@2 a4@2 e4@2 ~ [a4,e5] ~@2, ~@24 c#4 ~ c#5 ~@5]/2", // D C#m D C#m A5
  H: "[c#5,a5] ~@15", I: "[d5,f#5]@8 [c#5,e5]@2 [b4,d5]@2 ~ [d5,f#5]@2 ~",
  J: "[[c#5,e5]@15 [c#5,e5]@5 ~ [d5,f#5]@5 [f#5,a5]@5 [e5,g#5]@17]/3", K: "[d5,f#5]@5 [b4,d5]@8 [g#4,b4]@3",
  L: "[[e5,g#5]@15 [d5,f#5]@5 [f#5,a5]@6 [e5,g#5]@6]/2", // E D F#m E
  M: "[[d5,f#5]@10 [c#5,e5]@14 [c#5,e5]@2 [c#5,e5]@2 ~ [c#5,e5] ~@2]/2", // D C#m
  N: "[c#5,e5]@2 [b4,d5]@2 ~ [b4,d5]@3 [a4,c#5]@2 [a4,c#5]@2 ~ [b4,d5]@2 ~", // C#m Bm A Bm
  O: "[[c#5,e5]@2 ~@14 a4@26 [g4,b4]@5 [f#4,a#4]@33, ~@15 c#5@27 ~@38]/5", // C#m G F#
  P: "[[b4,d5]@24 d5 ~@2 [b4,d5]@2 [c#5,e5] ~@2]/2", // Bm C#m
  Q: "[d5,f#5] ~ g#5@2 ~ [d5,f#5]@2 ~ [c#5,e5]@2 [b4,d5]@2 ~ [c#5,e5]@2 ~, ~@2 e5 ~@13", R: "[d5,f#5]@2 ~@8 f#5@5 ~",
  S: "[e5@15 d5@5 e5@5 ~ f#5@5 ~@14 e5@2 c#5@6 d5@5 e5@4 ~@2, ~@31 d5@16 ~@17]/4", T: "c#5@5 [f#5,a5]@5 [e5,g#5]@6",
  U: "[[d5,f#5]@5 [c#5,e5]@5 [b4,d5]@5 c#5@9 a4@2 c#5 ~@2 e5@2 a5, ~@15 a4@6 ~@11]/2", // D C#m Bm
  V: "[[d5,f#5]@10 [c#5,e5]@13 ~ [c#5,e5] ~ e5 c#5@2 [c#5,e5] ~@2]/2", // D C#m
  W: "[c#5,e5] ~ [b4,d5] ~@2 [b4,d5]@2 ~ [a4,c#5]@2 [a4,c#5] ~@2 [b4,d5]@2 ~", X: "e5@5 a5@5 ~ b5@5, c#5 ~@7",
  Y: "[a5,c#6]@15 ~", Z: "[a5,c#6]@4 ~ [a5,c#6]@5 [g5,b5]@5 ~",
  AA: "[[f#5,a#5]@21 ~@6 [f#5,d6]@2 [d5,b5]@2 [f#5,d6]@12 ~@13 [b4,d6] ~ d6 b4@2 [b4,d6] ~@2 [b4,d6] ~ [a4,c#6] ~@2 [a4,c#6]@2 ~ [g#4,b5]@2 [g#4,b5] ~@2 [a4,c#6]@2 ~, ~@21 [e5,c#6]@9 ~@13 [d5,b5]@22 ~@15]/5", // F# D G D Bm A G#m A …
  AB: "[b4,d6]@2 ~@8 [f#5,d6]@5 ~", // Bm D
  AC: "[[e5,c#6]@12 ~ [e5,c#6]@2 ~ [d5,b5]@5 [e5,c#6]@5 [f#5,d6]@5 ~, ~@12 [f#5,d6]@2 ~ [d#5,c6]@2 ~@15]/2", // C#m G C#m D Cm
  AD: "[[d5,b5]@13 ~@2 [c#5,a5]@6 [d5,b5]@5 [e5,c#6]@5 [c#5,a5]@6 [c#5,a5]@5 [b4,g#5]@5 ~, ~@13 [e5,c#6]@2 ~@33, ~@7 [d5,b5] ~@16]/3", // G F#m G C#m F#m E C#m G
  AE: "[[a4,f#5]@5 [g#4,e5]@5 [f#4,d5]@5 [e4,c#5]@6 ~@3 a4@2 e4@2 ~ [a4,e5] ~@2, ~@24 c#4 ~ c#5 ~@5]/2", // D C#m D C#m A5
  AF: "[c#5,a5] ~@10 [f#5,a5]@5", // F#m
  AG: "[[d5,b5]@13 ~@2 [c#5,a5]@6 [d5,b5]@5 [e5,c#6]@5 [c#5,a5]@6 ~@3 e6@2 f#6 d5@2 [c#5,e6]@2 ~, ~@13 [e5,c#6]@2 ~@33, ~@14 [d5,b5]@2 ~@24 c#5 ~@7]/3", // G F#m G C#m F#m C#m G
  AH: "e5@2 [d5,f#6] ~@2 [c#5,e6]@2 ~ [b4,d6]@2 a4@2 ~ [g#4,b5]@2 ~, g#6 ~@9 c#6 ~@5", // D C#m Bm G#m
  AI: "[a4,c#6]@2 ~@6 a4@2 c#6@2 ~ [b4,d6] ~@2, ~@8 c#6 ~ a4 ~@5", AJ: "[c#5,e6] ~@9 [f#5,d6]@5 ~",
  AK: "[[a4,f#5]@5 [g#4,e5]@5 [f#4,d5]@5 [e4,c#5]@4 ~@7 [b4,g#5]@2 ~@4]/2", AL: "[c#5,a5]@3 ~@13",
})).s("gm_accordion").gain(0.35).pan(0.8)

// chords · reed organ
const reed_organ = note(`<
  ~ A@4 B@4 A@4 C@4 D@2 E@2 B@4 F@8 G@2 H@2 I@4 D@2 E@2 B@4 A@4 B@4 A@4 B@4 G@2 H@2 I@4 D@2 E@2 B@4 A@4 B@4 A@4 C@4 D@2
  E@2 B@4 F@8 G@2 H@2 I@4 D@2 E@2 B@4 A@4 B@4 A@4 B@4 G@2 H@2 I@4 D@2 E@2 B@4 A@4 B@4 A@4 B@4 G@2 H@2 I@4 D@2 E@2 B@4
  D@2 E@2 J@3 K
>`.pickRestart({
  A: "[b3,d4,e4,g#4]/4", B: "[c#4,e4,a4]/4", C: "[[c#4,e4,a4]@59 ~@5]/4", D: "[c#4,e4,a4]/2", E: "[b3,d4,e4,g#4]/2",
  F: "[[b3,d4,e4,g#4]@63 ~ [e4,a4]@64, ~@63 c#4@63 ~@2]/8", G: "[[c#4,e4,a4]@13 [b3,d4,g4]@3]/2",
  H: "[a#3,c#4,e4,f#4]/2", I: "[b3,d4,f#4]/4", J: "[[c#4,e4,a4]@34 ~@8 [b3,d4,g#4]@3 ~@3]/3", K: "[c#4,e4,a4]@3 ~@13",
})).s("gm_reed_organ").gain(0.13)

// other · glockenspiel
const glockenspiel = note(`<
  A B C B D E ~@2 A B C B F G H I ~@32 A B C B D E ~@2 A B C B D E ~@2 J K L M N O ~@2 P K Q R S G T I A B C B D E ~@2 A
  B C B F G H I ~@32 A B C B D E ~@2 A B C B D E ~@2 J K L M N O ~@2 P K Q R S G T I A B C B D E ~@2 A B C B D E ~@2 J K
  L M N O ~@2 P K Q R S U ~@2 P K Q R S G T V U
>`.pickRestart({
  A: "~@11 a7 ~@4", B: "g#7 ~@7", C: "f#7@2 ~@3 d7 ~@5 b6@2 ~@3", D: "f#7 ~@4 a7@2 ~@6 g#7 ~@2", E: "f#7 ~@10 e7@2 ~@3",
  F: "b6 ~@4 d7@2 ~@4 c#7 ~@4", G: "a6 ~@4 a7 ~@5 g#7@2 ~@3", H: "f#7 ~@4 e7 ~@5 d7@2 ~@3", I: "c#7 ~@15",
  J: "e6@2 ~@3 a6 ~@5 b6 ~@4", K: "c#7 ~@7", L: "c#7 ~@4 c#7 ~@5 b6 ~@4", M: "a#6 ~@15", N: "~@5 c#7@2 ~@6 b6 ~@2",
  O: "d7 ~@10 b6@2 ~@3", P: "~@11 d7@2 ~@3", Q: "b6@2 ~@3 c#7@2 ~@4 d7@2 ~@3", R: "b6 ~@7",
  S: "a6@2 ~@3 b6@2 ~@4 c#7@2 ~@3", T: "f#7 ~@4 e7 ~@5 d7 ~@4", U: "a6 ~@15", V: "a6 ~@10 e6 ~@4",
})).s("gm_glockenspiel").gain(0.35).pan(0.3)

// other · drawbar organ
const drawbar_organ = note(`<
  ~ A@4 B@4 A@4 B@4 ~@32 A@4 B@4 A@4 B@5 C D@2 E@4 B@2 A@2 B@4 A@4 B@4 A@4 B@4 ~@32 A@4 B@4 A@4 B@5 C D@2 E@4 B@2 A@2
  B@4 A@4 B@4 A@4 B@5 C D@2 E@4 B@2 A@2 B@6 A@2 B@2 F ~
>`.pickRestart({
  A: "e5@3 g#5@2 b5@3 d6@3 b5@2 g#5@3", B: "e5@3 a5@2 c#6@3 e6@3 c#6@2 a5@3", C: "e5@3 a5@2 c#6@3 e6@3 b5@2 g5@3",
  D: "c#5@3 f#5@2 a#5@3 c#6@3 a#5@2 f#5@3", E: "d5@3 f#5@2 b5@3 d6@3 b5@2 f#5@3", F: "e5@3 ~@13",
})).s("gm_drawbar_organ").gain(0.2).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~ A@47 B A@31 B A@47 B A@31 B A@38 C A>".pickRestart({
  A: "x", B: "x ~@4 x ~@5 x ~@4", C: "x ~@10 x ~@4",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@7 B A@6 B C A@3 D A@3 C A@5 D A@8 B C A@6 B E A@2 B A@3 B C A@2 B A@3 B A@7 B C A@6 B E A@7 B A@6 B C A@3 D A@3 C
  A@5 D A@8 B C A@6 B E A@2 B A@3 B C A@2 B A@3 B A@7 B C A@6 B E A@2 B A@3 B C A@2 B A@3 B A@7 B C A@6 B C A@4 F A G H
>`.pickRestart({
// … 15 more lines

More by Renee de Haan