Strudelify

Through the Years

Kenny Rogers

KeyC minorTempo60 bpm
0:00/0:00
// Through the Years — Rogers Kenny
// 60 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 77 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/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.

// bass · acoustic bass
const bass = note("<~@4 A@3 B C@8 D@8 E@2 F@5 G@7 H@2 I J@6 K@3 L@5 M@5 N@5 O@8 P@3 ~>".pickRestart({
  A: "[~@11 d2@6 a1@5 ~ d2@6 g2@24 gb2@12 b1@12 e1@23 ~ d2@12 g1@12 c2@19, ~@5 d4@23 ~@116]/3",
  B: "~@5 c2@24 b1@17 ~@2",
  C: "[~@5 d3@24 g2@23 ~ gb2@12 b1@12 e2@23 ~ d2@12 g1@12 c2@24 b1@24 a1@24 d2@9 ~@3 d2@2 ~@4 d2@3 ~@3 g2@24 e2@24 a1@17 ~ a1@6 d2@12 c2@12 b1@14 ~@4 b1@6 e2@17 ~ e2@6 a1@18 b1, ~@2 c3 ~@189]/8",
  D: "[~@2 c2@2 ~ d2@12 c2@12 b1@15 ~@3 b1@6 e2@24 a1@14 ~@4 a1@6 d2@12 c2@12 b1@24 e1@24 c2@34 ~@2 c2@2 ~@4 b1@2 ~@4 a1@24 d2@11 ~ d2@11 ~ g2@17 ~ gb2@6 e2@24 c2@17 ~ c2@5 ~ d2 ~@5 d2@7 ~@5 d2@6 g1@19]/8",
  E: "[~@5 gb1@11 ~ b1@12 e1@24 d2@12 g1@12 c2@14 ~@4 c2]/2",
  F: "[~@5 c2@18 g1@3 a1@3 b1@15 ~@3 b1@2 ~ c2@2 ~ d2@10 ~@2 d2@12 g1@18 g2@6 gb2@12 b1@12 e2@14 ~@4 e2@6 d2@11 ~ g1@12 c2@13 ~@5 c2@6 b1@14 ~@4 b1@6 a1@17 ~ b1]/5",
  G: "[~@2 c2@2 ~ d2@11 ~ d3@6 d2@6 g1@12 ~@6 gb1@6 e1@17 ~ e1@6 a1@17 ~ a1@5 ~ d2@11 ~ c2@12 b1@17 ~ b1@6 e2@17 ~ e2@6 a1@16 ~@2 a1@5 ~ d2@12 c2@12 b1@23 ~ e1@18 g1@3 ab1@3 a1@15 ~@3 a1@5 ~ d2@12 c2@12 b1@15 ~@3 b1]/7",
  H: "[~@5 e1@23 ~ c2@33 ~@3 c2@3 ~@3 b1@6 a1@16 ~@2 b1]/2", I: "~@2 c2@2 ~ d2@8 ~ d2@2 ~ d2@4 ~@2 d2@6 g1@16 ~@2 g1",
  J: "[~@5 g1@11 ~ g1@12 eb2@5 ~ eb2@5 ~ eb2@5 ~ eb2@5 ~ eb2@6 eb3@6 bb2@6 eb2@6 ab1@13 ~@5 g1@6 f1@17 ~ f1@6 bb1@17 ~ bb1@6 eb2@11 ~ db2@12 c2@17 ~ c2@6 f1@17 ~ f1@6 bb1@16 ~@2 bb1@5 ~ eb2@12 db2@12 c2@19]/6",
  K: "[~@5 f1@18 ab1@3 a1@3 bb1@15 ~@3 bb1@6 eb2@12 db2@12 c2@13 ~@5 c2@6 f2@12 eb2@12 db2@14 ~@4 db2]/3",
  L: "[~@5 db2@12 c2@12 bb1@24 eb2@9 eb3@2 ~ eb3@3 bb2@3 eb2@5 ~ ab1@12 ~@6 ab1@6 f1@13 ~@5 f1@6 bb1@14 ~@4 bb1@6 eb2@11 ~ db2@12 c2@14 ~@4 c2@6 f2@12 eb2@11 ~ db2@17 ~ db3]/5",
  M: "[~@2 ab2@3 db2@12 c2@12 bb1@16 ~@2 bb1@5 ~ eb2@6 eb3@2 ~@4 eb3@3 bb2@3 eb2@6 ab1@17 ~ g1@6 f1@11 ~ f1@6 ab1@2 ~ a1@3 bb1@17 ~ bb1@5 ~ eb2@12 db2@12 c2@17 ~ c2@5 ~ f2@12 f1@6 ab1@3 a1@3 bb1@17 ~ bb1]/5",
  N: "[~@5 eb2@6 eb3@6 db2@6 db3@6 c2@17 ~ c2@6 f1@18 ab1@2 ~ a1@3 bb1@17 ~ bb1@6 eb2@12 db2@11 ~ c2@15 ~@3 c2@6 f2@11 ~ eb2@12 db2@15 ~@3 db2@3 ab1@3 db2@12 c2@11 ~ bb1@19, ~@221 c2 ~@18]/5",
  O: "[~@2 eb2@2 ~ eb2@6 eb3@4 ~@2 eb3@3 bb2@3 eb2@5 ~ ab1@16 ~@2 ab1@3 g1@3 f1@11 ~ f1@12 bb1@17 ~ bb1@5 ~ eb2@11 ~ db2@12 c2@17 ~ c2@5 ~ f2@12 f1@6 ab1@2 ~ a1@3 bb1@17 ~ bb1@6 eb2@6 eb3@6 db2@6 db3@6 c2@16 ~@2 c2@6 f2@12 f1@6 ab1@3 a1@3 bb1@16 ~@2 bb1@6 eb2@12 db2@11 ~ c2@13 ~@5 c2@5 ~ f2@12 eb2@11 ~ db2@14 ~@4 db2]/8",
  P: "[~@5 db2@12 c2@12 bb1@24 eb2@11 ~ eb2@12 [ab1,ab2]@48 ~@19]/3", // Ab
})).s("gm_acoustic_bass").gain(0.35)

// chords · piano
const piano = note("<A@5 B@4 C@8 D@2 E@8 F@2 G@7 H@7 I@8 J K@6 L@8 M@8 N@2 ~>".pickRestart({
  A: "[~@29 d4@12 ~@6 b4@5 ~@19 e3@6 ~@18 e4@6 ~@6 c4@6 ~@6 g4@6 d4@12 ~@6 gb4@6 ~@18 [b3,g4]@6 ~@18 g4@6 ~@12 [d5,e5,g5,a5,d6]@11 ~ [g3,g4,b4,d5]@19, ~@29 [g2,d3,g3,a3,b3]@23 ~ [e2,b3,gb4,a4]@24 ~@6 e3@18 [d3,e4,g4]@13 ~@11 [b2,b3,a4]@24 e2@25 ~@29 d2@17 ~@20, ~@41 [d4,a4,c5]@11 ~@7 b2@18 [a2,g3,a3]@25 ~@11 [c3,a3,d4,gb4]@13 ~@11 d4@12 [b3,g4]@18 ~@6 [a2,g3,a3,c4]@24 ~@43, ~@65 [e4,g4]@12 c4@12 c4@13 ~@23 gb4@18 ~@12 b2@19 ~@11 e4@12 ~@43, ~@161 [e3,d4,b4]@13 ~@5 e3@18 [d3,a3,c4,e4,g4]@23 ~@20]/5", // Em Dsus4 G Esus4 Em7 B7 D7 A7 …
  B: "[~@5 gb3@12 ~@6 eb5@5 ~@18 g5@6 ~@7 d5@6 ~@8 d5@4 ~@18 [g4,e5]@5 ~@18 gb5@6 ~ [b2,b3,a4,b4,d5]@24 ~@18 c4@6 [g2,d3,g3,b3,d4]@19, ~@5 gb4@23 ~@7 b3@17 d3@12 ~@13 c3@23 c3@25 ~@24 d3@23 ~@20, ~@5 [a4,db5]@18 ~@6 e5@11 ~ e5@12 [a4,f5]@12 ~@6 c5@6 [g4,c5,e5]@17 c5@5 ~@2 [a4,d5]@24 ~@25 a3@23 ~@19, ~@17 b3@12 [e3,g4,b4]@24 ~@12 [g3,g4,b4]@12 ~@6 g3@17 ~@6 a5@19 ~@25 c4@11 e4@12 ~@19, ~@89 c4@11 ~ gb5@11 d6@12 ~@26 e4@5 g4@18 ~@19]/4", // C Bm7 G A Dm C D5 Em …
  C: "[~@11 b3@5 ~@6 a4@7 ~@20 e4@3 ~@6 f3@6 e4 ~@5 c5@6 ~@18 g4@7 b3@12 ~@6 d4@5 a2 ~@24 [a3,c4,e4,g4]@12 [c4,e4,g4,c5]@12 ~@18 [g4,b4]@6 ~@18 e3@6 ~@18 g4@5 ~@7 d3@6 [c3,a3,d4,gb4]@11 ~ b3@11 ~@7 a4@6 ~@18 b3@5 ~@13 [a3,c4,e4]@12 ~@6 e4@6 d4@6 d4@6 a3@11 ~ a3@6 d4, ~@5 [gb2,gb3,a3]@11 ~ [b2,gb3,eb4]@12 [e3,b3,e4,g4]@23 [d2,d4]@12 ~@13 [c2,c4,d4,e4]@24 ~@143 d2@14 ~@35 [e2,g4]@24 ~@6 e3@19 ~@42, ~@35 e2@18 ~@11 [g2,c4,d4,f4,a4]@12 ~@6 g2@19 [b2,g4]@24 ~ a2@36 ~@11 [g2,a3,b3,d4]@24 [e2,gb4,a4]@25 ~@5 e3@18 ~@54 e3@18 [a3,c4]@12 ~@55, ~@41 g3@12 [a3,f4]@12 ~@24 e3@13 ~@11 b3@12 [a3,c4,e4]@22 ~@2 d3@24 ~@6 d3@18 ~@6 b2@18 [a2,g3]@24 ~@24 [b2,d4,gb4]@25 ~@11 g3@12 g3@24 [d2,g3,a3,c4]@13 ~@30, ~@47 d4@5 ~@25 g4@17 ~@7 d4@18 ~@66 [a4,c5]@12 ~@12 [e4,g4]@12 [a3,c4]@12 [a3,c4,e4]@12 [g3,a3,c4]@12 ~@24 b3@12 b3@17 ~@6 a2@26 ~@11 [c3,a3,gb4]@12 [b2,b3,d4]@19]/8", // Am7 C G D7 Am Gbm B Em …
  D: "[~@23 d4@5 ~@13 [a3,c4,e4]@11 ~@7 d3@6 ~@6 g4@6 ~@12 a4@7, ~@5 [e3,e4]@25 ~@5 e3@17 ~@13 [c3,a3,c4,e4]@12 [b2,b3,d4,gb4]@19, ~@5 d4@18 ~@5 a2@24 ~ [d2,g3,a3,c4]@13 ~@30, ~@5 ab3@12 ab3@12 g3@23 ~@44, ~@11 e2@18 c4@12 ~@55]/2", // Am E Am Bm Dsus4
  E: "[~@5 b3@12 ~@6 ab4@5 c3 g4@17 ~ g4@6 ~@12 c4@6 [b2,b3,d4,g4]@6 [a3,c4]@12 [g3,a3,c4]@12 [a3,c4,e4,g4]@12 [a3,c4,e4,g4]@11 ~@19 [g4,b4]@6 ~@12 [e4,g4]@11 ~@13 [c4,e4]@11 ~ [d2,d3,a3,c4,e4,g4] ~@5 [d2,d3,a3,c4,e4,g4]@18 ~@12 [g3,b3]@12 ~@6 b3@6 ~@6 a4@6 ~@21 e4@3 ~@6 d3@6 ~@6 g3@6 ~@18 e4@6 ~@18 gb4@6 [b2,a3,b3,d4]@19, ~@5 [e3,d4,f4]@23 ~ c3@42 ~@6 [a2,e4,g4]@24 [d2,d3]@23 g2@25 [e2,gb4,a4]@24 ~@48 [g2,a3,d4]@25 ~@41 d4@5 ~@25 e4@18 ~@6 gb4@18 ~@25, ~@5 ab4@18 ~@6 d4@30 d4@12 ~@60 d3@18 ~@6 b2@18 ~@6 c3@18 ~@30 d3@18 ~@12 [b2,gb3,eb4]@13 ~@5 b2@17 ~@13 [g2,c4,f4,a4]@13 ~@5 c3@18 ~@6 c3@18 ~@19, ~@17 b3@11 ~ c4@36 ~@60 [a3,b3,d4]@24 ~@23 c2@24 ~@49 [gb2,gb3,a3]@12 ~@12 [e2,e4,g4]@23 ~ [d2,a3,d4,f4]@12 ~@12 [c2,d4,g4]@24 [c2,a3,d4]@24 ~@19, ~@29 e4@23 ~ [e4,g4]@18 ~@66 [a4,c5]@12 ~@24 [d4,f4]@23 ~@25 b3@12 ~@36 b3@12 [g3,b3]@11 ~@25 c4@12 [g3,c4]@12 ~@12 a4@12 ~@19]/8", // G Am Am7 G Em C Am7 G …
  F: "[~@17 [g3,a3,c4]@12 ~@12 b3@6 [g3,b3]@6 ~@6 b3@5 ~@7 a4@6 ~@12 g3@6 d4, ~@4 [e4,g4]@25 b3@12 [d4,g4]@12 ~@24 b3@11 b3@8, ~@4 c4@7 d2@18 [g2,a3]@25 ~@42, ~@5 d3@24 ~@6 d3@19 ~@11 [b2,gb3,eb4]@12 [e3,e4,g4]@19, ~@5 a3@12 ~@12 g3@18 ~@6 [gb2,gb3,a3]@11 ~@19 e2@13]/2", // Am7 G Em G5 Gsus2 B Em Gbm
  G: "[~ e4@3 ~@7 d2@6 [g2,c4,d4,f4,a4]@9 ~@15 [g3,c4,e4]@12 b3@12 ~@6 g4@6 ~@12 [g3,a3,c4]@11 ~@13 a3@12 ~@18 [g4,b4]@6 ~@18 e3@6 ~@18 g4@5 ~@7 d3@6 [c3,a3,d4,gb4]@11 ~ b3@11 ~@6 a4@7 ~@18 b3@5 ~@13 [a3,c4,e4]@12 ~@6 e4@6 d4@6 d4@6 a3@11 ~ a3@6 d4, ~@5 [d3,a3,d4,f4]@12 ~@9 g4@27 g4@18 ~@12 e3@18 [a3,c4]@12 [g3,c4]@24 [a4,c5]@12 ~@12 [e4,g4]@12 [a3,c4]@12 [a3,c4,e4]@12 [g3,a3,c4]@12 ~@24 b3@12 b3@17 ~@6 a2@25 [d2,g3,a3,c4]@13 ~@30, ~@27 e4@2 c4@6 c2@18 ~@48 [d2,e4]@48 [e2,gb4,a4]@25 ~@22 d2@14 ~@35 [e2,g4]@24 ~@6 e3@19 ~@11 [c3,a3,gb4]@12 [b2,b3,d4]@19, ~@28 d4@25 ~@12 b3@12 [a3,c4]@12 ~@12 g4@30 d3@18 ~@6 b2@18 [a2,g3]@24 ~@24 [b2,d4,gb4]@25 ~@11 g3@12 g3@24 ~@43, ~@29 c3@24 [b2,d4]@24 [a2,e4]@24 ~@6 d3@18 [g2,a3,b3,d4]@24 ~@30 e3@18 ~@54 e3@18 [a3,c4]@12 ~@55]/7", // Dm7 C Am7 G D7 Am Dm Am …
  H: "[~@23 d4@5 ~@13 [a3,c4,e4]@11 ~@7 d3@6 ~@6 g4@6 ~@12 a4@11 ~ b3@12 ~@6 ab4@5 c3 g4@17 ~ g4@6 ~@12 c4@6 [b2,b3,d4,g4]@6 [a3,c4]@12 [g3,a3,c4]@12 [a3,c4,e4,g4]@12 [a3,c4,e4,g4]@11 g2 [g3,b3,d4]@11 ~@25 [b3,d4,g4]@11 ~ [bb3,db4,f4,ab4]@12 ~@24 [bb5,db6,f6,ab6]@12 [ab3,c4,eb4]@12 [ab3,c4,eb4]@7, ~@5 [e3,e4]@25 ~@5 e3@17 ~@13 [c3,a3,c4,e4]@12 [b2,b3,d4,gb4]@24 ~@12 b3@11 ~ c4@36 ~@60 d3@18 d3@12 d3@17 ~ eb3@18 eb3@30 ~@19, ~@5 d4@18 ~@5 a2@24 ~ [d2,g3,a3,c4]@13 ~@59 e4@23 ~ [e4,g4]@18 ~@78 [b3,d4]@12 ~@24 [bb3,db4,f4,ab4]@36 ~@19, ~@5 ab3@12 ab3@12 g3@23 ~@49 [e3,d4,f4]@23 ~ c3@42 ~@6 [a2,e4,g4]@24 [d2,d3]@23 ~ g2@46 ~@2 eb2@48 ab2@19, ~@11 e2@18 c4@12 ~@60 ab4@17 ~@7 d4@30 d4@12 ~@66 [g3,b3,d4]@11 ~ [g3,a3]@23 ~@25 [bb4,db5,f5,ab5]@24 ~@19]/7", // Am G Am Am7 G Bbm7 Ab E …
  I: "[~@17 [c4,eb4,f4,ab4]@12 [ab3,bb3,db4,f4]@12 [ab3,bb3,db4,f4]@12 ~@6 eb3@6 ~@6 db2@6 [bb3,eb4]@12 ~@3 [bb3,eb4,g4]@9 [a3,c4,eb4]@12 ~@6 f3@6 [ab3,bb3,db4,f4]@12 ~@6 bb2@5 ~ [eb2,bb3,db4,f4,ab4]@12 ~@6 db2@6 ~@18 [bb3,c4,eb4,g4]@6 ~@18 f2@6 [ab3,bb3,db4,f4]@12 [ab3,bb3,db4,f4]@12 [eb2,eb3,bb3,db4,f4,ab4]@11 ~ [db2,db3,bb3,eb4,g4]@12 c2 ~@11 [bb3,c4,eb4,g4]@12 [a3,c4,eb4,gb4]@11 ~ [a3,c4,eb4,gb4]@12 [db4,eb4,f4,ab4]@12 [db4,eb4,f4,ab4]@12 [db4,eb4,f4,ab4]@12 [c3,c4,eb4,ab4]@12 [bb2,bb3,db4,f4,ab4]@19, ~@5 [f2,f3,ab3]@24 ~@24 [eb2,f3,ab3,bb3,db4]@12 ~@24 c2@13 ~@83 c2@12 f2@18 ~@6 bb2@23 ~@25 [c3,g3]@24 f2@25 ~@66, ~@5 c4@12 ~@84 f2@24 bb2@18 ~@18 [db3,bb3,eb4,g4]@12 [c3,g3]@24 ~@6 f3@18 ~@54 c2@19 ~@23 [db2,db3]@36 ~@31, ~@11 c3@18 bb2@24 ~@12 [db3,bb3,eb4,g4]@12 [c3,g3,c4]@25 ~@11 [a3,c4,eb4]@13 ~@11 [ab3,bb3,db4,f4]@12 ~@24 [bb3,c4,eb4]@18 ~@6 [a3,c4,eb4,f4]@24 ~@48 [bb3,c4,eb4]@12 ~@103]/8", // Fm7 Bbm7 Eb5 Eb Adim Bbm7 Cm7 Bbm7 …
  J: "~@5 [bb3,db4,f4,ab4]@12 [bb3,db4,f4,ab4]@11 ~ [ab3,c4,eb4]@11 ~ [ab3,c4,eb4]@7, ~@5 [eb2,eb3]@23 ~ ab2@19", // Bbm7 Ab Eb
  K: "[~@23 eb4@6 [f3,ab3,bb3,db4]@12 [f3,ab3,bb3,db4]@12 [eb2,eb3,ab3,bb3,db4,f4]@12 [db2,db3,bb3,eb4,g4]@11 ~@13 [c4,eb4,g4,bb4]@12 [a3,c4,eb4,f4]@12 [a3,c4,eb4,f4]@12 [db4,f4,ab4]@12 [db4,eb4,f4,ab4]@12 [db4,eb4,f4,ab4]@12 [c3,c4,eb4,ab4]@12 [bb3,db4,f4,ab4]@12 [bb3,db4,f4,ab4]@11 ~@13 [bb4,db5,f5,ab5]@12 [ab3,c4,eb4]@12 [ab3,c4,eb4]@12 ~@12 [ab3,c4,eb4]@12 [ab3,bb3,db4]@12 [ab3,bb3,db4]@7, ~@5 f2@23 ~@55 c2@19 ~@23 [db2,db3]@36 ~@36 [eb2,eb3,bb3,db4,f4,ab4]@25 ~@29 c3@19 ~@18, ~@5 [f3,ab3,c4,eb4]@11 ~ [f3,ab3,c4]@12 ~@48 [c4,eb4]@12 ~@12 f2@25 ~@119 [f2,f3]@25 ~@18, ~@11 c3@18 bb2@24 ~@24 [c3,g3,bb3]@25 ~@71 bb2@23 ~@25 ab2@24 [ab3,c4,eb4]@12 ~@12 bb2@19]/6", // Bbm7 Eb7 Cm7 F7 Db Ab Bbm7 Ab …
  L: "[~@11 f4@5 ~ [eb4,g4]@6 [eb4,g4,bb4]@6 [c4,eb4]@12 [g3,c4,eb4]@12 [a3,c4,eb4,f4]@11 ~ [a3,c4,eb4,f4]@12 [ab3,bb3,db4,f4]@12 [ab3,bb3,db4,f4]@11 ~ [eb2,eb3,bb3,db4,f4,ab4]@11 ~ [db2,db3,bb3,eb4,g4]@12 [bb3,c4,eb4]@12 [g3,bb3,c4,eb4]@12 ~@18 c3@6 [db4,f4]@12 [c4,db4,f4,ab4]@12 ~@6 eb3@6 ~ db2 ~@4 [eb5,g5]@6 ~@18 c3@6 ~@18 f3@6 [db4,eb4,f4,ab4]@12 [db4,eb4,f4,ab4]@12 [db4,eb4,f4,ab4]@12 [c3,c4,eb4,ab4]@12 [bb3,db4,f4,ab4]@12 [bb3,db4,f4,ab4]@11 ~@19 eb3@6 [ab3,c4,eb4]@12 [ab3,c4,eb4]@7, ~@5 [eb3,ab3,bb3,db4]@11 ~ [db3,bb3]@12 [c2,c3,g4]@24 f2@24 bb2@24 ~@24 [c2,c3,g4]@24 [f2,c4]@24 ~@24 [eb2,ab3,bb3,db4,f4]@13 ~@11 [c2,g4,bb4,c5,eb5]@24 f2@25 ~@47 bb2@23 ~ eb3@18 ~@25, ~@149 [a3,eb4]@12 [f3,a3,eb4]@11 ~@61 [g3,bb3,c4,eb4]@12 [a3,c4,eb4,f4]@11 ~ [a3,c4,eb4,gb4]@13 ~@83 [bb3,db4,f4,ab4]@12 ~@19, ~@155 c3@12 ~@6 [bb2,ab3,bb3]@24 ~@12 [db3,bb4,db5,f5,ab5]@12 c3@18 ~@12 f3@12 ~@6 [db2,db3]@37 ~@35 [eb2,bb4,db5,f5,ab5]@24 ab2@19]/8", // Eb Cm F7 Bbm7 Eb7 Cm7 Db Dbmaj7 …
  M: "[~@17 [c4,eb4,f4,ab4]@12 [ab3,bb3,db4,f4]@12 [ab3,bb3,db4,f4]@11 ~ [eb2,eb3,f3,ab3,bb3,db4]@12 ~ db2@11 [c4,eb4]@12 [g3,bb3,c4,eb4]@12 ~@12 [a3,c4,eb4,f4]@12 ~@9 [bb4,db5,f5,ab5]@3 [bb4,db5,f5,ab5]@9 ~ [bb3,db4]@2 ~ [eb2,eb3]@11 [db2,db3,bb3,eb4,g4]@12 [bb3,c4,eb4]@12 [bb3,c4,eb4,g4]@12 ~@12 [a3,c4,eb4,f4]@12 [ab3,bb3,db4,f4]@12 [ab3,bb3,db4,f4]@12 [eb2,eb3,f3,ab3,bb3,db4]@12 [db2,db3,bb3,eb4,g4]@12 [bb3,c4,eb4]@12 [g3,bb3,c4,eb4]@12 f2@12 [eb2,eb3]@7 ~@5 [db4,eb4,f4,ab4]@11 ~ [db4,eb4,f4,ab4]@11 ~ [db4,eb4,f4,ab4]@11 ~ [c3,c4,eb4,ab4]@11 ~ [bb2,bb3,db4,f4,ab4]@19, ~@5 [f2,f3,ab3]@24 bb2@23 ~@25 [c2,c3,g4,bb4]@25 ~@5 f3@18 ~@24 [bb3,db4,f4,ab4]@12 ~@36 f2@25 ~@47 [c2,c3,g4]@24 ~@91, ~@5 [c4,eb4]@12 ~@84 [a3,c4,eb4,f4]@12 ~@33 [f4,ab4]@2 ~@49 [a3,c4,eb4,f4]@12 ~@12 bb2@23 ~@73 db3@35 ~@32, ~@11 c3@19 ~@35 [db3,bb3,eb4,g4]@12 ~@24 f2@24 [bb2,ab3,bb3,db4,f4]@24 ~@24 [c2,c3,g3]@25 ~@5 f3@19 ~@71 [a3,c4,eb4,gb4]@20 ~@71]/8", // Fm7 Bbm7 Cm Cm7 F7 Bbm7 Bbm Eb …
  N: "[~@5 [bb3,db4,f4,ab4]@12 [bb3,db4,f4,ab4]@12 [ab2,ab3,c4,eb4,ab4]@61 ~@6, ~@5 [eb2,eb3]@25 ~@66]/2", // Bbm7 Ab Eb
})).s("gm_piano").gain(0.54)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@12 A B C D E F G H@2 I@6 J@5 B C D K L M N@5 O P Q R S R T@3 O U V@3 W X Y Z AA AB AC@3 W X AA AD AA U AE@3 ~@2
>`.pickRestart({
  A: "~@41 [d4,g4,b4] ~@6", B: "~@17 [e4,g4,b4] ~@23 [c4,e4,g4] ~@6", C: "~@17 [a3,c4,e4,g4] ~@23 [b3,d4,gb4,a4] ~@6",
  D: "~@17 [b3,e4,g4] ~@23 [a3,c4,e4] ~@6", // Em Am
  E: "~@23 a3@6 ~@12 [b3,d4,gb4,a4] ~@6, ~@5 g4@24 ~@19, ~@11 e4@18 ~@19, ~@17 c4@11 ~@20", // Bm7
  F: "~@17 [b3,d4,e4,ab4] ~@23 [a3,c4,e4,g4]@2 ~@5", G: "~@17 [c4,e4,g4] ~@23 [b3,d4,gb4] ~@6",
  H: "[~@17 [b3,d4,f4,ab4] ~@35 c4@11 ~ [c4,e4,g4]@5 ~ [b3,d4,g4]@5 ~ [a3,c4,e4,g4]@18 ~, ~@29 g4@35 ~@32, ~@35 e4@20 ~@41, ~@41 c4@10 ~@45, ~@47 g3@16 ~@33]/2", // Bdim C G Am7
  I: "[~@5 [a3,c4]@21 ~@15 g4@6 b4@6 ~@18 g3@5 ~@19 g4@4 ~@2 [a3,c4,e4,g4] ~@5 [a3,c4,e4,g4]@17 ~@13 g4@6 b4@6 ~@12 eb4@6 ~@6 e4@12 g4@6 e4@6 ~@9 f4@3 ~@3 f4@3 d4@3 a3@3 ~@12 g3@6 g4@6 gb4@12 a4@3 gb4@3 d4@3 a3@3 b3@19, ~@2 [e4,g4]@23 ~@4 b3@19 ~@11 e4@19 ~@11 e4@10 ~@32 d4@12 ~@12 gb4@12 ~@36 d4@8 ~@10 e4@17 ~@50, ~@35 d4@13 ~@5 g4@24 ~@72 a4@18 ~@42 a4@6 ~@73, ~@65 b3@12 ~@6 c4@12 ~@30 b3@17 ~@25 b3@25 ~@5 a3@15 ~@15 c4@11 ~@50]/6", // Am Am7 Em
  J: "[~@17 e4@6 g4@6 d4@12 b3@6 g4@5 ~ a4@6 gb4@6 eb4@6 b3@6 e4@6 ~@6 e4@3 g4@3 e4@6 ~@9 d4@3 f4@6 e4@3 d4@3 [g3,c4]@23 ~@13 g4@6 d4@5 ~ [a3,c4,e4]@23 ~ [a3,c4,g4]@10 ~@2 [a3,c4,e4,g4]@12 ~@12 [d4,g4,b4] ~@6, ~@5 a3@18 ~@60 g3@8 ~@16 a3@12 ~@121, ~@11 c4@12 ~@63 b3@8 ~@61 b3@13 ~@29 e4 ~@42]/5", // C5 Am Am7 G
  K: "~@5 [c4,e4,g4]@11 ~ [c4,e4,g4]@11 ~@13 [b3,d4,gb4,a4] ~@6", L: "~@17 [b3,e4,ab4] ~@23 [c4,e4,g4] ~@6",
  M: "~@17 [a3,c4,e4,g4] ~@23 [b3,d4,gb4,a4]@2 ~@5", // Am7 Bm7
  N: "[~@17 [b3,d4,f4,ab4]@2 ~@19 e4@3 ~@6 c4@3 g3@3 c4@3 ~@6 e4@3 ~@6 c4@6 ~@6 e4@3 ~@9 a3@5 ~ [c4,e4,g4]@21 ~@3 [b3,d4,g4]@35 ~ [b3,d4,g4]@6 ~@6 [bb3,db4,f4,ab4]@24 ~@18 bb3@5 ~@13 [c4,eb4,ab4] ~@6, ~@29 g4@6 c4@6 g4@18 c4@6 g4@14 ~@7 g4@14 ~@97 ab4@23 ~@20, ~@32 g3@12 e4@10 ~@2 g3@16 ~@5 a3@15 c4@8 ~@109 db4@12 ~@19, ~@68 e4@10 ~@2 c4@8 ~ e4@11 ~@103 f4@17 ~@20]/5", // Bdim C G Bbm7 Ab
  O: "~@17 [f4,ab4,c5] ~@23 [db4,f4,ab4] ~@6", P: "~@17 [bb3,eb4,g4] ~@23 [c4,eb4,g4] ~@6",
  Q: "~@17 [f4,a4,c5] ~@23 [db4,f4,ab4] ~@6", R: "~@17 [db4,f4,ab4] ~@23 [c4,eb4,g4]@2 ~@5",
  S: "~@17 [c4,f4,a4] ~@23 [db4,f4,ab4] ~@6", // F Db
  T: "[~@17 [eb4,gb4,a4]@2 ~@16 f4@3 ~@3 ab4@3 ~@3 [db4,ab4]@8 ~ db4@3 f4@3 ab4@3 f4@3 db4@3 ab3@5 ~@7 f4@3 ~@9 bb3@4 ~@2 [bb3,db4,f4,ab4]@11 ~ [bb3,db4,f4,ab4]@11 ~@13 [eb4,ab4,c5] ~@6, ~@32 db4@6 db5@19 ~@23 db4@6 ab4@14 ~@44, ~@44 f4@12 ~@21 bb3@12 f4@11 ~@44, ~@23 db4@2 ~@11]/3", // Ebdim Db5 Bbm7 Ab
  U: "~@17 [eb4,g4,bb4] ~@23 [c4,eb4,g4] ~@6", // Eb Cm
  V: "[~@17 [eb4,a4,c5] ~@20 db4@3 ~@6 f4@3 ~@21 f4@6 ~@6 f4@3 ~@9 bb3@4 ~@2 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4]@18 ~@12 [eb4,ab4,c5] ~@6, ~@35 f4@9 db4@6 ab4@17 ~ ab4@9 ~@9 ab4@13 ~@45, ~@41 ab3@12 f4@15 ~@21 f4@10 ~@45, ~@56 db4@15 ~@9 db4@9 ~@3 db4@7 ~@45, ~@59 ab3@15 ~@3 bb3@15 ~@52]/3", // Adim Bbm7 Ab
  W: "~@17 [f4,ab4,c5] ~@23 [db4,f4,ab4]@2 ~@5", X: "~@17 [eb4,g4,bb4]@2 ~@22 [c4,eb4,g4] ~@6",
  Y: "~@17 [eb4,a4,c5] ~@23 [db4,f4,ab4]@2 ~@5", Z: "~@17 [eb4,g4,bb4]@11 ~@13 [c4,eb4,g4] ~@6",
  AA: "~@17 [eb4,a4,c5] ~@23 [db4,f4,ab4] ~@6", AB: "~@17 [eb4,g4,bb4] ~@23 [c4,eb4,f4,g4]@2 ~@5",
  AC: "[~@17 [eb4,a4,c5] ~@29 db4@9 ~@15 ab3@4 ~@2 db4@2 ~@16 bb3@5 ~ [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4]@18 ~@12 [c4,eb4,ab4] ~@6, ~@35 ab3@12 ~@9 ab3@11 ~ db4@8 ~@4 bb3@12 db4@9 ~@43, ~@38 ab4@21 db4@5 ~ f4@12 ~@6 db4@6 f4@12 ~@43, ~@41 f4@19 ~@2 ab4@16 ~@8 ab4@14 ~@44]/3", // Adim Bbm7 Ab
  AD: "~@17 [db4,f4,ab4]@11 ~@13 [c4,eb4,g4] ~@6", // Db Cm
  AE: "[~@17 [eb4,a4,b4,c5] ~@17 [ab3,bb3]@2 ~@10 ab3@6 db4@3 ~@15 ab3@5 ~ db4@3 ~@15 bb3@5 ~ [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4]@12 ~@25, ~@38 ab4@20 ~ db4@5 ~ f4@15 ~@3 db4@5 ~ f4@11 ~@44, ~@41 f4@21 ab4@15 ~@9 ab4@14 ~@44, ~@44 db4@5 ~@7 ab3@11 ~ db4@7 ~@5 bb3@12 db4@9 ~@43]/3", // Adim Absus2 Bbm7
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// other · string ensemble 1
const string_ensemble_1 = note("<~@12 A@5 B@5 ~@5 C@4 D@5 E@5 ~ F G@7 H@5 I@2 J@7 K@2 J@7 L@4>".pickRestart({
  A: "[~@5 d4@12 d5@5 ~ [e5,e6]@6 [d5,d6]@26 ~@4 [a5,a6]@6 [gb5,gb6]@5 ~ [g5,g6]@6 [c5,c6]@24 [g5,g6]@6 [gb5,gb6]@6 [e5,e6]@6 [gb5,gb6]@6 [d5,d6]@29 ~ [a5,a6]@6 [gb5,gb6]@6 [g5,g6]@6 [e5,e6]@29 ~ [b5,b6]@3 [a5,a6]@3 [g5,g6]@6 [gb5,gb6]@3 [d5,d6]@3 [a5,a6]@19]/5", // E D A Gb G C G Gb …
  B: "[~@5 [ab5,ab6]@18 [b4,b5]@6 [c5,c6]@17 ~ [g5,g6]@6 [gb5,gb6]@17 ~ [e5,e6]@6 [d5,d6]@35 ~ [e5,e6]@6 [d5,d6]@6 [g4,g5]@29 ~ [a4,a5]@6 [b4,b5]@6 [d5,d6]@6 [g4,g5]@24 [d4,d5]@22 ~@21]/5", // Ab B C G Gb E D E …
  C: "[~@41 a3@6 g3@6 gb3@12 b3@5 ~ a3@6 g3@23 ~ b3@18 d4@5 ~ e4@24 d4@23 ~ c4@19]/4",
  D: "[~@5 d4@12 d5@5 ~ [e5,e6]@6 [d5,d6]@26 ~@4 [a5,a6]@6 [gb5,gb6]@6 [g5,g6]@6 [c5,c6]@23 ~ [g5,g6]@6 [gb5,gb6]@6 [e5,e6]@6 [gb5,gb6]@6 [d5,d6]@29 ~ [a5,a6]@6 [gb5,gb6]@5 ~ [g5,g6]@6 [e5,e6]@29 ~ [b5,b6]@3 [a5,a6]@3 [g5,g6]@6 [gb5,gb6]@3 [d5,d6]@3 [a5,a6]@19]/5", // E D A Gb G C G Gb …
  E: "[~@5 [ab5,ab6]@18 [b4,b5]@6 [c5,c6]@18 [g5,g6]@6 [gb5,gb6]@18 [e5,e6]@6 [d5,d6]@35 ~ [e5,e6]@6 [d5,d6]@6 [g4,g5]@29 ~ [a4,a5]@6 [b4,b5]@6 [d5,d6]@6 [g4,g5]@23 ~ [d4,d5]@22 ~@21]/5", // Ab B C G Gb E D E …
  F: "~@29 [c5,c6,c7]@17 ~ [bb4,bb5,bb6]", // C Bb
  G: "[~@2 [ab4,ab5,ab6]@3 [c5,c6,c7]@29 ~ [c4,c5,c6]@6 [db4,db5,db6]@6 [c5,c6,c7]@5 ~ [bb4,bb5,bb6]@18 [c4,c5,c6]@3 [db4,db5,db6]@3 [eb4,eb5,eb6]@5 ~ [db5,db6,db7]@6 [c5,c6]@25 ~@5 [c4,c5,c6]@6 [db4,db5,db6]@24 [bb4,bb5,bb6]@18 [g4,g5,g6]@6 [eb4,eb5,eb6]@48 [db4,db5,db6]@29 ~ [bb4,bb5,bb6]@6 [g4,g5,g6]@6 [f4,f5,f6]@6 [eb4,eb5,eb6]@59 ~@4 [ab3,ab4,ab5]@3 [bb3,bb4,bb5], ~@89 c7@29 ~@218]/7", // Ab C Db C Bb C Db Eb …
  H: "[~@2 [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab5,ab6]@20 ~ [ab3,ab4,ab5]@3 [bb3,bb4,bb5]@3 [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab5,ab6]@29 ~ [c5,c6,c7]@17 ~ [bb4,bb5,bb6]@3 [ab4,ab5,ab6]@3 ~ [c5,c6]@22 ~@7 c6@6 [db4,db5,db6]@6 [c5,c6,c7]@6 [bb4,bb5,bb6]@19 [c4,c5,c6]@2 [db4,db5,db6]@2 ~ [eb4,eb5,eb6]@6 [db5,db6,db7]@5 ~ [c5,c6,c7]@12 [eb4,eb5,eb6]@39 [ab3,ab4,ab5]@3 [bb3,bb4,bb5], ~@11 ab4 ~@35 ab4 ~@53 c7@23 ~@6 [c4,c5]@6 ~@104]/5", // F Eb Ab Bb F Eb Ab C …
  I: "[~@2 [f4,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab4,ab5,ab6]@20 ~ [ab3,ab4,ab5]@3 [bb3,bb4,bb5]@2 ~ [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab4,ab5,ab6]@24 ~@6 [c5,c6,c7]@17 ~ [bb4,bb5,bb6], ~ f5@3 ~@92]/2", // F Eb Ab Bb F Eb Ab C …
  J: "[~@2 [ab4,ab5,ab6]@3 [c5,c6,c7]@29 ~ [c4,c5,c6]@6 [db4,db5,db6]@6 [c5,c6,c7]@5 ~ [bb4,bb5,bb6]@18 [c4,c5,c6]@3 [db4,db5,db6]@3 [eb4,eb5,eb6]@5 ~ [db5,db6,db7]@6 [c5,c6]@25 ~@5 [c4,c5,c6]@6 [db4,db5,db6]@24 [bb4,bb5,bb6]@18 [g4,g5,g6]@6 [eb4,eb5,eb6]@47 ~ [db4,db5,db6]@29 ~ [bb4,bb5,bb6]@6 [g4,g5,g6]@6 [f4,f5,f6]@6 [eb4,eb5,eb6]@59 ~@4 [ab3,ab4,ab5]@3 [bb3,bb4,bb5], ~@89 c7@29 ~@218]/7", // Ab C Db C Bb C Db Eb …
  K: "[~@2 [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab5,ab6]@20 ~ [ab3,ab4,ab5]@3 [bb3,bb4,bb5]@3 [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab5,ab6]@29 ~ [c5,c6,c7]@17 ~ [bb4,bb5,bb6], ~@11 ab4 ~@35 ab4 ~@48]/2", // F Eb Ab Bb F Eb Ab C …
  L: "[~@2 [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab5,ab6]@20 ~ [ab3,ab4,ab5]@3 [bb3,bb4,bb5]@3 [f4,f5,f6]@3 [eb4,eb5,eb6]@3 [ab3,ab4,ab5]@3 [ab5,ab6]@29 ~ [c5,eb5,ab5,eb6]@66 ~@49, ~@11 ab4 ~@35 ab4 ~@29 ab6@72 ~@43]/4", // F Eb Ab Bb F Eb Ab
})).s("gm_string_ensemble_1").gain(0.35)

// drums · kick
const kick = s("bd").struct(`<
  ~@12 A B C@2 D E C B F G E G C H E G C@2 E I B C@2 D E C B F G E G B C@2 D E C B F G B C@2 D G C J C D E C@3 G C J C D
  E C@3 G ~@2
>`.pickRestart({
  A: "~@29 x ~@18", B: "~@5 x ~@23 x ~@18", C: "~@5 x ~@23 x ~@17 x", D: "~@5 x ~@11 x ~@5 x ~@5 x ~@17 x",
  E: "~@5 x ~@17 x ~@5 x ~@17 x", F: "~@23 x ~@5 x ~@17 x", G: "~@5 x ~@17 x ~@5 x ~@18",
  H: "~@5 x ~@11 x ~@11 x ~@17 x", I: "~@5 x ~@11 x ~@5 x ~@5 x ~@18", J: "~@5 x ~@11 x ~@5 x ~@2 x ~@2 x ~@17 x",
})).gain(0.59)

// drums · rim
const rim = s("rim").struct("<~@12 [~@41 x ~@6] [~@17 x ~@23 x ~@6]!18 [~@17 x ~@30] ~@45>").gain(0.66)

// drums · snare
const snare = s("sd").struct("<~@31 A B@10 A B@8 A B@3 C A B@7 C A B@7 C ~@3>".pickRestart({
  A: "~@41 x ~@6", B: "~@17 x ~@23 x ~@6", C: "~@17 x ~@30",
})).gain(0.66)

// drums · low tom
const low_tom = s("lt").struct("<~@31 A ~@10 B ~@8 A ~@4 C ~@8 D ~@8 D ~@2>".pickRestart({
  A: "~@23 x ~@24", B: "~@5 x ~@17 x ~@24", C: "~@20 x ~@2 x ~@2 x ~@21", D: "~@17 x ~@2 x ~@2 x ~@24",
})).gain(0.66)

// drums · hihat
const hihat = s("hh").struct("<A@12 B C@43 D A@7 B D A@7 B E ~@2>".pickRestart({
  A: "~@5 x ~@11 x ~@11 x ~@11 x ~@6", B: "~@5 x ~@11 x ~@11 x ~@5 x ~@5 x ~@5 x",
  C: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x", D: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@11 x ~@6",
  E: "~@5 x ~@5 x ~@5 x ~@5 x ~@24",
})).gain(0.66)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 A ~@9 B A ~@8 C ~@3 D E ~@8 F ~@8 F ~@2>".pickRestart({
  A: "~@5 x ~@6", B: "~@47 x", C: "~@8 x ~@2 x ~@8 x ~@27", D: "~@44 x ~@2 x", E: "~@14 x ~@2 x ~@30",
  F: "~@2 x!2 ~ x ~@2 x ~@2 x ~@36",
})).gain(0.66)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@12 A ~@7 B ~@2 B ~ B ~ B@2 ~@2 C ~ B ~ B ~ B@2 ~ B ~ C ~ B ~ B@3 ~@2 C ~ B ~ B ~@21
>`.pickRestart({
  A: "~@17 x ~@30", B: "~@23 x ~@24", C: "~@35 x ~@12",
})).gain(0.66)

// drums · high tom
const high_tom = s("ht").struct("<~@31 A ~@10 A ~@8 B ~@3 C D ~@7 E ~@8 E ~@3>".pickRestart({
  A: "~@14 x ~@2 x ~@30", B: "~@2 x ~@14 x ~@30", C: "~@19 x ~@4", D: "~@8 x ~@2 x ~@36", E: "~@38 x!2 ~ x ~@6",
})).gain(0.66)

// drums · crash
const crash = s("cr").struct("<~@31 A ~@3 A ~@4 A@3 ~@3 A ~@4 A ~@4 A ~ B ~ C ~ A@4 ~ B ~ C ~ A@4 ~@2>".pickRestart({
  A: "~@29 x ~@18", B: "~@23 x ~@2 x ~@2 x ~@18", C: "~@17 x ~@5 x ~@5 x ~@18",
})).gain(0.66)

// drums · ride
const ride = s("rd").struct("<~@12 A ~@10 A ~@14 A ~@17 B C@7 D B C@7 D ~@3>".pickRestart({
  A: "~@29 x ~@18", B: "~@29 x ~@5 x ~@5 x ~@5 x", C: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x",
  D: "~@5 x ~@5 x ~@5 x ~@5 x ~@24",
})).gain(0.66)

stack(
  bass, piano, acoustic_guitar_nylon, string_ensemble_1, kick, rim, snare, low_tom, hihat, mid_tom, open_hat, high_tom,
  crash, ride
)

More by Kenny Rogers