Strudelify

So in to You

Atlanta Rhythm Section

KeyF minorTempo86 bpm
0:00/0:00
// So in to You — Atlanta Rhythm Section
// 86 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 6/4 at bar 16, 4/4 at bar 18, 5/4 at bar 33, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 101 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 · epiano1 · "piano"
const epiano1 = note(`<
  A@4 B@5 C D@3 E F G@2 H@2 I J K@2 L M@3 N O P N@2 Q R@8 S@6 T@6 U@2 V W@3 V X Y Z@2 AA Y Z@2 AA Y Z@2 AA Y Z@2 AA Y
  Z@2 AA Y Z@2 AA AB AC AA@2 AB AD AA@2 AE AF AG@6
>`.pickRestart({
  A: "[~@18 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~ c2 f2@2 eb2@4 [ab3,eb4,f4]@4 ~@2 [ab3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~ c2 f2@2 eb2@4 [ab3,eb4,f4]@4 ~@2, ~@9 [f3,g3]@12 [db2,db3,f3]@6 [c2,c3,g3]@6 f2@9 [bb3,eb4,f4]@2 ~@4, ~@9 f2@9 [bb3,eb4,f4]@2 ~@13 [f3,g3]@12 [db2,db3]@3]/4", // Bbsus4 Fm7 Bbsus4 Fm7 Fsus2 Db C5 Bbsus4 …
  B: "[[ab3,eb4,f4]@4 ~@2 [c2,c3,g3,bb3,eb4,f4]@2 ~@3 [bb1,bb2] [c2,c3]@2 [eb2,eb3]@3 [c2,c3] [ab3,c4,eb4,f4]@20 ~@3 [ab3,c4,eb4,f4]@20 ~@4 [ab3,c4,eb4,f4]@20 ~@4 [ab3,c4,eb4,f4]@20 ~@11, ~@6 [f2,f3] ~@33]/5", // Fm7 Cm7 Bb C Eb C Fm7 F
  C: "[ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@13", // Fm Eb Ab Eb Fm
  D: "[[ab3,c4,f4]@2 [g3,bb3,eb4] [eb3,ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@6 [f3,ab3,bb3,db4]@19 ~@5 [f3,ab3,bb3,db4]@19 ~@12]/3", // Fm Eb Ab Eb Fm Bbm7
  E: "[ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@10 [ab3,c4,f4]@2 ~", // Fm Eb Ab Eb Fm
  F: "[ab3,c4,f4]@2 [g3,bb3,eb4] [eb3,ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@7 [bb3,eb4,f4]@4 ~@2", // Fm Eb Ab Eb Fm Bbsus4
  G: "[[bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~ c2 f2@2 eb2@4 [ab3,eb4,f4]@4 ~@2 [ab3,eb4,f4]@4 ~@2 [c2,c3,g3,bb3,eb4,f4]@2 ~@15 [bb1,bb2,bb3], ~@6 [bb3,eb4,f4]@2 ~ [db2,db3]@6 ~@9]/2", // Bbsus4 Fm7 Cm7 Bb Bbsus4 Db
  H: "[[c2,c3,c4]@2 [eb2,eb3,eb4]@3 [c2,c3,c4] [ab3,c4,eb4,f4]@20 ~@3 [ab3,c4,eb4,f4]@19, ~@2 [f2,f3] ~@13]/2", // C Eb C Fm7 F
  I: "~@12 [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~", // Fm Eb Ab Eb Fm
  J: "~@12 [ab3,c4,f4]@2 [g3,bb3,eb4] [eb3,ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~", K: "~@5 [f3,ab3,bb3,db4]@19",
  L: "~ [ab3,c4,eb4,f4]@3", // Fm7
  M: "[~@6 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~ c2 f2@2 eb2@4 [ab3,eb4,f4]@4 ~@2 [ab3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@8 [db4,f4,bb4]@2 [c4,eb4,ab4] [bb3,db4,f4]@2 [c4,eb4,ab4]@4 [db4,f4,bb4]@2 ~, ~ [f3,g3]@4 [db2,db3,f3]@2 [c2,c3,g3]@2 ~@3, ~@3 f2@9 [bb3,eb4,f4]@2 ~@22]/3", // Bbsus4 Fm7 Bbsus4 Bbm Ab Bbm Ab Bbm …
  N: "~@9 [db4,f4,bb4]@2 ~ [db4,f4,bb4]@2 [c4,eb4,ab4] [bb3,db4,f4]@2 [c4,eb4,ab4]@4 [db4,f4,bb4]@2 ~", // Bbm Ab Bbm Ab Bbm
  O: "~@9 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,eb4] [f3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~", // Fm Cm F5 Eb Fm
  P: "~@9 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,eb4,f4]@2 ~", // Fm Cm Ab Eb Fm7
  Q: "~@8 [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@3 ~@2 [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@3", // C7
  R: "[~@2 [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@5 ~@4 [db4,f4,bb4]@2 [c4,ab4] [db4,f4,bb4]@3 [c4,ab4]@2 [db4,f4,bb4]@3 [c4,eb4,ab4] [db4,f4,bb4] [eb4,g4,c5]@6 ~@5 [db4,f4,bb4]@2 [c4,ab4] [db4,f4,bb4]@3 [c4,ab4]@2 [eb4,f4,ab4,c5]@3 ~ [c4,f4,ab4]@2 ~ [bb3,eb4,g4]@2 ~ [ab3,c4,f4]@2 [c4,f4,ab4]@4 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@10 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@10 [db4,f4,bb4]@2 [c4,ab4] [db4,f4,bb4]@3 [c4,ab4]@2 [db4,f4,bb4]@3 [c4,eb4,ab4] [db4,f4,bb4] [eb4,g4,c5]@6 ~@5 [db4,f4,bb4]@2 [c4,ab4] [db4,f4,bb4]@3 [c4,ab4]@2 [eb4,f4,ab4,c5]@3 ~ [c4,f4,ab4]@2 ~ [bb3,eb4,g4]@2 ~ [ab3,c4,f4]@2 [c4,f4,ab4] ~@2 [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@3 ~@2 [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@3 ~@2 [bb3,c4,e4,g4]@3 ~ [bb3,c4,e4,g4]@5 ~@7]/8", // C7 Bbm Fm Bbm Fm Bbm Ab Bbm …
  S: "[~@12 [ab3,c4,eb4,f4]@20 ~@3 [ab3,c4,eb4,f4]@20 ~@4 [ab3,c4,eb4,f4]@20 ~@4 [ab3,c4,eb4,f4]@20 ~@11 [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@10 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [eb3,ab3,c4]@2 [g3,bb3,eb4], ~@4 [f2,f3] ~@43]/6", // Fm7 Fm Eb Ab Eb Fm Eb Ab …
  T: "[~@3 [ab3,c4,f4]@2 ~@6 [f3,ab3,bb3,db4]@19 ~@5 [f3,ab3,bb3,db4]@19 ~@6 [ab3,c4,eb4,f4]@19 ~@5 [ab3,c4,eb4,f4]@19 ~@5 [ab3,c4,eb4,f4]@19 ~@5 [ab3,c4,eb4,f4]@2 ~@3 [bb2,bb3] [c3,c4]@2 [eb3,eb4]@3 [c3,c4]]/6", // Fm Bbm7 Fm7 Bb C Eb C
  U: "[[ab3,c4,eb4,f4]@20 ~@3 [ab3,c4,eb4,f4]@20 ~@5, f3 ~@7, f2 ~@15]/2", // Fm7
  V: "~@6 [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@7", // Fm Eb Ab Eb Fm
  W: "[~@3 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [eb3,ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@6 [f3,ab3,bb3,db4]@19 ~@5 [f3,ab3,bb3,db4]@19 ~@6]/3", // Fm Eb Ab Eb Fm Bbm7
  X: "~@3 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [eb3,ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@7", // Fm Eb Ab Eb Fm
  Y: "~@3 [db4,f4,bb4]@2 [c4,ab4] [db4,f4,bb4]@3 [c4,ab4]@2 [db4,f4,bb4]@3 [c4,eb4,ab4] [db4,f4,bb4] [eb4,g4,c5]@6 ~@2", // Bbm Fm Bbm Fm Bbm Ab Bbm Cm
  Z: "[~@3 [db4,f4,bb4]@2 [c4,ab4] [db4,f4,bb4]@3 ~ [gb4,bb4] [eb4,f4,ab4,c5]@3 ~ [c4,f4,ab4]@2 ~ [bb3,eb4,g4]@2 ~ [ab3,c4,f4]@2 [c4,f4,ab4]@4 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@7, ~@9 [c4,ab4]@2 ~@37]/2", // Bbm Fm Bbm Gb Fm7 Fm Eb Fm …
  AA: "~@3 [ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 [g3,bb3,eb4] [ab3,c4]@2 [g3,bb3,eb4]@4 [ab3,c4,f4]@2 ~@7", // Fm Eb Ab Eb Fm
  AB: "~@2 [db4,f4,ab4,bb4]@2 ~@2 [db4,f4,ab4,bb4]@2 ~@3 [db4,f4,ab4,bb4]@2 ~@2 [db4,f4,ab4,bb4]@2 ~@3 [db4,f4,ab4,bb4]@2 ~@2", // Bbm7
  AC: "[db4,f4,ab4,bb4]@6 ~@5 [db4,f4,ab4,bb4] ~@2 [db4,f4,ab4,bb4]@4 ~@2 [db4,f4,ab4,bb4]@4", // Bbm7
  AD: "~@2 [c4,eb4,g4,ab4]@2 ~@2 [c4,eb4,g4,ab4]@2 ~@3 [db4,f4,ab4,bb4]@7 ~@6", // Abmaj7 Bbm7
  AE: "[bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~ c2 f2@2 eb2@4, [f3,g3], f2@9 [bb3,eb4,f4]@2 ~", // Bbsus4 Fsus2 Bbsus4
  AF: "[ab3,eb4,f4]@2 ~ [ab3,eb4,f4]@2 ~ [bb3,eb4,f4]@2 ~ [bb3,eb4,f4]@2 ~, [db2,db3,f3] [c2,c3,g3]", // Fm7 Bbsus4 Db C5
  AG: "[[bb3,eb4,f4]@4 ~@2 [bb3,eb4,f4]@4 ~@3 [bb3,eb4,f4]@5 ~ c2 f2@2 eb2@5 ~ [ab3,eb4,f4]@6 ~@2 [ab3,eb4,f4]@6 ~@4 [bb3,eb4,f4]@7 ~@3 [bb3,eb4,f4]@8 ~@16 db2@47 ~@17, [f3,g3]@28 [db2,db3,f3]@18 [c2,c3,g3]@22 ~ db5@5 ab3 f3 db3 bb2@2 f2@48 ~@17, f2@20 [bb3,eb4,f4]@5 ~@43 f5@58 ~@18, ~@35 bb4@28 ~@9, ~@71 f4@2 db4@53 ~@18]/6", // Bbsus4 Fm7 Bbsus4 Fsus2 Db C5 Bbsus4
})).s("gm_epiano1").gain(0.7)

// bass · electric bass finger · "bass"
const bass = note(`<
  A@5 B@5 C D E B F@3 G@3 H I J K L M@2 J G N O J P Q R S T U R V@2 W T@5 X R S T@2 Y Z@3 AA AB AC Z AA AB AC Z AA AB AC
  Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z@2 AD AE AF@6
>`.pickRestart({
  A: "[~@18 f2@16 ~ c2 f2@2 eb2@4 db2@12 c2@12 f2@16 ~ c2 f2@2 eb2@4 db2@12 c2@2 ~@3 b1 c2@2 eb2@3 c2 f2@3 ~@3]/5",
  B: "c2@3 ~@3 f2@3 ~@2 bb1 c2@2 eb2@3 c2 f2@3 ~@3", C: "c2@3 ~@3 f2@3 ~@2 eb1 f1@2 ab1@3 f1 bb1@3 ~@3",
  D: "f1@3 ~@3 bb0@3 ~@2 e1 f1@2 ab1@3 f1 bb1@3 ~@3", E: "f1@3 ~@3 bb0@3 ~@2 bb1 c2@2 eb2@3 c2 f2@3 ~@3",
  F: "[c2@3 ~@3 f1@3 ~@9 f2@16 ~ c2 f2@2 eb2@4 db2@12 c2@2 ~@15 bb1]/3",
  G: "c2@2 eb2@3 c2 f2@3 ~@3 c2@3 ~@3 f2@3 ~@2 bb1", H: "c2@2 eb2@3 c2 f2@3 ~@3 c2@3 ~@3 f2@3 ~@2 eb1",
  I: "f1@2 ab1@3 f1 bb1@3 ~@3 f1@3 ~@3 bb0@3 ~@2 e1", J: "f1@2 ab1@3 f1 bb1@3 ~@3 f1@3 ~@3 bb0@3 ~@2 bb1",
  K: "c2@2 eb2@3 c2 f2@3 ~@3 c2@3 ~@3 f2@3 ~@3", L: "~@6 f2@17 c2",
  M: "[f2@2 eb2@4 db2@12 c2@10 ~@2 bb1@3 ~@3 f1@3 ~@3 bb0@3 ~@2 e1]/2", N: "c2@2 eb2@3 c2 f2@3 ~@3 c2@3 ~@3 f1@3 ~@3",
  O: "~@6 bb1@3 ~@3 f1@3 ~@3 bb0@3 ~@2 e1", P: "c2@2 eb2@3 c2 ~@2 c2@3 ~ c2@4 ~ c2@3 ~ c2@3",
  Q: "~@2 c2@3 ~ c2@3 ~@3 bb1@3 ~@3 f1@3 ~@3", R: "bb0@3 ~@2 e1 f1@2 ab1@3 f1 bb1@3 ~@3 f1@3 ~@3",
  S: "bb0@3 ~@2 bb1 c2@2 eb2@3 c2 f2@3 ~@3 c2@3 ~@3", T: "f2@3 ~@2 bb1 c2@2 eb2@3 c2 f2@3 ~@3 c2@3 ~@3",
  U: "f1 ~@3 bb1 ~ f1 ~", V: "[bb0@3 ~@2 bb1 c2@2 eb2@3 c2 ~@2 c2@3 ~ c2@4 ~ c2@3 ~ c2@4 ~ c2@3 ~ c2@3 ~@9]/2",
  W: "~@4 f2 ~ c2 ~", X: "f2@3 ~@2 eb1 f1@2 ab1@3 f1 bb1@3 ~@3 f1@3 ~@3",
  Y: "f2@3 ~@2 bb1 c2@2 eb2@3 c2 f2@3 ~@2 bb1 c2@2 eb2@3 c2", Z: "f2@3 ~@3 c2@3 ~@3 f2@3 ~@2 bb1 c2@2 eb2@3 c2",
  AA: "f2@3 ~@3 c2@3 ~@3 f2@3 ~@2 eb1 f1@2 ab1@3 f1", AB: "bb1@3 ~@3 f1@3 ~@3 bb0@3 ~@2 e1 f1@2 ab1@3 f1",
  AC: "bb1@3 ~@3 f1@3 ~@3 bb0@3 ~@2 bb1 c2@2 eb2@3 c2", AD: "f2@16 ~ c2 f2@2 eb2@4", AE: "db2 c2",
  AF: "[f2@17 ~@3 f2@2 eb2@5 ~ db2@18 c2@22 bb1@58 ~@18]/6",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · distortion guitar · "guitar"
const distortion_guitar = note(`<
  ~@4 A B C D E F G H I J K ~@2 L@2 M N O P Q@2 ~ R@3 S T@2 U V W@2 X Y Z AA ~ AB AC AD AC AE AF AG AH AI AJ AK AL AM AN
  AO AP AQ AR AS AT AU AV@3 AU AW AX AY AZ BA@3 AZ BB@3 AZ BC@3 BD BE BF@2 BG BH BI@2 BG BJ@3 ~@8
>`.pickRestart({
  A: "~@21 [ab4,c5,f5] ~@2", // Fm
  B: "~@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [f4,ab4,c5,f5] ~@2", // Fm
  C: "~@2 [f4,ab4,c5,f5] ~@3 [f4,ab4,c5,f5] ~@4 [f4,ab4,c5,f5] ~@3 [f4,ab4,c5,f5]@2 [f4,ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // Fm
  D: "~@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5]@4 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // Fm
  E: "~@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@8 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // Fm
  F: "~@11 [ab4,c5,f5] ~@3 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // Fm
  G: "~@15 [ab4,c5,f5]@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@2", // Fm Db
  H: "~@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5]@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@2", // Db
  I: "~@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@8 [db5,eb5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // Db Fm
  J: "~@15 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // Fm
  K: "~@6 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5]@2 [ab4,c5,f5] ~@9", // Fm
  L: "[~@9 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5]@4 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@5]/2", // Fm
  M: "~@3 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@13 [ab4,c5,f5]", // Fm
  N: "~@3 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@14", // Fm
  O: "~@3 [ab4,c5,f5]@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5]", // Fm Db
  P: "~@3 [db5,eb5,f5]@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@5", // Db
  Q: "[~@3 [db5,eb5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5]@4 [ab4,c5,f5] ~@20]/2", // Db Fm
  R: "[~@6 [bb4,db5,f5]@2 [bb4,db5,f5] ~@14 [c5,db5,f5]@3 [c5,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] ~@8 [c5,eb5,f5]@3 [c5,eb5,f5] ~@2 [bb4,db5,f5]@3 [bb4,db5,f5]@4 [c5,eb5,f5]@2 [c5,eb5,f5] ~@9 [db5,eb5,f5]@5 [db5,eb5,f5]]/3", // Bbm Dbmaj7 Bbm F7 Bbm F7 Db
  S: "~@5 [c5,eb5,f5]@3 [c5,eb5,f5] ~@11 [db5,eb5,f5] ~@3", // F7 Db
  T: "[[c5,eb5,f5]@2 [c5,eb5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] ~@14 [c5,eb5,f5]@3 [c5,eb5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] ~@11 [bb4,db5,f5] ~@2 [c5,eb5,f5]]/2", // F7 Bbm F7 Bbm F7
  U: "~ [bb4,db5,f5]@2 ~@9", V: "~@12 [bb4,db5,f5]@2 [bb4,db5,f5] ~@9",
  W: "[~@5 [c5,eb5,f5]@3 [c5,eb5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] ~@8 [c5,eb5,f5]@3 [c5,eb5,f5] ~@21]/2", // F7 Bbm F7
  X: "[db5,eb5,f5]@5 [db5,eb5,f5] ~@5 [c5,eb5,f5]@3 [c5,eb5,f5] ~@9", // Db F7
  Y: "~@2 [db5,eb5,f5] ~@3 [c5,eb5,f5]@2 [c5,eb5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] ~@9", // Db F7 Bbm
  Z: "~@5 [c5,db5,f5]@3 [c5,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5] ~@9", AA: "~@5 [c5,db5,f5] ~@2 [bb4,db5,f5]@4 ~@12",
  AB: "~@15 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3", // Fm
  AC: "[ab4,c5,f5] ~@4 [ab4,c5,f5]@4 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3", // Fm
  AD: "[ab4,c5,f5] ~@8 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3", // Fm
  AE: "[ab4,c5,f5] ~@8 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@8", // Fm
  AF: "~@9 [ab4,c5,f5]@2 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@8", // Fm
  AG: "~@9 [ab4,c5,f5]@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3", // Fm Db
  AH: "[db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5]@2 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3", // Db
  AI: "[db5,eb5,f5] ~@8 [db5,eb5,f5]@2 [c5,eb5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3", // Db F7 Fm
  AJ: "[ab4,c5,f5] ~@4 [ab4,c5,f5]@4 [ab4,c5,f5] ~@5 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3", // Fm
  AK: "[ab4,c5,f5] ~@4 [ab4,c5,f5] ~@2 [ab4,c5,f5]@4 ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3", // Fm
  AL: "[ab4,c5,f5] ~@4 [ab4,c5,f5]@3 [ab4,c5,f5] [ab4,c5,f5]@3 [ab4,c5,f5]@2 ~@10", // Fm
  AM: "~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5]@4 [ab4,c5,f5]@2 [ab4,c5,f5]", // Fm
  AN: "~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@8 [ab4,c5,f5]@2 [ab4,c5,f5]", // Fm
  AO: "~@3 [ab4,c5,f5] ~@17 [ab4,c5,f5]@2 [ab4,c5,f5]", AP: "~@3 [ab4,c5,f5] ~@17 [ab4,c5,f5]@2 [db5,eb5,f5]",
  AQ: "~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5]@2 [db5,eb5,f5]", // Db
  AR: "~@3 [db5,eb5,f5] ~@4 [db5,eb5,f5] ~@3 [db5,eb5,f5] ~@8 [db5,eb5,f5]@2 [ab4,c5,f5]", // Db Fm
  AS: "~@3 [ab4,c5,f5] ~@13 [c5,eb5,f5]@4 [c5,eb5,f5] ~@2", AT: "~@3 [c5,eb5,f5] ~@13 [c5,eb5,f5] ~@2 [c5,eb5,f5]@4",
  AU: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@14 [f4,c5,db5]@3 [f4,c5,db5] ~@3", // Bbm Dbmaj7
  AV: "[[f4,bb4,db5]@2 [f4,bb4,db5] ~@20 [f4,ab4,c5]@6 [f4,ab4,c5] ~@11 [f4,ab4,db5] ~@5 [f4,ab4,c5]@3 [f4,ab4,c5] ~@8 [g4,ab4,db5]@3 [g4,ab4,db5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/3", // Bbm Fm Db Fm Db Fm
  AW: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@14 [f4,c5,db5] ~@2 [f4,bb4,db5]@4", // Bbm Dbmaj7 Bbm
  AX: "[f4,ab4,c5,f5]@2 [f4,ab4,c5,f5] ~@14 [eb4,ab4,c5,f5]@4 [eb4,ab4,c5,f5] ~@2", // Fm Fm7
  AY: "~@3 [eb4,ab4,c5,f5] ~@13 [eb4,ab4,db5,f5] ~@2 [eb4,ab4,c5,f5]@4", // Fm7 Db Fm7
  AZ: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@14 [g4,c5,db5]@3 [g4,c5,db5] ~@3", // Bbm C
  BA: "[[f4,bb4,db5]@2 [f4,bb4,db5] ~@20 [f4,ab4,c5]@3 [f4,ab4,c5] ~@20 [f4,ab4,c5]@3 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/3", // Bbm Fm C7 Fm
  BB: "[[f4,bb4,db5]@2 [f4,bb4,db5] ~@20 [f4,ab4,c5]@6 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@5 [f4,ab4,c5]@3 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/3", // Bbm Fm C7 Fm C7 Fm
  BC: "[[f4,bb4,db5]@2 [f4,bb4,db5] ~@14 [f4,bb4,db5] [f4,bb4,db5]@5 [f4,ab4,c5]@3 [f4,ab4,c5] ~@14 [g4,bb4,c5] ~@5 [f4,ab4,c5]@3 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/3", // Bbm Fm C7 Fm C7 Fm
  BD: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@14 [g4,c5,eb5]@3 [g4,c5,eb5] ~@3", BE: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@21",
  BF: "[~@17 [g4,bb4,c5] ~@5 [f4,ab4,c5]@3 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/2", // C7 Fm C7 Fm
  BG: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@6 [f4,bb4,db5]@2 [f4,bb4,db5] ~@5 [f4,bb4,db5]@3 [f4,bb4,db5] ~@3", // Bbm
  BH: "[f4,bb4,db5]@2 [f4,bb4,db5] ~@6 [f4,bb4,db5]@2 [f4,bb4,db5] ~@5 [f4,bb4,db5] ~@2 [f4,bb4,db5]@4", // Bbm
  BI: "[[f4,ab4,c5]@2 [f4,ab4,c5] ~@14 [g4,bb4,c5] ~@2 [f4,ab4,c5]@3 [f4,ab4,c5]@3 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/2", // Fm C7 Fm C7 Fm
  BJ: "[[f4,bb4,db5]@2 [f4,bb4,db5] ~@6 [f4,bb4,db5]@2 [f4,bb4,db5] ~@11 [f4,ab4,c5]@3 [f4,ab4,c5] ~@20 [f4,ab4,c5]@3 [f4,ab4,c5] ~@11 [g4,bb4,c5] ~@3 [f4,ab4,c5]@2 [f4,ab4,c5] ~@3]/3", // Bbm Fm C7 Fm
})).s("gm_distortion_guitar").gain(0.14)

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

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

// drums · hihat
const hihat = s("hh").struct("<~ A@3 B C@9 D A E@2 C@8 F C@5 G H C@5 I J C@11 K C@8 ~@32 L@2 ~ M N ~@3>".pickRestart({
  A: "~@15 x!2 ~@7", B: "~ x ~ x", C: "x!4", D: "x!3 ~", E: "~ x!3", F: "~ x!2 ~ x ~ x ~", G: "x ~ x!6",
  H: "x!3 ~ x ~ x ~", I: "x ~ x ~ x!4", J: "x!5 ~ x ~", K: "x!2 ~@2", L: "~@21 x!2 ~", M: "x!2 ~@10",
  N: "~@14 x ~@2 x ~@6",
})).gain(0.8)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@4 A B@9 C ~@2 D B@7 C D B@5 E F B@5 G ~ F B@10 G B@8 ~@40>".pickRestart({
  A: "~@7 x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@2", D: "~@3 x ~ x ~ x", E: "~ x ~@6", F: "~@5 x ~ x",
  G: "~ x ~ x ~@4",
})).gain(0.24)

// drums · low tom
const low_tom = s("lt").struct("<~@14 A ~@18 B ~@6 C ~@23 D ~@7 E ~@3 D ~@23 B>".pickRestart({
  A: "~@17 x ~@6", B: "~@5 x ~@18", C: "~@11 x ~@12", D: "~@20 x!2 ~@2", E: "~@21 x ~ x",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@14 A ~@18 B ~@6 C ~@31 D ~@3 E ~@23 F>".pickRestart({
  A: "~@2 x", B: "~ x ~@4", C: "~@5 x ~@6", D: "~@6 x ~ x ~@2 x ~@6 x ~ x ~@3", E: "~@12 x ~ x ~@2 x!2 ~@5",
  F: "~@5 x ~@18",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<A@2 B A C ~@9 A@2 C ~@8 D ~@67 C E C F ~ G H ~>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x", D: "~@7 x", E: "x!2", F: "~@2 x ~@8 x", G: "~@3 x ~@16 x ~@3", H: "~@7 x ~@16",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  A ~@25 B ~@5 C D ~@5 E F ~@12 G ~@7 G ~@3 G ~@3 G ~@3 G ~@3 G ~@3 G ~@3 G ~@7 G ~ G ~ H ~@3
>`.pickRestart({
  A: "~@3 x", B: "~ x ~@2", C: "~@8 x ~@3 x ~@4 x ~@3 x ~@2", D: "~ x ~ x ~@2 x ~@5", E: "~@14 x ~@3 x ~@4 x",
  F: "~@3 x ~@4 x ~@3 x ~@11", G: "x", H: "~@5 x",
})).gain(0.8)

// drums · high tom
const high_tom = s("ht").struct("<~@14 A ~@18 B ~@6 C ~@23 D ~@7 E ~@27 F>".pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@6", C: "~@3 x ~@4", D: "~@12 x ~ x ~@2 x!2 ~@5", E: "~@12 x ~ x ~@2 x ~@6", F: "~@5 x ~@18",
})).gain(0.8)

// drums · ride
const ride = s("rd").struct(`<
  A B C D ~@10 E D ~@45 F@3 G F@3 G F@3 H F@3 G F@3 I F@3 G F@8 J K L M N O P ~
>`.pickRestart({
  A: "~@18 x ~@2 x ~ x", B: "x ~@2 x!2 ~ x ~@2 x!2 ~ x!2 ~@4 x!2 ~ x!2 ~",
// … 19 more lines

More by Atlanta Rhythm Section