Strudelify
All for Love cover art

1996 · Star

All for Love

Bryan Adams

KeyD majorTempo120 bpm
0:00/0:00
// All for Love — Bryan Adams
// 120 bpm, 4/4, key D major. 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 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · fretless bass · "FRETLESS"
const bass = note(`<
  ~@3 A@3 B C D@3 E F@2 G C@2 H I J K L M N O P Q R S T U V W@2 X B C@2 H I J K L M N O P Q R S T Y Z AA AB AC AD AE AF
  AG AH L AI AJ AK AL AM AN AO K L M N O P Q R S AP S AQ@2 AR@2 AS@4
>`.pickRestart({
  A: "d2@3 d2@5", B: "f#2@3 f#2@5", C: "g1@3 g1@5", D: "[g1@3 ~@16 g1@5, ~@6 g1@16 g1@15 ~@11, ~@4 g2@4 g2@3 ~]/3",
  E: "d1@5 ~ d1@10", F: "d1@3 d1@5", G: "f#1@3 f#1@5", H: "g1@6 g1@9 ~, g2@15 ~", I: "g2", J: "d1@2 e1@2 f#1 ~@3",
  K: "~@12 f#2@3 ~", L: "g1@3 g1 g1@4", M: "e1@3 e1 e1@3 a2", N: "a2@3 a2 a2@4", O: "a1@3 a1 a1@2 f#1@2",
  P: "g1 b1 a1 f#1", Q: "g1", R: "e1 ~ e1@2 e1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2", S: "g1!3 a1!5", T: "g1 f#1 e1 a1",
  U: "d2", V: "d2@15 ~", W: "d2 ~@5 d2@6 b1@4", X: "d2@2 ~@4 d2@9 ~", Y: "d2@6 d2@2 d2@4 d2@3 ~",
  Z: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2", AA: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  AB: "e1 ~ e1@2 f#1 ~ f#1 ~ g1 ~ g1 ~ a1 ~ a1 ~", AC: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
  AD: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 g2", AE: "g1@6 g1 g#1 a1@6 a1 a#1",
  AF: "b1@2 b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1@2 b1@2", AG: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2@2",
  AH: "g1 ~ g1@2 g1 ~ g1@2 g1@2 g1@2 a1@3 ~", AI: "e1@5 ~ e1@2 e1@8", AJ: "d2@4 d2@4 d2@7 ~", AK: "d2@3 d2@4 b1",
  AL: "g1!3 g1@5", AM: "e1!3 e1@2 e1@2 e1", AN: "a1!8", AO: "a1 ~@7", AP: "b1!3 f#1!5", AQ: "[e2@7 ~]/2",
  AR: "[g2@23 ~ g2@4 a2@4]/2", AS: "[d2@33 d2@19 ~@12]/4",
})).s("gm_fretless_bass").gain(0.46)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~ A@2 B@2 C D@3 E F G@2 H I@3 J K L M N@2 O P Q R@2 S T U@2 B@2 H V@3 J K L M N@2 O P Q R@2 S T W X Y Z AA AB AC X AB
  AD AE@2 AF AG AH AI AJ AK M N@2 O P Q R@2 S AL AM AN@2 AO@2 AP@2 AQ@2
>`.pickRestart({
  A: "[~@7 [g3,e4], [d2,a2,d3], ~@3 d4]/2", B: "[[a3,d4,f#4]@6 ~ g3, d3@11 ~ [f#3,d4]@4]/2",
  C: "[d4,f#4]@10 [d4,f#4]@3 [d4,f#4,b4]@3, [d2,d3,a3], ~@5 a4@3", // D Bm D5
  D: "[a3@3 [f#3,a3] g3@4 b3@3 [b3,d4,g4], [f#2,f#4]@8 b3@7 ~@9, ~@3 d4@8 ~]/3", E: "[a3,f#4,a4]",
  F: "[a3,c#4,e4]@2 ~ [g3,e4], ~ [f#3,d4]", G: "[a3@11 ~@3 [d3,g3,e4]@2, f#4, d3@7 ~, ~@3 [f#3,d4]]/2",
  H: "f#4@10 [d4,f#4]@3 [d4,f#4,b4]@3, [d3,a3], ~@5 a4@3", I: "[f#4@8 [g3,b3]@8 b3@3 ~@5, d4@23 ~, a3@3 ~ g4@8]/3",
  J: "[a3,d4,f#4]@6 f#4 ~@5 a2@4, ~@3 d4@4 ~", K: "[a3,c#4]@3 a3@5, e4",
  L: "[d3,d4,a4,f#5]@4 [e3,e4,a4,g5]@4 [f#3,f#4,a4,d5,f#5] ~@7, d5@7 ~@9", M: "~@3 [f#2,d3,f#3]",
  N: "[~@4 [d4,d5]@4 [e4,e5]@4 [f#4,f#5]@2 [b3,b4]@7 ~@11, [g2,d3,g3]@15 ~@17]/2", O: "d5 [d5,f#5]", P: "[c#5,e5]@3 ~",
  Q: "d4@4 d4@3 ~ [c#4,e4,a4]@4 [d4,f#4]@4, g4 ~", // A D
  R: "[[b3,d4,g4]@2 d5@2 [e4,e5]@2 [f#4,f#5] ~ [d4,g4]@3 [d4,f#4]@5, ~@4 d4 ~@9 [b3,b4]@6 ~@12]/2", // G E F# G5 D B
  S: "[d4,g4]@6 [d4,f#4]@9 ~", T: "[d4,g4]@2 [d4,f#4]@2 [d4,g4]@2 a4 c#5, ~@3 d4",
  U: "[[f#3,d4]@6 ~ [g3,e4], d2, d5 ~@5 d4@2]/2", // D C
  V: "[[a3,d4]@3 [f#3,a3] [g3,b3]@4 g2@4, f#4 g4@2, ~@3 d4@8 ~, ~@16 b3@3 ~@5]/3", // D5 F#m G
  W: "~ a3 [d4,f#4]@2 [d4,f#4]@2 ~ a3, [d4,f#4,d5] ~@2 [d4,f#4]", X: "[b2,b3]", Y: "[g2,b3]@3 g2",
  Z: "[e2,e3] [f#2,f#3] [g2,d4] [a2,c#4]", AA: "[b2,d4]", AB: "[f#2,c#4]", AC: "[g2,b3] a2",
  AD: "[g2,b3]@3 [a2,a3], a3@5 ~@3", AE: "[[g4,b4]@5 g4@3 g4@6 [g4,d5]@2, d5 ~, ~@5 b4@11]/2",
  AF: "[a4,d5,g5]@3 [a4,d5]@3 ~@2, ~@6 f#5@9 ~", AG: "d5@4 d5@2 [a4,f#5]@6 f#4@3 ~, g5@5 ~@3, a4 ~@2 d5 ~@4",
  AH: "[g4,b4]@3 [g4,b4,d5]", AI: "a4@2 ~@4 g4@6 g4@3 ~, d5, ~@2 b4@13 ~", AJ: "~@3 e4@3 [e4,a4]@2, [a4,d5]@12 d5 ~@3",
  AK: "[a2,e4,a4,c#5] ~@15", AL: "g4@2 ~@2 g4 ~ [f#4,a4]@4 f#4@2 f#4 ~ f#4 ~, [b2,b4,d5]@3 [f#2,d5]@5, ~@3 a4",
  AM: "g4@2 g4@2 ~@2 a4@4 ~@2 a4@3 ~, [g2,b4,d5]@3 [a2,f#4,d5]@5", AN: "[[e3,b3,d4]@7 ~]/2",
  AO: "[~@7 e5, a#4@29 ~@3, ~@12 d5@3 ~]/2", AP: "[~@12 d5@2 ~ a3, f#4@31 ~, ~@7 e5]/2",
  AQ: "[~ a4@21 ~@10, f#4@5 ~@3, ~ d5@12 ~@19]/2",
})).s("gm_piano").gain(0.28).pan(0.3)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~@2 A ~ B@2 C@3 ~ D@3 ~ E ~ F G@2 ~@12 H ~ I ~@3 F G@2 ~@11 J ~@13 K ~@17 L M@2 N ~
>`.pickRestart({
  A: "~@8 f#3@7 a2, ~@3 a3@5", B: "[~@6 d3@6 [d3,e4]@3 a2@17]/2",
  C: "[~@2 g3, ~@15 d3@15 b3@2 ~@16, ~@4 g4@7 ~, ~@31 d3@17]/3", D: "[~@3 a2@16 [a2,a3]@5, a4 ~@5]/3", E: "~@3 a3",
  F: "~@3 b3@5, g3", G: "[~@7 d4 ~@3 c#4@5, a4, ~@3 a3@5 ~@8]/2", H: "~ f#3, ~@3 a3@5", I: "~@3 d3@3 [d3,e4]@2",
  J: "~@3 a3@2 a3@2 ~", K: "d5@3 ~", L: "~@3 a3@5", M: "[~@13 d4@2 ~, d3@15 ~, d5@23 ~@9, ~ a4@30 ~]/2",
  N: "~ d3@11 ~@4, d4@11 ~@5",
})).s("gm_piano").gain(0.14).pan(0.3)

// other · vibraphone
const vibraphone = note(`<
  ~@2 A@2 B@2 C D E F G H I@2 J K L M N O P Q R S T U V W X Y Z AA@4 AB AC AD AE AF O P Q R S T U V W X Y Z AG AH AI
  AJ@2 AK@4 ~@7 AL P Q R S T U V AM AN AO AP AQ AR AS AT AU@2 ~@2
>`.pickRestart({
  A: "[~@4 a3@3 ~ d4@4 e4@2 d4@4 f#4@2 f#4 ~ f#4 ~ f#4@2 d4@2 ~ d4@2 ~]/2",
  B: "[d4@4 a3@2 a3@2 d4@4 e4@2 d4@4 f#4 ~ f#4 ~ f#4@2 f#4@2 d4@2 d4@2 d4@2]/2", C: "~@2 a4@2 a4@3 ~ a4@2 g4@2 ~ f#4@3",
  D: "e4@3 d4@5 ~@8", E: "~@6 d4@2 g4@2 ~ g4@2 ~ f#4@2", F: "f#4@4 ~@2 a3@2 f#4@2 ~ f#4@2 ~ e4@2",
  G: "e4@3 ~ a3 ~ a3@2 d4@4 e4@3 ~", H: "~@2 f#4@2 f#4 ~ f#4@2 f#4@2 d4@2 d4@2 d4@2, d4 ~@3",
  I: "[~@2 a3@2 a3@2 a3@2 d4@4 e4@2 d4@4 f#4@2 f#4@2 f#4@2 f#4 ~ d4@2 d4@2 d4@2]/2",
  J: "~@2 a4@2 a4@2 a4@2 a4 ~ g4@3 f#4@2 ~", K: "e4@3 ~ d4@6 ~@6", L: "~@6 d4!2 g4@2 ~ g4@3 f#4@2",
  M: "f#4@4 ~@2 a3!2 a4@3 g4@3 f#4@2", N: "e4@4 ~@4 a4 f#4@2 ~@5", O: "~@5 d4 f#4 a4", P: "b4@11 ~ b4@2 f#4@2",
  Q: "e4 d4@3 ~@12", R: "~@2 d4!2 d4@2 d4 d4@2 ~ d4!2 d4@2 f#4@2", S: "~ f#4@7 ~@3 d4 a4 ~ f#4@2",
  T: "e4@4 ~@6 d4 ~ f#4 a4 ~@2", U: "b4@7 ~@4 d4 a4@2 f#4@2", V: "e4 d4@5 ~@2 e4 ~@3 e4@2 f#4@2",
  W: "g4@2 f#4@2 e4@2 d4@2 a4@3 ~ e4@2 f#4@2", X: "g4@2 f#4@2 e4@2 d4@2 d4@3 ~ f#4 a4 ~@2", Y: "b4@5 ~ a4 f#4",
  Z: "e4 d4@4 ~@11",
  AA: "[~@4 a3@2 a3@2 d4@4 e4@2 ~@4 f#4@2 f#4 ~ f#4@2 f#4@2 d4@2 d4@2 d4@4 ~@2 a3@2 a3@2 d4@3 ~ e4@2 d4@4 f#4 ~ f#4 ~ f#4 ~ f#4@2 d4@2 d4@2 d4@2, ~@7 d4@4 ~@21]/4",
  AB: "~@2 a4 ~ a4@2 a4@2 a4@2 ~ g4@2 f#4@2 ~", AC: "e4@3 ~ d4@5 ~@7", AD: "~@6 d4@2 g4@2 ~ g4@3 f#4@2",
  AE: "f#4@5 ~ a4@2 a4@2 ~ g4@2 f#4@2 ~", AF: "e4@5 ~@11", AG: "~ d4 f#4 a4", AH: "a4@2 d4 d4@2 d4 e4 f#4",
  AI: "g4@2 f#4@2 e4@2 d4@2 d4@2 ~@2 f#4 a4@3", AJ: "[a4@4 d4@2 d4@4 ~@2 e4@2 d4 d4@2 a3@4 ~@5 d4@2 f#4 g4@3]/2",
  AK: "[a4@8 ~@2 f#4@2 a4@2 f#4 b4@3 a4@2 ~@2 f#4@2 a4@2 g4@2 f#4@2 f#4@4 ~@8 a3@2 d4 e4@2 f#4@2 e4 d4@5 ~@9]/4",
  AL: "~@13 a4@2 ~, ~@6 f#4 ~", AM: "g4@2 f#4@2 e4@2 d4@2 f#4@3 ~ e4@2 f#4@2",
  AN: "g4@2 f#4@2 e4@2 d4@2 d4@3 ~ b4 a4@2 ~", AO: "a4!4 f#4 ~ b4 a4", AP: "b4@2 a4@2 b4 a4 ~ a4@3 d4 ~ f#4 a4 ~@2",
  AQ: "b4@7 ~", AR: "~@6 b4 f#4", AS: "e4 d4@11 ~@4", AT: "~@3 a3 d4@2 e4@2", AU: "d4/2",
})).s("gm_vibraphone").gain(0.24)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A B C@2 D@2 E@3 F@3 D@2 E@3 G@2 ~@11 H C@2 D@2 E@3 G@2 ~@41 I@2 ~@4
>`.pickRestart({
  A: "~@6 [e4,f#4] [d4,e4], ~@12 d4 ~@3", B: "d4@2 ~ e4, f#4, ~ d4",
  C: "[a3@2 ~@6 d3 ~@5 e4@2, d4@3 d4@5 ~@3 d3@2 d3@3, ~@2 a3@3 ~ e4@2 f#4@8, ~@7 a3@3 a3@5 ~, ~@3 d4]/2",
  D: "[d3 ~@2 d3@2 ~@6 d3@2 d3@3, d4@4 ~ d3@3 d3@3 ~@5, ~@2 a3@5 a3@2 ~ d4@6, ~@3 e4 f#4@4]/2",
  E: "[~@8 d3@3 ~@11 d4@2, g4@7 e4@7 e4@2 a3 f#5 d4@2 a3@4, d3@3 f#4@5 ~@4 b3@12, ~ b3@7 ~@3 d3@13, ~@2 d4@3 d4@3 d4@5 d4@3 f#4@8]/3",
  F: "[~@8 a3@2 ~@6 d3 ~@5 e4@2, e4@7 e4 f#4@4, a3@3 a3@2 a3@2 ~@3 a3@3 ~@2 a3@3 a3@5 ~, ~@2 c#4@4 c#4@10 ~@3 d3@2 d3@3, ~@4 d4@4 d4@3 d4@5 ~@4 d4@4]/3",
  G: "[~@12 c#4@3 ~ f#4@4 [e3,g4]@4 [f#3,a3,d4,f#4] ~@7, e4 ~, a3@6 a3@4 a3@4 ~ d3@5 ~@12, ~ c#4@2 ~ [a3,d4]@2 ~@2, ~ d4 ~@2]/2", // Em D D5
  H: "~@3 e4, ~ d4", I: "[~@6 [f4,a#4]@9 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.07).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@2 A B C@2 D E F ~ G B C@2 D E F ~ G ~@12 A B C@2 D E F ~ G ~@43 H ~@4
>`.pickRestart({
  A: "~@5 a3@2 a3", B: "~ d3@3 ~ a3@2 d3, ~@4 d3@3 ~", C: "[~ d3@2 ~@6 d3@2 ~ d4@4, ~@7 a3@3 ~@6]/2", D: "~ a3@3 a3@4",
  E: "~@2 d3!2", F: "~ b3 ~@2", G: "~@7 a3", H: "d4@13 ~@3",
})).s("gm_electric_guitar_clean").gain(0.04).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<A ~@6 B@2 C D E F ~ G H@4 ~@17 H@4 ~@39 I@5 J@3 ~>".pickRestart({
  A: "~@7 a3",
  B: "[~@7 e4 ~@6 d4@2, g4@6 d4@2 d4@3 d4@3 ~@2, g3@4 g3@4 ~ g3@3 ~@4, ~@2 d4@3 a3@5 a3@3 a3@3, ~@3 f#4@13]/2",
  C: "~@2 a4@3 ~@2 f#5, f#5@7 ~, ~ d5@5 ~@2", D: "e5@5 ~ c#5@6 d5@2 e5@2", E: "[d4,f#4]@6 e4 d4", F: "d4 ~",
  G: "~@4 d4@7 ~ d4@4, f#4",
  H: "[~@5 a3 ~@12 d4@2 ~@9 d4 a3 e4, g4@6 f#4@6 e4@6 d4@5 ~ d4@5 ~@13 d4@6 e4@11 ~@5, ~@4 a3@4 d4@8 g4@6 f#4@6 e4@4 f#4@16 ~@4 d4@5 ~@7, ~@20 a3@5 ~ a3@4 a3@10 a3@4 g4@9 ~ c#4@10, ~@23 a3@2 a3@5 ~@2]/4",
  I: "[~@16 [d4,b4]@29 ~@15 [f4,a#4]@18 ~@2, ~@15 b2@29 ~@3 g2@16 ~@17, ~@3 [f3,a#3,d4,g4] ~]/5", // G A#5 Gm7
  J: "[~@2 d3@2 ~@4 d4@2 ~@2 d3 ~@17 d4@2 [d2,f#3]@9 ~@7, ~@4 d3@6 e4@4 d4@8 a3@10 [a3,d4] ~@15, ~@6 a3@5 ~@5 a3@4 f#3@12 ~@16, ~@9 d3@4 e4@2 ~@9, ~@12 d4@2 d3@7 ~@3]/3", // D D5
})).s("gm_acoustic_guitar_steel").gain(0.03).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note("<~@7 A B C ~@4 D@3 ~@19 E@2 ~@45 F ~@2 G ~>".pickRestart({
  A: "~ a3@4 ~@3", B: "~ g3", C: "~@5 a4 d5@2", D: "[~@2 a3@8 a3@3 ~ a3@4 d4@6 ~@6 a3@6 ~@12]/3",
  E: "[~ d4@3 ~@3 a3@3 ~@6]/2", F: "d4@13 ~@3", G: "a2 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.01).pan(0.4)

// chords · sitar
const sitar = note("<~@21 A B C D E F G H I J ~@11 A B C D E F G H I J ~@18 A B C D E F G H K@2 ~@8>".pickRestart({
  A: "~@2 d4@2 ~@4 d4 ~ d4@2 g4@2 d4@2, g4 d4 ~@2, ~@6 g4@5 ~@5",
  B: "~ b3 ~@5 b3, g4 a4@2 ~, ~@3 b3@2 b3@2 ~, ~@2 d4 e4", C: "~ a3 ~ a3 ~ a3 ~ a3, f#4 d4 e4 f#4",
  D: "~ a3 ~ a3 ~ a3 ~ a3, e4@4 a4@4 e4@7 ~, ~@3 f#4", E: "~@2 b3@2 ~@2 b3 ~@3 a3@2 ~@2 a3 ~, g4 f#4 e4 a4",
  F: "[b3,d4,g4] g3 d4 g3 e4 g3 f#4 b3", G: "~@2 b3@2 d4@2 a3@3 ~@5 a3@2, g4@4 ~ a3@2 ~, ~@3 a4@5, ~@3 d4",
  H: "~@2 b3 ~@4 a3, e4@3 f#4@2 d4@3, ~ g3@2 ~ a3@2 f#4@2", I: "[d4,g4]@4 [d4,f#4]@4 [d4,e4]@3 ~ [a3,c#4]@4",
  J: "[a3,d4]@3 ~@5", // D5
  K: "[~@6 a3@2 ~@2 f#3 ~ d4 ~@9 a3@2 a3@2 ~@4 a3@2, b3@2 d4@2 ~@4 b3@3 ~@5, ~@2 g3@6 a3@6 a3@6 d4@5 ~@3 d4@4, ~@9 g3@2 ~@2 f#3@2 ~]/2",
})).s("gm_sitar").gain(0.13).pan(0.7)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@20 A B@2 C D E F@2 G H ~@11 A B@2 C D E F@2 G H I J@2 K L M N I M O ~@8 A B@2 C D E F@2 G P Q ~@8
>`.pickRestart({
  A: "~@3 f#3", B: "[d4@16 d4@15 ~, g3@15 ~]/2", C: "[a3,d4]", D: "a3@2 e3 [f#3,d4], c#4@3 ~",
  E: "g3@3 ~ f#3@3 ~ [e3,c#4]@4 [a3,d4]@4, d4 ~", F: "[d4@16 d4@6 d4@9 ~, g3@25 ~@7, ~@11 a3@3 ~@2]/2",
  G: "[g3,d4]@3 [a3,d4]@5", H: "[g3,d4] [f#3,d4] [e3,d4] [a3,c#4]", I: "d4", J: "[f#3 g3, b3]/2",
  K: "[e3,b3] [f#3,c#4] [g3,d4] [a3,e4]", L: "[b3,f#4]", M: "[c#4,f#4]", N: "[d4,g4] [c#4,a4]", O: "b3, g4@13 ~@3",
  P: "g3@3 a3@5, d4 ~@15", Q: "b3@6 d4@9 ~",
})).s("gm_distortion_guitar").gain(0.18)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note("<~@52 A@2 B C D E F@2 G H@4 I@2 J K ~@19>".pickRestart({
  A: "[f#4 g4, b4]/2", B: "e4 f#4 g4 [e4,a4], b4, ~ d4@2 ~", C: "~@6 e4@9 ~, [f#4,b4]", D: "[f#4,a4]",
  E: "[d4,g4]@8 [c#4,e4]@7 ~, a4@15 ~", F: "[b4 a4, f#4]/2", G: "b4@3 a4, g4",
  H: "[d5@8 e4@8 ~@3 f#4@5 g4@3 f#4@5, g4@39 ~@25, b4 [d4,a4]]/4", I: "[[g4,b4], d4 ~@31]/2", J: "[e4,a4]",
  K: "c#4 ~@15",
})).s("gm_drawbar_organ").gain(0.06).pan(0.8)

// other · distortion guitar · "DISTORTION"
const distortion_guitar_2 = note("<~@61 A@2 B C D E F G ~@19>".pickRestart({
  A: "[b4@8 b4@10 b4@2 ~ g4 ~ g4 g4@6 g4 a4, ~@10 a4 ~@5]/2", B: "g4@3 f#4 f#4@4",
  C: "g4@2 g4 a4 a4@5 a4 d5 a4 d5@2 d5@2", D: "e5@6 b4@8 e5!2", E: "e5@6 e5 g5 e5@6 e5@2",
  F: "c#5@3 c#5!2 d5!2 [a4,e5,a5]", G: "[a4,e5,a5] ~@7",
})).s("gm_distortion_guitar").gain(0.23).pan(0.4)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@61 A@2 B C D E F G ~@19>".pickRestart({
  A: "[b2@8 b2@10 b2@2 ~ g2 ~ g2 g2@6 g2 a2, ~@10 a2 ~@5]/2", B: "g2@6 f#2@2 f#2@7 ~",
  C: "g2@2 g2 a2 a2@5 a2 d3 a2 d3@2 d3@2", D: "e3@6 b2@8 e3!2", E: "e3@6 e3 g3 e3@6 e3@2",
  F: "c#3@3 c#3!2 d3!2 [a2,e3,a3]", G: "[a2,e3,a3] ~@7",
})).s("gm_guitar_harmonics").gain(0.15).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@2 B A@3 B A@3 B A@3 B A@3 C ~ C@4 D A E C F A@2 B A@3 B A@3 C ~ C@4 D A E C F C@3 G H C I C@3 J K@3 C@2 I B ~ C@4
  D A H L K M B ~@7
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x", C: "x ~@2 x!2 ~@3", D: "x!2", E: "x ~@7 x ~@6 x", F: "x ~@6 x!2 ~@7", G: "x!2 ~@2 x ~@3",
  H: "x ~@5 x ~ x ~@6 x", I: "x ~@2 x!2 ~@2 x", J: "x ~@2 x!3 ~@2", K: "x ~@2 x ~ x ~@2", L: "x!2 ~ x!2 ~@3",
  M: "x ~@2 x ~@2 x ~@3 x ~@5",
})).gain(0.51)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@3 A ~@3 A ~@3 A ~@3 A ~@11 B C ~@3 A ~@3 A ~@11 B C ~@4 A ~@12 D ~@8 C ~@11
>`.pickRestart({
  A: "~@3 x ~@4", B: "~ x ~ x ~@4", C: "~ x ~@6", D: "~@5 x ~@2",
})).gain(0.29)

// drums · rim
const rim = s("rim").struct("<~ [~@3 x]!2 [~ x ~ x]!16 ~@11 [~@3 x]!2 [~ x ~ x]!8 ~@48>").gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@18 A B ~ C@11 A@8 B ~ C@18 D C@3 E C@3 ~@2 C@10 ~@8>".pickRestart({
// … 53 more lines

More by Bryan Adams