Strudelify
I Got the Feelin cover art

I Got The Feelin'

I Got the Feelin

James Brown

KeyF majorTempo125 bpm
0:00/0:00
// I Got the Feelin — Brown James
// 125 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: metre changes (1/8 at bar 1, 4/4 at bar 1, 9/8 at bar 26, 3/4 at bar 27, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 32-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, A@4 for four bars: edit a riff to change every repeat.

// bass · piano · "ACOU BASS"
const bass = note("<~ [~ e1@2 f1 ~@12] ~@109>").s("gm_piano").gain(0.51)

// bass · slap bass 2 · "ACOU BASS"
const bass_2 = note(`<
  ~ A@8 B@8 C@3 D E F E F G H@2 ~@2 I J K J K J K J K J K J K J K L@3 M@2 N@10 O@4 P Q R@2 S T U@2 ~@2 V W X W X W X W X
  W X W X W X W X W X W Y Z@2 AA AB@2 AC@2 AD@2 AE ~@3 AF AG AH
>`.pickRestart({
  A: "[~@22 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@2]/8",
  B: "[~@2 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@2]/8",
  C: "~@2 a1@4 bb1@7 ~@19", D: "~@25 f2@4 c2@3", E: "~ e1@4 f1@2 ~@14 f2@4 f2@4 e2@3",
  F: "~ f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@3", G: "~@5 f1@2 ~@2 bb1@2 ~@6 b1@2 ~@5 c2@2 ~@6", H: "[~@9 c2@30 ~@25]/2",
  I: "~@6 e2 f2", J: "e1@2 f1 ~@7 f2@2 f2@2 e2@2", K: "f2@3 ~@9 f2@4 f2@4 f2@4 f2@4 f2@4", L: "a1@4 bb1@7 ~@21",
  M: "[~@23 f2@4 c2@4 e1@3 f1@2 ~@14 f2@4 f2@4 e2@4 f2@2]/2",
  N: "[~@5 f2@2 f2@2 f2@2 f2@2 f2@2 e1@2 f1 ~@7 f2@2 f2@2 e2@2 f2]/2",
  O: "[~@10 f2@4 f2@4 f2@4 f2@4 f2@4 a1@5 bb1@7 ~@20 a1@5 bb1@7 ~@20 a1@5 bb1@7 ~@22]/4", P: "~@22 f2@4 c2@3 e1@3",
  Q: "~ f1@2 ~@14 f2@4 f2@4 e2@4 f2@3", R: "[~@9 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3]/2",
  S: "~@9 f2@4 f2@4 f2@4 f2@4 f2@4 ~@3", T: "~ f1@2 ~@2 bb1@2 ~@6 b1@2 ~@6 c2@2 ~@9", U: "[~@5 c2@30 ~@29]/2",
  V: "~@5 e2 f2 e1", W: "f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~", X: "~@2 f2!5 e1", Y: "~@2 f2!5 a1", Z: "bb1@7 ~@21 a1@4",
  AA: "bb1@7 ~@25", AB: "[~@19 f2@4 c2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@2]/2",
  AC: "[~@7 f2@4 f2@4 f2@4 f2@4 f2@4 e1@4 f1@2 ~@14 f2@4 f2@4 e2@4 f2@3 ~@2]/2",
  AD: "[~@7 f2@4 f2@4 f2@4 f2@4 f2@4 ~@4 f1@2 ~@2 bb1@2 ~@5 b1@2 ~@6 c2@2 ~@12]/2", AE: "~@2 c2@29 ~",
  AF: "~@17 e2@4 f2@4 ~@4 f1@2 ~, ~@26 e1@5 ~", AG: "~@14 f2@4 f2@4 e2@4 f2@3 ~@3", AH: "~@2 b1 ~@2 c2 ~@4 f1@3 ~@19",
})).s("gm_slap_bass_2").gain(0.51)

// other · trumpet
const trumpet = note(`<
  ~ A B@2 C@2 B@2 C@2 B@2 C@2 B@2 D@2 E@2 F G H@2 I J K ~@3 L M N M N M N M N M N M N M N O P@2 Q@2 R@10 S@2 T@2 U V W V
  X Y Z ~@3 AA AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AD@3 AE@2 AF@2 AG AH AI ~@3 AJ AK AL
>`.pickRestart({
  A: "~@6 f4@2 ~@11 f5@2 ~@5 eb5@2 ~@4", B: "[~@14 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@4 f4@2 ~@11 f5@2 ~@6 eb5 ~@4]/2",
  C: "[~@14 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@4 f4@2 ~@11 f5@2 ~@5 eb5@2 ~@4]/2",
  D: "[~@14 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@5 ~@11 ab5@5 ~@9]/2", E: "~@18 ab5@5 ~@9", F: "~@29 f4@3",
  G: "~ eb4@4 f4@2 ~@10 f5@2 ~@6 eb5 ~@6", H: "[~@13 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@4 f4@2 ~@10 f5@2 ~@6 eb5 ~@6]/2",
  I: "~@13 ab4@4 g4@4 f4@2 ~@9", J: "~@9 c6@2 ~@6 b5@2 ~@6 c6@2 ~@5", K: "~ eb6@3", L: "~@7 f4",
  M: "eb4@4 f4@2 ~@10 f5@2 ~@6 eb5 ~@7", N: "~@6 ab4@2 g4@2 f4 ~@3 f4@2", O: "eb4@5 ~@11 ab5@5 ~@11",
  P: "~@16 ab5@5 ~@11", Q: "[~@27 f4@4 eb4@3 f4@2 ~@11 f5@2 ~@6 eb5 ~@8]/2",
  R: "[~@10 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@4 f4@2 ~@11 f5@2 ~@6 eb5 ~@8]/2",
  S: "[~@10 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@5 ~@11 ab5@5 ~@13]/2", T: "~@14 ab5@5 ~@13", U: "~@26 f4@3 eb4@3",
  V: "~ f4@2 ~@10 f5@2 ~@6 eb5 ~@10", W: "~@9 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@3", X: "~@9 ab4@4 g4@4 f4@2 ~@13",
  Y: "~@5 c6@2 ~@6 b5@2 ~@6 c6@2 ~@9", Z: "~@5 eb6@26 ~", AA: "~@6 f4 eb4", AB: "f4 ~@5 f5 ~@3 eb5 ~@5",
  AC: "~@4 ab4@2 g4@2 f4 ~@3 f4@2 eb4@2", AD: "~@12 ab5@5 ~@15", AE: "[~@23 f4@4 eb4@4 f4@2 ~@10 f5@2 ~@6 eb5 ~@12]/2",
  AF: "[~@7 ab4@4 g4@4 f4@2 ~@6 f4@4 eb4@4 f4@2 ~@10 f5@2 ~@6 eb5 ~@12]/2", AG: "~@7 ab4@4 g4@4 f4@2 ~@15",
  AH: "~@3 c6@2 ~@6 b5@2 ~@6 c6@2 ~@11", AI: "~ eb6@13 ~@2", AJ: "~@21 f4@5 eb4@4 f4@2", AK: "~@10 f5@2 ~@6 eb5 ~@13",
  AL: "~@5 f5 ~@10",
})).s("gm_trumpet").gain(0.28)

// other · alto sax · "ALTO SAXES"
const alto_sax = note(`<
  ~ A B@14 C@2 D@2 E F G@2 H I J ~@3 K L M L N L N L N L N L N L N O P@2 Q@2 R@10 S@2 T@2 U V W V X Y Z ~@3 AA AB AC AB
  AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AD@3 AE@2 AF@2 AG AH AI ~@3 AJ AK AL
>`.pickRestart({
  A: "~@6 f3@2 ~@10 g4 ~@7 ab4 ~@5", B: "[~@14 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@5]/2",
  C: "[~@14 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@4 ~@12 [bb4,eb5]@5 ~@9]/2", D: "~@18 [bb4,eb5]@5 ~@9", E: "~@29 f3@3",
  F: "~ eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@6", G: "[~@13 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@6]/2",
  H: "~@13 ab4@4 g4@4 f4@2 ~@9", I: "~@9 [ab4,f5]@3 ~@5 [ab4,gb5]@2 ~@6 [bb4,g5]@2 ~@5", J: "~@9 [e5,bb5]@23",
  K: "~@7 f3", L: "eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@7", M: "~@6 eb4@2 d4@2 c4 ~@3 f3@2", N: "~@6 ab4@2 g4@2 f4 ~@3 f3@2",
  O: "eb3@4 ~@12 eb5@5 ~@11", P: "~@16 eb5@5 ~@11", Q: "[~@27 f3@4 eb3@3 f3@2 ~@10 g4 ~@7 ab4 ~@9]/2",
  R: "[~@10 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@9]/2",
  S: "[~@10 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@4 ~@12 [bb4,eb5]@5 ~@13]/2", T: "~@14 [bb4,eb5]@5 ~@13", U: "~@26 f3@3 eb3@3",
  V: "~ f3@2 ~@10 g4 ~@7 ab4 ~@10", W: "~@9 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@3", X: "~@9 ab4@4 g4@4 f4@2 ~@13",
  Y: "~@5 [ab4,f5]@3 ~@5 [ab4,gb5]@2 ~@6 [bb4,g5]@2 ~@9", Z: "~@5 [e5,bb5]@26 ~", AA: "~@6 f3 eb3",
  AB: "f3@2 ~@10 g4 ~@7 ab4 ~@11", AC: "~@4 ab4@2 g4@2 f4 ~@3 f3@2 eb3@2", AD: "~@12 [bb4,eb5]@5 ~@15",
  AE: "[~@23 f3@4 eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@12]/2",
  AF: "[~@7 ab4@4 g4@4 f4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 g4 ~@7 ab4 ~@12]/2", AG: "~@7 ab4@4 g4@4 f4@2 ~@15",
  AH: "~@3 [ab4,f5]@3 ~@4 [ab4,gb5]@2 ~@7 [bb4,g5]@2 ~@11", AI: "~ [e5,bb5]@13 ~@2", AJ: "~@21 f3@5 eb3@4 f3@2",
  AK: "~@10 g4 ~@7 ab4 ~@13", AL: "~@5 eb4 ~@10",
})).s("gm_alto_sax").gain(0.5)

// other · tenor sax · "TENOR SAXES"
const tenor_sax = note(`<
  ~ A B@14 C@2 D@2 E F G F H I J ~@3 K L M N O N O N O N O N O N O P Q@2 R@2 S@10 T@2 U@2 V W X W Y Z AA ~@3 AB AC AD AC
  AD AC AD AC AD AC AD AC AD AC AD AC AD AC AD AC AD AE@3 AF@2 AG@2 AH AI AJ ~@3 AK AL AM
>`.pickRestart({
  A: "~@6 f3@3 ~@9 d4 ~@7 c4 ~@5", B: "[~@14 eb4@4 d4@4 c4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 d4 ~@7 c4 ~@5]/2",
  C: "[~@14 eb4@4 d4@4 c4@2 ~@6 f3@4 eb3@4 ~@12 [c4,gb4]@5 ~@9]/2", D: "~@18 [c4,gb4]@5 ~@9", E: "~@29 f3@3",
  F: "~ eb3@4 f3@2 ~@10 d4 ~@7 c4 ~@6", G: "~@13 eb4@4 d4@4 c4@2 ~@6 f3@3", H: "~@13 eb4@4 d4@4 c4@2 ~@9",
  I: "~@9 [f3,c4]@2 ~@6 [gb3,db4] ~@7 [g3,d4]@2 ~@5", J: "~@9 e3@23, ~ g4@3", K: "~@7 f3",
  L: "eb3@4 f3@3 ~@9 d4 ~@7 c4 ~@7", M: "~@6 c4@2 bb3@2 ab3 ~@3 f3@2", N: "eb3@4 f3@2 ~@10 d4 ~@7 c4 ~@7",
  O: "~@6 eb4@2 d4@2 c4 ~@3 f3@2", P: "eb3@4 ~@12 [gb4,bb4]@5 ~@11", Q: "~@16 [gb4,bb4]@5 ~@11",
  R: "[~@27 f3@4 eb3@3 f3@2 ~@10 d4 ~@7 c4 ~@9]/2",
  S: "[~@10 eb4@4 d4@4 c4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 d4 ~@7 c4 ~@9]/2",
  T: "[~@10 eb4@4 d4@4 c4@2 ~@6 f3@4 eb3@4 ~@12 [c4,gb4]@5 ~@13]/2", U: "~@14 [c4,gb4]@5 ~@13", V: "~@26 f3@3 eb3@3",
  W: "~ f3@2 ~@10 d4 ~@7 c4 ~@10", X: "~@9 eb4@4 d4@4 c4@2 ~@6 f3@4 eb3@3", Y: "~@9 eb4@4 d4@4 c4@2 ~@13",
  Z: "~@5 [f3,c4]@2 ~@6 [gb3,db4] ~@7 [g3,d4]@2 ~@9", AA: "~@5 [e3,g4]@26 ~", AB: "~@6 f3 eb3",
  AC: "f3@3 ~@9 d4 ~@7 c4 ~@11", AD: "~@4 eb4@2 d4@2 c4 ~@3 f3@2 eb3@2", AE: "~@12 [c4,gb4]@5 ~@15",
  AF: "[~@23 f3@4 eb3@4 f3@2 ~@10 d4 ~@7 c4 ~@12]/2",
  AG: "[~@7 eb4@4 d4@4 c4@2 ~@6 f3@4 eb3@4 f3@2 ~@10 d4 ~@7 c4 ~@12]/2", AH: "~@7 eb4@4 d4@4 c4@2 ~@15",
  AI: "~@3 [f3,c4]@2 ~@6 [gb3,db4] ~@7 [g3,d4]@2 ~@11", AJ: "~ [e3,g4]@13 ~@2", AK: "~@21 f3@5 eb3@4 f3@2",
  AL: "~@10 d4 ~@7 c4 ~@13", AM: "~@5 a3 ~@10",
})).s("gm_tenor_sax").gain(0.28)

// other · baritone sax
const baritone_sax = note(`<
  ~ A B@2 C@2 B@2 C@2 B@2 C@2 B@2 D@2 E@2 F G H G I J K ~@3 L M N O N M N O N M N O N O N P Q@2 R@2 S@2 T@2 S@2 T@2 S@2
  U@2 V@2 W X Y X Z AA AB ~@3 AC AD AE AF AE AD AE AD AE AD AE AD AE AD AE AF AE AD AE AF AE AG@3 AH AI AJ AI AK AL AM
  ~@3 AN AO AP
>`.pickRestart({
  A: "~@6 f2@3 ~@9 a2@2 ~@6 f3@2 ~@4", B: "[~@7 f3@2 eb3@2 f3 ~@3 f2@2 eb2@2 ~@2 f2 ~@3 a2 ~@3 f3 ~@2]/2",
  C: "[~@14 f3@4 eb3@4 f3@2 ~@6 f2@4 eb2@4 f2@3 ~@9 a2@2 ~@6 f3@2 ~@4]/2",
  D: "[~@14 f3@4 eb3@4 f3@2 ~@6 f2@4 eb2@4 ~@12 ab2@5 ~@9]/2", E: "~@18 ab2@5 ~@9", F: "~@29 f2@3",
  G: "~ eb2@3 ~@5 f2@2 ~@6 a2@2 ~@6 f3@2 ~@5", H: "~@13 f3@4 eb3@4 f3@2 ~@6 f2@3", I: "~@13 f3@4 eb3@4 f3@2 ~@9",
  J: "~@9 bb2@2 ~@6 b2@2 ~@6 c3@2 ~@5", K: "~@9 c2@23", L: "~@7 f2", M: "eb2@4 f2@3 ~@9 a2@2 ~@6 f3@2 ~@6",
  N: "~@6 f3@2 eb3@2 f3 ~@3 f2@2", O: "eb2@2 ~@2 f2 ~@3 a2 ~@3 f3 ~@3", P: "eb2@4 ~@12 c4@5 ~@11", Q: "~@16 c4@5 ~@11",
  R: "[~@27 f2@4 eb2@3 ~@4 f2@2 ~@6 a2@2 ~@6 f3@2 ~@8]/2",
  S: "[~@5 f3@2 eb3@2 f3 ~@3 f2@2 eb2@2 ~@2 f2 ~@3 a2 ~@3 f3 ~@4]/2",
  T: "[~@10 f3@4 eb3@4 f3@2 ~@6 f2@4 eb2@4 f2@3 ~@9 a2@2 ~@6 f3@2 ~@8]/2",
  U: "[~@10 f3@4 eb3@4 f3@2 ~@6 f2@4 eb2@4 ~@12 ab2@5 ~@13]/2", V: "~@14 ab2@5 ~@13", W: "~@26 f2@3 eb2@3",
  X: "~@5 f2@2 ~@6 a2@2 ~@6 f3@2 ~@9", Y: "~@9 f3@4 eb3@4 f3@2 ~@6 f2@4 eb2@3", Z: "~@9 f3@4 eb3@4 f3@2 ~@13",
  AA: "~@5 bb2@2 ~@6 b2@2 ~@6 c3@2 ~@9", AB: "~@5 c2@25 ~@2", AC: "~@6 f2 eb2", AD: "f2@3 ~@9 a2@2 ~@6 f3@2 ~@10",
  AE: "~@4 f3@2 eb3@2 f3 ~@3 f2@2 eb2@2", AF: "~@2 f2 ~@3 a2 ~@3 f3 ~@5", AG: "~@12 ab2@5 ~@15",
  AH: "~@23 f2@4 eb2@3 ~@2", AI: "~@3 f2@2 ~@6 a2@2 ~@6 f3@2 ~@11", AJ: "~@7 f3@4 eb3@4 f3@2 ~@6 f2@4 eb2@4 ~",
  AK: "~@7 f3@4 eb3@4 f3@2 ~@15", AL: "~@3 bb2@2 ~@6 b2@2 ~@6 c3@2 ~@11", AM: "~@3 c2@25 ~@4",
  AN: "~@21 f2@4 ~ eb2@4 ~@2", AO: "~ f2 ~@3 a2 ~@3 f3 ~@6", AP: "~@2 eb2@2 ~ f2@2 ~@3 f3@2 ~@20",
})).s("gm_baritone_sax").gain(0.28)

// chords · electric guitar clean · "CLEAN GUITAR 1"
const electric_guitar_clean = note(`<
  ~ A B@15 C@3 D E@4 F G ~@4 H@14 I@3 J K@12 L@3 M N@4 O P ~@4 Q@20 R@2 S T U@4 V W ~@4 X Y
>`.pickRestart({
  A: "~@15 [f3,c4,a4]", B: "~@15 [f3,c4,eb4,a4]",
  C: "~@6 [a3,db4,g4,a4] [d4,ab4,bb4]@5 [ab4,bb4] ~ [bb3,d4,ab4,bb4]@2 ~@16, ~@3 bb3@3 ~@10", // A7 Bb7 Absus2 Bb7
  D: "~@6 [a3,db4,g4,a4] bb4@5 [ab4,bb4] ~ [bb3,d4,ab4,bb4]@2 ~@13 [bb3,d4,ab4,bb4]@2 ~, ~@3 [bb3,d4,ab4]@3 ~@10", // A7 Absus2 Bb7
  E: "~@29 a4@3, ~@28 [f3,c4,eb4]@3 ~", // F7
  F: "~@9 [ab3,d4,f4,bb4] ~@7 [ab3,d4,f4,bb4]@2 ~@6 [bb3,g4,c5]@2 ~@5, ~@12 e4 ~@3", G: "~@9 [bb3,e4,g4,c5]@23",
  H: "~@27 [f3,c4,eb4,a4]@3 ~@2", // F7
  I: "~@3 a3 [bb3,d4,ab4,bb4]@6 [ab4,bb4] ~ [bb3,ab4,bb4] ~@19, ~@4 [db4,g4,a4] ~@6 d4@2 ~@19", // Bb7 Absus2 Bb7 A7
  J: "~@3 a3 [bb3,d4,ab4,bb4]@6 [ab4,bb4] [bb3,d4,ab4,bb4]@2 ~@14 [bb3,d4,ab4,bb4]@2 ~@3, ~@4 [db4,g4,a4] ~@27", // Bb7 Absus2 Bb7 A7
  K: "~@26 [f3,c4,eb4,a4]@3 ~@3", // F7
  L: "~@2 [a3,db4,g4] [bb3,d4,ab4,bb4]@6 [ab4,bb4] [bb3,d4,ab4,bb4]@2 ~@20, ~@3 a4 ~@28", // A7 Bb7 Absus2 Bb7
  M: "~@2 [a3,db4,g4,a4] [d4,ab4,bb4]@5 [ab4,bb4] ~ [bb3,d4,ab4,bb4]@2 ~@13 [bb3,d4,ab4,bb4]@2 ~@5, ~ bb3@3 ~@12", // A7 Bb7 Absus2 Bb7
  N: "~@25 [f3,c4,eb4,a4]@3 ~@4", O: "~@6 [ab3,d4,f4,bb4] ~@6 [ab3,d4,f4,bb4]@2 ~@6 [bb3,e4,g4,c5]@2 ~@9",
  P: "~@5 [bb3,e4,g4,c5]@25 ~@2", Q: "~@24 [f3,c4,eb4,a4]@3 ~@5",
  R: "[a3,db4,g4,a4] bb4@5 [ab4,bb4] ~ [bb3,d4,ab4,bb4]@2 ~@22, [bb3,d4,ab4]@3 ~@13", // A7 Absus2 Bb7
  S: "[a3,db4,g4,a4] bb4@5 ~@26, [bb3,d4,ab4]@3 ~@13", // A7 Bb7
  T: "~@6 [ab4,bb4] ~ [bb3,ab4,bb4] ~@14 [bb3,d4,ab4,bb4]@2 ~@7, ~@7 d4@2 ~@23", U: "~@22 [f3,c4,eb4,a4]@3 ~@7",
  V: "~@3 [ab3,d4,f4,bb4] ~@7 [ab3,d4,f4,bb4]@2 ~@5 [bb3,e4,g4,c5]@2 ~@12", W: "~@3 [bb3,e4,g4,c5]@25 ~@4",
  X: "~@21 [f3,c4,eb4,a4]@3 ~@8", Y: "~@10 a4@3 ~@19, ~@9 [f3,c4,eb4]@3 ~@20",
})).s("gm_electric_guitar_clean").gain(0.23)

// bass · piano · "CLEAN GUITAR 2"
const bass_3 = note("<~ [~ e2@2 f2 ~@12] ~@109>").s("gm_piano").gain(0.46)

// other · electric guitar clean · "CLEAN GUITAR 2"
const electric_guitar_clean_2 = note(`<
  ~ A B C B C B C B C B C B C B C B D@3 E F G F H I J ~@4 K L K L K L K L K L K L K L M@3 N@7 O@8 P Q R@2 S@2 T U ~@3 V
  W@18 X@2 Y@2 Z AA@5 AB AC ~@3 AD AE@2
>`.pickRestart({
  A: "~@10 a2 ~@2 f3 ~@2, ~@19 ab2@2 ~@11", B: "~ eb3@9 ~@6", C: "~ e2@2 f2 ~@6 a2 ~@2 f3 ~@2, ~@19 ab2@2 ~@11",
  D: "~@2 a2@4 bb2@5 ~@21", E: "~@25 f3@3 ~ c3@3", F: "~ e2@3 ~ f2@2 ~@11 a2@2 ~@5 f3@2 ~@5, ~@17 ab2@2 ~@13",
  G: "~ eb3@18 ~@13", H: "~ eb3@18 ~@10 f3@3", I: "~@9 bb2 ~@7 b2 ~@6 c3 ~@7", J: "~@9 c3@22 ~",
  K: "e2@4 f2@2 ~@11 a2@2 ~@5 f3@2 ~@6, ~@8 ab2 ~@7", L: "eb3@9 ~@7", M: "a2@4 bb2@5 ~@23",
  N: "[~@23 f3@3 ~ c3@3 ~ e2@3 f2@2 ~@12 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@13 e2@4 f2@2 ~@12 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@13 e2@4 f2@2 ~@12 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@13 e2@2, ~@47 ab2@2 ~@62 ab2@2 ~@62 ab2@2 ~@47]/7",
  O: "[~@2 f2@2 ~@12 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@13 e2@4 f2@2 ~@12 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@13 e2@4 f2@2 ~@12 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@13 a2@4 ~ bb2@5 ~@22 a2@4 ~ bb2@5 ~@22 a2@2, ~@15 ab2@2 ~@62 ab2@2 ~@62 ab2@2 ~@111]/8",
  P: "~@3 bb2@5 ~@24", Q: "~@22 f3@3 ~ c3@3 e2@3",
  R: "[~ f2@2 ~@12 a2@2 ~@4 f3@2 ~@6 eb3@18 ~@14 e2@3, ~@7 ab2 ~@24]/2",
  S: "[~ f2@2 ~@12 a2@2 ~@4 f3@2 ~@6 eb3@18 ~@10 f3@3 ~@4, ~@7 ab2 ~@24]/2", T: "~@5 bb2 ~@7 b2 ~@7 c3 ~@10",
  U: "~@5 c3@22 ~@5", V: "~@7 e2", W: "[f2@2 ~@11 [ab2,a2]@2 ~@5 f3@2 ~@6 eb3@18 ~@14 e2@4]/2",
  X: "[f2@2 ~@11 [ab2,a2]@2 ~@5 f3@2 ~@6 eb3@18 ~@14 a2@4]/2", Y: "bb2@5 ~@23 a2@4", Z: "bb2@5 ~@27",
  AA: "[~@19 f3@3 ~ c3@3 ~ e2@3 ~ f2@2 ~@11 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@14 e2@4 f2@2 ~@11 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@10 f3@3 ~@6, ~@43 ab2@2 ~@62 ab2@2 ~@51]/5",
  AB: "~@3 bb2 ~@6 b2 ~@7 c3 ~@13", AC: "~ c3@11 ~@4", AD: "~@26 e2@3 f2@2 ~",
  AE: "[~@11 a2@2 ~@5 f3@2 ~@6 eb3@18 ~@20, ~@5 ab2 ~@26]/2",
})).s("gm_electric_guitar_clean").gain(0.46)

// other · tenor sax · "LEAD TENOR SAX"
const tenor_sax_2 = note("<~@75 A B C@2 D E F G@3 H I ~@24>".pickRestart({
  A: "~@4 f4@5 ~@14 ab4@6 ~@3", B: "~@8 bb3@5 ~@7 bb4@7 ~@5",
  C: "[b4@4 c5@2 ~@6 ab4@4 ~@4 f4@4 eb4@3 ~ f4@8 eb4@2 ~@2 f4@4 eb4 ~@3 ab3@4 g3@3 ~ ab3@4 g3@4]/2",
  D: "f3@4 eb3@2 ~@6 f3 ~@8 eb4@2 ~@5 f4@2 ~@2", E: "~@4 eb4 ~@3 f4@13 eb4@2 ~@9", F: "g4@12 eb4@3 ~@17",
  G: "[~@4 c5@13 ab4@2 f4@3 ~@2 f4@11 ~@9 bb4@2 ~ b4@2 bb4@2 ab4@2 f4@2 ~@6 ab4@11 f4@3 ~@5 f4@8 eb4@3 ~ c4@2 ~@2]/3",
  H: "f4@8 d4@3 c4@2 ~@3 f4@8 eb4@2 ~@6", I: "~@5 c4 eb4 c4 eb4 ~ bb3 ab3 ~@4, ~@19 c4@2 ~@11",
})).s("gm_tenor_sax").gain(0.51)

// drums · rim
const rim = s("rim").struct(`<
  ~@2 A ~@3 A ~@3 A ~@3 A ~@7 B ~ B ~@7 C ~@3 C ~@3 C ~ D ~@7 E ~ F ~ E ~@3 E ~@7 G ~ G ~@7 H ~@3 H ~ H ~ H ~ H ~ H ~@3
  H ~@7 I ~ I ~@8
>`.pickRestart({
  A: "~@13 x ~ x", B: "~@25 x ~@3 x ~@2", C: "~@6 x!2", D: "~@7 x", E: "~@11 x ~ x ~@2", F: "~@11 x ~@4",
  G: "~@21 x ~@3 x ~@6", H: "~@5 x!2 ~", I: "~@19 x ~@3 x ~@8",
})).gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C B C B C B C B C B D B C B E F G H I J K J L M ~@4 N J O J O J O J P J O J O J Q R S T U V U V W V W V U V W V
  X Y Z AA AB AC AB AC AD AE ~@4 AF AG AF AG AF AG AF AG AF AG AF AG AF AG AF AG AH AG AF AG AI AJ AK AL AM AN AM AN AO
  AP ~@3 AQ AR AP
>`.pickRestart({
// … 92 more lines

More by James Brown