Strudelify
Cold as Ice cover art

Foreigner

Cold as Ice

Foreigner

KeyE♭ minorTempo131 bpm
0:00/0:00
// Cold as Ice — Foreigner
// 131 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 109 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(131/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 · piano · "A.PIANO 2"
const piano = note(`<
  A@2 B@2 C D E F C D E G H D E I J K L M N O P Q R S@2 T@2 U V E W U V E W U V E X Y Z AA AB AC O P AD AE AF@2 AG@2 AH
  AI AJ@2 AK AL AM@2 AK AN AO@2 AP AQ AR@2 AS AT AU AV AW AX AU AV AY AZ AU AV BA BB AU AV BA BC AU AV BD BE BF BG BH BI
  AU AV AW BJ AU AV BK BL AU AV AW BM ~
>`.pickRestart({
  A: "[[eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 bb2@2 [db3,eb4,gb4,bb4]@4 bb2@2, [eb2,eb3]@5 ~]/2", // Ebsus4 Ebm Ebsus4 Ebm Ebm7 Eb
  B: "[[eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 bb2@2 [db3,eb4,gb4,bb4]@4 bb2 ~, [eb2,eb3]@19 ~@5]/2", // Ebsus4 Ebm Ebsus4 Ebm Ebm7 Eb
  C: "[eb2,eb3,eb4,ab4,bb4]@2 ~ [eb4,ab4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~", // Ebsus4 Ebm
  D: "[eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 bb2@2 [db3,eb4,gb4,bb4]@4 bb2 ~", // Ebsus4 Ebm Ebm7
  E: "[b2,b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4,gb4]@2 ~ [b3,eb4,gb4]@2 ~", // Abm B
  F: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b3,eb4,gb4]@4 bb2 ~ [db3,b3,eb4,gb4]@4 bb2 ~", // Abm B
  G: "[b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4,gb4]@2 ~ [b3,eb4,gb4]@2 ~, ~@16 db3@7 ~, ~@17 db2@6 ~", // Abm B
  H: "[eb2,eb3,eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2", // Ebsus4 Ebm
  I: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b2,b3,eb4,gb4]@5 ~ [bb2,bb3,eb4,gb4]@6", // Abm B Ebm
  J: "[ab3,b3,eb4,ab4]@5 ~ [ab3,b3,eb4,ab4]@6 [ab3,b3,eb4,ab4]@6 [ab3,b3,eb4,ab4]@6, ab2@7 ~", // Abm
  K: "[gb2,gb3,bb3,db4,gb4]@23 ~", L: "[f2,f3,a3,db4,f4]@23 ~",
  M: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@4 bb2@2, ab2@5 ~", // Abm
  N: "[b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@5 ~, b2 db3", // B
  O: "[gb3,bb3,db4,gb4]@11 ~ [gb3,bb3,db4,gb4]@11 ~, gb2@11 ~", // Gb
  P: "f4@9 ~ [f4,a4,db5,f5] ~ [f4,a4,db5,f5]@11 ~, [f2,f3,a3,db4]@23 ~", // Faug
  Q: "[b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~, ab2@11 ~", // Abm
  R: "[bb3,d4,f4,bb4]@5 ~ [bb3,d4,f4,bb4]@5 ~ [bb3,d4,f4,bb4]@5 ~ [bb3,d4,f4,bb4]@5 ~, bb2@11 ~", // Bb
  S: "[[eb4,ab4,bb4]@3 ~@3 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 eb2@2 bb2@2 eb3@2 [eb4,gb4,bb4]@4 ~@2, [eb2,eb3]@17 ~ [eb4,gb4,bb4]@2 ~ bb2@3]/2", // Ebsus4 Ebm Ebsus4 Ebm Eb Ebm
  T: "[[b3,eb4,ab4]@3 ~@3 [b3,eb4,ab4]@4 ~@2 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b3,f4,ab4]@4 ~@2 gb2@2 b2 ~ eb3@2 [b2,b3,eb4]@5 ~, b2@34 ~@2 [b3,eb4,gb4]@4 ~@2 gb4@3 ~@3]/2", // Abm B Abm Fdim B
  U: "[eb3,eb4,ab4,bb4]@2 ~ [eb4,ab4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4]@2 ~", // Ebsus4 Ebm
  V: "[eb4,ab4,bb4]@4 ~@2 [eb4,ab4,bb4]@4 ~@2 [eb4,gb4,bb4]@4 eb3@2 [bb2,eb4,bb4]@5 ~, ~@6 gb4 ~", // Ebsus4 Ebm Eb5
  W: "[b3,eb4,ab4]@2 ~ [b3,eb4,ab4]@2 ~ [b3,eb4,gb4]@2 b2 [b3,eb4,gb4]@2 ~, ~@3 db3", // Abm B
  X: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@4 ~@2 [b2,b3]@5 ~ [bb2,bb3,eb4]@5 ~, ~@4 [eb4,gb4] ~ gb4 ~", // Abm B Eb5 Ebm
  Y: "[ab2,ab3,b3,eb4,ab4]@11 ~", Z: "[db4,gb4]@11 ~ [db4,gb4,bb4]@12, [gb2,gb3,bb3]@23 ~",
  AA: "f4@9 ~ [f4,a4,db5,f5] ~ [f4,db5,f5]@12, [f2,f3,a3,db4]@23 ~, ~@6 a4@5 ~", // Faug Db Faug
  AB: "[b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 ~ [b3,eb4,ab4,b4]@2 bb2, ab2@5 ~", // Abm
  AC: "[b3,eb4,gb4,b4]@3 ~@3 [b3,eb4,gb4,b4]@4 ~@2 [b3,eb4,gb4,b4]@4 ~@2 [b3,eb4,gb4,b4]@4 ~@2, b2 db3", // B
  AD: "[ab2,b3,eb4,ab4,b4]@23 ~", AE: "[bb3,d4,f4,bb4]@10 ~@2 [bb3,d4,f4,bb4]@10 [bb3,d4,f4] ~, bb2@10 ~ bb2",
  AF: "[[gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@5 ~ [gb3,b3,eb4,gb4]@5 ~ [gb3,b3,eb4,gb4]@5 ~ [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@5 ~, b2@34 ~@2 b2@11 ~]/2", // B
  AG: "[[gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@5 ~ [gb3,bb3,eb4,gb4]@5 ~ [gb3,bb3,eb4,gb4]@5 ~ [gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@4 ~@2 [gb3,bb3,eb4,gb4]@3 ~ [b2,gb3,b3,eb4,gb4] bb2, bb2@23 ~]/2", // Ebm B
  AH: "[gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@4 ~@2 [gb3,b3,eb4,gb4]@5 ~ [bb2,gb3,bb3,eb4,gb4]@5 ~, b2@17 ~@7", // B Ebm
  AI: "[ab3,b3,eb4]@5 ~ [ab3,b3,eb4]@4 ~@2 [ab3,b3,eb4,ab4]@4 ~@2 [ab3,b3,eb4,ab4]@5 ~, ab2@11 ~", // Abm
  AJ: "[[gb3,bb3,db4,gb4]@5 ~ [gb3,bb3,db4,gb4]@4 ~@2 [gb3,bb3,db4,gb4]@5 ~ [gb3,bb3,db4,gb4]@3 ~ [f3,bb3,d4,f4]@8 [f3,bb3,d4,f4]@4 ~@2 [f3,bb3,d4,f4]@4 ~@2 [ab3,bb3,db4,f4]@5 ~, gb2@9 ~@2 bb2@8 ~ db3@4]/2", // Gb Bb Bbm7
  AK: "eb4@6 eb4@6 eb4@6 eb4@5 ~, [eb2,eb3], [bb3,gb4,bb4]@12 [bb3,gb4,bb4]@11 ~", // Eb Ebm
  AL: "d4@6 d4@6 d4@6 ~@3 gb3@2 ~, [f2,f3]@21 gb2 ~@2, [f4,ab4]@6 [f4,ab4]@5 ~, ~@18 d4@5 ~", // F Fm
  AM: "[d4@6 d4@6 [d4,f4,bb4]@6 bb3@3 ~@3 [d4,f4,ab4]@6 bb3@3 ~@3 [d4,f4,ab4]@5 ~ [bb3,d4,f4,bb4]@6, ab2 ~, ab3@21 b3@8 ~@4 ab3@8 ~@7, [f4,bb4]@12 ~@6 [d4,f4,bb4]@6 ~@6 [d4,f4,ab4]@5 ~@13]/2", // Bb Ddim Bb Bb5 Bb Ddim
  AN: "d4@2 d4@2 d4@2 ~ gb3, [f2,f3,ab3]@21 gb2 ~@2, [f4,ab4]@6 [f4,ab4]@5 ~, ~@18 d4@5 ~", // Fm
  AO: "[d4@6 d4@6 [d4,f4,ab4]@6 bb3@3 ~@3 [d4,f4,ab4]@5 ~ bb3@3 ~@3 [d4,f4,ab4]@5 ~ [gb2,gb3,d4,f4,ab4]@6, ab2 ~, ab3@18 ~@3 b3@7 ~@5 ab3@8 ~@7, [f4,ab4]@12 ~@6 [d4,f4,ab4]@5 ~@7 [d4,f4,ab4]@5 ~@13]/2", // Ddim Fm Ddim
  AP: "eb4@6 eb4@6 eb4@6 eb4@5 ~, [eb2,eb3], [bb3,gb4,bb4]@6 [bb3,gb4,bb4]@5 ~", // Eb Ebm
  AQ: "d4@2 d4@2 d4@2 ~ gb3, [f2,f3]@20 ~ gb2 ~@2, [f4,ab4]@6 [f4,ab4]@5 ~, ~@18 d4@5 ~", // F Fm
  AR: "[d4@6 d4@6 [d4,f4,ab4,bb4]@6 [bb2,bb3,bb4]@3 ~@3 [d4,f4]@5 ~ [bb2,bb3,d4,f4,ab4]@3 ~ ab3@8 [gb2,gb3,db4,d4,gb4,ab4]@5 ~, [ab2,ab3]@18 ~@3 b3@7 ~@20, [f4,ab4,bb4]@12 ~@6 [d4,f4]@4 [b2,b4]@8 ~@3 [ab2,d4,f4,bb4]@8 ~@7]/2", // Bb7 Bb Dm Bb7 Gbsus2 Ab Bb7 Dm …
  AS: "[eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~, [b2,b3]@23 ~", // B
  AT: "[b2,b3,eb4,gb4,b4]@6 [bb2,bb3,eb4,gb4,b4]@5 ~ [ab2,ab3,eb4,gb4,b4]@5 ~ [gb2,gb3,eb4,gb4,b4]@6", // B Bmaj7 Abm7 B
  AU: "[eb3,eb4,ab4,bb4]@6 [eb4,ab4,bb4]@5 ~ [eb4,gb4,bb4]@5 ~ [eb4,gb4,bb4]@5 ~", // Ebsus4 Ebm
  AV: "[eb4,ab4,bb4]@5 ~ [eb4,ab4,bb4]@5 ~ [eb4,gb4,bb4]@4 eb3@2 [bb2,eb4,gb4,bb4]@6", // Ebsus4 Ebm
  AW: "[b2,b3,eb4,ab4]@6 [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@5 ~ [b3,eb4,gb4]@5 ~", // Abm B
  AX: "[b2,b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@4 b2@2 [db3,b3,eb4,gb4]@6, ~@6 b2@3 ~@3 b2@2 ~@10", // Abm B
  AY: "[b2,eb4,ab4,b4]@6 [eb4,ab4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@5 ~", // Abm B
  AZ: "[b2,eb4,ab4,b4]@5 ~ [b2,eb4,ab4,b4]@6 [eb4,gb4,b4]@4 b2@2 [db3,eb4,gb4,b4]@6, ~@12 b2 ~@11", // Abm B
  BA: "[b2,eb4,ab4,b4]@6 [eb4,ab4,b4]@5 ~ [eb4,gb4,b4]@5 ~ [eb4,gb4,b4]@4 bb2@2", // Abm B
  BB: "[b2,eb4,ab4,b4]@3 [db3,eb4,f4,b4]@3 [eb3,eb4,gb4,b4]@3 [db3,eb4,ab4,b4]@2 bb2", // Abm Db7 B Abm
  BC: "[b2,eb4,ab4,b4]@6 [db3,eb4,ab4,b4]@6 [eb4,gb4,b4]@5 ~ [db3,eb4,gb4,b4]@4 bb2 ~, ~@2 eb3 ~", // Abm B
  BD: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@5 ~ [b3,eb4,gb4]@5 ~, b2 ~@3", // Abm B
  BE: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@4 b2@2 [db3,b3,eb4,ab4]@6", // Abm B Abm
  BF: "[db4,eb4,gb4,bb4]@4 ~@2 [db4,eb4,gb4,bb4]@3 ~@3 [db4,eb4,gb4,bb4]@3 ~ [db4,eb4,gb4,bb4]@2 eb3@4 bb2@2, eb3 ~@3", // Ebm7
  BG: "[db4,eb4,gb4,bb4]@3 ~@3 [db4,eb4,gb4,bb4]@3 ~@3 [db4,eb4,gb4,bb4]@3 ~ [eb4,gb4]@2 bb2@6, eb3 ~ eb3 ~, ~@16 [db4,bb4] ~@7", // Ebm7 Ebm Gb
  BH: "[b3,eb4,ab4]@4 ~@2 [b3,eb4,ab4]@3 ~@3 [b3,eb4,gb4]@3 ~ [b3,eb4,gb4] ~ b2@4 bb2@2, b2 ~@3", // Abm B
  BI: "[b2,eb4,ab4,b4]@2 b1 [db3,eb4,ab4,b4]@2 db2 [eb3,eb4,gb4,b4]@2 [eb2,b3] [b2,eb4,gb4,b4]@2 b1, ~@4 b3 ~@5 b3 ~@11 b3 ~", // Abm B Abm B
  BJ: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@4 b2@2 [db3,b3,eb4,gb4]@6", // Abm B
  BK: "[b2,b3,eb4,ab4]@6 [b3,eb4,ab4]@5 ~ [b3,eb4,gb4]@5 ~ [b3,eb4,gb4]@4 bb2@2", // Abm B
  BL: "[b2,a3,eb4,gb4]@2 c2 [db3,a3,eb4,gb4]@2 db2 [eb3,a3,eb4,gb4]@2 eb2 ~@2 gb2, ~@3 [gb3,a3,eb4,gb4]", // B7 Ebm7b5 Ebdim
  BM: "[b3,eb4,ab4]@5 ~ [b3,eb4,ab4]@5 ~@13", // Abm
})).s("gm_piano").gain(0.38)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@3 A B A C A B A C D B A C E F G H I J G H K L M N O P M Q O R M S O T M U O V F G W X Y G W Z AA AB@2 AC@3 AD AE@2 B
  ~@3 AF AG AH@2 AF AG AI@2 AJ AK M AL O AM M AN O AO M AP AQ AR M U AS AT M AU O AV AW AX AY AZ BA BB AO BC M BD O BE
  BA BF O BE ~
>`.pickRestart({
  A: "~@16 bb1 ~ db2@3 ~@3", B: "eb2 ~@7", C: "b1 ~@7", D: "~@16 db2 ~ db2@3 ~@3", E: "~@12 b1@5 ~ bb1@5 ~", F: "ab1",
  G: "gb1@11 ~", H: "f1@11 ~", I: "ab1@3 ~@3 b1@3 ~@3 eb2@3 ~@3 ab1@3 ~ bb1 ~", J: "b1@5 ~ bb1@5 ~ db2@4 ~@2 ab1@5 ~",
  K: "ab1 ~ b1 ~ eb2 ~ ab1 ~", L: "bb1@5 ~ d2@6 f2@4 ~@2 bb1@5 ~", M: "eb2 ~ eb2 ~ bb1 ~ bb1 ~",
  N: "eb2 ~ eb2 ~ bb1 ~ gb2 ~", O: "b1 ~ b1 ~ gb1 ~ gb1 ~", P: "b1 ~ b1 ~ gb1 ~ b1 ~", Q: "eb2 ~ eb2 ~ bb1 ~ eb2 ~",
  R: "b1@3 ~@3 b1@3 ~@3 bb1@3 ~ b1 ~ db2@4 ~@2", S: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~ bb1 ~ eb2@4 ~@2",
  T: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~ b1 ~ ab1@3 ~ db2@2", U: "eb2@3 ~@3 eb2@3 ~@3 eb2@4 bb1 ~ eb2@5 ~",
  V: "b1@3 ~@3 b1@3 ~@3 b1@5 ~ bb1@6", W: "f1@19 ~@5", X: "ab1@3 ~@3 b1@3 ~ b1 ~ eb2@3 ~@3 ab1@3 ~ ab1 ~",
  Y: "b1@5 ~ bb1@5 ~ ab1@4 ~@2 db2@5 ~", Z: "ab1@3 ~@3 b1@2 ~@3 b1 eb2@3 ~@3 ab1@3 ~@3",
  AA: "bb1@5 ~ d2@6 f2@6 bb2@4 b1 bb1", AB: "[b2@28 gb2@2 b2@10 ~@6 b1 ~, b1@23 ~, ~@5 gb2]/2",
  AC: "[[bb1,bb2]@46 b1 ~ [b1,b2]@18 [bb1,bb2]@6, ~@47 bb1@2 ~@23]/3", AD: "[ab1,ab2]@23 ~",
  AE: "[[gb1,gb2]@22 [bb1,bb2]@16 ~ [db2,db3]@8 ~]/2", AF: "eb2@7 ~", AG: "f2@7 gb2",
  AH: "[ab2@15 ~@3 bb2@3 b2@7 ~@2 bb2@3 ab2@8 ~ gb2@6]/2", AI: "[ab2@15 ~@3 bb1@3 b1@7 ~@2 bb1@3 ab1@7 ~@2 gb1@6]/2",
  AJ: "b1", AK: "b1@5 ~ bb1@5 ~ ab1@5 ~ gb1@6", AL: "eb1 ~ f1 ~ bb1 ~ gb1 ~",
  AM: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~ gb1 ~ b1@3 ~@3", AN: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~ eb2@8", AO: "b1 ~ b1 ~ bb1 ~ bb1 ~",
  AP: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~ ab1 ~ bb1@5 ~", AQ: "b1 ~ b1 ~ b1 ~ b1 ~", AR: "b1 ~ b1 ~ b1 ~ bb1@2",
  AS: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~@3 gb1@3 ~ bb1@2", AT: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~@3 bb1@4 db2 ~",
  AU: "eb2@3 ~@3 eb2@3 ~@3 bb1@3 ~@3 eb2@5 ~", AV: "b1@3 ~@3 b1@3 ~@3 eb2@2 gb1@2 b1@2 bb1@2 b1@2 db2@2",
  AW: "eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~ bb1@2", AX: "eb2@3 ~@3 eb2@3 ~@3 eb2@3 ~@3 bb1@5 ~",
  AY: "b1@3 ~@3 bb1@3 ~@3 b1@3 ~@3 b1@2 gb1@2 bb1@2", AZ: "b1@6 db2@6 eb2@5 ~ bb1@6", BA: "eb2 ~ eb2 ~ gb1 ~ gb1 ~",
  BB: "bb2@2 ~@2 bb2 ~ bb2@3 ~@3 ab1@3 ~ bb1 ~ ab1@6", BC: "ab1@3 ~@3 ab1@3 ~@3 gb1@3 ~ gb1 ~ bb1@4 ~@2",
  BD: "eb2@2 ~@2 bb1 ~ eb2@3 ~@3 bb1@3 ~@3 eb2@3 ~@3", BE: "b1@3 ~@3 b1@3 ~@3 gb1@3 ~@3 gb1@4 ~@2",
  BF: "bb1 ~ bb1 ~ eb2@2 bb1 ~",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@16 A B@3 C@4 D E F G H E F G H E F G H E F G I J K@3 L@4 M N@3 O P@2 Q R ~@10 S@2 T U E F G H E F G H E F G H E F G
  H E F G H E F G H E F G H E F G H E F G V ~
>`.pickRestart({
  A: "~@18 ab3@3 ~ [g2,d3,g3]@2, ~@10 ab4@3 ab2@8 [ab2,eb3,ab3]@2 ~, ~@11 eb4@8 ~@5, ~@4 [eb3,b3]@3 ~, ~@2 ab3 ~", // G5 Ab5 Abm
  B: "[[gb2,db3,gb3]@22 ~@2 [f3,a3,db4]@23 ~@19 ab2@3 ~ a2@2, ~@22 f2@25 ab2@17 ~@5 ab2@2 ~, ~@23 db3@24 ~ [eb3,b3,eb4]@20 ~@4, ~@6 f4@5 ~@7]/3", // Gb5 Faug Abm
  C: "[[bb2,gb3]@3 ~@3 [b2,gb3]@4 ~@2 [db3,ab3]@3 ~@4 [c3,g3]@2 b2 ~@2 gb3@12 f3@9 ~@3 db3@22 ~@2 [eb4,ab4]@24, b2@6 ~@4 [b2,c3,gb3]@2 ~@6 [db3,ab3]@2 ~@3 gb2@23 [a3,db4]@25 [gb3,b3]@24 ~, ~@11 g3@2 ~@11 db3@23 f3@23 ab2@25 ~, ~@24 bb3@20 ~ f4@26 ~@25]/4", // Ebm B5 Db5 C5 Ab5 B Db5 A …
  D: "[ab3,d4] [ab3,d4,f4] [f3,ab3,d4]!2 [f3,ab3,d4,f4]!2 [ab3,d4,f4]!2 [f3,ab3,d4,f4] [ab3,d4] [ab3,d4,f4] [d4,f4], f3@2 ~@4 f3@2 ~ f3@3, f4 ~@3 f4@4 ~@16", // Abdim Ddim Abdim Ddim Dm
  E: "~@6 [gb3,bb3,eb4,bb4]@4 eb4 ~@7 [gb3,bb3,eb4,bb4]@4 ~@2", // Ebm
  F: "~@6 [gb3,bb3,eb4,bb4]@4 ~@8 [gb3,bb3,eb4,bb4]@4 eb4 ~", // Ebm
  G: "~@6 [b2,gb3,b3,eb4]@4 [b3,eb4] ~@7 [b2,gb3,b3,eb4]@4 ~@2", H: "~@6 [b2,gb3,b3,eb4]@4 ~@8 [b2,gb3,b3,eb4]@4 b3 ~",
  I: "~@3 [b2,gb3,b3,eb4]@2 ~@4 [bb2,eb3,bb3]@2 ~", // B Eb5
  J: "~@18 ab3@3 ~ [g2,d3,g3]@2, ~@5 ab4@13 ~@6, ~@3 eb3@7 ~@2, ~ [ab3,b3,eb4]@2 ~, ~@7 ab2@13 ~ [ab2,eb3,ab3]@2 ~", // G5 Abm Ab5
  K: "[~ [db4,gb4]@21 ~@2 [f3,a3,db4]@23 ~@19 ab2@3 ~ a2@2, [gb2,db3,gb3]@22 f2@25 ab2@17 ~@5 ab2@2 ~, ~@23 db3@24 ~ [eb3,b3,eb4]@20 ~@4, ~@6 f4@5 ~@7]/3", // Gb5 Faug Gb5 Abm
  L: "[[bb2,gb3]@3 ~@3 [b2,gb3]@4 ~@2 [db3,ab3]@3 ~@4 [c3,g3]@2 b2 ~@2 bb3@20 ~@4 db3@22 ~@2 [eb4,ab4]@24, b2@6 ~@4 [b2,c3,gb3]@2 ~@6 [db3,ab3]@2 ~@3 gb2@23 [a3,db4]@25 [gb3,b3]@24 ~, ~@11 g3@2 ~@11 [db3,gb3]@23 f3@23 ab2@25 ~, ~@45 f4@26 ~@25]/4", // Ebm B5 Db5 C5 Ab5 B Db5 A …
  M: "[bb2,f3]@11 [bb2,f3], bb3", // Bb5
  N: "[[b2,gb3]@2 bb2 ~ b2@2 ~ f3@2 gb3@2 b3@2 bb3@2 b3@2 eb4@2 d4@2 eb4@2 gb4@2 f4@2 gb4@2 b4@2 bb4@2 b4@2 [db5,d5,eb5] ~ d5@2 eb5@2 gb5@3 ~@2 gb5 ~ ab5@2 ~@2 gb5@2 eb5@12 ~@3 ab5@3, ~@6 gb3@2 ~@39 g5@2 ~@23]/3", // B5
  O: "~@3 gb5@2 ~@5 db5@2 ~@5 d5 c5 [a4,b4] [e4,f4,g4] d4 [b3,c4] a3, ~@9 eb5@2 ~ eb5@7 ~@5", // Asus2 Em Cmaj7
  P: "[b2 ~ bb2 ~ b2@2 ~ f3@2 gb3@2 b3@2 bb3@2 b3@2 eb4@2 d4@2 eb4@2 gb4@2 f4@2 gb4@2 b4@2 bb4@2 b4@2 [db5,d5,eb5] ~@4 eb5@2 ~@3 db5 b4 ~, ~@3 gb3 ~@20]/2",
  Q: "bb4@13 a4 g4 [d4,e4,f4] [b3,c4] [g3,a3] f3 ~@2 bb4 d5 [b4,d5,eb5]", // Dm Cmaj7 Gsus2 B
  R: "[bb4,eb5] [bb4,b4,d5] [b4,eb5] [bb4,d5]@2 db5 ~ [db5,d5,gb5] [d5,f5,gb5] ~ d5 db5 ~ [gb5,b5] [f5,bb5] [gb5,b5] [f5,bb5] [f5,gb5,bb5,b5] [gb5,b5] [f5,bb5] [gb5,b5] [f5,bb5] [f5,gb5,bb5,b5] ~, ~@6 f5@2 ~ [db5,f5]@2 ~ [f5,bb5]@2 ~@10", // Eb5 Bb B Bb Dmaj7 D B5 Bb5 …
  S: "[~@18 bb3@3 b3@8 ~ bb3@3 ab3@9 gb3@3 ~@3]/2", T: "b3@23 ~", U: "b3@5 ~ bb3@6 ab3@5 ~ gb3@6",
  V: "~@3 [b2,gb3,b3,eb4]@2 ~@4 [b2,gb3,b3,eb4]@2 ~", // B
})).s("gm_distortion_guitar").gain(0.27).pan(0.4)

// chords · distortion guitar · "DISTORTION" · soft notes
const distortion_guitar_soft = note(`<
  ~@19 A B ~@4 C D ~ E C D ~ E C D ~ E C D ~@3 F ~ A B ~@5 G ~@3 G ~@16 C D ~ E C D ~ E C D ~ E C D ~ E C D ~ E C D ~ E
  C D ~ E C D ~ E C D ~@3
>`.pickRestart({
  A: "ab3@5 ~", B: "~@21 gb3 ~@2", C: "~@10 bb4 ~@13", D: "~@22 bb4 ~", E: "~@22 eb4 ~", F: "bb3@11 ~",
  G: "~@10 c5 ~@13",
})).s("gm_distortion_guitar").gain(0.16).pan(0.4)

// chords · church organ · "CHURCH ORG"
const church_organ = note(`<
  ~@11 A B C D E ~ F G H I F G H J B C D E B C D E B C D E B C D E ~ F G H I F G H K ~@22 B C D E B C D E B C D E B C D
  E B C D E B C D E B C D E B C D E B C D E ~
>`.pickRestart({
  A: "~@3 [eb4,gb4,b4]", B: "~ [ab4,bb4,eb5] ~ [gb4,bb4,eb5]", C: "~ [f4,bb4,eb5] ~ [gb4,bb4,eb5]",
  D: "~ [eb4,ab4,b4] ~ [eb4,gb4,b4]", E: "~ [eb4,f4,b4] ~ [eb4,gb4,b4]", F: "[gb4,bb4,db5]", G: "[f4,a4,db5]",
  H: "[eb4,gb4,ab4,b4]", I: "[eb4,gb4,b4] ~@2 [eb4,gb4,b4]@3 [eb4,gb4,b4] ~@2 [gb4,ab4,db5]@3",
  J: "~ [d4,f4,ab4] ~ [d4,f4,bb4]", K: "[d4,f4,ab4]",
})).s("gm_church_organ").gain(0.4).pan(0.6)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@57 A@8 B@4 ~@40>".pickRestart({
  A: "[~@24 eb6@23 bb4@24 ~@24 b5@12 ~@13 eb6@23 bb4@24 [ab4,ab5]@25, ~@23 bb5@47 ~ [ab4,ab5]@48 ~@73, ~@23 [eb5,gb5]@24 [d5,f5]@72 [eb5,gb5]@24 [d5,f5]@49, ~@9 bb5@5 ~@2]/8", // Ab Ebm Dm Ebm Dm
  B: "[~@24 eb6@23 bb4@24 ab4@13 ~@12, ~@23 [eb5,gb5,bb5]@24 [d5,f5,bb5]@37 ~@12]/4", // Ebm Bb
})).s("gm_string_ensemble_2").gain(0.3)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@25 A B C D E@2 ~@3 F@3 ~@12 G H@2 I@2 J K L@2 M ~@9 N@2 O P E@2 ~@6 A B C Q A B C Q A B C Q A B C Q A B C Q A B C Q
  A B C R ~
>`.pickRestart({
  A: "eb3@11 bb2", B: "ab3@2 bb2 gb3@3 eb3@3 bb2@3", C: "b2@11 bb2", D: "b2 db3 eb3 gb3", E: "eb3/2",
  F: "[~@5 bb2@5 eb3@5 ab2@3 bb2@4 b2@50, ~@4 ab3@3 ~@65]/3", G: "~@21 b2 ~ bb2", H: "b2/2",
  I: "[bb2@28 ab2@2 bb2@4 eb3@6 ~ bb2@4 b2 ~ bb2, ~@20 ab2 ~@3]/2", J: "b2@3 bb2", K: "ab2",
  L: "[gb2@16 ab2@2 a2@4 bb2@17 db3@9]/2", M: "eb3 ~@7", N: "[~@18 bb2@3 b2@8 ~ bb2@3 ab2@9 gb2@3 ~@3]/2", O: "b2@23 ~",
  P: "b2 bb2 ab2 gb2", Q: "b2@3 db3@3 eb3@2 bb2 db3@2 bb2", R: "b2@3 db3@3 eb3@2 bb2 db3@2 ~",
})).s("gm_synth_brass_1").gain(0.49)

// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<~@2 A B@2 ~@104>".pickRestart({
  A: "~ bb5 ~ ab5 bb5 gb5 ab5 eb5 gb5 db5 eb5 bb4, eb6 db6 ~@4",
  B: "[~@2 ab4@2 ~@2 gb4@2 ab4@2 eb4@2 gb4@2 db4@2 ~ gb4@2 ab4 eb5@2 [gb5,ab5] bb5 eb6@3 ~@21, db5@4 bb4@4 ~@8 eb4@3 bb4@2 ~@27, ~@20 db5 ~@2 db6@2 ~@23]/2", // Gbsus2
})).s("gm_pad_sweep").gain(0.48)

// other · clavinet
const clavinet = note("<~@29 A B C D A B C D A B C D ~@68>".pickRestart({
  A: "bb3 ~ eb4 eb3 bb3 eb4 ~ bb3 eb4 eb3 bb3 eb4",
  B: "eb3@2 bb3@2 eb4@2 eb3@2 bb3@2 eb4@2 ~@2 bb3@2 eb4@2 eb3@2 bb3@2 eb4 ~",
  C: "b3 ~ eb4 eb3 b3 eb4 ~ b3 eb4 ~ b3 eb4", D: "~@2 b3@2 eb4@2 ~@2 b3@2 eb4@2 ~@2 b3@2 eb4@2 ~@2 b3@2 eb4 ~",
})).s("gm_clavinet").gain(0.15)

// other · clavinet · soft notes
const clavinet_soft = note("<~@29 A B C D A B C D A B C D ~@68>".pickRestart({
  A: "~@2 eb3@2 ~@8 eb3@3 ~@9", B: "~@6 eb3 ~@5", C: "~@2 eb3@2 ~@8 eb3@3 ~@3 eb3@3 ~@3",
  D: "eb3 ~@2 eb3 ~@2 eb3 ~@2 eb3 ~@2",
})).s("gm_clavinet").gain(0.11)

// other · piano · "A.PIANO 1"
const piano_2 = note("<~@29 A B C B C B D B A B C E ~@68>".pickRestart({
  A: "~@3 ab2@2 ~ ab2@2 ~ ab2@2 ~", B: "ab2@4 ~@2 ab2@5 ~ ab2@4 ~@2 ab2@5 ~", C: "ab2@2 ~ ab2@2 ~ ab2@2 ~ ab2@2 ~",
  D: "ab2@2 bb2 gb2@2 ~ ab2@2 ~ ab2@2 ~", E: "ab2@4 ~@2 ab2@5 ~ ab2@4 ~@8",
})).s("gm_piano").gain(0.56)

// … 73 more lines

More by Foreigner