Strudelify

Atomic

Blondie

KeyD minorTempo129 bpm
0:00/0:00
// Atomic — Blondie
// 129 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 140 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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.

// chords · synth strings 2
const synth_strings_2 = note(`<
  ~ A@6 B@5 C@5 D@2 E@6 F@8 G@4 H@6 I@5 J@6 K@6 C@5 L@3 M@8 N@7 O@5 P@6 Q@3 R S@7 R T@2 U@4 V@4 W@8 X Y Z@6 AA@8
>`.pickRestart({
  A: "[a3@64 bb3@62 ~ [g3,b3,d4]@63 ~ g3, [d4,f4]@126 ~ c4 ~@64]/6", // G Dm
  B: "[c4@31 db4@29 ~@4 f4@63 ~ f4@32, e4@61 ~@2 d4@62 ~@35, d4 ~@30 a3@95 ~ [bb3,d4]@33]/5", // Bb
  C: "[~@31 [g3,b3,d4]@63 ~ [g3,c4,e4]@31 ~ [a3,e4]@32 [d4,gb4], ~@127 db4@30 ~@3]/5", D: "[[a3,d4,gb4]@63 [bb3,b3]]/2",
  E: "[a3 ~ b3@60 ~ [g3,c4]@63 ~ [a3,db4]@64 d4, [e4,g4]@61 ~@2 e4@126 ~@3]/6", // C5 A Em
  F: "[[a3,d4,gb4]@62 ~ [bb3,b3] a3 ~ b3@60 ~ [g3,c4]@63 ~ [a3,db4]@64 [d4,gb4], ~@63 g4@60 ~@133, ~@64 e4@61 ~@2 e4@126 ~@3]/8", // D Bmaj7 C5 A D
  G: "[[a3,d4,gb4]@62 ~ [a3,bb3,b3] ~ b3@60 ~@2 [g3,c4,e4], ~@63 g4@60 ~@5, ~@64 e4@61 ~@3]/4", // D C
  H: "[[g3,c4]@63 a3@62 ~@2 [a3,c4]@65, e4@126 ~ f4@62 ~@3, ~@63 db4@59 ~@70]/6", // C5 Am
  I: "[[g3,e4]@61 ~@3 f4@60 ~@3 [g3,b3]@33, ~@63 [a3,d4]@62 ~ d4@34]/5", // C G D5
  J: "[~@96 bb3@62 ~ [g3,b3,d4]@33, ~@31 f4@126 ~@35, ~@31 a3@64 ~@97, ~@32 d4@126 ~ c4 ~@32]/6", // G
  K: "[~@31 [g3,c4]@32 db4@29 ~@3 [d4,f4]@63 ~ [bb3,d4,f4]@33, ~@31 e4@61 ~@100, ~@31 d4 ~@31 a3@95 ~@34]/6", // C5 Dm Bb
  L: "[[a3,d4,gb4]@63 [a3,bb3,b3] ~ b3@31, ~@21 [e4,g4]@11]/3", // D Em
  M: "[~@31 [g3,c4]@63 ~ [a3,db4]@64 [a3,d4,gb4]@62 ~@2 [a3,bb3,b3] ~ b3@31, ~@31 e4@126 ~@66 [e4,g4]@33]/8", // C5 A D Em
  N: "[~@31 [g3,c4]@63 ~ a3@62 ~@2 c4@65, ~@31 e4@126 ~@2 f4@62 ~@3, ~@95 db4@59 ~@4 a3@63 ~@3]/7", // C5
  O: "[[g3,e4]@61 ~@2 [d4,f4]@60 ~@4 b3@33, ~@31 a3@31 ~ [g3,d4]@17]/5", // C Dm G5
  P: "[~@31 a3@64 bb3@62 ~ c4 [g3,b3]@33, ~@31 [d4,f4]@126 ~ d4@34]/6", // G Dm
  Q: "[~@31 [g3,c4]@31 a3 a3@32 [a3,db4,d4,f4], ~@31 e4@62 ~@3, ~@31 d4 ~@31 db4@29 ~@4, ~@63 b3 ~@32]/3", R: "[d4,f4]",
  S: "[~@31 [d4,f4]@59 ~@4 c4 g3@2 g3@61 [c4,e4] [g3,c4,e4]@31 a3 [db4,e4]@30 ~@2 [d4,f4], ~@31 bb3@62 ~ d4@62 ~@3 d4 ~@64, ~@95 b3@62 ~@34 a3@32 ~, ~@95 gb3 ~@128]/7", // Dm C Dbm Dm
  T: "[~ d4, ~@31 [bb3,f4]@33]/2", // Bb5
  U: "[~@30 [c4,d4] b3@2 b3@60 ~@2 [g3,c4,e4]@31 a3 [a3,db4,e4], ~@31 [g3,d4]@63 ~@34, ~@31 db4 ~@63 d4 ~@32]/4", // Csus2 C A G5
  V: "[~@30 d4 f4 ~@63 [bb3,d4]@32 [bb3,d4,f4], ~@31 [a3,d4]@62 ~@35, ~@32 f4@95 ~]/4", // Bb D5
  W: "[~@30 [c4,d4] b3 b3@62 ~ [g3,c4]@31 a3 db4@29 ~@2 d4 [d4,f4]@63 bb3 [bb3,d4,f4]@32 [bb3,d4,f4], ~@31 [g3,d4]@63 ~ e4@62 ~@99, ~@95 d4 ~@31 a3@94 ~@35]/8", // Csus2 C5 Dm Bb G5
  X: "~@30 [g3,b3,c4,d4] d4", Y: "[g3,b3]",
  Z: "[~@30 e4 c4@31 a3 db4@29 ~@2 d4 d4@63 ~ [bb3,d4]@33, ~@30 g3@32 ~ a3@95 ~@34, ~@31 e4@61 ~@3 f4@97, ~@31 d4 ~@160]/6", // Bb
  AA: "[~@30 [g3,b3,d4]@64 e4 c4@30 ~ [a3,db4] db4@29 ~@2 d4 [d4,f4]@82 ~@15, ~@30 c4 ~@63 g3@32 ~ a3@114 ~@15, ~@95 e4@62 ~@99, ~@95 d4 ~@160]/8", // G A Dm
})).s("gm_synth_strings_2").gain(0.51)

// bass · electric bass finger
const bass = note(`<
  ~ A@2 B@2 C D E F G H I J C@2 E F K L M N E@2 O P K L Q N E@2 O R K L S T U E V W X Y Z AA@2 AB AC AD AE AF AG AH AI
  AJ AK AL AM AN AO@4 AP AQ AR AS AT@4 AU AV AR AS AW@4 AX@3 AY AZ BA@3 BB@2 BC BD@3 BE@4 BC BF@3 BG@4 BH@4 BI@7 BJ@8
  BK@8 BL@6 ~@2
>`.pickRestart({
  A: "d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2",
  B: "bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2",
  C: "g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2",
  D: "g1@4 g2 g2@2 ~ g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2",
  E: "c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2",
  F: "a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2",
  G: "d2@4 d3@4 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2",
  H: "d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 d3@2 ~ d2@4 d3 ~ d3@2",
  I: "bb1@4 bb2 ~ bb2@2 bb1@3 ~ bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2",
  J: "bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~@2 bb1@4 ~ bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2, ~@7 bb2 ~@8",
  K: "d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~",
  L: "d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~",
  M: "e2@4 e3@2 ~ g2@5 g3@2 g3@2 b2@4 b3@3 d2@5 d3@4, ~@3 e3 ~@12",
  N: "e2@4 e3@2 ~ g2@5 g3@2 g3@2 b2@4 b3@4 d2@4 d3@4, ~@3 e3 ~@12",
  O: "a1@4 a2 ~ a2@2 a1@4 a2 ~ a2 a1@5 a2 ~ a2@2 a1@4 a2 ~ a2@2", P: "a1@4 a2@4 b1@4 b2@3 c2@5 c3@4 db2@4 db3@4",
  Q: "e2@4 e3 e3@2 g2@5 g3@2 g3@2 b2@4 b3@3 d2@5 d3@4", R: "a1@4 a2@3 b1@5 b2@3 c2@4 c3@4 ~ db2@4 db3@4",
  S: "e2@4 e3 e3@2 g2@5 g3@2 ~ b2@4 b3@4 d2@5 d3@4, ~@7 g3 ~@8",
  T: "e2@4 e3@2 ~ g2@5 g3@2 g3@2 b2@4 b3@4 ~@3 d3@4 ~, ~@6 e3@2 ~@16 d2@5 ~@3",
  U: "c2@4 c3 c3@2 ~ c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2",
  V: "~@3 a2 ~ a2@2 ~ a1@4 a2 ~ a2 a1@5 a2 ~ a2@2 a1@4 a2 ~ a2@2, a1@5 ~@27",
  W: "a2@4 a3@3 b1@5 c3@3 c2@4 c3@4 ~ e2@4 e3@4", X: "f2@4 f3 ~ f3 ~ f2@4 f3 f3@2 ~ f2@4 f3 ~ f3@2 f2@4 f3 ~ f3@2",
  Y: "f2@4 f3 ~ f3 ~ f2@4 f3 ~ f3@2 f2@4 f3 ~ f3@2 f2@4 f3 ~ f3@2",
  Z: "c2@4 c3 ~ c3@2 c2@4 c3 c3@2 ~ c2@4 c3 c3@2 ~ c2@4 c3 ~ c3 ~",
  AA: "[c2@4 c3 ~ c3 ~ c2@4 c3 c3@2 ~ c2@4 c3 c3@2 ~ c2@4 c3 ~ c3 d2@5 d3 ~ d3@2 d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 d2]/2",
  AB: "d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2",
  AC: "g1@4 g2 ~@2 g1@5 g2 ~ g2@2 g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~, gb1 ~@5 g2@2 ~@24", AD: "g1 ~@31",
  AE: "d2@4 d3 ~ d3@2 d2@3 d3 ~ d3@2 ~ d2@4 d3 d3@2 ~ d2@4 d3 ~ d3@2",
  AF: "d2@4 d3 d3@2 ~ d2@4 d3 d3@2 ~ d2@4 d3 d3@2 ~ d2@3 d3 ~ d3@2 ~",
  AG: "bb1@4 bb2 bb2@2 ~ bb1@4 bb2 ~ bb2@2 bb1@4 bb2 bb2@2 ~ bb1@4 bb2 bb2@2 ~",
  AH: "bb1@4 bb2 bb2@2 ~ bb1@4 bb2 bb2@2 bb1@4 ~ bb2 bb2@2 ~ bb1@3 bb2 ~ bb2@3",
  AI: "g1@4 g2 ~ g2@2 g1@4 g2 g2@2 ~ g1@4 g2 g2@2 ~ g1@4 g2 ~ g2@2",
  AJ: "g1@3 g2 ~ g2@2 ~ g1@3 g2 ~ g2@2 g1@4 g2 ~ g2@2 ~ g1@3 g2 ~ g2@2 ~",
  AK: "c2@4 c3 c3@2 c2@4 c3 ~ c3@2 ~ c2@3 c3 ~ c3@2 ~ c2@4 c3 c3@2 ~",
  AL: "a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 a2@2 ~ a1@3 a2 ~ a2@2 ~",
  AM: "d2@4 d3@4 d2@3 ~ d3 ~ d3@2 d2@4 d3 d3@2 ~ d2@4 d3 ~ d3@2",
  AN: "d2@3 d3 ~ d3@2 d2@4 d3 ~@3 d2@4 d3 ~ d3@2 d2@4 d3 ~@2 d3@2, ~@7 d3 ~@8",
  AO: "[bb1@3 bb2 ~@2 bb2@2 bb1@3 ~ bb2 bb2@2 bb1@4 ~ bb2 bb2@2 ~ bb1@4 bb2 bb2@2 bb1@4 ~ bb2 bb2@2 bb1@4 ~ bb2 bb2@2 bb1@4 ~ bb2 ~@2 bb1@4 ~ bb2 ~@2 g1@4 g2 ~ g2@2 ~ g1@4 g2 ~@2 g1@4 g2 ~@3 g1@4 g2 ~ g2@2 g1@5 g2 g2@2 ~ g1@3 g2 ~ g2@2 g1@4 ~ g2 g2@2 ~ g1@4 g2 ~ g2@2, ~@27 bb2 ~@3 bb2 ~@7 g2 ~@3 g2 ~@20]/4",
  AP: "c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@3 c3 ~@2 c3@2 c2@4 c3 ~ c3@2",
  AQ: "a1@4 a2 ~ a2@2 a1@4 a2 ~@2 a1@5 a2 ~@2 a1@4 a2 ~@2 a2@2, ~@7 a2 ~@3 a2 ~@4",
  AR: "d2@3 d3 ~ d3@2 ~ d2@3 d3 ~@2 d3@2 d2@4 d3 ~ d3 d2@4 d3 ~ d3 ~ d2",
  AS: "d2@4 d3!2 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~@2",
  AT: "[~@3 e3@2 e3@2 g2@4 g3@2 g3@2 b2@4 b3@4 d2@4 d3@4 e2@5 e3 e3@2 g2@5 g3@2 g3@2 ~@3 b3@4 d2@4 d3@4 c2@5 c3 c3@2 ~ c2@4 c3 c3@2 c2@5 c3 c3@2 c2@4 c3 ~ c3@2 c2@5 c3 c3@2 ~ c2@4 c3 c3@2 c2@4 c3 ~ c3@2 c2@5 c3 c3@2 ~, e2@5 ~@43 b2@5 ~@75]/4",
  AU: "~@3 a2 ~ a2@2 a1@4 a2 ~ a2 ~ a1@5 a2 a2@2 a1@4 a2 ~ a2@2 ~, a1@5 ~@27",
  AV: "~@3 a2@4 b1@5 b2@3 c2@4 c3@4 db2@4 db3@4 ~, a1@5 ~@27",
  AW: "[~@3 e3@2 e3@2 g2@4 g3@2 g3@2 b2@4 b3@4 d2@4 d3@4 e2@5 e3 e3@2 g2@5 g3@2 g3@2 ~@3 b3@4 d2@4 d3@4 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@5 c3 c3@2 c2@4 c3 ~ c3@2 c2@5 c3 c3@2 ~ c2@4 c3 c3@2 c2@4 c3 ~ c3@2 c2@5 c3 c3@2 ~, e2@5 ~@43 b2@5 ~@75]/4",
  AX: "[~@3 a2 ~ a2@2 a1@4 a2 ~ a2 ~ a1@5 a2 a2@2 a1@4 a2 ~ a2@2 a2@4 a3@4 b1@5 b2@3 c2@4 c3@4 e2@4 e3@4 f2@4 f3 ~ f3 ~@2 f2@4 f3 f3@2 f2@4 f3 ~ f3@2 ~ f2@4 f3 f3@2 ~, a1@5 ~@91]/3",
  AY: "f2@4 f3!2 ~@2 f2@3 f3 ~ f3@2 ~ f2@4 f3 f3@2 ~ f2@4 f3 ~ f3@2",
  AZ: "c2@4 c3 c3@2 ~ c2@3 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 ~ c3!2 ~@2",
  BA: "[c2@4 c3!2 ~ c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@5 c3 ~ c3 d2@4 d3 ~@2 d3@2 d2@4 d3 ~ d3 ~ d2@3 d3 ~ d3 ~ d2@4 d3 ~@2 d3 d2@4 ~ d3 ~ d3 d2@4 d3 ~ d3 ~@2 d2@4 d3 ~ d3@2 d2@4 d3 ~@2 gb1, ~@47 d3]/3",
  BB: "[g1@3 g2 ~ g2@2 g1@5 g2 ~@2 g1@5 g2 ~ g2 ~@4 g2 ~@2 g2 g1@2 ~@31, ~@14 g2@2 ~@8 g1@5 ~@35]/2",
  BC: "d2@3 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 ~ d3 d3@2 ~",
  BD: "[d2@3 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 bb1@4 bb2 ~ bb2@2 ~ bb1@4 bb2 bb2@2 ~ bb1@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 ~ bb1@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@3]/3",
  BE: "[g1@4 g2 ~ g2@2 g1@3 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 a1@4 a2 ~ a2@2 a1@4 ~ a2 a2@2 ~ a1@3 a2 ~ a2@2 a1@4 a2 ~ a2@2 ~]/4",
  BF: "[d2@3 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 bb1@4 bb2 ~ bb2@2 ~ bb1@4 bb2 bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 ~ bb1@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@3]/3",
  BG: "[g1@4 g2 g2@2 ~ g1@3 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 ~ a1@3 a2 ~ a2@2 a1@4 a2 ~ a2@2 ~]/4",
  BH: "[d2@3 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 bb1@4 bb2 ~ bb2@2 ~ bb1@4 bb2 bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 ~ bb1@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@3]/4",
  BI: "[g1@4 g2 g2@2 ~ g1@3 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 bb1@4 bb2 ~ bb2@2 ~ bb1@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1]/7",
  BJ: "[~@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 g1@5 g2 g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1]/8",
  BK: "[~@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 ~ d2@3 d3 ~ d3@2 d2@4 d3 ~ d3@2 d2@4 d3 ~ d3@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1]/8",
  BL: "[~@3 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 bb1@4 bb2 ~ bb2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 g2@2 ~ g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 g1@4 g2 ~ g2@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 a1@4 a2 ~ a2@2 d2@4 ~@29]/6",
})).s("gm_electric_bass_finger").gain(0.51)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  A B@6 C D B@6 C E ~@31 F B@2 G@2 B@2 C H I@2 J@4 C E ~@23 K L@8 M@8 ~@15 N@16 O@3 ~
>`.pickRestart({
  A: "~@12 a3@4 f4@4 e4@11 ~", B: "[d4@11 a3 f4 e4@3]/2", C: "g4", D: "a4@3 a3 f4 e4@3", E: "a4",
  F: "~@15 f4@5 e4@11 ~, ~@12 a3@5 ~@15", G: "[d4@43 a3@5 f4@4 e4@12]/2", H: "a4@12 ~@3 f4@4 ~ e4@12, ~@6 a3@3 ~@7",
  I: "[d4@43 a3@4 f4@4 e4@12 ~]/2", J: "[d4@43 a3@4 f4@4 ~ e4@11 d4@44 a3@5 f4@4 e4@12]/4", K: "~@11 a3@4 f4@5 e4@11 ~",
  L: "[d4@43 a3@4 f4@4 ~ e4@11 d4@44 a3@4 f4@4 e4@12 d4@44 a3@4 f4@4 ~ e4@11 g4@32 a4@12 a3@4 f4@4 e4@12 ~]/8",
  M: "[d4@43 a3@4 f4@4 ~ e4@11 d4@44 a3@4 f4@4 e4@12 d4@44 a3@4 f4@4 e4@12 g4@32 a4@12 a3@4 f4@4 e4@12 ~]/8",
  N: "[~@11 a3@4 f4@4 e4@12 d4@44 a3@4 f4@4 ~ e4@11 d4@44 a3@4 f4@4 e4@12 d4@44 a3@4 f4@4 e4@12 g4@32 a4]/8",
  O: "[~@11 a3@4 f4@4 e4@12 d4@44 ~@21]/3",
})).s("gm_lead_8_bass_lead").gain(0.51)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note("<~@16 A@3 B@8 C@8 D E@7 F@6 ~@15 G@4 H@8 I@8 ~ J@4 ~@51>".pickRestart({
  A: "[~@32 gb4@62 ~ a3, ~@31 [a3,d4]@62 ~@3]/3", // D5
  B: "[~@2 [b3,e4]@59 ~@2 gb4 ~@64 db4@61 ~@3 d4@62 ~ a3, ~ g4@59 ~@3 [g3,c4]@64 a3@126 ~@3, ~@33 e4@62 ~@33]/8", // E5 C5
  C: "[~@2 [b3,e4]@59 ~@2 gb4 ~@64 db4@61 ~@3 [d4,gb4]@62 ~ b3, ~ g4@59 ~@3 [g3,c4]@64 a3@126 ~@3, ~@33 e4@62 ~@33]/8", // E5 D C5
  D: "[e4,g4]", E: "[~@31 c4@64 ~ db4@60 ~@3 c4@65, ~@30 g3@63 ~@3 a3@125 ~@3, ~@31 e4@125 ~@3 f4@62 ~@3]/7",
  F: "[e4@61 ~@4 f4@58 ~@5 b3@34 ~@30, g3@59 ~@2 a3@64 ~@2 [g3,d4]@35 ~@30, ~@16 d4@15 ~@17]/6", // G5
  G: "[~@16 gb4@31 ~ g4@16, ~@31 [a3,d4]@62 ~ b3@34, ~@95 e4@33]/4", // D5
  H: "[~@31 [g3,c4]@63 ~ db4@62 ~@3 gb4@62 ~@2 g4@32, ~@31 e4@126 ~@2 d4@62 ~@35, ~@95 a3@126 ~@2 [b3,e4]@33]/8", // C5 E5
  I: "[~@31 [g3,c4]@64 ~ db4@59 ~@4 f4@62 ~@2 [g3,e4]@33, ~@31 e4@124 ~@4 c4@97, ~@95 a3@125 ~@36]/8", // C5 C
  J: "[[bb3,d4] ~@3 f4@56 ~@3 [g3,b3,d4]@35 ~@30, a3@31 ~@33, ~@2 d4@59 ~@67]/4", // Bb G
})).s("gm_lead_2_sawtooth").gain(0.51)

// other · synth brass 2
const synth_brass_2 = note("<~@44 A@4 ~@36 B@4 ~@16 C@6 D@8 E@6 F@8 G@8>".pickRestart({
  A: "[~@4 ab3@3 a3@4 e4@6 ~@2 a4@4 ~@5 f4@68 g4@32]/4", B: "[~@3 ab3@3 ~ a3@4 e4@5 ~@3 a4@4 ~@4 f4@68 g4@33]/4",
  C: "[~@31 d4@16 ~ a3@22 ~ a3@8 d4@8 f4@8 d4@16 bb3@23 ~ bb3@9 d4@8 f4@7 d4@16 b3@17]/6",
  D: "[~@7 b3@15 ~ b3@8 c4@32 db4@31 ~ d4@16 a3@23 ~ a3@7 d4@9 f4@8 d4@16 bb3@23 ~ bb3@7 ~ d4@8 f4@8 d4@16 b3@17]/8",
  E: "[~@7 b3@7 ~ b3@7 ~ b3@8 c4@32 db4@32 d4@16 a3@22 ~@2 a3@8 d4@8 f4@8 d4@16 bb3@17]/6",
  F: "[~@7 bb3@8 d4@7 f4@9 d4@16 b3@23 ~ b3@7 ~ b3@16 c4@32 db4@32 d4@16 a3@23 ~ a3@8 d4@8 f4@8 d4@16 bb3@17]/8",
  G: "[~@7 bb3@8 d4@7 f4@9 d4@16 b3@23 b3@7 ~ b3@17 c4@32 db4@31 d4@68 ~@30]/8",
})).s("gm_synth_brass_2").gain(0.51)

// drums · kick
const kick = s("bd").struct("<A B@39 C B@24 D E@14 F E@23 F E@7 F E@7 F E@7 F E@7 G ~@3>".pickRestart({
  A: "~ x", B: "x!2", C: "x!5 ~@3", D: "x ~@14 x ~@15 x", E: "~@15 x ~@15 x", F: "~@3 x ~@3 x ~@3 x ~@3 x ~@15 x",
  G: "~@7 x ~@7 x ~@7 x ~@7 x",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@7 B A@7 B A@7 B A@7 B A@7 C A@7 D A@7 B A@7 B E@14 F G E@6 F ~ E@7 H E@6 F G E@6 F G E@6 F G E@6 F G E@7 I ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x!4 ~@4", D: "x", E: "~@7 x ~@15 x ~@8", F: "~@7 x ~@15 x ~@7 x",
  G: "~@3 x ~@3 x ~@3 x ~@20", H: "~@7 x ~@24", I: "~@3 x ~@7 x ~@7 x ~@7 x ~@3 x",
})).gain(0.51)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@40 A ~@39 B ~@23 B ~@7 B ~@7 B ~@7 B ~@11>".pickRestart({
  A: "~ x ~ x ~ x ~ x!2 ~@7", B: "~ x ~@3 x ~@3 x ~@3 x ~ x ~@16",
})).gain(0.26)

// drums · clap
const clap = s("cp").struct(`<
  ~ A@7 B A@7 B A@7 B A@7 B A@7 B A@7 C A@7 B A@7 B D@15 E D@6 F ~ D@7 E D@7 E D@7 E D@7 E D@7 E D@6 F G ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x", D: "~@7 x ~@15 x ~@8", E: "~@7 x ~@24", F: "~@7 x ~@15 x ~@7 x",
  G: "~@7 x ~@7 x ~@7 x ~@7 x",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct(`<
  A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@15 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 C ~@3
>`.pickRestart({
  A: "~@14 x!2", B: "~@27 x ~ x ~@2", C: "~@11 x ~ x ~@13 x ~ x ~@2",
})).gain(0.41)

// drums · pedal hat
const pedal_hat = s("hh").struct("<A B@47 A B@16 C D@22 E D@46 F ~@4>".pickRestart({
  A: "x ~@3 x ~@3 x!8", B: "x!8", C: "x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  D: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", E: "~@7 x ~@7 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  F: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4",
})).gain(0.26)

// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~ A@47 ~ A@16 B C@22 ~ C@47 ~@4>".pickRestart({
  A: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", B: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  C: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
})).gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@15 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 C ~@3
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~@23 x ~ x ~@6", C: "~@7 x ~ x ~@13 x ~ x ~@6",
})).gain(0.31)

// drums · high tom
const high_tom = s("ht").struct(`<
  A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@15 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@6 C D ~@3
// … 40 more lines

More by Blondie