Strudelify

Santa Fe

Bon Jovi

KeyE♭ minorTempo70 bpm
0:00/0:00
// Santa Fe — Bon Jovi
// 70 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Overdriven guitar.
setcpm(70/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 · acoustic guitar steel · "Steel guitar comp"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H E F I J E F G H K L M N O P O Q O R O Q O S ~ E F G H E F I ~ E F G H K L M N O P O Q O R O Q O P O
  T ~ A B U V A B W B W X O Y W Z O AA O P O Q O R O Q O P O T ~@11
>`.pickRestart({
  A: "[gb3,bb3,db4,gb4]@8 [f3,ab3,db4,f4]@2 [f3,ab3,db4,f4]!2 [f3,ab3,db4,f4]@4", // Gb Db
  B: "[eb3,gb3,bb3,eb4]@4 [eb3,gb3,bb3,eb4]@3 [eb3,gb3,bb3,eb4]!5 [eb3,gb3,bb3,eb4]@4", // Ebm
  C: "[ab3,b3,eb4,ab4] [gb3,b3,eb4,gb4]", D: "[f3,ab3,db4,f4]",
  E: "[bb3,db4,gb4,bb4]@3 ~ [bb3,db4,gb4,bb4]@3 ~ [db4,f4,ab4,db5]@4 [db4,f4,ab4,db5]@4", F: "[eb4,gb4,bb4,eb5]!4",
  G: "[b3,eb4,ab4,b4]@3 ~ [b3,eb4,ab4,b4]@3 ~ [b3,eb4,gb4,b4]@3 ~ [b3,eb4,gb4,b4]@3 ~", // Abm B
  H: "[f3,ab3,db4,f4]@3 ~ [f3,ab3,db4,f4]@3 ~ [f3,ab3,db4,f4]@3 ~ [f3,ab3,db4,f4]@3 ~", // Db
  I: "[b3,eb4,gb4,b4]@3 ~ [b3,eb4,gb4,b4]@3 ~ [f3,ab3,db4,f4]@3 ~ [f3,ab3,db4,f4]@3 ~", // B Db
  J: "[eb4,gb4,bb4,eb5] ~ [eb4,gb4,bb4,eb5]!2", // Ebm
  K: "[bb3,db4,gb4,bb4] ~ [bb3,db4,gb4,bb4]!2 [bb3,db4,gb4,bb4]@3 ~ [db4,f4,ab4,db5] ~ [db4,f4,ab4,db5]!2 [db4,f4,ab4,db5]@4", // Gb Db
  L: "[bb3,db4,gb4,bb4]@3 ~ [db4,f4,ab4,db5]@3 ~ [b3,eb4,ab4,b4]@3 ~ [eb4,gb4,b4]@3 ~", // Gb Db Abm B
  M: "[b3,eb4,gb4,b4] ~ [b3,eb4,gb4,b4]!2 [b3,eb4,gb4,b4]@3 ~ [f3,ab3,db4,f4]@3 ~ [f3,ab3,db4,f4]@3 ~", // B Db
  N: "[eb4,gb4,bb4,eb5] ~@3", // Ebm
  O: "[eb4,gb4,b4,gb5] ~ [eb4,gb4,b4,gb5]!2 [eb4,gb4,b4,gb5]@2 [eb4,gb4,b4,gb5]!2 [db4,f4,ab4,f5]@2 [db4,f4,ab4,f5]!2 [db4,f4,ab4,f5]@2 [db4,f4,ab4,f5]!2", // B Db
  P: "[db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 ~@2", // Gb
  Q: "[eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 ~@2", // Ebm
  R: "[db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,f4,ab4,f5]@2 [db4,f4,ab4,f5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 ~@2", // Gb Db Gb
  S: "[eb4,gb4,bb4,gb5] ~@7", T: "[eb4,gb4,bb4] ~@7", U: "[ab3,b3,eb4,ab4]@3 [ab3,b3,eb4,ab4] [gb3,b3,eb4,gb4]@4",
  V: "[f3,ab3,db4,f4]@3 [f3,ab3,db4,f4] [f3,ab3,db4,f4]@2 [f3,ab3,db4,f4]!2", // Db
  W: "[gb3,b3,eb4,gb4]@4 [gb3,b3,eb4,gb4]@2 [gb3,b3,eb4,gb4]@2 [f3,ab3,db4,f4]@2 [f3,ab3,db4,f4]!2 [f3,ab3,db4,f4]@4", // B Db
  X: "[db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2", // Gb
  Y: "[eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [db4,f4,ab4,f5]@2 [db4,f4,ab4,f5]!2 [db4,f4,ab4,f5]@2 [db4,f4,ab4,f5]!2", // Ebm Db
  Z: "[db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [db4,gb4,bb4,gb5]@2 [db4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2", // Gb Ebm
  AA: "[eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2 [eb4,gb4,bb4,gb5]@2 [eb4,gb4,bb4,gb5]!2", // Ebm
})).s("gm_acoustic_guitar_steel").gain(0.25)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  ~ A B C@3 ~@15 D E F G@4 H I J@2 ~@8 K L M N O P Q R S T U V@2 W S X@4 Y@2 Z AA AB AC AD AA AE AF AG AH AI AJ AK AL AM
  AN AO AP AQ AR AQ AS AQ AT AU AV AQ AW AX AY AZ BA BB AY AZ BC BD BE BF
>`.pickRestart({
  A: "~ gb4 ab4 bb4 db5 b4 bb4 ab4!2 f4 gb4 ab4 b4 bb4 ab4 gb4, [gb3,gb5] [f3,f5]", // Gb F
  B: "gb4 eb4 f4 gb4 bb4 ab4 gb4 f4 ~@2 f4 gb4 bb4 ab4 gb4 f4, [eb3,eb5], ~@9 eb4@2 ~@5", // Eb
  C: "[~ ab4 bb4 b4 eb5 db5 b4 bb4 ~ ab4 bb4 b4 db5 [bb4,b4] ~@3 gb4 f4 eb4 db4 b3 bb3 ab3 gb3 f3 eb3 db3 b2 bb2 ab2 gb2@8 ~@9, [ab3,ab5]@8 [b3,b5]@7 ab4@2 ~@31, ~@4 db6 ~@7]/3", // Bmaj7 Ab B
  D: "[gb3,b3,b4,eb5,gb5]@8 [ab3,db4,db5]@5 ~ [ab3,db4,db5]@2, b2@3 ~ [db3,f5,ab5]@4", // B Db5 Db
  E: "[db5,gb5,bb5]@2 [db5,ab5]@2 [db5,gb5]@3 [db3,bb5], gb3@7 ~", // Gb Db5 Gb5 Gb
  F: "b2@2 ~ b2 [db5,f5,bb5]@2 ~ db3, [b4,eb5,gb5]@7 ~ db3@6 ~@2, ~ b5 ~ [db5,f5,ab5]", // Bbm B Db
  G: "[[bb4,eb5,gb5]@4 [bb4,eb5]@4 ~@4 bb3@4 gb4@4 ~@2 b2@2 ~@4 db4@4 [gb3,bb4,gb5]@4 [db3,f5,ab5]@4 ~@3 eb4@3 bb3 ~ [gb4,b4]@2 ~@2 gb5@2 b2@2 ab5@4 bb5@2 [db3,ab5]@2, eb3@16 [b2,b4]@7 ~ [db3,ab4]@6 ~@10 [eb3,bb4,gb5]@8 b2@6 ~@2 [db3,db5,f5]@7 ~, ~@4 gb5@16 ~@4 f5@8 ~@8 eb5@11 ~@13, ~@4 eb4@6 bb4 eb5@12 ~ db5@15 ~@25, ~@2 gb4@2 ~ [gb4,gb5] ~@7 [b3,eb5,b5] ~@2]/4", // Ebm Eb5 Gb Db B5 Db5 B Db5 …
  H: "~@4 bb5@3 ~ bb5@3 ~@3 [eb3,bb4]@2, [eb3,bb4]@13 eb5@2 ~, [eb5,gb5]@11 gb5@4 ~", // Eb5 Ebm
  I: "b2@3 b2 [db3,ab4,db5,f5]@3 db3, [b4,eb5,gb5] ~", // Db B
  J: "[~@2 bb4 ~ bb4 ~ bb4 ~ bb4@2 ab4 ~ ab4 ~ ab4 ~ ab4@2 gb4 ~ gb4 ~ f4@3 ~ f4 ~ f4@2 ~@2, [eb3,eb5], gb4 ~]/2", // Eb
  K: "[gb4,bb4] [f4,ab4], db4", L: "~ eb4 f4 gb4 bb4 ab4 gb4 f4 ~@2 f4 gb4 bb4 ab4 gb4 f4, ~@9 eb4@2 ~@5",
  M: "ab4 gb4, [eb4,b4]", N: "~ db4 eb4 f4 ab4 gb4 f4 eb4 f4 eb4 db4 b3 db4 b3 bb3 ab3",
  O: "~@4 db4@4 db4 ~ ab4 ~ db5 ~ ab5 ~, [gb3,bb3] [f3,ab3]", // Gb Fm
  P: "[gb3,bb3,gb5]@3 gb5 [f3,ab3,f5]@3 f5 gb5@2 eb5 gb5 gb5@4, ~ [eb3,gb3]", Q: "[b3,eb4,gb4] [db4,f4,ab4]",
  R: "bb4 ~ bb4 ~ bb4 ab4 gb4 bb4 ab4 gb4 bb4 ab4 gb4 bb4 ab4 gb4, [bb3,eb4]", S: "[gb4,b4,eb5] [ab4,db5,f5]",
  T: "~@4 gb5@3 f5, [gb4,db5], bb4@7 ~", U: "[gb4,b4,eb5]@8 f5@4 f5 f5@2 ~, ~ [ab4,db5]",
  V: "[eb5 ~@3 eb5 ~@3 eb5 ~ eb5 ~ eb5 ~ db5@2 eb5@4 eb5@3 ~ [ab4,db5]@6 ab5@2, gb4@23 ~@9, bb4@2 b4 ~, ~@14 eb5 ~@8 f5@7 ~@2]/2", // Db5
  W: "[gb5,bb5]@3 ~ f5@4 [bb4,eb5,gb5]@8, db5@7 ~@9, ~@3 ab5@5 ~@8", // Gb Ebm
  X: "[eb5@5 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2 db5@2 eb5@4 eb5@4 [f4,ab4]@8 bb4@16 eb5@8 [f4,ab4,db5]@8, gb4@23 ~@9 gb4@23 ~@9, bb4@8 b4@4 db5@12 b4@3 ~@5]/4", // Fm Db
  Y: "[~@2 [eb4,bb4] ~ [eb4,bb4] ~ [eb4,bb4] ~ [eb4,bb4]@2 [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4] ~ [eb4,ab4]@2 [eb4,gb4] ~ [eb4,gb4] ~ [eb4,f4]@3 ~ [eb4,f4] ~ [eb4,f4]@2 ~@2, eb5@5 ~@3, gb4 ~]/2", // Eb5 Ab5 Ebm Ebsus2
  Z: "~ gb4 ab4 bb4 db5 b4 bb4 ab4!2 f4 gb4 ab4 b4 bb4 ab4 gb4, db4, [gb3,bb3,gb5] [f3,ab3,f5]", // Gb Fm
  AA: "gb4 eb4 f4 gb4 bb4 ab4 gb4 f4 ~@2 f4 gb4 bb4 ab4 gb4 f4, [eb3,gb3,bb3,eb5], ~@9 eb4@2 ~@5", // Ebm
  AB: "~ ab4 bb4 b4 eb5 db5 b4 bb4 ~ ab4 bb4 b4 db5 [bb4,b4] ~ ab4, [eb3,ab3,b3,ab5] [gb3,b3,eb4,b5]", // Bmaj7 Abm B
  AC: "ab4 gb4 f4 eb4 f4 eb4 db4 b3 eb4 db4 eb4 db4 b3 db4 bb3 ab3, db6, ab3@3 ~, db4 ~@3",
  AD: "~ gb4 ab4 bb4 db5 b4 bb4 ab4!2 f4 gb4 ab4 b4 bb4 ab4 gb4, db4, [gb3,bb3,gb5] [f3,f5]", // Gb F
  AE: "~@2 f4 gb4 bb4 ab4 gb4 f4!2 ~ eb4 f4 ab4 gb4!2 f4, [gb3,b3,b4] [f3,ab3,db5], ~ eb4@2 eb4@5 ~ db4@2 ~ db4@4", // B5 Db
  AF: "eb4 [bb2,bb3] ~ [gb3,gb4] [eb3,eb4] ~ [bb3,bb4] [gb3,gb4] ~ [eb4,eb5] [bb3,bb4] [eb4,eb5] [gb4,gb5] [f4,f5] [eb4,eb5] [f4,f5], eb5 gb3, bb4@2 ~ eb3@5, ~@3 [bb3,bb4]", // Bb Gb Eb Bb Gb Eb Bb Eb …
  AG: "[gb3,b3,eb4,gb4,b4,gb5] [ab3,db4,f4,ab4,ab5]", // B Db
  AH: "~@2 db4 gb4 bb4 gb4 db4 gb4 bb4 gb4 db4 gb4 db4@2 db4 bb3, bb5, bb3@3 ~", AI: "[eb4,gb4,b4] [db4,f4,ab4,db5]",
  AJ: "~ bb3 gb4 bb4 f4 bb4 gb4 ab4 bb4 ~ ab4 gb4 ab4@2 gb4 f4, [eb4,eb5] [db4,db5], ~ bb3 ~@2", // Eb Db
  AK: "[b3,eb4,gb4,b4,gb5]@8 ab5@4 ab5 bb5 ab5 f5, ~ [db4,f4,ab4,db5]", // B Db
  AL: "db5 gb5 db5 gb5 bb5@2 db5 bb5 ab5@2 eb5 gb5 eb5 gb5 f5 gb5, [db4,gb4,bb4] [eb4,gb4,bb4]", // Gb Ebm
  AM: "[b3,eb4,gb4,eb5] [db4,f4,ab4,db5]", // B Db
  AN: "~ eb4 f4 gb4 bb4 ~ ab4 ~@2 bb4 f5 bb4 eb5 f5!2 gb5, bb3, eb5@11 ~@5, ~ eb4@3",
  AO: "[b3,eb4,gb4,b4,eb5,gb5] [db4,ab4,db5,f5,ab5]", // B Db
  AP: "~@2 db4 gb4 bb4@2 ab4 gb4 ab4 gb4 ~ bb4@2 ab4 gb4 f4, [db5,gb5,bb5], ~ db4@3", // Gb
  AQ: "[eb4,gb4,b4,eb5,gb5] [db4,f4,ab4,db5,f5,ab5]", // B Db
  AR: "~ eb4 f4 gb4 bb4 ab4 gb4 f4 ~ eb4 f4 gb4 ab4 gb4 f4 eb4, [eb5,gb5]", // Ebm
  AS: "~@2 db4 gb4 ab4 bb4 db5 bb4 eb5@4 db5@4, bb5 ab5 gb5@2",
  AT: "~ bb3 gb4 f4 gb4 ab4 bb4 ~ bb4 eb5 f5 eb5 f5 eb5 f5 gb5, eb4, [eb5,gb5] ~", // Ebm
  AU: "[eb4,eb5]@4 b4 gb4 eb4 db4 [f4,ab4,db5,ab5]@8, [b3,gb5] ~", // Eb Db B5
  AV: "~ eb4 f4 gb4 bb4 ab4 gb4 f4 ~ eb4 f4 gb4 ab4 gb4 f4 eb4, [bb3,eb5,gb5]", // Ebm
  AW: "~@2 [gb4,bb4] ~ [gb4,bb4] ~ [gb4,bb4] ~ [gb4,bb4]@2 [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~", // Gb Fm
  AX: "[f4,ab4]@2 [eb4,gb4] ~ [eb4,gb4] ~ [d4,f4]@3 ~ [d4,f4] ~ [d4,f4]@3 ~", // Fm Ebm Dm
  AY: "~ gb4 ab4 bb4 db5 b4 bb4 ab4!2 [f4,gb4] ab4 b4 bb4 ~ [gb4,ab4] gb4, gb3 f3", // Gbmaj7 Gbsus2
  AZ: "~ eb4 f4 gb4 bb4 ab4 gb4 f4 eb4 f4 gb4 ab4 bb4 ab4 gb4 f4, eb3",
  BA: "~ ab4 bb4 b4 eb5 db5 b4 bb4 b4 ab4 bb4 b4 db5 b4 bb4 ab4, ab3 b3",
  BB: "ab4 gb4 f4 eb4 gb4 f4 eb4 db4 f4 eb4 db4 eb4 db4 b3 bb3 ab3, db4@7 ~@9",
  BC: "~ eb4 f4 gb4 bb4 ab4 gb4 f4!2 db4 eb4 f4 ab4 gb4!2 f4, b2 db3",
  BD: "eb4 bb3 ~ gb4 eb4 ~ bb4 gb4 ~ eb5 bb4 eb5 gb5 f5 eb5 f5, eb3",
  BE: "~ gb4 ab4 bb4 db5 b4 bb4 ab4!2 [f4,gb4] ab4 b4 bb4 ~ [gb4,ab4] gb4, [gb3,gb5] [f3,ab5]", // Gbmaj7 Gbsus2 Gb Fm
  BF: "~ eb4 f4 gb4 bb4 ab4 gb4 f4 eb4 f4 gb4 ab4 bb4 ~@3, eb3, bb5 ~",
})).s("gm_string_ensemble_2").gain(0.42)

// chords · piano
const piano = note(`<
  ~ A B C D ~@7 E F G H I J K L M N O P Q R S T U V W ~ J X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT@2 AU AV AW ~ AX AY AZ BA BB B BC BD BE BF BE BG BH BI@2 BJ BK BL BM BN BO BP BQ BR BS BT BU BV@2 BW BX BY BZ ~@6
>`.pickRestart({
  A: "[db5,gb5]@3 db5 [ab4,db5]@4, bb4 ~, ~@6 gb5 ~ f5@6 ~@2", B: "[gb4,bb4,eb5]",
  C: "[ab4,b4,eb5] [gb4,b4], ~@4 eb5@3 ~", D: "[f4,ab4,db5]@15 ~", E: "[eb3,gb3,bb3,eb4]@3 ~",
  F: "[gb4,bb4,db5]@8 [f4,ab4,db5]@7 ~", G: "gb4@5 f4 gb4 eb4, bb4@15 ~, eb4@13 ~@3",
  H: "[eb4,ab4,b4] [eb4,gb4], ~@4 b4@3 ~", I: "[db4,f4,ab4]@7 ~", J: "[db4,gb4,bb4] [db4,f4,ab4]",
  K: "[db4,gb4,bb4] [db4,f4,ab4] [b3,eb4,ab4] [bb3,eb4,gb4]", L: "[b3,eb4,gb4] [db4,f4,ab4]",
  M: "[eb4,gb4]@3 ~ [eb4,gb4]@2 ~ [eb4,gb4]@2 ~@2 ab4 bb4 ab4 gb4 ~, bb3@6 bb3@2 ~ bb3@6 ~, ~@10 [eb4,gb4]@2 ~ eb4@2 ~", // Ebm
  N: "[b3,gb4]@4 [eb4,gb4]@2 b3@2 [f4,ab4]@6 ~ f4, eb4@3 ~@11 db4@2", O: "~@3 db4 [db4,bb4]@4, [gb4,bb4]@8 gb4@5 ~@3",
  P: "~ b3@3 [db4,ab4]@2 [db4,ab4]@2, [eb4,gb4] ~ f4@2", Q: "[bb3,eb4,gb4]@8 bb3@3 [eb4,gb4]@3 bb3@2",
  R: "[b3,eb4,gb4]@5 ~ [eb4,gb4]@2 [db4,f4,ab4]@6 [db4,f4,ab4]@2, ~@6 b3 ~@9", // B Ebm Db
  S: "[gb4,bb4]@4 [f4,ab4]@3 ~ [bb3,eb4]@6 ~@2, db4@7 ~ gb4@8", T: "[gb3,b3,eb4]@4 gb3@3 ~ [ab3,db4,f4]@4 ab3@2 ~@2",
  U: "[gb4,bb4]@3 ~ [gb4,ab4,bb4]@2 eb4@2 [gb4,ab4,bb4]@2 ~ bb4@2 ab4 gb4@2, ~@10 eb4@3 ~@3, ~@11 ab4 ~@4", // Gb
  V: "[b3,eb4,gb4]@4 [eb4,gb4]@2 b3@2 [db4,ab4]@3 ~ [db4,f4,ab4]@4", W: "[bb3,eb4,gb4]@3 ~@5",
  X: "[eb4,gb4,bb4]@8 ~@4 db5 eb5@3", Y: "[ab4,b4,eb5]@4 [ab4,b4]@2 ~@2 eb4@4 eb4@3 ~, ab2 [b2,gb4,b4], ~ eb5 ~@2",
  Z: "[db4,f4,ab4]@7 ~ [db4,f4]@2 ~ f4@2 b4 db3@2, db3@14 bb4 ~, ~@8 eb5 ~@2 [db4,db5]@4 ~", // Db
  AA: "[gb3,gb4,bb4]@2 ~ gb3 [db3,db4,f4,ab4]@2 [db4,f4,ab4] db3, db4@3 ~ [db4,gb4,db5]@4 ~@8", // Gb Db Gb5
  AB: "~@4 bb4@4 bb4@3 bb4@2 ~ db3@2, [eb4,gb4]@13 ab4@2 ~, [eb3,bb3]@7 ~ [eb3,bb3]@6 gb4 ~", // Ebm Eb5
  AC: "[b3,eb4,gb4]@3 ~@2 gb4@3 [db4,f4,ab4]@4 ~@2 db3@2, b2@8 db3@5 f4@3, ~@2 [b3,eb4]@2 ~@2 db4 ~", // B Db B
  AD: "[bb3,eb4]@4 ~@2 eb3 ~@5 [bb3,eb4,gb4,bb4]@3 ~, eb3@3 ~ eb3@3 ~, ~ [bb3,eb4,gb4,bb4]@2 ~", // Eb5 Ebm
  AE: "bb4@2 bb4@2 [f4,ab4]@2 [f4,ab4] [db3,db4], [gb2,db4,gb4]@4 db3@3 ~", // Fm Db Gb5
  AF: "~@8 eb3@4 bb4 ~ [eb3,bb4]@2, [eb4,gb4,bb4]@11 ~@5, eb3@7 ~@9, ~@4 bb3@7 ~@5", // Eb5 Ebm
  AG: "[eb4,ab4,b4]@4 ~ ab4@3 [b2,eb4,bb4]@4 ~@2 b2@2, ~ [eb4,b4] ~ [eb4,gb4]", // Abm Bmaj7 Abm Ebm
  AH: "[db3,db4,f4,ab4]@8 [db4,f4,ab4]@3 db4@2 ~ [db3,ab4]@2, ~@8 db3@5 f4@2 ~", // Db Db5
  AI: "gb2@3 gb2 [db3,f4,ab4]@3 [db3,db4,f4,ab4], db4@13 ~@3, [gb4,bb4] ~", // Db Gb
  AJ: "[gb3,db4,gb4,bb4]@4 [db4,f4,ab4]@4 [eb4,gb4]@6 [eb4,gb4] ~", // Gb Db Ebm
  AK: "[b2,b3,gb4]@6 [b2,gb4]@2 [db3,db4,ab4]@4 f4 ~ db3@2, eb4@8 f4@3 ~@5, ~@6 b3 ~@6 db4@2 ~", // B5 Db5
  AL: "bb3@3 ~ [bb3,bb4]@3 ~ [bb2,bb3,eb4,bb4]@2 ab4 [bb2,gb4,bb4]@2 ~ [bb2,gb4] ~, gb4@11 [bb3,eb4]@4 ~, [bb2,eb4]@8 ~@5 ab4@2 ~", // Bb Eb5 Ebm Eb5
  AM: "[eb4,gb4]@3 ~ [b3,eb4]@2 b2@2 [db3,db4,f4,ab4]@6 [db4,f4,ab4]@2, b2@3 ~@5, ~ gb4 ~@2", // Ebm B Db
  AN: "[db4,gb4,bb4]@6 ~ bb4@5 db5@3 ~, ~@6 db4@9 ~, ~@7 gb4@8 ~", // Gb
  AO: "[eb4,gb4]@3 eb4 [db4,f4,ab4]@2 db4 [f4,ab4], b4 ~, bb4 ~@15", // Ebm Db Fm
  AP: "[eb4,gb4,bb4]@10 ~ [eb4,bb4]@4 gb4, ~@11 gb4@3 ~@2", // Ebm Eb5
  AQ: "[b3,eb4,gb4]@4 [eb4,gb4]@2 b3@2 [f4,ab4]@4 [f4,ab4] ~ f4 ab4, ~@13 db4@2 ~", // B Ebm Fm
  AR: "[db4,gb4,bb4] [db4,f4,ab4] [bb3,eb4,gb4]@2", AS: "eb4@4 eb4@4 [db4,f4,ab4]@7 ~, [b3,gb4] ~",
  AT: "[[eb4,gb4,bb4]@4 [eb4,gb4,bb4] ~@2 bb4@4 [eb4,gb4,bb4]@2 ~@3 eb4@8 [db4,f4,ab4]@6 [db4,f4,ab4]@2, ~@5 ab4@2 ~@6 ab4@2 ~ b3@6 ~@10, ~@6 [eb4,gb4]@5 ~@3 gb4@10 ~@8]/2", // Ebm Db Ebm
  AU: "[db4,gb4,bb4]@8 [db4,gb4,bb4]@3 [db4,gb4,bb4]@3 [db4,f4] ~, ~@7 ab4", // Gb Db
  AV: "[b3,eb4,gb4]@8 [f4,ab4]@3 [f4,ab4]@5, ~ db4", AW: "[bb3,eb4,gb4]@3 ~", AX: "[gb4,bb4,db5]@7 ~ [ab4,db5,f5]@8",
  AY: "[bb4,eb5,gb5]", AZ: "[ab4,b4,eb5] [gb4,b4,eb5]",
  BA: "[ab4,db5,f5]@7 ~ [ab4,ab5]@3 [bb4,bb5]@3 ab4@2, f4@14 ab5 ~", BB: "[gb4,bb4,db5,gb5]@8 [ab4,db5,f5]@7 ~",
  BC: "[gb4,b4,eb5] [ab4,db5,f5]", BD: "[gb4,bb4,eb5]@7 ~", BE: "[b4,eb5,gb5]@8 [db5,f5,ab5]@7 ~",
  BF: "bb5@11 bb5@3 ab5@2, [db5,gb5]@7 ~", BG: "[gb4,bb4,eb5]@11 [gb4,eb5]@2 ~ gb4@2, ~@14 eb5 ~",
  BH: "[gb4,b4,eb5]@3 ~ [b4,eb5]@2 gb4@2 f5@4 f5@2 ab4@2, ~@4 gb4 ~@3 db5@6 ~@2", // B
  BI: "[[db5,gb5] bb4 [db5,gb5] bb4 [bb4,eb5] gb4 [bb4,eb5] ~ [b4,eb5]@4 [f4,ab4,db5]@4, ~@14 gb4@9 ~@9]/2", // Gb5 Eb5 B Db
  BJ: "[eb4,gb4,bb4]@13 ~@3", BK: "[gb4,b4,eb5]@8 [ab4,db5,f5]@7 ~",
  BL: "[bb4,db5,gb5]@9 ~@2 [bb4,bb5]@2 [ab4,ab5] [gb4,gb5,ab5] [f4,f5]", BM: "[eb4,eb5]@3 ~ [ab4,db5,f5]@3 ~",
  BN: "~@3 eb2 eb3@3 ~@9, [gb4,bb4,eb5]@9 ~@7", // Ebm
  BO: "[b1,b2,b5]@4 [eb5,gb5,b5]@2 ~@2 [f5,ab5,db6]@3 [f5,ab5,db6]@2 f6 db2@2, [eb5,gb5]@3 ~@5 db2@6 ~@2", // B Db Ebm
  BP: "[db6,gb6,bb6] ~ [db6,gb6]@2 [db6,f6,ab6]@2 ~@2 [bb5,eb6,gb6]@3 ~ eb6@2 eb6 ~, gb2@2 bb6 ~@8 [bb5,f6]@3 ~@2", // Gb Gb5 Db Ebm Bb5
  BQ: "[gb5,b5,eb6]@8 [f5,ab5,db6]@7 ~", BR: "[eb5,gb5,bb5]@7 ~",
  BS: "[b2,gb4]@3 b2 [db3,ab4,db5,f5]@3 db3, [b4,eb5] ~", // B5 Db B
  BT: "[eb5,gb5,bb5]@3 ~ [eb5,gb5,bb5]@3 ~ [eb5,gb5] ~@2 bb6@2 ~ gb6 f6, eb2, ~@8 bb5@2 ~@3 ab6@2 ~", // Ebm
  BU: "[b1,b5,eb6]@6 b1@2 [f5,ab5,db6]@5 ~@3, ~ db2", BV: "[[gb4,bb4,eb5]@9 ~@7, eb2@9 ~@23]/2",
  BW: "[db5,gb5,bb5] [db5,f5,ab5]", BX: "[bb4,eb5,gb5]@13 ~@3", BY: "[eb5,b5]@3 ~ [eb5,gb5]@4, ab5@4 b5@3 ~",
  BZ: "[db5,f5,ab5]@7 ~", // Db
})).s("gm_piano").gain(0.46)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C D ~@7 E A F G H A I J K J L M N O P J Q J R@2 A S C T A U J V A S W T A I X Y J Z M N O P X AA X AB X R@2 A S
  W T AC AD X E AE AF AG AH X P AI AA AE AF AJ N AK P X AL X Q X R@2 ~@10
>`.pickRestart({
  A: "gb2 f2", B: "eb2@7 eb1", C: "ab1@3 bb1 b1@4", D: "db2 ~", E: "eb2", F: "eb2@8 eb2 ~ eb1@4 gb1@2", G: "ab1 b1",
  H: "db2@7 ab2", I: "eb2 db2 b1 bb1", J: "b1 db2", K: "eb2@3 eb2!5", L: "gb1@3 bb1", M: "b1@4 db2@3 db2",
  N: "eb2@3 eb2 db2@2 db2@2", O: "b1@3 b1 db2@3 ab2", P: "gb2 f2 eb2 db2", Q: "eb2@7 bb1 eb2 bb1 eb2@4 db2@2",
  R: "eb2/2", S: "eb2@4 eb2 eb1@2 gb1", T: "db2@4 db2 db2@3", U: "eb2@4 eb2 eb2@2 db2", V: "eb2@4 eb2!4",
  W: "ab1@3 bb1 b1@3 eb2", X: "b1@3 b1 db2@3 db2", Y: "eb2@3 eb2!4 db2", Z: "gb2@2 gb1 bb1",
  AA: "eb2@7 bb1 eb2@6 db2@2", AB: "gb2@7 db2 gb2 db2 gb2@4 db2@2", AC: "gb2@3 gb2 f2@3 db2",
  AD: "eb2@3 eb2 eb2@2 db2@2", AE: "b1@3 b1 db2@3 db1", AF: "gb1@7 db1 gb1@4 bb1@4", AG: "b1@6 b1@2 db2@6 db2!2",
  AH: "eb2@3 eb2 db2@3 db2", AI: "b1@6 b1@2 db2@6 db2 bb1", AJ: "b1@6 b1@2 db2@6 db2 ab1",
  AK: "b1@6 b1@2 db2@6 ab2 db2", AL: "eb2@6 eb2 bb1 eb2@2 f2@2 gb2 f2 eb2 db2",
})).s("gm_electric_bass_finger").gain(0.52)

// other · acoustic guitar steel · "Drill guitar"
const acoustic_guitar_steel_2 = note("<~@6 A B C ~ A ~@3 A B C ~@16 A B C ~@64>".pickRestart({
  A: "~@8 ab3 ~ ab3 ~ [gb3,ab3] ~ eb3@2", B: "eb3 ~@3", C: "~@8 gb5 f5 db5 f4@2 b4 f4@2",
})).s("gm_acoustic_guitar_steel").gain(0.27)

// chords · overdriven guitar
const overdriven_guitar = note("<~@24 A ~ B ~@24 A ~ B ~@7 C D E F C ~@14 A ~ B ~@3 G ~@13>".pickRestart({
  A: "~@3 f4", B: "~ eb4", C: "b4", D: "~@15 bb4", E: "db5 ~@7 db5@8", F: "b4@15 ~", G: "eb4",
})).s("gm_overdriven_guitar").gain(0.25)

// chords · percussive organ · "Organ"
const percussive_organ = note(`<
  ~ A B C D ~@7 E F G H I J K L M N O@2 P N Q@2 R@2 M ~ S G T U V W X Y F G H I J K L M N O@2 P N Q@2 R@2 Z N AA@2 AB P
  AC AD@2 AE@2 AF AG@3 AH AI@3 G N O@2 P N Q@2 R@2 AJ N AJ ~@11
>`.pickRestart({
  A: "[db5,gb5]@3 db5 [ab4,db5]@4, bb4 ~, ~@6 gb5 ~ f5@6 ~@2", B: "[gb4,bb4,eb5]",
  C: "[ab4,b4,eb5] [gb4,b4], ~@4 eb5@3 ~", D: "[f4,ab4,db5]@15 ~", E: "[eb3,gb3,bb3,eb4]@3 ~",
  F: "[gb4,bb4] [f4,ab4], db5", G: "[eb4,gb4,bb4]", H: "ab4 gb5, [b4,eb5]", I: "[db5,f5,ab5]",
  J: "[gb5,bb5] [f5,ab5], db5", K: "[gb5,bb5] [f5,ab5] b4 [bb4,gb5], db5 eb5", L: "[eb5,gb5,b5] [db5,f5,ab5]",
  M: "[bb4,eb5,gb5] ~", N: "[b4,eb5,gb5] [db5,f5,ab5]", O: "[[bb5,db6]@2 [b4,eb5] [db5,f5,ab5], gb5@3 ~]/2",
  P: "[bb4,eb5,gb5]", Q: "[[db5,gb5,bb5] [db5,f5,ab5] [bb4,eb5]@2 [b4,eb5]@2 [db5,f5,ab5]@2, ~ gb5@2 ~]/2",
  R: "[[gb5,bb5]@2 [b4,gb5] [db5,f5,ab5], eb5@3 ~]/2", S: "bb4 [f4,ab4], db5, gb4@7 ~@9", T: "ab4 gb4, [b4,eb5]",
  U: "[ab4,db5,f5]", V: "[bb4,gb5] [f5,ab5], db5", W: "[eb5,gb5,bb5]", X: "[b4,eb5,gb5] [ab4,db5,f5]",
  Y: "[gb4,bb4,eb5]@15 ~", Z: "[db5,gb5]", AA: "[eb5,gb5]/2", AB: "[db5,gb5,bb5] [db5,f5,ab5]",
  AC: "[ab4,b4,eb5] [gb4,b4,eb5]", AD: "[[f4,ab4]@2 [bb4,gb5] [f5,ab5], db5]/2",
// … 89 more lines

More by Bon Jovi