Strudelify
Frankenstein cover art

1973 · They Only Come Out At Night

Frankenstein

Edgar Winter

KeyG minorTempo100 bpm
0:00/0:00
// Frankenstein — Edgar Winter
// 100 bpm, 4/4, key G minor. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 98 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C B D E F G H I J K L M N O A B C P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM@2 AN AO AP AQ AR
  AS AT AU AV AW@2 AX AY ~@6 AZ@2 BA@2 BB BC BD BE BF BE BF BG ~@5 A B C B D E D BH BI BJ@2 BK BL BM@2 BN BO
>`.pickRestart({
  A: "g1@2 g1@4 g1@2 ~@2 g1@4 f1@2 g1@4 g1 ~@3 bb1@8", B: "g1 g1@2 g1 ~ f1 g1 ~@9",
  C: "g1@2 g1@4 g1@2 ~@2 g1@2 ~@2 f1@2 g1@4 g1 ~@3 bb1@2 c2@2 bb1@4", D: "e1 f1 gb1 g1@3 bb1 g1 c2 bb1 g1 bb1@3 c2 bb1",
  E: "c2@4 c2@2 ~ bb1 g1@4 bb1@8 g1@12", F: "bb1!2 db2 d2 eb2!2 c2 db2", G: "~ d2@3 f1@4 gb1@4 g1@8 a1@4 bb1@4 b1@4",
  H: "c2 ~ c2!3 ~ c2!3 ~ c2!3 ~ c2!2", I: "c2@2 ~@2 f2 gb2 ~ g2 ~@4 c2@8 c2@4 c2@4 c2@4",
  J: "d2 ~ d2!3 ~ d2!3 ~ d2!3 ~ d2!2", K: "d2@2 ~@2 g2 ab2 ~ a2 ~@4 d2@8 d2@4 d2@4 d2@4",
  L: "g1@2 g1!2 g1@2 g1!3 g1@2 g1 g1@2 g1!2", M: "g1 d2 db2 c2@5", N: "db2@2 db2!3 ~ db2!2 d2 d2@2 d2!2 d2@2 d2",
  O: "eb2!3 e2 e1!2 f1 gb1", P: "g1 g1@2 g1 ~ f1 g1 ~@3 e1@2 f1@2 gb1@2",
  Q: "g1@3 ~@3 f1 ~ g1@3 ~@3 g1 ~ bb1@2 ~ c2@3 bb1 ~ c2@3 ~ bb1@4",
  R: "g1@3 ~@3 f1 ~ g1@3 ~@3 g1 ~ bb1 ~ c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  S: "g1@3 ~@3 f1 ~ g1@2 ~@4 g1 ~ bb1 ~ c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  T: "g1@3 ~@3 f1@2 g1@2 ~@4 g1 ~ bb1 ~ c2@4 bb1 ~ c2@3 ~ bb1@4",
  U: "g1@3 ~@3 f1 ~ g1@2 g1 ~@3 g1@2 bb1@2 c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  V: "g1@3 ~@3 f1 ~ g1@2 g1@2 ~@2 g1 ~ bb1 ~ c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  W: "g1@3 ~@3 f1 ~ g1@2 g1 ~@3 g1@2 bb1@2 c2@3 ~ bb1@2 c2@3 ~ bb1@3 ~",
  X: "g1@4 ~@2 f1 ~ g1@2 g1 ~@3 g1 ~ bb1 ~ c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  Y: "g1@3 ~@3 f1@2 g1@2 g1@2 ~@2 g1 ~ bb1 ~ c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  Z: "g1@3 ~@3 f1 ~ g1 ~ g1@2 ~@2 g1 ~ bb1@2 c2@3 ~ bb1 ~ c2@3 ~ bb1@4",
  AA: "g1@3 ~@3 f1 ~ g1 ~ g1@2 ~@2 g1 ~@2 c2 c2@3 ~ bb1 ~ c2@3 ~ bb1@4, ~@8 bb1 ~@7",
  AB: "g1@4 ~@2 f1 g1@2 ~ g1@2 ~@2 g1@2 [f1,bb1] ~ c2@3 ~ bb1 c2@3 ~@2 bb1@4", // Bb5
  AC: "g1@6 ~@2 g1@2 bb1 ~ b1@2 c2@3 ~ c2 ~ e1@4 f1@3 ~ gb1@3 ~, ~@20 b1 ~@11",
  AD: "g1@6 g1 ~ g1 ~ bb1 ~ b1@2 c2@3 ~ c2 ~ e2@3 ~ f2@3 ~ gb2@4",
  AE: "g2 ~ d2@2 g1@3 ~ g1 ~ bb1 ~ b1@2 c2@4 c2 b1 e1@3 ~ f1@3 ~ gb1@3 g1",
  AF: "g1@6 f1 ~ g1 ~ bb1 ~ b1@2 c2@3 ~ c2 ~ e2@3 ~ f2@3 gb2 gb2@3 ~",
  AG: "[g1,g2]@4 ~@2 f1 ~ g1@2 bb1 ~ b1@2 c2@2 ~@2 c2 ~ e1@3 ~ f1@4 gb1@3 ~", // G
  AH: "g1@6 f1@2 g1 ~ bb1 ~ b1@2 c2@3 ~ c2 ~ e2@3 ~ f2@3 ~ gb2@4",
  AI: "g2@6 ~ f2 g2 ~ f2@2 d2@2 c2@2 ~@2 c2 ~ e1@4 f1@3 ~ gb1@3 ~", AJ: "g1@6 f1@2 g1@2 bb1@2 b1@2 c2@9 ~ c2@7 ~",
  AK: "g1@6 g1 ~ a1@6 a1 ~ bb1@6 bb1 ~ b1@6 b1 ~", AL: "c2@8 c2 ~ bb1@2 ~ g1@2 c2@9 c2@6 ~@2",
  AM: "[~ g1@5 ~ a1@5 ~ bb1@4 ~@2 c2@4 ~ d2@5 ~ e2@5 ~@2 f2@4 g2 ~ f2 ~ d2@2 c2@4 ~ e1@4 ~ f1@3 gb1@4]/2",
  AN: "~ g1@8 g1@3 ~ f1@2 g1 ~ bb1@2 ~ c2@2 ~ bb1@2 ~ d2 ~ c2 ~ f2@2, ~@19 g1@3 ~@10",
  AO: "d2@2 ~@2 g2 ~ f2 ~ bb2@2 g2@3 ~ c3 ~ bb2 ~ d2 ~ c2 ~ f2@5 ~ g2@2 ~@2",
  AP: "g1@7 ~@2 g1@3 f1@2 g1 ~ bb1 ~ g1@2 c2 ~ bb1@2 ~@2 d2 ~ c2@2 f2@2",
  AQ: "d2@2 ~@2 g2 ~ f2 ~ bb2@2 g2@2 ~@2 c3 ~ bb2 ~ d2 ~ c2 ~ f2@6 ~ g2@2 ~", AR: "g2@5 ~ f2 ~ g2@2 g1@3 ~@19",
  AS: "g2@5 ~@2 f2 g2 ~ bb2@4 ~@18", AT: "g2@5 ~ f2 ~ g2@2 g1@2 ~@20", AU: "~ g2@5 ~ f2 ~ g2 bb2@3 ~@19",
  AV: "~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~ g1@4 ~@4 [g1,d2]@3 ~, ~@6 [g1,d2] ~, ~@25 g2@7", // G5
  AW: "[[g1,d2,g2]@4 [g1,d2]@4 [g1,d2]@3 ~ [g1,d2,g2]@4 [g1,d2]@4 [g1,d2,g2]@3 [g1,d2]@4 [g1,d2,g2]@4 [g1,d2]@4 ~ g2@3 ~ [d2,g2]@4 [g1,d2]@4 [g1,d2]@4 [g1,d2]@3 ~ [g1,d2,g2]@4 [g1,d2]@4, ~@35 [g1,d2]@4 g1@4 ~@21]/2", // G5
  AX: "[g1,d2,g2]@4 [g1,d2]@3 ~ [g1,d2]@4 [g1,d2,g2]@4 [g1,d2,g2]@4 [d2,g2]@3 ~ [d2,g2]@3 ~ [d2,g2]@4, ~@23 g1@4 g1@4 ~", // G5
  AY: "[g1,d2,g2]@3 ~@29", AZ: "~@24 g1@2 ~ g1@3 g1@2", BA: "~@24 g1@2 ~ g1@2 ~ g1@2", BB: "~@24 g1@2 ~ g1@2 bb1@3",
  BC: "~@24 g1@2 ~ g1@2 ~ f1@2", BD: "~@24 g1@2 ~ g1@2 ~ bb1@2", BE: "~@25 g1@2 g1@2 ~ f1@2",
  BF: "~@25 g1@2 g1@2 ~ bb1@2", BG: "g1", BH: "c2@4 c2@2 ~ bb1 g1@4 c2@4 c2@2 ~ bb1 g1@4 c2@4 c2@2 ~ bb1",
  BI: "g1@4 ~ bb1!9 ~ bb1!10 ~ bb1!6",
  BJ: "[bb1!8 ~ bb1!6 ~ bb1@2 bb1 ~ bb1@2 bb1 ~ bb1 ~ bb1 ~ bb1@2 bb1 bb1@2 ~ bb1@30]/2", BK: "~@19 c2@2 c2!11",
  BL: "c2!9 ~ c2!5 ~ c2!15 ~",
  BM: "[c2!3 ~ c2!2 ~ c2 ~ c2!2 ~ c2!2 ~ c2@2 ~ c2@3 c2@15 ~@10 g1 ~ g1!6 ~ g1!4 g2!4 ~]/2",
  BN: "f2!4 ~ d2!3 db2!3 ~ c2@2 bb1 ~ c2 bb1 ~ g1@2 f1@2 g1@2 ~ bb1@2 ~ c2@2 ~", BO: "~@2 g1@17 ~@7 g1@3 ~@3",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · piano · "Elec. piano"
const piano = note(`<
  ~ A B C B D E F G H I J K L M N O P B C B ~@16 Q R S T U V W@2 X@2 Y@2 Z@2 AA AB AC AD@2 AE@2 ~@23 A B C B D E D AF
  AG@6 AH@3
>`.pickRestart({
  A: "[d4,g4] [d4,g4]@2 [d4,g4] ~ [d4,g4]@2 [c4,f4] [d4,g4]@2 d4@2 [f4,bb4]@4, ~@20 g4 ~@11", // G5 F5 G5 Bb5
  B: "[d4,g4] [d4,g4]@2 [d4,g4] ~ [c4,f4] [d4,g4] ~@9", // G5 F5 G5
  C: "[d4,g4] [d4,g4]@2 [d4,g4] ~ [d4,g4] ~ [c4,f4] [d4,g4]@2 d4@2 [f4,bb4]@4, ~@20 g4 ~@11", // G5 F5 G5 Bb5
  D: "~@3 [bb3,d4,g4] [c4,e4,g4] [bb3,d4,g4]@2 [c4,e4,g4]", E: "[d4,f4,bb4] ~@2 [bb3,d4,g4]@3 ~@2",
  F: "[d4,f4,ab4] [g3,bb3,db4,e4]", G: "[c4,f4,gb4,a4]@3 [b3,d4,f4]@5", H: "[bb3,eb4,g4]@2 [c4,f4,a4] [bb3,eb4,g4]",
  I: "[bb3,eb4,g4]@3 [c4,f4,a4]@4 ~", J: "[bb3,d4,g4] [c4,e4,a4]", K: "[bb3,d4,g4]@3 [c4,e4,a4]@4 ~",
  L: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", M: "[f3,a3,c4] [f3,a3] c3 [e3,g3,c4]@4 ~",
  N: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~", O: "[eb3,a3,c4] [f3,a3] c3 [e3,g3,c4]@4 ~",
  P: "[d4,g4] [d4,g4]@2 [d4,g4] ~ [d4,g4]@2 [c4,f4] [d4,g4]@2 d4@2 [f4,bb4]@4, c4@8 ~@12 g4 ~@11", // G5 F5 G5 Bb5
  Q: "[g3,bb3,d4]@4 ~@4 [bb3,d4]@5 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@2 ~@2 g3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2 ~@2, ~@3 g3@3 ~@10", // Gm Bb C
  R: "[g3,bb3,d4]@4 ~@2 g3@2 [bb3,d4]@5 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@4 ~@2 [db4,f4] ~ [g3,c4,e4]@4 ~@2, ~@12 ab3 ~@3", // Gm Bb C Db C
  S: "[g3,bb3,d4]@5 ~@3 [bb3,d4]@4 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~ g3@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~, ~@3 g3@3 ~@10", // Gm Bb C
  T: "[g3,bb3,d4]@4 ~@4 [bb3,d4]@4 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~@3 [c4,e4]@5 ~@3, ~@6 g3@6 ~@11 g3@7 ~@2", // Gm Bb C
  U: "[g3,bb3,d4,g4]@3 ~ [a3,c4,e4,a4]@3 ~ [bb3,d4,f4,bb4]@3 ~ [b3,d4,gb4,b4]@3 ~", // Gm Am Bb Bm
  V: "[c4,e4,g4,c5]@8 ~@2 [e4,g4,c5]@2 ~@2 [c4,e4,g4,c5]@17 ~, ~@2 c4 ~@5", // C
  W: "[[bb3,d4,g4]@6 ~@2 a4@3 ~@2 [d4,f4,bb4]@4 ~@2 [e4,g4,c5]@4 ~@2 [f4,a4,d5]@3 ~@3 [g4,bb4,e5]@4 ~@3 [bb4,d5,f5]@3 ~@8 [c5,e5,a5]@14 ~, ~@7 [c4,e4]@4 ~@53]/2", // Gm Bb C Dm Edim Bb Am C
  X: "[~@2 [f3,bb3,d4,g4]@5 ~@2 [f3,bb3,d4]@49 ~@6, ~@9 g4@41 ~@14]/2", // Gm7 Bb
  Y: "[~ [bb3,d4,g4]@5 ~@2 d4@50 ~@6, f3@5 ~@2 [f3,bb3]@52 ~@5, ~ g4@5 ~@2]/2", // Gm Bb5
  Z: "[~ g4@5 ~ f4 g4 ~@2 [b2,f3,bb3,d4]@3 ~@18 [d4,g4]@5 f4@2 g4@2 ~@2 [bb3,d4,f4,bb4]@3 ~@18, [f3,bb3,d4]@5 ~@5 g4@3 ~@18 [f3,bb3]@5 ~@28]/2", // Bb G5 Bb Bb5
  AA: "~ [f3,bb3,d4,g4]@4 ~ f4 ~ g4@2 [f3,bb3,d4]@4 ~@18", // Gm7 Bb
  AB: "~ [bb3,d4,g4]@5 f4@2 g4 ~@2 [bb3,d4,f4,bb4]@3 ~@18, f3@5 ~@5 f3@3 ~@19", // Gm Bb
  AC: "~ [d4,g4]@12 ~@4 a4@12 ~@3, [g3,bb3]@13 ~@3 [a3,c4,e4]@13 ~@3", // G5 Gm Am
  AD: "[[bb3,d4,f4,bb4]@13 ~@3 [c4,e4,g4,c5]@11 ~@5 d5@13 ~@3 [e4,g4,c5,e5]@12 ~@4, ~@31 [d4,f4,bb4]@13 ~@20]/2", // Bb C Bb
  AE: "[[bb4,d5,f5]@11 ~@5 [c5,e5,g5]@9 ~@7 [f5,bb5]@5 ~@27, ~@31 d5@5 ~@28]/2", // Bb C Bb5
  AF: "[d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~", // Bb
  AG: "[~@5 [f4,bb4]@94 ~@14 [c4,g4]@77 ~@2, ~@4 bb3@94 ~@15 c5@74 ~@5]/6", // Bb5 C5
  AH: "[~@13 g3@79 ~@4, ~@12 [d4,g4]@79 ~@5]/3", // G5
})).s("gm_piano").gain(0.48)

// other · distortion guitar · "Guitar"
const distortion_guitar = note(`<
  ~ A B C B D E F G H I J K L M L M A B C B ~@24 N O P Q R@2 S T U V W X Y ~@6 Z@2 AA@2 AB AC AD AE AF AE AF AG ~@5 A B
  C B D E D AH AI@6 AJ@3
>`.pickRestart({
  A: "[d3,g3]!2 ~ [d3,g3] ~ [d3,g3] ~ [c3,f3] [d3,g3]@2 d3@2 [f3,bb3]@4, ~@20 g3 ~@11", // G5 F5 G5 Bb5
  B: "[d3,g3] [d3,g3]@2 [d3,g3] ~ [c3,f3] [d3,g3] ~@9", // G5 F5 G5
  C: "[d3,g3] [d3,g3]@2 [d3,g3] ~ [d3,g3] ~ [c3,f3] [d3,g3]@2 d3@2 [f3,bb3]@4, ~@20 g3 ~@11", // G5 F5 G5 Bb5
  D: "e3 f3 gb3 g3@3 bb3 g3 c4 bb3 g3 bb3@3 c4 bb3", E: "c4@4 c4@3 bb3 g3@4 bb3@8 g2@4 ab2@4 a2@4, ~@5 g3@3",
  F: "bb2!2 db3 d3 eb3!2 c3 db3", G: "g3 bb3@3 f2@4 gb2@4 g2@12 f3@8",
  H: "a3 bb3 b3 c4@3 eb4 c4 f4 eb4 c4 eb4@3 f4 eb4", I: "f4@4 f4@3 eb4 c4@4 eb4@8 c4@12",
  J: "b3 c4 db4 d4@3 d4 f4 g4 f4 d4 f4@3 g4 f4", K: "g4 a4@3 a4@2 g4@2 d4@4 f4@8 d4@12",
  L: "a4 bb4@3 ~@4 a4 bb4@3 a4@2 g4@2 a4 bb4@3 a4@2 g4@2 a4 bb4@3 a4@2 g4@2", M: "a4@4 bb4@4 a4 bb4 ~ a4 g4@20",
  N: "f2 ~ g2@7 g2@3 ~ f2@2 g2 ~ bb2@2 g2@2 c3 bb2@2 ~@2 d3 ~ c3 ~ f3@2",
  O: "d3@2 ~@2 g3@2 f3 ~ bb3@2 g3@2 ~@2 c4 ~ bb3@2 ~ d4 c4 ~ f4@6 g4@2 ~@2",
  P: "g2@8 g2@3 ~ f2@2 g2 ~ bb2@2 ~ g2 c3@2 bb2@2 ~@2 d3 ~ c3 ~ f3@2",
  Q: "d3@2 ~@2 g3 ~ f3 ~ bb3@2 g3@2 ~@2 c4 ~ bb3 ~ d4 ~ c4 ~ f4@6 ~ g4@2 ~",
  R: "[~ g3@5 f3 ~ g3 ~ g2@3 ~@18 g3@6 ~ f3@2 g3@2 bb3@3 ~@19]/2", S: "g3@5 ~ f3@2 g3@2 g2@3 ~@19",
  T: "g3@6 f3@2 g3 ~@2 bb3@5 ~@16", U: "g4@15 ~ a4@14 ~@2", V: "bb4@14 ~@2 c5@13 ~@3", W: "d5@7 ~ e5@7 ~",
  X: "f5@14 ~@2 g5@15 ~", Y: "bb5 ~@7", Z: "~@24 g2@2 ~ g2@3 g2@2", AA: "~@24 g2@2 ~ g2@2 ~ g2@2",
  AB: "~@24 g2@2 ~ g2@2 bb2@3", AC: "~@24 g2@2 ~ g2@2 ~ f2@2", AD: "~@24 g2@2 ~ g2@2 ~ bb2@2",
  AE: "~@25 g2@2 g2@2 ~ f2@2", AF: "~@25 g2@2 g2@2 ~ bb2@2", AG: "~ g2@31",
  AH: "c4@4 c4@3 bb3 g3@4 c4@4 c4@3 bb3 g3@4 c4@4 c4@3 bb3",
  AI: "[g3@4 ~ [f3,bb3]@94 ~@14 [c3,g3]@77 ~@2, ~@4 bb2@94 ~@15 c4@74 ~@5]/6", // Bb5 C5
  AJ: "[~@13 g2@79 ~@4, ~@12 [d3,g3]@79 ~@5]/3", // G5
})).s("gm_distortion_guitar").gain(0.56).pan(0)

// other · electric guitar jazz · "Guitar"
const electric_guitar_jazz = note("<~@37 A B C D E F G H ~@53>".pickRestart({
  A: "d3 ~ e3@2 f3@2 g3@2 a3@2 bb3 ~ c4@2 bb3@2 ~@2 g3@12 ~@2", B: "g3 ~ a3@2 bb3 ~ c4@2 d4 ~ e4@2 f4@2 e4@15 ~@3",
  C: "bb3@2 c4 ~ d4 ~ e4@2 f4 ~ g4@2 a4@2 g4@2 ~@2 e4@13 ~", D: "d4 ~ e4 ~ f4 ~ g4@2 a4 ~ bb4 ~ c5 ~ bb4@14 ~@4",
  E: "d3@2 c3@2 d3 ~ e3@2 f3 ~ e3 ~ f3 ~ g3 ~ a3@2 g3 ~ a3@2 bb3@2 c4 ~ bb3 ~ c4 ~ d4@2",
  F: "~ a3 bb3@2 g3@3 ~ g3@2 g3@2 ~@2 g3@3 ~ f3@4 d3 ~ f3@2 f3@4 ~@2",
  G: "~ [c4,db4] d4@3 [c4,f4]@2 d4 e4@3 g4@2 [e4,gb4] ~@3 a4@2 f4 g4@3 bb4 ~ [g4,ab4] a4@3 c5 ~@2, ~@8 eb4 ~@5 f4@5 ~ gb4 ~@11", // Dbmaj7 F5 Esus2 Abmaj7
  H: "a4 ~@2 d5@3 bb4 ~ c5 ~ d5@2 f5@2 g5@2 ~@16, bb4@3 ~@13",
})).s("gm_electric_guitar_jazz").gain(0.56).pan(0)

// chords · electric guitar jazz · "Rhythm guitar"
const electric_guitar_jazz_2 = note("<~@21 A B C D@2 E F G H I J K L M N O P Q R S T U V W ~@53>".pickRestart({
  A: "~ g4@3 ~@2 [g3,bb3,d4]@2 [bb3,d4]@5 ~@3 [g2,g3,c4]@2 ~ gb2 ~@2 [c3,g3,c4]@2 [c3,c4,e4]@4 [g2,c3,g3,c4]@3 ~, [g3,bb3,d4]@3 ~@3 g4@8 ~@4 [g3,c4,e4]@2 ~@12, ~@8 g3@3 ~@5 c3@4 ~@4 [g2,g3]@3 ~@5", // Gm Bb C5 C C5 Gm C G
  B: "[d3,g3,bb3,d4,g4]@4 ~@3 d3 [d3,g3,bb3,d4]@5 ~ [d3,g3,d4,g4] ~ [c3,g3,c4]@2 ~ [c3,g3,c4] ~@3 gb2 [g2,g3,c4,e4]@4 [g3,c4,e4]@3 ~, ~@3 [g3,bb3,d4,g4] g4 ~@6 c3@4 ~, ~@11 [g3,c4,e4] ~@4", // Gm G5 C5 C Gm C
  C: "[d3,g3,bb3,d4,g4]@3 ~@3 d3 ~ [bb3,d4,g4]@4 ~@2 [bb3,g4] d3 ~@3 gb2 ~@3 gb2 [g2,g3,c4,e4]@4 [g2,g3,c4,e4]@3 ~, ~@3 g3@3 ~@2 [g3,c4,e4]!2 ~ [g3,c4] ~@4, ~@6 [bb3,d4,g4]@2 ~@9 g2@2 ~@13, ~@7 ab2@5 ~@4 c3@4 ~@2 c3@5 ~@5", // Gm Eb C C5 Gm
  D: "[[d3,g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4]@2 [g3,bb3,d4]@4 ~@2 c3 c4 [g3,c4]@2 ~ g2 ~@2 [ab3,db4,f4] ~ [g3,c4,e4]@3 ~ [f3,bb3,d4]@4 [d3,g3,bb3,d4]@4 gb4 ~ [d3,g3,bb3]@2 [g3,bb3]@4 ~@2 [bb3,d4,g4] ~ [g3,c4,e4]@2 [g2,c4,e4] [g2,g3]@2 ~ [g3,c4]@2 [g2,c3,g3,c4,e4]@4 [c3,g3,c4,e4]@2 ~@2, ~@3 [d3,g4]@3 ~@2 [g2,c3,e4]@2 ~@9 d4@3 ~@2 c3@2 ~@6, ~@18 [g3,c4]@2 ~@8 g4@8 ~ g4@7 ~@4 gb2 ~@15]/2", // Gm C5 Db C Bb Gm C G …
  E: "[ab2,d3,g3,bb3,d4,g4]@3 ~@3 [d3,bb3,d4,g4]@2 [bb3,d4,g4]@3 ~@3 [d4,g4] ~ gb2 g2 [g3,c4,e4]@2 ~@2 [c3,g3,c4] ~ [g2,c3,g3,c4]@4 [g2,c3,g3,c4,e4]@3 ~, ~@3 g3@3 ~@2 c3@2 ~@6, ~@8 [g3,c4,e4] ~@7", // Gm G5 C C5 C
  F: "[d3,g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4]@2 [g3,d4]@4 ~@4 [g2,g3,c4,e4]@2 ~ g2 ~@3 gb2 [g3,c4]@4 [g3,c4]@2 ~@2, ~@3 [d3,g4]@3 ~@2 c3@2 ~ [g3,c4] ~@4, ~@18 [g3,c4,e4]@2 ~ e4@8 ~@3, ~@23 g2@6 ~@3", // Gm G5 C C5 G5 C5 C
  G: "[d3,g3,bb3,d4,g4]@4 e2 ~ [d3,g3,bb3,g4]@2 [d3,g3,bb3,d4,g4]@4 ~@2 [g3,bb3,d4,g4] d3 ~ gb2 gb4 [g3,c4]@2 ~@4 g2@3 [g3,c4] ~@3, ~@16 c3@4 ~@3 [gb2,c3]@2 ~@7, ~@8 [g3,c4] ~@2 [g3,c4] [c3,g3,c4,e4]@2 ~@2, ~@17 e4@3 ~@12", // Gm C5 Gbdim C5 C
  H: "[f4,bb4]@2 f4@2 d4@2 d5@2 [d4,f4,bb4,d5]@4 ~@2 [g3,c4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 ~@2 [f3,bb3,d4]@2 [g3,c4,e4]@4 [g3,c4,e4] ~@3, [d4,d5] [f4,bb4] ~@6", // Bb5 Bb C5 C Bb C D Bb5
  I: "~ eb4@3 d5@2 d5@2 [f4,bb4,d5]@3 ~ d3@2 [c4,e4,a4]@2 [g3,c4,e4]@3 ~@3 [f3,bb3,d4] ~ [g3,c4]@4 [g3,c4,e4] ~@3, [f4,bb4,d5] [f4,bb4] ~@6", // Bb Am C Bb C5 C Bb Bb5
  J: "[d4,bb4]@2 bb4@2 [f4,bb4,d5]@2 [f4,bb4,d5]@2 [d4,f4,bb4,d5]@4 ~@3 c4 [db3,g3,c4,e4]@2 [c4,e4,ab4]@2 ~@2 [f3,bb3,d4]@2 [g3,c4,e4]@4 [g3,c4,e4]@2 ~@2, [f4,d5] d4 ~@6", // Gm Bb C Caug Bb C Dm
  K: "~ d5 d5@2 [f4,bb4,d5]@2 [d4,f4,d5]@2 [d4,f4,d5]@3 ~@5 [c4,e4]@2 [c4,e4]@2 ~@2 [f3,bb3,d4]@2 [g3,c4,e4]@4 [db3,g3,c4,e4]@2 ~@2, [d4,f4]@3 ~@5 g3@2 ~@6, bb4 ~@2 bb4@3 ~@10", // Bb Dm C Bb C Dm
  L: "~ g4 ab4@2 ~@2 [f3,bb3,d4,g4]@2 f3 [d4,g4]@2 d4@2 ~@2 c3@3 ~ gb2 ~@3 gb2 [g2,c3,g3,c4,e4]@4 [g2,c3,c4,e4]@2 ~@2, [d3,f3,bb3]@2 ~@2 [ab2,d3,bb3]@2 ~@3 [c3,g3,c4,e4] ~ [c3,g3,c4] ~@4, ~ d4@4 ~@9 [g3,c4,e4]@3 ~@15", // Gm7 G5 C Bb Bb7 C C5 C
  M: "[d3,f3,bb3,d4,g4]@4 ~@3 d3 ~ gb4!2 ~@4 [g2,g3]@3 [g3,c4,e4]@2 ~@3 [gb2,c3] ~@4 g3@2 ~@2, ~@6 [f3,bb3,f4]@2 [d3,f3,bb3,f4]@4 ~@2 [c4,e4]@4 ~@4 [g3,c4,e4]@2 ~ [c4,e4]@6 ~, ~@8 ab2@2 ~@5 c3@5 ~@4 [g2,c3,g3]@6 ~@2", // Gm7 G C Gbdim Bb5 Bb C C5
  N: "[d3,f3,bb3,d4,g4]@4 ~@5 d4@2 ab2 ~@3 gb2 g2@2 ~ g3 ~@3 [gb2,c3] ~ [g2,e4]@3 [g2,g3,c4,e4]@3 ~, ~@6 g4@2 [ab2,d3]@4 ~@2 [c3,g3,c4,e4]@4 [c3,gb3,c4,e4]@2 ~@4 c3@7 ~, ~@7 [d3,f3,bb3,d4]@2 [f3,bb3,g4]@4 ~@9 [g3,c4]@2 [g3,c4]@4 ~@4", // Gm7 Gbdim C Abdim C Gbm7b5 Bb Gm7 …
  O: "e2 g4 ab4 ~@2 gb4 ~@3 g4!2 bb3@2 ~@2 gb2 g2@2 ~ [gb2,c3] g2 ~@2 [g2,c3] ~ g2@3 [c3,g3,c4,e4]@2 ~@2, [d3,bb3,d4]@4 ~@3 [d3,f3]@5 ~@3 c3@4 ~@5 [c3,g3,c4,e4]@4 ~@4, ~ f3@3 ~@2 [bb3,d4,g4]@2 bb3@2 ~@4 [g3,c4,e4]@4 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@2 ~@8, ~@9 d4@4 ~@19", // Gbdim C5 C Gm Dm C Gm C
  P: "bb3@2 c4 ~ d4@2 e4@2 f4@2 g4@2 a4@2 g4@2 ~@2 e4@13 ~", Q: "d4 ~ e4 ~ f4 ~ g4@2 a4 ~ bb4 ~ c5@2 bb4@16 ~@2",
  R: "g4 ~ a4@2 bb4@2 c5 ~ d5 ~ e5@2 f5@2 e5@2 ~@2 c5@12 ~@2", S: "bb4 ~ c5 ~ d5@2 e5 ~ f5 ~ g5@2 a5@2 g5@15 ~@3",
  T: "bb3@2 a3 ~ bb3 ~ c4 ~ d4@2 c4 ~ d4@2 e4@2 f4 ~ e4 ~ f4 ~ g4@2 a4 ~ g4@2 a4@2 bb4@2",
  U: "gb4 g4@3 e4@2 ~@2 e4@2 e4@2 ~@2 e4@3 ~ d4@3 ~ bb3@2 d4@2 d4@4 ~@2",
  V: "~ e3 f3@3 [e3,a3]@2 f3 g3@3 bb3@2 [g3,a3] ~@3 c4@2 a3 bb3@3 d4 ~ bb3 c4@3 e4 d4 ~, ~@8 f3 ~@5 a3@5 ~ a3 ~@11", // A5 Gsus2
  W: "c4 ~@2 f4@3 d4 ~ e4 ~ f4@2 a4@2 bb4@2 c5 ~@15, d4@3 ~@13",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(1)

// other · overdriven guitar · "Rhythm guitar"
const overdriven_guitar = note(`<
  ~@45 A B C@2 D E F G H I J K L ~@6 M@2 N@2 O P Q R S R S T ~@13 U@6 V@2 W
>`.pickRestart({
  A: "~ g2@8 g2@3 ~ f2@2 g2 ~ bb2@2 g2@2 c3 ~ bb2@2 ~@2 d3 c3 ~ f3 ~",
  B: "d3@2 ~@2 g3 ~ f3 ~ bb3@2 ~ g3@2 ~@2 c4 ~ bb3 ~ d4 ~ c4 ~ f4@5 g4@2 ~@2",
  C: "[~ g2@8 g2@3 ~ f2@2 g2 ~ bb2@2 g2@2 c3 ~ bb2@2 ~@2 d3 ~ c3 ~ f3@2 d3@2 ~@2 g3 f3 ~ bb3@2 ~ g3@2 ~@2 c4@2 bb3@2 d4 ~ c4@2 f4@6 g4@2 ~]/2",
  D: "~ g3@5 ~ f3 ~ g3 ~ g2@3 ~@18", E: "g3@6 f3 ~ g3@2 ~ bb3@3 ~@18", F: "g3@5 ~ f3@2 g3@2 ~ g2@3 ~@18",
  G: "g3@6 ~ f3@2 g3@2 bb3@5 ~@8 f4 ~@7", H: "g4@15 ~ a4@15 ~", I: "bb4@15 ~ c5@15 ~", J: "d5@15 ~ e5@15 ~",
  K: "f5@15 ~ g5@15 ~", L: "bb5@3 ~@29", M: "~@24 g2@2 ~ g2@3 g2@2", N: "~@24 g2@2 ~ g2@2 ~ g2@2",
  O: "~@24 g2@2 ~ g2@2 bb2@3", P: "~@24 g2@2 ~ g2@2 ~ f2@2", Q: "~@24 g2@2 ~ g2@2 ~ bb2@2", R: "~@25 g2@2 g2@2 ~ f2@2",
  S: "~@25 g2@2 g2@2 ~ bb2@2", T: "~ g2@31", U: "[~@5 [f3,bb3]@94 ~@14 [c3,g3]@77 ~@2, ~@4 bb2@94 ~@15 c4@74 ~@5]/6",
  V: "[~@17 [c4,f4]@7 [c4,f4] [db4,gb4] [d4,g4]@4 [d4,g4]@3 gb4 c4@3 ~ [c4,f4]@2 [db4,gb4] [d4,g4]@4 [d4,g4]@2 [eb4,ab4] [f4,bb4]@3 ~ [f4,bb4]@2 [gb4,b4] [g4,c5]@3 [g4,b4,c5]@2 [ab4,db5] [a4,d5]@3, ~@33 f4@4 ~@11 [e4,a4] ~@15]/2", // F5 Gb5 G5 F5 Gb5 G5 Ab5 Bb5 …
  W: "~ [a4,d5]@3 ~ f5@3 [a4,d5]@3 ~ [c5,f5]@3 ~ [d5,g5]@15 ~, ~@4 c5@3 ~@5 ab4 ~@19", // D5 F5 G5
})).s("gm_overdriven_guitar").gain(0.64).pan(1)

// other · alto sax
const alto_sax = note("<~@37 A B C D E F G H ~@53>".pickRestart({
  A: "g3@2 a3@2 bb3@2 c4 ~ d4 ~ e4 ~ f4 ~ e4@2 ~@2 c4@13 ~", B: "bb3@2 c4 ~ d4 ~ e4@2 f4 ~ g4@2 a4@2 g4@16 ~@2",
  C: "d4 ~ e4 ~ f4 ~ g4 ~ a4@2 bb4 ~ c5@2 bb4@2 ~@2 g4@13 ~", D: "g4@2 [g4,a4]@2 bb4 ~ c5@2 d5 ~ e5 ~ f5@2 e5@16 ~@2",
  E: "g3@2 f3 ~ g3 ~ a3@2 bb3 ~ a3 ~ bb3@2 c4 ~ d4@2 c4 ~ d4@2 e4@2 f4 ~ e4 ~ f4@2 g4 ~",
  F: "eb4@2 e4@2 c4@3 ~ c4@2 c4@2 ~@2 c4@2 ~@2 bb3@3 ~ g3 ~ bb3@2 bb3@5 ~",
  G: "~ g3 a3@3 c4@2 a3 bb3@3 d4@2 [bb3,c4] ~@3 e4@2 c4 d4@3 f4 ~ d4 e4@3 g4 f4 ~, ~@5 g3 ~@2 a3 ~@5 c4@5 ~ c4 ~@11", // Bbsus2
  H: "e4 ~@2 a4@3 f4 ~ g4 ~ a4@2 c5@2 d5@2 e5@15 ~, f4@3 ~@13",
})).s("gm_alto_sax").gain(0.8)

// drums · rim
const rim = s("rim").struct("<~@61 [~@7 x ~@24] ~@36>").gain(0.32)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A C D E D F D E D E G E H E A B A C I@11 J I@4 K@6 L M N O P Q R S T S ~@4 U V ~ W X ~@2 Y Z@10 AA ~@4 AB A B A
  C D E D AC AD ~ AE AF ~ AG AH ~ U
>`.pickRestart({
  A: "x!2 ~@5 x!2 ~ x ~ x ~@3", B: "x!2 ~@6 x ~ x ~@5", C: "x!2 ~@6 x ~@3 x ~@3", D: "x ~@2 x ~@4 x ~@2 x ~@4",
  E: "x ~@2 x ~ x!3", F: "x ~@2 x ~@2 x ~ x ~@3 x ~@3", G: "x ~@2 x!2 ~@2 x!2 ~ x!3 ~ x!2",
  H: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", I: "x ~@2 x ~@3 x ~@3 x ~@2 x ~", J: "x ~@2 x ~@3 x!2 ~ x ~ x ~ x ~",
  K: "x ~@2 x ~@3 x!2 ~@2 x ~@4", L: "x ~@6 x ~@5 x ~@5 x ~@4 x ~@6 x", M: "~@5 x ~@10 x ~@5 x ~@9",
  N: "~@2 x ~@3 x ~@8 x ~ x ~@3 x ~ x ~@6 x ~", O: "x ~@3 x ~ x ~@7 x ~ x ~@4 x!2 ~@4 x ~@4",
  P: "x ~ x!2 ~@3 x!2 ~ x!2 ~@3 x", Q: "x ~ x ~@4 x!2 ~ x!2 ~@4", R: "x ~@5 x ~@9 x ~@6 x!2 ~@7",
  S: "x ~@6 x ~@8 x ~@6 x ~@8", T: "x ~@6 x ~@8 x ~@6 x!2 ~@7", U: "~@3 x", V: "~@25 x ~@6", W: "~ x ~ x ~@28",
  X: "~@7 x ~ x ~@22", Y: "x ~@12 x ~@2 x ~@4 x ~@7 x ~@2", Z: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@7 x ~@2", AA: "~ x ~@30",
  AB: "~@2 x!2", AC: "x ~@2 x ~@2 x ~", AD: "~ x ~@6", AE: "~@19 x ~ x ~@3 x ~@2 x ~@3", AF: "~@17 x ~@14",
// … 103 more lines

More by Edgar Winter