Strudelify

Give Me One Reason

Tracy Chapman

KeyF♯ majorTempo102 bpm
0:00/0:00
// Give Me One Reason — Tracy Chapman
// 102 bpm, 4/4, key F# 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: duplicate parts dropped: ch 8 "Jazz Guitar Lead" electric guitar jazz (copy of ch 9 "Lead Room Reverb" electric guitar jazz, 0.083 beats early)
// note: Full arrangement: all 113 bars on a 32-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): Jazz Electric Guitar.
setcpm(102/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 · electric guitar jazz · "Jazz Electric Guitar"
const electric_guitar_jazz = note(`<
  ~@2 A ~ B@2 C D E ~ F ~ G H I ~ J K L ~@3 M N O ~ P ~ Q@2 ~ R S@2 ~@2 T ~@2 U ~ V W X Y Z AA ~ AB ~ AC AD AE AF ~@2 AG
  AH ~@2 AI@2 AJ AK ~@2 AL ~ AM ~@13 AN ~@6 AO AP ~ AQ AR ~ AS AT ~ AU ~@2 AV ~ AW AX AY AZ BA@2 BB ~ BC ~
>`.pickRestart({
  A: "~@12 c#2 ~@3", B: "[~@31 [f#1,f#2]@2 ~@12 c#3@2 ~@7 b1@9 ~]/2", C: "~@8 [b2,d#3,f#3] ~@7", D: "~@3 c#2 ~@12",
  E: "~@5 [a#2,c#3,f#3]@2 ~@25", F: "~@4 c#2@9 ~@19", G: "~@10 [f#1,f#2]@9 [a#2,c#3,f#3]@2 ~@11",
  H: "~ [f#1,f#2]@4 ~@18 [a#2,c#3,f#3]@2 ~@7", I: "~ [f#1,f#2] ~@6", J: "c#2@2 ~@11 [c#3,f3,g#3]@2 ~@17",
  K: "~@3 f#1 ~@4", L: "~ [a#2,c#3,f#3] ~@14", M: "~@6 [a#2,f#3] ~@9", N: "~@19 c#2@2 ~@11", O: "~@11 b1 ~@4",
  P: "~@2 f#1@4 ~@17 [a#2,c#3,f#3]@2 ~@2 f#1@2 ~@3", Q: "[~@19 b1@9 ~@3 c#2@2 ~@31]/2", R: "~@3 f#1@2 ~@27",
  S: "[~@14 b1@4 ~@9 b1@9 ~@28]/2", T: "~@13 c#2@2 ~@7 c#2@4 ~@6", U: "~ e1 ~@14", V: "~@11 c#2 ~@4",
  W: "~@11 f#1@8 ~@13", X: "~@2 [c#3,f#3] ~@13", Y: "~@5 a1 ~@10", Z: "~@3 b1@4 ~@21 c#2@2 ~@2", AA: "~@2 f#1 ~",
  AB: "~@7 f#1@4 ~@21", AC: "~@13 [b2,d#3,f#3]@2 ~@17", AD: "~@21 f1@2 ~@9", AE: "~@6 [a#2,c#3] ~@5 f#1@4",
  AF: "~@5 f#1@2 ~@25", AG: "~ [a#2,c#3] ~ f#1 ~@12", AH: "~@7 b1", AI: "[~@29 c#2@8 ~@13 c#2@4 ~@10]/2",
  AJ: "~@23 [b2,d#3,f#3]@2 ~@7", AK: "~@7 [f#2,a#2,c#3]@2 ~@23", AL: "b1@3 ~@13", AM: "~@5 [a#2,c#3] ~@2",
  AN: "~@5 g#3 ~@2", AO: "~@27 a1@2 ~@3", AP: "~@7 [b2,f#3]@2 ~@13 [c#3,f3,g#3]@2 ~@8",
  AQ: "~@5 [a#2,c#3,f#3]@2 ~@2 f#1@2 ~@6 a#2@4 ~@11", AR: "~@17 b1@3 [b2,d#3,f#3]@2 ~@10",
  AS: "~@4 [f#2,a#2,c#3,f#3]@2 ~@9 f#1@4 ~@13", AT: "~@15 f#1@4 [a#2,c#3]@2 ~@2 a1@2 ~@7", AU: "~@17 f#3@2 ~@13",
  AV: "[a#2,c#3] ~@15", AW: "~@5 f#1@2 ~@3 f1 ~@5", AX: "~@5 [a#2,c#3]@2 ~@9", AY: "~ b1@2 ~@29",
  AZ: "~@6 [c#3,f3,g#3] ~@9", BA: "[~@31 f#1@2 ~@31]/2", BB: "~@14 c#2@3 ~ b1@3 ~@11", BC: "~@21 c#3@3 ~@8",
})).s("gm_electric_guitar_jazz").gain(0.24).pan(1)

// chords · electric guitar jazz · "Jazz Electric Guitar" · soft notes
const electric_guitar_jazz_2 = note(`<
  A ~@9 B ~@18 C ~@24 D ~@7 E ~@9 F ~@5 G ~@3 H ~@5 I ~ J ~ K ~@15 L ~@4
>`.pickRestart({
  A: "~@13 [e1,e2]@2 ~", B: "~@26 c#2@5 ~", C: "~@21 g#1@2 ~@9", D: "~@11 e1 ~@4", E: "~@27 e1@2 ~@3",
  F: "~@5 [a#2,c#3] ~@2", G: "~@5 [f3,g#3] ~@2", H: "~@5 [c#3,f3] ~@2", I: "~@6 e1 ~@9", J: "~@7 d#3@2 ~@23",
  K: "~@17 c#3@4 ~@11", L: "~@7 f#1@4 ~@21",
})).s("gm_electric_guitar_jazz").gain(0.12).pan(1)

// chords · electric guitar jazz · "Jazz Electric Guitar"
const electric_guitar_jazz_3 = note(`<
  A@3 B C D E F@2 G H I J K L M N O P@3 Q@2 R S@2 T U V W X Y Z AA@3 AB AC AD AE AF AG@2 AH AI AJ AK AL AM AN AO AP@2 AQ
  AR AS@3 AT@7 AU@2 AV AW AX AY AZ BA BB BC BD BE BF BG AZ AW AX BH BI BJ BB BK BI BL@8 BM BN BO BP BQ BR BS BT BU BV BW
  BX BY@2 BZ CA@2
>`.pickRestart({
  A: "[~@27 [e1,e2]@4 e2@4 [e1,e2]@4 ~ [f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@8 f#2@4 [a#2,c#3,f#3] ~@4 a1 ~@3 b1@9 [b2,d#3,f#3] ~@4 c#2@2 ~@5]/3", // E F# B
  B: "~ [c#3,f3,g#3]@5 [c#3,f3,g#3] ~@3 [e1,e2]@2 ~@3 [f#1,f#2]@9 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@3", // C# E F#
  C: "~@5 [f#1,f#2]@4 [a#2,c#3,f#3] ~@4 [e1,e2] ~@3 [f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@4", // F# E F#
  D: "[f#1,f#2] ~@7 f#3@4 c#3 [a#2,f#3] ~@3 a1 ~@3 b1@9 [b2,d#3,f#3] ~", // F# D#m B
  E: "~@3 b1 ~@8 b1@4 ~ [b2,d#3,f#3] ~@3 a1 ~@3 b1@7", // B
  F: "[~@2 [b2,d#3,f#3] ~@4 c#2 ~@7 [c#3,f3,g#3]@5 [c#3,f3,g#3] ~@3 e1 ~@4 [f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@8 [f#1,f#2]@4 [a#2,c#3,f#3] ~@4 e1@2 ~@2]/2", // B C# F#
  G: "[f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@7 [f#1,f#2]@4 ~ [a#2,c#3,f#3] ~@3 a1", // F#
  H: "~@3 c#2@8 ~ [c#3,f3,g#3] ~@4 c#2 ~@7 c#2@5 [c#3,f3,g#3] ~", I: "~@3 a1 ~@3 b1@9 [b2,d#3,f#3] ~@3 b1@2 ~@7 b1@3",
  J: "~@2 [b2,d#3,f#3] ~@3 [e1,e2]@2 ~@3 [f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6", // B E F#
  K: "[f#1,f#2]@4 ~ [a#2,c#3,f#3] ~@3 e1@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@4 [f#1,f#2]@2 ~@3", // F#
  L: "~@3 [f#1,f#2]@4 ~ [a#2,c#3,f#3] ~@3 [e1,e2]@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@4 f#2@2", // F# E F#
  M: "~@6 [f#1,f#2]@4 ~ [a#2,c#3,f#3] ~@3 a1 ~@3 b1@8 ~ [b2,d#3,f#3] ~@3", // F# B
  N: "~ c#2 ~@7 [c#3,f3,g#3]@5 [c#3,f3,g#3] ~@3 e1@2 ~@2 [f#1,f#2]@8 ~ [a#2,c#3,f#3]", // C# F#
  O: "~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@5 [a#2,c#3,f#3] ~@4 e1@2 ~@2 [f#1,f#2]@7", // F#
  P: "[~ [a#2,c#3,f#3] ~@4 [f#1,f#2] ~@12 [a#2,c#3,f#3] ~@3 a1 ~@4 b1@8 [b2,d#3,f#3] ~@4 b1 ~@7 b1@4 ~ [b2,d#3,f#3] ~@3 a1 ~@3 b1@8 ~ [b2,d#3,f#3] ~@3 c#2 ~@8 [c#3,f3,g#3]@4 [c#3,f3,g#3]@2 ~@3 [e1,e2]@2 ~]/3", // F# B C# E
  Q: "[~ [f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@4 e1@2 ~@2 [f#1,f#2]@8 c#3 [a#2,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 ~ [a#2,c#3,f#3] ~, ~@31 e2@2 ~@31]/2", // F# D#m F#
  R: "~@2 a1@2 ~@2 c#2@8 ~ [c#3,f3,g#3] ~@4 c#2@2 ~@6 c#2@4", // C#
  S: "[~ [c#3,f3,g#3] ~@3 a1 ~@3 b1@8 ~ [b2,d#3,f#3] ~@4 b1@2 ~@6 b1@4 [b2,d#3,f#3] ~@8 [f#1,f#2]@8 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@5]/2", // C# B F#
  T: "~ [f#1,f#2]@5 [a#2,c#3,f#3] ~@3 [e1,e2]@2 ~@3 [f#1,f#2]@9 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@2", // F# E F#
  U: "~@4 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 e1@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~", // F#
  V: "~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 a1@2 ~@2 b1@9 [b2,d#3,f#3] ~@4", // F# B
  W: "c#2@2 ~@6 [c#3,f3,g#3]@4 [c#3,f3,g#3] ~@3 e1@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@2", // C# F#
  X: "~ [f#1,f#2]@2 ~@7 f#2@4 [a#2,c#3,f#3] ~@3 [e1,e2] ~@4 [f#1,f#2]@8 [a#2,c#3,f#3]", // F# E F#
  Y: "~@4 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 a1 ~@4 b1@7", // F#
  Z: "~ [b2,d#3,f#3] ~@3 b1 ~@7 b1@5 [b2,d#3,f#3] ~@3 a1 ~ a#1@2 b1@6", // B
  AA: "[~@3 [b2,d#3,f#3] ~@3 c#2@2 ~@7 [f3,g#3]@4 [c#3,f3,g#3] ~@3 e1@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 e1@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@4 f#1@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 a1 ~@3, ~@75 f#2@2 ~@19]/3", // B Fm C# F#
  AB: "~ c#2@8 [c#3,f3,g#3] ~@4 c#2 ~@6 c#2@4 ~ [c#3,f3,g#3] ~@3 a1 ~", // C#
  AC: "~@3 b1@8 [b2,d#3,f#3] ~@3 b1@2 ~@7 [d#3,f#3]@4 [b2,d#3,f#3] ~@3", // B D#m B
  AD: "[e1,e2]@2 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~", // E F#
  AE: "~@3 e1 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@7 [f#1,f#2]@3 ~", // F#
  AF: "[a#2,c#3,f#3] ~@8 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 f#2@3", // F#
  AG: "[~@2 [a#2,c#3,f#3] ~@3 a1 ~@3 b1@8 [b2,d#3,f#3] ~@4 c#2@2 ~@6 [f3,g#3]@4 [c#3,f3,g#3] ~@3 [e1,e2]@2 ~@3 [f#1,f#2]@7 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6]/2", // F# B Fm C# E F#
  AH: "~@4 a#2 [c#3,f#3] ~@2 [e1,e2] ~@4 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 f#2 f#1 ~@5", // F#5 E F#
  AI: "~ [f#1,f#2]@4 ~ [a#2,c#3,f#3] ~@2 a1 ~@4 b1@8 [b2,d#3,f#3] ~@3 b1@2 ~@4", // F# B
  AJ: "~@2 b1@5 [b2,d#3,f#3] ~@3 a1 ~@3 b1@8 ~ [b2,d#3,f#3] ~@2 c#2 ~@4", // B
  AK: "~@4 [c#3,f3,g#3]@4 [c#3,f3,g#3] ~@3 [e1,e2] ~@4 [f#1,f#2]@7 ~ [a#2,c#3,f#3] ~@3 f#2@2 ~", // C# E F#
  AL: "~@5 [f#1,f#2]@4 [a#2,c#3,f#3] ~@8 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2", // F#
  AM: "~@6 [f#1,f#2]@4 ~ [a#2,c#3,f#3] ~@3 a1 ~@3 c#2@8 [c#3,f3,g#3] ~@4", // F# C#
  AN: "c#2 ~@7 c#2@4 [c#3,f3,g#3] ~@3 a1 ~@3 b1@8 ~ [b2,d#3,f#3] ~@2", // C# B
  AO: "~ b1 ~@7 b1@4 ~ [b2,d#3,f#3] ~@3 e1 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3]@2", // B F#
  AP: "[~@2 [f#1,f#2]@2 ~@7 [f#1,f#2]@4 [a#2,c#3,f#3]@2 ~@2 e1@2 ~@2 [f#1,f#2]@8 [a#2,c#3,f#3]@2 ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3]@2 ~@2 [e1,e2]@2 ~@3 [f#1,f#2]@7]/2", // F# E F#
  AQ: "[a#2,c#3,f#3] ~@3 [f#1,f#2] ~@8 f#1@4 [a#2,c#3,f#3] ~@3 a1 ~@3 b1@7, ~@3 f#2 ~@4", // F#
  AR: "~ [b2,d#3,f#3] ~@3 c#2 ~@7 [f3,g#3]@4 [c#3,f3,g#3] ~@3 e1 ~@4 [f#1,f#2]@6", // B Fm C# F#
  AS: "[~@2 [a#2,c#3,f#3] ~@3 f#1@2 ~@6 f#2@4 [a#2,c#3,f#3] ~@7 [f#1,f#2]@8 f#3 [a#2,c#3] ~@3 [f#1,f#2]@2 ~@6 f#2@4 [a#2,c#3,f#3] ~@3 a1 ~@3 b1@8 [b2,d#3,f#3] ~@3 b1@2 ~@6 b1@4 [b2,d#3,f#3] ~@3 a1 ~ a#1 ~ b1@5]/3", // F# A#m F# B
  AT: "[~@4 [b2,d#3,f#3] ~@3 c#2 ~@7 [c#3,f3,g#3]@4 [c#3,f3,g#3] ~@3 e1 ~@3 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@8 [f#1,f#2]@4 [a#2,c#3,f#3] ~@7 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@7 [a#2,c#3,f#3]@4 [a#2,c#3,f#3] ~@3 a1 ~@4 c#2@7 ~ [c#3,f3,g#3] ~@3 c#2 ~@6 c#2@4 ~ [c#3,f3,g#3] ~@3 a1 ~@3 b1@8 [b2,d#3,f#3] ~@3 b1@2 ~@6 b1@3 ~ [b2,d#3,f#3] ~@3 e1 ~@3 f#1 [f#1,f#2]@7 [a#2,c#3,f#3] ~@4 f#2 ~@7 f#2@3 ~ [a#2,c#3,f#3] ~@3 e1 ~ f1@2 f#1@8 ~ [a#2,c#3,f#3] ~@3 f#2 ~@7 f#2@3 ~ [a#2,c#3,f#3] ~@3 [e1,e2] ~@3]/7", // B C# F# C# B F# E
  AU: "[[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 a1 ~@2 b1@8 ~ [b2,d#3,f#3] ~@3 c#2 ~@7 [c#3,f3,g#3]@4 [c#3,f3,g#3] ~@3 e1 ~@3]/2", // F# B C#
  AV: "[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@7 [f#1,f#2]@3 ~ [a#2,c#3,f#3] ~@3 e1 ~@3", // F#
  AW: "[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 a1 ~@3", // F#
  AX: "b1@8 [b2,d#3,f#3] ~@3 b1 ~@7 b1@4 [b2,d#3,f#3] ~@3 a1 ~ a#1 ~", // B
  AY: "b1@8 [b2,d#3,f#3] ~@3 c#2 ~@7 [f3,g#3]@4 [c#3,f3,g#3] ~@3 e1 ~@3", // B Fm C#
  AZ: "[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 [e1,e2]@2 ~@2", // F# E
  BA: "[f#1,f#2]@8 [c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 a1 ~@3", // F# F#5 F#
  BB: "c#2@8 [c#3,f3,g#3] ~@3 c#2@2 ~@6 c#2@4 [c#3,f3,g#3] ~@3 a1 ~@3", // C#
  BC: "b1@8 [b2,d#3,f#3] ~@3 b1 ~@7 b1@3 ~ [b2,d#3,f#3] ~@3 e1 f1 ~@2", // B
  BD: "f#1@8 [a#2,c#3,f#3] ~@3 f#2 ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 e1 ~@3", // F#
  BE: "[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@7", // F#
  BF: "~@8 [f#2,a#2,f#3] ~@3 f#1@2 ~@6 f#2@4 [a#2,c#3,f#3] ~@3 a1 ~@3", // F#
  BG: "b1@8 [b2,d#3,f#3] ~@3 c#2@2 ~@6 c#2@4 [c#3,f3,g#3] ~@3 e1 ~@3", // B C#
  BH: "b1@8 [b2,d#3,f#3] ~@3 c#2@2 ~@5 c#2@4 ~ [c#3,f3,g#3] ~@3 [e1,e2] ~@3", // B C# E
  BI: "[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 [e1,e2] ~@3", // F# E
  BJ: "[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@7 [a#2,c#3,f#3]@4 [a#2,c#3,f#3] ~@3 a1 ~@3", // F#
  BK: "b1@7 ~ [b2,d#3,f#3] ~@3 b1 ~@7 b1@3 ~ [b2,d#3,f#3] ~@3 e2 ~@3", // B
  BL: "[[f#1,f#2]@8 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@2 e1 ~@4 f#2@7 [a#2,c#3,f#3] ~@3 [f#1,f#2] ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@4 a1 ~@2 b1@7 [b2,d#3,f#3] ~@4 c#2@2 ~@5 [c#3,f3,g#3]@4 ~ [c#3,f3,g#3] ~@2 [e1,e2] ~@3 [f#1,f#2]@7 ~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@7 f#1@8 [f#2,a#2,c#3,f#3] ~@3 f#1@2 ~@5 f#2@4 [a#2,c#3,f#3] ~@3 a1 ~@3 b1@7 ~ [b2,d#3,f#3] ~@3 b1 ~@6 b1@4 ~ [b2,d#3,f#3] ~@2 a1 ~ a#1 ~ b1@7 ~ [b2,d#3,f#3] ~@3 c#2 ~@7 [f3,g#3]@4 [c#3,f3,g#3] ~@3 e1 ~@3 [f#1,f#2]@7 [a#2,c#3,f#3] ~@3 f#2@2 ~@7 f#2@3 [a#2,c#3,f#3] ~@3 e1 ~@3 f#1@5, ~@31 f#1@7 ~@218]/8", // F# B C# E F# B Fm C# …
  BM: "~@3 [a#2,c#3,f#3] ~@3 f#2 ~@6 f#2@4 [a#2,c#3] f#3 ~@2 a1 ~@3 c#2@6", // F# A#m
  BN: "~@2 [c#3,f3,g#3] ~@3 c#2 ~@7 c#2@4 [c#3,f3,g#3] ~@3 a1 ~@3 b1@6", // C#
  BO: "~@2 [b2,d#3,f#3] ~@3 b1@2 ~@5 b1@4 [b2,d#3] f#3 ~@6 [f#1,f#2]@7", // B F#
  BP: "~ [a#2,c#3,f#3] ~@3 [f#1,f#2]@2 ~@6 [f#1,f#2]@3 ~ [a#2,c#3,f#3] ~@3 [e1,e2] ~@3 [f#1,f#2]@7", // F# E F#
  BQ: "[a#2,c#3,f#3] ~@3 f#2@2 ~@6 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 e1 ~@3 [f#1,f#2]@7 [a#2,c#3]", // F# A#m
  BR: "f#3 ~@3 [f#1,f#2] ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@2 a1 ~@3 b1@7 ~ [b2,d#3,f#3]", // F# B
  BS: "~@3 c#2@2 ~@6 c#2@4 [c#3,f3,g#3] ~@3 e1 ~@3 [f#1,f#2]@7 ~ [a#2,c#3,f#3]", // C# F#
  BT: "~@3 f#2@2 ~@6 f#2@3 [a#2,c#3,f#3] ~@3 e1 ~@3 f#1@8 [a#2,c#3,f#3] ~", // F#
  BU: "~@2 f#2 ~@7 f#2@4 [a#2,c#3,f#3] ~@3 a1 ~@3 b1@7 [b2,d#3,f#3] ~@2", // F# B
  BV: "~@2 b1 ~@6 b1@3 ~ [b2,d#3,f#3] ~@3 a1 ~ a#1 ~ b1@8 [b2,d#3,f#3] ~@2", // B
  BW: "~ c#2@2 ~@6 [c#3,f3,g#3]@4 [c#3,f3,g#3] ~@2 [e1,e2] ~@4 f#2@7 [a#2,c#3,f#3] ~@3, ~@20 f#1@7 ~@5", // C# E F#
  BX: "f#2 ~@7 [f#1,f#2]@4 [a#2,c#3,f#3] ~@3 e1@2 ~@2 [f#1,f#2]@8 [a#2,c#3,f#3] ~@3", // F#
  BY: "[f#2 ~@7 f#2@3 [a#2,c#3,f#3] ~@3 a1 ~@3 c#2@8 [c#3,f3,g#3]@2 ~@2 c#2@2 ~@6 c#2@4 [c#3,f3,g#3]@3 ~ c#2@3 ~ [b1,b2,d#3,f#3,a3]@4 ~@9]/2", // F# C# B7
  BZ: "~@15 c#4", CA: "[~@3 a3@2 ~@2 b3@2 ~@3 a3@3 ~@2 f#3@2 ~@3 c#3@2 ~@3 f#3@23 ~@14]/2",
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0)

// chords · electric guitar jazz · "Jazz Electric Guitar" · soft notes
const electric_guitar_jazz_4 = note(`<
  A@3 ~@2 B ~ C D ~@4 E F ~ G H I ~@6 J ~ K ~ L M ~@2 N O ~@2 P ~ Q R S@2 T ~@2 U V ~@2 W X ~@2 Y Z ~@2 C AA ~@3 AB ~@2
  AC@2 ~@2 AD ~ AE ~ AF AC AG AH AC ~@7 AI ~ AJ ~@2 AK ~@2 AL AM ~@2 AN ~ AO ~ AP ~@4 AQ ~@5
>`.pickRestart({
  A: "[~@31 e1@4 ~@27 f#1@5 ~@29]/3", B: "~@8 [a#2,c#3]@5 ~@19", C: "~@24 e2 ~@7", D: "~@14 e2 ~", E: "~@5 e2 ~@10",
  F: "~@15 f#1", G: "~@9 e2 ~@6", H: "~@21 e2@2 ~@9", I: "~@15 [a#2,c#3,f#3]@4 ~@13", J: "~@4 [e1,e2] ~@11",
  K: "~@6 e2 ~@9", L: "~@8 e2 ~@7", M: "~@10 f#1@5 ~@17", N: "~@8 c#3@2 ~@2 e2 ~@3", O: "~@13 e2 ~@2", P: "~@6 b2 ~",
  Q: "~@3 e2 ~@28", R: "~@4 [e1,e2]@2 ~@23 f#1@3", S: "[~@31 c#3@4 ~@29]/2", T: "[f#1,f#2] ~@7", U: "~@29 f#1@2 ~",
  V: "~@14 e2 ~@17, ~@13 e1@2 ~@17", W: "~@18 e2 ~@13", X: "~@19 e2@2 ~@11", Y: "~@13 c#3@4 ~@4 e2 ~@10",
  Z: "~@22 e1 ~@9", AA: "~@25 [e1,e2] ~@6", AB: "~@11 f#1 ~@7 f#1@3 ~@10", AC: "~@28 e2 ~@3",
  AD: "~@20 c#3@4 ~@4 e2 ~@3", AE: "~@8 a#2 ~@23", AF: "c#2 ~@31", AG: "g#2 ~@27 e1 ~@3", AH: "f#1@8 c#3 ~@23",
  AI: "~@28 e1 ~@3", AJ: "~@27 e2 ~@4", AK: "~@26 e1 ~@5", AL: "~@16 c#3@4 ~@4 e2 ~@7", AM: "~@8 f#1 ~@23",
  AN: "~@21 [e1,e2]@2 ~@9", AO: "~@5 f#1@2 ~@13 e2 ~@11", AP: "~@19 e2 ~@12", AQ: "f#1 ~@15 e2@2 ~@14",
})).s("gm_electric_guitar_jazz").gain(0.12).pan(0)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@27 A B@2 C D E@4 F@2 G H I J@2 K L M N O@2 P Q R S T U V W X@8 Y Z AA AB AC Z AD AE AF AG AH AI AJ Z AK AL AM Z AN
  AO AP AQ AH AR@8 AS AT AU AV S AW AX AY AZ BA BB BC@3 BD@3
>`.pickRestart({
  A: "~@17 f#1@6 ~@6 f#1@3", B: "[~@6 a1@4 c#2@4 c2@4 ~ b1@12 c#2@2 ~@7 c#2@4 ~@4 e1@4 ~ f#1@9 ~@2]/2",
  C: "~ f#1@2 ~@7 f#1@4 ~@4 e1@4 ~ f#1@9", D: "~@3 f#1@2 ~@3 c#2@4 f#2@4 c#2@4 c2@4 ~ b1@7",
  E: "[~@5 b1@2 ~@7 b1@4 ~@4 a1@2 ~ a#1@2 b1@9 ~@3 c#2@2 ~@7 c#2@4 ~@4 e1@4 ~ f#1@9 ~@3 f#1@2 ~@7 f#1@4 ~@4 e1@4 ~ f#1@9 ~@3 a1@4 ~@5 b1@4 ~@4 c2@4]/4",
  F: "[~ c#2@9 ~@3 c#2@2 ~@7 c#2@4 ~@4 a1@4 ~ b1@9 ~@3 b1@4 ~@5 c#1@4 e1@4]/2",
  G: "f1@4 ~ f#1@9 ~@3 f#1@2 ~@7 f#1@4 ~@2", H: "~@2 e1@4 ~ f#1@9 ~@3 f#1@2 ~@7 f#1@4",
  I: "~@4 e1@4 ~ f#1@8 ~@4 f#1@4 ~@4 a1@3",
  J: "[~@2 c#2@4 c2@4 b1@8 ~@4 c#2@2 ~@7 c#2@4 ~@4 e1@4 f#1@8 ~@5 f#1@2 ~@6]/2",
  K: "f#1@4 ~@4 e1@2 f1@2 ~ f#1@8 ~@4 f#1@2 ~@2 c#2@3", L: "~ f#2@4 ~ c#2@4 c2@4 b1@8 ~@4 b1@2 ~@4",
  M: "~@3 b1@4 ~@4 a1@2 a#1@2 b1@8 ~@5 c#2@2 ~@2", N: "~@4 c#2@4 ~@4 e1@4 f#1@8 ~@5 f#1@2 ~",
  O: "[~@5 f#1@4 ~@5 e1@4 f#1@8 ~@4 a1@4 ~@5 b1@4 ~@4 c2@4 c#2@8 ~@5]/2", P: "c#2 ~@3 c#2@2 ~@2 a1@2 b1@4 ~@2",
  Q: "~ b1@2 ~@6 b1@4 ~@5 e1@4 f#1@8 ~@2", R: "~@2 f#1@2 ~@7 f#1@4 ~@4 e1@4 f#1@8 ~",
  S: "~@2 f#1 ~@3 f#1@2 ~@2 e1@2 f#1@4", T: "~@5 f#1@2 ~@6 a1@4 c#2@4 c2@4 b1@7",
  U: "~@5 c#2@2 ~@6 c#2@4 ~@5 e1@4 f#1@6", V: "~@3 f#1 ~@3 f#1@2 ~@2 e1@2 f#1@3",
  W: "~@6 f#1@2 ~@3 c#2@4 f#2@4 c#2@4 c2@4 b1@5",
  X: "[~@7 b1@2 ~@6 b1@4 ~@4 a1@2 a#1@2 ~ b1@8 ~@4 c#2@2 ~@6 c#2@4 ~@4 e1@4 f#1@8 ~@4 f#1@2 ~@7 f#1@4 ~@4 e1@4 f#1@8 ~@4 a1@4 ~@4 b1@4 ~@4 c2@4 c#2@8 ~@5 c#2@2 ~@6 c#2@4 ~@4 a1@4 b1@8 ~@4 b1@2 ~@6 b1@4 ~@5 e1@4 f#1@8 ~@4 f#1@2 ~@6 f#1@4 ~@4 e1@4 f#1@6 ~@7 f#1@2 ~@6 f#1@2 ~@6 e1@2 ~@2]/8",
  Y: "f#1@2 ~ f#1 ~ a1 c#2 c2", Z: "b1@4 ~@2 c#2 ~@3 c#2@2 ~@2 e1@2", AA: "f#1@5 ~ d#2@2 e2@4 d#2@3 ~",
  AB: "f#1@4 ~@2 d#2@2 e2@4 d#2@3 ~", AC: "b1@4 ~@2 b1 ~@3 b1 ~@3 a1 a#1", AD: "f#1@2 ~ d#2 e2@2 d#2@2",
  AE: "f#1@2 ~ d#2 e2 a#1 b1 c2", AF: "c#2@4 ~@2 c#2 ~@3 c#2@2 ~@2 a1 a#1", AG: "b1@4 ~@2 b1 ~@3 b1@2 ~@2 e1 ~",
  AH: "f#1@4 ~@2 f#1 ~@3 f#1 ~@3 e1 f1", AI: "f#1@4 ~@2 f#1 ~@3 f#1@2 ~@4", AJ: "~@6 f#2 a1",
  AK: "f#1@4 ~@2 f#1 ~@3 f#1@2 ~@2 e1@2", AL: "f#1@4 ~@2 f#1 ~@3 a1@2 c#2@2 c2@2",
  AM: "b1@4 ~@2 b1 ~@3 b1@2 ~@2 a1 a#1", AN: "f#1@4 ~@2 f#1 ~@3 f#1@2 ~@2 e1 ~", AO: "f#1@2 ~ a1 ~ b1 ~ c2",
  AP: "c#2@4 ~@2 c#2 ~@3 c#2@2 ~@2 a1 ~", AQ: "b1@4 ~@2 b1 ~@3 b1@2 ~@2 e1@2",
  AR: "[f#1@8 ~@4 f#1@2 ~@6 f#1@2 ~@5 e1@4 f#1@8 ~@4 f#1@2 ~@6 a1@4 c#2@4 c2@4 b1@8 ~@4 c#2@2 ~@5 c#2@4 ~@4 e1@4 f#1@8 ~@4 f#1@2 ~@6 f#1@4 ~@4 e1@4 f#1@8 ~@3 f#1@2 ~@2 c#2@4 f#2@4 c#2@4 c2@4 b1@8 ~@4 b1@2 ~@6 b1@4 ~@3 a1@2 a#1@2 b1@8 ~@4 c#2@2 ~@6 c#2@4 ~@4 e1@4 f#1@8 ~@3 f#1@2 ~@6 f#1@4 ~@4 e1@2 f1@2 f#1@5]/8",
  AS: "~@7 a1@4 ~@4 b1@4 ~@4 c2@3 c#2@6", AT: "~@3 c#2 ~@3 c#2@2 ~@2 a1@2 b1@3", AU: "~@6 b1@2 ~@5 b1@4 ~@4 e1@4 f#1@7",
  AV: "~@5 f#1@2 ~@6 f#1@2 ~@6 e1@2 f1@2 f#1@7", AW: "~@4 f#1@2 ~@6 a1@4 c#2@3 c2@4 b1@8 ~",
  AX: "~@3 c#2@2 ~@6 c#2@4 ~@4 e1@4 f#1@8 ~", AY: "~@3 f#1@2 ~@5 f#1@4 ~@4 e1@4 f#1@8 ~@2",
  AZ: "~ f#1 ~ c#2@2 e2@2 c#2@2 c2@2 b1@4 ~", BA: "~ b1@2 ~@6 b1@4 ~@4 a1@2 a#1@2 b1@10 ~",
  BB: "~ c#2@2 ~@6 c#2@4 ~@3 e1@4 f#1@8 ~@4",
  BC: "[f#1@2 ~@6 f#1@2 ~@6 e1@4 f#1@8 ~@3 a1@2 ~@6 b1@2 ~@6 c2@4 c#2@8 ~@4 c#2@2 ~@6 c#2@4 ~@4 a1@3 b1@4 ~@10]/3",
  BD: "[~@30 c#2@4 ~ a1@2 ~@2 b1@2 ~@2 a1@2 ~@3 f#1@2 ~@2 c#1@4 ~ e1@2 f#1@15 ~@22, ~@15 c2 ~@32]/3",
})).s("gm_electric_bass_finger").gain(0.46)

// chords · rock organ · "Hammond Organ"
const rock_organ = note(`<
  ~@40 A@4 B@4 C@4 D ~@12 E@2 F G H I J K L@2 M N O ~@5 P@2 Q@2 R S@4 T@4 U@4 V@2 W@2 X Y Z AA@3 AB@3
>`.pickRestart({
  A: "[~@9 [a#3,c#4,e4]@33 [b3,d#4]@12 [c#4,f4,g#4]@21 [a#3,c#4,e4,f#4]@31 ~@3 [a#3,c#4,e4,f#4]@8 ~@4 [a#3,c#4,e4,f#4]@6 ~, ~@9 f#4@46 ~@73, ~@21 d4 ~@42]/4", // A#dim B C# F#7
  B: "[~ [a#3,c#4,e4,f#4]@8 ~@5 [a3,b3,d#4,f#4]@31 ~@2 [a3,b3,d#4,f#4]@8 ~@5 [b3,c#4,f4,g#4]@19 ~ [a#3,c#4,e4,f#4]@31 ~@3 [a#3,c#4,e4,f#4]@8 ~@4 [a#3,c#4,e4,f#4]@2]/4", // F#7 B7 C#7 F#7
  C: "[~@7 [c#4,e4,f#4]@8 ~@4 [b3,c#4,f4,g#4]@29 b3@2 ~@2 [d#4,f#4,a4]@21 b3@4 [d#4,f#4,a4]@5 b3@2 ~@2 [c#4,e4,f#4]@31 ~@2 [c#4,e4,f#4]@8 ~, ~@7 a#3@4 ~@8 e4@2 ~@31 b3@19 ~@15 a#3@27 ~@6 a#3@4 ~@5]/4", // F#7 C#7 D#dim F#7
  D: "~@2 [a#3,c#4,e4,f#4] ~@3 [a#3,c#4,e4,f#4]@4 a#3 ~@5", // F#7
  E: "[c#5@15 ~ [b4,d#5,a5]@6 e5 f5@9, f#5@11 ~@5, c5 ~@21 [c#5,g#5]@9 ~]/2", // B7 C#5
  F: "[a#4,c#5,f#5]@3 [a#4,f#5] e5@2 [a#4,d#5,f#5]@2, ~@6 d#5 ~@9", // F# D#m
  G: "[a#4,c#5,f#5]@5 ~ [a#4,d#5] ~ [a#4,e5]@4 [a#4,d#5,f#5]@3 ~, ~@6 f#5@5 ~@5", // F# D#5 A#dim D#m
  H: "[d#5,f#5,a5]@5 ~ [d#5,f#5,a5]@9 ~, b4@13 ~@3", // D#dim
  I: "[b4,d#5,f#5,a5]@5 ~ [c#5,f5,g#5]@3 ~ [c#5,f5,g#5]@6, ~@10 e5 ~@5", // B7 C#
  J: "[a#4,c#5,f#5]@5 ~ [a#4,d#5] ~ [a#4,e5]@4 [a#4,d#5,f#5]@4, ~@3 f#5 ~@4", // F# D#5 A#dim D#m
  K: "[a#4,c#5,f#5]@5 ~ [a#4,d#5,f#5] ~ [a#4,e5,f#5]@3 ~ [d#5,f#5]@3 ~, ~@12 a#4 ~@3", // F# D#m F#7 D#m
  L: "[[b4,c#5,f5,g#5]@5 ~ [c#5,f5,g#5]@8 ~@2 [d#5,f#5,a5]@5 ~ [b4,d#5,f#5,a5]@3 ~ [d#5,f#5,a5]@5 ~, e5 ~@5 b4@7 ~ b4@7 ~@5 b4@3 ~@3]/2", // C#7 C# D#dim B7 D#dim
  M: "[a#4,f#5]@4 [c#6,f#6]@3 ~ [c#6,f#6]@3 ~ [c#6,f#6]@3 ~, c#5@2 ~@2 c6 ~@3 c6 ~@3 c6 ~@3", // D#m F#5
// … 287 more lines

More by Tracy Chapman