Strudelify

I Wouldnt Normally Do This Kind of Thing

Pet Shop Boys

KeyD majorTempo134 bpm
0:00/0:00
// I Wouldnt Normally Do This Kind of Thing — Pet Shop Boys
// 134 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its drawbar organ patch is not one)
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(134/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 · "Bright Piano"
const piano = note(`<
  A B C D A B C D C E F E C G H I C I A B C D J K C D J E C E F E C G H I C I A B C D J K C D J E ~@6 C E F E L H J@2 L
  H M N M N M N M N C E F E C G H I C I A B C D J K C D J K L H L H J O@2
>`.pickRestart({
  A: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~ [a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@3 ~", // D F#m
  B: "[b3,d4,f#4]@3 ~ [b3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~", // Bm D
  C: "[b3,d4,g4]@3 ~ [b3,d4,g4]@3 ~ [b3,d4,g4]@3 ~ [b3,d4,g4]@3 ~", // G
  D: "[a#3,d4,g4]@3 ~ [a#3,d4,g4]@3 ~ [a#3,d4,g4]@3 ~ [a#3,d4,g4]@3 ~", // Gm
  E: "[a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~", // A
  F: "[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~", // G
  G: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~", // D
  H: "[c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~", // C
  I: "[c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~", // A
  J: "[d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~", // D
  K: "[b3,d4,f#4]@3 ~ [b3,d4,f#4]@3 ~ [b3,d4,f#4]@3 ~ [b3,d4,f#4]@3 ~", // Bm
  L: "[a#3,d4,f4]@3 ~ [a#3,d4,f4]@3 ~ [a#3,d4,f4]@3 ~ [a#3,d4,f4]@3 ~", // A#
  M: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~ [d4,f4,a4]@3 ~", // Dm
  N: "[c4,f4,a4]@3 ~ [c4,f4,a4]@3 ~ [c4,e4,a4]@3 ~ [c4,e4,a4]@3 ~", O: "[[d4,f#4,a4]@29 ~@3]/2",
})).s("gm_piano").gain(0.56).pan(0.6)

// chords · synth strings 1 · "Strings"
const synth_strings_1 = note(`<
  ~@8 A B A B A C D B A B E F G H I J G H I B A B A B A C D B A B E F G H I J G H I B K L M L K L N O N O P Q R@2 P Q S
  T S T S T S T A B A B A C D B A B E F G H R U G H R U P Q P Q I V@2
>`.pickRestart({
  A: "[d4,g4,b4]", B: "[c#4,e4,a4]", C: "[c#4,f#4,a4]", D: "[b3,e4,g4]", E: "[f#3,a3,d4] [f#3,a3,c#4]",
  F: "b3 a3, [d4,f#4]", G: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [b3,g4]",
  H: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [a#3,g4]", I: "[d4,f#4,a4]",
  J: "[d4,f#4,b4]", K: "[b3,d4,f#4]", L: "[a3,c#4,f#4]", M: "[b3,d4,g4]",
  N: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [b3,d4,g4]", // D G
  O: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [c#4,e4,a4]", // D A
  P: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [a#3,d4,f4]", // D A#
  Q: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [c4,e4,g4]", // D C
  R: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [d4,f#4,a4]", S: "[a4,d5]",
  T: "[a4,c5]", U: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~, [d4,f#4,b4]",
  V: "[d4,f#4,a4]/2", // D
})).s("gm_synth_strings_1").gain(0.35)

// chords · oboe · "Brass"
const oboe = note("<~@51 A@2 ~@2 B@4 ~@2 C@3 D E D E D E D E ~@19 F@5 G ~@2>".pickRestart({
  A: "[~@4 f#5@3 ~ e5@2 d5@3 ~ b4@12 ~@6]/2", B: "[~@4 f#5@3 ~ e5@2 d5@3 ~ d5@12 ~@6]/2",
  C: "[~@4 f#5@3 ~ e5@2 d5@3 ~ d5@12 c5@2 d5@2 f5@5 ~ d5@3 ~ d5@2 c5@5 ~]/3",
  D: "[f4,d5,f5]@2 ~ [f4,d5,f5]!2 ~@5 a4 ~ d5 ~ a4 ~", E: "[f4,c5,f5]@2 ~ [f4,c5,f5]!2 ~@5 b4 ~ a4 ~ f4 ~",
  F: "[~@4 f#5@3 ~ e5@2 d5@3 ~ d5@12 c5@2 d5@2 f5@5 ~ d5@3 ~ d5@2 c5@3 ~ d5@12 c5@2 d5@2 f5@5 ~ d5@3 ~ d5@2 c5@5 ~]/5",
  G: "d5@13 ~@3",
})).s("gm_oboe").gain(0.56).pan(0.7)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D A B C D E@4 F G H I J E A B C D K L C M N O E@4 F G H I J E A B C D K L C M N O P Q R S P Q J E J E T U N@2 T
  U V@8 E@4 F G H I J E A B C D K L C D K L T U T U N W X
>`.pickRestart({
  A: "d2@3 ~ d2@3 ~@3 c#2@3 ~ c#2@2", B: "b1@3 ~ b1@3 ~@3 a1@3 ~ a1@2", C: "g1@3 ~ g1@3 ~@3 g1@3 ~ d1@2",
  D: "a#1@3 ~ a#1@3 ~@3 a#1@3 ~ g1@2", E: "a1@3 ~ a1@3 ~ e1@2 a1@3 ~ e1@2", F: "e1@3 ~ e1@3 ~ e1@2 e1@3 ~ e1@2",
  G: "d1@3 ~ d1@3 ~ d1@2 d1@3 ~ d1@2", H: "c1@3 ~ c1@3 ~ c1@2 c1@3 ~ c1@2", I: "a1@3 ~ a1@3 ~ a1@2 a1@3 ~ a1@2",
  J: "g1@3 ~ g1@3 ~ d1@2 g1@3 ~ d1@2", K: "d2@3 ~ d2@3 ~@3 d2@3 ~ a1@2", L: "b1@3 ~ b1@3 ~@3 b1@3 ~ e1@2",
  M: "a#1@3 ~ a#1@3 ~@5 a#1@2 d1@2", N: "d2@3 ~ d2@3 ~ a1@2 d2@3 ~ a1@2", O: "a1@3 ~ a1@2 ~ g1 a1@2 a1@2 a1@3 ~",
  P: "b1@3 ~ b1@3 ~ f#1@2 b1@3 ~ b1@2", Q: "f#1@3 ~ f#1@3 ~ c#1@2 f#1@3 ~ c#1@2", R: "e1@3 ~ e1@3 ~ b0@2 e1@3 ~ b0@2",
  S: "d1@3 ~ d1@3 ~ a0@2 d1@3 ~ a1@2", T: "a#1@3 ~ a#1@3 ~ f1@2 a#1@3 ~ f1@2", U: "c2@3 ~ c2@3 ~ g1@2 c2@3 ~ g1@2",
  V: "[d1@3 ~ d1@3 ~ d1@2 d1@3 ~ f1@4 f1@2 f1@2 a1@4 f1@2 a1@2 f1@2]/2", W: "d2@2 ~ d2@2 d2@2 ~ d2@2 ~ d2@2 d2@2 ~",
  X: "d1@13 ~@3",
})).s("gm_electric_bass_finger").gain(0.63)

// drums · rim
const rim = s("rim").struct("<~@8 A@12 ~@8 A@12 ~@8 B@5 C ~@18 A@12 ~@15>".pickRestart({
  A: "~@2 x ~@2 x ~ x", B: "~ x ~ x", C: "~ x ~@2",
})).gain(0.25).pan(0.3)

// drums · clap
const clap = s("cp").struct("<A@27 B A@11 C A@7 B ~@5 D A@9 B A@19 C A@13 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x ~@3 x!2 ~@3", C: "~@4 x ~@7 x ~@2 x", D: "~@3 x",
})).gain(0.45).pan(0.3)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  A@8 ~@3 B ~@3 B ~@3 B A@8 ~@3 B ~@3 B ~@3 B A@8 ~@6 A@18 ~@3 B ~@3 B ~@3 B A@13 ~@2
>`.pickRestart({
  A: "~@2 x ~@2 x ~ x", B: "~@5 x ~ x",
})).gain(0.25).pan(0.3)

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 A ~@3 A ~@7 A ~@7 A ~@3 A ~@7 A ~@7 A ~@3 A ~@5 A ~ A ~ A ~ A ~ A ~ A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A ~ A ~
  A@2 ~
>`.pickRestart({
  A: "x",
})).gain(0.3).pan(0.3)

stack(piano, synth_strings_1, oboe, bass, rim, clap, hihat, open_hat, crash)

More by Pet Shop Boys