Strudelify

Moon Baby

Godsmack

KeyD majorTempo100 bpm
0:00/0:00
// Moon Baby — Godsmack
// 100 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 1/8 at bar 22, 4/4 at bar 23, 5/4 at bar 64, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 88 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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
const bass = note(`<
  A B C B C B C B C B C B D E F E G H I B J K L K L K L K L M N M N M N M N O@2 P Q O@2 P@2 R S T@4 S T@4 S T@4 S U@7 V
  W X Y Z AA W X Y Z V W X Y Z V W X AB
>`.pickRestart({
  A: "~@14 f#1!2", B: "f#1!3 ~ f#1!4 ~@2 d1 e1 e1@2 f#1!2", C: "f#1!3 ~ f#1!4 g1!2 a1!2 g1!2 f#1!2",
  D: "f#1!3 ~ f#1!4 g1!2 a1!2 g1!2 d1@2", E: "d1!2 d2 d#2 d2 d1@2 d1@2 d1 d2 d#2 d2@2 f#1@2",
  F: "f#1!2 c#2 d2 c#2 f#1@2 f#1@2 f#1 f#1@2 e1@2 d1@2", G: "f#1!2 c#2 d2 c#2 f#1@2 f#1@2 f#1 f#1@2 e1@2 d1!2",
  H: "d1!3 ~ d1!4 ~@2 d1 e1 e1@2 d1!2", I: "d1!3 ~ d1!4 ~@2 d1 e1 e1@2 f#1!2", J: "f#1!3 ~ f#1!4 ~@8",
  K: "f#1!5 ~ f#1!4 ~@2 d1 e1 e1@2", L: "f#1!5 ~ f#1!4 g1!2 a1!2 g1!2",
  M: "d1@2 d1!2 d2 d#2 d2 d1@2 d1@2 d1 d2 d#2 d2@2", N: "f#1@2 f#1!2 c#2 d2 c#2 f#1@2 f#1@2 f#1 f#1@2 e1@2",
  O: "d1!5 ~ d1!4 ~@2 d1 e1 e1@2", P: "f#1!4 f#1@2 f#1!2 f#1@4 d1 e1 e1@2", Q: "f#1!4 f#1@2 f#1!2 f#1@2 g1!2 a1!2 g1!2",
  R: "d1", S: "d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 f#1@2 ~ f#1@3 ~@2 f#1@3 ~, ~@22 g1@2 ~@3 d1@2 ~@3",
  T: "[~ f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 f#1@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 f#1@2 ~ f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 f#1@2 g1@2 f#1@3, d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 f#1@2 ~@53 g1@2 ~@3 d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 f#1@2 ~@31]/4",
  U: "[~ f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 g1@2 f#1@3 e1@5 b1@5 e2@15 e1@5 b1@5 e2@15 d1@2 f#1@4 d1@2 f#1@4 d1@2 f#1@4 d1@2 f#1@4 f#1@2 g1@2 f#1@4 d1@2 f#1@4 d1@2 f#1@4 d1@2 f#1@4 d1@2 f#1@4 f#1@2 g1@2 f#1@4 d1@2 f#1@4 d1@2 f#1@3 d1@2 f#1@4 d1@2 f#1@3 f#1@2 g1@2 f#1@3 d1@2 f#1@4 d1@2 f#1@3 d1@2 f#1@4 d1@2 f#1@3 f#1@2 g1@2 f#1@4 ~ f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 g1@2 f#1@3 d1@2 f#1@2, d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 f#1@2 ~@177 d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 f#1@2 ~@8]/7",
  V: "~ d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 f#1@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@2",
  W: "~ d1@2 f#1@3 d1@2 f#1@3 f#1@2 ~ f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 f#1@3, ~@13 g1@2 ~@3 d1@2 ~@3 d1@2 ~@3 d1@2 ~@2",
  X: "~@2 f#1@3 ~@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3, ~ d1@2 ~@3 f#1@2 ~@24",
  Y: "f#1@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 f#1@2 ~ f#1@2, ~@29 g1@2 ~",
  Z: "~@3 f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 f#1@3 ~@2 g1@2 f#1@3 d1@2 f#1@2, ~@2 d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 d1@2 ~@3 f#1@2 ~@8",
  AA: "~ d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 ~@7 d1@2 f#1@3 d1@2 f#1@2",
  AB: "f#1@2 g1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 d1@2 f#1@3 ~@5",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · distortion guitar
const distortion_guitar = note(`<
  A B C B C B C B C B C B D E F E G H I B J K L K L K L K L M N M N M N M N O@2 P Q O@2 P@2 R S@5 T U@4 V W@3 X T Y@7 Z
  AA AB AC AD AE AA AF AG AH AI AA AB AC AJ AK@3 AL
>`.pickRestart({
  A: "~@14 [f#2,c#3]!2", B: "[f#2,c#3]!3 ~ [f#2,c#3]!4 ~@2 [d2,a2] [e2,b2] [e2,b2]@2 [f#2,c#3]!2",
  C: "[f#2,c#3]!3 ~ [f#2,c#3]!4 [g2,d3]!2 [a2,e3]!2 [g2,d3]!2 [f#2,c#3]!2", // F#5 G5 A5 G5 F#5
  D: "[f#2,c#3]!3 ~ [f#2,c#3]!4 [g2,d3]!2 [a2,e3]!2 [g2,d3]!2 [d2,a2]@2", // F#5 G5 A5 G5 D5
  E: "[d2,a2] a2 d3 d#3 d3 [d2,a2]@2 [d2,a2]@2 a2 d3 d#3 d3@2 [f#2,c#3]@2, ~ d2@4 ~@4 d2@5 ~@2", // D5 F#5
  F: "[f#2,c#3] c#3!2 d3 c#3 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3] [f#2,c#3]@2 [e2,b2]@2 [d2,a2]@2, ~ f#2@4 ~@11", // F#5 E5 D5
  G: "[f#2,c#3] c#3!2 d3 c#3 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3] [f#2,c#3]@2 [e2,b2]@2 [d2,a2]!2, ~ f#2@4 ~@11", // F#5 E5 D5
  H: "[d2,a2]!3 ~ [d2,a2]!4 ~@2 [d2,a2] [e2,b2] [e2,b2]@2 [d2,a2]!2", // D5 E5 D5
  I: "[d2,a2]!3 ~ [d2,a2]!4 ~@2 [d2,a2] [e2,b2] [e2,b2]@2 [f#2,c#3]!2", J: "[f#2,c#3]!3 ~ [f#2,c#3]!4 ~@8",
  K: "[f#2,c#3]!5 ~ [f#2,c#3]!4 ~@2 [d2,a2] [e2,b2] [e2,b2]@2", // F#5 D5 E5
  L: "[f#2,c#3]!5 ~ [f#2,c#3]!4 [g2,d3]!2 [a2,e3]!2 [g2,d3]!2", // F#5 G5 A5 G5
  M: "[d2,a2]@2 [d2,a2] a2 d3 d#3 d3 [d2,a2]@2 [d2,a2]@2 a2 d3 d#3 d3@2, ~@3 d2@4 ~@4 d2@5", // D5
  N: "[f#2,c#3]@2 [f#2,c#3] c#3!2 d3 c#3 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3] [f#2,c#3]@2 [e2,b2]@2, ~@3 f#2@4 ~@9", // F#5 E5
  O: "[d2,a2]!5 ~ [d2,a2]!4 ~@2 [d2,a2] [e2,b2] [e2,b2]@2", // D5 E5
  P: "[f#2,c#3]!4 [f#2,c#3]@2 [f#2,c#3]!2 [f#2,c#3]@4 [d2,a2] [e2,b2] [e2,b2]@2", // F#5 D5 E5
  Q: "[f#2,c#3]!4 [f#2,c#3]@2 [f#2,c#3]!2 [f#2,c#3]@4 ~@4", R: "[d2,a2,d3]",
  S: "[f#5@107 ~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3, ~@107 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@31]/5", // F#5 G5 F#5 D5 F#5 D5 F#5 D5 …
  T: "[d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 ~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~, ~@22 [g2,d3]@2 ~@3 [d2,a2]@2 ~@3", // D5 F#5 D5 F#5 D5 F#5 D5 F#5 …
  U: "[~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 ~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3, [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@53 [g2,d3]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@31]/4", // F#5 G5 F#5 D5 F#5 D5 F#5 D5 …
  V: "f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 e4 e4@2 e4@2",
  W: "[e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 ~ [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 ~ [f#2,c#3]@3 ~ f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4, ~@10 e4 ~@24 [g2,d3] ~@12]/3", // D5 F#5 D5 F#5 D5 F#5 D5 F#5 …
  X: "f#4@2 f#4@2 ~ e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2, ~@2 f#4 ~@13",
  Y: "[~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [e2,b2,e3]@5 [e2,b2,e3]@5 [e2,b2,e3]@15 [e2,b2,e3]@5 [e2,b2,e3]@5 [e2,b2,e3]@15 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@4 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@4 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 ~ e4@2 e4@2, [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@202 f#4@2 ~@3]/7", // F#5 G5 F#5 E5 D5 F#5 D5 F#5 …
  Z: "e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@2", // D5 F#5 D5 F#5
  AA: "~ [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 ~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3, ~@13 [g2,d3]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@2", // D5 F#5 D5 F#5 G5 D5
  AB: "~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4, ~ [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@24", // F#5 G5 F#5 D5 F#5
  AC: "f#4@2 f#4@2 f#4 f#4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2",
  AD: "e4@2 ~ [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@2, ~@2 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@8", // F#5 G5 F#5 D5 F#5 D5 F#5
  AE: "~ [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 ~@7 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@2", // D5 F#5 D5 F#5 D5 F#5 D5 F#5 …
  AF: "~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3, ~ [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@24", // F#5 G5 F#5 D5 F#5 D5 F#5 D5 …
  AG: "[f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 ~ [f#2,c#3]@2, ~@29 [g2,d3]@2 ~", // F#5 G5 F#5 D5 F#5 D5 F#5 D5 …
  AH: "~@3 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [f#2,c#3]@3 ~@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@2, ~@2 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [f#2,c#3]@2 ~@8", // F#5 G5 F#5 D5 F#5 D5 F#5
  AI: "~ [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@2", // D5 F#5 D5 F#5 D5 F#5 G5 F#5 …
  AJ: "e4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 ~ e4@2 e4@2, ~@27 f#4@2 ~@3",
  AK: "[e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 f#4 f#4@2 f#4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 e4 e4@2 e4@2 ~ [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3, ~@75 e4@2 ~@19]/3", // D5 F#5 D5 F#5 D5 F#5 D5 F#5
  AL: "[f#2,c#3]@2 [g2,d3]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 [d2,a2]@2 [f#2,c#3]@3 ~@5", // F#5 G5 F#5 D5 F#5 D5 F#5 D5 …
})).s("gm_distortion_guitar").gain(0.51)

stack(bass, distortion_guitar)

More by Godsmack