Strudelify

Slave to the Rhythm

Jones Grace

KeyA♭ majorTempo98 bpm
0:00/0:00
// Slave to the Rhythm — Jones Grace
// 98 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 102 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(98/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 · epiano2 · "E.PIANO 2"
const epiano2 = note("<~@40 A B C D E@3 F@5 ~@50>".pickRestart({
  A: "[db4,eb4,ab4]@5 [db4,eb4,ab4], eb3", B: "[db4,eb4,ab4]@3 [db4,eb4,ab4], eb3", C: "[ab3,eb4,gb4,ab4,db5]@23 ~",
  D: "~@2 [gb4,ab4]@10 [ab4,db5]@5 [ab3,eb4,f4,ab4,db5]@7, ~ db5 ~@4 gb4@6", // Gbsus2 Db5 Db
  E: "[[eb3,db4]@24 eb3@12 [db4,eb4,ab4]@2 ~@4 [gb4,ab4,db5]@18 [gb4,ab4,db5]@4 ~ [gb4,ab4,db5] ~@6, [eb4,ab4]@12 ~@2 ab3@7 ~@3]/3", // Eb7 Dbsus2 Gbsus2 Ab5
  F: "[~@6 ab3 ~ [gb4,ab4,db5] ~@6 ab3@3 [eb3,db4]@18 ~@36 [gb4,ab4,db5]@17 ~ gb4@5 gb4@4 [gb4,bb4]@5 ~@7 ab3@4 ~@5, ~@9 ab3@6 ~@3 ab4@48 ab3@40 ab3@5 ~@9, ~@12 [gb4,ab4,db5]@6 eb4@22 eb4@48 ~@16 [gb4,bb4]@4 [gb4,bb4]@7 ~@5, ~@12 gb4@12 ~@6 bb4@3 ~@7, ~@36 db4@26 db4@27 ~ [ab2,ab4,db5]@25 ~@5]/5", // Gbsus2 Eb7 Gbsus2 Gb Gbsus2 Gb Db5
})).s("gm_epiano2").gain(0.36)

// chords · epiano2 · "E.PIANO 2" · soft notes
const epiano2_soft = note("<~@43 A B@2 C ~ D@3 ~@51>".pickRestart({
  A: "~@4 db5@8 [ab3,eb4]@5 ~@7, [ab3,eb4] ~", B: "[~@23 db4@13 ~@2 [db4,eb4,ab4]@3 ~@7, ~@36 eb3@5 ~@7]/2",
  C: "~@15 ab3 ~@2 ab2 ~@5", D: "[~@12 eb3@24 ~@12 bb4@17 ~@7, ~@36 eb3@29 ~@7]/3",
})).s("gm_epiano2").gain(0.18)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@9 A@2 B C D E F G H E F G I J K L M N O P Q R S T U V W X@2 Y Z D E F G H AA AB AC AD AE AB AF AG AH AI AJ AK AL AM
  AN AO AP AQ AR AS AT AU AV AO AP AQ AR AS AT AU AW AX ~@7 AY AO AP AQ AR AS AT AU AV AO AP AQ AR AS AT AU AW AX
>`.pickRestart({
  A: "[~@6 ab1 ~@2 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1 ~ ab1@3 ~ ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1@2 gb1@4]/2",
  B: "eb1@2 ~@9 eb1@2 ~@5 eb1 ~ db1@4", C: "eb1@2 ~@9 eb1 ~@3 eb1@2 ~ eb1@3 gb1@3", D: "ab1@2 ~@9 ab1 ~@12",
  E: "ab1@2 ~@9 ab1 ~@3 ab1@2 ~ ab1@2 gb1@4", F: "eb1@3 ~@8 eb1 ~@2 eb1!2 ~@7 db1",
  G: "eb1@3 ~@8 eb1 ~@2 eb1 db1@2 ~ eb1@2 db1@3 ~", H: "ab1@2 ~@9 ab1 ~@3 ab1 ~@8",
  I: "b1@4 ~ b1 ~@3 b1 ~ b1 ~@3 gb1@3 ~@2 b1 gb1@2 ~", J: "b1@3 ~@2 b1 ~@3 b1 ~ b1 ~@3 gb1@3 b1 ~ b1 gb1@2 ~",
  K: "eb1@5 eb2 ~@3 db1@3 ~@2 bb1 db1@3 bb1 ~ db2@4",
  L: "eb1@2 eb2 ~@2 eb2 ~@2 eb2 db1@2 ~@3 db2 eb1@3 eb2@2 ~ bb1@3, ~@10 db2 ~",
  M: "b1@4 ~ b2 ~@2 b2 b1 ~@4 gb2 gb1@2 ~ gb2 ~ gb2 bb1@3",
  N: "b1@2 b2 ~@2 b2 ~@2 b2 b1@2 gb2 ~@2 gb2 gb1@3 gb2@2 bb1@2 ~ b1",
  O: "eb1@4 ~ eb2 ~@2 eb2 db1@2 db2 ~@3 db1@3 ~@2 db2 ~@2 eb2",
  P: "ab1@2 ab2 ~@2 ab2 ~@2 ab2 gb1@2 eb2 ~@2 gb2 gb1@3 ab2@2 ab1@4",
  Q: "f1@4 ~ f2 ~@3 f1@2 f2 ~@2 f2 f1@3 f2 ~ f2 f1@2 eb2",
  R: "~@2 eb2 ~@2 eb2 ~@5 eb2 ~@2 eb2 eb1@3 eb2@2 gb1@4, eb1@5 ~@19",
  S: "gb1@4 ~ gb2 ~@3 gb1@2 gb2 ~@3 gb1@3 gb2 ~@2 gb1@2 gb2",
  T: "~@2 ab2 ~@3 ab2 ~@2 ab1@2 ab2 ~@2 ab2 ab1@3 ab2@2 gb1@4, ab1 ~@3",
  U: "~@2 f2 ~@3 f2 ~@2 f1@2 f2 ~@3 f1@3 f2 ~@2 f1@2 ~, f1 ~@5",
  V: "eb1@2 eb2 ~@2 eb2 ~@5 eb2 ~@3 eb1@3 eb2 ~@4 eb2, ~@9 eb1@4 ~@11",
  W: "~@2 gb2 ~@2 gb2 ~@3 gb1@2 gb2 ~@3 gb1@3 gb2 ~@2 gb1@2 gb2, gb1 ~@3",
  X: "ab1@2 ab2 ~@2 ab2 ~@3 ab1@2 ab2 ~@3 ab1@3 ab2 ~ ab1@2 ~@2", Y: "eb1@2 ~@9 eb1@2 ~@2 eb1 ~@2 eb1 ~ db1@4",
  Z: "eb1@2 ~@10 eb2 ~ eb2 ~ db2 bb1 eb2@2 ~@4", AA: "ab1@2 ~@9 ab1!2 ~ ab1@2 ~@2 eb1@3 ~@3",
  AB: "~@5 eb1 ~@2 eb1!2 ~@7 db1 eb1@3 ~@3", AC: "~@5 eb1 ~@2 eb1 db1@2 ~ eb1@2 db1@3 ~ ab1@2 ~@4",
  AD: "~@5 ab1 ~@3 ab1 ~@8 ab1@2 ~@4", AE: "~@5 ab1 ~@3 ab1@2 ~ ab1@2 gb1@4 eb1@3 ~@3",
  AF: "~@5 eb1 ~@2 eb1 db1@2 ~ eb1@2 db1@3 ~ b1@4 ~ b1", AG: "~@3 b1 ~ b1 ~@3 gb1@3 ~@2 b1 gb1@2 ~ b1@3 ~@2 b1",
  AH: "~@3 b1 ~ b1 ~@3 gb1@3 b1 ~ b1 gb1@2 ~ eb1@5 eb2", AI: "~@3 db1@3 ~@2 bb1 db1@3 bb1 ~ db2@4 eb1@2 eb2 ~@2 eb2",
  AJ: "~@2 eb2 db1@2 ~@3 db2 eb1@3 eb2@2 ~ bb1@3 b1@4 ~ b2, ~@7 db2 ~@4",
  AK: "~@2 b2 b1 ~@4 gb2 gb1@2 ~ gb2 ~ gb2 bb1@3 b1@2 b2 ~@2 b2",
  AL: "~@2 b2 b1@2 gb2 ~@2 gb2 gb1@3 gb2@2 bb1@2 ~ b1 eb1@4 ~ eb2",
  AM: "~@2 eb2 db1@2 db2 ~@3 db1@3 ~@2 db2 ~@2 eb2 ab1@2 ab2 ~@2 ab2",
  AN: "~@2 ab2 gb1@2 eb2 ~@2 gb2 gb1@3 ab2@2 ab1@4 f1@4 ~ f2",
  AO: "~@3 f1@2 f2 ~@2 f2 f1@3 f2 ~ f2 f1@2 eb2 ~@2 eb2 ~@2 eb2, ~@18 eb1@5 ~",
  AP: "~@5 eb2 ~@2 eb2 eb1@3 eb2@2 gb1@4 gb1@4 ~ gb2",
  AQ: "~@3 gb1@2 gb2 ~@3 gb1@3 gb2 ~@2 gb1@2 gb2 ~@2 ab2 ~@3, ~@3 ab1",
  AR: "ab2 ~@2 ab1@2 ab2 ~@2 ab2 ab1@3 ab2@2 gb1@4 ~@2 f2 ~@3, ~@9 f1@2 ~",
  AS: "f2 ~@2 f1@2 f2 ~@3 f1@3 f2 ~@2 f1@2 ~ eb1@2 eb2 ~@2 eb2",
  AT: "~@5 eb2 ~@3 eb1@3 eb2 ~@4 eb2 ~@2 gb2 ~@2 gb2, ~@3 eb1@4 ~@11 gb1@6",
  AU: "~@3 gb1@2 gb2 ~@3 gb1@3 gb2 ~@2 gb1@2 gb2 ab1@2 ab2 ~@2 ab2",
  AV: "~@3 ab1@2 ab2 ~@3 ab1@3 ab2 ~ ab1@2 ~@2 f1@4 ~ f2",
  AW: "~@3 ab1@2 ab2 ~@3 ab1@3 ab2 ~ ab1@2 ~@2 ab1@2 ab2 ~@2 ab2",
  AX: "~@3 ab1@2 ab2 ~@3 ab1@3 ab2 ~ ab1@2 ~@2 eb1@2 ~@4", AY: "~@18 f1@4 ~ f2",
})).s("gm_electric_bass_finger").gain(0.42)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note(`<
  ~@9 A B ~ C D ~ E ~ D ~ E ~ F G H I J ~ K ~@2 L M N O P M N@2 ~@2 D ~ E ~ D ~ Q ~ R ~ Q ~ S T U V W ~ X ~@2 Y Z AA AB
  AC Z AA ~ Y Z AA AB AC Z AA@2 ~@9 Y Z AA AB AC Z AA ~ Y Z AA AB AC Z AA@2
>`.pickRestart({
  A: "ab1 ~@2 ab1 ~@8 ab1 ~@11", B: "~@17 gb1 ~@6", C: "~@14 eb1 ~@9", D: "~@23 ab1", E: "~@7 eb1 ~@16",
  F: "~@14 b1 ~@3 b1 ~@5", G: "~@14 b1 ~@9", H: "~@11 eb2 ~@12", I: "~@11 bb1 ~@12", J: "~@11 b2 gb1 ~@11",
  K: "~@21 db1@2 ~", L: "~@9 eb1@4 ~@11", M: "~@14 gb2 ~@5 gb2 ~@3", N: "~@8 ab2 ~@15", O: "~@14 f2 ~@8 eb2",
  P: "~@20 eb2 eb1@2 ~", Q: "~ eb1 ~@22", R: "~@17 ab1 ~@6", S: "~@8 b1 ~@3 b1 ~@11", T: "~@8 b1 ~@15",
  U: "~@5 eb2 ~@18", V: "~@5 bb1 ~@18", W: "~@5 b2 gb1 ~@17", X: "~@15 db1@2 ~@7", Y: "~@3 eb1@4 ~@17",
  Z: "~@8 gb2 ~@5 gb2 ~@9", AA: "~@2 ab2 ~@21", AB: "~@8 f2 ~@8 eb2 ~@6", AC: "~@14 eb2 eb1@2 ~@7",
})).s("gm_electric_bass_finger").gain(0.24)

// chords · pad metallic · "METAL PAD"
const pad_metallic = note(`<
  ~@2 A B C D A B C E@2 ~@10 F G H@2 I G J@2 K@3 L@6 ~@5 M N ~@6 O@6 P@2 Q@4 R@8 S@6 ~@7 Q@4 R@8 S@6
>`.pickRestart({
  A: "[f2,f3,db4,eb4,ab4]", B: "[g2,g3,eb4,f4,bb4]", C: "[gb2,gb3,eb4,f4,bb4]", D: "[ab2,ab3,db4,eb4,ab4]",
  E: "[ab2,ab3,eb4,gb4,ab4,db5]/2", F: "[b3,db4,gb4]@5 [b3,db4,f4]@7", G: "[b3,db4,eb4]@3 [b3,db4,f4]@5",
  H: "[~@5 [db5,eb5,ab5]@3, [db4,eb4,ab4]]/2", I: "[b3,db4,gb4]@3 [b3,db4,f4]@5", J: "[db4,eb4,ab4]/2",
  K: "[[f3,db4,eb4,ab4]@23 [eb3,eb4,f4,bb4]@24 [gb3,eb4,ab4,bb4]@24 [ab3,eb4,gb4,ab4]]/3", // Db Ebsus2 Ebm Ab7
  L: "[~@23 [f3,db4,eb4,ab4]@24 [eb3,eb4,f4,bb4]@24 ab4@21 ab4@3 ~@36 [eb5,gb5,db6]@12 ~, ~@71 ab3@71 ~@2, ~@71 [db4,gb4]@24 [ab2,eb4,gb4,ab4,db5]@48 ~]/6", // Db Ebsus2 Ebm7 Gb5 Absus4
  M: "eb4 f4 gb4 db5", N: "ab4@2 ~",
  O: "[~@18 [b3,db4,gb4]@10 [b3,db4,f4]@14 [b3,db4,eb4]@9 [b3,db4,f4]@15 ~@30 [db5,eb5,ab5]@18 [b3,db4,gb4]@9 [b3,db4,f4]@15 [b3,db4,eb4]@6, ~@11 [db4,eb4,ab4]@8 ~@5]/6", // Bsus2 Db7 B Db7 Dbsus2 Bsus2 Db7 B …
  P: "[~ [b3,db4,f4]@5 [db4,eb4,ab4]@10]/2", // Db7 Dbsus2
  Q: "[~@18 [f3,db4,eb4,ab4]@23 [eb3,eb4,f4,bb4]@24 [gb3,eb4,ab4,bb4]@24 [ab3,eb4,gb4,ab4]@7]/4", // Db Ebsus2 Ebm Ab7
  R: "[~@17 [f3,db4,eb4,ab4]@24 [eb3,eb4,f4,bb4]@24 ab4@21 ab4@3 [eb4,ab4]@25 [f3,db4,eb4,ab4]@23 [eb3,eb4,f4,bb4]@24 [gb3,eb4,ab4,bb4]@24 [ab3,eb4,gb4,ab4]@7, ~@65 ab3@71 ~@56, ~@65 [db4,gb4]@24 [ab2,gb4,db5]@48 ~@55]/8", // Db Ebsus2 Ab5 Db Ebsus2 Ebm Ab7 Gb5 …
  S: "[~@17 [f3,db4,eb4,ab4]@24 [eb3,eb4,f4,bb4]@24 ab4@21 ab4@3 ~@36 [eb5,gb5,db6]@12 ~ [eb3,db4,eb4,ab4]@5 ~, ~@65 ab3@71 ~@8, ~@65 [db4,gb4]@24 [ab2,eb4,gb4,ab4,db5]@48 ~@7]/6", // Db Ebsus2 Ebm7 Dbsus2 Gb5 Absus4
})).s("gm_pad_metallic").gain(0.3).pan(0.4)

// other · brass section · "+BRASS 2"
const brass_section = note("<~@39 A ~@5 B ~@18 C@2 ~@6 D@2 ~@2 E ~@12 F@2 ~@6 F@2 ~@2 E>".pickRestart({
  A: "~@12 [eb4,eb5] ~ [eb4,eb5] ~ [db4,db5] [bb3,bb4] [eb4,eb5] ~@5", B: "~@12 [eb3,eb4,eb5] ~ [eb3,eb4,eb5] ~@9",
  C: "[ab4@6 eb5@9 ~ c5@2 bb4@28 ~@2]/2", D: "[ab4@6 eb5@9 ~ c5@2 bb4@23 ~@7, ~@15 db5@2 ~@31]/2",
  E: "~@9 [eb3,eb4,eb5,eb6] ~@2", F: "[ab4@3 eb5@5 ~ bb4@12 ~@3]/2",
})).s("gm_brass_section").gain(0.3)

// other · brass section · "+BRASS 2" · soft notes
const brass_section_soft = note(`<
  ~@64
  [~@15 db5@2 ~@7]
  ~@24
  [~@8 c5 ~@3, ~@15 db5@2 ~@7]
  ~@7
  [~@8 c5 ~@3, ~@15 db5@2 ~@7]
  ~@4
>`).s("gm_brass_section").gain(0.15)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@43 A B ~@31 C ~@7 D E@8 F@5 G@4>".pickRestart({
  A: "eb4 f4 gb4 db5", B: "ab4@2 ~", C: "~@6 eb5 ~", D: "~@3 [db4,ab4]",
  E: "[~@3 [f4,bb4]@4 [eb4,ab4]@4 [gb4,bb4]@4 [db4,ab4]@4 [f4,bb4]@4 [eb4,ab4]@4 [gb4,bb4]@4 [db4,ab4]]/8", // Bb5 Ab5 Gb Db5 Bb5 Ab5 Gb Db5
  F: "[~@3 [f4,bb4]@4 [eb4,ab4]@4 [gb4,bb4]@4 [db4,ab4]@4 [f4,bb4]]/5", // Bb5 Ab5 Gb Db5 Bb5
  G: "[~@9 [eb4,ab4]@12 ~@12 db5@11 ~@4, ~@21 [gb4,bb4]@23 ~@4]/4", // Ab5 Gb
})).s("gm_string_ensemble_2").gain(0.27)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@9 A B C@2 D ~@9 E@2 F ~ G@2 ~@9 H@2 D ~@13 I J K ~ L M N O P Q R S T U V W X Y Z AA AB AC AD ~@7 AE N O P Q R S T U
  V W X Y Z AA AB AC AD
>`.pickRestart({
  A: "~@12 ab2 ~ ab3 ~@3 ab2 ~ ab3 ~@2 ab3", B: "~@3 ab2 ~@4 ab3 ~@3 ab2 ~ ab3 ~@2 ab3 ~@2 ab3 ab2 ~@2",
  C: "[~@9 gb3 ~@2 [gb3,db4] ~@2 gb3 ~@2 [gb3,db4] ~ gb3 ~@2 [gb3,db4]@3 ~ [ab3,db4] ~@5 gb3 ~@2 [gb3,db4] ~@2 gb3 ~@2 db4 ~ gb3@3 ~]/2", // Gb5 Db5 Gb5
  D: "[gb3,c4] ~@23", // Gbdim
  E: "[~@6 [ab3,db4] ~@5 [ab3,db4] ~@2 [gb3,db4] ~@2 [ab3,db4] ~@4 [ab3,db4]@4 [ab3,db4] ~@4 [ab3,db4] ~@3 [ab3,db4] ~@2 [gb3,db4] ~@2 [ab3,db4] ~ [gb3,db4]@4]/2", // Db5 Gb5 Db5 Gb5 Db5 Gb5
  F: "ab3 ~@4 ab3 ~@3 [ab3,db4]@12 ~@3", // Db5
  G: "[~@12 [ab3,db4] ~@2 gb3 ~@2 db4@2 ~@3 [ab3,db4]@3 ~ [ab3,db4] ~@4 [ab3,db4] ~@3 [ab3,db4] ~@2 ab3 ~@2 db4@2 gb3 ~@3]/2", // Db5
  H: "[~@9 gb3 ~@2 [gb3,db4] ~@2 gb3 ~@2 [gb3,db4] ~ gb3 ~@2 [gb3,db4]@3 ~ [ab3,db4] ~@8 eb4 ~ eb4 ~ db4 bb3 eb4 ~@5]/2", // Gb5 Db5
  I: "[ab3,db4] ~@5 [ab3,db4] ~@2 [gb3,db4] ~@2 [ab3,db4] ~@4 [ab3,db4]@4 [ab3,db4] ~@2", // Db5 Gb5 Db5
  J: "~@2 [ab3,db4] ~@3 [ab3,db4] ~@2 [gb3,db4] ~@2 [ab3,db4] ~ [gb3,db4]@4 ab3 ~@4 ab3", K: "~ [ab3,db4]@4 ~@3",
  L: "~@6 [ab3,db4] ~@2 gb3 ~@2 db4@2 ~@3 [ab3,db4]@3 ~ [ab3,db4] ~@2", // Db5
  M: "~@2 [ab3,db4] ~@3 [ab3,db4] ~@2 ab3 ~@2 db4@2 gb3 ~@2 gb3 db3@2 ~ eb3@2 gb3", // Db5
  N: "~@2 gb3 db3@2 ~ gb3 ~@2 eb3@2 ab3 ~@2 gb3 ~@5 bb3 ~@3", O: "bb3 ~@2 eb3 ~@2 bb3 ~@4 db4 ~@2 bb3 ~@5 gb3 ~@2 gb3",
  P: "db3 ~@2 eb3@2 ~ gb3 ~@2 eb3 ~ ab3 ~@2 gb3 ~@2 gb3@2 ~ gb3 ~@2 eb3",
  Q: "gb3 ~@2 eb3@2 ~ gb3 ~@2 eb3@2 ab3 ~@3 db3@3 eb3@2 gb3 ~@2 gb3, ~@7 gb3@2 ~@3",
  R: "eb3 ~@5 [eb3,ab3] ~@2 eb3 ~ gb3 ~@2 gb3 db3 ~ gb3 eb3 ~ bb3 ~@2 eb3", // Ab5
  S: "bb3 ~@2 eb3@2 ~ db4 ~@2 eb3 ~ bb3 ~@2 bb3@2 ~ ab3 ~@2 ab3 eb3 ~@2",
  T: "gb3 ~@2 db3@2 ~ gb3 ~@2 eb3 ~ gb3 ~@2 ab3 ~@2 gb3 ~@2 gb3 eb3 ~ db3",
  U: "gb3 ~ gb3 eb3@2 ~ gb3 ~@2 eb3 ~ ab3 ~@3 db3@3 eb3 ~ gb3 ~@3, ~@7 gb3@2 ~@3",
  V: "gb3 ~@2 db3@2 ~ gb3 ~@2 eb3 ~ ab3 ~@2 gb3 eb3@2 ab3 ~@2 gb3 eb3 ~@2",
  W: "bb3 ~@2 eb3 ~@2 db4 ~@2 eb3 ~ db4 ~@2 bb3@4 ~@2 gb3 ~@2 gb3",
  X: "~@2 gb3 db3@2 ~ gb3 ~@2 eb3@2 gb3 ~@2 ab3 ~@5 gb3 ~@3",
  Y: "gb3 ~ gb3 eb3 ~@2 gb3 ~ gb3 eb3 ~ ab3 ~@2 bb3 ~@2 gb3 ~@2 gb3 eb3 ~ eb3",
  Z: "gb3 ~@2 eb3@2 ~ gb3 ~@2 db3@2 gb3 ~@2 gb3 ~@2 bb3 ~@2 bb3 eb3 ~@2",
  AA: "bb3 ~@2 eb3@2 ~ bb3 ~@2 eb3 ~ db4 ~@2 bb3@4 ~@2 gb3 ~@2 eb3",
  AB: "gb3 ~ gb3 db3@2 ~ gb3 ~@2 eb3@2 gb3 ~@2 ab3 ~@2 ab3 ~@2 gb3 ~@3",
  AC: "gb3 ~ gb3 db3@2 ~ gb3 ~@2 eb3 ~ ab3 ~@2 gb3@2 ~@2 eb3 ~ gb3 ~@2 eb3",
  AD: "gb3 ~@2 eb3 ~@2 gb3 ~@2 eb3 ~ ab3 ~@2 gb3 ~@9", AE: "~@21 eb3@2 gb3",
})).s("gm_electric_guitar_muted").gain(0.32).pan(0.3)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@10 A ~@12 B ~@3 C D ~@25 E ~@3 F G H I J K L M N K O P Q R S T U V W ~@7 C H I J K L M N K O P Q R S T U V W
>`.pickRestart({
  A: "~@2 ab3 ~@21", B: "~@20 [gb3,db4] ~@3", C: "~@20 gb3 ~@3", D: "~@7 db4 ~@4", E: "~@14 [gb3,db4] ~@9",
  F: "~@14 gb3 ~@9", G: "~@8 db4@2 ~@10 gb3 ~@3", H: "~@8 gb3 ~@6 db3@2 ~ eb3@2 ~@4",
  I: "~@8 bb3 eb3 ~@5 eb3 ~@5 eb3 ~@2", J: "~@2 gb3 ~@12 db3@2 eb3@2 ~@5", K: "~@8 gb3 ~@12 eb3 ~@2",
  L: "~@3 db3 ~@9 db3 ~@7 eb3 ~@2", M: "~@15 eb3 ~@7 eb3", N: "~@2 gb3 ~@5 gb3 ~@15", O: "~@18 db3 ~@4 eb3",
  P: "~@18 eb3 ~@5", Q: "~@8 gb3 ~@15", R: "~@12 db3 ~@11", S: "~@2 gb3 ~@12 eb3 ~@7 db3",
  T: "~@2 bb3 ~@5 bb3 ~@9 eb3 ~@2 eb3 ~@2", U: "~@8 gb3 ~@4 eb3 ~@7 eb3 ~ eb3", V: "~@6 ab3 ~ gb3 ~@8 gb3 ~@6",
  W: "~@2 gb3 ~@21",
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.3)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@9 A@2 B@3 ~ C@2 D@2 E@2 F@4 G@4 ~@9 B@3 ~ C@2 D@2 E@2 D@2 H@6 I@4 ~@42
>`.pickRestart({
  A: "[~ [ab2,eb4], ~@23 bb3@25]/2", B: "[~@24 db4@24 ~@5 ab3@15 ~@4, ~@23 [eb3,ab3]@25 [gb3,db4]@20 ~@4]/3",
  C: "[~ [ab3,bb3,eb4]@7]/2", D: "[~@9 gb3@13 ~@2 db4@24, eb3, db4@23 ab3@25, ~@11 gb3@13]/2",
  E: "[~@6 [ab3,eb4]@18 [ab3,eb4]@5 [gb3,ab3,eb4]@14 ~@5, ~@6 bb3@37 ~@5, ~@24 db4@19 ~@5]/2", // Ab5 Ab7
  F: "[[b3,db4]@9 [b3,db4]@15 [b3,db4]@9 ~@20 [bb3,gb4]@31 [ab3,bb3,db4,ab4]@12, gb4@12 ~ ab3@8 ~@3, ~@3 f4@8 [b3,db4,f4]@16 ~@5, ~ eb4@2 ~, ~@53 eb3@43]/4", // Bsus2 Ebm Bbm7 Db7
  G: "[[b3,db4]@9 [b3,db4]@15 [b3,db4]@9 [b3,db4,f4]@14 ~ ab4@21 ~@2 bb3@23 ~@2, gb4@3 ~@6 f4@24 ~@14 db4@23 [db4,gb4]@24 ~@2, ~@24 eb4@23 bb3@2 ~@47, ~@2 eb3 ~]/4", // Bsus2 Db7 Gb5
  H: "[~@6 [ab3,eb4]@18 [ab3,eb4]@5 ~@13 [b3,db4]@9 [b3,db4]@15 [b3,db4]@9 ~@20 [bb3,gb4]@31 [ab3,bb3,db4,ab4]@12 [b3,db4]@6, ~@2 bb3@15 f4@8 [b3,db4,f4]@16 ~@7, ~@24 db4@18 gb4@48 ~@5 eb3@43 ~@6, ~@29 [gb3,ab3]@48 ~@17 ab3@32 ~@18, ~@29 eb4@37 eb4@48 ~@24 gb4@3 ~@3]/6", // Ab5 Bsus2 Ebm Bbm7 Bsus2 Db7 Gbsus2
  I: "[~@3 [b3,db4]@15 [b3,db4]@9 [b3,db4,f4]@14 ~ ab4@21 ~@2 bb3@23 ~@8, ~@3 f4@24 ~@14 db4@23 [db4,gb4]@24 ~@8, ~@18 eb4@23 bb3@2 ~@53, ~@7 eb3@4 ~@5]/4", // Bsus2 Db7 Gb5
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@9 A@2 ~@4 B@3 ~ C@2 ~@3 D E@2 F@2 ~@13 B@3 ~ C@2 G ~ H@2 ~@3 I@3 J@2 ~@42
>`.pickRestart({
  A: "[~@23 ab3@25]/2", B: "[eb3@47 ~ gb3 ~@23, ~@47 ab3@24 ~]/3", C: "[eb3@43 ~@5]/2", D: "~ gb4",
  E: "[~@23 ab4, ~ [d4,g4]@47, ~ gb4@15]/2", F: "[~@12 eb3@11 ~, ~@21 ab4@25 ~@2]/2", G: "gb3 ~@23", H: "eb3/2",
  I: "[~@3 gb4@6 ~@23 ab4 ~@3, ~@19 [d4,g4]@47 ~@6, ~@7 gb4@15 ~@2]/3", J: "[~@9 eb3@11 ~@4, ~@15 ab4@25 ~@8]/2",
})).s("gm_electric_guitar_clean").gain(0.18).pan(0.6)

// other · taiko drum · "TAIKO"
const taiko_drum = note("<A@2 ~@100>".pickRestart({
  A: "[[a3,a4]@7 ~]/2", // A
})).s("gm_taiko_drum").gain(0.42).pan(0.3)
// … 146 more lines

More by Jones Grace