Strudelify

Doll Parts

Hole

KeyG majorTempo102 bpm
0:00/0:00
// Doll Parts — Hole
// 102 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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 · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note(`<
  A B C D A B C D E F G H E F G H I@24 A B C D A B C D E F G H E F G H I@6 J@2 K J@2 L@15 M@2 N@2
>`.pickRestart({
  A: "[a3,e4,a4]@5 [a3,e4,a4]!3", B: "[c4,e4,g4,b4]@5 [c4,e4,g4,b4]!2 [b3,g4,b4]", C: "[g3,b3,d4,g4]@5 [g3,b3,d4,g4]!3",
  D: "[c4,e4,g4,b4]@5 [c4,e4,g4,b4]!2 a3", E: "[a3,e4,a4]@2 [a3,e4,a4] [a3,e4,a4]@2 [a3,e4,a4]!3",
  F: "[c4,e4,g4,b4]@2 [c4,e4,g4,b4] [c4,e4,g4,b4]@2 [c4,e4,g4,b4]!2 [b3,g4,b4]", // Cmaj7 Em
  G: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!3", // G
  H: "[c4,e4,g4,b4]@2 [c4,e4,g4,b4] [c4,e4,g4,b4]@2 [c4,e4,g4,b4]!2 a3", // Cmaj7
  I: "[[a3,e4,a4]@2 [a3,e4,a4]@2 [c4,e4,g4,b4]!2 [b3,g4,b4] [g3,b3,d4]@10 [d4,g4,d5,g5]!7, ~@7 g4@7 ~@10]/3", // A5 Cmaj7 Em G G5
  J: "[[a3,e4,a4]@2 [a3,e4,a4]@2 [c4,e4,g4,b4]!2 [b3,g4,b4] [g3,b3,d4]@9, ~@7 g4@7 ~@2]/2", // A5 Cmaj7 Em G
  K: "[g3,b3,d4] [d4,g4,d5,g5]!7", // G G5
  L: "[[a3,e4,a4]@2 [a3,e4,a4]@2 [c4,e4,g4,b4]!2 [b3,g4,b4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4,d5,g5]!3 [g3,b3,d4,g4,d5,g5]@2 [d4,g4,d5,g5]!7]/3", // A5 Cmaj7 Em G G5
  M: "[[a3,e4,a4]@2 [a3,e4,a4]@2 [c4,e4,g4,b4]!2 [b3,g4,b4] [g3,b3,d4,g4]@2 [g3,b3,d4,g4] [g3,b3,d4,g4,d5,g5]@2 [g3,b3,d4,g4,d5,g5]!4]/2", // A5 Cmaj7 Em G
  N: "[[a3,e4,a4]@2 [a3,e4,a4]@2 [c4,e4,g4,b4]!2 [b3,g4,b4] [g3,b3,d4,g4]@9]/2", // A5 Cmaj7 Em G
})).s("gm_electric_guitar_clean").gain(0.26)

// bass · slap bass 1 · "Bass"
const bass = note(`<
  A B C D A B C D A B C D A B C E F@24 A B C D A B C D A B C D A B C E F@9 G@2 H@2 I J@12 ~@4
>`.pickRestart({
  A: "a2@5 a2!3", B: "c3@5 c3!2 b2", C: "g2@5 g2!2 a2", D: "c3@5 c3!3", E: "c3", F: "[a2@2 a2@2 c3!2 b2 g2@10 d2!7]/3",
  G: "[a2@2 a2@2 c3!2 b2 g2@9]/2", H: "[a2@2 a2@2 c3!2 b2 g2@2 g2 g2@2 g2!4]/2", I: "g2!2 g2@2 g2!4",
  J: "[a2@2 a2@2 c3!2 b2 g2@2 g2 g2@2 g2!3 g2@2 [d2,d3]!7]/3", // D
})).s("gm_slap_bass_1").gain(0.26)

stack(electric_guitar_clean, bass)

More by Hole