Strudelify

Right Next Door

The Robert Cray Band

KeyC minorTempo120 bpm
0:00/0:00
// Right Next Door — The Robert Cray Band
// 120 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 103 bars on a 16-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): CLEAN GTR.
setcpm(120/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 · celesta
const celesta = note(`<
  ~@5 A B C@2 D B E@2 F G H I J@2 K L M@2 N O P Q R S@2 T@2 U@3 V W X@2 Y Z@2 AA AB AC@3 ~@4 K AD@3 AE AF AG@2 AH AI AJ
  AK AL AM@2 AN AO@3 AP AQ AR@2 AS AT AU@3 ~@3 AV@2 AA AW@2 AT AX@3 ~@12
>`.pickRestart({
  A: "[g4,c5]@3 [c4,eb4,g4,c5], [c3,eb5,g5]", B: "[eb3,eb4,g4,bb4]@3 [eb3,eb4,g4,bb4,eb5]",
  C: "[[f3,f4,a4,c5]@8 [eb3,eb4,g4,bb4,eb5]@7 ~@11 c4 ~@3 g4 ~, ~@15 [c3,g4,c5,eb5,g5]@16 ~, ~@27 c4@4 ~, ~@28 eb4@3 ~, ~@29 f4@2 ~]/2", // F Eb Cm
  D: "~@3 c4@9 [c4,eb4,g4,c5]@4, c3, g4@3 ~, ~ eb4@5 ~@2", // Cm
  E: "[[f3,a4,c5,f5]@4 [eb3,eb4,g4,bb4,eb5]@3 ~@8 c5, ~@15 [c3,eb5,g5]@17, ~@15 [g4,c5]@14 g4@3, ~@13 c4@3, ~@7 eb4]/2", // F Eb Cm C5
  F: "d4@6 ~ [ab4,bb4], [bb2,bb3], [f4,bb4]@13 f4@3, ~@3 d4", G: "[c3,c4,eb4,g4,c5]@15 ~",
  H: "c4@10 c4@2 ~@2 f4 g4, [c3,g4]@15 ~, eb4@12 c4@3 ~, ~@13 eb4@3", // C5
  I: "~ eb4@2 [eb3,eb4,g4,bb4], [eb3,g4]@3 ~, ~ bb3@7", // Eb
  J: "[[f3,c4,f4,a4]@8 [eb3,bb3,eb4,g4]@7 ~@15 c4@2, ~@15 [c3,eb4]@13 c4 g5@3, ~@15 [g4,c5]@10 g4@7, ~@24 c4@3 eb5@5, ~@13 c5@3]/2", // F Eb Cm C5
  K: "[g4,c5,eb5]@2 [c4,g4,c5] [c4,eb4,g4,c5], [c3,g5], ~ eb5", L: "[eb4,g4,bb4]@3 [eb4,g4,bb4,eb5], eb3",
  M: "[[f3,f4,a4,c5]@8 [eb3,eb4,g4,bb4]@7 [c3,eb4,g4,c5]@16 ~, ~@15 c4 ~@16]/2", // F Eb Cm
  N: "f4@11 ~@3 bb4@2, [bb2,bb3,d4], bb4@13 c5@3, ~@11 f4@5, ~@3 d5", // Bb
  O: "g4@11 ~@3 c5@2, [c3,c4,eb4], c5@13 d5@3, ~@11 g4@5, ~@3 eb5", // Cm
  P: "[f4,d5]@11 ~@3 bb4@2, [bb2,bb3], bb4@13 c5@3, ~@11 f4@5, ~@3 d5", Q: "[c3,c4,eb4,g4,c5]",
  R: "[ab3,eb4,ab4,c5] [bb3,d4,f4,bb4]", // Ab Bb
  S: "[[c4,eb4,g4,c5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] [c4,c5] [eb4,eb5] ~ [ab3,eb4,ab4,c5]@9 [bb3,f4,bb4,d5]@8]/2", // Cm Bb C Eb C Bb C Eb …
  T: "[[c4,eb4,g4,c5]@15 [ab3,eb4,ab4,c5]@9 [bb3,d4,f4,bb4]@8]/2", // Cm Ab Bb
  U: "[[c4,eb4,g4,c5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] [c4,bb4,c5] [eb4,eb5] ~ [ab3,eb4,ab4,c5]@9 [bb3,d4,f4,bb4]@7 [c4,eb4,g4,c5]@16 ~]/3", // Cm Bb C Eb C Bb C7 Eb …
  V: "eb3@10 ~@5 eb5, [bb4,eb5]@13 g4 bb4@2, [eb4,g4]@3 eb4, ~@5 eb3@3, ~@11 bb3@5", // Eb5 Eb
  W: "~@15 eb5, [c3,eb5], [g4,c5]@13 g4@3, ~@3 c4, ~@7 c5", // Cm C5
  X: "[[bb2,bb3,f4,bb4,d5]@8 [ab2,ab3,eb4,ab4,c5]@7 [g2,g3,d4,g4,b4]@17]/2", // Bb Ab G
  Y: "[ab2,ab3,eb4,ab4,c5]@8 [bb2,bb3,d4,f4,bb4]@7 ~", // Ab Bb
  Z: "[[c3,c4,eb4,g4,c5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] [c4,c5] [eb4,eb5] ~ [ab3,ab4,c5,eb5]@8 ~ [bb3,f4,bb4,d5]@6 ~@2]/2", // Cm Bb C Eb C Bb C Eb …
  AA: "[c4,eb4,g4,c5]@15 ~", AB: "[ab3,ab4,c5,eb5]@7 ~ [bb3,f4,bb4,d5]@7 ~",
  AC: "[[c4,g4,c5,eb5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] c5 [eb4,eb5] ~ [ab3,ab4,c5,eb5]@9 [bb3,f4,bb4,d5]@7 [c4,eb4,g4,c5]@16 ~, ~@6 c4 ~@17]/3", // Cm Bb C Eb C Bb Eb Ab …
  AD: "[eb3@6 ~@4 [f4,a4]@2 ~@2 eb4 ~@8 c5, g4@16 [f3,eb5]@8 [eb3,g4,bb4,eb5]@6 ~ [c3,g4,eb5]@17, [eb4,bb4]@14 eb4@3 ~@25 c5@3 g5@3, ~@12 eb3@3 bb4@2 ~ f5@6 ~@7 [c5,g5]@12 g5 c6@4, ~@13 bb3@4 ~@24 c4@7]/3", // F F7 Eb Cm Eb5 C5
  AE: "[c5,eb5]@2 [c4,g4,c5] [c4,eb4,g4,c5], [c3,g5], ~ eb5", // Cm C5 Cm C5
  AF: "eb4@12 ~@3 eb5, eb3, [g4,bb4]@13 g4@3, ~@3 eb4, ~@7 bb4", // Gm
  AG: "[[f3,a4,c5,f5]@8 [eb3,eb4,g4,bb4,eb5]@7 ~@15 eb5@2, ~@15 [c3,g5]@17, ~@15 [c5,eb5]@14 c5@3, ~@15 g4@13 g4@4, ~@13 c4@3]/2", // F Eb C5 Cm
  AH: "~@3 f4@9 ~@3 [eb5,f5], [bb2,bb3,f5], ~ d5@12 bb4@3, ~ bb4@5 f4@2, ~@7 d5", // Ebsus2 Bb5
  AI: "~@15 g5, [c3,g5]@7 eb5, ~ eb5@12 c5@3, ~ c5@5 g4@2, ~@3 g4 c4@12", // C5
  AJ: "~ bb3@3, [bb2,f5], ~ d5@15, ~ bb4@7, ~@3 f4@13", AK: "~ c4@3, c3, g4 eb5@7, ~ c5@2 [g4,c5,g5]@13",
  AL: "[ab3,ab4,c5,eb5] [bb3,bb4,d5,f5]", // Ab Bb
  AM: "[[c4,g4,c5,eb5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] c5 [eb4,eb5] ~ [ab3,ab4,c5,eb5]@9 [bb3,f4,bb4,d5]@8, ~@6 c4 ~@9]/2", // Cm Bb C Eb C Bb Eb Ab …
  AN: "~@15 g5, g4@7 eb5, [c5,eb5]@13 c5@3, c4@3 c4, ~@9 c3@7", // Cm
  AO: "[[ab3,ab4,c5,eb5]@8 [bb3,f4,bb4,d5]@7 ~ c4@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] [c4,c5] [eb4,eb5] ~ [ab3,ab4,c5,eb5]@9 [bb3,f4,bb4,d5]@8, ~@15 [g4,c5,eb5]@8 ~@25]/3", // Ab Bb C Eb C Bb C Eb …
  AP: "[c4,g4]@12 ~@2 c5 eb5, [c5,eb5]@15 ~, ~@12 c4@3 ~, ~@13 g4@2 ~", // C5 Cm
  AQ: "ab4@2 ~ eb5 [bb3,f4,bb4,d5]@4, ab3@9 ~@7, [c5,eb5]@5 c5@4 ~@7, ~@4 ab4@5 ~@7", // Bb Cm
  AR: "[[c4,g4,c5,eb5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] [c4,c5] [eb4,eb5] ~ [ab3,ab4,c5,eb5]@9 [bb3,f4,bb4,d5]@8]/2", // Cm Bb C Eb C Bb C Eb …
  AS: "~@7 c5, [c4,eb5], [g4,c5]@13 g4@3, ~@3 eb4", AT: "[ab3,ab4,c5,eb5] [bb3,f4,bb4,d5]",
  AU: "[[c4,g4,c5,eb5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] c5 [eb4,eb5] ~ [ab3,eb4,ab4,c5]@9 [bb3,d4,f4,bb4]@7 [c4,eb4,g4,c5]@16 ~, ~@12 c4@2 ~ g3 ~@32]/3", // Cm Bb C Eb C Bb Eb Ab …
  AV: "[~@7 [bb3,bb4] [c4,b4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] c5 [eb4,eb5] ~ [ab3,ab4,c5,eb5]@8 ~ [bb3,f4,bb4,d5]@8, ~@6 c4 ~@9]/2", // Bb Cmaj7 Eb C Bb Eb Ab Bb
  AW: "[[ab3,eb4,ab4,c5]@8 [bb3,f4,bb4,d5]@7 c5@9 ~@4 c4@2 c4@2, ~@15 [eb4,g4]@12 c6@4 ~, ~@15 c4@11 g5@5 ~, ~@3 c3, ~@25 c5@6 ~]/2", // Ab Bb Eb
  AX: "[[c4,eb4,g4,c5]@7 [bb3,bb4] [c4,c5] [eb4,eb5] [c4,c5] [bb3,bb4] [c4,c5] [eb4,eb5] ~ [ab3,ab4,c5,eb5]@9 [bb3,f4,bb4,d5]@7 [c4,eb4,g4,c5]@15 ~@2]/3", // Cm Bb C Eb C Bb C Eb …
})).s("gm_celesta").gain(0.32)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@37 A B ~@8 C D@2 ~@40 C ~@3 E@3 ~@6>".pickRestart({
  A: "[bb2,f3,d4]@8 [ab2,eb3,ab3,c4]@7 ~", B: "[g2,d3,g3,b3]@15 ~", C: "~@15 gb4", D: "[~@15 eb4@15 ~@2]/2",
  E: "[~@15 f4@22 ~@11]/3",
})).s("gm_electric_guitar_clean").gain(0.13)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@37 A B ~@7 C ~@35 D ~ E ~@5 F ~@12>".pickRestart({
  A: "bb3 ~", B: "e3 ~@15", C: "~@15 gb4", D: "~@8 [a3,db4] db4 ~@6", E: "~@9 db4 ~@6", F: "~@15 db4",
})).s("gm_electric_guitar_clean").gain(0.07)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D C E F G@2 H I J@2 K L E F G@2 H I J@2 M L K L N O@2 P@2 Q@2 R S T U V N O@2 P@2 Q@2 R B C D C E F G@2 H I J@2
  M L M L N O@2 P@2 Q@2 R N O@2 P@2 Q@2 R B C D W N O@2 P@2 Q@2 R B C D C ~@8
>`.pickRestart({
  A: "~@15 g1", B: "bb1 ~ bb1@2 bb1@2 c2 d2 eb2@2 c2!2 ~@3 g1", C: "bb1 g1 bb1 ~ bb1 ~ c2 d2 eb2@2 c2 c2@2 ~@2 g1",
  D: "bb1@2 bb1 ~ bb1@2 c2 d2 eb2@2 c2 c2@2 ~@2 g1", E: "c2@2 c2@4 ~ g1 c2 ~ c2@5 bb1",
  F: "[b1,eb2] ~ eb2@3 ~@2 bb1 eb2 ~ eb2@4 ~ c2", // B
  G: "[f2 ~ f2@4 ~ bb1 eb2 ~ eb2 ~ bb1@3 c2@3 c2@4 ~ g1 c2 ~ c2@4 ~ g1]/2", H: "c2@2 c2@4 ~ g1 c2@2 c2@5 bb1",
  I: "eb2 e2 eb2@4 ~ bb1 eb2 ~ eb2@4 ~ c2", J: "[f2@2 f2@4 ~ bb1 eb2 ~ eb2 ~ bb1@3 c2@2 ~ c2@4 ~ g1 c2 ~ c2@4 ~ g1]/2",
  K: "bb1 ~ bb1@5 f1 bb1 ~ bb1@6", L: "c2@2 c2@4 ~ g1 c2 ~ c2@5 ~", M: "bb1@2 bb1@5 f1 bb1 ~ bb1@6",
  N: "ab1@2 ab1@4 ~ ab1 bb1 ~ bb1@4 ~ bb1",
  O: "[c2 ~ c2@5 bb1 c2 eb2 c2 bb1 c2 eb2@2 ab1@3 ab1@4 ~ ab1 bb1@2 bb1@4 ~ bb1]/2",
  P: "[c2@2 c2@5 c2 c2@2 c2@5 ab1@3 ab1@4 ~ ab1 bb1@2 bb1@4 ~ bb1]/2",
  Q: "[c2 ~ c2@4 ~ bb1 c2 eb2 c2 bb1 c2 eb2@2 ab1@3 ab1@4 ~ ab1 bb1@2 bb1@4 ~ bb1]/2", R: "c2@2 c2@5 bb1 c2@2 c2@5 c2",
  S: "eb2@15 ~", T: "c2@15 ~", U: "bb1@8 ab1@7 ~", V: "g1@15 ~",
  W: "[g1,bb1] g1 bb1 ~ bb1@2 ~ bb1 c2 eb2 c2 bb1 c2 eb2 ~ g1", // Gm
})).s("gm_fretless_bass").gain(0.3)

// bass · piano · "A.PIANO 2"
const bass_2 = note("<~@94 A@8 ~>".pickRestart({
  A: "[~@15 c-1@113]/8",
})).s("gm_piano").gain(0.36)

// chords · acoustic guitar nylon · "A.GUITAR"
const acoustic_guitar_nylon = note(`<
  A@5 B@2 C@2 D E F@3 G H@2 I@2 J@2 K@2 L M N O P@3 Q R@4 S T U V W@3 X Y@3 Z@5 AA AB AC@2 AD AE AF@2 AG AH AI AJ AK@4
  AL@4 AM@4 AN@3 AO@8 AP AQ@3 AR@4 AS@8 ~
>`.pickRestart({
  A: "[~@15 [c3,bb3,c4,eb4,f4]@15 ~ [c3,bb3,c4,eb4,f4]@16 [c3,bb3,c4,eb4,f4]@15 ~ [c3,bb3,c4,eb4,f4]@14 ~@3]/5", // Cm7
  B: "[[c2,g3,c4,eb4,g4]@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ g3 [c4,g4] ~ eb2@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [eb3,bb3,eb4,g4] ~@2 bb3 eb3 bb3 eb2 ~, ~@15 [bb3,eb4,g4]@3 ~@9 [eb4,g4]@3 ~@2]/2", // Cm C5 Eb
  C: "[[f2,a3,c4,f4]@2 [a3,c4,f4] ~ f3 [a3,c4,f4] ~ [g3,bb3,eb4]@2 ~ [g3,bb3,eb4] ~ eb3@2 ~ [c2,g3,c4,eb4,g4]@2 ~ [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~ g3 c3 g3]/2", // F Eb Cm
  D: "[c2,g3,c4,eb4,g4]@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ g3 c4 ~", // Cm
  E: "[eb2,bb3,eb4,g4]@2 [bb3,eb4,g4] ~ eb3 [bb3,eb4,g4] ~@2 [eb3,bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [eb2,g4] ~", // Eb
  F: "[[f2,a3,c4,f4]@2 [a3,c4,f4] ~ f3 [a3,c4,f4] ~ bb3 [eb2,bb3,eb4,g4]@2 [bb3,eb4,g4] ~ eb3 bb3 ~ [c2,g3,c4,eb4,g4]@3 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~ g3 g4 ~@3 [bb3,d4] ~@2 d4 f4 [d4,f4]@5 ~ d4 f4 ~, ~@31 [d4,f4]@4 ~@4 bb4@8 ~, ~@31 bb3@2 ~@3 bb2@7 ~ bb2@2 ~@2, ~@8 bb1 ~@3]/3", // F Eb Cm Bb Dm
  G: "[eb4,g4]@2 g4 ~@2 eb4 g4 [eb4,g4,c5]@6 ~@3, c2@4 c3@2 ~ c3@8 ~", // Eb Cm
  H: "[[g3,c4,eb4,g4]@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~@2 [g3,c4,g4] ~@2 [g3,c4,g4] ~@3 [bb3,eb4,g4]@2 ~ [bb3,eb4,g4] ~@2 eb4 g4 [g4,bb4] ~ [eb4,g4] [f4,ab4] ~ [eb4,g4]@2 [eb2,c4,eb4] ~, ~@20 eb3@2 ~@5 eb3@4 ~]/2", // Cm C5 Eb Gm Eb Fm Eb Cm
  I: "[[f2,c4,f4]@2 [a3,c4,f4] ~ f3 [c4,f4] ~@2 [bb3,eb4,g4]@2 [bb3,eb4,g4] ~@4 [c2,eb4,g4]@3 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ g3 ~ g3, b3 ~@7 eb2@4 ~@3 [g3,c4]@2 ~@15]/2", // F5 F F5 Eb Cm C5
  J: "[[c2,g3,c4,eb4,g4]@2 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 c4 ~@3 [bb3,eb4,g4] ~ eb3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~ bb3 eb2 ~, ~@15 [bb3,eb4,g4]@2 ~@15, ~@4 eb2 ~@3]/2", // Cm Eb
  K: "[[c4,f4]@2 [a3,c4,f4] ~ f3 a3 ~ g3 ~ [g3,bb3,eb4] ~@2 [eb3,g3,bb3,eb4]@2 ~ [g3,c4,eb4,g4]@2 ~ [g3,c4,eb4,g4] ~ c3 [g3,c4,g4] ~@2 [c3,g3,c4,eb4,g4] ~ c3 [g3,c4] ~ g3 ~@2, f2@2 ~@2 eb2 ~@11, a3 ~@26 [eb4,g4]@4 ~]/2", // F5 F Eb Cm C5 Cm C5 Eb
  L: "[bb3,d4,f4]@4 ~@2 f4 [bb3,d4,bb4]@9, bb2, ~@7 f4@7 ~@2", // Bb
  M: "[c4,eb4,g4]@4 ~@2 g4 [c4,eb4,g4,c5]@8 ~, c3@7 ~, ~@2 c4 ~@5, ~@5 eb4@2 ~@9", // Cm
  N: "[bb2,bb3,f4]@5 d4 f4 [bb2,bb3,d4,f4,bb4]@8 ~, d4 ~@3", O: "[c4,g4]@4 c4@2 g4 [c3,c4,eb4,g4,c5]@8 ~, c3@3 ~@5",
  P: "[[eb4,ab4,c5]@2 [eb4,ab4,c5] ~ ab3 [eb4,ab4,c5] ab2 ~@3 [d4,f4,bb4] ~@2 [f4,bb4] ~@2 c3@2 [eb4,g4,c5] ~@4 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [ab2,eb4,ab4,c5]@3 [eb4,ab4,c5] ~ ab3 [eb4,ab4,c5] ab2 [d4,f4,bb4] ~ [d4,f4,bb4] ~@2 bb3 [d4,f4,bb4] ~ [eb4,g4,c5], ab2@4 ~@3 [d4,f4,bb4]@2 ~@3 bb3@2 ~ [eb4,g4,c5]@3 ~@30, ~@2 bb2 ~@7 bb2 ~]/3", // Ab Bb Bb5 Cm Bb C Eb C …
  Q: "~ [g4,c5] ~ g3 c4 [eb4,g4] ~ g3 [c4,eb4,g4] ~ g3 [c4,eb4,g4] ~ c4 g3 ~", // C5 Eb Cm
  R: "[[eb4,ab4,c5]@2 [eb4,ab4,c5] ~ ab3 [eb4,ab4,c5] ab2 ~@3 [f4,bb4] ~ bb3@2 ~ [eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@4 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] ~ [eb3,eb4] ~ [eb4,ab4,c5]@3 [eb4,ab4,c5] ~ ab3 [eb4,ab4,c5] ab2 [d4,f4,bb4] ~ [d4,f4,bb4] ~ d4 ~ [f4,bb4] ~ [eb4,g4,c5]@2 [g4,c5] ~ g3 ~ [eb4,g4] ~@2 [c4,eb4,g4] ~ g3 [c4,eb4,g4] g3 c4 g3 ~, ab2@4 ~@3 [d4,f4,bb4]@2 ~@55, ~@8 bb2@4 ~@3 c3@7 ~@6 [c3,c4]@2 ~ ab2@5 ~@28]/4", // Ab Bb5 Cm Bb C Eb C Bb …
  S: "[eb2,bb3,eb4,g4]@15 ~", T: "[c3,g3,c4,eb4,g4]@15 ~",
  U: "~ [bb2,d4,f4,bb4] ~ [bb2,d4,f4,bb4] ~@5 [ab2,c4,eb4,ab4] ~ [ab2,c4,eb4,ab4] ~@4", // Bb Ab
  V: "~ [g2,b3,d4,g4] ~ [g2,b3,d4,g4] ~@4 g3 ~ [d4,f4] [d4,f4,g4] ~ [d4,f4,g4] b3 g3", // G Dm G7
  W: "[[ab2,c4,eb4,ab4]@2 [c4,eb4,ab4] ~ ab3 [eb4,ab4] ab2 ~@3 [d4,f4,bb4] ~@3 bb2 [c3,eb4,g4,c5]@3 [eb4,g4,c5] ~@4 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [ab2,eb4,ab4]@3 [c4,eb4,ab4] ~@2 [eb4,ab4] ~@3 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~@2 [c3,g3,c4,eb4,g4], ~@7 [d4,f4,bb4]@2 ~@22 c4@2 ~@15, ~@8 bb2@5 ~@27 bb2@5 ~@3]/3", // Ab Ab5 Bb Cm Bb C Eb C …
  X: "~ [g3,c4,eb4,g4] ~ c3 [c4,g4,c5] ~ c3 [c4,g4,c5] ~@2 [c4,g4,c5] ~@2 [c4,g4,c5] ~@2", // Cm C5
  Y: "[[ab2,c4,eb4,ab4]@2 [c4,eb4,ab4] ~ ab3 [c4,eb4,ab4] ab2 ~ [d4,f4,bb4]@2 [d4,f4,bb4] ~ bb3 ~ bb2 [eb4,g4,c5]@3 [eb4,g4,c5] ~@4 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [c4,eb4,ab4]@2 ~ [c4,eb4,ab4] ~ ab3 [c4,eb4,ab4] ab2 ~ [d4,f4,bb4] ~@2 [d4,f4,bb4] ~ d4 ~@2, ~@8 bb2@4 ~@19 ab2@5 ~@4 bb2@7 ~]/3", // Ab Bb Cm Bb C Eb C Bb …
  Z: "[[eb4,g4,c5]!2 ~ [eb4,g4,c5] ~ [g4,c5] eb4 ~@2 [eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c3,bb3,c4,eb4,f4]@16 [c3,bb3,c4,eb4,f4]@16 ~ [c3,eb4]@15 [c3,bb3,c4,eb4,f4]@15 ~@2, c3@3 ~@4 c3@4 ~@69, ~@8 c4@2 ~@37 [bb3,c4,f4]@15 ~@18]/5", // Cm C5 Eb Cm Cm7 Cm Cm7 Bbsus2
  AA: "[c2,g3,c4,eb4,g4]@2 [g3,c4] ~@2 [g3,c4,g4] ~@2 [c3,g3,c4,eb4,g4] ~@2 [g3,c4,g4] ~@4", // Cm C5 Cm C5
  AB: "[bb3,eb4,g4]@2 [bb3,eb4,g4] ~@2 eb4 g4 [g4,bb4] ~ g4 [f4,ab4] ~ [eb4,g4]@2 [eb2,c4,eb4] ~, eb2@3 ~@5, ~@4 eb3@2 ~@5 eb3@3 ~@2", // Eb Gm Fm Eb Cm
  AC: "[[f2,a3,c4,f4]@2 [a3,c4] ~ f3 [a3,c4,f4] ~@2 [bb3,eb4,g4]@2 [bb3,g4] ~@4 [g3,c4,eb4]@2 ~ [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~ g3 c3 g3, ~@8 eb2@5 ~@2 [c2,g4]@3 ~@14]/2", // F Am F Eb Cm C5
  AD: "[c2,g3,c4,eb4,g4]@2 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~ g3 c3 ~", // Cm
  AE: "[eb2,bb3,eb4,g4]@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@3 c4", // Eb
  AF: "[[f4,a4]@2 [c4,f4,a4] ~@4 [bb3,eb4,g4]@2 ~ [bb3,eb4,g4] ~ eb3 ~@2 [g3,c4,eb4,g4]@3 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ g3 ~@2, ~@15 c2@5 ~@12]/2", // F Eb Cm
  AG: "[bb3,d4,f4]@4 ~ d4 f4 [bb3,d4,f4,bb4]@9, bb2@15 ~, ~@2 bb3 ~@5", // Bb
  AH: "[c4,eb4,g4]@4 ~ eb4 g4 [c4,eb4,g4,c5]@8 ~, c3@15 ~, ~@2 c4 ~@5", // Cm
  AI: "f4@5 ~ f4 [bb2,bb3,d4,f4,bb4]@8 ~, bb3@7 ~@9, ~@5 d4@2 ~@9", // Bb
  AJ: "[eb4,g4]@4 ~ eb4 g4 [c4,eb4,g4,c5]@8 ~, c3@7 ~, ~@2 c4 ~@5", // Eb Cm
  AK: "[[ab2,eb4,ab4,c5]@2 [eb4,ab4] ~@2 [eb4,ab4,c5] ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ bb3 bb4 ~@2 c3@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] c3 [bb2,bb3] [c3,c4,db4] [eb3,db4,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [c4,eb4,ab4]@3 [c4,eb4,ab4] ~ ab3 [eb4,ab4] ~@3 [bb3,d4,f4] ~@2 [f3,bb3,d4,f4] ~ bb2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4] ~@2 g3 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~ g3 ~ [c3,c4], ~@15 [eb4,g4,c5]@3 ~@13 ab2@5 ~@4 bb2@5 ~@6 c3@3 ~@10]/4", // Ab Ab5 Ab Bb Cm Bb Dbmaj7 Eb7 …
  AL: "[[c4,eb4,ab4]@2 [c4,eb4,ab4] ~ ab3 [eb4,ab4] ab2 [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ bb3@2 ~ [c3,eb4,g4,c5]@3 [eb4,g4,c5] ~@3 c3 [bb2,bb3] c4 [eb3,eb4] [c3,c4] [bb2,bb3] ~ [eb3,eb4] ~ [ab3,c4,eb4]@2 ~ [c4,eb4] ~ ab3 [ab3,c4,eb4] ab2 ~@2 [bb3,d4,f4] ~ bb3 [bb3,d4,f4] ~@2 [g3,c4,eb4,g4]@2 ~ [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~ g3 c3 ~, ab2@4 ~@24 [c3,c4]@2 ~ ab2@5 ~@3 bb3@2 ~@23, ~@10 bb2 ~@5]/4", // Ab Ab5 Bb Cm Bb Eb C Bb …
  AM: "[ab2@2 [c4,eb4,ab4] ~@2 [c4,eb4,ab4] ~@2 [bb2,d4,f4,bb4]@2 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~ [c3,eb4,g4,c5]@3 [eb4,g4,c5] ~@3 [c3,eb4,g4,c5] [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [ab2,ab3,c4,eb4]@3 [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~ f3 ~ [f3,bb3,d4] ~@2 [f3,bb3,d4] ~ bb2 [c3,g3,c4,eb4]@2 ~ [g3,c4,eb4] ~ c3 [c4,g4,c5] ~@2 [c3,c4,g4,c5] ~@2 [c3,c4,g4,c5] ~ [c4,g4,c5] ~ c3]/4", // Ab Bb Cm Bb C Eb C Bb …
  AN: "[[ab2,ab3]@2 [c4,eb4] ab2@2 [ab3,c4,eb4] ~@2 bb2@2 [f3,bb3,d4] ~@2 [f3,bb3,d4] ~@2 c3@2 [g3,c4,eb4] ~@3 c3 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [ab2,ab3,c4,eb4]@3 [ab3,c4,eb4] ~@2 [c4,eb4] ~ [f3,bb3,d4]@3 [f3,bb3,d4] ~ bb2 f3 ~ g3, ~@7 [f3,bb3,c4,d4]@2 ~@6 [g3,c4,eb4]@2 ~@22 g3 ~@8]/3", // Ab Cm Ab Bb Cm Bb C Eb …
  AO: "[~ [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~ c3 [g3,c4,eb4,g4] ~@2 [c3,g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ [c3,bb3,c4,eb4,f4]@15 ~ [c3,bb3,c4,eb4,f4]@15 ~ [c3,bb3,c4,eb4,f4]@16 [c3,bb3,c4,eb4,f4]@7 ~ [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [ab3,c4,eb4]@2 ~ [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~@3 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~ bb2 [c3,g3,c4,eb4,g4]@2 ~ [g3,c4,eb4,g4] ~@3 c3 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [c4,eb4,ab4]@3 [c4,eb4,ab4] ~ ab3 [c4,eb4,ab4] ab2 bb3@2 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~ bb2 [c3,g3,c4,eb4,g4], c3@2 ~@29 gb4 ~@47 ab2@8 bb3@2 ~@39, ~@88 bb2@5 ~@18 ab2@5 ~@12]/8", // Cm Cm7 Bb C Eb C Bb C …
  AP: "~@2 [g3,c4,eb4,g4] ~ c3 [c4,g4,c5] ~@2 [c3,c4,g4,c5] ~@2 [c4,g4,c5] ~ c4 [c3,c4,g4,c5] c4", // Cm C5
  AQ: "[c4@2 [eb4,ab4] ab3@2 [eb4,ab4] ~@4 [d4,f4,bb4] ~@2 [f4,bb4] ~@4 [eb4,g4,c5] ~ c4 ~@2 [bb2,bb3] [c3,c4] [eb3,eb4] [c3,c4] [bb2,bb3] [c3,c4] [eb3,eb4] ~ [ab2,ab3,c4,eb4]@3 [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~@2 [f3,bb3,d4]@2 [f3,bb3] ~@2 [f3,bb3,d4] ~ [c3,g3,c4,eb4], ab2@7 [d4,f4,bb4]@2 ~@3 d4@2 ~ [eb4,g4,c5]@2 ~@31, ~@8 bb2@7 ~ c3@5 ~@19 bb2@5 ~@3]/3", // Ab5 Bb Bb5 Cm Bb C Eb C …
  AR: "[c3@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~@2 [g3,c4,eb4,g4] ~ [c4,eb4,g4] ~ [c3,bb3,c4,eb4,f4]@16 [c3,bb3,c4,eb4,f4]@15 ~ [c3,bb3,c4,eb4,f4]@15 ~ [c3,bb3,c4,eb4,f4]]/4", // Cm Cm7
  AS: "[~@15 [c3,bb3,eb4]@33 ~@80, ~@15 c4@113]/8", // Cm7
})).s("gm_acoustic_guitar_nylon").gain(0.21)

// chords · acoustic guitar nylon · "A.GUITAR" · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@2 A ~@2 B C D E F G H I J@2 K L M N O P Q R S ~@2 T U ~ V W X Y Z AA ~@3 AB AC AD AE AF AG@2 AH ~@2 A AI AJ AK AL AM
  E AN AO AP AQ ~@2 AR AS AT ~ AU@2 AV AW AX@2 AY ~ AZ BA BB@2 BC BD ~@4 BE BF BG BH BI BJ BK BL ~@12
>`.pickRestart({
  A: "gb4 ~@15", B: "~@4 c3 ~@2 g3 c3 ~ c3 ~@3 [c3,eb4] ~", C: "~@4 eb3 ~@2 bb3 ~@7 a3", D: "~@6 f2 ~ eb2@4 ~@2 eb2 ~",
  E: "~@7 g3 ~@8", F: "~@4 c3 ~@2 g3 ~@4 c3 ~ c3 [c4,db4]", G: "~@7 bb3 ~@5 bb3 [bb3,eb4] bb3", H: "~@6 f2 ~@7 eb2 ~",
  I: "~@7 g3 ~@4 c3 [eb4,g4] [c3,eb4] ~", J: "[~@15 c4@3 [c4,eb4] ~@12 g3]/2",
  K: "c2@2 ~@2 c3 ~@2 g3 [c3,eb4] ~ c3 eb4 c3 g3 [c3,eb4,g4] ~", L: "eb2 ~@3", M: "a3 ~@4 a3 f2 bb3 ~@4 eb3 ~ eb2 ~",
  N: "~@7 g3 ~@2 c3 ~ c3 ~ c3 ~", O: "~@7 g3 c3 ~@4 g3 c3 ~", P: "~@7 bb3 eb3 ~ eb3 ~@4 a3",
  Q: "~@6 f2 ~@4 g3 ~@2 eb2 ~", R: "c2@4 ~ eb4 ~ g3 ~@4 c3 ~ c3 ~", S: "~@5 d4 ~@10, ~@2 bb3 ~@5",
  T: "eb4@4 ~ eb4 ~@10", U: "~@13 d4 bb2 ~", V: "~@11 d4 ~@2 bb2 ~", W: "~@2 eb4 ~@2 c4 g3 ~@5 g3 ~@2 eb4, c3@7 ~",
  X: "~@10 d4 ~@3 bb2 ~", Y: "~@4 c4 ~@4 c4 ~@6", Z: "~@8 bb2@4 bb3 d4 bb2 ~", AA: "~@2 eb4 ~ c4!2 ~ c4 g3 ~@7, c3@7 ~",
  AB: "~@9 b3 g4 ~@5", AC: "~@5 c4 ~@6 bb3 ~@3", AD: "db3 ~@15", AE: "~@4 ab3 c4 ab2 bb3 ~@3 bb3 gb4 ~ bb2 ~",
  AF: "~@9 c4 ~@2 c3 ~@2 c4", AG: "[~@7 d4 ~@7 c3@3 ~@4 c3 ~@9]/2", AH: "~@7 d4 ~@2 bb3 ~@3 bb3 eb4", AI: "~@15 gb4",
  AJ: "~@15 g3", AK: "~@2 [eb4,g4] ~ c3 eb4 ~ g3 ~@3 eb4 ~ g3 c3 bb3", AL: "~@9 eb4 ~@6",
  AM: "~@2 f4 ~@3 f2 bb3 ~@2 eb4 ~ eb3 ~ eb2 ~", AN: "~@7 g3 ~@7 bb3", AO: "~@4 eb3 ~@2 bb3 eb3 ~ eb3 ~@2 [eb2,c4] ~@2",
  AP: "f2@4 f3 ~ f2 eb2@5 ~@2 eb2 ~, c4 ~@15", AQ: "~@7 g3 ~@6 c3 ~", AR: "bb2@3 ~@5, d4 ~@3", AS: "c4 ~@3",
  AT: "~@4 ab3 ~ ab2 ~ bb2@4 ~ [d4,f4] bb2 ~", AU: "[~@5 c4 ab2 bb3 ~@3 bb3 ~@3 c3@2 ~ g3 ~@4 g3 ~@8]/2",
  AV: "~@5 c4 ~@2 bb2@5 ~ bb2 ~", AW: "~@8 [c3,db4] ~@7", AX: "[~@2 ab3 ~@11 bb2 c3@2 ~@6 g3 ~@8]/2",
  AY: "~@6 bb2 d4 ~@6 bb2 ~", AZ: "~@8 bb2@2 ~ f3 ~@4", BA: "~@7 c4 ~@6 c4 ~", BB: "[~@4 ab3 ~@7 bb2 ~@2 bb2@2 ~@15]/2",
  BC: "~@5 ab3 ~@2 bb2@3 ~@3 bb2 ~", BD: "~@3 g3 ~@5 g3 ~@2 c3 ~ c3 ~", BE: "~@4 eb3 ~@6 bb3 ~@4",
  BF: "~@9 c4 ~@2 bb3 ~@3", BG: "~@8 bb2@2 ~ bb3 ~@4", BH: "~@7 c4 ~@8", BI: "~@4 c4!2 ab3 ~@7 bb3 ~",
  BJ: "~@6 c3 ~@5 bb3 ~@3", BK: "~@6 ab2 f3 ~@2 d4 ~@3 bb2 ~", BL: "~@7 g3 ~@6 g3 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.1)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A@2 B C A@2 B C A D E@2 F G E@2 F G H E H E@3 G E G E G E I@2 J K E@2 G E G E G E L@4 E@2 F G E@2 F G H E H E@3 G
  E G E G E@3 G E G E G E L@4 E@2 G E G E G E L@4 ~@8
>`.pickRestart({
  A: "x ~@6 x!2 ~@7", B: "x ~@6 x!2 ~@6 x", C: "~@7 x!2 ~@7", D: "x ~@6 x!2 ~@5 x ~", E: "x ~ x ~@4 x!2 ~ x ~@4 x",
  F: "x ~ x ~@4 x!2 ~ x ~ x ~@2 x", G: "~@2 x ~@4 x!2 ~ x ~@4 x", H: "x ~ x ~@4 x!2 ~ x ~@5", I: "x!4",
  J: "~ x ~ x ~@5 x ~ x ~@4", K: "~ x ~ x ~@4 x ~@3 x ~@3", L: "~@7 x!2 ~@6 x",
})).gain(0.38)

// drums · snare
const snare = s("sd").struct("<~ [~ x ~ x]!34 ~@4 [~ x ~ x]!56 ~@8>").gain(0.43)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@2 B C D E F G H I G J K L D E F G H I G J K L K L M@3 N O P O P M@2 K Q M@3 N O P O P A@2 B C D E F G H I G J K L
  K L M@3 N O P O P M@3 N O P O P A@2 B C M@3 N O P O P A@2 B C ~@8
>`.pickRestart({
  A: "x!8 ~ x ~ x!5", B: "x!8 ~ x ~ x ~ x!3", C: "x!12 ~ x!2 ~", D: "x!3 ~@2 x!3 ~ x ~ x!4 ~",
  E: "x!3 ~@2 x ~ x!3 ~ x ~ x!3", F: "x!3 ~ x!2 ~ x ~ x ~ x!5", G: "x!5 ~@2 x ~ x ~ x!5", H: "x!5 ~ x!2 ~ x!4 ~ x!2",
  I: "~ x ~ x!2 ~ x!2 ~ x ~ x!5", J: "x!5 ~ x!2 ~ x ~ x!4 ~", K: "x!16", L: "x!14 ~ x", M: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2",
  N: "x ~ x!3 ~ x!3 ~@2 x!2 ~ x!2", O: "x!5 ~ x!3 ~ x!3 ~ x!2", P: "x ~ x!3 ~ x!3 ~ x!6", Q: "x!9 ~ x!3 ~ x!2",
})).gain(0.27)

// drums · low tom
const low_tom = s("lt").struct("<~@38 [~@14 x!2] ~@64>").gain(0.38)

// drums · mid tom
// … 24 more lines

More by The Robert Cray Band