Strudelify
Night Moves cover art

1977 · Night Moves

Night Moves

Bob Seger

KeyA♭ majorTempo115 bpm
0:00/0:00
// Night Moves — Bob Seger
// 115 bpm, 4/4, key Ab major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (5/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 158 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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 · electric bass finger · "BASS"
const bass = note(`<
  ~@9 A B C D A B C E A B C E F B C E A B C G H I J I H K A B C E A B C E F B C E A B C E A B C E F B C G L M N M L O F
  B C E A B C P Q@2 R S T U V W X Y Z AA AB AC AD@2 AE@5 AF@6 AG@7 AH@3 ~@7 AI@3 AJ AK AL AM AN AO AP@4 AQ AR@8 AS AT AU
  AV AW AX AY AZ@3 BA BB@8
>`.pickRestart({
  A: "ab2@8 ~@4 ab2@4 ab2@9 ~@3 ab2@4", B: "ab2@9 ~@3 ab2@5 ~@3 gb2@5 ~@3 db2@4", C: "db2@2 ~ db2 db2@2 ~ db2",
  D: "db2@9 ~@3 db2@5 ~@3 gb2@5 ~@3 ab2@4", E: "db2@9 ~@3 db2@4 ~@4 gb2@4 ~@4 ab2@4", F: "ab2@2 ~ ab2 ab2@2 ~ ab2",
  G: "db2@11 ~ db2@4 db2@3 ~ db2@4 eb2@4 db2@4", H: "f2@5 ~ f2@2 f2@2 eb2@2 ~@2 db2@2",
  I: "db2@11 ~ db2@4 db2@4 db2@4 eb2@4 db2@4", J: "f2@9 ~@3 f2@4 f2@4 eb2@4 eb2@4 db2@4",
  K: "db2@11 ~ db2@4 db2@12 eb2@4", L: "f2@2 ~ f2!2 eb2 ~ db2", M: "db2@2 ~ db2!3 eb2 db2", N: "f2@2 ~ f2!2 eb2!2 db2",
  O: "db2@2 ~ db2 db2@3 eb2", P: "db2@9 ~@3 db2@4 db2@4 eb2@4 eb2@4 db2@4", Q: "[f2@13 eb2!2 f2]/2", R: "ab2", S: "ab1",
  T: "db2@9 ~@3 db2@4 db2@9 ~@3 db2@4", U: "db2@9 ~@3 db2@4 db2@8 ~@4 eb2@4", V: "ab1@9 ~@3 ab1@4 ab1@8 ~@4 ab1@4",
  W: "ab1@5 ~ ab1@2 ab1@2 ab1@2 bb1@2 c2@2", X: "db2@8 ~@4 db2@4 db2@9 ~@3 db2@4",
  Y: "db2@9 ~@3 db2@4 db2@4 eb2@4 e2@4 f2@4", Z: "gb2!4", AA: "gb2@2 gb2@2 gb2@2 db2 d2", AB: "eb2@2 eb3@2 eb2!2 eb3@2",
  AC: "eb2!2 eb3 eb2 eb3 eb2 eb3 eb2", AD: "ab1/2", AE: "[~@2 ab1@48 ~@7 ab1@58 ~@2 db2@43]/5",
  AF: "[~@15 ab1@77 ~@55 f1@45, ~@92 db2@77 ~@23]/6",
  AG: "[~@9 db2@38 ~@36 db2@38 ~@35 db2@19 ~@2 db2@47, ~@49 f1@38 ~@36 f1@38 ~@63]/7", AH: "[~@10 ab1@31 ~@7]/3",
  AI: "[~@11 ab2@8 ~@4 ab2@4 ab2@8 ~@4 ab2@4 ab2@9 ~@3 ab2@5 ~@2 gb2@5 ~@3 db2@4 db2@8 ~@4 db2@4 db2@6]/3",
  AJ: "~@5 db2@4 db2@8 ~@4 db2@4 ~@4 gb2@3", AK: "~ ab2 ab2@2 ~ ab2 ab2@2", AL: "~@4 ab2@4 ab2@9 ~@2 ab2@5 ~@3 gb2@5",
  AM: "~@3 db2@4 db2@8 ~@3 db2@4 db2@8 ~@2", AN: "~@2 db2@4 db2@8 ~@4 db2@4 ~@3 gb2@4 ~@3",
  AO: "~ ab2@4 ab2@8 ~@4 ab2@4 ab2@8 ~@3",
  AP: "[~ ab2@3 ab2@9 ~@3 ab2@5 ~@3 gb2@5 ~@2 db2@4 db2@8 ~@4 db2@4 db2@8 ~@4 db2@4 db2@8 ~@3 db2@4 ~@4 gb2@4 ~@4 ab2@4 ab2@8 ~@4 ab2@3 ab2@8 ~@4 ab2@3]/4",
  AQ: "~ ab2@9 ~@3 ab2@5 ~@2 gb2@5 ~@3 db2@4",
  AR: "[db2@8 ~@4 db2@4 db2@8 ~@3 db2@4 db2@8 ~@4 db2@4 ~@4 gb2@4 ~@4 ab2@4 ab2@8 ~@3 ab2@4 ab2@8 ~@4 ab2@4 ab2@9 ~@3 ab2@5 ~@2 gb2@5 ~@3 db2@4 db2@8 ~@4 db2@4 db2@8 ~@3 db2@4 db2@8 ~@4 db2@4 ~@4 gb2@4 ~@4 ab2@3 ab2@8 ~@4 ab2@4 ab2@8 ~@4 ab2@4 ab2@9 ~@2 ab2@5 ~@3 gb2@5 ~@3 db2@4 db2@6]/8",
  AS: "~@6 db2@3 db2@8 ~@4 db2@4 db2@7", AT: "~@5 db2@4 ~@3 gb2@4 ~@4 ab2@4 ab2@8",
  AU: "~@4 ab2@4 ab2@8 ~@4 ab2@3 ab2@9", AV: "~@3 ab2@5 ~@3 gb2@5 ~@2 db2@4 db2@8 ~@2",
  AW: "~ db2@2 db2@4 ~@2 db2@2 db2@4 ~", AX: "~ db2@4 ~@4 gb2@4 ~@4 ab2@4 ab2@8 ~@3",
  AY: "~ ab2@3 ab2@8 ~@4 ab2@4 ab2@9 ~@3",
  AZ: "[ab2@5 ~@2 gb2@5 ~@3 db2@4 db2@8 ~@4 db2@4 db2@8 ~@4 db2@3 db2@8 ~@4 db2@4 db2@8 db2@4 eb2@3 f2@8 ~@4 f2@3]/3",
  BA: "~ f2@9 ~@3 f2@4 f2@8 ~@3 f2@4",
  BB: "[f2@8 bb1@4 b1@4 c2@9 ~@2 c2@4 c2@10 ~@2 c2@4 c2@9 ~@3 c2@4 c2@9 ~@2 c2@4 bb1@9 ~@3 bb1@4 bb1@7 bb1@4 c2@4 db2@9 ~@3 db2@4 db2@8 f2@4 eb2@3 ab2@9 ~@3 ab2@4 ab2@9 ~@3 ab2@4 ab2@63 ~@21]/8",
})).s("gm_electric_bass_finger").gain(0.41)

// bass · electric bass finger · "BASS 2"
const bass_2 = note(`<
  ~@16 A B@2 C@2 D E F@2 G@2 H@2 ~@15 I J@2 K@2 L@2 M N O@2 P Q R@2 ~@27 S T@4 ~@26 U@2 V@2 W@4 X@2 Y@2 Z@2 AA@5 AB@5
  AC@5 ~@12
>`.pickRestart({
  A: "~@10 ab2 ~ c3@2 eb3 ~", B: "[f3@8 eb3@48 c3@3 ~ eb3@2 ~@2]/2", C: "[bb2@2 ab2@10 ~@2 c3 eb3]/2", D: "eb3@13 ~@3",
  E: "~@10 eb3 ~ f3@2 eb3 ~", F: "[bb2@4 ab2@19 ~@5 c3@2 eb3 ~]/2",
  G: "[f3@8 eb3@33 ~@7 c3@4 eb3@2 ~@2 c3@4 eb3 ~@3]/2", H: "[bb2@8 ab2@37 ~@19]/2", I: "~@16 f3@4 eb3 ~@3 b2@4 bb2@4",
  J: "[ab2@41 ~@11 ab2 ~@3 c3@4 eb3@2 ~@2]/2", K: "[f3@8 eb3@34 ~@6 bb3@4 ab3 ~@3 f3@4 eb3@4, ~@48 ab3 ~@7 eb3 ~@7]/2",
  L: "[db3@47 ~ db3@4 c3@4 bb2@8]/2", M: "ab2@9 ~@7", N: "~@16 c3@4 eb3@2 ~@2 f3@4 eb3 ~@3",
  O: "[bb2@8 ab2@37 ~@2 ab3 bb3@4 ab3 ~@2 bb2@9]/2", P: "ab2", Q: "~@4 c3@2 eb3 ~ eb3@2 ~@2 f3@2 ~@2", R: "[db3@3 ~]/2",
  S: "~@31 bb3", T: "[c4@123 ~@5]/4", U: "[~@11 f3@8 ~ eb3@37 ~@7]/2", V: "[~@2 c3@4 eb3@2 ~@2 bb2@7 ab2@43 ~@4]/2",
  W: "[~ c3@4 eb3@2 ~ eb3@44 ~@3 f3@4 eb3 ~@3 bb2@8 ab2@40 ~@14 c3@3]/4",
  X: "[~ eb3@2 ~@2 eb3@33 ~@14 f3@4 eb3 ~@3 eb3@4]/2", Y: "[f3@3 db3@48 db3@3 c3@4 bb2@6]/2",
  Z: "[~@2 ab2@38 ~@9 c3@4 eb3@3 eb3@4 f3@4]/2",
  AA: "[ab3@47 ~@8 c4@2 ab3@2 f3@4 ab3@7 c4@39 c4@3 ~ bb3@2 ~@2 bb3@4 f3@3 ~ ab3@31 ~@4]/5",
  AB: "[~@20 c4@3 f3@4 ab3@45 ~@2 f4@4 eb4 ~@3 bb3@7 ab3@46 ~@9 bb3@3 ~ f3@3 ~ ab3@4 ~@4]/5",
  AC: "[c4@38 ~@5 bb3 ~@2 bb3@4 f3@4 ab3@8 f3@38 ~ f4@3 ~ eb4 ~@3 c4@4 bb3@4 ab3@43, ~@38 c4@9 ~@113]/5",
})).s("gm_electric_bass_finger").gain(0.48).pan(0.7)

// chords · acoustic guitar steel · "GUITAR-ACOU"
const acoustic_guitar_steel = note(`<
  A@2 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B D@3 E@4 F ~@3 A@2 B C@3 B C@3 B C@3 B C@3 B D@3 E@4 G@2 B C@3 B H@7 I@6 J@2
  K@5 ~ L@2 M@4 N@2 O@7 P@3 ~ Q@3 ~ R@2 S T@4 U@4 V@3 W X Y@3 Z@4 AA@4 AB@4 AC@6 AD@6
>`.pickRestart({
  A: "[~@2 [ab3,c4,eb4,ab4] ~, ~@31 [ab2,eb3]@17 ~@16]/2", B: "~@5 [db3,gb3,bb3,db4,gb4]@3, ~@19 gb2@9 ~@4",
  C: "[[db3,f3,ab3,db4]@52 [gb2,db3,gb3,bb3,db4,gb4]@11 ~ [ab3,c4,eb4,ab4]@16 ~@16, ~@63 [ab2,eb3]@17 ~@16]/3", // Db Gb Ab Ab5
  D: "[[db3,f3,ab3,db4]@35 ~@29 [c4,f4]@20 [eb3,g3,bb3,eb4]@12, ~@21 [f3,ab3]@7 ~@4]/3", // Db F5 Eb Fm
  E: "[[f3,db4]@20 [eb3,g3,bb3,eb4]@7 ~@5 [c4,f4]@20 [eb3,g3,bb3,eb4]@12, ~@31 [f3,ab3]@21 ~@12]/2", // Db Eb F5 Eb Fm
  F: "[f3,db4]@13 ~@3 c4@16, ~@7 db3@9, ~@15 [f3,ab3]@17", // Db Fm
  G: "[[f3,db4]@13 ~@3 c4@15 ~ [ab3,c4,eb4,ab4]@16 ~@16, ~@14 db3@17 [ab2,eb3]@17 ~@16, ~@15 [f3,ab3]@18 ~@31]/2", // Db Ab Ab5 Fm
  H: "[[db3,f3,ab3,db4]@52 ~@4 [eb3,g3,bb3,eb4]@6 ~@2 [c4,f4]@49 ~@15 ab4@31 ~@2 gb4@30 ~ ab3@31 f3, ~@62 [f2,c3]@51 ~@13 ab2@33 [ab2,eb3]@33 db4@4 ~@28, ~@63 [f3,ab3]@50 ~@14 [eb3,ab3]@33 [ab3,c4]@31 [db3,f3]@32 ~]/7", // Db Eb F5 Ab5 Fm Ab5 Ab Db
  I: "[[ab3,c4]@31 ~ [ab3,c4]@30 ~@2 eb4@31 ~ c4@31 ~ c4@31 ~ [bb3,db4,gb4]@16 [db3,bb3,db4,gb4]@16, ~@31 [ab2,eb3]@31 ab2@34 ~@63 [gb2,db3,gb3]@17 ~@16, ~@63 ab3@32 [f3,ab3]@32 f3@33 ~@32]/6", // Ab Gb Ab5 Gb5 Fm
  J: "[gb4 ~@3 [gb3,gb4]@8 ~@20 [eb3,bb3,eb4]@15 ~ [eb3,eb4]@16, db3@31 g3@16 [g3,bb3]@16 ~, ~@12 [gb3,bb3,db4,gb4]@21 ~@31, ~@15 eb2@8 ~@9]/2", // Gb Eb5 Eb Gm Gb
  K: "[[eb3,g3,bb3,eb4]@8 [eb3,g3,bb3,eb4]@8 [eb2,eb3,g3,bb3,eb4]@8 ~@8 [eb4,ab4]@68 ~@20 f3@13 ~ eb3@7 bb2@4 ~@15, ~@24 [eb2,bb2,eb3,g3,bb3,eb4]@7 eb3@35 ~@54 eb3 ~@39, ~@15 ab2@8 ~@57]/5", // Eb Ab5 Eb
  L: "[~@11 ab3@21, ~@21 f3@43]/2", M: "[~@9 c4@32 ~@5 ab3@18, ~@8 eb3@32 ~@5 db3@19, ~@17 ab3@64 ~@10 f3@37]/4",
  N: "[~ f3@3, ~@15 c3@49]/2",
  O: "[~@7 db3@39 ~ f3@35 ~ f3@35 ~@2 f3@34 ~ f3@22 ~@2 c4@42 ~@3, ~@46 [f2,c3]@36 db3@36 ~ c3@35 db3@23 [db3,f3]@44 ~@3, ~@178 ab3@43 ~@3]/7", // F5 Db
  P: "[~@20 ab4@57 ~@5 [ab3,c4,eb4,ab4]@14, ~@16 ab2@63 ~@2 [ab2,eb3]@15, ~@17 eb3@61 ~@18, ~@3 ab3@10 ~@3, ~@19 c4@59 ~@18]/3", // Ab Ab5
  Q: "[~@5 [db3,gb3,bb3,db4,gb4]@11 ~ [f3,ab3,db4]@50 ~ [db4,gb4]@10 ~ [ab3,c4,eb4,ab4]@16 ~, ~@4 gb2@9 ~@3 db3@51 [gb2,db3,gb3,bb3]@11 [ab2,eb3]@17 ~]/3", // Gb Db Gb5 Ab Gb Ab5
  R: "[~@2 [bb3,db4,gb4]@11 ~ db4@50, ~ [db3,gb3]@12 [db3,f3,ab3]@51, ~ gb2@9 ~@54]/2", // Gb Gb5 Db
  S: "[gb2,db3,gb3,bb3,db4,gb4]@11 ~ [eb4,ab4]@15 ~@5, ~@11 [ab2,eb3,ab3,c4]@16 ~@5", // Gb Ab5 Ab
  T: "[~@30 [db3,gb3,bb3,db4,gb4]@12 [db3,f3,ab3,db4]@51 [gb2,db3,gb3,bb3,db4,gb4]@11 ~ ab4@15 ~@8, ~@30 gb2@9 ~@65 [ab2,eb3,ab3,c4,eb4]@17 ~@7]/4", // Gb Db Gb Ab
  U: "[~@27 [db3,gb3,bb3,db4,gb4]@11 ~ [f3,ab3,db4]@50 ~ [gb3,bb3,db4,gb4]@10 ~ [ab3,c4,eb4,ab4]@16 ~@11, ~@26 gb2@9 ~@3 db3@51 [gb2,db3]@11 [ab2,eb3]@17 ~@11]/4", // Gb Db Gb Ab Gb5 Ab5
  V: "[~@24 [db3,gb3,bb3,db4,gb4]@11 ~ [f3,ab3,db4]@50 ~ [db4,gb4]@9, ~@23 gb2@9 ~@3 db3@51 [gb2,db3,gb3,bb3]@10]/3", // Gb Db Gb5 Gb
  W: "~ [ab3,c4,eb4,ab4]@8 ~@7, ~ [ab2,eb3]@17 ~@14", X: "~@21 [bb3,db4,gb4]@11, ~@5 [db3,gb3]@3, ~@20 gb2@9 ~@3",
  Y: "[~ db4@50 [gb2,db3,gb3,bb3,db4,gb4]@11 ~ [eb4,ab4]@15 ~@18, [db3,f3,ab3]@51 ~@11 [ab2,eb3,ab3,c4]@16 ~@18]/3", // Gb Ab5 Db Ab
  Z: "[~@17 [db3,gb3,bb3,db4,gb4]@12 [db3,f3,ab3,db4]@50 ~ [db3,gb3,bb3,db4,gb4]@11 ~ ab4@15 ~@21, ~@17 gb2@9 ~@53 gb2@12 [ab2,eb3,ab3,c4,eb4]@17 ~@20]/4", // Gb Db Gb Ab
  AA: "[~@14 [db3,gb3,bb3,db4,gb4]@11 ~ [f3,ab3,db4]@50 ~ [gb3,bb3,db4,gb4]@10 ~ [ab3,c4,eb4,ab4]@16 ~@24, ~@13 gb2@9 ~@3 db3@51 [gb2,db3]@11 [ab2,eb3]@17 ~@24]/4", // Gb Db Gb Ab Gb5 Ab5
  AB: "[~@11 [db3,gb3,bb3,db4,gb4]@11 ~ [ab3,db4]@50 ~ gb4@10 ~ [ab3,c4,eb4,ab4]@16 ~@27, ~@10 gb2@9 ~@3 [db3,f3]@51 [gb2,db3,gb3,bb3,db4]@11 [ab2,eb3]@17 ~@27]/4", // Gb Db5 Ab Db Gb Ab5
  AC: "[~@8 [bb3,db4,gb4]@11 [f3,ab3]@61 ~ [ab3,c4]@31 ~ f4@30 ~ eb4@28 ~ [c4,eb4]@19, ~@7 [db3,gb3]@12 [db3,db4]@64 ~@29 [c3,f3,ab3]@31 [c3,c4]@30 ~@19, ~@7 gb2@9 ~@64 [f2,c3,f3]@31 ~@61 c3@20]/6", // Gb Fm Ab Cm Gb5 Db Fm C …
  AD: "[~@14 [f3,bb3,db4]@28 ~@3 [f3,ab3,db4]@30 ~@2 eb4@27 ~@3 ab4@63 ~@22, ~@13 bb2@29 ~@2 db3@31 ab2@29 ab2@66 ~@22, ~@76 [eb3,ab3,c4]@28 ~ [eb3,ab3]@65 ~@22, ~@106 c4@65 ~@21]/6", // Bbm Db Ab Ab5
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.6)

// chords · acoustic guitar steel · "GUITAR-ACOU" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@29 A@4 B@2 ~@24 A@4 B@2 ~@9 C@2 D E@2 F@4 G@6 H@5 I@6 J@7 K@3 ~@38 L@5 ~@2 M@3
>`.pickRestart({
  A: "[~@8 ab3@5 ~@3, ~@31 db3@21 ~@12]/2", B: "[~@32 ab3@13 ~@19, ~@31 db3@14 ~@19]/2", C: "[~ eb4, ~@31 c4@33]/2",
  D: "eb4", E: "[c4@31 db3@33]/2", F: "[~@32 c4@30 ~@2 db4@5 ~@26 ab3@33, ~@30 eb3@32 db3@32 db3@33 ~]/4",
  G: "[~@16 [gb2,gb3]@15 ~@6 bb3@7 ~@19 bb2@15 ~ bb2@15 ~ bb2@9 [eb2,bb2]@8 bb2@8 ~@22 ab2@20 ~ f3@12 ~@7 bb2@3 c3@2 eb3@5, ~@31 gb2@34 ~@13 eb2@16 eb2@10 ~@24 c4@64, ~@36 db4@8 ~@83 ab3@65, ~@162 eb3@13 eb3@12 ~@5]/6", // Gb Eb5
  H: "[~@3 ab2@45 c3@3 eb3@6 ab2@57 ~@6 c4@40, ~@29 db3@11]/5",
  I: "[~@19 ab4@64 ~@10 c4@50 ~@4 c4@45, ~@15 ab2@64 ~@64 f2@49, ~@9 eb4@32 ~@32 ab3@23]/6",
  J: "[~@9 [ab3,db4]@37 ~@4 c4@32 ~@3 db4@33 ~@5 c4@31 ~@3 db4@64 ~@3, ~@4 f3@19 ~ ab3@17 ~ ab3@17 f2@18 ~@35, ~@61 ab3@16 ~ ab3@11 ~@23]/7", // Db5
  K: "[~@19 eb4@55 ~@22]/3", L: "[~@17 f4@30 ~@2 c4@30 g3@30 g3@32 ~@19, ~@47 f2@32 ~@81]/5", M: "[~@10 eb4@65 ~@21]/3",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.6)

// chords · acoustic guitar steel · "GUITAR-ACOU."
const acoustic_guitar_steel_3 = note(`<
  ~ A B C D A B C D A B C D A B C D A B C D A B C D A B C E F G H I J K L M@2 N A B C D A B C D A B C D A B C D A B C E
  F G H I J K L M@2 O@2 M@2 P ~@36 Q R S@2 T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK C AL AM AN W AO AP AQ AR AS AT
  AU AV AW AX AY AZ BA BB BC BD BE BF BG BH ~@2
>`.pickRestart({
  A: "~@8 [eb3,ab3,c4,eb4] ~@15 [eb3,ab3,c4,eb4] ~@7", B: "~@8 [eb3,ab3,c4,eb4] ~@11 [db3,gb3,bb3,db4] ~@11",
  C: "~@8 [db3,ab3,db4,f4] ~@15 [db3,ab3,db4,f4] ~@7", D: "~@8 [db3,ab3,db4,f4] ~@11 [gb3,bb3,db4] db3 ~@10",
  E: "~@8 [db3,ab3,db4,f4] ~@23", F: "~@8 [ab3,c4,f4] ~@11 [g3,bb3,eb4]@2 ~@10",
  G: "~@8 [f3,ab3,bb3,db4] ~@11 [g3,bb3,db4,eb4] ~@11", H: "~@8 [ab3,c4,f4] ~@11 [g3,bb3,db4,eb4] ~@11",
  I: "~@9 [f3,ab3,db4] ~@10 [g3,bb3,db4,eb4] ~@11", J: "~@8 [ab3,c4,f4] ~@12 db4 ~@10, ~@10 [g3,bb3,eb4] ~@5",
  K: "~@8 [f3,ab3,db4] ~@23", // Db
  L: "[ab3,c4,eb4]@8 [eb3,ab3,c4]@4 ~@4 [eb3,c4,eb4]@8 [eb3,ab3,c4,eb4] ~@7, ab4@3 ~, ~ eb4 ~@2", // Ab Cm Ab
  M: "[[eb3,ab3,c4]@8 [eb3,ab3,c4,eb4] ~@3 eb3@4 eb3@3 ~ [db3,db4]@8 ~@4 [db3,ab3,db4]@8 [db3,ab3,db4]@4 db3@4 [db3,ab3]@8 [db3,ab3,db4]@4 db3@4, eb4 ~@18 gb2@9 ~@4 f3@12 ~@4 f3@12 ~@4, ~@20 [gb3,bb3,gb4]@20 f4 ~@15 f4 ~@7]/2", // Ab Db Db5 Gb
  N: "[db3,f3,ab3]@8 [db3,ab3,db4,f4] ~@3 [db3,f3,ab3]@4 [db3,f3,ab3,db4]@4 db3 db3@11, ~@5 [gb2,gb3,bb3,db4]@3", // Db Gb
  O: "[[db3,f3,ab3]@8 [db3,ab3,db4,f4] ~@3 [db3,f3,ab3]@4 [db3,f3,ab3,db4]@4 db3 ~@11 [ab3,c4,eb4]@8 [eb3,ab3,c4]@4 ~@4 [eb3,c4,eb4]@8 [eb3,ab3,c4,eb4] ~@7, ~@5 [gb2,gb3,bb3]@5 ~@6, ~@20 db4@11 ~ ab4@24 ~@8, ~@21 db3@19 eb4@8 ~@16]/2", // Db Ab Cm Ab Gb
  P: "[db3,f3,ab3]@8 [db3,ab3,db4,f4] ~@3 [db3,f3,ab3]@4 [db3,f3,ab3,db4]@3 ~@13", Q: "~@26 [eb3,ab3,c4,eb4] ~@5",
  R: "~@9 [ab3,eb4] [eb3,c4] ~@14 [eb3,ab3,c4,eb4] ~@6", // Ab5 Cm Ab
  S: "[~@5 [db3,gb3,bb3,db4] ~@18 db3 [ab3,db4,f4] ~@14 [db3,ab3,db4,f4] ~@15 [db3,ab3,db4,f4] ~@7, ~ ab4@12 ~@11 ab5@33 ~@7]/2", // Gb Db
  T: "~@4 [db3,gb3,bb3,db4] ~@18 [eb3,ab3,c4,eb4] ~@8", U: "~@6 [eb3,ab3,c4,eb4] ~@15 [eb3,ab3,c4,eb4] ~@9",
  V: "~@2 [db3,gb3,bb3,db4] ~@18 [db3,ab3,db4,f4] ~@10", W: "~@5 [db3,ab3,db4,f4] ~@14 [db3,ab3,db4,f4] ~@11",
  X: "[db3,gb3,bb3,db4] ~@19 [eb3,ab3,c4,eb4] ~@11", // Gb Ab
  Y: "~@3 [eb3,ab3,c4,eb4] ~@15 [eb3,ab3,c4,eb4] ~@11 [db3,gb3,bb3,db4]", Z: "~@18 [db3,ab3,db4,f4] ~@13",
  AA: "~ [db3,ab3,db4,f4] ~@15 [db3,ab3,db4,f4] ~@11 [db3,gb3,bb3,db4] ~@2", AB: "~@16 [eb3,ab3,c4,eb4] ~@15",
  AC: "[eb3,ab3,c4,eb4] ~@14 [eb3,ab3,eb4] c4 ~@10 [db3,gb3,bb3] db4 ~@3", // Ab Ab5 Gb
  AD: "~@15 [db3,ab3,db4,f4] ~@14 [db3,ab3,db4,f4] ~", AE: "~@14 [db3,ab3,db4,f4] ~@11 [db3,gb3,bb3,db4] ~@5",
  AF: "~@13 [eb3,ab3,c4,eb4] ~@14 [ab3,c4,eb4] eb3 ~@2", AG: "~@12 [eb3,ab3,c4,eb4] ~@11 [db3,gb3,bb3,db4] ~@7",
  AH: "~@11 db3 [ab3,db4,f4] ~@14 [db3,ab3,db4,f4] ~@4", AI: "~@11 [db3,ab3,db4,f4] ~@11 [db3,gb3,bb3,db4] ~@8",
  AJ: "~@10 [eb3,ab3,c4,eb4] ~@14 [eb3,ab3,c4,eb4] ~@6", AK: "~@9 [eb3,ab3,c4,eb4] ~@11 [db3,gb3,bb3,db4] ~@10",
  AL: "~@7 [db3,ab3,db4,f4] ~@11 [db3,gb3,bb3,db4] ~@12", AM: "~@7 [eb3,ab3,c4,eb4] ~@14 [eb3,ab3,c4,eb4] ~@9",
  AN: "~@6 [eb3,ab3,c4,eb4] ~@11 [db3,gb3,bb3,db4] ~@13", AO: "~@4 [db3,ab3,db4,f4] ~@11 [db3,gb3,bb3,db4] ~@15",
  AP: "~@3 [eb3,ab3,c4,eb4] ~@15 [eb3,ab3,c4,eb4] ~@12", AQ: "~@2 [eb3,ab3,c4,eb4] ~@11 [db3,gb3,bb3,db4] ~@17",
  AR: "~@2 [db3,ab3,db4,f4] ~@14 [db3,ab3,db4,f4] ~@14", AS: "~ [db3,ab3,db4,f4] ~@11 [db3,gb3,bb3,db4] ~@18",
  AT: "[eb3,ab3,c4,eb4] ~@14 [ab3,c4,eb4] eb3 ~@14 [eb3,ab3,c4,eb4]", // Ab
  AU: "~@11 [db3,gb3,bb3,db4] ~@18 db3 [ab3,db4,f4]", AV: "~@14 [db3,ab3,db4,f4] ~@15 [db3,ab3,db4,f4] ~",
  AW: "~@10 [db3,gb3,bb3,db4] ~@18 [eb3,ab3,c4,eb4] ~@2", AX: "~@12 [eb3,ab3,c4,eb4] ~@15 [eb3,ab3,c4,eb4] ~@3",
  AY: "~@8 [db3,gb3,bb3,db4] ~@18 [db3,ab3,db4,f4] ~@4", AZ: "~@11 [db3,ab3,db4,f4] ~@14 [db3,ab3,db4,f4] ~@5",
  BA: "~@25 ab3 [f3,c4] ~@5", BB: "~@9 [f3,ab3,b3,c4] ~@15 [f3,ab3,c4] ~@6", BC: "~@8 [ab3,c4] f3 ~@14 [g3,c4,eb4] ~@7",
  BD: "~@7 [g3,eb4] c4 ~@14 [g3,c4,eb4] ~@8", BE: "~@7 [g3,c4,eb4] ~@14 [f3,bb3,db4] ~@9",
  BF: "~@6 [f3,bb3,db4] ~@15 [f3,ab3,db4] ~@9", BG: "~@5 [f3,ab3,db4] ~@15 [ab3,c4,eb4] ~@10",
  BH: "~@4 [ab3,c4,eb4] ~@27", // Ab
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.6)

// chords · acoustic guitar steel · "GUITAR-ACOU." · soft notes
const acoustic_guitar_steel_4 = note("<~@34 A@2 B C D ~@25 A@2 B C E@2 B C F ~@38 G ~@46>".pickRestart({
  A: "[~@31 eb3@9 ~@4 [eb3,ab3,c4]@4 ab3@8 ~@4 [eb3,ab3,c4]@4, ~@31 ab2@25 ~@8]/2", // Ab
  B: "~ eb4@7 ~@4 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~@9 [db3,f3,ab3,db4]@4", C: "~@3 [f3,ab3,db4] db4@2 ~ [f3,ab3,db4]",
  D: "db4@8 ~@4 db4@4 ~@4 gb4@11 ~",
  E: "[db4@8 ~@4 db4@4 ~@15 eb3@9 ~@4 [eb3,ab3,c4]@4 ab3@8 ~@4 [eb3,ab3,c4]@4, ~@20 gb4@19 ~@25, ~@31 ab2@25 ~@8]/2", // Ab
  F: "db4@2 ~ db4 ~@4", G: "~@3 eb5@3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.6)

// chords · acoustic guitar steel · "GUITAR-ACOU.2"
const acoustic_guitar_steel_5 = note(`<
  ~ A B C D@2 E F G H I J K@2 E F G H I J K@2 E F G H I J L M N O P Q R ~@4 H I J K@2 E F G H I J K@2 E F G H I J L M N
  O P Q R ~@7 S@3 T U V W X Y Z AA@3 AB@3 ~@21 AC@2 AD AE@5 AF@3 AG AH AI AJ AK AL AM@3 AN AO AP@7 AQ AR AS AT AU AV AW
  AX AY@4 AZ@8
>`.pickRestart({
  A: "c4 ~@3 [eb3,ab3,c4,eb4] ~@3", B: "[eb3,ab3,c4,eb4] ~@3 [eb3,ab3,c4,eb4] [db3,gb3,bb3,db4]@3",
  C: "[db3,f3,ab3,db4] f3 ~@2 [db3,f3,ab3,db4] [f3,ab3] ~ [db3,db4]", // Db Fm Db
  D: "[[db3,f3,ab3,db4] [db3,f3] ~@2 [db3,f3,db4] ~@3 [ab3,eb4]@2 ~ c4 [eb3,ab3,c4,eb4]@2 ~ eb3, ~@20 [db3,gb3,bb3,db4]@19 ~@25, ~@7 [eb3,c4]@3 ~@6]/2", // Db Ab5 Ab Gb Cm
  E: "[eb3,ab3,c4,eb4]@9 ~@3 [eb3,c4]@4 [eb3,ab3,eb4]@4 [db3,gb3,bb3,db4]@4 ~@4 db3@4", // Ab Cm Ab5 Gb
  F: "[db3,f3,db4]@8 ~@4 [db3,f3,ab3]@4 [db3,f3,ab3,db4]@9 ~@3 [db3,f3,ab3]@4", // Db
  G: "[db3,f3,ab3,db4]@2 ~ [db3,f3,ab3,db4]!2 [db3,gb3,bb3,db4] ~@2", // Db Gb
  H: "[eb3,ab3,c4,eb4]@2 ~ c4 [eb3,ab3,c4,eb4]@2 ~ [ab3,c4,eb4]", // Ab
  I: "[eb3,ab3,c4,eb4]@2 ~ [eb3,ab3,eb4] [eb3,ab3,c4,eb4] ~@3", J: "[db3,f3,db4]@2 ~ db3 [db3,f3,ab3,db4]@2 ~ [f3,ab3]",
  K: "[[db3,f3,ab3,db4]@8 ~@4 [db3,f3,ab3,db4]@4 [db3,f3,ab3,db4]@4 ~@12 [ab3,eb4]@9 ~@3 c4@4 [eb3,ab3,c4,eb4]@8 ~@4 eb3@4, ~@7 [eb3,c4]@3 ~@6]/2", // Db Ab5 Ab Cm
  L: "[db3,f3,ab3,db4]@2 ~ [db3,f3,ab3,db4] [db3,f3,ab3,db4]@4", // Db
  M: "[f3,ab3,c4,f4]@20 [eb3,g3,bb3,eb4]@5 ~@3 [db3,f3,ab3,db4]@4", N: "[db3,f3,ab3,db4]@5 [g3,bb3,eb4]@2 ~, ~@5 eb3@3",
  O: "[f3,ab3,c4,f4]@4 ~ [eb3,g3,eb4]@2 [db3,f3,ab3,db4], ~@20 bb3@5 ~@7", // Fm Eb Db
  P: "[db3,f3,ab3,db4]@5 [eb3,eb4]@3, ~@20 [g3,bb3]@9 ~@3", Q: "[f3,ab3,c4,f4]@5 [eb3,g3,bb3,eb4]@2 [db3,f3,ab3,db4]",
  R: "[db3,f3,ab3,db4]@15 ~ [f3,ab3,c4]@16, ~@15 db3@17", // Db Fm
  S: "[~@8 f4@11 [f3,ab3,c4,f4] [f3,ab3,c4] [eb3,g3] [g3,bb3,eb4] [ab3,c4,eb4], ~@15 f3@23 ~@10, ~@31 [ab3,c4]@45 ~@20]/3", // Fm Eb Ab
  T: "[ab3,c4,ab4]", U: "[ab3,c4,eb4,gb4]",
  V: "~ db3@11 [db3,f3,ab3,c4]@4 [db3,f3,ab3,c4]@12 [db3,f3,ab3,c4]@4, [f3,ab3,c4]@11 ~@21", // Dbmaj7 Fm
  W: "[db3,f3,ab3,c4]@3 [db3,f3,ab3,c4] [db3,f3,ab3,c4]@4", // Dbmaj7
  X: "[ab2,eb3,ab3,c4]@12 [ab2,ab3,c4]@4 ~ ab2@11 [ab2,eb3,ab3]@4, ~ c4, ~@4 [eb3,ab3]@3 ~", // Ab Ab5
  Y: "[ab2,eb3,ab3,c4]@3 [ab2,eb3,ab3,c4] [ab2,eb3,ab3,c4]@4", // Ab
  Z: "[db3,f3,ab3,c4]@3 [db3,f3,ab3,c4] [db3,f3,ab3,c4]@3 [db3,f3,ab3,c4]", // Dbmaj7
  AA: "[[db3,f3,ab3,c4]@12 [db3,f3,ab3,c4]@4 [db3,f3,ab3,c4]@9 ~@7 [gb2,db3,bb3,gb4]@7 ~ [gb2,db3,bb3,gb4]@8 [db3,gb3,bb3,gb4]@8 [db3,gb3,gb4]@8 [db3,gb3,gb4]@4 [db3,gb3,db4,gb4]@8 [db3,gb3,gb4]@8 [db3,gb3]@4 [gb2,db3,db4,gb4]@8, ~@31 [gb3,db4]@8 db4@16 ~ [bb3,db4]@12 bb3@28, ~@39 gb3@8 ~@29 db4@12 gb3@4 ~@4]/3", // Dbmaj7 Gb Gb5 Bbm
  AB: "[[eb2,eb3,g3,bb3,eb4]@8 [eb2,eb3,g3,bb3,eb4]@8 [eb2,eb3,g3,bb3,eb4]@8 g3@4 g3@4 [eb3,g3]@4 [eb2,eb3,g3,bb3,eb4]@8 [eb2,eb3,g3,bb3,eb4]@8 [eb3,g3,bb3,eb4]@7 ~@5 ab4@29 ~@3, ~@12 eb2@6 ~@8 eb2@5 ab2@16 ~, ~@24 [eb3,bb3,eb4]@8 ~@27 [eb3,g3,bb3,eb4]@4 [eb3,ab3,c4]@30 ~@3]/3", // Eb Eb5 Eb Ab
  AC: "[~@10 bb2@2 c3@2 ~@5 ab2@8 ~@3 c4@4 [eb3,ab3,c4,eb4]@8 ~@3 eb3@4 [eb3,ab3,c4]@8 ~@4 [eb3,c4]@3, ~@14 eb3@11 ~@39, ~@18 [ab3,eb4]@8 ~@23 eb4 ~@14]/2", // Ab Cm Ab5
  AD: "~ [eb3,ab3,eb4]@4 [db3,gb3,bb3,db4]@4 ~@3 db3@4 [db3,f3,db4]@8 ~@4 [db3,f3,ab3]@4", // Ab5 Gb Db
  AE: "[[db3,f3,ab3,db4]@8 ~@4 [db3,f3,ab3]@4 [db3,f3,ab3,db4]@8 ~@3 [db3,f3,ab3,db4]@4 [db3,f3,ab3,db4]@4 [db3,gb3,bb3,db4]@4 ~@8 [eb3,ab3,c4,eb4]@8 ~@4 c4@3 [eb3,ab3,c4,eb4]@8 ~@4 [ab3,c4,eb4]@4 [eb3,ab3,c4,eb4]@8 ~@4 [eb3,ab3,eb4]@4 [eb3,ab3,c4,eb4]@4 ~@11 [db3,f3,db4]@8 ~@4 db3@4 [db3,f3,ab3,db4]@8 ~@4 [f3,ab3]@3 [db3,f3,ab3,db4]@8 ~@4 [db3,f3,ab3,db4]@4 [db3,f3,ab3,db4]@4]/5", // Db Gb Ab Ab5 Ab Db Fm Db
  AF: "[~@11 [ab3,eb4]@8 ~@4 c4@4 [eb3,ab3,c4,eb4]@8 ~@4 eb3@4 [eb3,ab3,c4,eb4]@8 ~@4 c4@3 [eb3,ab3,eb4]@4 [db3,gb3,bb3,db4]@4 ~@4 db3@4 [db3,f3,db4]@8 ~@4 [db3,f3,ab3]@3 [db3,f3,ab3,db4]@7, ~@4 [eb3,c4]@6 ~@17 eb3@2 ~@19]/3", // Ab5 Ab Ab5 Gb Db Cm
  AG: "~@5 [db3,f3,ab3]@4 [db3,f3,ab3,db4]@8 ~@4 [db3,f3,ab3,db4]@4 [db3,f3,ab3,db4]@4 [db3,gb3,bb3,db4]@3", // Db Gb
// … 424 more lines

More by Bob Seger