Strudelify

Do Wah Diddy

Manfred Mann

KeyG majorTempo125 bpm
0:00/0:00
// Do Wah Diddy — Manfred Mann
// 125 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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 · rock organ
const rock_organ = note(`<
  ~@5 A B ~@2 A B C D@2 E ~@4 F G ~@2 F H I J K L M@6 N@2 ~@2 O P ~@2 O P Q R S T U@2 V@2 W@2 X@2 ~@2 O P ~@2 O Y Q R S
  T ~@7 Z
>`.pickRestart({
  A: "~@3 d5@3 ~ d5 ~ d5@3 ~ d5 ~ d5", B: "~ d5 ~ e5@3 ~ e5@2 c5 ~ d5@2 ~@3", C: "~@7 g5@2 ~@2 d5@3 ~@2",
  D: "[~@7 g5@2 ~@2 d5 ~ d5 ~ g5@2 ~@2 d5@2 d5@2 g5@2 ~@2 d5@3 ~ g5]/2", E: "~ g5 ~ d5 ~ d5 ~ g5 ~ g5 ~ d5@3 ~@2",
  F: "~@2 d5@3 ~ d5 ~ d5@3 ~ d5 ~ d5 ~", G: "d5 ~ e5@3 ~ e5@2 c5 ~ d5@3 ~@3", H: "d5 ~ e5@3 ~ e5 ~ c5 ~ d5@2 ~@4",
  I: "~@6 g5@2 ~@2 d5@3 ~@3", J: "~@6 g5@2 ~@2 d5 ~ d5 ~ g5@2", K: "~@2 d5@2 d5@2 g5@2 ~@2 d5@2 ~@2 g5 ~",
  L: "g5 ~ d5 ~ d5 ~ g5 ~ g5 ~ d5@3 ~@3", M: "[~@2 [d5,g5,b5]@31 ~ [g4,b4,e5]@31 [c5,e5,g5]@31]/6",
  N: "[~ [d5,f#5,a5]@30 ~]/2", O: "d5@3 ~ d5 ~ d5@3 ~ d5 ~ d5 ~ d5 ~", P: "e5@3 ~ e5@2 c5 ~ d5@3 ~@5",
  Q: "~@4 g5@2 ~@2 d5@3 ~@5", R: "~@2 g5 ~ d5 ~ g5 ~", S: "d5@2 ~@2 g5@2 ~@2 d5@2 ~@2 g5 ~ g5 ~",
  T: "d5 ~ d5 ~ g5 ~ g5 ~ d5@3 ~@5", U: "[d5,g5,b5]/2", V: "[g4,b4,e5]/2", W: "[c5,e5,g5]/2", X: "[[d5,f#5,a5]@15 ~]/2",
  Y: "e5@3 ~ e5 ~ c5 ~ d5@2 ~@6", Z: "~@8 g4@3 ~@5",
})).s("gm_rock_organ").gain(0.62)

// other · piano
const piano = note("<~@13 A@2 ~@12 B C D@2 ~@2 E@2 ~@12 F G H I@4 J@8 ~@5 F G ~@8>".pickRestart({
  A: "[~@7 [g2,g3,g4]@4 [d2,d3,d4]@4 [g2,g4]@2 g3 ~ [d2,d3,d4] ~ [d3,d4] ~ [g3,g4] ~ [g3,g4] ~ [d2,d3,d4]@4 ~, ~@15 g3 ~@5 d2@2 g2@2 g2@2 ~@5]/2", // G D G D G D
  B: "~@3 [g2,g3,g4]@2 [d2,d3,d4]@2 [g2,g4], ~@14 g3 ~", // G D G
  C: "g3 ~ [d2,d3,d4] ~ [d3,d4] ~ [g3,g4] ~ [g3,g4] ~ [d2,d3,d4]@4 ~@2, ~@2 d2 g2!2 ~@3", // D G D
  D: "[~@10 [d5,d6]@2 ~ [e5,e6]@2 [f#5,f#6]@2 ~ [g5,g6]@14]/2", // D E F# G
  E: "[~@9 [b4,b5]@2 ~ a4@2 ~ g4@2 [f#4,f#5]@2 ~ [e4,e5]@10 ~@2, ~@12 a5 ~@2 g5 ~@16]/2", // B F# E
  F: "~@4 [g2,g3,g4]@4 [d2,d3,d4]@4 [g2,g4]@2 g3 ~, ~@12 g3 ~@3", // G D G
  G: "[d2,d3,d4] ~ [d3,d4] ~ [g3,g4] ~ [g3,g4] ~ [d2,d3,d4]@4 ~@4, ~ d2 g2!2 ~@4", // D G D
  H: "~@8 [d5,d6]@3 [e5,e6]@3 [f#5,f#6]@2", I: "[[g5,g6]@56 [b4,b5]@3 [a4,a5]@3 [g4,g5]@2]/4",
  J: "[[f#4,f#5]@3 [e4,e5]@125]/8", // F# E
})).s("gm_piano").gain(0.4).pan(0.9)

// bass · slap bass 2
const bass = note(`<
  ~ A B ~@2 C D@2 E@2 F ~@2 G@3 H I J K L M N O P ~@2 Q R S T@3 U@2 V W X Y Z AA AB AC AD AE ~@2 AF AG AH AI AJ AK AL AM
  AN AO ~ AP AQ AR AS AT AU AV AW AX AF AY AZ BA BB BC BB BD BE AE
>`.pickRestart({
  A: "~@3 g2@4 ~@2 g2@2 d2@3 ~@2", B: "~ d2@2 c2@3 ~ c2@3 ~ g1@2 ~@3", C: "~@3 g2@5 ~ g2@2 d2@5",
  D: "[~ d2@2 c2@4 c2@4 d2@2 d2@2 e2@2 f#2@2 g2@5 ~ g2@2 d2@5]/2",
  E: "[~ d2@2 c2@5 ~ c2@2 d2@2 d2@2 e2@2 f#2@2 g2@5 ~ g2@2 d2@5]/2", F: "~ d2@2 c2@3 ~ c2@4 g1@2 ~@3",
  G: "[~@7 g2@4 d2@4 g2@3 ~ d2@2 d2@2 g2@2 g2@2 d2 ~ c2@2 b1@2 a1@2 f#1@2 g1 ~ g1 ~ g1@2 f#1@2 g1@2 g1]/3",
  H: "~ g1@2 f#1@2 g1@2 g1 ~ g1@2 f#1@2 g1 ~ g1", I: "~ g1@2 ~ g1 ~ g1 ~ g1@2 f#1@2 g1@2 g1 ~, ~@3 f#1@2 ~@11",
  J: "g1@2 f#1@2 g1@2 g1 ~ g1@2 f#1@2 g1 ~ g1 ~", K: "g1!3 g2!2 e2!2 d2", L: "d2 c2!3 d2 g1 d2 e2",
  M: "f#2@2 g2@2 g1 ~ g1 ~ g1@2 f#1@2 g1 ~ g1 ~", N: "g1@2 f#1@2 g1 ~ g1 ~ g1@2 f#1@2 g1@2 g1 ~",
  O: "g1 ~ g1 ~ g1@2 g2@2 g2@2 e2@2 e2@2 d2@2", P: "d2 c2!3 d2 g1 ~@2", Q: "~@3 g2@2 d2@2 g2",
  R: "~@2 d2@2 d2@2 g2@2 g2@2 d2 ~ c2@2 b1@2", S: "a1 ~ g1@5 ~ g1@2 d2@5 ~",
  T: "[d2@2 g1@5 ~ g1@2 a1@4 b1@4 e1@5 e1@2 b1@5 ~ b1@2 e1@5 ~ e1@2 f#1@4 g1@3]/3",
  U: "[~ c2@6 c2@2 g2@5 ~ g2@2 c2@5 ~ c2@2 d2@4 e2@3]/2", V: "~ d2!2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  W: "d2 ~ d2@2 f#2@2 a2@2 c2@2 c2@2 b1@2 a1@2", X: "g1 ~ g1 ~ g1 ~ g1@2 f#1@2 g1@2 g1 ~ g1@2",
  Y: "f#1@2 g1@2 g1 ~ g1@2 f#1@2 g1 ~ g1 ~ g1 ~", Z: "g1 ~ g1@2 g2@2 g2 ~ e2@2 e2 ~ d2@2 d2@2",
  AA: "c2@2 c2 d2 g1 d2 e2 f#2", AB: "g2@2 g1 ~ g1 ~ g1@2 f#1@2 g1 ~ g1 ~ g1@2",
  AC: "f#1@2 g1 ~ g1 ~ g1@2 f#1@2 g1@2 g1@2 g1@2", AD: "g1@2 g1 ~ g2@2 g2 ~ e2@2 e2@2 d2@2 d2@2", AE: "c2!3 d2 g1 ~@3",
  AF: "~@4 g2@4 d2@4 g2@3 ~", AG: "d2@2 d2@2 g2@2 g2@2 d2 ~ c2 ~ b1 ~ a1 ~", AH: "g1@4 ~@2 g1@2 b1@4 d2@3 ~",
  AI: "g1@3 ~@3 g1@2 b1@4 d2@3 ~", AJ: "e1@3 ~@3 e1@2 g1@4 b1@4", AK: "e1@3 ~@3 e1@2 g1@4 b1@2 d2@2",
  AL: "c2@2 ~ c2 e2@2 g2@2", AM: "c2@3 ~@3 c2@2 e2@4 g2@3 ~", AN: "d2@2 d2@2 c2@2 c2 ~ b1@2 b1 ~ a1@2 a1@2",
  AO: "g1!2 f#1!2 e1!2 f#1!2", AP: "~@5 d2 e2 f#2", AQ: "f#1@2 g1 ~ g1 ~ g1@2 g1 ~ g1@2 a1@2 b1@2",
  AR: "c2!3 d2 g1 d2 e2 f#2", AS: "g2 ~@7", AT: "~@5 e1 f1 f#1", AU: "f#1@2 g1 ~ g1 ~ g1 ~ g1 ~ g1@2 a1@2 b1@2",
  AV: "c2!2 d2!2 g1 ~@3", AW: "~@4 g1@2 g1 ~ g1@2 ~@6", AX: "~@4 g1 ~ g1 ~ g1@2 ~@6",
  AY: "d2@2 d2@2 g2@2 g2@2 d2 ~ c2@2 b1@2 a1@2", AZ: "d2!8", BA: "d2!2 c2!2 b1!2 a1!2", BB: "g1!2 b1!2 d2!2 e2 d2",
  BC: "c2!2 e2!2 g2!2 e2 d2", BD: "c2!2 e2!2 g2 d2 e2 f#2", BE: "g2!2 g1!4 a1 b1",
})).s("gm_slap_bass_2").gain(0.56)

// chords · rock organ
const rock_organ_2 = note(`<
  ~@3 A B@2 ~ C@3 D@4 E ~@2 F G H ~ I G H J K L M N ~ O@3 ~ P Q R S T ~@2 S T ~ U V@2 W X ~ Y Z AA ~ AB AC AD AE AF ~@2
  AE AF ~ AG AH AI AJ AK AL AM AN AO AN AO AN AP
>`.pickRestart({
  A: "~@3 d6@3 ~ d6 ~ d6@5 ~ d6", B: "[~ d6 ~ e6 ~ e6 ~ e6@2 c6@2 d6@4 b5@2 c6@2 ~@13]/2",
  C: "[~@3 d6 ~ d6 ~ d6 ~ d6@4 d6 ~ d6@2 d6@2 e6@2 e6 ~ e6@2 c6@2 d6@4 b5@2 c6 ~@14]/3",
  D: "[~@13 d6@2 g6@2 ~@2 d6@3 ~@7 d6@2 g6@2 ~@2 d6@4 ~@6 d6@2 g6@2 ~@2 d6@2 d6@2 g6@2 ~@2 d6@3 ~ g6]/4",
  E: "~ g6 ~ d6 ~ d6@2 g6 ~ g6@2 d6@3 ~@2",
  F: "~ [b4,g5] ~ [d5,b5]@3 [d5,b5] ~ [d5,b5]@3 ~ [d5,b5] ~ [d5,b5] ~, ~@3 e5 ~@12", // Em G
  G: "[d5,b5] ~ [e5,c6] ~ [e5,c6] ~ [e5,c6] ~ [c5,a5] ~ [d5,b5]@3 ~ [b4,g5] ~", H: "[c5,a5] ~@15",
  I: "~@2 [d5,b5] ~ [d5,b5] ~ [d5,b5] ~ [d5,b5]@4 ~@2 [d5,b5] ~", J: "~@6 d6 g6", K: "~@2 d6@3 ~@7 d6@2 g6@2",
  L: "~ d6@2 ~@3 d6 g6", M: "~@2 d6@2 d6@2 g6@2 ~@2 d6@3 ~ g6 ~", N: "g6 ~ d6 ~ d6@2 g6 ~ g6@2 d6@3 ~@3",
  O: "[~@6 a6@2 g6@2 a6@2 g6@3 g6@2 g6@3 ~ g6@2 f#6@2 g6@2 ~ f#6@2 ~ e6@2 b5@3 a5 g5@2 ~ a5 b5@6 ~]/3",
  P: "~@5 f#6 ~ e6 ~ f#6 ~ e6 ~ f#6 ~ e6", Q: "~ f#6!2 ~ f#6 ~ f#6 ~ f#6@3 ~ f#6 ~ f#6 ~",
  R: "a6@2 f#6 ~ e6@2 d6@4 ~@4 b5 ~, f#6 ~@15", S: "d6@3 ~ d6 ~ d6@3 ~ d6 ~ d6 ~ d6 ~",
  T: "e6 ~ e6 ~ e6@2 c6 ~ d6@4 b5@2 c6@2", U: "~@10 d6 ~ g6@2 ~@2", V: "d6@2 ~@4 g6 ~",
  W: "d6@3 ~ g6@2 ~@2 d6@3 ~ g6 ~ g6 ~", X: "d6 ~ d6 ~ g6 ~ g6 ~ d6@4 ~@4", Y: "~@4 a6@2 g6 ~ a6 ~ g6 ~@3 f#6 ~",
  Z: "g6@2 ~ g6@2 f#6@2 ~ g6@2 ~ f#6@2 e6@2 ~", AA: "b5@3 a5 g5@2 ~ a5 b5@6 ~@2",
  AB: "~@4 f#6 ~ e6 ~ f#6 ~ e6 ~ f#6 ~ e6 ~", AC: "f#6 ~ f#6 ~ f#6 ~ f#6 ~ f#6@3 ~ f#6 ~ f#6 ~",
  AD: "a6 ~ f#6 ~ e6 ~ d6@5 ~@3 [b4,g5] ~", AE: "[d5,b5]@3 ~ [d5,b5] ~ [d5,b5]@3 ~ [d5,b5] ~ [d5,b5] ~ [d5,b5] ~",
  AF: "[e5,c6] ~ [e5,c6] ~ [e5,c6] ~ [c5,a5] ~ [d5,b5]@3 ~ [b4,g5] ~ [c5,a5] ~", AG: "~@5 d6 g6 ~",
  AH: "g6@3 ~@9 g6@3 ~", AI: "d6@3 ~@9 g6@3 ~", AJ: "d6@3 ~ g6@3 ~ d6@4 g6 ~ g6 ~", AK: "d6 ~ d6 ~ g6 ~ g6@2 d6@4 ~@4",
  AL: "~@2 d6 ~ f6 f#6 e6 ~ d6@3 ~ f6 f#6 a6@2", AM: "~@2 a6 ~ e6 f6 d6@8 ~@2, ~@6 e6 ~@9",
  AN: "[g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~", // G
  AO: "[g5,c6,e6]@3 ~ [g5,c6,e6] ~ c6 ~ [g5,b5,d6]@3 ~@5", AP: "[g5,c6,e6]@3 ~ [g5,c6,e6] ~ c6 ~ [b5,d6,g6]@3 ~@5",
})).s("gm_rock_organ").gain(0.62)

// chords · rock organ
const rock_organ_3 = note(`<
  ~ A B ~@2 C@2 D@2 E F ~@8 G@2 H I J K ~@4 L@6 M N O P Q R Q S T U ~@4 V W X@2 Y Z AA AB AC@2 Q R AD@2 T U ~@4 AE AF AG
  AH AI AJ AK AL
>`.pickRestart({
  A: "~@3 [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]", // G
  B: "~ [g5,b5,d6] ~ [g5,c6,e6]@3 ~ [g5,c6,e6]@3 ~ [g5,b5,d6]@2 ~@3", // G C G
  C: "[~@3 [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,c6,e6]@4 [c6,e6]@2 g5 ~ [g5,b5,d6]@2 ~@3, ~@23 g5 ~@8]/2", // G C G
  D: "[~@3 [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@2 [g5,d6]@2 [g5,c6,e6]@4 [g5,c6,e6]@3 ~ [g5,b5,d6]@5, ~@17 b5 ~@14]/2", // G G5 C G
  E: "~@3 [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]", // G
  F: "~ [g5,b5] ~ [g5,c6,e6]@4 [c6,e6]@2 g5@2 [b5,d6]@2 ~@3, ~ d6@2 ~@13", // G C Bm
  G: "[~@2 [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,c6,e6]@4 [c6,e6]@2 g5 ~ [g5,b5,d6]@2 ~@4, ~@22 g5 ~@9]/2", // G C G
  H: "~@2 [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@2", // G
  I: "[g5,d6]@2 [g5,c6,e6]@4 [g5,c6,e6]@3 ~ [b5,d6]@6, b5 ~@9 g5@4 ~@2", // G5 C Bm
  J: "~@2 [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6] ~", // G
  K: "[g5,b5] ~ [g5,c6,e6]@4 [c6,e6]@2 g5@2 [b5,d6]@2 ~@4, d6 ~@7", // G C Bm
  L: "[~@2 [b5,d6]@31 ~ [b5,e6]@31 [c6,e6,g6]@31, ~@2 g6@63 ~@31]/6", // Bm E5 C
  M: "~ [d6,f#6,a6,c7]!2 ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~", // D7
  N: "[d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~", // D7
  O: "[g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [b5,d6]@2 g5 ~, ~@12 g5 ~@3", // G Bm
  P: "[g5,c6,e6]@3 ~ [g5,c6,e6]@4 [g5,b5]@4 b5@2 ~@2, ~@4 d6@3 ~, ~@12 g5 ~@3", // C G
  Q: "[g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,b5,d6] ~ [b5,d6]@2 g5 ~, ~@12 g5 ~@3", // G Bm
  R: "[g5,c6,e6]@3 ~ [c6,e6]@2 g5 ~ [g5,b5,d6]@2 ~@6, ~@4 g5 ~@11", // C G
  S: "[g5,c6,e6]@4 [c6,e6]@2 g5@2 [g5,b5,d6]@4 [g5,b5,d6]@3 ~, ~@4 g5 ~@11", // C G
  T: "[g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [b5,d6]@2 g5@2, ~@12 g5 ~@3", // G Bm
  U: "[c6,e6]@3 ~ [c6,e6]@2 g5 ~ [g5,b5,d6] ~@7, ~@4 g5 ~@11", // C G
  V: "[g5,b5] ~ [g5,b5,d6]!3 ~ [g5,b5,d6] ~@5 [g5,b5,d6,g6] ~ [g5,b5,d6,g6] ~", // G
  W: "[g5,b5,d6] ~ [g5,b5,d6]!3 ~ [g5,b5,d6] ~@5 [g5,b5,d6,g6] ~ [g5,b5,d6]@2, ~@14 g6 ~", // G
  X: "[g5,b5,e6] ~ [g5,b5,e6]!3 ~ [g5,b5,e6] ~@5 [g5,b5,e6] ~ [g5,b5,e6] ~", // Em
  Y: "[g5,c6,e6] ~ [g5,c6,e6]!3 ~ [g5,c6,e6] ~@5 [g5,c6,e6] ~ [g5,c6,e6] ~", // C
  Z: "[g5,c6,e6]@2 ~ [g5,c6,e6]!2 ~ [g5,c6,e6] ~@5 [g5,c6,e6] ~ [g5,c6,e6] ~", // C
  AA: "[a5,d6,f#6] ~ [a5,d6,f#6] ~ [a5,d6,f#6] ~ [e6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~", // D F#m7b5 D7
  AB: "[d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6] ~ e6 [f5,g5,a5,b5] [g4,a4,b4,c5,d5,e5] [b3,d4,e4] ~ [f3,g3,a3] [b3,c4,d4,e4,f4] [g4,a4,b4,c5,d5,e5], ~@3 c7 ~@4", // D7 D G7 Cmaj7 E7 F Bdim Cmaj7
  AC: "[[f5,f6] ~@23 [d6,d#6] ~@3 d6@2 ~@2, g6@23 ~ g6@6 ~@2, ~@24 e6@3 ~@5]/2", // F D#maj7
  AD: "[[a4,b4,f#6] ~@27 [d6,d#6,e6] ~ d6 ~, g6@31 ~]/2", // B7
  AE: "[d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] [d6,f#6,a6] ~ [d6,f#6,a6,c7]!2 ~ [d6,f#6,a6,c7]@4 [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] ~", // D7 D D7
  AF: "[d6,f#6,a6,c7] ~ [d6,f#6] [d6,f#6,c7] ~ [d6,f#6,a6,c7] [d6,f#6,c7] ~ [d6,f#6,a6,c7] ~ [d6,f#6,a6,c7] [f#6,c7] d6 ~ [d6,f#6,a6,c7] ~, ~@11 a6@2 ~@3", // D7 D D7 F#dim D7
  AG: "[g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~", // G
  AH: "[g5,c6,e6]@4 [g5,e6] ~ [g5,c6] ~ [g5,b5,d6]@3 ~@5, ~@2 c6 e6 ~@4", // C C5 G
  AI: "[g5,b5,d6]@3 ~ [g5,b5,d6] ~ [g5,b5,d6]@4 [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~", // G
  AJ: "[g5,c6,e6]@4 [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,b5,d6]@4 ~@4", // C G
  AK: "[g5,b5,d6,g6]@3 ~ [g5,b5,d6,g6] ~ [g5,b5,d6,g6]@3 ~ [g5,b5,d6,g6] ~ [g5,b5,d6,g6] ~ [g5,b5,d6,g6] ~", // G
  AL: "[g5,c6,e6,g6]@4 [g5,c6,e6,g6] ~ [g5,c6,e6,g6] ~ [g5,b5,d6,g6]@2 ~@6", // C G
})).s("gm_rock_organ").gain(0.32).pan(0.8)

// chords · rock organ · soft notes
const rock_organ_soft = note(`<
  ~@8 A ~ B ~@11 C ~ D ~@13 C ~@3 C ~ E ~@4 F ~@4 G H I ~ C ~ J K ~@2 E ~@4 L M ~@5 H
>`.pickRestart({
  A: "~@15 g5", B: "~@7 g5 ~@3 g5@2 ~@3", C: "~@14 g5 ~", D: "~@6 g5 ~@3 g5@2 ~@4", E: "g5@3 ~@13", F: "d6 ~@15",
  G: "~@10 g5 ~@5", H: "~@6 d6 ~@9", I: "~@6 a6 [f#6,a6] [f6,g6,b6] c6 ~ [c4,f4] [c3,d3,a3] e3 ~@2, ~@7 d6@2 ~@7",
  J: "~@14 f3 [g3,a3,b3,c4,d4,e4]", K: "[f4,g4] ~@15", L: "~@3 [b6,c7] ~@12", M: "~@2 [a6,c7] a6 ~@2 a6 ~@9",
})).s("gm_rock_organ").gain(0.16).pan(0.8)

// chords · accordion
const accordion = note(`<
  ~ A@2 ~@2 B C D E@2 F ~@8 G H I J K L ~@4 M@2 N@2 O@2 P@2 Q R S@2 T@2 U@2 ~@4 V@2 W@2 X@2 Y Z ~ AA S@2 ~@2 U@2 ~@4 P@2
  AB AC AD AE AB AF
>`.pickRestart({
  A: "[~@3 [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,c5,e5]@4 [g4,c5,e5]@4 [g4,b4,d5]@2 ~@3]/2", // G C G
  B: "~@3 [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]", // G
  C: "~ [g4,b4] ~ [g4,c5,e5]@4 [g4,c5,e5]@4 [g4,b4,d5]@3 ~@2, ~ d5@2 ~@13", // G C G
  D: "~@3 [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]", // G
  E: "[~ [g4,d5]@2 [g4,c5,e5]@3 ~ [g4,c5,e5]@4 [g4,b4,d5]@7 ~ [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5], ~ b4 ~@30]/2", // G5 C G
  F: "~ [g4,b4] ~ [g4,c5,e5]@3 ~ [c5,e5]@2 g4@2 [g4,b4,d5]@2 ~@3, ~ d5@2 ~@4 g4 ~@8", // G C G
  G: "~@2 [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  H: "[g4,b4] ~ [g4,c5,e5]@4 [g4,c5,e5]@4 [g4,b4,d5]@3 ~@3, d5 ~@7", // G C G
  I: "~@2 [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  J: "[g4,d5]@2 [g4,c5,e5]@3 ~ [g4,c5,e5]@4 [g4,b4,d5]@6, b4 ~@15", // G5 C G
  K: "~@2 [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  L: "[g4,b4] ~ [g4,c5,e5]@3 ~ [c5,e5]@2 g4@2 [g4,b4,d5]@2 ~@4, d5@2 ~@4 g4 ~@9", M: "[~ [g4,b4,d5]@15]/2",
  N: "[~ [g4,b4,e5]@30 ~]/2", O: "[~ [g4,c5,e5]@31]/2",
  P: "[a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
  Q: "[g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@3 ~", // G
  R: "[g4,c5,e5]@4 [c5,e5]@2 g4 ~ [g4,b4,d5]@4 [g4,b4,d5]@2 g4 ~, ~@4 g4 ~@11", // C G
  S: "[[g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [b4,d5]@2 ~@2 [c5,e5]@3 ~ [c5,e5]@4 [b4,d5]@2 ~@6, ~@12 g4 ~ g4@12 ~@6]/2", // G Bm C Bm
  T: "[[g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5]@4 [g4,b4,d5] ~ [b4,d5]@2 ~@2 [c5,e5]@4 [c5,e5]@2 ~@2 [b4,d5]@3 ~ [g4,b4,d5]@4, ~@12 g4 ~ g4@6 g4 ~ g4@5 ~@5]/2", // G Bm C Bm G
  U: "[[g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [b4,d5]@2 ~@2 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [b4,d5] ~@7, ~@12 g4 ~ g4@6 g4 ~ g4@4 ~@6]/2", // G Bm C Bm
  V: "~@8 [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~@3", W: "~@8 [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~@3",
  X: "~@8 [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~@3", // C
  Y: "~@2 [a4,d5,f#5] ~ [a4,d5,f#5] ~@5 [a4,d5,f#5] ~ [a4,d5,f#5] ~@3", // D
  Z: "~@2 [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
  AA: "~@14 g4 ~", AB: "[g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~",
  AC: "[g4,c5,e5]@4 [g4,c5,e5] ~ [c5,e5]@2 [g4,b4,d5]@2 ~@6, ~@6 g4 ~@9", // C G
  AD: "[g4,b4,d5]@3 ~ [g4,b4,d5] ~ [g4,b4,d5]@4 [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  AE: "[g4,c5,e5]@3 ~ [g4,c5,e5] ~ [g4,c5] ~ [g4,b4,d5]@2 ~@6, ~@3 e5 ~@4", // C C5 G
  AF: "[g4,c5,e5]@3 ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,b4,d5]@2 ~@6", // C G
})).s("gm_accordion").gain(0.25).pan(0.2)

// chords · brass section
const brass_section = note(`<
  ~@5 A B ~@2 C D E F G H ~@4 I J ~@2 K L M N O P ~@10 Q R ~@2 S T U V W X ~@10 Q R ~@2 S T U V W X Y Z AA AB S AC S T
>`.pickRestart({
  A: "~@3 d4@3 ~ d4 ~ d4@3 ~ d4 ~ d4", B: "~ d4 ~ e4@3 ~ e4@2 c4 ~ d4@2 ~@3", C: "~@3 d5@3 ~ d5 ~ d5@3 ~ d5 ~ d5",
  D: "~ d5 ~ e5@4 e5@2 c5@2 d5@2 ~@3", E: "~@7 g4@2 ~@2 d4@3 ~@2", F: "~@7 g4@3 ~ d4@3 ~@2", G: "~@7 g4@3 ~ d4@3 ~ g4",
  H: "~ g4 ~ d4 ~ d4 ~ g4 ~ g4@2 d4@3 ~@2", I: "~@2 d4@3 ~ d4 ~ d4@3 ~ d4 ~ d4 ~", J: "d4 ~ e4@3 ~ e4@2 c4 ~ d4@2 ~@4",
  K: "~@2 [b4,d5]@3 ~ [b4,d5] ~ [b4,d5]@3 ~ [b4,d5] ~ [b4,d5] ~", // Bm
  L: "[b4,d5] ~ [c5,e5]@3 ~ [c5,e5] ~ [a4,c5] ~ [b4,d5] ~@5", M: "~@6 g4@2 ~@2 d4@3 ~@3", N: "~@6 g4@3 ~ d4@3 ~@3",
  O: "~@6 g4@3 ~ d4@3 ~ g4 ~", P: "g4 ~ d4 ~ d4 ~ g4 ~ g4@2 d4@3 ~@3",
  Q: "[b4,d5]@4 [b4,d5] ~ [b4,d5]@3 ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~", // Bm
  R: "[c5,e5]@3 ~ [c5,e5] ~ [a4,c5]@2 [b4,d5]@2 ~@6", // C Am Bm
  S: "[b4,d5]@3 ~ [b4,d5] ~ [b4,d5]@3 ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~", // Bm
  T: "[c5,e5]@3 ~ e5@2 a4@2 [b4,d5]@2 ~@6, ~@4 c5 ~ c5 ~@9", U: "~@4 g4@2 ~@2 d4@3 ~@5", V: "~@4 g4@3 ~ d4@3 ~@5",
// … 144 more lines

More by Manfred Mann