Strudelify
Some People cover art

Rise Up

Some People

Cliff Richard

KeyD majorTempo111 bpm
0:00/0:00
// Some People — Richard Cliff
// 111 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(111/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 · fretless bass · "FRETLESS"
const bass = note(`<
  ~@2 A@2 B@2 A C D@2 A@2 B@2 A C D@2 E@2 F G H A B@2 I J K@2 L M K@2 M@2 K@2 M@2 K N O@2 P@2 Q@2 R K M@2 S@2 A@2 B@2
  A@2 B@2 P@2 Q@2 R K M@2 S@2 A@2 B@2 A@2 B@2 P@2 Q@2 P@2 Q@2 P@2 Q@2 A@2 B@2 A@2 B@2 T
>`.pickRestart({
  A: "d1 ~@5 d1 ~@9", B: "g1 ~@5 g1 ~@9", C: "b1 ~@5 b1 ~@9", D: "e1 ~@5 e1 ~@9", E: "f1 ~@5 f1 ~@9",
  F: "a#1 ~@5 a#1@2 ~@8", G: "a#1 ~@5 a#1 ~@9", H: "a1 ~@5 a1@2 ~@8", I: "c2 ~@5 c2@2 ~@8", J: "c2 ~@5 c2 ~@9",
  K: "d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~", L: "[g1,a1] ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  M: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", N: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
  O: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", P: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
  Q: "a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~", R: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  S: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", T: "d1@3 ~",
})).s("gm_fretless_bass").gain(0.58)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@28 A@2 B@2 A@2 C@2 ~@8 D@2 E@2 F G H@2 I@2 ~@8 D@2 J@2 F G B@2 K@2 ~@8 D@2 J@2 D@2 E@2 D@2 L ~@10
>`.pickRestart({
  A: "[[d2,a2]@31 ~]/2", B: "[[g2,d3]@31 ~]/2", C: "[g2,d3]/2", D: "[[f2,c3]@31 ~]/2", E: "[[a#2,f3]@15 ~]/2",
  F: "[a2,e3]@15 ~", G: "[d2,a2]@15 ~", H: "[[g2,d3]@15 ~]/2", I: "[[c3,g3]@31 ~]/2", J: "[[a#2,f3]@31 ~]/2",
  K: "[c3,g3]/2", L: "[a#2,f3] ~@7",
})).s("gm_distortion_guitar").gain(0.1).pan(0.1)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~@28 A@2 B@2 A@2 B@2 A@2 B@2 C@2 D@2 E@2 F@2 G H I@2 J@2 ~@8 E@2 F@2 G K L@2 J@2 ~@8 E@2 M@2 E@2 M@2 E@2 N@2 ~@9
>`.pickRestart({
  A: "[[f#3,a3,d4]@15 ~]/2", B: "[[g3,b3,d4,f#4]@31 ~]/2", C: "[[f#3,a3]@15 ~ [f#3,b3]@14 ~@2, d4@15 ~]/2",
  D: "[[g3,b3,e4]@31 ~]/2", E: "[[a3,c4,f4]@31 ~]/2", F: "[[a3,a#3,d4,f4]@31 ~]/2", G: "[a3,c4,e4]@15 ~",
  H: "[a3,d4], f4@7 ~", I: "[[a#3,g4]@15 ~, d4 ~@31]/2", J: "[[g3,c4,e4]@31 ~]/2", K: "[a3,d4,f4]@15 ~",
  L: "[[a#3,d4,g4]@31 ~]/2", M: "[[a#3,d4,f4]@31 ~]/2", N: "[[a#3,d4,f4]@15 ~]/2",
})).s("gm_synth_strings_1").gain(0.09).pan(0.9)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1_2 = note(`<
  ~@2 A@2 B@2 C D E@2 F@2 G@2 C H E@2 I@2 J@2 K L M@2 N@2 A@2 O@2 A@2 B@2 A@2 O@2 P@2 E@2 I@2 J@2 K Q R@2 N@2 A@2 O@2
  A@2 O@2 I@2 J@2 K L M@2 N@2 A@2 O@2 A@2 O@2 I@2 S@2 I@2 S@2 I@2 T@2 U@2 O@2 U@2 B@2 V
>`.pickRestart({
  A: "[[f#3,a3,d4]@15 ~]/2", B: "[[g3,b3,d4,f#4]@15 ~]/2", C: "[f#3,a3,d4]@15 ~", D: "[f#3,b3,d4]@7 ~",
  E: "[[g3,b3,e4]@31 ~]/2", F: "[[f#3,a3,d4]@29 ~@3]/2", G: "[[g3,b3,f#4], d4@15 ~]/2", H: "[f#3,b3,d4]@15 ~",
  I: "[[a3,c4,f4]@31 ~]/2", J: "[[a3,a#3,d4,f4]@31 ~]/2", K: "[a3,c4,e4]@15 ~", L: "[a3,d4,f4]@15 ~",
  M: "[[a#3,d4,g4]@31 ~]/2", N: "[[g3,c4,e4]@31 ~]/2", O: "[[g3,b3,d4,f#4]@31 ~]/2",
  P: "[[f#3,a3]@15 ~ [f#3,b3]@14 ~@2, d4@15 ~]/2", Q: "[a3,d4], f4@7 ~", R: "[[a#3,g4]@15 ~, d4 ~@31]/2",
  S: "[[a#3,d4,f4]@31 ~]/2", T: "[[a#3,d4,f4]@15 ~]/2", U: "[[f#3,a3,d4]@31 ~]/2", V: "[f#3,a3,d4]@3 ~",
})).s("gm_synth_strings_1").gain(0.16)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1_3 = note(`<
  ~@2 A@6 B@2 C@4 D@4 E@4 F G H@4 I@8 J K L@2 M@3 N O P Q R S T@2 U V@2 W@8 O X Y Z AA AB@2 AC AD@2 AE@2 AF@2 AE@2 AG@2
  AH@2 AI@2 AJ@4 AK@2 AL@2 AM@8 AN
>`.pickRestart({
  A: "[[f#4,f#5]@37 ~ [e4,e5]@25 ~ f#4@32, ~@63 f#5@32 ~]/6", B: "[g4,g5]/2", C: "[[f#4,f#5]@38 [e4,e5]@25 ~]/4",
  D: "[[f#4,f#5]@31 [g4,g5]@32 ~]/4", E: "[[a4,a5]@63 ~]/4", F: "[g4,g5]", G: "[a4,a5]",
  H: "[[a#4,a#5]@31 [c5,c6]@32 ~]/4", I: "[[a4,a5]@31 [b4,b5]@32 [a4,a5]@31 ~ [b4,b5]@32 ~]/8",
  J: "~ [f#4,f#5]@2 [a4,a5]", K: "[g4,g5]@4 [f#4,f#5]@4 [e4,e5]@4 [d4,d5]@3 ~",
  L: "[[f#4,f#5]@3 [g4,g5]@2 ~ [e4,e5]@9 [f#4,f#5]@4 ~ [e4,e5]@4 [d4,d5]@2 [e4,e5]@2 [f#4,f#5]@3 ~]/2", // F# G E F# E D E F#
  M: "[[f#4,f#5]@11 ~ [d5,d6]@3 [c#5,c#6]@4 ~ [d5,d6]@3 [c#5,c#6]@4 ~ [a4,a5]@3 [g4,g5]@12 ~ [f#4,f#5]@4]/3", // F# D C# D C# A G F#
  N: "[e4,e5]@4 [f#4,f#5]@4 [g4,g5]@4 [a4,a5]@3 ~", O: "[a4,a5]@3 [c5,c6]",
  P: "[a#4,a#5]@3 [a4,a5]@4 [g4,g5]@4 ~ [f4,f5]@4", Q: "[a4,a5]@4 [a#4,a#5]@2 [g4,g5]@9 ~",
  R: "[a4,a5]@4 [g4,g5]@4 [f4,f5]@2 [g4,g5]@2 [a4,a5]@3 ~", S: "[g4,g5]@3 [f5,f6]",
  T: "[[e5,e6]@3 ~ f5@3 [e5,e6]@4 [c5,c6]@4 ~ a#4@12 [a4,a5]@4, ~@3 f6@4 ~@8 a#5@12 ~@5]/2", // E C A
  U: "[g4,g5] [a4,a5] [g4,g5] [f4,f5]", // G A G F
  V: "[[g4,g5]@4 [a4,a5]@2 [g4,g5]@13 ~ [a4,a5]@3 [g4,g5]@2 [f4,f5]@2 [e4,e5]@4 ~]/2", // G A G A G F E
  W: "[[f#4,f#5]@23 [a4,a5]@4 [b4,b5]@4 [d4,d5]@32 [f#4,f#5]@24 [a4,a5]@4 [b4,b5]@4 [d4,d5]@32 ~]/8", // F# A B D F# A B D
  X: "[a#4,a#5]@3 [a4,a5]@4 ~ [g4,g5]@4 [f4,f5]@3 ~", Y: "[a4,a5]@3 [a#4,a#5]@2 ~ [g4,g5]@10",
  Z: "[a4,a5]@3 [g4,g5]@4 ~ [f4,f5]@2 [g4,g5]@2 [a4,a5]@4", AA: "[g4,g5]@11 ~ [f5,f6]@4",
  AB: "[[e5,e6]@4 [f5,f6]@4 [e5,e6]@4 [c5,c6]@3 [a#4,a#5]@12 ~ [a4,a5]@4]/2", // E F E C A# A
  AC: "[g4,g5]@3 [a4,a5]@4 [g4,g5]@4 [f4,f5]@4 ~", // G A G F
  AD: "[[g4,g5]@2 [a4,a5] [g4,g5]@7 [a4,a5]@2 [g4,g5] [f4,f5] [e4,e5]@2]/2", AE: "[[f#4,f#5]@6 [a4,a5] [b4,b5]]/2",
  AF: "[[d4,d5]@31 ~]/2", AG: "[d4,d5]/2", AH: "[[a4,a5]@19 ~ [c5,c6]@4 [a#4,a#5]@4 [a4,a5]@4]/2",
  AI: "[[f4,f5]@31 ~]/2", AJ: "[[a4,a5]@19 ~ [c5,c6]@4 [a#4,a#5]@4 [a4,a5]@3 ~ f5@32, ~@31 f4@32 ~]/4",
  AK: "[[a4,a5]@5 [c5,c6] [a#4,a#5] [a4,a5]]/2", AL: "[f4,f5]/2",
  AM: "[[f#4,f#5]@23 ~ [a4,a5]@3 [b4,b5]@4 [d4,d5]@31 ~@2 f#4@23 [a4,a5]@4 [b4,b5]@4 [d4,d5]@32 ~, ~@63 f#5@24 ~@41]/8", // F# A B D A B D
  AN: "[f#4,f#5]@13 ~@3", // F#
})).s("gm_synth_strings_1").gain(0.12).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@71 A@7 B@2 ~@11 C@5 D@4 E>".pickRestart({
  A: "[~@16 [f#3,a3,d4]@30 ~@2 [g3,b3,g4]@30 ~@2 [f#3,a3,d4]@29 ~@2 d3, ~@15 d3@30 ~@2 d3@30 ~@2 d3@30 ~@3]/7", // D G D
  B: "[[g3,b3,g4]@24 [d3,g3,b3,g4] [d3,g3,b3,g4]@2 [d3,g3,b3,g4] [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@2]/2", // G
  C: "[~@16 [f#3,a3,d4]@30 ~@2 [g3,b3,g4]@30 ~ d3, ~@15 d3@30 ~@2 d3@30 ~@3]/5", // D G
  D: "[[f#3,a3,d4]@29 ~@3 [g3,b3,g4]@31 d3, ~@31 d3@32 ~]/4", E: "[f#3,a3,d4] ~@15",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  A B C@26 D E D E D E D E D E D E D E D E D E D E D E D E D E C@8 D E D E D E D E D E C@8 D E D E D E D E D E D E C@8 F
>`.pickRestart({
  A: "x ~@2 x ~@3 x", B: "x ~@2 x ~@4", C: "x ~ x ~ x ~ x!2", D: "x ~@2 x!2 ~@3", E: "x ~@2 x ~@2 x ~ x ~@7", F: "x",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<[x!4]!28 ~@26 [x!4]!8 ~@10 [x!4]!8 ~@12 [x!4]!8 x>").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  A@28 B C B C B C B C B C B C B C B C B C B C B C B C B C A@8 B C B C B C B C B C A@8 B C B C B C B C B C B C A@8 ~
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x ~ x!2",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D E D E D E D E D E D E D E D E D E D E D E D E F A B A B A
  B A B C D E D E D E D E F A B A B A B A B C D E D E D E D E D E D A B A B A B A B G
>`.pickRestart({
  A: "x!5 ~ x ~ x ~ x ~ x ~ x ~", B: "x!8", C: "~@2 x!3 ~ x!3 ~ x!3 ~ x!2", D: "x ~ x!3 ~ x!3 ~ x!3 ~@3",
  E: "x!5 ~ x!3 ~ x!3 ~ x!2", F: "x ~ x!3 ~ x!3 ~ x!4 ~@2", G: "x",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct("<~@28 x ~@33 x ~@17 x ~@20>").gain(0.25)

stack(
  bass, distortion_guitar, synth_strings_1, synth_strings_1_2, synth_strings_1_3, acoustic_guitar_steel, kick, rim,
  snare, hihat, crash
)

More by Cliff Richard