Strudelify
Lead a Normal Life cover art

Peter Gabriel 3: Melt

Lead a Normal Life

Peter Gabriel

KeyG majorTempo90 bpm
0:00/0:00
// Lead a Normal Life — Peter Gabriel
// 90 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 98 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · piano · "Piano 3"
const piano = note(`<
  ~@2 A B C D A B E F@2 B E G@2 B H@2 ~@6 A B C D A B E F@2 B E I@2 ~@7 A B C D A B E F@2 B E G@2 B H@2 ~@6 A B C D A B
  E F@2 B E G@2 B H@2 A B C D A B E F@2 B E G@2 B H@2
>`.pickRestart({
  A: "~@2 c5 g5", B: "d6@8 a5@4 b5@3 ~", C: "b5@2 f#5 a5", D: "d5", E: "b5@7 ~ f#5@4 a5@4", F: "[d5@5 ~ c5 g5]/2",
  G: "[d5@23 ~ c5@4 g5@4]/2", H: "[b5@6 ~@2 f#5@4 ~@4 d5@15 ~, ~@12 a5@19 ~]/2", I: "[d5@23 ~@9]/2",
})).s("gm_piano").gain(0.3)

// other · rock organ · "Brightness"
const rock_organ = note("<~@18 [a4@3 g4] c#4 [a4@3 g4] c4 [a4@3 g4] f#4 ~@74>").s("gm_rock_organ").gain(0.4)

// chords · piano · "Piano 2"
const piano_2 = note("<~@18 A@2 B C D E ~@12 F@2 G@2 H@4 ~@18 B C D E ~@32>".pickRestart({
  A: "[[e4,a4]@3 ~ c#4@4, ~@3 g4@4 ~]/2", B: "a4@3 g4, d#4", C: "[c4,f4]", D: "[f4,a4]@3 g4", E: "[b3,f#4]",
  F: "[f#4@11 ~@13 d4@7 ~, d4@5 ~@3, a3@14 ~@2 g#3@15 ~, ~@12 f#4@19 ~]/2",
  G: "[~ f#4@11 ~@11 d4 d4@7 ~, ~ a3@30 ~, ~ d4@18 ~@13, ~@6 a4@9 ~, ~@16 f#4@15 ~]/2",
  H: "[c4@10 ~@15 d4@3 e4@4 ~@16 g4@16, g3@15 ~@2 g3@29 ~@18, e4@13 ~ e4@9 ~@9 g2@32, ~@10 c4@12 ~ c4@10 ~@31]/4",
})).s("gm_piano").gain(0.36)

// chords · piano · "Piano 2" · soft notes
const piano_soft = note("<~@37 A ~@4 B@2 ~@54>".pickRestart({
  A: "~@6 d4 ~@9", B: "[~@24 b4@3 ~ d5@3 ~, ~@6 b3@7 ~@3, ~@7 d4@9]/2",
})).s("gm_piano").gain(0.2)

// other · pad halo · "Halo Pad"
const pad_halo = note("<~@18 A B C D A E ~@36 A B C D A E ~@32>".pickRestart({
  A: "a4@11 g4@4 ~", B: "c#4", C: "a4@11 g4@5", D: "c4", E: "f#4",
})).s("gm_pad_halo").gain(0.41)

// bass · synth bass 2
const bass = note("<~@18 A B C D A E F@2 ~@36 G D A E H@2 ~@30>".pickRestart({
  A: "a2@11 g2@4 ~", B: "c#2", C: "a2@11 g2@5", D: "c2", E: "f#2", F: "[g2@21 ~@11, g1@9 ~@7]/2", G: "~@11 g2@5",
  H: "[g1@7 ~, g2@21 ~@11]/2",
})).s("gm_synth_bass_2").gain(0.41)

// other · taiko drum · "Overdrive Gt"
const taiko_drum = note("<~@18 [~@2 g2 ~ g2@4]!5 [~@4 g2@2 ~@2 g2@7 ~] ~@74>").s("gm_taiko_drum").gain(0.41)

// other · pad bowed · "Overdrive Gt"
const pad_bowed = note("<~@27 A@2 B@3 C@3 D ~@62>".pickRestart({
  A: "[~ g3@3]/2", B: "[g2@2 d3]/3", C: "[g2@11 ~@5]/3", D: "g3@3 ~",
})).s("gm_pad_bowed").gain(0.26).pan(0.6)

// other · distortion guitar · "Overdrive Gt"
const distortion_guitar = note("<~@60 A B C@2 D ~@33>".pickRestart({
  A: "a3@11 g3@4 ~", B: "c#3", C: "[a3@12 g3@3 c3@17]/2", D: "a3@3 g3",
})).s("gm_distortion_guitar").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  ~@70
  [x ~@2 x ~@4 x ~ x ~ x ~@3]
  [~@4 x!3 ~]!22
  [~@9 x ~ x ~ x ~@2]!2
  [~@9 x!2 ~ x ~@3]
  [~@4 x!3 ~]!2
>`).gain(0.1)

// drums · snare
const snare = s("sd").struct(`<
  ~@67
  [x ~@2 x ~@2 x ~ x ~ x ~ x ~@3]!6
  [x ~@2 x ~@2 x ~ x ~@2 x ~@4]
  [x ~@2 x ~@2 x ~ x ~ x ~ x ~@3]!19
  [x ~@2 x ~@2 x ~@2 x ~ x ~ x ~@2]
  [~ x ~@2 x ~@2 x ~ x ~ x ~ x ~@2]
  [~ x ~@2 x ~ x ~@2 x!2 ~ x ~@3]
  [x ~@2 x ~@2 x ~ x ~ x ~ x ~@3]!2
>`).gain(0.07)

// drums · low tom
const low_tom = s("lt").struct("<~@18 A@6 ~@36 A@5 B ~ C@6 D C@19 E F G C@2>".pickRestart({
  A: "~ x!2 ~", B: "~ x ~@2", C: "x ~@2 x ~@2 x ~ x ~ x ~ x ~@3", D: "x ~@2 x ~@2 x ~ x ~@2 x ~@4",
  E: "x ~@2 x ~@2 x ~@2 x ~ x ~ x ~@2", F: "~ x ~@2 x ~@2 x ~ x ~ x ~ x ~@2", G: "~ x ~@2 x ~ x ~@2 x!2 ~ x ~@3",
})).gain(0.1)

stack(
  piano, rock_organ, piano_2, piano_soft, pad_halo, bass, taiko_drum, pad_bowed, distortion_guitar, kick, snare, low_tom
)

More by Peter Gabriel