Strudelify
Beautiful Noise cover art

1976 · Beautiful Noise

Beautiful Noise

Neil Diamond

KeyG majorTempo128 bpm
0:00/0:00
// Beautiful Noise — Neil Diamond
// 128 bpm, 4/4, key G 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 99 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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 · acoustic guitar steel · "FOOT"
const acoustic_guitar_steel = note(`<
  ~ A@7 B C D@2 E@2 F G H@2 I@2 J@2 K L M@3 ~@26 N@2 O@2 N O@4 P ~@8 N@17 ~ Q R S T U@3 ~ V@2
>`.pickRestart({
  A: "[~@3 f#4@5 ~ f#4@6 f#4@6 f#4@6 f#4@6 f#4@4 ~@2 f#4@5 f#4@6 [d4,f#4]@6 ~ f#4@6 f#4@5 ~ f#4@6 f#4@5 [d4,f#4]@6 f#4@6 f#4@6 f#4@6 f#4@6 f#4@6 ~ [d4,f#4]@6 f#4@6 f#4@6 [a3,d4,f#4]@6 [a3,d4,f#4]@6 d4@5 ~ f#4@2 a3@3 ~ d4@3 a3@3 f#4@3]/7", // D
  B: "a3 d4 a3 f#4 a3 d4 a3 f#4", C: "~@2 a3@3 d4@3 ~ a3@3 d4@3 a4@6 a3@3",
  D: "[d4@3 a3@3 d4@3 a4@6 a3@3 d4@3 a3@5 ~ a3@3 d4@3 a3@3 d4@3 a4@6 a3@3]/2",
  E: "[d4@3 a3@3 d4@3 a4@6 a3@3 d4@8 a3@4 c#4@3 a3@3 c#4@3 a4@5 a3@3 ~]/2", F: "c#4@3 a3@3 c#4@2 ~ a4@6 a3@3 c#4@5 ~",
  G: "~@2 a3@4 c#4@2 a3@3 ~ c#4@3 a4@6 ~@3",
  H: "[c#4@3 a3@3 c#4@3 a4@6 a3@3 c#4@3 a3@5 ~ a3@3 d4@3 a3@3 d4@3 a4@6 a3@3]/2",
  I: "[d4@3 a3@3 d4@3 a4@6 a3@3 d4@3 a3@5 a3@4 d4@3 a3@3 d4@2 ~ a4@6 a3@3]/2",
  J: "[d4@3 ~@3 d4@3 a4@6 a3@3 d4@3 a3@5 ~ a3@3 c#4@3 a3@3 c#4@2 a4@7 a3@3]/2",
  K: "c#4@3 a3@3 c#4@3 a4@5 a3@4 c#4@2 a3@4", L: "~ a3 c#4 a3 c#4 a4@2 a3",
  M: "[c#4@3 a3@3 c#4@3 a4@6 a3@3 c#4@3 a3@5 a3@4 d4@3 a3@3 d4@2 a4@6 a3@3 d4@3 a3@3 ~ d4@2 a4@6 a3@3 ~@3 a3@4, ~@33 d4@2 ~]/3",
  N: "~@3 g#2 ~@5 g#2 ~@2", O: "~@6 g#2 ~@11 g#2 ~@5", P: "g#2 ~@23",
  Q: "~@3 g3@3 [g#2,c4]@3 g3@3 c4@3 ~@5 g3@3 ~, ~@15 g4@5 ~@4, ~@9 g#2@2 ~", R: "c4 g3 [g#2,c4] g4@2 g3 [g#2,c4] g3",
  S: "~@3 g3@3 [g#2,b3]@3 g3@2 b3@3 ~@4 g#2@3 g3@3, ~@15 g4@5 ~@4", // G#m
  T: "b3@2 ~ g3@3 [g#2,b3]@3 g4@6 g3@3 [g#2,b3]@3 g3@3", // G#m
  U: "[~@3 g3@3 b3@2 g3@3 ~ b3@3 ~@3 g#2@3 g3@31 ~@20, ~@6 g#2@4 ~@5 g4@6 ~@51]/3", V: "[~@4 c2@33 ~@11]/2",
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.3)

// other · acoustic guitar steel · "FOOT" · soft notes
const acoustic_guitar_steel_2 = note("<~ A@6 ~@8 B ~@4 C ~@78>".pickRestart({
  A: "[~@3 [a3,d4]@5 ~ [a3,d4]@6 [a3,d4]@6 [a3,d4]@6 [a3,d4]@6 [a3,d4]@4 ~@2 [a3,d4]@5 [a3,d4]@6 a3@6 ~ a3@6 [a3,d4]@5 ~ d4@5 [a3,d4]@6 a3@6 [a3,d4]@6 [a3,d4]@6 [a3,d4]@6 [a3,d4]@6 [a3,d4]@6 a3@6 ~ [a3,d4]@6 [a3,d4]@6 ~@9, ~@28 d4@3 ~@3 a3@3 ~@35]/6", // D5
  B: "~@7 a3", C: "~ a3 ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.3)

// bass · acoustic bass · "BASS              2"
const bass = note(`<
  ~@9 A@3 B C@3 D@2 A@2 E@2 C@3 A F G@2 H I J K L@2 M N O P Q R@2 S T U O V@2 G L W X Y J Z L AA J AB L@2 M AC O AD S@4
  O AE O AD S@4 T Y AF J L AG AF AH L@2 AI N O AJ S AK L AL@2 ~@3
>`.pickRestart({
  A: "d2@2 ~ a1@2 ~ d2@2 ~ a1@2 ~", B: "d2@5 ~ a1@4 ~@2 d2@5 ~ f#2@3 g2@3", C: "a2@5 ~ e2@4 ~@2 a2@4 ~@2 e2@4 ~@2",
  D: "[a2@4 ~@2 e2@4 ~@2 a2@5 e2@4 ~@2 d2@4 ~@3 a1@4 ~@2 d2@4 ~@2 a1@4 ~@2]/2",
  E: "[d2@4 ~@2 a1@4 ~@2 d2@4 ~@2 f#2@4 ~ a2@5 ~@2 e2@4 ~@2 a2@5 ~ e2@4 ~@2]/2",
  F: "d2@4 ~ d2@4 ~@3 e2@4 ~@2 f#2@4 ~@2", G: "g2@2 ~ d2@2 ~ g2@2 ~ d2@2 ~", H: "c2@2 ~ g2@2 ~ c3@2 ~ g2@2 ~",
  I: "c2@4 ~@2 g2@4 ~@2 c3@4 ~@2 g2@2 c2@3 ~", J: "f2@3 ~@3 c2@4 ~@2 f2@4 ~@2 c2@4 ~@2",
  K: "f2@3 ~@3 c2@4 ~@2 f2@4 f2 ~ f2@3 f#2@3", L: "g2@2 ~ d2@2 ~ g1@2 ~ d2@2 ~",
  M: "g2@4 ~@2 d2@4 ~@2 g1@2 ~ g1@3 a#1@3 b1@3", N: "g1@23 ~", O: "c2@3 ~@3 g1@4 ~@2 c2@4 ~@2 g1@4 ~@2",
  P: "c2@4 ~@2 g1@4 ~@2 c2@4 ~@2 e2@2 f2@3 ~", Q: "g2@4 ~@2 d2@4 ~@2 g2@4 ~ d2@5 ~@2",
  R: "[g2@4 ~ d2@4 ~@3 g2@4 ~ d2@4 ~@2 g1@5 ~ d2@4 ~@3 g2@4 ~@2 d2@4 ~@2]/2", S: "g1@2 ~ d2@2 ~ g2@2 ~ d2@2 ~",
  T: "c2@2 ~ g1@2 ~ c2@2 ~ g1@2 ~", U: "c2@4 ~@2 g1@5 ~ c2@3 g1@3 a1@2 ~ b1@3",
  V: "[c2@4 ~ g1@4 ~@3 c2@4 ~@2 e2@4 ~ g2@3 ~@4 d2@3 ~@3 g2@4 ~@2 d2@4 ~@2]/2",
  W: "g2@3 ~@3 d2@4 ~@2 g1@4 ~@2 d2@3 ~@3", X: "c2@4 ~@2 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3", Y: "c2@2 ~ c2@2 ~ d2@2 ~ e2@2 ~",
  Z: "f2@4 ~@2 c2@5 ~ f2@4 ~@2 f2@3 f#2@2 ~", AA: "g2@5 ~ g1@5 ~ b2@6 g2@3 f#2@3",
  AB: "f2@4 ~@2 c2@4 ~@2 f2@3 ~ f2 ~ f2@2 f#2@3 ~", AC: "g1@7 ~", AD: "c2@4 ~@2 g1@4 ~@2 c2@4 ~@2 e1@2 f1@3 ~",
  AE: "c2@4 ~@2 g1@4 ~@2 a1@4 ~@2 b1@3 ~@3", AF: "f2@2 ~ c2@2 ~ f1@2 ~ c2@2 ~",
  AG: "g2@4 ~@2 d2@3 ~@3 g1@4 ~@2 d2@3 g2@3", AH: "f2@4 ~@2 c2@3 ~@3 f2@3 ~ e2@2 f2@3 f#2@3",
  AI: "g2@4 ~@2 d2@4 ~@2 g1 ~@2 g1@3 a#1@3 b1@3", AJ: "c2@4 ~@2 g1@4 ~@2 c2@3 ~@2 e1 f1@2 f#1@3 ~",
  AK: "g1@4 ~@2 d2@4 ~@2 g2@3 ~@3 d2@4 ~@2", AL: "[g1@19 ~@5]/2",
})).s("gm_acoustic_bass").gain(0.3)

// other · pad poly · "POLYSNTH"
const pad_poly = note(`<
  A B A B C@2 D E F G B G B H I H I G B J K L M L N J O P@2 Q@2 R S T U@2 V W@2 X Y@2 X W@2 Z W X Y@2 AA@3 S AB AC P R@2
  AD@2 AE V AF@2 AG@2 V@2 AH AF AI AJ AK@4 AI AL AM@2 AN P AO@2 AP AQ AR V AS AT AU V AV V ~@4
>`.pickRestart({
  A: "~@9 a2@2 ~", B: "d3@5 ~@19", C: "[~@18 a2@4 ~ d3@5 ~@8 g4 a4@7 ~@4]/2", D: "d3@5 ~@7 a4@6 ~@6, ~@12 g4 ~@11",
  E: "d3@4 ~@2 a4@4 ~@2 d3@4 ~ g4 a4@5 ~, ~@6 g4 ~@17",
  F: "d3@4 ~@2 a4@3 ~@3 a4@3 ~@3 a4@4 ~@2, ~@6 g4 ~@5 g4 ~@5 g4 ~@5", G: "d3@5 ~@13 a2@5 ~", H: "a2@5 ~@13 e3@5 ~",
  I: "a3@5 ~@19", J: "d3@5 ~@7 d3@4 ~@2 a2@4 ~@2", K: "d3@5 ~@7 d3@4 ~@2 f#2@4 ~@2", L: "a2@5 ~@7 a2@5 ~ e3@4 ~@2",
  M: "a2@5 ~@7 a2@5 ~ e3@6", N: "a3@5 ~@7 a3@5 ~ e3@5 ~", O: "d3@4 ~@2 d3@3 d5@2 ~ e3@2 d5@2 ~ f#3 f#5@2 d5@2 ~@2",
  P: "g3@2 ~ d3@2 ~ g3@2 ~ d3@2 ~", Q: "c3@4 ~@2 g3@5 ~ c3@5 ~ g3@4 ~@2", R: "f3@5 ~ c3@5 ~ f3@5 ~ c3@5 ~",
  S: "f3@5 ~ c3@5 ~ f3@4 ~@2 c3@4 ~@2", T: "g2@2 ~ g3@2 ~ g2@3 ~@3",
  U: "[g2@4 ~@2 g3@5 ~ g2@6 ~@5 g2@5 ~@2 g3@5 ~ g2@6 g3@5 ~]/2", V: "g2@5 ~@19", W: "c3@5 ~ g2@4 ~@2 c3@5 ~ g2@4 ~@2",
  X: "g2@4 ~@2 d3@5 ~ g2@4 ~@2 d3@5 ~", Y: "[g2@5 ~ d3@4 ~@2 g2@4 ~@2 d3@4 ~ g2@5 ~@2 d3@4 ~ g2@5 ~@2 d3@5 ~]/2",
  Z: "c3@5 ~ g2@5 ~ c3@4 ~ g2@5 ~@2",
  AA: "[g2@5 ~ d3@5 ~ g2@5 ~ d3@5 c3@6 ~ g2@4 ~@2 c3@5 g2@4 ~@2 c3@4 ~@3 c3@2 ~ c5@2 ~ d3@2 ~ c5@2 ~ e3@3 c5@2 ~]/3",
  AB: "f3@4 ~ c3@5 ~@2 f3@5 ~ c3@5 ~", AC: "g3@4 ~@2 d3@5 ~ g3@5 ~ d3@5 ~",
  AD: "[g2@4 ~@2 g3@5 ~ g2@6 ~@5 g2@5 ~@2 g3@6 g2@6 ~@6]/2", AE: "g2@5 ~ g3@6 g2@5 ~ g3@5 ~", AF: "c3@5 ~@19",
  AG: "g2@7 ~@17", AH: "c3@6 ~@6 c3@5 ~ g2@5 ~", AI: "c3@2 ~@4 c3@2 ~ g2@2 ~", AJ: "c3@5 ~@7 c3@5 ~ e2@4 ~@2",
  AK: "g2@5 ~@7 g2@4 ~@2 d3@4 ~@2", AL: "c3@5 ~ c3@3 c5@3 d3@2 ~ c5@3 e3@2 ~ c5@3",
  AM: "[f3@5 ~ c3@3 ~@3 f3@3 ~@3 c3@3 ~@2 f3@3 ~@4 c3@3 ~@3 f3@3 ~@3 c3@3 ~@3]/2", AN: "g3 ~ d3 ~ g3 ~ d3 ~",
  AO: "f3@4 ~@2 c3@3 ~@3 f3@3 ~@3 c3@3 ~@3", AP: "g2@3 ~@3 g3@3 ~@3 g2@5 ~@7", AQ: "g2@5 ~ g3@4 ~@2 g2@3 ~@2 g2 ~@6",
  AR: "g2@2 ~ g3@2 ~ g2@2 ~ g3@2 ~", AS: "c3@6 ~@12 g3@5 ~", AT: "c3 ~@2", AU: "g2@5 ~@13 d3@5 ~",
  AV: "g2@7 ~@11 d3@4 ~@2",
})).s("gm_pad_poly").gain(0.43).pan(0.4)

// chords · banjo · "BANJO  L"
const banjo = note("<~@5 A B C D ~@80 E F G H@5 I@2>".pickRestart({
  A: "a3 ~@2", B: "a3@5 ~@7", C: "a3@6 ~@6 a3@5 ~@7", D: "a3@3 ~@3 a3@3 ~@3 a3@3 ~@2 a3@3 ~@4",
  E: "c3@3 ~ c3@2 d3@3 [g3,c4]@2 e3 e3@3 ~@3 d3@3 ~ e3@2, ~ [g3,c4] ~@3 [g3,c4] ~ [g3,c4], ~@4 c3 ~", // C5
  F: "c3@3 ~@3 g2@3 ~@3 c3@3 ~@3 g2@3 ~ e3@2, ~ [g3,c4] ~ [g3,c4] ~ [g3,c4] ~ [g3,c4], ~@2 c3@2 ~ e3@2 ~ c3@2 ~@2", // C5
  G: "d3@3 g3 g3@2 e3@3 g3 d3@2 f3@3 g3 g3@2 e3@3 ~ d3 ~, ~@3 b3@3 ~@3 b3@3 ~@3 b3@2 ~@4 [g3,b3]@3", // G
  H: "[d3@3 g3 g3@2 g2@2 ~@2 d3@2 d3@3 g3 g3@2 g2@3 ~ d3 d3@3 b3@2 g3@2 e3@3 ~ f3@2 f3@3 g3 g3@2 e3@3 ~@3 d3@2 ~@33 c3@7 ~ d3@7 e3@8 ~@2 d3@2 e3@2 d3@8, ~@3 b3@3 ~@3 [g3,b3]@3 ~@3 b3@3 ~@3 [g3,b3]@3 ~@2 g3 ~@6 [g3,b3]@3 ~@3 b3@3 ~@3 [g3,b3]@3 ~@72, ~@46 f3@29 ~@45]/5", // G
  I: "[~@5 c5@28 ~@15, ~ c3@11 ~@4, ~@2 [e4,g4]@15 ~@7]/2", // Em
})).s("gm_banjo").gain(0.13).pan(0.3)

// chords · banjo · "BANJO  R"
const banjo_2 = note(`<
  ~ A B C@2 D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL AM AL AN AO AP AQ AR@2
  AS@2 AT AU AV@2 AW@2 AV@2 AX@2 AY AH AZ BA AY BB@2 BC BD BE BF BG AY BH AY BH BD BI AD BJ BK BL BM@2 AF BN AG BO BP BQ
  AY BR BS BT BU@4
>`.pickRestart({
  A: "d3@3 f#4@2 ~@4 f#4@2 ~ d3@3 f#4@3 a2@3 f#4@3", B: "d3 f#4 ~@2 d3 f#4 ~ f#4, ~@18 a2@5 ~",
  C: "[d3@3 f#4@3 ~@6 d3@3 ~@3 a2@4 ~ d3@4 ~@9 d3@3 f#4@2 ~ a2@4 ~@2]/2", D: "d3@3 f#4@2 ~@6 d3@3 ~@4 a2@4 ~@2",
  E: "a3@5 ~@7 d3@3 ~@3 a2@4 ~ g3, d3 ~@7, g3 ~@23",
  F: "d3@3 f#4@3 ~@6 d3@3 f#4@2 ~ a2@3 f#4@3, a3@5 ~@7 a3@5 ~@7, ~@12 g3 ~@11",
  G: "[d3,a3]@3 ~@3 a3@3 ~@3 [d3,a3]@3 [d4,f#4]@2 g3 [a2,a3]@3 [d4,f#4]@3, g3 ~@5 g3 ~@5 g3 ~@11", // D5 D A D
  H: "d3@3 f#4@2 ~ a2@3 f#4@2 ~ d3@3 f#4@2 ~ a2@3 f#4@2 ~",
  I: "d3@3 f#4@2 ~@4 f#4@2 ~@4 f#4@2 ~@4 f#4@2 ~, ~@6 a2@5 ~ d3@5 ~ a2@5 ~",
  J: "d3@5 ~ a2@4 ~@2 d3@3 f#4@3 a2@3 f#4@2 ~", K: "d3@4 ~@2 a2@3 f#4@2 ~ d3@4 ~@2 a2@4 ~@2",
  L: "a2@3 e4@2 ~ e3@3 ~@3 a2@3 ~@2 e3@4 e4@2 ~, ~@3 c#4 ~@20",
  M: "a2@3 [c#4,e4]@2 ~@4 e4@2 ~ a2@5 ~ e3@5 ~, ~@6 e3@5 ~@13, ~@4 c#4 ~@7", // C#m
  N: "~@3 e4@2 e3@4 e4@2 ~ a2@4 ~@4 e4@3 ~, a2@5 ~@13 e3@4 ~@2", O: "a2@3 e4@2 ~ e3@4 ~@2 a2@4 ~@2 e3@3 ~@3",
  P: "~@3 f#4@2 ~@10 f#4@2 ~ a2@3 f#4@2 ~, d3@5 ~@7 d3@5 ~@7",
  Q: "~@3 f#4@2 ~ a2@4 ~@2 d3@3 f#4@2 ~ a2@3 ~@3, d3@5 ~@19", R: "d3@3 f#4@2 ~ a2@3 ~@3 d3@3 ~@3 a2@3 f#4@2 ~",
  S: "d3@3 f#4@2 ~@4 f#4@2 ~ d3@3 f#4@2 ~ a2@3 f#4@2 ~", T: "a2@2 ~@4 e3@3 e4@2 ~ a2@3 e4@2 ~ e3@3 ~@3",
  U: "a2@3 ~@3 e3@3 ~@3 a2@2 e4@2 ~@2 e3@3 e4@3", V: "a2@3 ~@3 e3@3 e4@2 ~ a2@3 ~@3 e3@3 ~@3",
  W: "a2@2 ~@4 e3@3 ~@3 a2@3 ~@3 e3@3 ~@3", X: "d3@2 d4@3 ~ a2@2 ~ f#4@2 ~ d3@3 f#4@2 ~ a2@3 f#4@2 ~",
  Y: "d3@3 ~@2 d3@3 d4@3 e3@3 d4@3 ~ f#3@3 d4@3", Z: "d3@5 ~ g2@4 ~@2 d3@3 ~@3 g2@3 ~@3",
  AA: "d3@3 ~@3 g2@3 ~@3 d3@5 ~ g2@3 ~@3", AB: "c3@4 ~@2 g2@4 ~@2 c3@4 ~@2 g2@3 ~@3", AC: "c3@2 ~ g2@2 ~ c3@2 ~ g2@2 ~",
  AD: "f3@4 ~@2 c3@5 ~ f3@4 ~@2 c3@5 ~", AE: "d3@5 ~ g2@4 ~@2 d3@6 ~@6", AF: "d3@5 ~ g2@4 ~@2 d3@4 ~@8",
  AG: "d3@5 ~ e3@5 ~ f3@4 ~@2 e3@5 ~", AH: "d3@7 ~@17",
  AI: "~@3 g4 ~@2 d3@3 g4@2 ~@4 g4@2 ~@4 g4@2 ~, c3@5 ~@7 e3@6 d3@5 ~",
  AJ: "~@3 g4@2 ~@4 g4 ~@5 g4 ~@5 g4 ~@2, c3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~",
  AK: "~@3 g4 ~@5 g4 ~@5 g4 ~@5 g4 ~@2, d3@5 ~ e3@5 ~ f3@5 ~ e3@5 ~",
  AL: "~@3 g4 ~@5 g4 ~@5 g4 ~@5 g4 ~@2, d3@5 ~ g2@5 ~ d3@5 ~ g2@5 ~",
  AM: "~@3 g4 ~@5 g4 ~@5 g4 ~@5 g4 ~@2, d3@5 e3@6 ~ f3@5 ~ e3@6",
  AN: "~@3 g4 ~@5 g4 ~@5 g4 ~@5 g4 ~@2, e3@5 ~ f3@5 ~ a3@5 ~ g3@6",
  AO: "~@3 g4 ~@5 g4@2 ~@4 g4@2 ~@4 g4@2 ~, e3@6 g2@5 ~ e3@5 ~ g2@5 ~",
  AP: "~@3 g4@2 ~@4 g4@2 ~@4 g4@2 ~@4 g4@2 ~, e3@5 ~ f3@5 ~ a3@5 ~ g3@5 ~",
  AQ: "~@3 g4@2 ~ g2@6 ~@3 g4@2 ~@4 g4@2 ~, e3@6 ~@6 e3@5 g2@6 ~",
  AR: "[~@3 g4@2 ~@4 g4@2 ~@4 g4@2 e3@4 g4@2 ~@4 g4@2 g2@4 g4@2 ~@4 g4@2 g2@4 g4@2 ~, d3@5 e3@6 ~ f3@6 ~@5 d3@6 ~@6 d3@6 ~@7]/2",
  AS: "[~@3 g4@2 ~@4 g4@2 ~@4 g4@2 ~@4 g4@2 d3@4 g4@2 ~@4 g4@2 ~@4 g4@2 ~@4 g4@2 ~, d3@5 e3@6 ~ f3@6 e3@5 ~@7 g2@6 d3@5 ~ e3@5 ~]/2",
  AT: "~@3 g4@2 ~@4 g4@2 ~@4 g4@2 ~@4 g4@2 ~, c3@5 ~ d3@5 ~ e3@5 ~ d3@6",
  AU: "~@3 g4@2 ~@4 g4@2 ~ f3@5 ~ g3@3 g4 ~@2, c3@5 ~ e3@5 ~@13", AV: "f3@5 ~ c3@6 f3@6 c3@5 ~",
  AW: "g2@5 ~ d3@6 g2@5 ~ d3@5 ~", AX: "d3@5 ~ g2@6 d3@11 ~", AY: "d3@5 ~ e3@5 ~ f3@5 ~ e3@6",
  AZ: "~ c3@5 d3@6 e3@5 ~ d3@5 ~", BA: "c3@6 g2@5 ~ e3@3 f3@3 e3@6",
  BB: "[d3@6 g2@5 ~ f3@6 e3@5 d3@5 ~ g2@5 ~@2 f3@5 e3@6 ~]/2", BC: "d3@5 g2@5 ~@2 e3@6 d3@6", BD: "c3 d3 e3 d3",
  BE: "c3@5 ~ g2@5 ~ a2@5 ~ b2@5 ~", BF: "e3@5 ~ f3@5 ~ a3@5 ~ g3@6", BG: "e3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~",
  BH: "d3@5 ~ g2@5 ~ d3@5 ~ g2@6", BI: "c3@5 ~ e3@5 ~ f3@5 ~ g3@5 ~", BJ: "f3@3 ~@2 c3@4 ~@3 f3@3 ~@3 c3@3 ~@3",
  BK: "g3 ~ d3 ~ g3 ~ d3 ~", BL: "g3@4 ~@2 d3@3 ~@3 g3@4 ~@2 d3@4 ~@2", BM: "f3 ~ c3 ~ f3 ~ c3 ~",
  BN: "d3@4 ~@2 g2@4 ~@2 d3@5 ~@7", BO: "d3 ~@3", BP: "c3@5 ~ d3@5 ~ e3@6 d3@6", BQ: "c3@5 ~ g2@5 ~ c3@6 ~@6",
  BR: "d3@5 ~ g2@5 ~@7 g2@4 ~@2", BS: "d3@5 ~ e3@5 ~ f3@6 e3@4 ~@2", BT: "d3 ~@5",
  BU: "[~@11 [c3,c4]@7 [d3,c4]@8 [e3,c4]@8 ~@4 e3@2 d3@8 ~@4 e4@33 ~@11, ~@35 d3@3 ~@12 c3@35 ~@11, ~@36 c4@14 ~ [g3,c4]@34 ~@11]/4", // C D7 C C5
})).s("gm_banjo").gain(0.13).pan(0.8)

// chords · banjo · "BANJO  R" · soft notes
const banjo_soft = note(`<
  ~ A B C D E F G H I@2 J K L M N O P Q R I S T U V W X ~@19 Y ~@5 Z ~@37 AA ~ AB ~@6
>`.pickRestart({
  A: "~@3 d4@3 ~ d3@2 d4@3 ~@3 d4@3 ~@3 d4@3", B: "~@3 d4@3 ~@3 [d4,f#4]@2 ~@4 d4@3 ~@3 d4@3",
  C: "~@3 d4@3 d3@3 [d4,f#4]@3 ~@2 [d4,f#4]@3 ~@4 [d4,f#4]@2 ~", // D
  D: "~@3 [d4,f#4]@2 ~@4 [d4,f#4]@3 ~@3 d4@3 ~@3 [d4,f#4]@2 ~", // D
  E: "~@3 d4@2 d3@2 ~ [d4,f#4]@2 ~@4 [d4,f#4]@3 ~@3 [d4,f#4]@3 ~", // D
  F: "~@3 [d4,f#4]@3 d3@2 ~ [d4,f#4]@3 ~@3 [d4,f#4]@2 ~@4 d4@3, ~@20 f#4@3 ~", // D
  G: "~@3 d4@3 ~ d3 ~ [d4,f#4]@3 ~@3 d4@2 ~@4 d4@3", H: "~@3 [d4,f#4]@2 ~@4 [d4,f#4]@3 ~@12", I: "~ d4 ~ d4 ~ d4 ~ d4",
  J: "~@3 d4@3 ~@3 [d4,f#4]@3 ~@3 d4@3 ~@3 d4@2 ~, ~@3 f#4 ~@20", K: "~ [d4,f#4] ~ d4 ~ [d4,f#4] ~ [d4,f#4]",
  L: "~@9 [c#4,e4]@2 ~@3 [c#4,e4]@2 ~@5 c#4@2 ~", M: "~@15 [c#4,e4]@2 ~@4 [c#4,e4]@2 ~",
  N: "~@3 c#4@2 ~@4 c#4@2 ~@4 [c#4,e4]@2 ~@4 c#4@2 ~", O: "~@3 c#4@2 ~@4 [c#4,e4]@2 ~@4 [c#4,e4]@2 ~@4 [c#4,e4]@3",
  P: "~@2 d4@3 ~ a2@3 [d4,f#4]@3 ~@3 d4@3 ~@3 d4@2 ~", Q: "~@3 d4@2 ~@4 [d4,f#4]@3 ~@3 d4@2 ~@4 [d4,f#4] ~@2",
  R: "~ d4 ~ [d4,f#4] ~ [d4,f#4] ~ d4", S: "~@3 [c#4,e4]@2 ~@4 c#4@2 ~@4 c#4@2 ~@3 [c#4,e4]@3 ~",
  T: "~@2 [c#4,e4]@2 ~@4 [c#4,e4]@3 ~@3 c#4@2 ~@5 c#4@3", U: "~@3 [c#4,e4]@2 ~@4 c#4@2 ~@4 [c#4,e4]@2 ~@4 [c#4,e4]@2 ~",
  V: "~@2 [c#4,e4]@2 ~@5 e4@2 ~@4 [c#4,e4]@2 ~@4 [c#4,e4]@2 ~, ~@4 c#4 ~@7", W: "~@4 f#4 ~@4 d4@2 ~@4 d4@2 ~@4 d4@3",
  X: "~@3 [d4,f#4]@2 ~@19", Y: "~@9 g4@2 ~@13", Z: "~@15 g4@2 ~@7", AA: "~@18 g2@5 ~", AB: "~@2 d3 ~",
})).s("gm_banjo").gain(0.05).pan(0.8)

// chords · brass section · "BRASS1 R"
const brass_section = note(`<
  ~@27 A@2 B@2 C@2 D@3 E ~@7 F@8 G H I J@4 K@2 L M@2 ~@7 N@2 O@2 P@4 Q R S T@2 U V@2 W X ~@10
>`.pickRestart({
  A: "[[g4,b4]@47 ~]/2", B: "[[g4,c5]@47 ~]/2", C: "[[f4,a4]@23 ~]/2", D: "[g4,b4]@23 ~", E: "[g4,b4]",
  F: "[~@3 g4@61]/8", G: "~ e4 f4 g4", H: "a4@9 [a4,c5]@2 ~@4 [a4,c5]@5 ~ [g#4,b4]@3", I: "[a4,c5] [g#4,b4] [a4,c5]@6",
  J: "[g4@9 d5@3 ~@3 d5@3 ~@8 [a#4,c#5]@3 ~ b4@16 ~@2 f5@46 ~@2, b4@20 c#5@3 d5@3 ~@3 d5@16 ~@51, ~@21 a#4@3 b4@4 ~@19 c5@46 ~@3]/4", // A#m
  K: "b4@3 c5@3 b4@5 ~", L: "~@6 c5@5 ~ d5@6 c5@6, b4 ~@2", M: "[b4@5 ~@3]/2", N: "c5/2", O: "[d5@47 ~]/2",
  P: "[b4@46 ~ c5@30 ~@6 f5@7 g5@6, ~@78 e5@7 ~@11]/4", Q: "[a4,c5]@7 ~@2 [a4,c5]@2 ~@4 [a4,c5]@3 ~@6, f4@19 ~@5",
  R: "~@3 [a4,c5]@5", S: "[g4,b4]@8 ~ [g4,b4]@3 ~@3 [g4,b4]@3 ~@3 [f#4,a#4]@3",
  T: "[[g4,b4]@3 [f#4,a#4]@3 ~@3 d5@13 ~@2 c5@3 [g#4,b4]@3 [a4,c5]@2 ~ a4@3 ~@3 [a4,c5]@3 ~@3 [g#4,b4]@3, ~@6 [g4,b4]@17 a4@4 ~@5 c5@4 ~@12]/2", // G F# G#m Am G#m G
  U: "[a4,c5]@2 ~ g#4@3 ~@3 f5@14 ~, ~@2 b4@3 ~ [a4,c5]@16 ~@2", V: "b4@6 c5@6 b4@7 ~@5, g5@19 ~@5",
  W: "b4@6 c5@5 ~ d5@5 ~ c5@5 ~, g5@11 ~", X: "[b4,g5]@23 ~",
})).s("gm_brass_section").gain(0.32).pan(0.6)

// other · brass section · "BRASS1 L"
const brass_section_2 = note(`<
  ~@27 A B C@3 D A@2 E@2 ~@15 F@8 G@2 H I J K L M N O P Q R S@2 T U V W X Y@3 Z AA AB AC AD AE ~@10
>`.pickRestart({
  A: "g3 d3 g3 d3", B: "g3@6 d3@5 g3@6 d3@5 ~@2",
  C: "[c3@5 g3@5 ~ c3@6 g3@6 c3@6 ~ g3@6 c3@6 g3@5 f3@6 c3@6 f3@6 ~ c3@6]/3", D: "f3@5 c3@6 ~ f3@5 c3@6 ~",
  E: "[g3@6 d3@6 g3@6 d3@5 g3@24 ~]/2",
  F: "[~@5 c4@7 d4@6 e4@5 ~ f3@6 c3@6 f3@5 c3@6 f3@6 ~ c3@5 f3@5 ~ c3@6 ~@6 d3@6 ~ g3@6 d3@6 g3@5 d3@6 g3@6 d3@6 ~@6 c3@6 f3@6 ~ c3@6 f3@5 c3@6 ~ f3@6 c3@5 ~@7 e5@6 [g3,d5]@6 d3@6, ~@23 f4@48 g3@6 ~@42 f3@6 ~@42 g3@6 d3@6 ~@13, ~@72 g4@48 f4@45 ~@3 d5@7 ~@17]/8", // G5
  G: "[[g3,d5]@5 ~@7 d5@6 d3@5 ~ d5@5 ~ e5@6 [g3,f5]@6 [d3,e5]@6, ~@5 d3@6 g3@6 ~@6 g3@6 d3@6 ~@13, ~@6 e5@7 ~@35]/2", // G5 G7 Dsus2
  H: "[g3,d5]", I: "c5 d5 e5 d5", J: "c5@6 g4@6 e5@2 f5@3 ~ e5@5 ~", K: "d5@5 e5@6 f5@7 e5@6",
  L: "d5@6 g4@6 f5@2 ~ f5@3 e5 ~@2 e5@3", M: "d5@6 g4@6 f5 ~ f5@4 e5@2 e5@3 ~", N: "d5@6 g4@6 e5 ~@2 e5@3 d5 ~ d5@3 ~",
  O: "c5@5 d5@6 ~ e5@6 d5@6", P: "c5@23 ~", Q: "e4 f4 [c4,a4] [g3,g4], c4@11 ~@13", R: "c4@11 c4@6 ~ e3@6, e4@23 ~",
  S: "[d4@5 e4@6 ~ [g3,f4]@6 [d3,e4]@5 g3@12 ~ g3@6 d3@6, g3@11 ~@12 d4@24 ~]/2", T: "d4 e4 [g3,f4] [d3,e4], g3 ~",
  U: "g3@11 ~ g3@5 d3@6 c4, d4", V: "~ d4 [c4,e4] [g3,d4], c4@11 ~@13", W: "c4 ~@11 d4@6 e4@6", X: "f4@7 e4",
  Y: "[f4@3 e4@3 f4@17 g4@21 f#4@3 g4@3 f#4@3 g4@18 ~]/3", Z: "a4@7 g#4", AA: "a4@3 g#4@2 a4@16 ~@3",
  AB: "d5@5 e5@7 d5@6 ~@6", AC: "d5@6 e5@6 d5@7 ~@5", AD: "d5 e5 f5 e5", AE: "d5@11 ~",
// … 131 more lines

More by Neil Diamond