Strudelify
No One Can cover art

1992

No One Can

Marillion

KeyE majorTempo108 bpm
0:00/0:00
// No One Can — Marillion
// 108 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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 · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~ A@7 B C@16 D@6 E@3 F C@48 G H@4 I@2 J K D@5 E@3 F C@32 ~@2>".pickRestart({
  A: "e4 ~ b3 ~@3 e4 ~ e4 ~ e4!2 b3 ~ e4 ~", B: "e4 ~ b3 ~@3 e4 ~ d#4 ~ b3!2 f#4 ~ c#4 ~",
  C: "e4 ~ b3 ~ e4 ~ e4!2 b3 ~ e4 ~ e4 ~ b3 ~", D: "e4 ~ b3 ~@3 e4 ~ e4 ~ b3 ~@3 e4 ~",
  E: "f#4 ~ b3 ~@3 f#4 ~ f#4 ~ c#4 ~ b3 ~ f#4 ~", F: "f#4 ~ b3 ~@3 f#4 ~ f#4 ~ c#4 ~ b3 ~ c#4 ~", G: "e5@6 e5 b4",
  H: "[c5@2 b4@2 g4@2 a4@6 b4@2 g4@10 g5@2 e5@2 g5@2 a5@6 g5@2 c5@4 g4@2 d5@2 c5@9 ~ c4@2 e4@2 a4@2 g4@2]/4",
  I: "[a4 c5 b4 g4@2 g4 a4 g4@3 d4 e4 g4@2 b4 c5]/2", J: "e5@2 a4@2 a4@3 a4 c5@2 b4@2 c5@2 e5 d5",
  K: "e4 ~ b3 ~@3 e4 ~ e4 ~ b3 ~@3 e4 ~, c#5@3 ~@5",
})).s("gm_electric_guitar_muted").gain(0.32)

// chords · electric bass pick · "PICK BASS"
const electric_bass_pick = note(`<
  ~ A@7 B@3 ~@5 C@3 ~@6 D E F G H I J@4 K ~@22 C@3 ~@22 L M@4 N@2 O P E F G H I J@4 Q ~@33
>`.pickRestart({
  A: "[~@7 e4@3 ~@5 e4@3 ~@5 e4@3 ~@5 e4@3 ~@5 e4@3 ~@5 e4@3 ~@5 e4, ~@2 e4@3 e4@2 ~@3 e4@3 e4@2 ~@3 e4@3 e4@2 ~@3 e4@3 e4@2 ~@3 e4@3 e4@2 ~@3 e4@3 e4@2 ~@3 e4@3 e4@2 ~, ~@2 f#4@3 ~ f#4@3 ~ f#4@3 ~ f#4@3 ~ f#4@3 ~ f#4@3 ~ f#4@2, ~@3 b3@2 ~@2 b3@2 ~@2 b3@2 ~@2 b3@2 ~@2 b3@2 ~@2 b3@2 ~@2 b3]/7",
  B: "[~ e4@2, ~ e4@3 ~@8, ~ d#4@4 ~, ~@3 f#4@8 ~]/3",
  C: "[~@7 e4@16 ~, ~@3 b3@16 ~@5, ~ a4@4 ~, ~@5 g#4@16 ~@3, ~@3 f#4@8 ~]/3", D: "[a3,c#4,e4,f#4]@3 ~",
  E: "[b3,c#4,e4,g#4]@3 ~", F: "~ e4, [b3,d#4,f#4]@13 ~@3", G: "~@6 [f#3,a3,c#4,e4]@9 ~", H: "[a3,c#4,e4,f#4]@13 ~@3",
  I: "[b3,c#4,e4,g#4]@15 ~", // C#m7
  J: "[~@31 c#4, ~ b3@2 b3@4 b3@4 b3@4 b3, ~ f#4@2 f#4@2 f#4@2 f#4, ~@5 c#4@5 c#4@3 c#4@5 c#4@3 c#4@5 c#4@3 c#4@2 ~]/4",
  K: "e4", L: "e5@6 e5 b4",
  M: "[c5@2 b4@2 g4@2 a4@6 b4@2 g4@10 g5@2 e5@2 g5@2 a5@6 g5@2 c5@4 g4@2 d5@2 c5@9 ~ c4@2 e4@2 a4@2 g4@2]/4",
  N: "[a4 c5 b4 g4@2 g4 a4 g4@3 d4 e4 g4@2 b4 c5]/2", O: "e5@2 a4@2 a4@3 a4 c5@2 b4@2 c5@2 e5 d5", P: "f#4@11 ~@5",
  Q: "e4 ~",
})).s("gm_electric_bass_pick").gain(0.12)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B C D A B C E A B C F G B H I A J K L M B N O P Q R N P Q S D B T A L C U A L C V A L C U A L C V A J K L M B N I
  A J K L M B N I A L C U A L C W A L C U A L C V X Y Z AA X Y Z AB P Q R N P Q S D B T A L C U A L C AC A L C U A L C V
  A L C U A L C W A L C U A L C W ~@2
>`.pickRestart({
  A: "e2!8", B: "g#1!8", C: "b1!7 e1", D: "a1!8", E: "a1!7 c#2", F: "a1!7 b1", G: "e2!6 d#2 b1", H: "f#1!8",
  I: "b1!5 g#1 b1 c#2", J: "d#2!8", K: "c#2!7 b1", L: "g#1!7 e1", M: "a1!7 e1", N: "f#1!5 c#2 f#2 c#2",
  O: "b1!5 c#2 e2 f#2", P: "f#1!7 b1", Q: "c#2!8", R: "b1!6 a1 g#1", S: "b1!8", T: "f#1!5 g#1 b1 c#2",
  U: "a1!5 e1 a1 b1", V: "a1!4 a2 e2 a1 b1", W: "b1!5 e2 a1 b1", X: "c2!7 d2", Y: "e1!7 f#1", Z: "g1!7 c1",
  AA: "f1!5 e1 f1 e1", AB: "f1!5 c1 f1 f0", AC: "e1 g#1 b1 c#2 e2 f#2 b1 c#2",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  ~ A@2 B C A@2 B C D@2 B C D@2 E F G@4 C H C F E H B C E I B E J K D@2 L M D@2 L M D@2 L M D@2 L M G@4 C H E F N@4 C H
  E F D@2 L M D@2 L M D@2 L M D@2 L M O@2 P Q O@2 P R E H B C E I B E J K D@2 L M D@2 L M D@2 L M D@2 L M D@2 L M D@2 L
  M D@2 L M D@2 L M D@2
>`.pickRestart({
  A: "[b3,e4,g#4]/2", B: "[b3,d#4,f#4]", C: "[c#4,e4,a4]", D: "[e4,g#4,b4]/2", E: "[c#4,f#4,a4]", F: "[e4,f#4,b4]",
  G: "[e4,g#4,b4]/4", H: "[b3,e4,g#4]", I: "[e4,g#4,b4]", J: "[b3,c#4,g#4]", K: "[b3,c#4,f#4]", L: "[d#4,f#4,b4]",
  M: "[c#4,e4,b4]", N: "[[e4,g#4,b4]@63 ~]/4", O: "[c4,e4,g4]/2", P: "[b3,d4,g4]", Q: "[c4,f4,a4]", R: "[c4,e4,f4,a4]",
})).s("gm_pad_warm").gain(0.28)

// other · piano · "A.PIANO 3"
const piano = note("<~@35 A@16 ~@16 A@16 B C@2 D C E C F ~@10 A@16 G@4 A@8 H@5 ~>".pickRestart({
  A: "[~@2 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@4 [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@2 [a4,a5] ~ [g#4,g#5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@4 [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@2 [a4,a5] ~ [g#4,g#5]@4 [f#4,f#5]@2]/8", // B F# B F# B F# B A …
  B: "~@2 [g4,g5]@3 ~ [g4,g5]@2 ~@2 [g4,g5]@3 ~ [c4,c5]@2", C: "~@2 [g4,g5]@3 ~ [g4,g5]@3 ~ [g4,g5]@3 ~ [c4,c5]@2",
  D: "~@2 [g4,g5]@3 ~ [g4,g5]@2 [f4,f5]@2 [e4,e5]@3 ~ [c4,c5]@2", E: "~@2 [g4,g5]@3 ~ [g4,g5]@3 ~ [g4,g5]@4 [c4,c5]@2",
  F: "~@2 [g4,g5]@3 ~ [g4,g5]@2 [f4,f5]@2 [e4,e5]@3 ~@3", // G F E
  G: "[~@2 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@4 [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@2 [a4,a5] ~ [g#4,g#5]@4 f#4@2, ~@62 f#5 ~]/4", // B F# B F# B F# B A …
  H: "[~@2 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@3 ~ [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@4 [b4,b5]@4 [f#4,f#5]@4 [b4,b5]@3 ~ [b4,b5]@2 [a4,a5] ~ [g#4,g#5]@4 [f#4,f#5]@4 ~@14]/5", // B F# B F# B F# B A …
})).s("gm_piano").gain(0.4)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@35 A B C@2 A B D E A B C@2 A B D E F@2 ~@14 A B C@2 A B D E A B C@2 A B D E G A H I G A H I ~@10 A B J@2 A B D E A B
  J@2 A B D E A B J@2 A B D E A B J@2 A B D E ~@2
>`.pickRestart({
  A: "[e2,e3]", B: "[g#1,g#2]", C: "[~@5 e3 d#3@5 [a2,a3]@5, [b1,b2]@11 ~@5]/2", D: "[f#2,f#3]", E: "[a2,a3]",
  F: "[[e2,e3]@25 ~@7]/2", G: "[c2,c3]", H: "[g2,g3]", I: "[f2,f3]", J: "[~@5 e3 d#3@4 ~ [a2,a3]@5, [b1,b2]@5 ~@3]/2",
})).s("gm_distortion_guitar").gain(0.45)

// chords · synth brass 2 · "SYNBRASS 2"
const synth_brass_2 = note(`<
  ~@69 A B@2 A C D@2 A E D@2 A@2 F ~@20 A B@2 A C D@2 A E D@2 A@2 G@2 A@2 B@2 A C D@2 A@2 B@2 A C H@2 ~
>`.pickRestart({
  A: "d#4 ~ d#4 ~ d#4 ~ d#4@3 ~ d#4@5 ~, b3@15 ~",
  B: "[e4 ~ e4 ~ e4 ~ e4@3 ~ e4 ~ e4 ~@9 e4@3 ~ e4@5 ~, b3 b3, ~@14 e4@7 ~@11]/2",
  C: "d#4 ~ d#4 ~ d#4 ~ d#4@3 ~ d#4@5 ~, b3",
  D: "[e4 ~ e4 ~ e4 ~ e4@3 ~ e4 ~ e4 ~@9 e4@3 ~ e4@5 ~, b3@14 e4@7 ~@11, ~@16 b3@15 ~]/2",
  E: "d#4 ~ d#4 ~ d#4 ~ d#4@3 ~ d#4@4 ~@2, b3@15 ~", F: "e4 ~ e4 ~ e4 ~ e4@3 ~ e4 ~ e4@3 ~, b3@15 ~",
  G: "[e4 ~ e4 ~ e4 ~ e4@3 ~ e4 ~ e4 ~@9 e4@3 ~ e4@4 ~@2, b3@14 e4@7 ~@11, ~@16 b3@15 ~]/2",
  H: "[e4 ~ e4 ~ e4 ~ e4@3 ~ e4 ~ e4 ~ e4@7 ~@11, b3@15 ~@17]/2",
})).s("gm_synth_brass_2").gain(0.5)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@33 B C@3 A C@3 A C@3 A C@3 A@16 B C@3 A C@3 A C@3 A C@3 A C@3 A C@2 A D A@9 B C@3 A C@3 A C@3 A C@3 A C@3 A C@3 A
  C@3 A C@3 A ~@2
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@3 x!2 ~@2", C: "x ~@2 x!2 ~@2 x", D: "x!2",
})).gain(0.56)

// drums · rim
const rim = s("rim").struct("<~ [~ x ~ x]!34 ~@16 [~ x ~ x]!16 ~@8 [~@7 x ~@8] ~@59>").gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~ A@7 B A@7 B A@3 B A@3 B A@9 C ~@16 A@7 B A D ~@74>".pickRestart({
  A: "x!8", B: "x!7 ~", C: "x!6 ~@2", D: "x",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<A ~@7 A ~@7 A ~@3 A ~@3 A ~@13 B ~@7 B ~@11 A ~@76>".pickRestart({
  A: "~@7 x", B: "~@15 x",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct("<~@35 [x!8]!15 [x!6 ~@2] ~@84>").gain(0.56)

// drums · triangle
const triangle = s("triangles:30").struct("<~@97 [~ x] ~@37>").gain(1.39)

// drums · triangle
const triangle_2 = s("triangles:35").struct("<~@97 [~@7 x ~@8] ~@37>").gain(1.39)

// drums · shaker
const shaker = s("sh").struct("<~@75 [~ x] ~@59>").gain(0.16)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~@75 [~ x] ~@59>").gain(0.69)

// drums · bell tree
const bell_tree = s("marktrees:0").struct("<~@75 [~ x] ~@59>").gain(0.95)

stack(
  electric_guitar_muted, electric_bass_pick, bass, pad_warm, piano, distortion_guitar, synth_brass_2, kick, rim, hihat,
  open_hat, ride, triangle, triangle_2, shaker, jingle_bells, bell_tree
)

More by Marillion