Strudelify
It's Not Unusual cover art

Along Came Jones

It's Not Unusual

Tom Jones

KeyG majorTempo183 bpm
0:00/0:00
// It's Not Unusual — Tom Jones
// 183 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(183/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 · piano · "A.PIANO 2"
const piano = note(`<
  A@2 B@2 A@2 B@2 A@2 B C A@2 B@2 A@2 B@2 C@2 A@2 B C A@2 B C A@2 B@2 A@2 B@2 C@2 A@2 B@2 C@2 A@4 B@2 C B A D B C A@2
  B@2 A@2 B@2 A@2 B C A@2 B@2 A@2 B@2 C@2 A B A B A B A B E@2
>`.pickRestart({
  A: "[e3,g3,b3,d4]@7 ~ [e3,g3,b3,d4]@7 ~", B: "[d3,f3,a3,c4]@7 ~ [d3,f3,a3,c4]@7 ~",
  C: "[d3,f3,g3,b3]@7 ~ [d3,f3,g3,b3]@7 ~", D: "[d#3,g3,a#3,c#4]@7 ~ [d#3,g3,a#3,c#4]@7 ~", E: "[e3,g3,b3,d4]/2",
})).s("gm_piano").gain(0.4)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@2 B C D@2 E@2 A@2 B F D@2 E@2 G@2 E@2 F@2 A@2 B F A@2 B F D@2 E@2 G@2 E@2 F@2 A@2 E@2 F@2 A H A@2 E@2 F E I J K L
  A@2 E M A@2 E M A@2 B F D@2 E@2 G@2 E@2 F@2 D E G E G E G E N@2
>`.pickRestart({
  A: "c2@2 ~ c2 c2@2 ~@2", B: "d2@4 ~@2 d2@2 d2@3 ~@5", C: "d2@4 ~@2 d2 ~ d2@3 ~@5", D: "c2@3 ~@3 c2@2 c2@3 ~@5",
  E: "d2@3 ~@3 d2@2 d2@3 ~@5", F: "g1@4 ~@2 g1 ~ g1@3 ~@5", G: "e2@3 ~@3 e2@2 e2@3 ~@5", H: "g2@2 ~ g2 g2@2 ~@2",
  I: "e2@5 ~ e2@2 e2@4 ~@4", J: "d#2@5 ~ d#2@2 d#2@5 ~@3", K: "d2@5 ~ d2@2 d2@5 ~@3", L: "g1@5 ~ g1@2 g1@5 ~@3",
  M: "g1@3 ~@3 g1@2 g1@3 ~@5", N: "[c2@15 ~]/2",
})).s("gm_acoustic_bass").gain(0.37)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  A@2 B@2 A@2 B@2 ~@7 C@3 D@2 ~@3 E@3 ~@3 F G ~@2 H@3 D@2 ~@3 I ~ J K@2 ~ L ~ M@4 N O@2 P@5 Q@5 R ~@2 F S ~@2 H@3 D@2
  ~@2 T U V@6 W@2
>`.pickRestart({
  A: "[c3,b4,e5,g5] ~@5 [c3,b4,e5,g5] ~ [b4,e5,g5] ~@7", B: "[d3,c5,f5,g5] ~@5 [d3,c5,f5,g5] ~ [c5,f5,g5] ~@7",
  C: "[~@6 d5 ~ e5@2 f5 ~@3 [e2,b2,e5,g5]@34, ~@2 [d2,a2] ~@9]/3", D: "[[d2,a2,d5,f5]@29 ~@3]/2",
  E: "[~@4 [c4,c5]@3 ~@5 [c4,c5]@15 ~ [g3,g4]@16 ~@4]/3", F: "~@6 g4 ~ b4@2 a#4@2 a4@2 g#4@2, g2", G: "[c2,b3,e4,g4]",
  H: "[~@6 d5 ~ e5@2 f5 ~@3 [e2,b2,e5,g5]@34, ~@8 [d2,a2]@5 ~@35]/3", // Em D5
  I: "[c3,g4,b4,e5] ~@5 c3 [c3,g4,b4,e5] [g4,b4,e5] ~@7, ~@4 c3 ~@3", // Cmaj7 Em
  J: "[d3,a4,c5,f5] ~@6 [d3,a4,c5,f5]!2 ~@7, d2 ~@2 d2!2 ~@3", K: "[[g2,g3,g4]@29 ~@3]/2",
  L: "~@10 g4@2 [a4,a5]@2 [g4,g5] ~, ~@10 g5 ~@5", // A G
  M: "[~@6 g5 ~ a5 ~ c6@2 ~@2 a5@22 ~@2 [f3,f5] ~ [a3,a5]@2 [c4,c6]@2 ~@2 [b3,b5]@5 [g5,a5] f5 [d5,e5] [b4,c5] [g4,a4] [e4,f4] ~@7]/4", // F A C B Gsus2 Dsus2 Cmaj7 Gsus2 …
  N: "d2 ~@2 d2!2 ~@3",
  O: "[~@6 [g4,g5] ~ [g4,g5] ~ g5@2 ~@2 [g4,g5]@6 ~@2 [g4,g5] ~ [g4,g5] ~ [g4,g5] ~@5, ~@10 g4 ~@21]/2", // G
  P: "[~@6 [g4,g5] ~ [g4,g5] ~ [g4,g5] ~@3 [g4,g5]@7 ~ [e4,e5] ~ d5@2 c5@2 ~@2 [b3,b4]@22 ~@4 e5@2 b4 ~@3 [d3,c4,f4,a4]@18, ~@24 d4 ~ c4 ~@53]/5", // G E B Dm7
  Q: "[~@4 f4@3 ~ a4@2 c5@2 ~@2 [c3,e4,b4]@22 ~@4 e5@2 b4@2 ~@2 [d3,c4,f4,a4]@23 ~ g3 ~ b3@2 a#3@2 a3@2 g#3@2]/5", // Cmaj7 Dm7
  R: "g3 ~@15", S: "[c2,g4]", T: "[c3,g4,b4,e5]", U: "[d3,a4,c5,f5]",
  V: "[~@7 [b4,d5,g5] [b4,g5]@2 ~ [b4,d5,g5] ~@12 [a4,c5,f5] ~@2 [a4,c5,f5] ~@4, e3@13 ~@3 d3@13 ~@3, ~@8 d5 ~@6 [a4,c5,f5]@9 ~@8]/2", // G Em G F
  W: "[e3,b4,d5,g5]/2", // Em7
})).s("gm_brass_section").gain(0.4)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A B C@2 B D E@2 A B C F B D E@2 G@2 E@2 F@2 A B C F A B C F B D E@2 G@2 E@2 F@2 A B E@2 F@2 A B A B E@2 F E H I J K A
  B E@2 A B E@2 A B C F B D E@2 G@2 E@2 F@2 D E G E G E G E L ~
>`.pickRestart({
  A: "[c3,g3]@2 ~@2 [b3,e4,g4,b4]@2 ~@2 [c3,g3] ~ [b3,e4,g4,b4] ~@5", // C5 Em C5 Em
  B: "[c3,g3]@2 ~@2 [b3,e4,g4,b4] ~@3 [c3,g3] ~ [b3,e4,g4,b4] ~@5", // C5 Em C5 Em
  C: "[d3,a3]@2 ~@2 [c4,f4,a4,c5] ~@3 [d3,a3] ~ [c4,f4,a4,c5] ~@5", // D5 F D5 F
  D: "[c3,g3] ~@3 [b3,e4,g4,b4] ~@3 [c3,g3] ~ [b3,e4,g4,b4] ~@5", // C5 Em C5 Em
  E: "[d3,a3] ~@3 [c4,f4,a4,c5] ~@3 [d3,a3] ~ [c4,f4,a4,c5] ~@5", // D5 F D5 F
  F: "[d3,a3]@2 ~@2 [d4,f4,g4,b4] ~@3 [d3,a3] ~ [d4,f4,g4,b4] ~@5", // D5 G7 D5 G7
  G: "[e3,b3] ~@3 [d4,g4,b4,d5] ~@3 [e3,b3] ~ [d4,g4,b4,d5] ~@5", H: "~@4 [e4,g4,b4,d5] ~@5 [e4,g4,b4,d5] ~@5",
  I: "~@4 [d#4,g4,c#5] ~@5 [d#4,g4,c#5] ~@5", J: "~@4 [d4,f4,a4,c5] ~@5 [d4,f4,a4,c5] ~@5",
  K: "~@4 [d4,f4,g4,b4] ~@5 [d4,f4,g4,b4] ~@5", L: "[e3,b3] ~@15",
})).s("gm_electric_guitar_clean").gain(0.5)

// bass · baritone sax · "BARITONSA"
const bass_2 = note("<~@41 A ~ B ~@3 A ~ A ~ B ~ B ~@36>".pickRestart({
  A: "c2@2 ~@4 c2 ~ c2@2 ~@6", B: "d2 ~@5 d2 ~ d2@2 ~@6",
})).s("gm_baritone_sax").gain(0.56)

// other · distortion guitar · "DISTORTIO"
const distortion_guitar = note(`<
  ~@60
  [~@3 g5 a#5@4 a#5@3 ~ a#5@3 ~]
  [a#5@3 ~ a#5@3 ~ a5 ~@2 g5 g5@2 ~@2]
  ~@2
  [~@3 g5 a#5@3 ~ a#5@3 ~ a#5@3 ~]
  [a#5@3 ~ a#5@3 ~ a5@2 ~ g5@2 ~@2 g5]
  ~@24
>`).s("gm_distortion_guitar").gain(0.25)

// other · timpani
const timpani = note("<~@41 A ~ B ~@5 A ~ B ~@38>".pickRestart({
  A: "c3 ~@5 c3 ~ c3 ~@7", B: "d3 ~@5 d3 ~ d3 ~@7",
})).s("gm_timpani").gain(0.71)

// drums · kick
const kick = s("bd").struct("<A B A@7 B A@13 B A@3 B A@13 B A@5 B A B A@5 B A@3 B A@3 B A@3 B A@20 C ~>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x!2", C: "x",
})).gain(0.54)

// drums · clap
const clap = s("cp").struct("<[~ x ~ x]!88 ~@2>").gain(0.6)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!25 [~@4 x ~@5 x!3 ~ x ~] [~ x ~ x]!61 [~@4 x ~@5 x!3 ~ x ~] ~@2>").gain(0.54)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@3 A ~@2 B ~@4 A ~@2 B ~ B ~ B ~ A@2 ~@7 A ~@2 B ~ B ~ B ~ A@2 ~@2 B ~ A@2 ~@4 B ~ A ~@3 B ~@3 B ~@3 B ~@4 A ~@2 B ~
  B ~ B ~ A@2 ~ B@6 C ~@2
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@6", C: "~ x ~@2 x ~@3",
})).gain(0.42)

// drums · crash
const crash = s("cr").struct("<~@88 x ~>").gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct("<[~ x ~ x]!88 x ~>").gain(0.54)

stack(
  piano, bass, brass_section, electric_guitar_clean, bass_2, distortion_guitar, timpani, kick, clap, snare, hihat,
  open_hat, crash, tambourine
)

More by Tom Jones