Strudelify
(Everything I Do) I Do It For You cover art

1991 · Waking Up The Neighbours

(Everything I Do) I Do It For You

Bryan Adams

KeyD♭ majorTempo67 bpm
0:00/0:00
// (Everything I Do) I Do It For You — Bryan Adams
// 67 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 107 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(67/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
const piano = note(`<
  A B@5 C@4 D@8 E F G H I J K L M N O@2 P Q R S T U V W X Y Z AA AB AC AD@2 AE AF AG AH AE AF AI AJ AK AL AK AM AN AO AP
  AQ@2 AR@6 ~ AS AT AU AV AW ~ AX AY ~ AZ BA BB BC@2 ~ AY ~ AZ BA BD BC@2 ~ AY ~ AZ BA BD BE@2 ~ AY ~ AZ BF ~@2
>`.pickRestart({
  A: "~@47 c5, ~@23 bb4",
  B: "[ab4@2 ~@27 ab5 ~ db5 ~@32 [ab3,db4,f4]@4 [ab3,db4]@4 [ab3,db4]@4 ~@3 f4, [db3,f3]@16 [ab4,eb5]@2 db4@2 [eb4,ab4]@2 db4@2 [eb4,ab4]@2 db4@2 c5@16 db5 eb5 f5@26 eb4@6 [db4,gb4]@2, f5@7 gb5@7 eb4@2 [bb4,db5] gb4 [bb4,db5] gb4 [bb4,db5] gb4 bb4@2 [ab2,eb3,eb5]@16, db5@2 db5@2 db5@2 db5@2 [ab2,eb3]@6 eb5 ab5@8 gb4 ab4 db4 [eb4,ab4] db4 [eb4,ab4]@6 f4@4 ab3@2, ~@2 ab4@4 ab4@4 ab4@2 gb5 ab5 ab4 f5@13 ab4@2 db4@2 [gb2,db3]@15 db5@29 [db4,gb4] ab4@3]/5", // Db Db5 Db Ab5 Gb5 Bbm Ab5 Gb5
  C: "[[ab3,db4,eb4]@4 [ab3,db4,eb4]@3 db4 [ab3,eb4]@4 ~ ab4 ~@2 [gb3,bb3]@4 ~@4 bb3@4 ~@2 db4@2 db4@2 ~@6 [ab3,c4]@4 [ab3,f4]@3 ~@3 db4@2 ~@6 ab3@2 [ab3,eb4]@3 db4, ~@4 db4@3 ab4@15 c4@10, ~@6 [ab3,eb4]@10 [ab3,eb4] db4 eb4 db4@5 f4@8, ~@15 db4@5 bb3@2 c4@18 eb4@7 gb4@17, ~@20 gb3@4 db4@4 [gb3,bb3]@20 [f3,ab3] eb4@3 [f3,db4]@2 ab3@2 [f3,db4]@8]/4", // Absus4 Ab5 Gb Ab Db Ab5 Gb Fm …
  D: "[ab3 ab3@3 ~@10 ab3 ~@9 [bb3,db4]@4 ~@4 ab3@4 ~@2 eb4@2 ~@8 [bb3,eb4,gb4]@4 [bb3,eb4,gb4]@4 ~@4 f4@2 ~@18 [bb3,eb4,gb4]@4 [bb3,eb4,gb4]@4 ~@4 f4@2 ~@13 ab3 f4@2 ~@17 f4, bb3@12 eb3@16 db4@28 gb4@8 eb4@2 bb3@2 eb4@2 bb3@2 eb4@2 bb3@2 ab3@16 db4@2 f4@2 gb3@24 db4@2 ab3@2 [db4,gb4] ab4 gb4@2, f3@2 [f3,ab3,eb4]@2 f3@10 [bb3,gb4]@4 ab3@2 [ab3,c4]@10 db4 f4 gb3@12 eb4 bb4@7 eb4@2 ab3 f4 [f3,db4] ab3 [f3,db4] ab3 f3@4, ~@6 db4@2 ab3@2 db4@2 c4@3 ab3 bb3@4 c4@10 eb4@2 f4@4 eb3@24 ab4@18 f4@10 gb4@8 eb4@2 bb3@2 eb4@2 bb3@26, ~@8 eb4@8 gb3@24 eb4@6 f4@10 [bb3,eb4]@2 bb4@18 f4 db4@11 bb3@4 ab4@19 eb4@17]/8", // Bbm Ebm Gb5 Fm7 Ebm Ab Db Eb5
  E: "~@8 eb4@3 ab3 [ab3,f4]@4, ab3@29 ~@19, eb4!2 ~@2, ~@6 db4@12 db4@11 ~@19", // Db
  F: "db3@12 ~@3 db3, [ab3,db4]@13 ab3@3, ~@6 db3 db4", G: "[ab3,db4]@12 ab3@2 bb3 ab3",
  H: "[ab3,db4,f4]@4 [ab3,db4]@4 [ab3,db4]@4 gb4 ab4 gb4 f4, ~@4 f4 ~@3 eb4 ~@3 ab3@4, ~@6 db4!2", // Db Db5
  I: "[ab3,db4,eb4]@4 [ab3,db4,eb4]@3 db4 [ab3,db4,eb4]@4 ~ ab4!2 db4, ~@3 [ab3,eb4]", // Absus4 Ab5
  J: "[gb3,bb3]@2 [gb3,bb3] c4 [bb3,db4]@2 ~ db4, ~@3 [gb3,bb3]", // Gb Bbm Gb
  K: "[db4,eb4]@2 ~@2 eb4@2 db4@2 [ab3,c4]@4 [ab3,c4,f4]@3 gb4, ab3 ~, ~ db4@2 ~ eb4 ~@3", // Dbsus2 Ab Fm
  L: "f4 eb4 db4@2 f3@2 ab3@2 f3@2 ab3@2 [ab3,eb4]@3 db4, [f3,ab3] db4!2 ~", // Ab5 Fm
  M: "[ab3,bb3] ab3@3 eb4@2 db4@2 eb4@2 db4@2 ~@2 ab3!2, f3 [f3,ab3]!2 [eb3,c4]", // Absus2 Fm Cm
  N: "bb3@2 c4@2 [bb3,db4]@2 gb4 eb4, gb3@2 ~ [bb3,db4]", // Bbm
  O: "[[ab3,f4]@2 ~ eb4 [ab3,c4,eb4]@3 f4 [bb3,eb4,gb4]@2 [bb3,eb4,gb4]@2 ~ bb4 f4!2, ~ eb3@4 ~@3, ~ ab3 ~@4 [bb3,eb4,gb4] [db4,ab4]]/2", // Db Ab Ebm Db5
  P: "eb4@2 bb3@2 eb4@2 bb3@2 eb4@2 bb3@2 f4 db4 f4@2, gb3@2 ~ ab3",
  Q: "[bb3,eb4,gb4]@2 [bb3,eb4,gb4]@2 ~ bb4 f4!2, ~@2 [bb3,eb4,gb4] [db4,ab4]", // Ebm Db5
  R: "eb4@2 bb3@2 eb4@2 bb3@2 eb4@3 ab3 f4@2 f4 eb4, gb3@2 ~ ab3",
  S: "db4@2 ab3@2 db4@2 ab3@2 db4@2 ab3@2 gb4 ab4 gb4 f4, f3!2 f3@2, ~@3 db4",
  T: "eb4@2 db4@2 eb4@2 db4@2 eb4@3 ab3 [ab3,f4]@4, ab3 ~", U: "db4 ab3 db4 ab3 db4 ab3 [gb3,ab3,db4]@2, [ab2,f3]",
  V: "db4 ab3 db4 ab3 db4@2 [f3,ab3,db4]@2, ab2, f3@3 ~, ~ db3", W: "[gb3,b3,eb4] [gb3,b3,eb4]@2 [gb3,b3,eb4]",
  X: "[ab3,b3,e4]@4 [ab3,e4] db4 ~@6 e4@2 gb4@2, ~@3 [ab3,b3]@4 ~", // E Dbm Abm
  Y: "[b3,eb4,gb4]@2 e4 eb4 [b3,eb4]@8 [bb3,db4,e4]@2 gb4@2", Z: "[bb3,db4,gb4]@2 e4 db4 [bb3,db4]@8 [bb3,db4,gb4]@4",
  AA: "[ab3,db4,gb4] f4@3 [ab3,f4] eb4 db4@6 [ab3,db4,f4]@2 ab4@2", // Dbsus4 Db
  AB: "[ab3,eb4,ab4]@2 gb4 eb4 [ab3,c4,eb4]@8 [c4,eb4,ab4]@3 ab4", // Ab5 Ab
  AC: "[bb3,eb4,ab4]@2 g4@3 f4 eb4@2 [bb3,eb4,g4]@4 [eb4,g4,bb4]@3 c5", // Ebsus4 Eb
  AD: "[bb4@2 ab4@4 bb4@4 ab4@14 eb4@3 f4@3 bb3@2, [c4,eb4]@3 [db4,eb4]@9 ~@4]/2", // Cm Dbsus2
  AE: "[ab3,bb3,db4]@11 [ab3,db4]@2 gb3 [ab3,db4]@2", AF: "[ab3,bb3,db4]@8 [ab3,eb4]@3 [ab3,f4]@3 [gb3,bb3]@2",
  AG: "[f3,ab3,db4]@12 f3 ab3 db4@2", AH: "[f3,ab3,db4]@8 [ab3,db4,eb4]@3 [ab3,db4,f4]@3 [ab3,bb3]@2",
  AI: "[f3,ab3,db4]@11 f3 eb4 f3 ab3@2", AJ: "[f3,ab3,db4]@8 [db4,f4,ab4]@4 [db4,f4,ab4] [db4,f4,ab4]@3",
  AK: "gb4@4 gb4@3 f4 [bb3,eb4,gb4]@2 bb4@2 ab4@2 f4@2, [bb3,eb4] ~", // Ebm Eb5
  AL: "[ab3,c4,eb4]@6 [ab3,db4,eb4]@4 [c4,eb4]@2 [c4,eb4,ab4] [c4,eb4,ab4]@3", // Ab Absus4 Cm Ab
  AM: "[ab3,c4,eb4]@8 ~@3 [ab3,c4,gb4]@2 gb4 gb4@2", AN: "gb4 f4@3 f4@2 f4@2 [db4,f4]@3 [db4,gb4]@3 [db4,f4,ab4]@2",
  AO: "ab4 f4 eb4@2 eb4@2 eb4@6 [db4,eb4,ab4]@2 c4 bb4, c4@3 ~", AP: "ab4@4 gb4@2 gb4@5 ab4@3 gb4@2, [bb3,db4]",
  AQ: "[gb4@9 ~@9 a4@74 ~@4, [a3,db4]@23 ~, ~@9 ab4@83 ~@4]/2", // A
  AR: "[~@72 ab3@6 ~@46 gb3@6 ~ eb4@25 ab3@4 ~@74 eb4@10 f4@10 bb3@6 ~@28, ~ f3@52 [db4,eb4]@6 ab3@7 db4@13 c4@81 [ab3,db4,f4]@86 ~@42, ~ db4@39 db4@6 gb4@59 [bb3,db4]@6 gb3@7 db4@38 eb4@78 ~@54, ~ f4@13 f4@13 f4@13 gb4@3 ab4@36 ab3@77 f3@90 ~@42, ~@7 ab3@13 ab3@19 ~ ab3@9 f4@69 bb3@13 [gb3,bb3]@51 db2@64 ~@42]/6", // Dbsus2 Db Bbm Gb
  AS: "~@5 ab3@6 ~@3 ab3@4 ~@30", AT: "~@11 gb3@3 ~@3 db4@3 ~@28", AU: "~@5 f4@8 ~@4 db4@3 ~@28", AV: "~@14 ab3@5 ~@29",
  AW: "~@5 ab3@6 ~@3 ab3@3 ~@31", AX: "~@14 ab3@3 ~@31", AY: "~@17 db4@26 ~@5", AZ: "~@17 eb5@3 ~@28",
  BA: "~@5 ab4@5 ~@16 db4@2 ~@20", BB: "~@41 db4 ~@5 db4", BC: "[~@5 db4 ~@11 bb4@2 ~@19 f3@17 ~@22 f4@9 ~@10]/2",
  BD: "~@47 db4", BE: "[~@5 db4 ~@11 bb4@2 ~@19 f3@16 ~@23 f4@9 ~@10]/2", BF: "~@5 ab4@5 ~@16 db4 ~@21",
})).s("gm_piano").gain(0.58).pan(0.4)

// chords · piano · soft notes
const piano_soft = note("<~@68 A@3 B@3 C@5 D@8 E@8 F@8 G@3 ~>".pickRestart({
  A: "[~@20 [gb3,bb3,db4]@15 ~@3 [gb3,bb3,db4]@24 bb3@2 ~ db4@3 [ab3,bb3,db4]@21 ~@3 [gb3,ab3,db4,eb4]@8 ~ [db4,f4]@9 gb3@4 ~@2 [f3,ab3]@28]/3", // Gb Bbm7 Gbsus2 Db Fm
  B: "[~@8 f3@3 ~@3 ab3@3 ~@3 [f3,ab3]@19 ~@5 [gb3,ab3]@7 ~@2 [ab3,db4]@6 ~@3 bb3@3 ~@3 [gb3,bb3,db4]@34 ~@2 ab3@3 bb3@3 ~@6 [gb3,bb3]@20 ~@4 [gb3,ab3,db4,eb4]@4, ~@44 eb4@9 ~@51 db4@13 ~@27]/3", // Fm Gbsus2 Db5 Gb Gbsus2
  C: "[~@5 [db4,f4]@5 ~@4 gb3@3 ~@3 [f3,ab3]@36 [eb3,ab3]@2 ~@10 [f3,ab3]@19 ~@5 [ab3,db4,ab4]@8 ~ [ab3,db4,gb4]@7 ~@2 [db4,gb4]@3 ~@3 [db4,gb4]@23 ~@4 [db4,db5]@4 ~@2 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@58 bb3@21 ~@3 gb3@10 ~@28]/5", // Db Fm Ab5 Fm Db5 Dbsus4 Gb5 Db …
  D: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@8 ~ ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,bb4]@3 ~@6 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@2 ~ db4@5 ~ db4@16 ~@8 db4 ~@17 db4@4 ~@2 [db4,f4,ab4]@4 ~@2 ab3@3 db4@3 db4@3 f3@2 ~ [ab3,db4]@17 ~ f3@3 gb3@2 ~ [gb3,ab3,eb4]@4 ~@2 [gb3,eb4]@2 ~ [ab3,f4]@5 ~ ab3@8 ~ [ab3,f4]@9 [bb3,bb4]@3 ~@3 [db4,db5]@5 ~ [eb4,eb5]@3 [f4,f5]@6 [db4,gb4]@23 ~@4 [db4,db5]@4 ~@2 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@41 ab3@11 ~ db4@3 ~@12 gb4@5 ~@19 db4@18 ~@6 [gb3,bb3]@42 ab4@2 ~@100 bb3@42 ~@6 gb3@20 ~@56]/8", // Fm Db Ab5 Db5 Gb Db Db5 Ab7 …
  E: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@8 ~ ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,bb4]@3 ~@6 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@2 ~ db4@5 ~ db4@16 ~@5 db4 ~@2 db4 ~@17 db4@4 ~@2 [db4,f4,ab4]@4 ~@2 ab3@3 db4@3 db4@3 f3@2 ~ [ab3,db4]@17 ~ f3@3 gb3@2 ~ [gb3,ab3,eb4]@4 ~@2 [gb3,eb4]@2 ~ [ab3,f4]@5 ~ ab3@8 ~ [ab3,f4]@9 [bb3,bb4]@3 ~@3 [db4,db5]@5 ~ [eb4,eb5]@3 [f4,f5]@6 [db4,gb4]@23 ~@4 [db4,db5]@3 ~@3 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@41 ab3@11 ~ db4@3 ~@12 gb4@5 ~@19 db4@18 ~@6 [gb3,bb3]@42 ab4@2 ~@100 bb3@42 ~@6 gb3@20 ~@56]/8", // Fm Db Ab5 Db5 Gb Db Db5 Ab7 …
  F: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@9 ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,gb4,bb4]@4 ~@5 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@2 ~ db4@5 ~ db4@16 ~@5 db4 ~@2 db4 ~@17 db4@4 ~@2 [db4,f4,ab4]@4 ~@2 ab3@3 db4@3 db4@3 f3@2 ~ [ab3,db4]@16 ~@2 f3@3 gb3@2 ~ [gb3,ab3,eb4]@4 ~@2 [gb3,eb4]@2 ~ [ab3,f4]@5 ~ ab3@8 ~ [ab3,f4]@9 [bb3,bb4]@3 ~@3 [db4,db5]@5 ~ [eb4,eb5]@3 [f4,f5]@6 [db4,gb4]@23 ~@4 [db4,db5]@3 ~@3 [db4,db5]@9 bb3@5 ~@2 bb3@21 ~@2 [ab3,eb4,ab4]@7 ~@2 [ab3,f4,ab4]@8 ~ [gb3,ab3]@3 ~@3 [f3,ab3]@28, ~@41 ab3@10 ~@2 db4@3 ~@36 db4@18 ~@6 [gb3,bb3]@42 ab4@2 ~@100 bb3@42 ~@6 gb3@20 ~@56]/8", // Fm Db Ab5 Db5 Gb Db Db5 Ab7 …
  G: "[~@5 [f4,ab4,f5]@6 ~@3 gb4@3 ~@3 [f4,db5]@4 ~@2 f4@3 [db4,f4,ab4]@9 ~@6 [eb4,ab4]@8 ~ ab3@8 ~ [db4,ab4,db5]@5 ~ [db4,bb4]@3 ~@6 db4@14 ~ ab3@4 ~@4 bb3@4 ab3@3 bb3@3 db4@5 ~@29, ~@41 ab3@10 ~@2 db4@3 ~@12 gb4@5 ~@19 db4@18 ~@34]/3", // Fm Db Ab5 Db5 Gb
})).s("gm_piano").gain(0.29).pan(0.4)

// chords · piano
const piano_2 = note("<~ A@5 B@4 C@5 D@8 ~@40 E@5 F@8 G@4 H@8 I@8 J@8 K@2 ~>".pickRestart({
  A: "[~@32 db2@3 db2 db2@4, db2@2 gb1@2 ~, ~ ab1@2 ab1@2]/5",
  B: "[db2@6 db2@2 ~@8 gb2@6 gb2@2 ~@8 ab2@6 ab2@2 ab2@3 ab2 ~@4 db2@6 db2@2 db2@8, ~@2 db2@8 ~ ab2@5, ~@3 gb2@4 ~]/4",
  C: "[db2@6 db2@2 ~@8 gb2@6 gb2@2 ~@8 ab2@6 ab2@2 ab2@3 ab2 ab2@2 ~@2 eb2@2 ~@14 eb2@6 eb2@2 eb2@8, ~@4 db2@16 ~@3 ab2@16 ~, ~@6 gb2@8 ~ db2@5, ~@25 eb2@7 ~@8]/5",
  D: "[eb2 ~@7 eb2@3 eb2 eb2@2 ~@2 db2@3 db2 db2@3 ~ ab2@3 ab2 ~@4 db2@3 db2 db2@2 db2@2 db2@3 db2 db2@16 ~@4, ~ eb2@7 ~@6 eb2@16 ~@34, ~@6 db2@10 ~@7 db2@9 ~@32, ~@15 bb1@16 ~@33, ~@7 ab2@4 ~@5]/8",
  E: "[~ ab2@52 ~@52 db3@51 [db2,db3]@84, ~ f3@96 ~@8 gb2@96 ~@39, ~@53 [ab2,eb3]@96 ~@91]/5", // Db Ab5
  F: "[~@20 gb2@14 ~@4 gb2@2 ~@16 db3 ~@2 db3@4 ~@5 gb2@18 db3 ~@5 gb2@20 ~@4 db2@15 ~@3 db2@2 ~@16 ab2@2 ~ bb2@7 ~@2 db2@16 ~@2 db2@2 ~@4 db2@19 ~@5 [gb2,db3]@16 ~@2 gb2@2 ~@4 [gb2,db3]@21 ~@3 gb2@12 db3@5 ~ gb2 ~@5 gb2@22 ~@2 db2@16 ~@2 db2@2 ~@13 db3@13 ~@2 db3@18 db2@2 ~@4 [db2,db3]@4, ~@44 gb2@21 ~@24 db3@25 ~@2 db3@35 ~@13 db3@45 ~@21 db3 ~@47 db3@29 ~ db3@31 ~@45, ~@140 db2@21 ~@97 gb1@18 ~@56 db2@22 ~@2 db2@15 ~@13]/8", // Gb5 Db
  G: "[~@5 [db2,db3]@6 ~@3 db2@4 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@14 db3@2 ~@4 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/4", // Db
  H: "[~@5 [db2,db3]@6 ~@3 [db2,db3]@5 ~ gb3@14 ~@4 gb3@3 ~@3 gb3@23 ~ db3@32 ~ gb3@3 ~@3 gb3@9 db2@19 ~@5 db2@24 db3@20 ~@4 db3@22 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@20 gb2@45 ~@3 gb2@45 ~@3 db3@44 ~@25 db2@27 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/8", // Db
  I: "[~@5 [db2,db3]@6 ~@3 [db2,db3]@5 ~ gb3@14 ~@4 gb3@3 ~@3 gb3@22 ~@2 db3@32 ~ gb3@3 ~@3 gb3@9 db2@19 ~@5 db2@24 db3@20 ~@4 db3@22 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@20 gb2@45 ~@3 gb2@45 ~@3 db3@44 ~@25 db2@27 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/8", // Db
  J: "[~@5 [db2,db3]@7 ~@2 [db2,db3]@5 ~ gb3@13 ~@5 gb3@3 ~@3 gb3@22 ~@2 db3@32 ~ gb3@3 ~@3 gb3@9 db2@19 ~@5 db2@24 db3@20 ~@4 db3@22 ~@2 gb2@15 ~@3 gb2@2 ~@4 gb2@20 ~@4 db3@12 ~@6 db3@3 gb3@23 ~@4 db2@16 ~@2 db2@2 ~@4 db2@20 ~@4 [db2,db3]@20 ~@4 [db2,db3]@4, ~@20 gb2@45 ~@3 gb2@45 ~@3 db3@44 ~@25 db2@27 db3@44 ~@4 gb2@9 ~@3 gb2@27 ~@9 db3@45 ~@31]/8", // Db
  K: "[~@5 [db2,db3]@7 ~@2 [db2,db3]@5 ~ gb3@13 ~@5 gb3@3 ~@3 gb3@22 ~@30, ~@20 gb2@45 ~@31]/2", // Db
})).s("gm_piano").gain(0.2)

// chords · pad metallic · "Metal Pad"
const pad_metallic = note("<~ A B C B ~@12 A B A@2 ~@15 D ~@70>".pickRestart({
  A: "[db3,f3]", B: "[ab2,eb3]", C: "[gb2,db3]", D: "~@3 db5",
})).s("gm_pad_metallic").gain(0.62)

// bass · fretless bass
const bass = note(`<
  ~@20 A B@2 C D B@2 C E F G F H I J K L M N O P Q R S T@2 C U V W C U X Y Z AA Z AB AC AD AE@3 ~@5 AF@8 AG@8 AH@16 AI@4
  AJ@2 ~
>`.pickRestart({
  A: "~@3 ab2", B: "db2@3 db2 db2@4", C: "gb2@3 gb2 gb2@4", D: "ab2@6 ab2@2 ab2@3 ab2 ab2@4",
  E: "ab2@6 ab2@2 ab2@3 ab2 ab2@2 ab2@2", F: "eb2 ~ eb2@10 db2@4", G: "eb2@3 eb2 eb2@4", H: "eb2@3 eb2 eb2@2 eb2 bb1",
  I: "db2@3 db2 db2@3 db2", J: "ab2@3 ab2 ab2@4", K: "db2@6 db2@2 db2@7 ab2", L: "db2@6 db2@2 db2@3 db2 ab2 db2@3",
  M: "b1@3 b1 b1@2 b1@2", N: "e2@6 e2@2 e2@3 b1 e2 b1 e2 gb2", O: "b2@3 b2 b2@2 b2@2",
  P: "gb2@6 gb2@2 gb2@3 db2 gb2 db2 gb2@2", Q: "db2@6 db2@2 db2@3 db2 f2@2 ab2@2", R: "ab2@3 ab2 ab2@2 c2 db2",
  S: "eb2@3 eb2 eb2@2 eb2@2", T: "[ab2@3 ab2@13]/2", U: "gb2@3 gb2 gb2@3 ab2", V: "db2@3 db2 db2@3 ab2",
  W: "db2@6 db2@2 db2@3 db2@3 db2@2", X: "db2@6 db2@2 db2@6 bb2 ab2", Y: "db2@6 bb2 ab2 db2@6 f2@2",
  Z: "eb2@6 eb2@2 eb2@4 eb3 bb2 eb3@2", AA: "ab2@6 ab2@2 ab2@3 eb2 ab2@4", AB: "ab2@6 ab2@2 ab2@6 ab2 bb2",
  AC: "db2@6 db2@2 db2@3 db2@3 db2 eb2", AD: "ab2@3 ab2 ab2@2 ab2@2",
  AE: "[gb2@3 gb2 gb2@2 gb2 ~ gb2@16, ~@7 db2@16 ~]/3",
  AF: "[~@20 gb1@16 ~@2 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@15 ~@3 gb1@2 ~@4 gb1@15 ab1@3 ~@6 db2@14 ~@4 db2@2 ~@4 db2@18 bb1@2 ~ db2 ~@2 db2@13 ~@5 db2@2 ~@4 db2@12 ~@6 db2@3 ~@3 gb1@15 ~@3 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@15 ~@3 gb1 ~@5 gb1@7 ~@2 ab1@6 ~@3 ab1@3 bb1@2 ~ db2@15 ~@3 db2@2 ~@4 db2@18 ab1@2 ~@4 db2@14 ~@4 db2@2 ~@8]/8",
  AG: "[~@5 ab2@8 ~ eb2@3 ~@3 gb1@14 ~@4 gb1@2 ~@4 gb1@18 ~@6 gb1@13 ~@5 gb1@2 ~@4 gb1@9 bb1@8 ~ db2@6 ~@18 db2@3 ~@3 db2@18 ab1@3 ~@3 db2@18 ~@6 db2@7 ~@2 db2@3 eb2@6 f2@4 ~@2 gb1@13 ~@5 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@17 ~ gb1@2 ~@4 gb1@9 ab1@8 ~ bb1@6 db2@15 ~@3 db2@2 ~@4 db2@18 ab1@3 bb1@2 ~ db2@8 ~ db2@7 ~@5 db2@5 ~@2]/8",
  AH: "[~@5 eb2@5 ~@7 gb1@3 ~@18 gb1@2 ~@4 gb1@18 ~@6 gb1@13 ~@5 gb1@2 ~@4 gb1@9 bb1@8 ~ db2@6 ~@18 db2@3 ~@3 db2@18 ab1@3 ~@3 db2@18 ~@6 db2@7 ~@2 db2@3 eb2@6 f2@5 ~ gb1@13 ~@5 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@2 gb1@17 ~ gb1@2 ~@4 gb1@9 ab1@8 ~ bb1@6 db2@15 ~@3 db2@2 ~@4 db2@18 ab1@3 bb1@2 ~ db2@8 ~ db2@7 ~@5 db2@4 ~@3]/8",
  AI: "[~@5 eb2@5 ~@7 gb1@3 ~@18 gb1@2 ~@4 gb1@18 ~@6 gb1@13 ~@5 gb1@2 ~@4 gb1@9 bb1@8 ~ db2@6 db2 ~@17 db2@3 ~@3 db2@18 ab1@3 ~@3 db2@18 ~@6 db2@4]/4",
  AJ: "[~@5 db2@3 eb2@6 f2@5 ~ gb1@13 ~@5 gb1@2 ~@4 gb1@17 ~@4 gb1 ~@30]/2",
})).s("gm_fretless_bass").gain(0.49)

// bass · fretless bass · soft notes
const bass_soft = note("<~@70 A ~ B ~@2 C@2 D ~ E ~@4 F D ~ E ~@4 F D ~ E ~@4 F G ~ E ~@3>".pickRestart({
  A: "~@14 bb1@3 db2 ~@30", B: "~@8 bb1@3 ~@37", C: "[~@17 bb1@2 ~@25 db3@7 ~@45]/2", D: "~@14 eb2@3 db2@3 ~@28",
  E: "~@17 bb1@2 ~@22 ab1@3 ~@4", F: "~@11 f2@5 ~@32", G: "~@14 eb2@3 db2@4 ~@27",
})).s("gm_fretless_bass").gain(0.28)

// chords · electric guitar clean · "Elec. Guitar (clean)"
const electric_guitar_clean = note(`<
  ~@21 A@2 B C A@2 B D E F G H I J K L M N O P Q R S T@2 U V W X U V Y Z E AA G AA AB AC AD AE@2 ~@5 AF@6 AG@6 AH@8
  AI@16 AJ@3
>`.pickRestart({
  A: "[db2,ab3,db4,f4]", B: "[gb2,bb3,db4,gb4]", C: "[ab2,ab3,eb4] c4", D: "~@3 eb4 eb4@4, f4 ~",
  E: "bb3@5 eb3 ~ eb4 eb4@8, [gb3,eb4] ~, ~@3 bb3 ~@4", // Ebm
  F: "~@18 eb3@3 bb3@3 db4@2 ~ eb3@3 ~@3 eb4@15, [gb3,bb3,eb4] gb3, ~@4 [bb3,eb4] bb3@3", // Ebm Eb5
  G: "bb3@5 eb3 ~ eb4 [gb3,bb3,eb4]@8, [gb3,eb4] ~, ~@3 bb3 ~@4", // Ebm
  H: "~@6 eb3 bb3 db4 eb3 ~ eb4@5, [gb3,bb3,eb4] gb3, ~@4 [bb3,eb4] bb3@3", I: "[db3,ab3,db4]", J: "[eb3,ab3,c4]",
  K: "[f3,bb3,db4]", L: "bb3@3 [f3,bb3,db4], [db3,f4]", M: "[gb3,b3,eb4] [gb3,b3,eb4]@2 [gb3,b3,eb4]",
  N: "[ab3,b3,e4]@4 [ab3,e4] db4 ~@6 e4@2 gb4@2, ~@3 [ab3,b3]@4 ~", // E Dbm Abm
  O: "[b3,eb4,gb4]@2 e4 eb4 [b3,eb4]@8 [bb3,db4,e4]@2 gb4@2", P: "[bb3,db4,gb4]@2 e4 db4 [bb3,db4]@8 [bb3,db4,gb4]@4",
  Q: "[ab3,db4,gb4] f4@3 [ab3,f4] eb4 db4@6 [ab3,db4,f4]@2 ab4@2", // Dbsus4 Db
  R: "[ab3,eb4,ab4]@2 gb4 eb4 [ab3,c4,eb4]@8 [c4,eb4,ab4]@3 ab4", // Ab5 Ab
  S: "[bb3,eb4,ab4]@2 g4@3 f4 eb4@2 [bb3,eb4,g4]@4 [eb4,g4,bb4]@3 c5", // Ebsus4 Eb
  T: "[bb4 ab4@2 bb4@2 ab4@11, [c4,eb4]@3 [db4,eb4]@13]/2", U: "[ab3,bb3,db4]@11 [ab3,db4]@2 gb3 [ab3,db4]@2",
  V: "[ab3,bb3,db4]@8 [ab3,eb4]@3 [ab3,f4]@3 [gb3,bb3]@2", W: "[f3,ab3,db4]@12 f3 ab3 db4@2",
  X: "[f3,ab3,db4]@8 [ab3,db4,eb4]@3 [ab3,db4,f4]@3 [ab3,bb3]@2", Y: "[f3,ab3,db4]@11 f3 eb4 f3 ab3@2",
  Z: "[f3,ab3,db4] ~", AA: "~@18 db3@3 ab3@2 ~ c4@2 ~ db3@3 ~@3 db4@15, [gb3,bb3,eb4] f3, ~@4 [ab3,db4] ab3@3",
  AB: "gb4 f4@3 f4@2 f4@2 [db4,f4]@3 [db4,gb4]@3 [db4,f4,ab4]@2", // Db Gb5 Db
  AC: "ab4 f4 eb4@2 eb4@2 eb4@6 [db4,eb4,ab4]@2 c4 bb4, c4@3 ~", AD: "ab4@4 gb4@2 gb4@5 ab4@3 gb4@2, [bb3,db4]",
  AE: "[gb4@9 ~@9 a4@74 ~@4, [a3,db4]@23 ~, ~@9 ab4@83 ~@4]/2", // A
  AF: "[~@26 [db4,gb4,bb4,db5,gb5,bb5]@84 ~@12 [db4,eb4,ab4,db5,eb5,ab5]@87 ~@21 [db4,gb4,bb4,db5,gb5,bb5]@58]/6", // Gb Dbsus2 Gb
  AG: "[~@38 [db4,eb4,ab4,db5,eb5,ab5]@77 ~ gb4 gb4@11 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@9 ~@2 ab4 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5,f5]@4, ~@116 [db3,db4]@93 ~@3 f5@8 ~@4 f5@8 ~@40 f5@8 ~@8, ~@116 [db5,gb5]@12 ~@83 ab5@77, ~@117 gb3@89 ~@6 [ab3,db4]@76]/6", // Dbsus2 Gb5 Db5 Db Db5 Db Gb5 Db5
  AH: "[~@8 [ab4,db5,f5]@8 ~@4 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@8 ~@4 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@9 ~@3 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@9 ~@3 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5,f5]@4, ~@20 [db3,gb3,db4]@93 ~@3 [ab3,db4,ab5]@93 ~@3 [db3,gb3,db4]@93 ~@3 [ab3,db4,ab5]@76, ~@29 f5@2 ~ f5@2 ~ f5@2 ~@4 f5@2 ~ f5@2 ~ f5@2 ~@28 f5@2 ~ f5@2 ~@10 f5@2 ~@2]/8", // Db Gb5 Db5 Db Db5 Db Gb5 Db5 …
  AI: "[~@8 [ab4,db5,f5]@7 ~@5 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@8 ~@4 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@9 ~@3 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@9 ~@3 [ab4,db5]@12 [ab4,db5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5,f5]@12 [ab4,db5]@12 [ab4,db5,f5]@4, ~@20 [db3,gb3,db4]@92 ~@4 [ab3,db4,ab5]@93 ~@3 [db3,gb3,db4]@93 ~@3 [ab3,db4,ab5]@76, ~@29 f5@2 ~ f5@2 ~ f5@2 ~@4 f5@2 ~ f5@2 ~ f5@2 ~@28 f5@2 ~ f5@2 ~@10 f5@2 ~@2]/8", // Db Gb5 Db5 Db Db5 Db Gb5 Db5 …
  AJ: "[~@8 [ab4,db5,f5]@7 ~@5 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@12 [gb4,db5,gb5]@56 ~@32, ~@5 [db3,gb3,db4]@23 ~@8]/3", // Db Gb5
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note("<~@36 A B C D E F G H I@3 ~@10 J K L M@2 ~@13 N@6 ~@26>".pickRestart({
  A: "~@3 [db2,ab2,db3]", B: "[gb2,b2,eb3]@3 [gb2,b2,eb3]", C: "[e2,b2,e3]@3 [e2,b2,e3]",
  D: "[b2,eb3,gb3]@7 [b2,eb3,gb3]", E: "[gb2,db3,gb3]@12 [gb2,db3,gb3]!2 [gb2,db3,gb3]@2",
  F: "~@7 [gb2,db3,gb3], [db2,ab2,f3]", G: "[ab2,eb3,ab3]@6 [ab2,eb3,ab3]!2 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@2",
  H: "[bb2,eb3,ab3] [bb2,g3] bb2@10 [bb2,eb3,ab3]@4, ~ g3@6 ~", I: "[[ab2,eb3,ab3]@3 [ab2,eb3,ab3]@16 ~@5]/3",
  J: "~@8 [ab1,ab2,eb3,ab3]@4 [ab2,eb3,ab3]!2 [ab2,eb3,ab3]@2", // Ab5
  K: "[db3,f3]@8 db3@3 [db3,gb3]@3 [db3,f3,ab3]@2, db2, ~@4 f3@3 ~", L: "[eb3,ab3]@3 [eb3,ab3], ab1",
  M: "[[db3,gb3] ~, gb1]/2", // Gb5
  N: "[~@44 [eb3,eb4]@9 [f3,f4]@9 [bb2,bb3]@6 [db3,gb3,db4,gb4]@93 ~@3 [ab3,db4,ab4]@91 ~@33]/6", // Eb F Bb Gb5 Db5
})).s("gm_distortion_guitar").gain(0.53)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@61 A@2 ~@17 B@24 C@3>".pickRestart({
  A: "[db3,gb3]/2", // Gb5
  B: "[~@20 [db3,gb3,db4,gb4]@92 ~@4 [ab3,db4,ab4]@93 ~@3 [db3,gb3,db4,gb4]@93 ~@3 [ab3,db4,ab4]@76]/8", // Gb5 Db5 Gb5 Db5
  C: "[~@5 [db3,gb3,db4,gb4]@23 ~@8]/3", // Gb5
})).s("gm_distortion_guitar").gain(0.27)

// other · pad new age · "New Age Pad"
const pad_new_age = note("<~@37 A B C D E F G ~@63>".pickRestart({
  A: "~@6 eb5 gb4 b4 eb5 b4 gb4 b4 gb4 eb5 ~", B: "~@6 eb5 ab4 b4 eb5 b4 ab4 eb5 ab4 b4 ~",
  C: "~@18 eb5@3 gb4@3 b4@3 eb5@3 b4@3 gb4@3 eb5@3 gb4@3 b4@2 ~@4",
  D: "~@18 eb5@3 gb4@3 bb4@3 eb5@3 db5@3 gb4@3 db5@3 gb4@3 db5@3 gb4@2 ~",
  E: "~@18 db5@3 f4@3 ab4@2 ~ f5@3 db5@3 ab4@3 db5@3 ab4@3 db5@3 f4@2 ~",
  F: "~@18 c5@3 eb4@3 ab4@3 eb5@3 c5@3 eb4@3 c5@3 ab4@3 c5@3 eb4@2 ~",
  G: "~@18 eb5@3 g4@3 bb4@3 g5@3 ~@3 g4@3 eb5@3 bb4@3 eb5@3 g4@2 ~, ~@30 eb5@5 ~@13",
})).s("gm_pad_new_age").gain(0.26)

// chords · drawbar organ · "New Age Pad"
const drawbar_organ = note("<~@68 A@8 B@8 C@16 D@7>".pickRestart({
  A: "[~@20 db4@67 ~@5 eb4@9 f4@9 ab3@5 ~ [f3,ab3]@67 ~@5 eb4@9 f4@14 ~ [bb3,db4,gb4]@95 ~ [f3,ab3,db4]@65 ~@7 [eb5,ab5]@4, ~@20 [gb3,bb3]@85 ~@5 gb3@3 ~@75 ab3@19 ~@177]/8", // Fm Gb Db Ab5 Gb
  B: "[~@5 f5@9 bb4@4 ~@2 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@36 ~@3 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@19]/8", // Db5 Absus2 Db5 Absus2
  C: "[~@20 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@36 ~@3 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@19]/8", // Db5 Absus2 Db5 Absus2
  D: "[~@20 [db4,db5,ab5]@96 [ab4,bb4]@48 [ab4,bb4]@6 ~@3 ab4@36 ~@3 [db4,db5,ab5]@96 ~@28]/7", // Db5 Absus2 Db5
})).s("gm_drawbar_organ").gain(0.4)

// other · synth strings 1
const synth_strings_1 = note("<~@12 A@3 B@2 C D E@2 C@2 F G E@2 F H I J I J C J E@2 ~@17 K L K M ~@49>".pickRestart({
  A: "[~ gb5@5]/3", B: "gb5/2", C: "f5", D: "~ eb5, ab5", E: "db5", F: "bb4", G: "eb5 c5", H: "f5 eb5 db5 eb5 eb5@4",
  I: "gb5 f5", J: "eb5", K: "bb4@7 [bb4,db5], eb5", L: "[ab4,c5]", M: "[ab4,eb5,ab5]",
})).s("gm_synth_strings_1").gain(0.19)

// chords · overdriven guitar
const overdriven_guitar = note("<~@21 A@3 B C D E F ~@17 G@5 H I J ~@53>".pickRestart({
  A: "[~@36 [eb4,bb4]@39 ~@3 [db4,ab4]@35 ~@4 [ab3,db4,ab4]@3 [ab3,db4,ab4]@21 ~@3]/3", B: "~@3 [eb4,bb4]@5",
  C: "~ [ab3,db4]@3", D: "~ [ab3,eb4,ab4]@7", E: "~ [bb3,db4,gb4]@7", F: "~ [ab3,eb4,ab4]@3",
  G: "[~@12 eb5@51 ~@3 eb5@6 db5@3 bb4@48 ~@9 bb4@2 ~ db5@3 ~@3 db5@27 eb5@3 ab5@2 ~@4 ab5@7 ~@2 bb4@3 bb4@9 ~@6 ab5@3 bb5@28 ~@2 db6 ~@2]/5",
  H: "bb5 ~@2 bb5@40 ~@5", I: "~@6 bb5@3 ab5@8 ~ eb5@23 ~@7", J: "~@2 f5@2 e5@2 eb5@5 ~ eb5@10 ~@2",
})).s("gm_overdriven_guitar").gain(0.41)

// chords · distortion guitar · "Overdriven Guitar"
const distortion_guitar_2 = note("<~@55 A@2 B ~@11 C@2 D@4 E F@4 G@24 H@3>".pickRestart({
// … 109 more lines

More by Bryan Adams