Strudelify
All in a Mouse's Night cover art

Wind & Wuthering

All in a Mouse's Night

Genesis

KeyG majorTempo145 bpm
0:00/0:00
// All in a Mouse's Night — Genesis
// 145 bpm, 4/4, key G 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 (4/4 at bar 1, 3/4 at bar 11, 4/4 at bar 54, 6/8 at bar 55, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 3 "Bass Pedal" named as a bass, played on electric bass finger (its rock organ patch is not one)
// note: duplicate parts dropped: ch 6 "Flute sound" ocarina (copy of ch 1 "Tinkly sound" celesta)
// note: Full arrangement: all 264 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(145/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "Bass Pedal"
const bass = note(`<
  ~@9 A@5 B@12 C@3 D@3 E@2 F G H@3 ~ I@3 J@3 K@3 L@3 M N@3 O@6 P@6 Q@4 R@6 S@6 T@3 U V W@3 X@3 ~ Y@3 Z@3 AA@3 AB AC@3
  AD@3 AE@3 AF@6 AG@4 AH@2 AG@4 AH@2 AI@3 AJ@4 AK@6 AL@3 AM@2 AN@8 ~@8 AO@5 AP@8 ~@8 AQ@8 AR@6 AS@4 AT@5 AU@5 AV@5 AW@4
  AX@5 AY@5 AZ@5 BA@5 BB@5 BC@8 BD@5 BE
>`.pickRestart({
  A: "[~@13 c#2@107]/5", B: "[b1@36 c#2@77 c#3@2 ~@2 c3@6 a#2@3 g#2@2 ~ f#2@2 ~ c#2@12]/6", C: "[b1 c#2]/3",
  D: "[c#2 a1 c#2 a1]/3", E: "[c2@3 d2@3 ~@2]/2", F: "~@2 f#1 ~@3 f#1!2", G: "~@6 f#1!2", H: "~@6 b1!2", I: "c#2!2 ~@6",
  J: "~@2 f#1!2 ~@4", K: "~@2 b1!2 ~@4", L: "~@4 c#2!2 ~@2", M: "~ e2 d2 c2", N: "[b1 a2@11]/3",
  O: "[~ g#2@12 ~@6 e2@5, ~@39 g2@19 ~@14]/6", P: "[~ d#2@12 d2@11]/6", Q: "[~@6 c#2@78 c#3@2 ~ c3@6 a#2@3]/4",
  R: "[g#2@2 ~ f#2@2 ~ c#2@12 b1@36 c#2@78 c#3@2 ~ c3@6 a#2@3]/6",
  S: "[g#2@2 ~ f#2@2 ~ c#2@12 b1@36 c#2@36 c#2@18 a1@18 c#2@18]/6", T: "[a1 c2 d2 ~]/3", U: "f#1 ~@3 f#1!2 ~@2",
  V: "~@4 f#1!2 ~@2", W: "~@4 b1!2 ~@2", X: "~@6 c#2!2", Y: "f#1!2 ~@6", Z: "b1!2 ~@6", AA: "~@2 c#2!2 ~@4",
  AB: "e2 d2 c2 b1", AC: "[a2@71 ~]/3", AD: "g#2/3", AE: "[~ e2, g2@19 ~@17]/3", AF: "[d#2 d2]/6",
  AG: "[c#2@78 c#3@2 ~ c3@6 a#2@3 g#2@2 ~ f#2@2 ~]/4", AH: "[c#2 b1@3]/2", AI: "[c#2@2 c#2 a1]/3",
  AJ: "[c#2@18 a1@18 c2@8 ~ d2@9 c2@10 d2@10 c2@11 ~ d2@10]/4",
  AK: "[~ c2@15 d2@14 c2@9 ~ d#2@29 ~ f1@29 ~ g1@14 a1@8 b1@14 ~ c2@7]/6", AL: "[d2@5 d#2@10 f1@9]/3",
  AM: "[~ g1@15]/2", AN: "[~@7 c1@89]/8", AO: "[~@17 g1@103]/5", AP: "[~ c1@11]/8", AQ: "[~@18 g1@118 c1 c1@55]/8",
  AR: "[~@49 b1@15 e1@80, ~@5 c2@46 ~@93]/6", AS: "[~ c2@18 b1@29]/4", AT: "[~@2 a1@59 d1@59]/5",
  AU: "[~ c1@60 g1@30 f#1@29]/5", AV: "[~ e1@59 a1@60]/5",
  AW: "[g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~, ~@29 d3 ~@18]/4",
  AX: "[g3@2 ~@3 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~ g3, ~@81 d3@2 ~@37]/5",
  AY: "[~@4 f#3@14 e3@2 d3 ~ g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~ g3@2, ~@40 d3 ~@19]/5",
  AZ: "[~@17 e3@2 d3 ~ g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~ g3@2 ~, ~@3 f#3@16 ~@60 d3@2 ~@39]/5",
  BA: "[~@2 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15 e3@2 d3 g2@36 ~ g3@2 ~@2]/5",
  BB: "[~ f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15 ~ d3@2 g2@36 ~ g3@2 ~@3, ~@75 e3@2 ~@43]/5",
  BC: "[~@14 e3@2 d3 ~ g2@36 ~ g3@2 ~@2 f#3@15 ~ d3 ~ g2@36 ~ g3@2 ~@3 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@14, f#3@8 ~@29 e3 ~@58]/8",
  BD: "[~@2 d3 ~ g2@36 ~ g3@2 ~@3 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15, ~ e3@2 ~@117]/5", BE: "~ d3 ~@22, e3 ~@11",
})).s("gm_electric_bass_finger").gain(0.69)

// chords · church organ · "Organ"
const church_organ = note(`<
  ~@9 A B@4 C@6 D@7 E@2 F@3 G@2 ~@19 H@6 I@3 J@3 K@3 L@6 M@6 N@4 O@3 ~@19 P@6 Q@3 R@3 S@3 T@6 U@6 V@3 W@3 X@5 Y@8 ~@112
>`.pickRestart({
  A: "~ [c#4,f4,g#4]", B: "[~ [c#4,f4,g#4]@47]/4", C: "[~ [d#4,f#4]@37 ~ [c#4,f4]@104 ~, ~ b3@36 ~ g#4@104 ~@2]/6",
  D: "[d#4@36 [c#4,f4,g#4]@107 ~ [b3,d#4]@24, f#4@40 ~@103 f#4@25, b3@17 ~@67]/7", E: "[~ [c#4,f4,g#4]@3]/2",
  F: "[[b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4] [b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4], ~@2 c#4 ~@3 c#4 ~]/3", // B A5 B A5 B
  G: "[[d4,f#4]@3 ~, a3 ~@23]/2", H: "[~@6 a4@71 d#5@35 ~ f4@31, ~ c5@23, ~@6 e5@69 ~@2 g#4@67]/6",
  I: "[~ d5@6 e4@5, ~ [g4,b4]@11]/3", J: "[~@6 [d#4,a#4]@35 ~ c4@30, ~ g4@11, ~@41 d#4@31]/3",
  K: "[~@29 g4@2 ~@11 b4@30, ~ [d4,f#4]@11, ~ a4@6 ~@5]/3", L: "[~@9 [c#4,f4]@104 ~ [b3,d#4,f#4]@30, ~ g#4@13 ~@4]/6",
  M: "[~@6 [c#4,f4,g#4]@107 ~ [b3,d#4]@30, ~@113 f#4@31]/6", // C# B
  N: "[~@6 [c#4,f4,g#4]@36 [b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4] [b3,d#4,f#4]@17 ~, ~@20 c#4@3 ~@9]/4", // C# B A5 B
  O: "[[a3,e4]@16 ~ [b3,d#4] [d4,f#4]@36 ~@18, c#4@9 ~@9 a3@2 ~@52]/3", // A5 B D
  P: "[a4@71 d#5@35 ~ f4@36 ~, c5@143 ~, e5@69 ~@2 g#4@72 ~]/6", Q: "[d5@18 e4@17 ~, [g4,b4]@71 ~]/3",
  R: "[[d#4,a#4]@35 ~ c4@35 ~, g4, ~@35 d#4@36 ~]/3", S: "[~@23 g4@2 ~@11 b4@36, [d4,f#4], a4 ~]/3",
  T: "[~@3 [c#4,f4]@104 ~ [d#4,f#4]@36, ~ g#4@52 ~ b3@17 ~]/6", U: "[[c#4,f4,g#4]@107 ~ [b3,d#4]@36, ~@107 f#4@37]/6",
  V: "[[c#4,f4,g#4]@36 [b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4], ~@6 c#4 ~]/3", // C# B A5 B
  W: "[[b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4] [d4,f#4]@36, ~@18 c#4@9 ~@9 a3@2 ~@34]/3", // B A5 B D
  X: "[~@2 [d4,f#4]@52 [c4,e4,g4]@9 ~ [g#3,c4,d#4]@30 [f3,a3,c4]@26, ~@2 a3@3 ~@115]/5", // D C G# F
  Y: "[~@4 [g3,b3,d4]@59 [g#3,c4,d#4]@30 [f3,a3,c4]@30 [g3,b3,d4]@59 ~@10]/8", // G G# F G
})).s("gm_church_organ").gain(0.46)

// chords · clavinet · "Harpsicord Sawtooth Guitar"
const clavinet = note("<~@53 A B@3 C@3 D@2 E F@2 G H@3 ~@37 I@3 J@3 K@3 L@3 M@3 ~@143>".pickRestart({
  A: "~@3 [e4,a4,c5]@7 ~@2", B: "[[e4,a4,c5]@8 ~ [e4,a4,c5]@8 ~ [e4,a4,c5]@7 ~@2 [d#4,g#4,c5]@8 ~]/3",
  C: "[[d#4,g#4,c5]@15 ~@3 [f4,g#4,c5]@16 ~@2 [f4,g#4,c5]@14 ~@4 [d4,g4,b4]@17 ~]/3", // G# Fm G
  D: "[[d4,g4,b4]@15 ~@3 [e4,g4,b4]@17 ~ [e4,g4,b4]@11 ~]/2", E: "~@3 [d#4,g4,a#4]@8 ~",
  F: "[[d#4,g4,a#4]@6 ~@3 [c4,d#4,g4]@8 ~ [c4,d#4,g4]@4 ~@2]/2", G: "~@6 [d4,a4,d5,f#5]@17 ~",
  H: "[[d4,a4,d5,f#5]@16 ~@2 [d4,b4,d5,f#5]@16 ~@2 [d4,b4,d5,f#5]@15 ~@21, ~@9 a4@5 ~@22]/3", // D Bm
  I: "[[a4,c5,e5]@15 ~@3 [a4,c5,e5]@15 ~@3 [a4,c5,e5]@16 ~@2 [a4,c5,e5]@14 ~@4]/3", // Am
  J: "[[g#4,c5,d#5]@16 ~@2 [g#4,c5,d#5]@14 ~@4 [f4,g#4,c5]@15 ~@3 [f4,g#4,c5]@16 ~@2, ~@36 a#4 ~@35]/3", // G# Fm
  K: "[[g4,b4,d5]@16 ~@2 [g4,b4,d5]@15 ~@3 [e4,g4,b4]@15 ~@3 [e4,g4,b4]@16 ~@2]/3", // G Em
  L: "[[d#4,g4,a#4]@17 ~ [d#4,g4,a#4]@15 ~@3 [c4,d#4,g4]@15 ~@3 [c4,d#4,g4]@16 ~@2]/3", // D# Cm
  M: "[[a3,d4,f#4]@16 ~@2 [a3,d4,f#4]@14 ~@4 [b3,d4,f#4]@16 ~@2 [b3,d4,f#4]@17 ~]/3", // D Bm
})).s("gm_clavinet").gain(0.36)

// other · overdriven guitar · "Harpsicord Sawtooth Guitar"
const overdriven_guitar = note("<~@167 A@6 ~@4 B@3 C@5 D@5 E@8 F G H@3 I@3 J K@3 L M@3 ~ N O ~@47>".pickRestart({
  A: "[~@17 g3@34 ~@3 b3@2 c4@2 d4@2 ~ d4@3 g4@3 ~ g4@8 ~@7 d5@17 ~@6 g5@28 ~@10]/6",
  B: "[~@14 e4@12 ~@3 e4@12 ~@3 f4@13 ~@2 a4@13]/3",
  C: "[~@2 g4@13 ~@2 d4@13 ~ c4@14 ~@2 g4@13 ~ f4@14 ~ c4@14 ~ a#3@14 ~ f4@13 ~]/5",
  D: "[~ d#4@13 ~@2 a#3@13 ~@2 a3@36 g3@7 ~ f#3@7 a3@7 ~ g3@30]/5",
  E: "[~@8 c4@3 d4@2 ~@2 d4@3 g4@3 ~ g4@9 ~@7 d5@17 ~@4 g5@27 ~@3 g4@45 d4@4 e4@3 f4@6 ~ g4@43 ~, ~@7 b3@3 ~@182]/8",
  F: "~ d#4@4 e4@3 f#4@4 b4@4 f#5@8", G: "b4@3 f#4@4 b3@3 f#3@4 d#3@6 ~ e3@3",
  H: "[f3 [g3,a3] [b3,c4] [d4,e4,f4] [g4,a4] ~@11 a4@3 g4@4 a4@5 f#4@6 ~@2 e5@25 d5@5 c5@3 d5@3, ~ b4@3 ~@14]/3", // Gsus2 Cmaj7 Dm Gsus2
  I: "[~ e5@3 f#5@4 g5@4 f#5@4 a4@21 a5@4 g5@4 f#5@7 d5@7 b4@8 f#5@5]/3", J: "~@2 e5@4 d5 [b4,c5] [g4,a4] f4 e4@13 ~",
  K: "[e4@4 [f4,g4] [a4,b4] [c5,d5] e5@5 ~@3 e4@3 ~ [g4,a4] b4 [c5,d5] e5@5 ~@3 e4@2 f4 g4 a4 b4 d5@30 ~@6, ~@18 f4@2 ~@16 c5 ~@35]/3", // Fsus2 Asus2 Csus2 Gsus2 Csus2
  L: "~@5 a5@5 g5@2, ~@9 g5@2 ~@13", M: "[~ e5@40 ~@5 e5@3 f5@4 e5@4 c5@3 ~ d5@9 ~@2]/3", N: "~@9 d5@6 ~@2 b4@4 a4@3",
  O: "g#4@7 ~@5",
})).s("gm_overdriven_guitar").gain(0.36)

// chords · lead 2 sawtooth · "Sawtooth"
const lead_2_sawtooth = note(`<
  ~@9 A B C D B E F B C D B E F B C D B E F B G H I J K ~@19 L M@2 N O P Q R S T U V W X Y Z AA AB AC AD AE AF AA AB AC
  AD AE AF AG AH AI AJ AK AL ~@18 AM M@3 AN AO P AP AQ S AR AS V AT AU Y C D B C AV AW C D B C AV AW C AX I G AY AZ@4
  ~@122
>`.pickRestart({
  A: "~@4 f4 g#4 c#5 f#4", B: "a#4 c#5 g#4 c5 c#5 g#4 a#4 c#5", C: "f4 g#4 c#5 f#4 a#4 c#5 g#4 c5",
  D: "c#5 g#4 a#4 c#5 f4 g#4 c#5 f#4", E: "d#4 f#4 b4 b3 d#4 f#4 f#3 b3", F: "d#4 b3 d#4 f#4 f4 g#4 c#5 f#4",
  G: "f#4 g#4 b4 d#4 f#4@2 e4 f#4", H: "a4 c#4 e4@2 f#4 g#4 b4 d#4", I: "f#4@2 e4 f#4 a4 c#4 e4@2",
  J: "e4 f#4 a4 d4 e4 f#4 e4 f#4", K: "a4 d4 e4 f#4 g4 ~@3",
  L: "~@6 [a4,c5] ~@2 [c5,e5] ~@2 [a4,c5]@2 ~ [c5,e5] ~@2 [a4,c5]@2 ~ [c5,e5]@2 ~", // Am C Am C Am C
  M: "[a4,c5] ~@2 [c5,e5]@2 ~ [a4,c5]@2 ~ e5@2 ~ [a4,c5]@2 ~ [c5,e5] ~@2 [a4,c5] ~@2 [c5,e5]@2 ~, ~@9 c5 ~@14", // Am C Am C Am C
  N: "[a4,c5]@2 ~ [c5,e5] ~@2 [d#4,g#4] ~@2 [g#4,c5] ~@2 g#4@2 ~ [g#4,c5] ~@2 d#4@2 ~ [g#4,c5] ~@2, ~@12 d#4 ~@5 g#4 ~@5", // Am C G#5 G#
  O: "g#4@2 ~ [g#4,c5] ~@2 [d#4,g#4] ~@2 [g#4,c5] ~@2 [d#4,g#4]@2 ~ [g#4,c5] ~@2 [f4,g#4]@2 ~ [g#4,c5]@2 ~, d#4 ~@23", // G# G#5 G# G#5 G# Fm G#
  P: "[f4,g#4] ~@2 g#4@2 ~ [f4,g#4]@2 ~ [g#4,c5]@2 ~ [f4,g#4]@2 ~ [g#4,c5]@2 ~ [f4,g#4]@2 ~ c5@2 ~, ~@3 c5 ~@17 g#4 ~@2", // Fm G# Fm G# Fm
  Q: "[f4,g#4] ~@2 [g#4,c5] ~@2 [d4,g4] ~@2 [g4,b4]@2 ~ [d4,g4] ~@2 [g4,b4] ~@2 [d4,g4]@2 ~ [g4,b4] ~@2", // Fm G# G5 G G5 G G5 G
  R: "[d4,g4] ~@2 [g4,b4]@2 ~ d4@2 ~ [g4,b4]@2 ~ d4@2 ~ [g4,b4] ~@2 [e4,g4] ~@2 [g4,b4] ~@2, ~@6 g4 ~@5 g4 ~@11", // G5 G Em G
  S: "e4@2 ~ [g4,b4] ~@2 e4@2 ~ [g4,b4] ~@2 g4@2 ~ [g4,b4] ~@2 g4@2 ~ [g4,b4] ~@2, g4 ~@5 g4 ~@5 e4 ~@5 e4 ~@5", // G
  T: "[e4,g4] ~@2 [g4,b4] ~@2 [d#4,g4] ~@2 [g4,a#4] ~@2 [d#4,g4] ~@2 [g4,a#4]@2 ~ [d#4,g4]@2 ~ [g4,a#4] ~@2", // Em G D# Gm D# Gm D# Gm
  U: "[d#4,g4] ~@2 [g4,a#4] ~@2 [d#4,g4] ~@2 g4@2 ~ [d#4,g4]@2 ~ [g4,a#4] ~@2 [c4,d#4] ~@2 d#4@2 ~, ~@9 a#4 ~@11 g4 ~@2", // D# Gm D# Gm Cm
  V: "[c4,d#4] ~@2 g4@2 ~ [c4,d#4]@2 ~ [d#4,g4]@2 ~ [c4,d#4] ~@2 [d#4,g4]@2 ~ [c4,d#4] ~@2 g4@2 ~, ~@3 d#4 ~@17 d#4 ~@2", // Cm D# Cm D# Cm
  W: "[c4,d#4]@2 ~ g4@2 ~ [a4,d5] ~@2 [d5,f#5]@2 ~ a4@2 ~ [d5,f#5] ~@2 [a4,d5]@2 ~ [d5,f#5] ~@2, ~@3 d#4 ~@8 d5 ~@11", // Cm D5 D D5 D
  X: "[a4,d5] ~@2 [d5,f#5] ~@2 a4@2 ~ [d5,f#5] ~@2 a4@2 ~ [d5,f#5] ~@2 f#4@2 ~ [f#4,b4]@2 ~, ~@6 d5 ~@5 d5 ~@5 d4 ~@5", // D5 D B5
  Y: "[d4,f#4] ~@2 [f#4,b4] ~@2 [d4,f#4]@2 ~ [f#4,b4] ~@2 [d4,f#4] ~@2 [f#4,b4]@2 ~ f#4@2 ~ [f#4,b4] ~@2, ~@18 d4 ~@5", // D B5 D B5 D B5
  Z: "[d4,f#4]@2 ~ [f#4,b4] ~@2 f4@3 g#4@3 c#5@3 f#4@3 a#4@3 c#5@3", AA: "g#4 c5 c#5 g#4 a#4 c#5 f4 g#4",
  AB: "c#5 f#4 a#4 c#5 g#4 c5 c#5 g#4", AC: "a#4 c#5 f4 g#4 c#5 f#4 a#4 c#5", AD: "g#4 c5 c#5 g#4 a#4 c#5 d#4 f#4",
  AE: "b4 b3 d#4 f#4 f#3 b3 d#4 b3", AF: "d#4 f#4 f4 g#4 c#5 f#4 a#4 c#5", AG: "g#4 c5 c#5 g#4 a#4 c#5 f#4 g#4",
  AH: "b4 d#4 f#4@2 e4 f#4 a4 c#4", AI: "e4@2 f#4 g#4 b4 d#4 f#4@2", AJ: "e4 f#4 a4 c#4 e4@2 e4 f#4",
  AK: "a4 d4 e4 f#4 e4 f#4 a4 d4", AL: "e4 f#4 g4 ~@5", AM: "[c5,e5] [b4,d5] [a4,c5] [g4,b4]",
  AN: "g#4@2 ~ [g#4,c5] ~@2 g#4@2 ~ [g#4,c5] ~@2 [d#4,g#4]@2 ~ [g#4,c5]@2 ~ g#4@2 ~ [g#4,c5]@2 ~, d#4 ~@5 d#4 ~@11 d#4 ~@5", // G# G#5 G#
  AO: "[d#4,g#4]@2 ~ [g#4,c5] ~@2 [d#4,g#4]@2 ~ g#4@2 ~ [f4,g#4] ~@2 [g#4,c5]@2 ~ [f4,g#4] ~@2 [g#4,c5]@2 ~, ~@9 c5 ~@14", // G#5 G# G#5 Fm G# Fm G#
  AP: "[d4,g4] ~@2 [g4,b4]@2 ~ d4@2 ~ [g4,b4] ~@2 [d4,g4]@2 ~ [g4,b4] ~@2 d4@2 ~ [g4,b4] ~@2, ~@6 g4 ~@11 g4 ~@5", // G5 G G5 G
  AQ: "d4@2 ~ [g4,b4] ~@2 [d4,g4] ~@2 [g4,b4] ~@2 e4@2 ~ [g4,b4] ~@2 [e4,g4]@2 ~ [g4,b4] ~@2, g4 ~@11 g4 ~@11", // G G5 G Em G
  AR: "d#4@2 ~ [g4,a#4]@2 ~ [d#4,g4]@2 ~ g4@2 ~ [d#4,g4] ~@2 [g4,a#4]@2 ~ [d#4,g4] ~@2 g4@2 ~, g4 ~@8 a#4 ~@11 a#4 ~@2", // Gm D# Gm D#
  AS: "[d#4,g4] ~@2 g4@2 ~ [d#4,g4] ~@2 [g4,a#4]@2 ~ [c4,d#4] ~@2 d#4@2 ~ [c4,d#4] ~@2 [d#4,g4]@2 ~, ~@3 a#4 ~@11 g4 ~@8", // D# Gm Cm D#
  AT: "[a4,d5] ~@2 [d5,f#5] ~@2 a4@2 ~ [d5,f#5] ~@2 [a4,d5] ~@2 [d5,f#5] ~@2 [a4,d5] ~@2 [d5,f#5] ~@2, ~@6 d5 ~@17", // D5 D D5 D D5 D
  AU: "d5@2 ~ [d5,f#5] ~@2 [a4,d5]@2 ~ d5@2 ~ f#4@2 ~ [f#4,b4]@2 ~ f#4@2 ~ f#4@2 ~, a4 ~@8 f#5 ~@2 d4 ~@5 d4 ~@2 b4 ~@2", // D D5 B5
  AV: "c#5 g#4 a#4 c#5 d#4 f#4 b4 b3", AW: "d#4 f#4 f#3 b3 d#4 b3 d#4 f#4", AX: "c#5 g#4 a#4 c#5 f#4 g#4 b4 d#4",
  AY: "a4 c#4 e4@2 e4 f#4 a4 d4",
  AZ: "[e4@3 f#4@3 e4@3 f#4@3 ~ a4@3 d4@3 e4@3 ~ f#4@3 e4@4 f#4@4 a4@4 d4@4 e4@4 f#4@3 e4@5 f#4@5 a4@5 d4@5 e4@5 f#4@4 c4@4 ~ d4@4 ~@9]/4",
})).s("gm_lead_2_sawtooth").gain(0.43)

// chords · synth strings 1 · "Strings"
const synth_strings_1 = note(`<
  A@5 B@5 ~@42 C D ~@51 E ~@35 F@8 G@5 H@5 I J@7 K@8 L@5 M@5 N@5 O@8 P@8 Q@5 R@5 S@5 T@8 ~@35
>`.pickRestart({
  A: "[~@14 g5@13 b5@13 ~ a5@13 e6@13 d6@13 ~ a5@13 g5@13 ~ [a#2,d6]@12, ~@7 c3@47 ~@6, ~@14 c5@53 a#4@27 [d#4,c5]@26, ~@14 g4@27 a4@26 d5@25 ~@2 c#5 ~@25, ~@14 e4@25 ~@2 f4@26 g4@52 ~]/5", // A# Cm
  B: "[~ c6@13 g5@14 f5@13 c6@13 a#5@14 f5@13 [c4,g#4,d#5]@27 ~@12, ~ g#2@107 ~@12, ~ f4@53 d#4@54 ~@12, ~ g#4@27 a#4@54 ~@38, ~@28 c#4@25 ~ f#4@26 ~@40]/5", // G#
  C: "~@6 [c5,e5]@5 ~ [b4,d5]@5 ~ [a4,c5,e5]@5 ~", D: "[g4,b4,d5]@5 ~@19",
  E: "[c5,e5]@5 ~ [b4,d5]@5 ~ [a4,c5,e5]@5 ~ [g4,b4,d5]@5 ~", // C Bm Am G
  F: "[~@16 [c4,d#4,g#4]@29 ~ [c4,f4,a4]@28 ~@2 [b3,d4,g4]@58 ~ [d#4,g#4]@29 ~ [f4,a4]@27, ~@45 c4@19]/8", // G# F G G#5 F
  G: "[~@3 [b3,d4,g4]@59 g5@15 b5@14 ~ a5@15 e6@13, ~@62 c5@57 ~, ~@31 [e4,g4]@14 ~ [f4,a4]@14]/5", // G Em F
  H: "[~@16 a5@15 g5@30 b5@29 ~ a5@15 e6@14, ~ [g4,a#4]@31 ~@88, ~@2 d5@28 ~ c5@87 ~@2, ~@2 d6@16 ~@13 [e4,g4]@58 ~@2 [f4,a4]@29]/5", // Gm Em F
  I: "d6@5 a5@3, [g4,a#4,d5]", // Gm
  J: "[~@6 g5@15 d6@14 ~ c6@15 g5@15 ~@15 c6@14 a#5@15 f5@14 ~ d#5@37 d5@6, ~@2 c5@19 ~ a#4@19 ~@15, ~@6 d#4@27 ~@3 f4@58 ~ [d#4,f#4]@73, ~@6 g#4@5 f5@5 ~@12, ~@66 c#4@28 ~@31 [c4,a4]@43]/7", // D#m F
  K: "[~@2 c5@7 d#5@8 b4@28 ~ e5@29 ~ [a4,f5]@29 ~ g5@30 ~@15 b5@13 ~ a5@15 e6@12, ~@17 g4@59 ~@60 c5@56, ~@17 d5@26 ~@3 c5@60 [b4,d5]@32 ~@26 a4@28, ~@136 [e4,g4]@28 ~ f4@27, ~@17 g5@3 ~@4]/8", // Dm Bm Em
  L: "[~@3 d6@15 a5@15 f4 ~@29 b5@14 b5@14 ~ a5@14 ~ e6@13, ~@2 g4@89 ~@29, ~@2 [a#4,d5]@31 c5@87, ~@33 g5@29 ~@58, ~@34 e4@57 [f4,a4]@29]/5", // A# F
  M: "[~@2 d6@15 a5@14 ~ g5@14 ~ d6@13 ~@2 c6@14 ~@15 f5@15 c6@13 ~, ~ g4@59 f4@60, ~ [a#4,d5]@29 ~ c5@58 a#4@31, ~@31 d#4@29 g#4@30 c#4@30, ~@62 d6 ~@13 g5@15 ~@29]/5", // A#
  N: "[~ a#5@15 f5@13 ~@2 d#5@37 d5@7 c5@7 ~ d#5@7 [b3,g4,d5]@30, [d#4,f#4]@89 ~@31, ~@30 c4@59 ~@31]/5", // G D#m
  O: "[e5@29 ~ [a4,f5]@30 [d4,b4,g5]@29 [e4,c5]@30 d4@30 [e4,c6]@43, c4@58 ~@31 a5@28 ~@2 g4@73, ~@119 b5@28 ~@45]/8", // Dm G C
  P: "[~ [f#4,b4,d#6]@15 b5@45 a5@7 g5@7 ~ a5@7 b5@8 e5@22 b5@7 a5@8 g5@7 ~@4 b5@7 ~@34 f#5@12, ~@8 [e4,g4]@67 [d4,f#4]@21, ~@135 a5@7 ~@4 d5@32 ~@14]/8", // B Em D
  Q: "[~@3 [e4,a4,e5]@59 [d4,d5]@7 ~ [e4,e5]@7 [d4,f#4,d5,f#5]@7 ~ [e4,g4,e5,g5]@7 [d5,f5,a5]@15 b5@13, ~@23 [d4,f4]@7]/5", // A5 D E D Em Dm
  R: "[~@2 a5@15 g5@29 b5@7 ~ c6@6 ~@16 d6@7 ~@8 d6@7 [e4,e6]@7 ~ d6@7 [b3,b5]@3 ~ a5@3, ~@2 e4@59 b4@59, ~@2 c4@51 c4@7 d4@7 e4@7 d4@9 b3@7 d4@9 ~@6 d4@7 ~@4 a3@4, ~@61 g4@30 f#4@29, ~@61 d6@8 e6@8 ~@7 b5@8 ~@28]/5", // E B
  S: "[~ [g#3,g#5]@14 ~ b5@14 [d4,d6]@14 ~ c6@7 ~@8 a5@29 ~ e5@14 ~ f#5@15, ~ e4@117 ~@2, ~ g#4@57 ~@2 c#4@59 ~, ~@15 b3@15 ~@14 c4@8 b3@7 a3@30 e3@15 f#3@14 ~@2, ~@53 b5@8 ~@59]/5", // G# D
  T: "[g4,b4,d5]/8", // G
})).s("gm_synth_strings_1").gain(0.42)

// drums · kick
const kick = s("bd").struct(`<
  A ~@8 B ~ C B ~ D E F G H F G H F G H F G H F I H F G J K L@4 ~ M@3 N@6 O@3 ~ P Q R S Q R S Q R S Q R S Q R T U V T U
  V T U V T U V T W V T U V X Y O@4 L@3 ~ M@6 N@3 ~ Z AA AB Z AA AB Z AA AB Z AA AB Z AA AB G H F G H F G H F G H F G AC
  F AD AE AF AG AH AF ~@25 AI AJ ~ AK AL AM AJ ~ AN AO A AP ~ AQ AR A AS ~ AT AU B AV ~ C AW B AI AX ~ AY AL AH AJ ~ AS
  AZ ~ BA ~ AN AR A AP ~ AQ AR BB AS ~ C AU B AV ~@44
>`.pickRestart({
  A: "~@7 x ~@4", B: "~ x", C: "x", D: "x ~@2 x ~@4", E: "~@4 x ~ x!2", F: "~ x ~@2 x!2 ~ x", G: "x ~ x!2 ~ x ~@2",
  H: "x!2 ~ x!2 ~ x!2", I: "x!4 ~ x ~@2", J: "x!2 ~ x ~@2 x ~", K: "~@2 x ~@3 x!2", L: "~@6 x!2", M: "x!2 ~@6",
  N: "~@2 x!2 ~@4", O: "~@4 x!2 ~@2", P: "~ x!2 ~", Q: "x ~ x ~@2 x!2 ~", R: "x ~ x!2", S: "~ x!2 ~ x ~@3",
  T: "~ x!2 ~ x!2 ~ x", U: "~@2 x!2 ~ x!2 ~", V: "x!2 ~ x ~@2 x!2", W: "~@2 x!2 ~ x!3", X: "~ x ~@2 x ~@3",
  Y: "x ~@3 x!2 ~@2", Z: "x!2 ~ x", AA: "x ~@2 x!2 ~ x ~", AB: "~@2 x ~ x ~@2 x", AC: "x!2 ~ x!5",
  AD: "x ~@2 x ~@2 x ~", AE: "~ x ~@2 x ~@2 x", AF: "~@3 x ~@4 x ~@3", AG: "~ x ~@5 x ~@4", AH: "~ x ~@14 x ~@7",
  AI: "~@17 x ~@6", AJ: "~@11 x", AK: "~ x ~@4", AL: "~@5 x ~@6", AM: "~@2 x", AN: "~ x ~@6", AO: "~@3 x ~@4",
  AP: "~@5 x", AQ: "~ x ~@10", AR: "~ x ~", AS: "~@19 x ~@4", AT: "~ x ~@22", AU: "~@7 x ~@16", AV: "~@3 x",
  AW: "~ x ~@2", AX: "~@23 x", AY: "~@5 x ~@18", AZ: "~@2 x ~@6 x ~@14", BA: "~@6 x ~@7 x ~@6 x ~@2", BB: "~@13 x ~@10",
})).gain(0.75)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A ~ B A ~ C ~ D E F D E F D E F D E F D E F D E G F@6 A@3 E@6 ~ B@2 H I J K I J K I J K I J K I J K ~ L A B L A B
  L A B L A B L A B L A M B@6 F@3 A@6 E@3 N J K I J K I J K I J K I J K I E F D E F D E F D E F D E F D O P Q R S T ~@25
  U V ~ W X ~ F A E ~ B F Y U Z ~ W X AA V ~ W J I AB ~@2 AC AD AE AF AG AH AI E T B AJ A E Z AK AL Y U V ~ W X I AB ~
  AM J AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY
  BZ CA CB CC CD
>`.pickRestart({
  A: "~ x", B: "x", C: "x ~@2 x ~@4", D: "~ x ~ x", E: "~@3 x", F: "~ x ~@2", G: "~ x!2 ~", H: "x ~@15 x!4 ~@4",
  I: "~@5 x ~@2", J: "~@3 x ~@4", K: "~ x ~@5 x", L: "x!2", M: "x!2 ~@2", N: "~@10 x!4 ~@10", O: "~ x!2 ~ x!2 ~ x",
  P: "x ~ x!2 ~ x!2 ~", Q: "x ~@2 x ~@5 x ~@3 x ~@5 x ~@3 x", R: "~@3 x ~ x ~@3 x ~ x", S: "~@6 x ~@4 x ~@9 x ~@2",
  T: "~ x ~@10", U: "~@17 x ~@6", V: "~@11 x", W: "~ x ~@4", X: "~@5 x ~@6", Y: "~@11 x ~@12", Z: "~@23 x", AA: "~@2 x",
  AB: "~@7 x", AC: "~ x ~", AD: "~@7 x ~@4", AE: "~@12 x ~@2 x ~ x!2 ~ x ~@3", AF: "~@3 x ~@2 x ~ x ~@2 x ~@6 x ~@5",
  AG: "~ x ~@14 x ~@7", AH: "~@7 x ~@16", AI: "~@13 x ~@10", AJ: "~@3 x ~@3 x ~@4", AK: "~@3 x ~@6 x ~ x ~@11",
  AL: "~@5 x ~@18", AM: "~ x ~@6", AN: "~@7 x!4 ~ x ~@2 x ~@5 x!2 ~", AO: "x ~ x!2 ~ x!2 ~@6 x ~@2 x!2 ~@2 x!4",
  AP: "x!7 ~ x!4 ~@7 x ~ x ~ x", AQ: "x ~ x ~@6 x ~ x!2 ~ x ~@2 x ~@6", AR: "x!2 ~@2 x ~@3 x!4 ~ x!2 ~ x!4 ~ x!3",
  AS: "~@6 x ~ x!2 ~ x ~ x!2 ~@5 x!2 ~ x", AT: "~ x!2 ~ x!2 ~@6 x ~@2 x!2 ~@2 x!5", AU: "x!6 ~ x!4 ~@7 x ~ x ~ x!2",
  AV: "~ x ~@6 x ~ x!2 ~ x ~@2 x ~@6 x", AW: "x ~ x!2 ~@3 x!4 ~ x!2 ~ x!4 ~ x!3 ~",
  AX: "~@5 x ~ x!2 ~ x ~ x!2 ~@5 x!2 ~ x ~", AY: "x ~@2 x!2 ~@6 x ~@2 x ~@3 x!6", AZ: "x!5 ~ x!4 ~@6 x!2 ~ x ~ x!2 ~",
  BA: "x ~@6 x ~ x!2 ~ x ~@2 x ~@6 x!2", BB: "~@2 x ~@3 x!4 ~ x!2 ~ x ~ x!2 ~ x!3 ~@2",
// … 108 more lines

More by Genesis