Strudelify
One in a Million cover art

1993 · Very

One in a Million

Pet Shop Boys

KeyE majorTempo129 bpm
0:00/0:00
// One in a Million — Pet Shop Boys
// 129 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(129/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 · synth strings 1 · "Strings"
const synth_strings_1 = note(`<
  A B@12 C D E D C D E D C D E D A B@8 C D E D C D E A B@8 F G H I F G H I C D E D C D E D A B@24 J K L M N O@16 P@2 Q@2
  P@2 R@4
>`.pickRestart({
  A: "[e3,e4] [f#3,f#4] [g#3,g#4] [a3,a4] [g#3,g#4] [a3,a4] [b3,b4] [c#4,c#5] [b3,b4] [c#4,c#5] [d#4,d#5] [e4,e5] [d#4,d#5] [e4,e5] [f#4,f#5] [g#4,g#5]", // E F# G# A G# A B C# …
  B: "[[c#4,e4,a4] [b3,e4] [a3,c#4,e4] [g#3,b3,e4] [a3,d4,f#4] [a3,c#4,f#4] [b3,d4,f#4] [g#3,b3,e4], a5]/4", // A E5 A E D F#m Bm E
  C: "[a#3,c#4,f#4]@15 ~", D: "[g#3,b3,f#4]@15 ~", E: "[a3,c#4,f#4]@15 ~",
  F: "f#5 c#5 ~@2 f#5 c#5 f#4@2, [a#3,c#4]@15 ~, f#4 f#4@2 ~", G: "a5 e5 a4@2 a5 e5 a4@2, [a3,c#4,e4]@15 ~",
  H: "c#6 g#5 c#5@2 c#6 g#5 c#5@2, [g#3,c#4,e4]@15 ~", I: "b5 f#5 b4@2 b5 f#5 b4@2, [b3,d#4,f#4]@15 ~", J: "f#4@15 ~",
  K: "[f#4,a#4]@15 ~", L: "[f#4,a#4,c#5]@15 ~", M: "[f#4,a#4,c#5,e5]@15 ~",
  N: "[f#3,f#4] [g#3,g#4] [a#3,a#4] [b3,b4] [a#3,a#4] [b3,b4] [c#4,c#5] [d#4,d#5] [c#4,c#5] [d#4,d#5] [f4,f5] [f#4,f#5] [f4,f5] [f#4,f#5] [g#4,g#5] [a#4,a#5]", // F# G# A# B A# B C# D# …
  O: "[[d#4,f#4,b4] [c#4,f#4] [b3,d#4,f#4] [a#3,c#4,f#4] [b3,e4,g#4] [b3,d#4,g#4] [c#4,e4,g#4] [a#3,c#4,f#4], b5]/4", // B F#5 B F# E G#m C#m F#
  P: "[~@24 b4@2 ~ c#5@2 b4@2 ~, [f#3,b3,d#4]@29 ~@3]/2", Q: "[[d#4,g#4,c5,d#5]@29 ~@3]/2",
  R: "[[d#4,g#4,c5,d#5]@61 ~@3]/4", // G#
})).s("gm_synth_strings_1").gain(0.29)

// chords · piano · "Piano R"
const piano = note(`<
  ~ A B C D A B C D A B C D ~@13 A B C D A B C D ~@8 A B C D A B C D ~@17 A B C D A B C D A B C D A B C D A B C D A B C
  D ~@5 E F G H E F G H E F G H E F G H ~ I J@2 ~ I K@4
>`.pickRestart({
  A: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@3 ~@2 [b3,e4,g#4]@2 ~ [b3,e4,g#4]@3 ~", // A E
  B: "~ [c#4,e4,a4]@2 ~ [c#4,e4,a4]@3 ~@2 [b3,e4,g#4]@2 ~ [b3,e4,g#4]@3 ~", // A E
  C: "[d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@3 ~@2 [c#4,f#4,a4]@2 ~ [c#4,f#4,a4]@3 ~", // D F#m
  D: "~ [d4,f#4,b4]@2 ~ [d4,f#4,b4]@3 ~@2 [b3,e4,g#4]@2 ~ [b3,e4,g#4]@3 ~", // Bm E
  E: "[d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@3 ~@2 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@3 ~", // B F#
  F: "~ [d#4,f#4,b4]@2 ~ [d#4,f#4,b4]@3 ~@2 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@3 ~", // B F#
  G: "[e4,g#4,b4]@2 [e4,g#4,b4]@2 [e4,g#4,b4]@3 ~@2 [d#4,g#4,b4]@2 ~ [d#4,g#4,b4]@3 ~", // E G#m
  H: "~ [e4,g#4,c#5]@2 ~ [e4,g#4,c#5]@3 ~@2 [c#4,f#4,a#4]@2 ~ [c#4,f#4,a#4]@3 ~", I: "~@8 b4@2 ~ c#5@2 b4@2 ~",
  J: "[[d#4,g#4,c5,d#5]@29 ~@3]/2", K: "[[d#4,g#4,c5,d#5]@61 ~@3]/4",
})).s("gm_piano").gain(0.42)

// bass · piano · "Piano L"
const bass = note(`<
  ~ A B C D A B C D A B C D E F G F E F G F E F G F@2 A B C D A B C D E F G F E F G F A B C D A B C D E H I J E H I J K
  L M L N O P Q@2 A B C D A B C D A B C D A B C D A B C D A B C D E@5 R S T U R S T U R S T U R S T U V@2 W@2 V@2 X@4
>`.pickRestart({
  A: "a1 a2 a1 a2 g#1 g#2 g#1 g#2", B: "f#1 f#2 f#1 f#2 e1 e2 e1 e2", C: "d1 d2 d1 d2 c#1 c#2 c#1 c#2",
  D: "b0 b1 b0 b1 e1 e2 e1 e2", E: "f#1 f#2 f#1 f#2 f#1 f#2 f#1 f#2", F: "e1 e2 e1 e2 e1 e2 e1 e2",
  G: "d1 d2 d1 d2 d1 d2 d1 d2", H: "a1 a2 a1 a2 a1 a2 a1 a2", I: "c#2 c#3 c#2 c#3 c#2 c#3 c#2 c#3",
  J: "b1 b2 b1 b2 b1 b2 b1 b2", K: "c#2@13 ~@3", L: "b1@13 ~@3", M: "a1@13 ~@3", N: "f#1@13 ~@3", O: "e1@13 ~@3",
  P: "d1@13 ~@3", Q: "[e1@29 ~@3]/2", R: "b1 b2 b1 b2 a#1 a#2 a#1 a#2", S: "g#1 g#2 g#1 g#2 f#1 f#2 f#1 f#2",
  T: "e1 e2 e1 e2 d#1 d#2 d#1 d#2", U: "c#1 c#2 c#1 c#2 f#1 f#2 f#1 f#2", V: "[b1@29 ~@3]/2", W: "[g#1@29 ~@3]/2",
  X: "[g#1@61 ~@3]/4",
})).s("gm_piano").gain(0.42)

// bass · electric bass pick · "Elec Bass"
const bass_2 = note(`<
  ~ A B C D A B C D A B C D E F G F E F G F E F G F@2 H I J K H I J K E F G F E F G F H I J K H I J K E L M N E L M N
  ~@4 E F G F ~ H I J K H I J K H I J K H I J K H I J K H I J K E@5 O P Q R O P Q R O P Q R O P Q R S@2 T@2 S@2 U@2 T@2
>`.pickRestart({
  A: "a1 a2 a1 a2 g#1 g#2 g#1 g#2", B: "f#1 f#2 f#1 f#2 e1 e2 e1 e2", C: "d1 d2 d1 d2 c#1 c#2 c#1 c#2",
  D: "b0 b1 b0 b1 e1 e2 e1 e2", E: "f#1@2 f#2!2 f#1@2 f#2!2 f#1@2 f#2!2 f#1@2 f#2!2",
  F: "e1@2 e2!2 e1@2 e2!2 e1@2 e2!2 e1@2 e2!2", G: "d1@2 d2!2 d1@2 d2!2 d1@2 d2!2 d1@2 d2!2",
  H: "a1@2 a2!2 a1@2 a2!2 g#1@2 g#2!2 g#1@2 g#2!2", I: "f#1@2 f#2!2 f#1@2 f#2!2 e1@2 e2!2 e1@2 e2!2",
  J: "d1@2 d2!2 d1@2 d2!2 c#1@2 c#2!2 c#1@2 c#2!2", K: "b0@2 b1!2 b0@2 b1!2 e1@2 e2!2 e1@2 e2!2",
  L: "a1@2 a2!2 a1@2 a2!2 a1@2 a2!2 a1@2 a2!2", M: "c#2@2 c#3!2 c#2@2 c#3!2 c#2@2 c#3!2 c#2@2 c#3!2",
  N: "b1@2 b2!2 b1@2 b2!2 b1@2 b2!2 b1@2 b2!2", O: "b1@2 b2!2 b1@2 b2!2 a#1@2 a#2!2 a#1@2 a#2!2",
  P: "g#1@2 g#2!2 g#1@2 g#2!2 f#1@2 f#2!2 f#1@2 f#2!2", Q: "e1@2 e2!2 e1@2 e2!2 d#1@2 d#2!2 d#1@2 d#2!2",
  R: "c#1@2 c#2!2 c#1@2 c#2!2 f#1@2 f#2!2 f#1@2 f#2!2", S: "[b1@29 ~@3]/2", T: "[g#1@29 ~@3]/2",
  U: "g#1@3 ~ d#1@3 ~ g#1@3 ~ d#1@3 ~",
})).s("gm_electric_bass_pick").gain(0.42)

// other · music box
const music_box = note("<~@50 A B C D A B C D A E F D A E F D ~@25 G@4 ~@27>".pickRestart({
  A: "f#6 c#6 f#5!2 f#6 c#6 f#5!2", B: "a6 e6 a5!2 a6 e6 a5!2", C: "c#7 g#6 c#6!2 c#7 g#6 c#6!2",
  D: "b6 f#6 b5!2 b6 f#6 b5!2", E: "b6 e6 b5!2 b6 e6 b5!2", F: "c#7 e6 c#6!2 c#7 e6 c#6!2",
  G: "f#6@2 c#6@2 f#5@2 f#5@2 f#6@3 ~@5",
})).s("gm_music_box").gain(0.24)

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

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@3 C B@7 D B@3 D@2 B@3 E B@3 C B@7 D B@3 E B@3 C B@3 F B@3 F ~@8 A B@3 E B@3 E B@3 E B@3 C B@3 E B@3 C B@3 C
  A B@3 C B@3 C B@3 C B@3 C ~@10
>`.pickRestart({
  A: "x!3 ~ x!2 ~ x!9", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~ x", D: "~@4 x ~@5 x ~ x!2 ~ x", E: "~@2 x ~@3 x!2",
  F: "~@4 x ~@4 x ~@2 x ~ x ~",
})).gain(0.49)

// drums · low tom
const low_tom = s("lt").struct("<~@120 [x!2]!2>").gain(0.42)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@3 A B@3 A B@3 A B@12 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@11 ~ A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A
  B@3 ~ A B@3 A B@3 A B@3 A B@3 ~@10
>`.pickRestart({
  A: "~ x!3", B: "x!4",
})).gain(0.42)

// drums · open hat
const open_hat = s("oh").struct("<~ [~ x ~ x ~ x ~ x]!65 ~ [~ x ~ x ~ x ~ x]!28 ~ [~ x ~ x ~ x ~ x]!16 ~@10>")
  .gain(0.42)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~@3 A ~@12 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@12 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4
  A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 B@2
>`.pickRestart({
  A: "x", B: "x!2",
})).gain(0.42)

// drums · triangle
const triangle = s("triangles:30").struct(`<
  ~@13 A@3 B A@3 B A@3 B@2 ~@8 A@3 B A@3 B ~@16 A@3 B A@3 B ~@56
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@2 x ~@3 x ~@3 x ~@2 x ~@2",
})).gain(3.67)

stack(synth_strings_1, piano, bass, bass_2, music_box, kick, snare, low_tom, hihat, open_hat, crash, triangle)

More by Pet Shop Boys