Strudelify
Heaven Is A Place On Earth cover art

Heaven Is a Place on Earth

Heaven Is A Place On Earth

Belinda Carlisle

KeyE majorTempo123 bpm
0:00/0:00
// Heaven Is A Place On Earth — Belinda Carlisle
// 123 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 10, 4/4 at bar 11, 2/4 at bar 18, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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.

// other · music box
const music_box = note(`<
  A B C D A B C D C E F G H I F G H J ~@17 K L M N K L M N M N ~@17 O P Q R S P Q R T R U ~@23 V L M N V L M W X Y Z W X
  Y Z AA Z AA Z AA Z AA Z AA Z AA Z AA Z AA AB ~@2
>`.pickRestart({
  A: "[g#4,e5] ~@5 [a4,e5] ~@3 [a4,e5] ~ [a4,e5] ~ [a4,e5] ~", B: "[b4,f#5] ~@3 [c#5,g#5] ~@3 [c#5,g#5] ~@7",
  C: "[b4,g#5] ~@5 [c#5,a5] ~@3 [b4,g#5] ~ [a4,f#5] ~ [g#4,e5] ~", D: "[a4,f#5] ~@3 [a4,f#5] ~@3 [g#4,e5] ~@7",
  E: "[a4,f#5] ~@3 [a4,f#5] ~@3 [g#4,e5] ~@5 [a4,e5] ~", // D C#m A5
  F: "~@2 [a4,e5] ~ [a4,e5] ~ [a4,e5] ~ [b4,f#5] ~@3 [c#5,g#5] ~@3", G: "[c#5,g#5] ~@7 [b4,g#5] ~@5 [c#5,a5] ~",
  H: "~@2 [b4,g#5] ~ [a4,f#5] ~ [g#4,e5] ~ [a4,f#5] ~@3 [a4,f#5] ~@3", I: "[g#4,e5] ~@7 [g#4,e5] ~@5 [a4,e5] ~",
  J: "[g#4,e5] ~@15", K: "e5 ~@5 e5 ~@3 e5 ~ e5 ~ e5 ~", L: "f#5 ~@3 g#5 ~@3 g#5 ~@7",
  M: "g#5 ~@5 a5 ~@3 g#5 ~ f#5 ~ e5 ~", N: "f#5 ~@3 f#5 ~@3 e5 ~@7", O: "~@8 e5 ~@5 e5 ~",
  P: "~@2 e5 ~ e5 ~ e5 ~ f#5 ~@3 g#5 ~@3", Q: "g#5 ~@7 g#5 ~@5 a5 ~", R: "~@2 g#5 ~ f#5 ~ e5 ~ f#5 ~@3 f#5 ~@3",
  S: "e5 ~@7 e5 ~@5 e5 ~", T: "e5 ~@7 g#5 ~@5 a5 ~", U: "e5 ~@15", V: "g#5 ~@5 e5 ~@7 e5 ~", W: "f#5 ~@7 f#5 ~@5 f#5 ~",
  X: "~@2 f#5 ~ f#5 ~ f#5 ~ g#5 ~@3 a#5 ~@3", Y: "a#5 ~@7 a#5 ~@5 b5 ~", Z: "~@2 a#5 ~ g#5 ~ f#5 ~ g#5 ~@3 g#5 ~@3",
  AA: "f#5 ~@7 a#5 ~@5 b5 ~", AB: "~@2 a#5 ~ g#5 ~ f#5 ~@9",
})).s("gm_music_box").gain(0.14).pan(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@3 A B@2 ~@3 C D E F G D E F H I J K L M J K N K O L O P Q O R S T U V W X Y V Y V Z AA AB AC AD AE AF AC AG AE AH AI
  AJ AI AK AL AM AN AO AP AQ AR AS@2 AT AU AT AR J AV AW AX AY L AZ@2 J BA BB BC AY L AZ@2 O L O P Q O R S BD ~@3 B@2 ~
  BE BF BG BH BI BH BJ BH BJ BH BJ BH BJ BH BJ BH BJ BH BJ BH BJ BH BJ BK ~@2
>`.pickRestart({
  A: "~@7 c#3", B: "[c#2@9 ~@7]/2", C: "~@4 c#3@4 c#2@2 f#1@2 g#1@2 a1 ~",
  D: "a1 ~ a1@2 g#1@2 f#1@2 b1 ~ b1 ~ b1@2 c2@2", E: "c#2@2 c#2 ~ c#2@2 d#2@2 e2@2 b1@2 g#1@2 a1 ~",
  F: "a1 ~ a1@2 g#1@2 f#1@2 b1 ~ b1 ~ b1 ~ b1@2", G: "c#2 ~ c#2@2 b1@2 g#1@2 c#2@2 f#1@2 g#1@2 a1 ~",
  H: "c#2 c#3 c#2 c#3 c#2 c#3 c#2 c#3", I: "~@2 c#3 ~ c#3 ~ c#3@2 ~@2 c#3 ~ c#3 ~ c#3@2, c#2@7 ~ c#2@8",
  J: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", K: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2",
  L: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2", M: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 b2@2",
  N: "a1@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2", O: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2",
  P: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 g1@2", Q: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1@2",
  R: "e1 ~ e1 ~ e1 ~ e1@2 f#1 ~ f#1 ~ f#1 ~ f#1@2", S: "g1 ~ g1 ~ g1 ~ g1@2 a1 ~ a1 ~ a1 ~ a1@2",
  T: "c#2@2 f#1@2 g#1@2 a1@3 ~ a1@2 g#1@2 f#1@2", U: "b1@2 b1 ~ b1@2 c2@2 c#2@2 c#2@3 ~ d#2@2",
  V: "e2@2 b1@2 g#1@2 a1 ~ a1@2 a1@2 g#1@2 f#1@2", W: "b1@2 b1 ~ b1 ~ b1@2 c#2 ~ c#2@2 b1@2 g#1@2",
  X: "c#2 f#1 g#1 a1@2 a1 g#1 f#1", Y: "b1 ~ b1 ~ b1@2 c2@2 c#2@2 c#2@4 d#2@2",
  Z: "b1 ~ b1 ~ b1 ~ b1@2 c#2@2 c#2@2 c#2@2 c#2@2", AA: "c#2@2 c#2@2 c#2@2 g#2@2 c#2@2 c#2@2 c#2 ~ g#2@2",
  AB: "c#2@2 c#2@2 c#2@2 g#2@2 e1 ~ e1 ~ e1 ~ e1 ~", AC: "e1 ~ e1 ~ e1 ~ e1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
  AD: "b1 ~ b1 ~ b1 ~ b1@2 a1 ~ a1 ~ a1 ~ a1 ~", AE: "a1 ~ a1 ~ a1 ~ a1@2 b1 ~ b1 ~ b1 ~ b1 ~",
  AF: "b1 ~ b1 ~ b1@2 b2@2 e1 ~ e1 ~ e1 ~ e1 ~", AG: "b1 ~ b1 ~ b1 ~ b1@2 a1@2 a1 ~ a1 ~ a1 ~",
  AH: "b1 ~ b1 ~ b1 ~ b1@2 g1 ~ g1 ~ g1 ~ g1 ~", AI: "g1 ~ g1 ~ g1 ~ g1@2 a1 ~ a1 ~ a1 ~ a1 ~",
  AJ: "a1 ~ a1 ~ a1 ~ a1@2 g1 ~ g1 ~ g1 ~ g1 ~", AK: "a1 ~ a1 ~ a1@2 g1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~",
  AL: "f#1 ~ f#1 ~ f#1 ~ f#1@2 g1 ~ g1 ~ g1 ~ g1 ~", AM: "g1 ~ g1 ~ g1 ~ g1@2 e1 ~ e1 ~ e1 ~ e1@2",
  AN: "f#1 ~ f#1 ~ f#1 ~ f#1@2 g1 ~ g1 ~ g1 ~ g1@2", AO: "a1 ~ a1 ~ a1 ~ a1@2 c#2@2 f#1@2 g#1@2 a1@2",
  AP: "~@2 a1@2 g#1@2 f#1@2 b1@2 b1 ~ b1@2 c2@2", AQ: "c#2@2 c#2@3 ~ d#2@2 e2@2 b1@2 g#1@2 a1 ~",
  AR: "a1@2 a1@2 g#1@2 f#1@2 b1@2 b1 ~ b1 ~ b1@2",
  AS: "[c#2 ~ c#2@2 b1@2 g#1@2 c#2@2 f#1@2 g#1@2 a1@4 a1@2 g#1@2 f#1@2 b1@2 b1 ~ b1@2 c2@2]/2",
  AT: "c#2@2 c#2@4 d#2@2 e2@2 b1@2 g#1@2 a1 ~", AU: "a1@2 a1@2 g#1@2 f#1@2 b1@2 b1 ~ b1@2 c2@2",
  AV: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1@2", AW: "c#2@2 c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  AX: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2@2", AY: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  AZ: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", BA: "e1 ~ e1 ~ e1 ~ e1 ~ e1@2 f#1@2 g#1@2 b1@2",
  BB: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", BC: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2@2 b1@2 f#1@2 g#1@2",
  BD: "c#2@5 ~@11", BE: "~@4 d#2 g#1 a#1 b1", BF: "~ b1 a#1 g#1 c#2!3 d2",
  BG: "d#2@2 d#2@3 ~ f2@2 f#2@2 c#2@2 a#1@2 b1@2", BH: "b1!2 a#1 g#1 c#2!4",
  BI: "d#2@2 d#2@2 d#2@2 f2 ~ d#2@2 g#1@2 a#1@2 b1@2", BJ: "d#2@2 d#2@2 d#2@2 f2 ~ f#2@2 c#2@2 a#1@2 b1@2",
  BK: "b1!2 a#1 g#1 ~@4",
})).s("gm_electric_bass_finger").gain(0.49)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@7 A B@2 ~@2 C@2 ~@3 D@2 E ~@24 F@4 ~@24 G@2 H I J K L@2 M@5 K N@2 ~@8 O P Q R S T U V ~@25
>`.pickRestart({
  A: "b3@3 ~@2 e4 f#4 e4, ~@4 c#4@3 ~",
  B: "[~ g#4 e4 ~@2 c#4 a4 ~ b4 f#4 ~ g#4@4 ~, g#3@5 ~ a3@7 ~ b3@5 ~ c#4@10 ~@2, ~@8 e4@5 ~@19]/2",
  C: "[~@8 e4@4 d#4@2 ~@2 c#4@7 ~@9, ~@3 b3 ~@4, ~@7 d#4@5 ~@4]/2",
  D: "[~@14 e4@4 ~@8 c#4@5 ~, ~ b3@8 b3@7, ~@2 e4@5 ~@3 e4@6, ~@6 d#4@15 ~ d#4@9 ~, ~@10 c#4@15 ~@7]/2", E: "b3@5 ~@3",
  F: "[~@22 e4@4 ~@8 c#4@5 ~ b3@10 ~@14, ~@5 b3@8 ~ e4@6 ~@12, ~@6 e4@5 ~@2 g#4@7 ~@12, ~@14 d#4@15 ~ d#4@9 ~@25, ~@18 c#4@15 ~@31]/4",
  G: "[~ b3 ~@2 f#4 b3 ~@5 b3 f#4 b3 ~ b3, g#4@3 b4 g#4@3 b4, ~ e4 ~@3 e4 ~@2, ~@3 b3@2 ~@2 b3@2 b3@2 ~@5]/2",
  H: "~@3 b3 f#4 ~@2 b3, g#4@3 b4, ~ b3@2 ~@2 b3@2 ~, ~ e4 ~@2", I: "~@2 e4 ~ f#4 b3 b4 b3, g#4@3 ~, ~ b3@2 b3@2 ~@3",
  J: "~@3 b3 f#4 b3 ~ b3, g#4@3 b4, ~ b3@2 ~@5, ~ e4 ~@2", K: "~@3 b3 f#4 b3 b4 b3, g#4@3 ~, ~ b3@2 ~@5, ~ e4 ~@2",
  L: "[~ b3 ~@4 e4 b3 ~@6 f#4 b3, f#4 e4@2 ~ d#4!2 e4 ~, ~@3 b3@2 b3@2 ~@2 b3@2 b3@2 b3@2 ~, ~@2 f#4@5 ~]/2",
  M: "[~ b3 ~ b3 f#4 ~@6 b3 f#4 ~ b4 ~@2 b3 ~@2 f#4 ~ b4 ~@6 b3 b4 ~@4 b3 f#4 b3 b4 b3, g#4@11 ~ b4@4 g#4@12 ~@4 g#4@12 ~@4 g#4@8 f#4@4 ~@4 g#4@12 ~@4, ~@2 e4@2 ~ b3@2 b3@2 b3@2 ~@2 b3@2 b3@2 ~@2 b3@2 b3@2 b3@2 b3@2 b3@2 ~@2 b3@2 b3@2 ~@5, ~@5 e4 ~@3 e4 ~@3 e4 ~@3 e4 ~@2]/5",
  N: "[~@10 b3@2 e4@2 b3@2 ~@2 b3@2 f#4@2 b3@2 ~@6 b3 ~, f#4@8 f#4@11 ~@9 f#4@4, ~ b3@2 b3@2 ~@8 b3@2 ~, ~@4 e4@7 ~@5 d#4@5 ~@3 d#4@6 ~@2]/2",
  O: "[g#3,c#4,e4]@2 ~ [a3,c#4,e4]@4 ~", P: "[b3,d#4,f#4]@7 ~ [g#3,c#4,e4]@8", Q: "[g#3,b3,e4]@2 ~ [a3,c#4,e4]@4 ~",
  R: "[f#3,b3,d#4]@3 ~ [g#3,c#4,e4]@4", S: "[g#3,c#4,e4]@5 ~ [a3,c#4,e4]@8 ~@2", T: "[f#3,b3,d#4]@7 ~ [g#3,c#4,e4]@8",
  U: "[g#3,b3,e4]@5 ~ [c#4,e4]@9 ~, ~@6 a3@7 ~@3", V: "[f#3,b3,d#4]@7 ~@9",
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.6)

// chords · flute
const flute = note(`<
  A B C D E F G H C I@2 ~@24 A B C D E F G H C I@2 ~@16 J@2 K@2 L@2 M@2 N@2 O@2 ~@4 P Q ~@2 Q R ~@2 P Q ~@15 S@2 T@2 U@2
  V@2 W@14 X@2 ~@2
>`.pickRestart({
  A: "e4@3 e4@2 e4!3", B: "f#4!2 g#4@2 g#4@4", C: "[g#4,b4]@3 [a4,c#5]@2 [g#4,b4] [f#4,a4] [e4,g#4]",
  D: "[f#4,a4]@2 [f#4,a4] [e4,g#4] [f#4,a4] [e4,g#4]@2 c#4", E: "e4 e4@2 e4@2 e4@3", F: "f#4 g#4 g#4@2",
  G: "[g#4,b4] [g#4,b4]@2 [a4,c#5]@2 [g#4,b4] [f#4,a4] [e4,g#4]", H: "[f#4,a4]@2 [f#4,a4] [e4,g#4] [f#4,a4] [e4,g#4]@3",
  I: "[[f#4,a4]@2 [f#4,a4] [e4,g#4] [f#4,a4] [e4,g#4]@7 ~@4]/2", J: "[~@4 e4@3 e4@2 e4!3 f#4!2 g#4@2]/2",
  K: "[g#4@4 [g#4,b4]@3 [a4,c#5]@2 [g#4,b4] [f#4,a4] [e4,g#4] [f#4,a4]@2 [f#4,a4] [e4,g#4]]/2", // G#m A G#m F#m E F#m E
  L: "[[f#4,a4] [e4,g#4]@2 c#4 e4 e4@2 e4@2 e4@3 f#4@2 g#4@2]/2", // F#m E
  M: "[g#4@4 [g#4,b4] [g#4,b4]@2 [a4,c#5]@2 [g#4,b4] [f#4,a4] [e4,g#4] [f#4,a4]@2 [f#4,a4] [e4,g#4]]/2", // G#m A G#m F#m E F#m E
  N: "[[f#4,a4] [e4,g#4]@3 [g#4,b4]@3 [a4,c#5]@2 [g#4,b4] [f#4,a4] [e4,g#4] [f#4,a4]@2 [f#4,a4] [e4,g#4]]/2", // F#m E G#m A G#m F#m E F#m …
  O: "[[f#4,a4] [e4,g#4]@15]/2", P: "[e4,g#4]", Q: "[d#4,f#4]", R: "[c#4,e4]",
  S: "[~@4 f#4@3 f#4@2 f#4!3 g#4!2 a#4@2]/2",
  T: "[a#4@4 [a#4,c#5]@3 [b4,d#5]@2 [a#4,c#5] [g#4,b4] [f#4,a#4] [g#4,b4]@2 [g#4,b4] [f#4,a#4]]/2", // A#m B A#m G#m F# G#m F#
  U: "[[g#4,b4] [f#4,a#4]@2 d#4 f#4 f#4@2 f#4@2 f#4@3 [g#4,c#5]@2 [a#4,c#5]@2]/2", // G#m F# C#5 A#m
  V: "[[a#4,d#5]@4 [a#4,c#5] [a#4,c#5]@2 [b4,d#5]@2 [a#4,c#5] [g#4,b4] [f#4,a#4] [g#4,b4]@2 [g#4,b4] [f#4,a#4]]/2", // D#5 A#m B A#m G#m F# G#m F#
  W: "[[g#4,b4] [f#4,a#4]@3 [a#4,c#5]@3 [b4,d#5]@2 [a#4,c#5] [g#4,b4] [f#4,a#4] [g#4,b4]@2 [g#4,b4] [f#4,a#4]]/2", // G#m F# A#m B A#m G#m F# G#m …
  X: "[[g#4,b4] [f#4,a#4]@3 [a#4,c#5]@3 [b4,d#5]@2 [a#4,c#5] [g#4,b4] [f#4,a#4] ~@4]/2", // G#m F# A#m B A#m G#m F#
})).s("gm_flute").gain(0.19)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  A B C D A B C D C E@4 F@4 G@2 H I J I H I J I K L M L@2 N O@2 A B C D A B C D C P@8 Q@2 R@8 S@4 F@4 T@2 U@4 V@2 W@2
  U@4 X@2 Y@2 Z AA AB AC AA AB AD@2 AE AF AG AH AE AF AG AI@4 AJ@4 AK@14 AL@2 ~@2
>`.pickRestart({
  A: "[g#4,e5]@3 [a4,e5]@5", B: "[b4,f#5] [c#5,g#5]@3", C: "[b4,g#5]@3 [c#5,a5]@2 [b4,g#5] [a4,f#5] [g#4,e5]",
  D: "[a4,f#5] [g#4,e5]", // D C#m
  E: "[[a4,f#5]@8 g#4@6 a4@9 ~ [b4,f#5]@4 [c#5,g#5]@12 [b4,g#5]@6 [c#5,a5]@4 [b4,g#5]@2 [a4,f#5]@2 [g#4,e5]@2 [a4,f#5]@8, ~ e5@2 ~@5]/4", // D B5 C#5 E F#m E D C#m …
  F: "[[g#4,e5]@4 [g#4,e5]@3 [a4,e5]@5 [b4,f#5]@2 [c#5,g#5]@6 [b4,g#5]@3 [c#5,a5]@2 [b4,g#5] [a4,f#5] [g#4,e5] [a4,f#5]@4]/4", // C#m A5 B5 C#5 E F#m E D …
  G: "[g#4,e5]/2", H: "[b4,e5,g#5]", I: "[b4,d#5,f#5]", J: "[b4,c#5,e5]", K: "[b3,d4,g4]", L: "[c#4,e4,a4]",
  M: "[d4,f#4,b4]", N: "[d4,f#4,a4]", O: "[[b3,a4] [c#4,a4] [d4,a4] [e4,a4,b4], e4@23 ~@9]/2",
  P: "[[a4,f#5] [g#4,e5]@4 [b4,e5,g#5]@2 e5 d#5 [b4,c#5,e5]@2 e5 d#5 [b4,e5,g#5]@2 [b4,e5,f#5], ~@7 [b4,f#5]@2 ~@2 [b4,f#5]@2 ~@3]/8", // D C#m E C#m7 E Bsus4 B5
  Q: "[d#5 [b4,c#5,e5]@2 [b4,e5,f#5]]/2", // C#m7 Bsus4
  R: "[d#5 [b3,d4,g4]@2 [c#4,e4,a4]@2 [d4,f#4,b4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 [d4,f#4,a4]@2 [b3,a4] [c#4,a4] [d4,a4], ~@104 e4@23 ~]/8", // G A Bm A D B7 F#m D5
  S: "[[e4,a4,b4]@4 [g#4,e5]@3 [a4,e5]@5 [b4,f#5]@2 [c#5,g#5]@6 [b4,g#5]@3 [c#5,a5]@2 [b4,g#5] [a4,f#5] [g#4,e5] [a4,f#5]@4]/4", // Esus4 C#m A5 B5 C#5 E F#m E …
  T: "[[g#4,e5]@4 [b4,g#5]@3 [c#5,a5]@2 [b4,g#5] [a4,f#5] [g#4,e5] [a4,f#5]@4]/2", U: "[e4 d#4, [g#4,b4]]/4",
  V: "[e4,a4,b4]/2", W: "[e4 d#4, [f#4,b4]]/2", X: "[c#4,e4,b4]/2", Y: "[e4@16 d#4@15 ~, [f#4,b4]]/2", Z: "[d4,g4,b4]",
  AA: "[e4,a4,c#5]", AB: "[f#4,b4,d5]", AC: "e5@2 d5 e5, [a4,c#5]",
  AD: "[[g4,b4] [a4,c#5] [b4,d5] [c#5,e5,a5], a5@3 ~]/2", AE: "g#5@3 e5@5", AF: "f#5 g#5@3",
  AG: "g#5@3 a5@2 g#5 f#5 e5", AH: "f#5 e5",
  AI: "[f#5@4 [a#4,f#5]@3 [b4,f#5]@5 [c#5,g#5]@2 [d#5,a#5]@6 [c#5,a#5]@3 [d#5,b5]@2 [c#5,a#5] [b4,g#5] [a#4,f#5] [b4,g#5]@4]/4", // D#m B5 C#5 D#5 F# G#m F# E …
  AJ: "[[a#4,f#5]@4 [a#4,f#5]@3 [b4,f#5]@5 [c#5,g#5]@2 [d#5,a#5]@6 [c#5,a#5]@3 [d#5,b5]@2 [c#5,a#5] [b4,g#5] [a#4,f#5] [b4,g#5]@4]/4", // D#m B5 C#5 D#5 F# G#m F# E …
  AK: "[[a#4,f#5]@4 [c#5,a#5]@3 [d#5,b5]@2 [c#5,a#5] [b4,g#5] [a#4,f#5] [b4,g#5]@4]/2", // D#m F# G#m F# E D#m E
  AL: "[[a#4,f#5]@4 [c#5,a#5]@3 [d#5,b5]@2 [c#5,a#5] [b4,g#5] [a#4,f#5] ~@4]/2", // D#m F# G#m F# E D#m
})).s("gm_synth_strings_1").gain(0.16)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@9 A@2 B@2 C@2 B@2 D@2 ~@14 E F G H I H G H I H I J@3 ~@7 K@5 L M N O@2 B@2 C@2 B@4 P@2 Q@2 R@2 S@2 P@2 Q@2 T@2 S@2
  ~@8 U V W X U Y Z AA@2 AB@2 AC@2 AB@4 AD@12 AE@2 ~@2
>`.pickRestart({
  A: "[~@4 e3 [d3,d#3] b2 [f2,g#2] [c#3,g#3]@5 ~ [a2,e3]@6 [a2,e3]@3 ~ [b2,f#3]@4 [b2,f#3]@2 ~@2]/2", // D#maj7 Fm C#5 A5 B5
  B: "[[c#3,g#3]@7 ~ [e3,b3]@2 [e3,b3]@2 ~@2 [a2,e3]@6 [a2,e3]@3 ~ [b2,f#3]@4 [b2,f#3]@2 ~@2]/2", // C#5 E5 A5 B5
  C: "[[c#3,g#3]@7 ~ [c#3,g#3]@5 ~ [a2,e3]@6 [a2,e3]@3 ~ [b2,f#3]@4 [b2,f#3]@2 ~@2]/2", D: "[c#3@31 ~, g#3@25 ~@7]/2",
  E: "e2 [f#2,c#3], b2@3 ~@5", F: "[g2,d3] [a2,e3]", G: "[c#3,g#3]@5 ~ [a2,e3]@6 [a2,e3]@3 ~",
  H: "[b2,f#3]@4 [b2,f#3]@2 ~@2 [c#3,g#3]@7 ~", I: "[e3,b3]@2 [e3,b3]@2 ~@2 [a2,e3]@6 [a2,e3]@3 ~",
  J: "[[b2,f#3]@4 [b2,f#3]@2 ~@2 c#3@31 ~@9, ~@8 g#3@25 ~@15]/3", // B5
  K: "[~@8 [b3,d4,g4]@13 ~ [b3,d4,g4]@2 [c#4,e4,a4]@11 ~@3 [c#4,e4,a4]@2 [c#4,f4,b4] ~ g4@2 ~@6 b4@4 [d4,g4,b4]@2 [d#4,g#4,c5,c#5] ~@5 e4@8 ~@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2, ~@24 [c4,d#4,g#4] ~@15 d4@4 g4@10 ~@2 a4@4 a4@10 ~@10, ~@20 f#4 b4@4 ~@4 c#5@6 ~@5, ~@23 d4@4 ~ e4@3 ~@9]/5", // G A C#7 G G# F#5 G#
  L: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4] ~ [g3,d4]@2 [g3,d4]@2 [g3,d4]@2 [g3,d4]@2", // F#5 G5
  M: "[g3,d4]@2 [g3,d4]@2 [g3,d4]@2 [g3,d4]@2 [e2,b2]@7 ~", N: "[f#2,c#3] [g2,d3]",
  O: "[[a2,e3]@8 [c#3,g#3]@5 ~ [a2,e3]@6 [a2,e3]@3 ~ [b2,f#3]@4 [b2,f#3]@2 ~@2]/2", P: "[e2,b2]/2",
  Q: "[[c#3,g#3]@31 ~]/2", R: "[[a2,e3]@31 ~]/2", S: "[[b2,f#3]@31 ~]/2", T: "[a2@31 ~, e3@29 ~@3]/2",
  U: "[c#3,g#3]@5 ~ [a2,e3]@8 [a2,e3] ~", V: "[b2,f#3]@4 [c#3,g#3]@3 ~", W: "[e3,b3]@5 ~ [a2,e3]@7 ~ [a2,e3] ~",
  X: "[b2,f#3]@4 [b2,f#3]@3 ~ [c#3,g#3]@7 ~", Y: "[b2,f#3]@7 g3 [c#3,g#3]@7 ~, ~@8 c3 ~@7",
  Z: "[e3,b3]@4 [d#3,a#3] [c3,c#3,d3,g3,g#3,a3] [a2,e3]@7 ~ [a2,e3]@2", // E5 D#5 A5
  AA: "[[b2,f#3]@4 [b2,f#3]@3 ~ [d#3,a#3]@5 ~ [b2,f#3]@6 [b2,f#3]@3 ~ [c#3,g#3]@4 [c#3,g#3]@2 ~@2]/2", // B5 D#5 B5 C#5
  AB: "[[d#3,a#3]@7 ~ [f#3,c#4]@2 [f#3,c#4]@2 ~@2 [b2,f#3]@6 [b2,f#3]@3 ~ [c#3,g#3]@4 [c#3,g#3]@2 ~@2]/2", // D#5 F#5 B5 C#5
  AC: "[[d#3,a#3]@7 ~ [d#3,a#3]@5 ~ [b2,f#3]@6 [b2,f#3]@3 ~ [c#3,g#3]@4 [c#3,g#3]@2 ~@2]/2", // D#5 B5 C#5
  AD: "[[d#3,a#3]@8 [f#3,c#4]@2 [f#3,c#4]@2 ~@2 [b2,f#3]@6 [b2,f#3]@3 ~ [c#3,g#3]@4 [c#3,g#3]@2 ~@2]/2", // D#5 F#5 B5 C#5
  AE: "[[d#3,a#3]@8 [f#3,c#4]@2 [f#3,c#4]@2 ~@2 [b2,f#3]@6 [b2,f#3]@3 ~@9]/2", // D#5 F#5 B5
})).s("gm_overdriven_guitar").gain(0.44).pan(0.4)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@19 A B C B A B D E F G H G I J K L ~@11 M N O P Q N R S T L U L V W X Y Z ~@25 F G H G I J K L ~@33
>`.pickRestart({
  A: "[e2,b2]!8", B: "[b2,f#3]!8", C: "e3 [a2,e3]!7", D: "e3!2 [a2,e3]!3 e3!2 [a2,e3], ~@5 a2@2 ~",
  E: "[b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3] ~", // B5
  F: "[g2,d3]@2 [g2,d3]@2 d3@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~, ~ g2 ~@2", // G5
  G: "[a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3] ~", // A5
  H: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~", I: "[f#2,c#3]!8",
  J: "d3@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~, g2 ~@3", // G5
  K: "b2!2 [e2,b2]!2 [f#2,c#3]!4, e2 ~@3", // E5 F#5
  L: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~ [a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3]@2", M: "~@4 [e2,b2]!4",
  N: "[e2,b2]!4 [b2,f#3]!4", O: "[b2,f#3]!4 e3 [a2,e3]!3", P: "[a2,e3]!4 [b2,f#3]!4", Q: "[b2,f#3]!4 [e2,b2]!4",
  R: "[b2,f#3]!4 e3!2 [a2,e3]!2", S: "[a2,e3] e3!2 [a2,e3] [b2,f#3]!4, ~ a2@2 ~@5",
  T: "[b2,f#3]@2 [b2,f#3]@2 [b2,f#3]@2 [b2,f#3] ~ [g2,d3]@2 [g2,d3]@2 d3@2 d3@2, ~@3 g2", // B5 G5
  U: "[a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3] ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2", // A5 G5
  V: "[a2,e3]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3] ~ [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2", // A5 F#5
  W: "[f#2,c#3]!4 d3!2 [g2,d3]!2, ~@2 g2 ~", // F#5 G5
  X: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~ b2@2 b2@2 [e2,b2]@2 [e2,b2]@2, ~@2 e2 ~", // G5 E5
  Y: "[f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~", Z: "[a2,e3]!4 ~@4",
})).s("gm_electric_guitar_muted").gain(0.44)

// other · piano · "A.PIANO 3"
const piano = note("<~@7 A B@2 ~@36 C D E F G H I J K ~@17 L@3 M N O P Q R S T U V W P X Y ~@40>".pickRestart({
  A: "b3@4 ~ e4 f#4 e4, ~ c#4",
  B: "[~ g#4 e4 ~@5 b4 f#4 ~ g#4 ~@4, g#3@3 a3@4 b3@3 ~@6, ~@2 e4 a4 ~@4, ~@5 c#4@2 ~@3 c#4@2 ~@4]/2",
  C: "~@4 [e5,g#5] b4 [e5,g#5] b4", D: "[e5,g#5] b4 [e5,g#5] b4 [e5,f#5] b4 [e5,f#5] b4",
  E: "[d#5,f#5] b4 [d#5,f#5] b4 [c#5,e5] a4 [c#5,e5] a4", F: "[b4,e5] a4 [b4,e5] a4 [e5,f#5] b4 [e5,f#5] b4",
  G: "[d#5,f#5] b4 [d#5,f#5] b4 [e5,g#5] b4 [e5,g#5] b4", // D#m E
  H: "[e5,g#5]@2 b4@2 e5@2 b4 ~ [e5,f#5]@2 b4@2 [e5,f#5]@2 b4@2, ~@4 g#5 ~@11", // E Esus2
  I: "[d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [c#5,e5]@2 a4 ~ [c#5,e5]@2 a4@2", // D#m C#m
  J: "[b4,e5]@2 a4 ~ [b4,e5]@2 a4@2 [e5,f#5]@2 b4@2 [e5,f#5]@2 b4@2", K: "[d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4 ~@9",
  L: "g#4 b3 e4 b3 f#4 b3 b4 b3", M: "g#4@2 b3@2 e4@2 b3 ~ f#4 ~ b3 ~ b4@2 b3@2",
  N: "g#4@2 b3@2 e4@2 b3 ~ f#4 ~ b3@2 b4@2 b3@2", O: "g#4@2 b3 ~ e4@2 b3@2 f#4 ~ b3 ~ b4@2 b3 ~",
  P: "f#4@2 b3 ~ e4@2 b3 ~ f#4@2 b3 ~ e4@2 b3 ~", Q: "d#4 ~ b3 ~ d#4@2 b3 ~ e4@2 b3 ~ f#4@2 b3 ~",
  R: "g#4@2 b3 ~ e4@2 b3 ~ f#4@2 b3 ~ b4@2 b3@2", S: "g#4@2 b3 ~ e4@2 b3 ~ f#4 ~ b3@2 b4@2 b3@2",
  T: "g#4 ~ b3 ~ e4@2 b3 ~ f#4@2 b3 ~ b4@2 b3 ~", U: "g#4@2 b3 ~ e4@2 b3 ~ f#4 ~ b3 ~ b4@2 b3 ~",
// … 85 more lines

More by Belinda Carlisle