Strudelify
With Arms Wide Open (Strings version) cover art

Human Clay

With Arms Wide Open (Strings version)

Creed

KeyC majorTempo139 bpm
0:00/0:00
// With Arms Wide Open (Strings version) — Creed
// 139 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 160 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): guitar program 30.
setcpm(139/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.

// other · pad warm
const pad_warm = note("<~@40 A@4 ~@36 A@4 ~@4 A@4 ~@44 B@4 ~@4 C@5 ~@11>".pickRestart({
  A: "[a4@63 ~]/4", B: "a4/4", C: "[a4@67 ~@13]/5",
})).s("gm_pad_warm").gain(0.26)

// bass · electric bass finger
const bass = note(`<
  ~@20 A@2 B@2 C@2 D@2 E F G@2 H@2 I@2 J K L M N@2 O@2 P@2 Q@2 R@2 S@2 P@2 Q@2 R@2 T U V W X Y Z@2 AA AB V W X Y Z@2 AC
  AD J K L M AE AF AG@2 J K L M N@2 O@2 AH AI AJ AK AL AM AN AO AH AI AJ AK AL AM AN AO AH AI AJ AK AL AM AN AO V W X Y
  Z@2 AA AB V W X Y Z@2 AC AD J K L M AE AF O@2 J K L M N@2 AP@2 AQ@5 ~@7
>`.pickRestart({
  A: "[c2@15 ~]/2", B: "[b1@15 ~]/2", C: "[a1@15 ~]/2", D: "[a1@7 ~]/2", E: "f1@6 f1 ~@3 f1 ~ f1@4",
  F: "~@2 f1 ~ f1@3 ~ f1@2 c2@2 d2@3 ~", G: "[c2@9 ~ c2 ~ c2@11 ~ c2@2 d2@2 f1@3 ~]/2",
  H: "[e1@9 ~ e1 ~ e1@6 e1 ~ e1@3 ~ e1@2 b1@2 c2@2 d2@2]/2", I: "[d2@12 d1@19 ~]/2", J: "c2@5 ~ c2@3 ~ c2 ~ c2@4",
  K: "~@2 c2@4 c2 ~ c2@2 d2 ~ d2@2 c2 ~", L: "b1@5 ~ b1@2 ~@2 b1 ~ b1@4", M: "~@2 b1@4 b1 ~ b1@2 d2 ~ d2@2 b1 ~",
  N: "[a1@6 a2@3 ~ a1 ~ a1@6 a2 ~ a2@2 a1@2 g2@2 a2 ~ a2 ~ a2@2]/2",
  O: "[a1@6 a2@3 ~ a1 ~ a1@6 a2 ~ a2@2 a1@2 g2@2 a2 ~ a2@2 a1@2]/2", P: "[c2@9 ~ c2 ~ c2@12 c2@2 d2@2 e2@2 c2 ~]/2",
  Q: "[b1@6 b1 ~@3 b1 ~ b1@11 ~ b1@2 c2@2 d2@3 ~]/2", R: "[a1@6 a1@3 ~ a1 ~ g2@8 a1@4 g2@8, ~@12 f2 ~@19]/2",
  S: "[a1@5 ~ a1@3 ~ a1@2 g2@7 ~ g2@4 c2@2 d2@2 e2@2 c2@2]/2", T: "a1@3 ~ a1 ~ a1@2 a2@3 ~ a2 ~ a2 ~",
  U: "a2 g2 e2 g2 e2 d2 c2 a1", V: "f1@5 ~ f1 ~ f1@5 ~ f1@2", W: "~@2 f1 ~ f1@3 ~ f1@2 g1@2 a1@2 d2 ~",
  X: "c2@5 ~ c2 ~ c2@5 ~ c2 ~", Y: "c2 ~ c2 ~ c2@3 ~ c2@2 g1@4 f1 ~",
  Z: "[e1@5 ~ e1 ~ e1 ~@3 e1@6 e1 ~ e1@3 ~ e1@2 f1@2 f1@2 e1@2]/2", AA: "d2@5 ~ d2 ~ d2@2 ~@2 d2@4",
  AB: "~@2 d2 ~ d2@2 a1 ~ d2@2 c2@2 a1@2 g1@2", AC: "d2@5 ~ d2 ~ d2 ~@3 d1@4", AD: "~@2 d1 ~ d1@3 ~ d1@7 ~",
  AE: "a1@5 ~ a1@2 ~@2 a1 ~ a1@3 ~", AF: "g2@2 a2@5 ~ d3@2 e3@6",
  AG: "[d3@2 e3@8 a1 ~ a1@6 a2 ~ a2@2 a1@2 g2@2 a2 ~ a2@2 a1@2]/2", AH: "c2@5 ~ c2 ~ c2@5 ~ c2@2",
  AI: "~@2 c2 ~ c2@3 ~ c2@2 d2@2 c2@2 b1 ~", AJ: "b1@5 ~ b1 ~ b1@5 ~ b1@2", AK: "~@2 b1 ~ b1@3 ~ b1@2 d2@2 c2@2 b1@2",
  AL: "a#1@5 ~ a#1 ~ a#1@4 a#1 ~ a#1@2", AM: "~@2 a#1 ~ a#1@3 ~ a#1@5 ~ a#1 ~", AN: "a1@5 ~ a1 ~ a1@5 ~ a1 ~",
  AO: "a1@3 ~ a1 ~ a1 ~ a1@2 b1@2 c2 ~ c2@2", AP: "[a1@6 a2@3 ~ a1 ~ a1@6 a2 ~ a2@2 a1@2 ~ g2@2 a2@2 ~ a2@2]/2",
  AQ: "[~ a1@3 c2@65 ~@11]/5",
})).s("gm_electric_bass_finger").gain(0.58)

// chords · distortion guitar
const distortion_guitar = note("<~@92 A B C D C E F@3 B C D C E F@3 B C D C E G@6 ~@37 H I J>".pickRestart({
  A: "c4", B: "~ c4 d4 e4 f4@2 e4 f4", C: "e4", D: "c4 d4 e4 f4@2 e4 f4@2", E: "c4 d4 e4 g4@2 f4 e4@2",
  F: "[f4 e4@2 f4 e4@2 f4 e4@2 f4 e4@2 ~@4 c4@8, ~@24 g4@23 ~]/3",
  G: "[f4@2 e4@4 f4@2 e4@4 f4@2 e4@4 f4@2 e4@4 g4@71 ~]/6", H: "~@15 [g4,a4]",
  I: "~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~@2 [g4,a4] ~", J: "[g4,a4] ~@15",
})).s("gm_distortion_guitar").gain(0.64)

// chords · distortion guitar · soft notes · Gsus2
const distortion_guitar_soft = note(`<
  ~@153
  [~@8 [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~]
  [[g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4]@2 [g4,a4] ~]
  [[g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~]
  [[g4,a4] ~@2 [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4]]
  [~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~ [g4,a4] ~@2]
  ~@2
>`).s("gm_distortion_guitar").gain(0.24)

// chords · lead 3 calliope
const lead_3_calliope = note("<~@125 A B@2 ~@2 C@2 ~@28>".pickRestart({
  A: "~@2 [c4,e4]@2 [c4,e4]@2 [b3,d4]!2", B: "[[b3,d4]@8 [c4,e4]@4 [c4,e4]@17 ~@3]/2",
  C: "[[b3,d4] [c4,e4]@2 [d4,f#4]@2 ~@3]/2", // Bm C D
})).s("gm_lead_3_calliope").gain(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@12 A@16 B@2 C@2 D@4 E@6 F@6 G@2 H@2 I@4 G@2 H@2 ~@16 A@16 ~@40 A@8 J@8 K@5 ~@7
>`.pickRestart({
  A: "[~@15 c3 ~@15 b2 ~@15 a2 ~@15 a2, c3@6 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@4 ~@2 d3@9 ~ d3@6 d3@4, ~@2 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@3, ~@8 c3@6 c3@8 ~@2 c3@6 ~@2 b2@7 ~ b2@6 b2@9 ~ b2@6 ~@2 a2@6 ~@2 a2@6 a2@9 ~ a2@6 ~@2 a2@8 a2@6 a2@9 ~ a2@5 ~@3]/8",
  B: "[[f3,c4,f4]@5 [f3,c4,f4] [f3,c4,f4]@3 [f3,c4,f4]@2 [f3,c4,f4] c4@2 [c4,d4,g4]!2, ~@3 [f3,f4]]/2", // F5 Csus2 F
  C: "[[c4,d4,g4]@10 ~ [c4,d4,g4] [c4,d4,g4]@6 [c4,d4,g4]@4 [c4,d4,g4]@2 ~@4 [e3,b3,e4]@2 [e3,b3,e4]@2, ~@3 [c4,d4,g4]]/2", // Csus2 E5 Csus2
  D: "[[e3,b3,e4]@6 ~ [e3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4]@6 [e3,b3,e4]@4 [e3,b3,e4]@2 [e3,b3,e4]@7 ~ [d4,a4]@5 ~ [d3,d4,a4]@4 [d3,a3,d4,a4]@2 [d3,a3,d4,a4]@6 ~ [d3,a4]@3 [d3,a3,d4,a4]@2 [d3,a3,d4,a4]@5 ~@3, ~@6 b3@3 ~@22 [d3,a3]@6 a3@4 ~@9 [a3,d4]@4 ~@10]/4", // E5 E E5 D5
  E: "[~@15 c3 ~@15 b2 ~@15 a2, c3@3 d3@3 d3@5 d3@3 d3@5 d3@3 d3@5 d3@3 d3@5 d3@3 d3@5 d3@3 d3@2, ~@2 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@5 g3@3 g3@3, ~@8 c3@6 c3@8 ~@2 c3@6 ~@2 b2@7 ~ b2@6 b2@9 ~ b2@6 ~@2 a2@6 ~@2 a2@6 a2@9 ~ a2@6 ~@2]/6",
  F: "[~@32 [c4,g4]@25 ~@7 [d3,g3,b3,d4,g4]@27 ~@5, a2@8 a2@6 a2@9 ~ a2@5 ~ a2@2 ~@64, ~@4 g3@6 g3@10 g3@6 g3@5 [c3,g3]@25 ~@7 b2@28 ~@5, ~@6 d3@4 ~@2 d3@9 ~ d3@6 d3@4 ~@64]/6", // C5 G C5
  G: "[[e3,g3,c4,e4]@5 ~@7 [g3,c4,e4]@6 ~@6 [g3,c4]@3 ~ [g3,c4]@2 e3@2, a2@11 ~ a2@11 ~ a2@7 ~, ~@6 [g3,c4]@5 ~@7 [g3,c4]@5 ~@9, ~@6 e3@3 ~ e3@7 ~ e3@3 ~ e3@7 ~@3, ~@7 e4@5 ~@7 e4@5 ~@8]/2", // C C5
  H: "[~ e4@5 ~ e3@3 ~@2 [g3,c4]@5 ~@7 [g3,c4,e4]@4 [e3,g3,c4,e4]@3 ~, a2@11 ~ a2@11 ~ a2@7 ~, [e3,g3,c4]@5 ~ g3@4 e3@7 ~ [e3,g3]@4 e3@5 ~@5, ~@7 [c4,e4]@5 ~@7 c4@5 ~@8]/2", // C5 C Em C
  I: "[g4@24 ~@8 [d3,g3,b3,d4,g4]@27 ~@5, ~@31 b2@28 ~@5]/4", // G
  J: "[~@15 c3 ~@15 b2 ~@15 a2 ~@15 d3, c3@6 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@6 d3@10 d3@4 ~@2 d3@10 d3@7 ~@3, ~@4 g3@6 g3@10 g3@6 g3@10 g3@6 g3@10 g3@6 g3@10 g3@6 g3@10 g3@6 g3@10 g3@6 g3@10 g3@7 g3@5, ~@8 c3@6 c3@8 ~@2 c3@6 ~@2 b2@7 ~ b2@6 b2@9 ~ b2@6 ~@2 a2@6 ~@2 a2@6 a2@9 ~ a2@6 ~@2 a2@8 a2@6 a2@9 ~@2 a2@6 ~]/8",
  K: "[~ a2@3 ~ [g3,c4]@62 ~@13, ~@2 [c3,f3]@31 ~@7]/5", // C5 F5
})).s("gm_acoustic_guitar_steel").gain(0.46)

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@12 A B C D E F G H A B C D E F G I@4 J@5 A B K L M F N O@7 P@2 Q@8 ~@16 A B K L M F N R A B K S M F N R ~@40 A B K T
  U F V R A B K T U F V W@6 ~@7
>`.pickRestart({
  A: "b3@2 c4 ~ c4@6 c4@5 ~", B: "d4@6 c4@6 b3 c4 b3@2, c4 ~@15", C: "b3 c4 c4@3 ~@3", D: "c4 d4@5 c4@6 b3 c4 ~@2",
  E: "b3@2 ~@3 c4@5 c4@6", F: "b3 c4 ~@2 b3@6 b3@5 ~", G: "b3 c4 b3@2 c4@5 ~@7", H: "~ c4 ~@8 b3@5 ~",
  I: "[~ c4 ~@8 b3@5 ~ [c4,f4]@10 [f3,c4,f4]@2 [f3,c4,f4]@19 ~ [d4,g4]@16, ~@15 f3@11 ~@21 c4@17]/4", // F5 G5
  J: "[~@2 [c4,d4,g4]@4 [c4,d4,g4]@2 [c4,d4,g4]@7 ~ e4@19 ~@3 b3@2 [e3,b3,e4]@7 ~ [d4,a4]@18 [d3,d4,a4]@4 d4@2 [d3,a3,d4,a4]@5 ~@3, ~@15 [e3,b3]@19 ~@13 [d3,a3]@19 ~@14]/5", // Csus2 E5 D5 E5 D5
  K: "b3@2 c4@2 c4@6 c4@5 ~", L: "c4 d4@5 c4@6 b3 c4 b3 ~", M: "b3@2 c4@2 ~ c4@5 c4@6", N: "b3 c4 b3@2 c4@5 ~ c4@6",
  O: "[b3 c4 b3@2 ~@6 b3@4 ~@2 [c4,g4]@28 ~@4 [d4,g4]@25 ~@7 [c4,e4,g4]@6 [g3,c4,e4,g4]@4 ~@2 [c4,e4,g4]@5 e3 ~@6 g3@4 g3@2 e3@2, ~@14 g2@22 ~@11 [d3,g3]@25 ~@7 [e3,g3]@6 ~ e3@3 ~ e3@6 ~@3 [c4,e4,g4]@5 [c4,e4,g4]@7 ~, ~@15 [c3,g3]@28 ~@3 b2@25 ~@7 a2@13 g3@6 ~ g3@4 e3@7 ~@3]/7", // C5 G5 C G5 Em C C5
  P: "[~ [e4,g4]@5 ~@6 [c4,e4,g4]@5 ~ [c4,e4,g4]@4 ~@2 [a2,c4,e4,g4]@6 g3 ~, a2@11 ~ [a2,g3]@11 ~@9, [g3,c4]@5 ~ [g3,c4]@5 ~@13 g3@5 ~@3, ~@6 e3@3 ~ e3@9 ~@3 e3@8 ~@2, ~@7 e4@5 ~@20]/2", // Em C Am7 A7 C5
  Q: "[g4@27 ~@5 [d4,g4]@25 ~@7 [c4,e4,g4]@6 [g3,c4,e4,g4]@4 ~@2 [c4,e4,g4]@5 e3 ~@6 g3@4 g3@2 ~@3 [e4,g4]@5 ~@6 [c4,e4,g4]@5 ~ [c4,e4,g4]@4 ~@2 [a2,c4,e4,g4]@6 g3 ~, ~@30 b2@25 ~@7 a2@13 g3@6 ~ g3@4 e3@7 ~ e3@6 ~@2 e3@3 ~ e3@9 ~@3 e3@8 ~@2, ~@31 [d3,g3]@25 ~@7 [e3,g3]@6 ~ e3@3 ~ e3@6 ~@3 [c4,e4,g4]@5 [c4,e4,g4]@7 ~ a2@11 ~ [a2,g3]@11 ~@9, ~@96 [g3,c4]@5 ~ [g3,c4]@5 ~@13 g3@5 ~@3, ~@103 e4@5 ~@20]/8", // G5 C Em C Am7 G5 Em C …
  R: "b3 c4 b3@2 ~@6 b3@5 ~", S: "c4 d4@5 c4@6 b3 c4 b3!2", T: "d4@6 c4@6 b3 c4 b3!2, c4 ~@15",
  U: "b3@2 c4@2 c4@5 ~ c4@6", V: "b3 c4 b3@2 c4@5 c4@6 ~",
  W: "[b3 c4 b3@2 ~@7 b3@7 ~@4 c4@64 ~@10, ~@21 [c3,f3,g3]@65 ~@10]/6", // Csus4
})).s("gm_acoustic_guitar_nylon").gain(0.32).pan(0.2)

// other · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@14 A B C D E F ~@2 A B C D E F ~@5 G ~ H ~@5 D ~ I ~@4 J@2 ~@6 J@2 ~@23 D ~ I ~@5 D ~ I ~@45 D ~ I ~@5 D ~ K ~@12
>`.pickRestart({
  A: "~@10 c4@5 ~", B: "~@14 b3 ~", C: "~ c4 ~@6", D: "~@2 b3 ~@13", E: "~@5 c4@3", F: "b3 ~ b3@2 b3@6 ~@6",
  G: "~@3 [e3,b3,e4]@3 [e3,e4]@2 ~@8", H: "~ a3@2 [d3,a3,a4] ~@4", I: "~@2 b3@3 ~@3", J: "[~@12 a2@19 ~]/2",
  K: "~@4 b3@7 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.16).pan(0.2)

// chords · distortion guitar
const distortion_guitar_2 = note("<~@76 A@2 B@2 C@2 D@2 ~@5 E F ~@4 G ~@7 G ~@7 G ~@24 C@2 ~@22>".pickRestart({
  A: "c3/2", B: "b2/2", C: "a2/2", D: "[a2@29 ~@3]/2", E: "~ a2@3", F: "a2@13 ~@3", G: "~@5 [b2,g3,b3]@2 [b2,g3,b3]",
})).s("gm_distortion_guitar").gain(0.44).pan(0.2)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@59 A B C D E F@2 G@2 B C D E F@2 H@2 ~@12 I@3 J K@2 L@2 M@2 N@2 K@2 L@2 M@2 N@2 K@2 L@2 M@2 N@2 B C D E F@2 G@2 B C
  D E F@2 H@2 ~@28
>`.pickRestart({
  A: "~@4 [a2,e3,a3]!4", B: "[f2,c3,f3,c4]@3 [f2,c3,f3,c4] [f2,c3,f3,c4]@3 [f2,c3,f3,c4]",
  C: "[f2,c3,f3,c4]!2 [f2,c3,f3,c4]@2 [f2,c3,f3,c4] [f2,c3,f3,c4]@2 [f2,c3,f3,c4]", // F5
  D: "[c3,g3,c4]@3 [c3,g3,c4] [c3,g3,c4]@3 [c3,g3,c4]", // C5
  E: "[c3,g3,c4]!2 [c3,g3,c4]@2 [c3,g3,c4] [f2,c3,f3,c4]@2 [f2,c3,f3,c4]", // C5 F5
  F: "[[e2,b2,e3]@3 [e2,b2,e3] [e2,b2,e3]@2 [b2,e3,b3]@6 [b2,e3,b3]!3 [d3,a3,d4]]/2", // E5 D5
  G: "[[d3,a3,d4]@6 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@6 [d3,a3] ~ [d3,a3]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]@2, ~@9 d4 ~@6]/2", // D5
  H: "[d3,a3,d4]/2", I: "[[a2,a3]@2 [a2,a3] a2 [a2,a3]!3 [a2,a3]@5 [a2,a3]!3 [a2,a3]@5 a3!2 [a2,a3]!2, ~@10 a2 ~]/3",
  J: "[a2,a3]!8", K: "[[g3,c4,f4,g4]@3 [g3,c4,g4] [g3,c4,g4]@3 [g3,c4,g4]@2 [g3,c4,g4] [g3,c4,g4]@2 [g3,c4,g4]@4]/2",
  L: "[[g3,b3,g4]@6 [g3,b3,g4]@2 [g3,b3,g4]@6 [g3,b3,g4]@4 [g3,b3,g4]@2 [g3,b3,g4]@4 [g3,b3,g4]@7 d#4]/2", // G
  M: "[[f3,a#3,f4]@3 [f3,a#3,f4] [f3,a#3,f4]@3 [f3,a#3,f4]@2 [f3,a#3,f4] [f3,a#3,f4]@2 [f3,a#3,f4]@4]/2", // A#5
  N: "[[e3,a3,e4]@3 [e3,a3,e4] [e3,a3,e4]@3 [e3,a3,e4]@2 [e3,a3,e4] [e3,a3,e4]@2 [e3,a3,e4] [e3,a3,e4]@2 [e3,a3,e4]]/2", // A5
})).s("gm_overdriven_guitar").gain(0.34).pan(0.9)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@4 A@24 B@2 C@2 D@2 E@2 A@8 F@8 A@8 ~@16 A@8 G@8 ~@40 H@8 I@2 J@4 K@7 ~@7
>`.pickRestart({
  A: "[b3@2 c4 ~@13 c4 ~@11 b3 c4 [c3,b3]@2 b3@2 c4@2 ~@12 c4 ~@11 b3 c4 [b2,b3] ~ b3@2 c4@2 ~@12 b3 c4 b3 ~@11 a2 ~ b3 c4 b3@2 ~@12 b3 c4 b3@2 ~@10 a2@2, c3@6 d3@4 c4@4 c3@8 ~@2 c3@5 ~@3 b2@7 ~ b2@5 ~ b2@8 d3@4 ~@2 d3@9 ~ d3@5 ~ d3@9 ~ d3@4 ~@2 d3@9 ~ d3@4 ~@2 d3@8 ~@2 d3@5 ~ d3@4, ~@4 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@8 ~@2 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@9 ~ g3@5 ~ g3@9 ~ g3@4 ~@2 g3@9 ~ [g3,c4]@5 ~ g3@9 ~ [g3,b3]@6 [g3,b3]@5 ~, ~@8 c3@4 d3@8 ~@2 [d3,c4]@6 d3@8 ~@2 d3@5 ~ d3@8 ~@2 c4@6 ~@9 c4@5 c4@6 ~@4 b3@6 b3@5 ~@11 c4@6 ~@16, ~@16 d4@6 ~@20 c4@5 ~@2 d4@6 ~ b2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3]/8", // Cmaj7 B C5 G D7
  B: "[[f3,c4,f4]@23 ~ c4@4 c4 ~ [c4,d4,g4]@2, e4 ~@22 f3@9, ~@3 f4]/2", // F5 Csus2
  C: "[[c4,d4,g4]@24 ~@4 [e3,b3,e4]@2 [e3,b3,e4] ~, ~@24 [c4,d4,g4]@7 ~]/2", D: "[e3@3 e3, [b3,e4]]/2",
  E: "[[d3,a3,d4,a4]@29 ~@3]/2", // D5
  F: "[~ c4@27 ~@4 [b3,d4]@28 ~@4 b3 c4 b3@2 c4@6 c4@5 ~ [b3,c4] b3@2 ~@7 b3@5 ~ b3 c4 b3@2 c4@4 ~@2 c4@5 ~ b3 [b3,c4]@2 ~ b3@6 b3@4 ~@2, [c3,g3]@27 ~@4 [b2,d3,g3]@28 ~@4 a2@21 b3@6 ~@6 [e3,g3]@29 ~@3, ~@64 [e3,g3,e4]@23 ~ [a2,e3,g3]@7 a2@29 ~@4, ~@97 e4@28 ~@3]/8", // Bm Cmaj7 C5 G Em A7
  G: "[b3@2 c4 ~@13 c4 ~@11 b3 c4 [c3,b3]@2 b3@2 c4@2 ~@12 c4 ~@11 b3 c4 [b2,b3] b3 b3@2 c4@2 ~@12 b3 c4 b3 ~@11 a2 ~ b3 c4 b3@2 ~@12 b3 c4 b3@2 ~@10 a2@2, c3@6 d3@4 c4@4 c3@8 ~@2 c3@5 ~@3 b2@7 ~ b2@5 ~ b2@8 d3@4 ~@2 d3@9 ~ d3@5 ~ d3@9 ~ d3@4 ~@2 d3@9 ~ d3@4 ~@2 d3@8 ~@2 d3@5 ~ d3@4, ~@4 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@8 ~@2 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@9 ~ g3@5 ~ g3@9 ~ g3@4 ~@2 g3@9 ~ [g3,c4]@5 ~ g3@9 ~ [g3,b3]@6 [g3,b3]@5 ~, ~@8 c3@4 d3@8 ~@2 [d3,c4]@6 d3@8 ~@2 d3@5 ~ d3@8 ~@2 c4@6 ~@9 c4@5 c4@6 ~@4 b3@6 b3@5 ~@11 c4@6 ~@16, ~@16 d4@6 ~@20 c4@5 ~@2 d4@6 ~ b2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3]/8", // Cmaj7 B C5 G D7
  H: "[b3@2 c4 ~@13 c4 ~@11 b3 c4 [c3,b3]@2 b3@2 c4@2 ~@12 c4 ~@11 b3 c4 [b2,b3] b3 b3@2 c4@2 ~@12 b3 c4 b3 ~@11 a2 ~ b3 c4 b3@2 ~@12 b3 c4 b3@2 ~@10 a2@2, c3@6 d3@4 c4@4 c3@8 ~@2 c3@5 ~@3 b2@7 ~ b2@5 ~ b2@9 ~ b2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3, ~@4 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@8 ~@2 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@9 ~ [g3,c4]@5 ~ g3@9 ~ g3@4 ~@2 g3@9 ~ [g3,c4]@5 ~ g3@9 ~ [g3,b3]@6 [g3,b3]@5 ~, ~@8 c3@4 d3@8 ~@2 [d3,c4]@6 d3@8 ~@2 d3@5 ~ d3@8 ~@2 d3@4 ~@2 d3@9 ~ d3@5 ~ d3@9 ~ d3@4 ~@2 d3@9 ~ d3@4 ~@2 d3@8 ~@2 d3@5 ~ d3@4, ~@16 d4@6 ~@20 c4@5 ~ d4@6 c4@6 ~@14 c4@6 ~@4 b3@6 b3@5 ~@10 c4@6 ~@17]/8", // Cmaj7 B C5 G D7
  I: "[b3@2 c4 ~@13 c4 ~@11 b3 c4 [c3,b3]@2, c3@6 d3@4 c4@4 c3@8 ~@2 c3@5 ~@3, ~@4 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@6, ~@4 c3@2 d3@4 ~ [d3,c4]@3 d3@2, ~@8 d4@3 ~@5]/2", // Cmaj7 C5 D7
  J: "[b3@2 c4@2 ~@12 c4 ~@11 b3 c4 [b2,b3] b3 b3@2 c4@2 ~@12 b3 c4 b3 ~@11 a2 ~, b2@6 d3@4 c4@4 b2@9 ~ b2@5 ~@3 a2@7 ~ a2@5 ~ a2@9 ~ a2@5 ~@3, ~@4 [g3,c4]@6 g3@9 ~ g3@5 ~ g3@9 ~ [g3,c4]@5 ~ g3@9 ~ g3@4 ~@2 [g3,b3]@6, ~@8 b2@4 d3@8 ~@2 d3@4 ~@2 d3@9 ~ d3@5 ~ d3@9 ~ d3@4 ~@2 d3@4, ~@8 d4@3 c4@3 ~@7 c4@3 ~@2 b3@3 ~@3]/4", // B C5 G
  K: "[b3 c4 b3@2 ~@12 b3 c4 b3@2 ~@13 a2@3 ~ [f3,g3,c4]@64 ~@11, a2@6 d3@3 c4@5 a2@8 d3@5 ~@3 d3@6 c3@64 ~@12, ~@4 [g3,c4]@4 a2@4 d3@8 g3@5 a2@6 ~@81, ~@10 g3@9 ~ b3@7 [g3,b3]@8 ~@77]/7", // Fsus2 C5 G
})).s("gm_electric_guitar_jazz").gain(0.37)

// drums · kick
const kick = s("bd").struct(`<
  ~@20 A ~@7 B C B D B C B E B C B D B C B E B D B D B D B E B D B D B D F G H I J K L M F G H I J K L M F N B C B D B C
  B O B C B D J P J A H P J K H P J F H P J K H P J Q H P J K H P J K H I J K L M F G H I J K L M F N R ~ B S B S B T R
  ~ B S B U B V W ~@11
>`.pickRestart({
  A: "x", B: "x ~@4 x!2 ~", C: "~ x!2 ~@3 x ~", D: "~ x!2 ~@5", E: "~ x!2 ~ x ~@3", F: "x ~@2 x ~@4",
  G: "x ~@2 x ~ x ~ x", H: "x ~@2 x ~@2 x!2", I: "~ x!2 ~@2 x ~ x", J: "x ~@2 x ~@3 x", K: "x!3 ~@2 x ~ x",
  L: "x ~@2 x ~@2 x ~", M: "~ x!3 ~@3 x", N: "~ x ~ x ~@3 x", O: "~ x!2 ~ x ~@2 x", P: "~@2 x ~@2 x ~ x",
  Q: "~@3 x ~@4", R: "x ~@4 x ~@2", S: "~@7 x", T: "~ x ~ x ~ x ~ x", U: "~ x", V: "~ x ~ x ~@4", W: "~ x ~@2",
})).gain(0.49)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~ A B C D E ~@60 F ~@16 G ~@38 F ~@28 H I J K@2 L M N ~>".pickRestart({
  A: "~@3 x ~@2 x ~@6 x ~@2", B: "~ x ~@6 x ~@2 x ~@4", C: "~ x ~ x ~@2 x ~", D: "x ~@2 x ~ x ~@2",
  E: "~ x ~@3 x ~@5 x ~@3 x", F: "~@7 x", G: "~@3 x", H: "~@7 x ~@2 x ~@4 x", I: "~@2 x ~@4 x ~@2 x ~@4 x",
  J: "~@2 x ~@5 x ~@2 x ~@4", K: "x ~@2 x ~@4 x ~@2 x ~@4", L: "x ~@3 x ~@4 x ~@2 x ~@3",
  M: "~ x ~@2 x ~@4 x ~@2 x ~@3", N: "~ x ~@2 x ~@5 x ~@2 x ~@2",
})).gain(0.16)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@29 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@19 A ~ A ~ A ~@3 A ~ A ~@3 B ~@68
>`.pickRestart({
  A: "~@9 x!2 ~@5", B: "~@3 x ~@4",
})).gain(0.27)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@35 A ~@7 A ~@7 A ~@22 B A ~@15 C ~@15 D ~@22 B A ~ E ~ E ~ E ~@3 E ~ E ~@4 F ~@11
>`.pickRestart({
  A: "~ x", B: "~@7 x", C: "~@15 x", D: "x ~ x ~@9 x ~@2 x", E: "~@3 x!2 ~@3", F: "~ x ~@14",
})).gain(0.55)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@11 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B@8 C@15 D C@6 ~@3 E ~ E ~@5 E ~ E ~@4 C@12 ~@3 A ~ E ~ E ~ E ~ E ~ E ~ E ~ E
  ~@3 E ~ E ~ E ~ E ~ E ~ E ~@5 E ~ E ~@4 C@13 F C F ~@12
>`.pickRestart({
// … 60 more lines

More by Creed