Strudelify
Exodus cover art

Exodus

Exodus

Bob Marley

KeyA minorTempo132 bpm
0:00/0:00
// Exodus — Bob Marley
// 132 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 200 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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, A@4 for four bars: edit a riff to change every repeat.

// other · piano · "tk1"
const piano = note(`<
  ~ A B@3 C@4 A B@3 D@5 ~@15 A E@3 F@3 ~ G H@3 I@3 ~@17 A J@2 ~ G J@2 K L@2 ~@2 G J@2 K L@2 M@2 ~@2 G J@2 K L@2 ~@2 G
  J@2 K L@2 ~@2 G J@2 K L@2 ~@22 G J@2 K L@2 N ~ G J@2 K L@2 ~@2 G J@2 K L@2 ~@2 G J@2 K L@2 ~@2 G J@2 K L@2 ~@2 G J@2 K
  L@2 ~@2 G J@2 ~@5 G J@2 K L@2 ~@2 G J@2 ~ O
>`.pickRestart({
  A: "~@5 [e2,e4]@3, ~@10 d#4 ~@5", B: "[[a1,a3]@22 ~ [b2,b3]]/3", C: "[[c3,c4] [d3,d4]@2 ~ [b2,b3] ~ g3 a3@25]/4",
  D: "[[c3,c4] [d3,d4]@2 ~ [b2,b3] ~ g3 a3@33]/5", E: "[[a1,a3]@37 ~@9 [b2,b3]@2]/3",
  F: "[[c3,c4]@2 [d3,d4]@7 ~ d4@2 g3@2 a3@33 ~]/3", G: "~@5 [e2,e4]@3", H: "[[a1,a3]@39 ~@7 [b2,b3]@2]/3",
  I: "[[c3,c4]@2 [d3,d4]@6 b3@3 ~ g3@2 a3@34]/3", J: "[a1,a3]/2", K: "~@7 [b2,b3]",
  L: "[[c3,c4]@2 [d3,d4]@5 ~ b3@3 ~ g3@2 a3@17 ~]/2", M: "[~ d4 ~@2 g3@12, [b3,c4,e4], ~@3 d4@13]/2",
  N: "c4@4 a3@2 ~@2 g3@2 g#3 ~ a3@2 ~@2",
  O: "~@2 [c3,c5]@2 e3@2 [g3,g5] ~ [a3,e4,c5,a5]@2 [a3,e4,c5,a5] ~ [a3,e4,c5,a5]@2 ~@2, ~@4 e5 ~@11", // C G Am
})).s("gm_piano").gain(0.44).pan(0.6)

// bass · fretless bass · "tk2"
const bass = note(`<
  ~@18 A B A C D E D F G H G H G H G H G H I J A K A L A K A L A K A L A K A L M H M N M O M O M O M H M H I P A K A Q R
  K S T A K A U M V M H W P A K A L A K A Q A B A L A K A Q M H M H M X Y H R K Z AA A K R Q A K A Q M X M ~ M AB M H M
  H M H M H I P A K A Q A K Z AA A K A Q A K A Q M H M H M H I P ~@2 AC ~ AD AC AE AF A K AG Q A K A Q M H M H M H M H
  AH H M H M H I AI R K A AJ
>`.pickRestart({
  A: "a1@2 ~@2 g1 ~ a1@2 ~@2 g1 ~ a1@2 ~@2", B: "~@2 c2 ~ a1@2 ~@2 g1@2 g#1 ~ a1@2 ~@2",
  C: "c2@2 ~@2 a1@2 ~@2 g1 ~ g#1 ~ a1@2 ~@2", D: "a1@2 ~@2 g1 ~ a1@2 ~@2 g1 ~ a1 ~ a1@2",
  E: "~@2 a1@2 c2 ~ e2 ~ g2 ~ g#2 ~ a2@2 ~@2", F: "~@2 a1 ~@3 e2 ~ g2 ~ g#2 ~ a2 ~@3",
  G: "a1@2 ~@2 g1 ~ a1@2 ~@2 g1 ~ a1@2 a1@2", H: "~@2 a1@2 c2@2 e2 ~ g2@2 g#2@2 a2@2 ~@2",
  I: "a1 ~ a1 ~ a1@2 ~@2 b1@3 ~ b1@3 ~", J: "c2@3 ~ c2@3 ~ d2@6 ~@2", K: "~ c2 a1 ~ g1 g#1 a1 ~",
  L: "c2@3 ~ a1@2 ~@2 g1@2 g#1 ~ a1@2 ~@2", M: "a1@2 ~@2 g1@2 a1@2 ~@2 g1 ~ a1 ~ a1@2",
  N: "~@2 a1 ~ c2@2 e2 ~ g2@2 g#2 ~ a2@2 ~@2", O: "~@2 a1@2 ~@2 e2@2 g2@2 g#2 ~ a2@2 ~@2",
  P: "c2@3 ~ c2@3 ~ d2@2 e2@5 ~", Q: "c2@2 a1 ~ g1 g#1 a1 ~", R: "a1@2 ~@2 g1@2 a1@2 ~@2 g1 ~ a1@2 ~@2",
  S: "a1@2 ~@2 g1@2 a1@2 ~@2 g1 ~ a1@2 a1 ~", T: "c2 ~ c2 ~ c2@3 ~ g1@3 ~ g#1@3 ~", U: "c2@4 a1@3 ~ g1@2 g#1@2 a1@3 ~",
  V: "~@2 a1@2 c2@2 e2@2 g2@2 g#2 ~ a2@3 ~", W: "a1@2 a1 ~ a1@4 b1@3 ~ b1@3 ~",
  X: "~@2 a1 ~ c2 ~ e2@2 g2@2 g#2@2 a2@2 ~@2", Y: "a1@2 ~@2 g1@2 a1@3 ~ g1@2 a1@2 a1@2",
  Z: "a1@3 ~ g1@2 a1@2 ~@2 g1@2 a1 ~ a1 ~", AA: "c2 ~ c2 ~ c2@3 ~ e1@4 g1@3 ~",
  AB: "~@2 a1 ~ c2@2 e2@2 g2 ~ g#2 ~ a2@2 ~@2", AC: "a1 ~@7", AD: "a1 ~@6 a1", AE: "a1@2 ~@4 a1@2 ~@6 a1 ~",
  AF: "c2@3 ~@5 e1@7 ~", AG: "a1 ~ g1 a1 ~ g1 a1 ~", AH: "a1@3 ~ g1@2 a1@3 ~ g1 ~ a1@2 a1@2",
  AI: "c2 ~ c2 ~ c2@2 ~@2 d2@2 e2@5 ~", AJ: "~@2 c2@2 e2@2 g2@2 a2@2 a2 ~ a2@2 ~@2",
})).s("gm_fretless_bass").gain(0.44)

// chords · clavinet · "tk3"
const clavinet = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "[c4,e4] ~ [a2,a3,c4] ~ g2 ~ [a2,c4,e4] ~@3 [g2,d4] ~ [c4,e4] ~ g3 ~, ~@6 a2 ~", // C Am G5 C
  B: "[c3,c4,e4] ~ g3 ~ [a2,a3,c4] ~@3 [g2,d4] ~ [g#2,a3,c4] ~ [a2,c4,e4] ~ g3 ~", // C Am G5 G# Am
})).s("gm_clavinet").gain(0.2)

// chords · flute · "tk5"
const flute = note(`<
  ~@10 A ~@2 B@2 ~@5 C@2 ~@2 D@2 ~@2 E@2 ~@2 F G A ~@2 B@2 ~@3 A ~@2 B@2 ~@5 H@2 ~@2 I J ~@2 K@2 L@2 M@2 A ~@2 B@2 ~ N O
  P@8 ~@2 A ~@2 B@2 ~@3 A ~ Q ~ A ~ R ~ A ~ R ~ A ~ S ~ O ~ O ~@2 T@2 ~@2 U V ~@3 W@2 X@2 M@2 A ~@2 Y@2 ~@3 A ~@2 Y@2 ~
  Z@2 P@6 O ~ O ~ O ~@3 AA ~@3 AB@2 A ~@2 Y@2 ~@3 A ~@2 Y@2 ~@3 AC@2 AD@10 O ~ O ~ AE@2 AF@2
>`.pickRestart({
  A: "[e4,g4,c5]@4 [e4,g4,c5]@2 [e4,g4,c5]@5 ~@5", // C
  B: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [d4,f4,a4]@2 [c4,e4,g4] [d4,f4,a4]@2 [c4,e4,g4]@4 ~@3]/2", // C Dm C Dm C
  C: "[[c4,c5]@2 [c4,c5]@4 [c4,c5]@4 [c4,c5]@3 ~ [a3,a4]@5 ~@13]/2", // C A
  D: "[~@2 [e3,e4]@2 [c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [a3,a4]@5 ~@13]/2", // E C A
  E: "[~ [a3,a4]!3 ~ a4!2 [c4,c5]@2 [a3,a4] ~@6, ~@5 a3@2 ~@9]/2", // A C A
  F: "[a3,a4]@3 ~ [a3,a4]@3 ~ [a3,a4]@3 ~ [a3,a4]@2 [a3,a4]@2", G: "[c4,c5]@3 [a3,a4]@5 ~@8",
  H: "[~@8 [c4,c5]@3 ~ [c4,c5]@2 [a3,a4]@6 ~@12]/2", I: "~@4 a4@2 a4@2 [c4,c5]@3 ~ a3@2 [d4,d5]@2, ~@4 a3@4 ~@4 a4 ~@3",
  J: "[c4,c5] ~@3", K: "[[e4,g4,c5]@2 [e4,g4,c5]@3 ~ [e4,g4,c5]@4 [e4,g4,c5]@4 [c4,e4,a4]@5 ~@11 [a3,a4]@2]/2",
  L: "[[e4,e5]@2 [g4,g5]@4 [d4,d5]@6 [c4,c5]@2 [e4,e5]@5 ~@11 [g3,g4]@2]/2", // E G D C E G
  M: "[[c4,c5]!3 [a3,a4] [c4,c5]@2 [c4,c5] [a3,a4]@2 ~@7]/2", // C A C A
  N: "[c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 [e4,g4,c5]", O: "[c4,e4,a4] ~@3",
  P: "[[c4,e4,a4,c5]@3 ~ [c4,e4,a4,c5]@3 ~ [c4,e4,a4,c5]@3 ~ [c4,e4,a4,c5]@2 [e4,g4,c5,e5]@4 ~ [e4,c5]@3 ~@10, ~@18 [c4,a4]@3 ~@11]/2", // Am C F
  Q: "[d4,e4,a4]@3 ~ [c4,e4,a4]@2 [c4,e4,a4]@5 ~@5", R: "[c4,e4,a4]@3 ~ [c4,e4,a4]@2 [c4,e4,a4]@5 ~@5",
  S: "~ [c4,e4,a4]@3 ~ [c4,e4,a4]@2 [c4,e4,a4]@5 ~@4", // Am
  T: "[~@6 [c4,e4,a4]@2 [e4,g4,c5]@3 ~ [e4,g4,c5]@2 [c4,e4,a4]@4 ~@14]/2", U: "~@6 [e4,a4] [c4,e4,g4], ~@12 c4 ~@3",
  V: "[e4,g4,c5]@3 ~ [c4,e4]@2 [f4,a4,d5]@2 [e4,g4,c5]@3 ~@5, ~@4 a4 ~@11", // C Dm C
  W: "[[c4,c5]@2 [c4,c5]@4 [c4,c5]@4 [c4,c5]@3 ~ [a3,a4]@5 ~@11 [a3,a4]@2]/2", // C A
  X: "[[e4,e5] [g4,g5]@3 [d4,d5]@2 [c4,c5] [d4,d5]@2 [c4,c5]@2 ~@4 [a3,a4]]/2", // E G D C D C A
  Y: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [d4,f4,a4]@2 [c4,e4,g4] [d4,f4,a4]@2 [c4,e4,g4]@3 ~@4]/2", // C Dm C Dm C
  Z: "[[a3,a4]@3 ~ [a3,a4]@3 ~ [a3,a4]@3 ~ [a3,a4]@2 [c4,c5]@4 [a3,a4]@2 ~@12]/2", // A C A
  AA: "[a3,a4]@2 [g3,g4] [a3,a4] [g3,g4] [a3,a4]@2 ~", // A G A G A
  AB: "[[c4,c5]@3 ~ [a3,a4]@2 [c4,c5]@3 ~ [c4,c5]@3 ~ [a3,a4]@6 ~@12]/2", // C A C A
  AC: "[[c4,e4]@3 ~ [c4,e4]@3 ~@2 [c4,e4]@3 [c4,e4]@2 [e4,g4]@4 ~ e4@3 ~@10, ~@18 c4@3 ~@11]/2", // C Em
  AD: "[[c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@2 [e4,g4]@4 ~ e4@3 ~@10, ~@18 c4@3 ~@11]/2", // C Em
  AE: "[[a3,a4]@3 ~ [a3,a4]@2 ~@2 [a3,a4]@3 ~ [a3,a4]@2 [c4,c5]@4 [a3,a4]@2 ~@12]/2", // A C A
  AF: "[[a3,a4] ~ [a3,a4] ~ [a3,a4] ~ [a3,a4] [c4,c5]@2 [a3,a4] ~@6]/2", // A C A
})).s("gm_flute").gain(0.3).pan(0.4)

// chords · lead 5 charang · "tk6"
const lead_5_charang = note(`<
  ~@7 A B C ~@9 D ~ D ~ D ~ E ~ D ~ F G D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~
  D ~ D ~ D ~ D ~ D ~ D H@3 ~@2 D ~ D ~ E ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D I J@2 D ~ D ~ D ~ D ~ D ~@3 D ~ D
  ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ E ~ D ~ D K@2 L@2 ~ D ~ D ~ D ~ D ~@7 M ~ D ~ D ~ D ~ D ~@20
>`.pickRestart({
  A: "~@2 [d5,d#5] ~@5 d5@2 c5@5 ~", B: "~@4 [g#4,a4] ~@3 e4 ~ d4@4 ~@2, ~@10 e4 ~@5", C: "d4 ~@7 a4 ~@7",
  D: "[c4,e4]@4 a3 ~@11", E: "[c4,e4]@2 d4@4 c4 ~ d4 ~ c4@5 ~", F: "[c4,e4]@2 ~@2 [a3,d4,f#4]@11 ~", G: "a3 ~@15",
  H: "[~@5 a4@19]/3", I: "~@7 a4", J: "[~@2 b4@2 ~@2 c5@3 ~ d5@2 ~@2 e5@4 ~@14]/2",
  K: "[a3@2 ~@2 a3@2 ~@2 a3@3 ~ a3 ~ c4@4 a3@5 ~@9]/2", L: "[a3@2 ~@2 a3@2 ~@2 a3@3 ~ a3 ~ c4@6 a3@2 ~@10]/2",
  M: "~ d5@3 c5 a4 g4 ~",
})).s("gm_lead_5_charang").gain(0.19).pan(0.4)

// chords · electric guitar jazz · "tk7"
const electric_guitar_jazz = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "[c4,e4,a4] ~@5 [c4,e4,a4] ~@5 [c4,e4,a4] ~@3", B: "~@2 [c4,e4,a4] ~@5 [c4,e4,a4] ~@7",
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.4)

// chords · electric guitar muted · "tk8"
const electric_guitar_muted = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@4 A B A B A B A B
  A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B D E F B A B A B A B A B A B G H G H G H G H A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "~@2 [a3,c4] ~ [a3,c4] ~@3 [a3,c4] ~ [a3,c4] ~@3 [a3,c4] ~", // Am
  B: "[a3,c4] ~@3 [a3,c4] ~ [a3,c4] ~@3 [a3,c4] ~ [a3,c4] ~ [a3,c4] ~", C: "c4 ~@15",
  D: "g3 ~ g3!2 ~@2 g3!2 ~ g3!2 ~ a3 ~@2 g3", E: "~ g3!2 ~@2 g3!4 ~ g#3 ~ a3 ~@3",
  F: "g3 ~ [a3,c4] ~ [a3,c4] ~@3 [a3,c4] ~ [a3,c4] ~@3 [a3,c4] ~", // Am
  G: "[c4,e4,a4] ~ [a3,c4] ~ [a3,c4] ~ [c4,e4,a4] ~ [a3,c4] ~ [a3,c4] ~ [c4,e4,a4] ~ [a3,c4] ~", // Am
  H: "[a3,c4] ~ [c4,e4,a4] ~ [a3,c4] ~ [a3,c4] ~ [c4,e4,a4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~", // Am
})).s("gm_electric_guitar_muted").gain(0.2).pan(0.4)

// other · electric guitar muted · "tk9"
const electric_guitar_muted_2 = note(`<
  ~@108 A B A B ~@38 A B A B A B ~@24 A B A B A B A B A B A B A B C D A B A B
>`.pickRestart({
  A: "g3 ~ g3!2 ~@2 g3!2 ~ g3!2 ~ a3@3 g3", B: "~ g3!2 ~@2 g3!4 ~ g#3@2 a3 ~@3",
  C: "g3 ~ g3!2 ~@2 g3!2 ~ g3!2 ~ g3@3 g3", D: "~ g3!2 ~@2 g3!4 ~ g3@2 g3 ~@3",
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.4)

// other · electric guitar muted · "tk11"
const electric_guitar_muted_3 = note("<~@108 A@2 B@2 ~@38 A@2 B@2 C@2 ~@24 A@2 B@2 C@2 D@2 E@2 A@8 F@2>".pickRestart({
  A: "[a3 ~@3 a3 ~ a3@2 ~@2 a3 ~ a3 ~ c4@6 a3 ~@3 g3@2 g#3@2 a3 ~@3]/2",
  B: "[a3 ~@3 a3 ~ a3@2 ~@2 a3 ~ a3 ~ c4@6 a3 ~@3 g3@2 g#3 ~@5]/2",
  C: "[~ a3@2 ~ a3@2 a3@2 ~@2 a3@2 a3 ~ c4@6 a3 ~@3 g3@2 g#3 ~@5]/2",
  D: "[a3@2 ~@2 a3@2 a3@2 ~@2 a3 ~ a3 ~ c4@6 a3 ~@3 g3@2 g#3 ~@5]/2",
  E: "[a3@2 ~@2 a3@2 a3 ~@3 a3@2 ~@2 c4@6 a3 ~@3 g3@2 g#3@2 a3 ~@3]/2",
  F: "[a3 ~@3 a3 ~ a3@2 ~@2 a3 ~ a3 ~ c4@6 ~@12]/2",
})).s("gm_electric_guitar_muted").gain(0.16).pan(1)

// other · trumpet · "tk12"
const trumpet = note(`<
  ~@3 A B ~@6 A B ~@2 C D ~@2 E ~@23 F G ~@2 H I ~@4 J ~@3 K L M ~ E L M ~ K ~@5 N D ~ L M O E L M O E ~ P ~@5 N D ~@2 A
  Q ~@2 N R ~@2 A Q ~@2 N R ~@2 E ~ E ~@9 E ~ E ~@3 E S M ~ E S M ~ E ~@2 T U V W ~ J S W ~ J S M ~ J S M ~ J ~@7 X Y Z
  Y Z Y Z Y AA S M ~ E S M ~ E S M ~ AB AC M ~ E S M ~ E S M AD U S M ~ K
>`.pickRestart({
  A: "~@3 e5", B: "a5 ~", C: "~@4 a5@2 g5 ~@3 a5@2 g5 ~ e5 ~", D: "g5@2 a5 ~@5",
  E: "~@2 c4 ~ e4 ~ g4 ~ a4@2 a4@2 a4 ~@3", F: "~@3 e4", G: "a4@5 ~@3", H: "~@4 a4@2 g4@2 ~@2 a4@2 g4@2 e4 ~",
  I: "g4@2 a4 ~@5", J: "~@2 c4 ~ e4 ~ g4 ~ a4@2 a4 ~ a4@2 ~@2", K: "~@2 c5 ~ e5 ~ g5 ~ a5@2 a5 ~ a5 ~@3",
  L: "a4@2 ~@2 g4 ~ a4@2 ~@2 g4 ~ a4 ~@3", M: "c5@2 a4 ~ g4 g#4 a4 ~", N: "~@4 a5 ~ g5 ~@3 a5 ~ g5 ~ e5 ~",
  O: "~@2 a4 ~@5", P: "~@2 c5 ~ e5 ~ g5 ~ a5@2 a5@2 a5@2 ~@2", Q: "a5@5 ~@3", R: "g5@4 a5 ~@11",
  S: "a4@2 ~@2 g4@2 a4@2 ~@2 g4 ~ a4 ~@3", T: "e4@2 e4@2 e4 ~@3 f#4@2 ~@2 f#4@2 ~@2",
  U: "g4@2 g4@2 g4@2 ~@2 a4 ~@3 g5@2 a5@2", V: "~@6 a4@2 ~@2 g4@2 a4 ~@3", W: "c5@4 a4 ~@3 g4@2 g#4@2 a4@2 ~@2",
  X: "~@8 a4 ~ a4@5 ~", Y: "a4 ~@3 g4 ~ a4 ~@3 g4 ~ a4 ~@3", Z: "~@2 g4 ~ a4 ~@5 g4 ~ a4 ~@3",
  AA: "~@2 g4 ~ a4 ~ g4 ~ a4@2 a4 ~ g4 ~@3", AB: "~@12 g5@2 a5 ~", AC: "~@4 g4@2 a4@2 ~@2 g4 ~ a4 ~@3",
  AD: "e4!3 ~ f#4 ~ f#4 ~",
})).s("gm_trumpet").gain(0.33)

// other · alto sax · "tk13"
const alto_sax = note(`<
  ~@3 A B ~@6 A B ~@2 C D ~@26 E F ~@2 G H ~@4 I ~@3 I J K ~ L J K ~ L ~@5 G M ~ N O P Q N O P Q ~ R ~@5 S T ~@2 U V ~@2
  W H ~@2 E F ~@2 W H ~@2 I ~ I ~@9 X ~ X ~@3 X Y Z ~ X Y Z ~ X ~@2 AA AB AC AD ~ I AE AD ~ I Y AD ~ I Y AD ~ I ~@7 AF J
  AG J AG J AG J AH Y Z ~ X Y Z ~ X Y Z ~ AI AJ Z ~ X Y Z ~ X Y Z AA AB Y Z ~ X
>`.pickRestart({
  A: "~@3 a4", B: "c5 ~", C: "~@4 c5@2 b4 ~@3 c5@2 b4 ~ g4 ~", D: "b4@2 c5 ~@5", E: "~@3 a3", F: "c4@5 ~@3",
  G: "~@4 c4@2 b3@2 ~@2 c4@2 b3 ~ g3 ~", H: "b3@2 c4 ~@5", I: "~@2 a3 ~ c4 ~ d4 ~ e4@2 e4@2 e4@2 ~@2",
  J: "e4 ~@3 d4 ~ e4 ~@3 d4 ~ e4 ~@3", K: "g4@4 e4 ~@3 d4@2 d#4@2 e4 ~@3", L: "~@2 a3 ~ c4 ~ c4 ~ e4@2 e4@2 e4 ~@3",
  M: "b3@4 c4 ~@11", N: "e3 ~@3 d3 ~ e3 ~@3 d3 ~ e3 ~@3", O: "g3@4 e3 ~@3 d3@2 d#3@2 e3 ~@3", P: "~@4 e3 ~@11",
  Q: "~@2 c3 ~ e3 ~ e3 ~ e3@2 e3@2 e3 ~@3", R: "~@2 a3 ~ c4 ~ c4 ~ e4@2 e4@2 e4@2 ~@2",
  S: "~@4 c5@2 b4 ~@3 c5 ~ b4 ~ a4 ~", T: "b4@4 c5 ~@11", U: "~@3 c4", V: "e4@5 ~@3",
  W: "~@4 c4 ~ b3 ~@3 c4 ~ b3 ~ a3 ~", X: "~@2 a3 ~ c4 ~ d4 ~ e4@2 e4@2 e4 ~@3", Y: "e4 ~@3 d4@2 e4@2 ~@2 d4 ~ e4 ~@3",
  Z: "a4@2 e4 ~ d4 d#4 e4 ~", AA: "c4!3 ~ d4 ~ d4 ~", AB: "e4!3 ~ f4 ~ d4 e4", AC: "~@6 e4 ~@3 d4 ~ e4 ~@3",
  AD: "g4@4 e4 ~@3 d4@2 d#4@2 e4@2 ~@2", AE: "e4@2 ~@2 d4@2 e4@2 ~@2 d4@2 e4 ~@3", AF: "~@8 a3 ~ a3@4 ~@2",
  AG: "~@2 d4 ~ e4 ~@5 d4 ~ e4 ~@3", AH: "~@2 d4 ~ e4 ~ d4 ~ e4@2 e4 ~ d4 ~@3", AI: "~@12 d4@2 e4 ~",
  AJ: "~@4 d4@2 e4@2 ~@2 d4 ~ e4 ~@3",
})).s("gm_alto_sax").gain(0.38).pan(0.9)

// other · trombone · "tk14"
const trombone = note(`<
  ~@3 A B ~@6 A B ~@2 C D ~@26 A E ~@2 C D ~@4 F ~@3 G H I ~ F H I ~ F ~@5 J K ~ H I L M H I L M ~ N ~@5 O P ~@2 Q R ~@2
  J D ~@2 A E ~@2 J D ~@2 S ~ S ~@9 T ~ T ~@3 T H U ~ T H U ~ T ~@2 V W X Y ~ T Z U ~ T Z Y ~ T Z Y ~ T ~@7 AA AB AC AD
  AC AD AC AD AE H U ~ T H U ~ T H U ~ AF AG U ~ T H U ~ T H U V W H U ~ T
>`.pickRestart({
  A: "~@3 c4", B: "e4 ~", C: "~@4 e4@2 d4@2 ~@2 e4@2 d4 ~ b3 ~", D: "d4@2 e4 ~@5", E: "e4@11 ~@5",
  F: "~@2 e3 ~ g3 ~ g3 ~ c4@2 c4@2 c4 ~@3", G: "~@2 e3 ~ g3 ~ a3 ~ c4@2 c4 ~ c4@2 ~@2",
  H: "c4@2 ~@2 b3 ~ c4 ~@3 b3 ~ c4 ~@3", I: "e4@4 c4@2 ~@2 a#3@2 b3@2 c4 ~@3", J: "~@4 e4 ~ d4 ~@3 e4 ~ d4 ~ c4 ~",
  K: "e4@2 e4 ~@5", L: "~@4 c4 ~@11", M: "~@2 a3 ~ c4 ~ c4 ~ c4@2 c4@2 c4 ~@3",
  N: "~@2 e3 ~ g3 ~ a3 ~ [b3,c4]@2 [b3,c4]@2 [b3,c4]@2 ~@2", O: "~@4 e4@2 d4 ~@3 e4@2 d4 ~ c4 ~", P: "d4@4 e4 ~@11",
  Q: "~@3 a3", R: "c4@5 ~@3", S: "~@2 e3 ~ a3 ~ b3 ~ c4@2 c4 ~ c4@2 ~@2", T: "~@2 e3 ~ g3 ~ a3 ~ c4@2 c4@2 c4 ~@3",
  U: "e4@2 c4 ~ a#3 b3 c4 ~", V: "a3!3 ~ b3 ~ b3 ~", W: "c4!3 ~ d4 ~ b3 c4", X: "~@6 c4 ~@3 b3@2 c4@2 ~@2",
// … 194 more lines

More by Bob Marley