Strudelify

Going Under

Marillion

KeyB minorTempo60 bpm
0:00/0:00
// Going Under — Marillion
// 60 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "PICK BASS" electric bass pick (copy of ch 1 "PICK BASS" electric bass pick, 0.24 beats late)
// note: Full arrangement: all 46 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/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 bass pick · "PICK BASS"
const electric_bass_pick = note("<A@4 B@2 A@4 B@2 A@4 B@2 A@4 B@2 C@2 D@2 A@4 B@2 E@8 F@4>".pickRestart({
  A: "[~@62 f#4 ~, e5@2 f#4@3 c#4@4 a4@4 a4@3 e5@2 f#4@3 c#4@4 a4@4 a4@3 e5@2 f#4@3 c#4@4 a4@4 a4@3 e5@2 f#4@3 c#4@4 a4@4 a4@2 ~, ~ c#4@3 e5@2 [f#4,e5]@2 f#4@2 f#4@2 f#4@2 f#4@3 c#4@3 e5@2 [f#4,e5]@2 f#4@2 f#4@2 f#4@2 f#4@3 c#4@3 e5@2 [f#4,e5]@2 f#4@2 f#4@2 f#4@2 f#4@3 c#4@3 e5@2 [f#4,e5]@2 f#4@2 f#4@2 f#4@2 ~@2, ~@2 e5 b2@4 b2@4 b2@4 b2@3 e5 b2@4 b2@4 b2@4 b2@3 e5 b2@4 b2@4 b2@4 b2@3 e5 b2@4 b2@4 b2@4 ~, ~@3 d2@16 d2@16 d2@16 d2@12 ~]/4", // F#7
  B: "[~@15 b3, a4 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 ~, ~ d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@3, ~ a4!3 f#4@2 f#4@2 a4!4 f#4@2 f#4@2, ~@3 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 ~]/2",
  C: "[~@30 f#4 ~, e5@2 f#4@3 c#4@4 a4@4 a4@3 f#5@16, ~ c#4@3 e5@2 [f#4,e5]@2 f#4@2 f#4@2 f#4@2 f#4@2 e5 c#4@2 b2@3 [f#4,e5] b2@3 f#4 b2@4 ~, ~@2 e5 b2@4 b2@4 b2@4 b2@3 f#4@2 e5 c#4@3 f#4 a4@3 f#4 a4@2 ~, ~@3 d2@15 e5 d2@12 ~]/2", // F#7
  D: "[~@15 b3, a5@15 g2@3 a4 g2@3 a4 g2@3 b3@3 d4@3, a4@2 b3@3 d4@3 f#4@3 g2@3 b3@3 d4@3 a4@2 b3@3 d4@3 f#4@4, ~ d4@3 a4@2 b3@3 d4@3 f#4@4 f#5@16, ~@2 a4 g2@3 a4 g2@3 b3@3 d4@3 a4@2 b3@3 d4@3 f#4@3 g2@4 ~]/2",
  E: "[a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 e4, ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3, ~@3 e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@3]/8",
  F: "[a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 ~ a3 g#3 ~@2 a3 ~ f#4 e4@3 ~@14, ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@19, ~@3 e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@2 f#3@4 ~ e4@3 ~ e4@2 ~@2 e4@3 ~ e4@2 g#3@3 ~@2 f#3@3 g#3@3 ~@16]/4",
})).s("gm_electric_bass_pick").gain(0.32).pan(0.9)

// bass · synth brass 2 · "SYNBRASS 2"
const bass = note("<~@2 A@2 B C A@4 B C A@4 D E A@4 F G A H F C A@3 H F C I J I K@5 ~@4>".pickRestart({
  A: "b1", B: "g1", C: "e1", D: "g1@7 f#1", E: "e1@7 f#1", F: "g1@3 f#1", G: "e1@5 f#1 g1 a1", H: "b1@3 a1", I: "f#1",
  J: "f#1@3 c#1", K: "f#1/5",
})).s("gm_electric_bass_finger").gain(0.8)

// other · lead 3 calliope · "GALLIOPE"
const lead_3_calliope = note("<~@6 A B C ~@23 D E F G H I@4 ~@5>".pickRestart({
  A: "~@12 b3 [d4,e4]!2 [e4,f#4]", B: "b4@6 c#5 a4@9, f#4 ~@15", C: "e4@3 ~", D: "a4 f#4", E: "a4 b4", F: "c#5",
  G: "a4", H: "e4", I: "a4/4",
})).s("gm_lead_3_calliope").gain(0.29).pan(0.7)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<~ A B C@4 D E F@2 G@2 A H I@3 J K L M N@3 ~@4 D O@2 P Q R S ~@10>".pickRestart({
  A: "~@13 f#4!3", B: "e5!3 e5@2 e5!3 f#4!2 g4 f#4@3 ~ f#4",
  C: "[e5!3 e5@4 f#5@3 d5 e5@3 b4 d5@2 e5@5 f#5 e5@2 d5@3 ~@3 e5@2 b4!2 b4@2 d5!2 c#5@4 d5@2 c#5 a4 b4@2 c#5@5 d5 c#5@2 a4@4 ~@3]/4",
  D: "~@14 f#4!2", E: "e5!2 e5@2 ~ e5!2 f#4@2 f#4@2 g4 f#4@3 f#4",
  F: "[e5!3 e5@4 f#5@3 d5 e5@2 b4@2 d5@2 e5@5 f#5 e5@2 d5@3 ~@3 d5]/2",
  G: "[e5!2 d5 e5@2 e5@2 f#5@2 d5@2 d5@3 e5 c#5@4 a4@3 b4@2 ~@8]/2", H: "e5!3 e5@2 e5 e5@2 f#4!2 g4 f#4@4 f#4",
  I: "[e5 e5@2 f#5@2 c#5 d5 b4@4 b4!2 d5@2 c#5@4 a4@4 b4@4 a4 b4 d5@2 c#5@2 a4@3 ~@4 d5!2 ~ d5 c#5 d5 ~ d5]/3",
  J: "e5@2 b4 d5 ~ b4@2 ~@9", K: "~@13 f#4 f#4@2", L: "e5!3 e5@2 e5!3 f#4@2 f#4 g4 f#4@3 f#4",
  M: "e5!3 e5@2 e5!2 f#4@2 f#4 g4 a4@2 b4!2 d5",
  N: "[e5 ~@6 b4 d5 e5 ~@3 b4!2 f#5@2 d5@2 b4 d5@2 ~@5 c#5 d5 e5@2 c#5@2 a4@2 b4@2 c#5@2 ~@9]/3",
  O: "[e5!2 e5@3 e5!2 f#4@2 f#4 g4@2 f#4!2 ~ e5@2 e5!2 e5@2 e5!2 f#4@2 f#4 g4 a4@3 b4!2]/2",
  P: "d5@2 b4 d5@2 b4@3 d5@2 ~@6", Q: "d5 b4 ~ b4 b4@2 ~@6 e5!2 ~ e5", R: "f#5@6 a5@8 b5 a5", S: "f#5",
})).s("gm_pad_new_age").gain(0.5)

stack(electric_bass_pick, bass, lead_3_calliope, pad_new_age)

More by Marillion