Strudelify
The Most Beautiful Girl in the World cover art

1995

The Most Beautiful Girl in the World

Prince

KeyD♭ majorTempo91 bpm
0:00/0:00
// The Most Beautiful Girl in the World — Prince
// 91 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 97 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(91/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@7 A B A B A B A ~@2 C D E B C D A B C D E B C D A ~@2 A B A B A B A ~@2 C D E B C D A B C D E B C D A ~@2 A B A B A
  B A ~@18 A B A B A B A B A B A F ~
>`.pickRestart({
  A: "~@2 [gb4,bb4] [f4,ab4]@5, gb3@15 ~, ~@4 db5@11 ~", // Gb Fm
  B: "[eb4,gb4,db5]@3 [f4,ab4]@2 [gb4,bb4] ~ db5, ~@3 db5@4 ~, ~@3 [f4,ab4]", // Ebm7 Fm Gb Fm
  C: "~@2 [gb4,bb4] [f4,ab4]@5, gb3, ~@4 db5@11 ~", D: "[db4,eb4,gb4]@15 ~",
  E: "~@2 [gb4,bb4] [f4,ab4]@5, eb3@15 ~, ~@4 db5@11 ~", F: "[eb4,gb4,db5]@3 [f4,ab4]@2 ~@3, ~@3 db5@4 ~",
})).s("gm_epiano2").gain(0.4).pan(0.6)

// bass · electric bass finger · "FINGERDBA"
const bass = note(`<
  ~@5 A@2 B C D E B C F G@2 B C H C I C D C B C H J I C K G@2 B C D E B C L G@2 B C H C I C D C B C H J I C M G@2 B C D
  E B C N G@2 O P Q R S T U@2 V ~@5 U@2 W C D X I C D X I C D X ~
>`.pickRestart({
  A: "[eb2@2 db2@3 ~ b1@3 ~ bb1@2 ~@2 db2@4 db1@2 ~@2 db1@10]/2", B: "gb1@4 ~@2 gb1@6 ~@2 gb1 ~",
  C: "b1@2 ~ b1@3 ~ db2", D: "gb1@2 ~ eb2 ~ db2 ~ gb1", E: "b1@2 ~ ab2 ~ gb2 ~ db2", F: "gb1@4 ~@2 eb2@2 ~@2 db2@5 ~",
  G: "[eb2@2 db2@3 ~ b1@3 ~ bb1@2 ~@2 db2@4 db1@2 ~@2 db1@2 db1@7 ~]/2", H: "eb1@2 ~ eb1@3 ~ gb1",
  I: "gb1@4 ~@2 gb1@6 ~@2 db2 ~", J: "b1@2 ~ b1@3 ~ gb2", K: "gb1@4 ~@2 eb2@2 ~@2 gb1@2 gb2 ~@3",
  L: "gb1@4 ~@2 gb1@2 ~@2 gb1@2 ab2 ~@3", M: "gb1@4 ~@2 gb1@4 gb1@2 gb2 ~@3", N: "gb1@4 ~@2 gb1@3 ~ gb1@2 ab2 ~@3",
  O: "eb1@2 ~ eb2@3 db2 bb1", P: "eb1@2 ~ eb2@3 ~ eb2", Q: "eb1@2 ~ eb2@3 ~ bb1", R: "eb1@2 ~ eb2@3 ~ db2",
  S: "b1@4 ~@2 b1@6 ~@2 b1 ~", T: "b1@4 ~@2 b1@9 ~",
  U: "[eb2@2 db2@3 ~ b1@3 ~ bb1@2 ~@2 db2@4 db1@2 ~@2 db1@2 db1@5 ~ db1@2]/2", V: "gb1 ~@7",
  W: "gb1@4 ~@2 gb1@6 ~@2 b1 ~", X: "b1@4 ~@2 ab2@3 ~ gb2@2 ~@2 db2@2",
})).s("gm_electric_bass_finger").gain(0.35)

// bass · electric bass finger · "FINGERDBA" · soft notes
const bass_soft = note("<~@30 A ~@8 B ~@16 A ~@8 B ~@31>".pickRestart({
  A: "~@11 d2 [eb2,e2,f2] [e2,f2] [c2,db2,d2,eb2] [a1,bb1,b1]", // Fmaj7
  B: "~@11 e2 [f2,gb2,g2] [gb2,g2] [d2,eb2,e2,f2] [b1,c2,db2]", // Gmaj7
})).s("gm_electric_bass_finger").gain(0.1)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@7 A@2 B@2 A@2 B@2 ~@18 A@2 B@2 A@2 B@2 ~@18 A@2 B@2 A@2 B@2 C D E F G H I ~@2 A@2 ~@2 A@2 ~@2 A@2 B@2 A@2 B@2 A@2
  B@2 ~
>`.pickRestart({
  A: "[~@2 [gb5,bb5]!4 [f5,ab5]!2 ~ [d5,eb5] [ab4,db5] ~ [bb4,eb5]@8 ~@12, ~@8 [bb4,db5]@2 ~@2 d5 ~@19]/2", // Gb Fm Ebmaj7 Db5 Eb5 Bbm
  B: "[~@2 [gb5,bb5]!4 [f5,ab5]!2 ~ [d5,eb5] [ab4,db5] ~@2 [d5,eb5] [ab4,db5]@6 ~@12, ~@4 [bb4,db5] ~ [bb4,db5] ~@9]/2", // Gb Fm Ebmaj7 Db5 Ebmaj7 Db5 Bbm
  C: "b3@15 ~", D: "~@2 ab3!2 ~@7 eb3!2 ~@3", E: "~ db3 ~@3 c3 ~@2", F: "~ db3 ~@6",
  G: "~@3 c3 c3@2 ~@5 gb3 eb3!2 gb3 eb3", H: "bb3@4 ~@8 [ab3,bb3] gb3 eb3@2",
  I: "gb3@2 ~ eb3!2 ~@2 eb3 eb3@3 eb3 ab3 bb3 gb3 eb3",
})).s("gm_electric_guitar_jazz").gain(0.4).pan(0.8)

// chords · fretless bass · "FRETLESS"
const fretless_bass = note(`<
  ~@6 A B@3 A B@3 ~ C D@3 C D@3 C D@3 C D@3 ~ A B@3 A B@3 ~ C D@3 C D@3 E F@3 C D@3 ~ A B@3 A B@3 ~@9 A B@3 A B@3 A B@3
  A B@3 A B@3 ~@2
>`.pickRestart({
  A: "~@5 gb4 [eb4,ab4] [gb4,bb4]", // Ab5 Gb
  B: "[~@10 gb4 ~ [eb4,ab4] ~ [gb4,bb4]@4 b4@2 [gb4,bb4]@2 [eb4,ab4]@4 gb4@2 [eb4,ab4]@2 [gb4,bb4]@6 ~@12]/3", // Ab5 Gb Ab5 Gb
  C: "~@5 gb4 ab4 bb4", D: "[~@10 gb4 ~ ab4 ~ bb4@4 b4@2 bb4@2 ab4@4 gb4@2 ab4@2 bb4@6 ~@12]/3", E: "~@5 bb4 db5 eb5",
  F: "[~@2 bb4 ~ ab4@2 gb4@3 ~ gb4 ~ ab4 ~ bb4@4 b4@2 bb4@2 ab4@4 gb4@2 ab4@2 bb4@6 ~@12]/3",
})).s("gm_fretless_bass").gain(0.37)

// chords · fretless bass · "FRETLESS" · soft notes
const fretless_bass_soft = note(`<
  ~@6 A B C ~ A B C ~@19 A B C ~ A B C ~@19 A B C ~ A B C ~@10 A B C ~ A B C ~ A B C ~ A B C ~ A B C ~@3
>`.pickRestart({
  A: "~@5 db4 ~@2", B: "~@10 db4 ~@5", C: "~ ab4 ~@3 db4 ~@2",
})).s("gm_fretless_bass").gain(0.25)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@7 B C B C B C B D@2 B E B C B E B C B E B C B E B F@2 B C B C B C B D@2 B E G H B E B I B E B H B C B J@2 B C B C B
  C B K@2 L M L M N@2 O@2 ~@6 K@2 B C B C B C B C B C B C ~
>`.pickRestart({
  A: "[~@4 c5 ~@15 c5 ~@6 db5 ~@12 bb4 ab4@2 gb4@2 eb4@2 ~@4 [eb4,gb4,b4]@5, f4@6 f4@6 f4@4 ~@4 f4@4 f4@4 f4@4 f4@4 ~@2 f4@6 f4@4 ~@2 f4@4 ~@4 f4@6 f4@4 f4@5 ~ f4@4 ~@16 db4@17 ~, ~ c5@3 ~ db5@3 db5@3 db5@2 db5@3 ~ gb4@2 ~@4 gb4@2 ~ gb4@3 ~ gb4@2 ~ gb4@2 ~ db5@3 db5@2 ~@15, ~@4 gb4@4 ~@6 gb4@4 gb4@4 ~@8 c5@6 c5@4 ~@2 db5@6 db5@6 ~@2 c5@6 c5@7 ~ c5@5 ~ gb4@4 ~@32]/7", // B
  B: "~@2 [gb3,bb3] [f3,ab3]@5, ~ db4@3", C: "[eb3,gb3,db4]@3 [f3,ab3]@2 [gb3,bb3]@3, ~@3 db4@5",
  D: "[bb4 ab4@2 gb4@2 eb4@2 db4@2 ~ db5@6, ~@18 db4@13 ~]/2", E: "[eb3,gb3,db4]",
  F: "[bb4@2 ab4@4 gb4@4 eb4@4 db4@4 ~@4 gb3@9 ~, ~@18 db3@13 ~, ~@5 db4@3]/2",
  G: "[gb3,bb3] [f3,ab3] [gb3,bb3] [f3,ab3]@5, db4 db4@3", H: "~@3 db5@5, [eb3,gb3,db4]@3 ~@5, ~ f4@7, ~ gb4@3",
  I: "ab5 gb5 f5 db5 gb5@4, [eb3,gb3,db4]@3 ~@5", // Ebm7
  J: "[bb4@2 ab4@4 gb4@4 eb4@4 db4@4 ~@2 db5@2 [eb4,gb4,db5]@9 ~, ~@18 db4@13 ~]/2", // Ebm7
  K: "[bb4@2 ab4@4 gb4@4 eb4@4 ~@8 db5@9 ~, ~@14 db4@17 ~, ~@18 f4@13 ~, ~@20 gb4@11 ~]/2",
  L: "~@6 gb4 f4, db5@3 db5@2 db5@3, ~ f4@2 ~ f4@2 ~@2, ~ gb4 ~@2",
  M: "~@6 gb4 f4, c5@3 c5@2 c5@3, ~ f4@2 ~ f4@2 ~@2, ~ gb4 ~@2",
  N: "[~@6 gb4 ~@8 f4, db5@3 db5@2 db5@3 db5@3 db5@3 db5@2, ~ f4@2 ~ f4@2 ~ f4@2 f4@3 gb4@2 ~@2, ~@2 gb4@2 ~@6 c5@2 ~ f4@2 ~]/2",
  O: "[bb4@2 ab4@3 ~ gb4@4 eb4@4 ~@8 db5@9 ~, ~@14 db4@17 ~, ~@18 f4@13 ~, ~@20 gb4@11 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.3)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@5 A@2 B@7 C@2 ~@10 D ~ E F G C@2 B@7 C@2 ~@2 H@4 D I ~@2 D ~@2 J G C@2 B@7 C@2 ~@6 C@2 ~@3 D ~@2 C@2 K@8 ~@5
>`.pickRestart({
  A: "[~@2 [ab5,db6,f6]@3 ~ [gb5,bb5,eb6]@3 ~ [f5,ab5,db6]@3 ~ [eb5,gb5,ab5,db6]@18]/2", B: "[db6@111 ~]/7",
  C: "[[bb5,db6,gb6]@2 [ab5,db6,f6]@3 ~ [gb5,bb5,eb6]@3 ~ [f5,ab5,db6]@3 ~ [eb5,gb5,ab5,db6]@18]/2", // Gb Db Ebm Db Ebm7
  D: "~@4 [db6,gb6] [db6,eb6] bb5 ~ [ab5,db6] [ab5,bb5] gb5 ~ [db5,gb5] [db5,eb5] bb4 ~", E: "~@3 gb6@5",
  F: "~@6 bb5@3 ~@5 eb5@2, ~@3 db6@4 ~, ~@6 ab5 ~@3 bb5@6, ~@3 gb5",
  G: "~@4 [db6,gb6] [db6,eb6] bb5 ~ [ab5,db6] [ab5,bb5] gb5 ~ [db5,gb5] [db5,eb5] bb4 [eb5,gb5,ab5,bb5]", // Gb5 Dbsus2 Db5 Absus2 Gb5 Dbsus2 Ebm
  H: "[~@44 [gb5,ab5] ~ gb5 ~ ab5 gb5@10 ~ eb5@2 db5@2, ~@4 db6@25 ~@3, ~@44 bb5@2 ~@14 db5 ~@3]/4", I: "ab6 bb6@3",
  J: "~@5 ab5 gb5@2, ~@5 db6@3, ~@10 gb5 ~@5", K: "db6/8",
})).s("gm_rock_organ").gain(0.4)

// chords · vibraphone · "VIBRAPHON"
const vibraphone = note(`<
  A@5 B@2 ~@7 C@2 D ~ E@2 D F D G H ~@2 I@2 ~ F J@2 ~@3 K ~@3 L@2 ~@2 M ~ N ~@2 O ~@2 M ~@3 P Q@2 ~@2 R S T ~ T U@2 V W
  V W X@2 Y@2 ~@6 Z@2 ~@13
>`.pickRestart({
  A: "[~@28 f5@3 ~@7 db6@8 ~@4 f5@6 ~@8 db6@6 ~@8 f5@2, ~@5 db6@3 gb6@5 ~@27, ~@12 f5@12 c6@10 ~@2 gb5@11 ~ gb5@8 ~@2 gb5@12 ~@6 gb5@4, ~@14 gb5@11 ~ gb5@8 f5@6 ~@20 f5@10 ~@10, ~@9 db6@4 ~@10 c6@5 ~@3 c6@4 ~@2 c6@3]/5",
  B: "[bb5@2 ab5@3 ~ gb5@3 ~ f5@4 eb5@4 db5@2 eb6@2 db6@6 ~@4]/2",
  C: "[bb5@2 ab5@3 ~ gb5@3 ~ f5@3 ~ eb5@4 db4@2 db5@2 db6@6 ~@4]/2", D: "[gb4,gb5]", E: "[db4,db5]", F: "db4",
  G: "db4@13 ~ db4@2, gb4", H: "gb3@7 ~", I: "[~@3 db5@3 eb5 gb5@3 ~@6, ~ gb5@2 ~@5]/2",
  J: "[bb5@2 ab5@3 ~ gb5@3 ~ f5@3 ~ eb5@6 ~@12]/2", K: "~@10 [gb5,bb5]@2 [eb5,ab5] ~@3",
  L: "[bb5@2 ab5@3 ~ gb5@3 ~ f5@4 eb5@12 ~@6]/2", M: "~@3 db5@5, ~ f4@7, ~ gb4@3", N: "~@3 gb5@5, gb4",
  O: "ab6 bb6 gb6@2", P: "~ f5 gb5 db5@2 db5 eb5 ab4", Q: "[bb5@2 ab5@3 ~ gb5@3 ~ f5@3 ~ eb5@6 db5@2 db6@4 ~@6]/2",
  R: "~@2 [db5,db6]@5 ~", S: "db5@6 ab4@4 gb4@5 ~", T: "~ [db5,db6]@2 ~",
  U: "[gb5 ~ f5@3 ~ eb5@2 ~@2 db5@3 ~ db5@12 ~@6]/2", V: "~@6 gb4 f4, db5@3 db5@2 db5@3, ~ f4@2 ~ f4@2 ~@2, ~ gb4 ~@2",
  W: "~@6 gb4 f4, c5@3 c5@2 c5@3, ~ f4@2 ~ f4@2 ~@2, ~ gb4 ~@2",
  X: "[~@6 gb4 ~@8 f4, db5@3 db5@2 db5@3 db5@3 db5@3 db5@2, ~ f4@2 ~ f4@2 ~ f4@2 f4@3 gb4@2 ~@2, ~@2 gb4@2 ~@6 c5@2 ~ f4@2 ~]/2",
  Y: "[gb5@2 f5@3 ~ eb5@3 ~ db5@3 ~ db5@7 ~@11]/2", Z: "[gb4@2 f4@3 ~ eb4@3 ~ db4@3 ~ db4@6 ~@12]/2",
})).s("gm_vibraphone").gain(0.32)

// chords · orchestral harp · "HARP"
const orchestral_harp = note("<~@15 A ~@16 B ~@8 A ~@16 B ~@8 C ~@7 A ~@7 C ~@13>".pickRestart({
  A: "~@4 [ab6,bb6] [db6,eb6,gb6] [gb5,ab5,bb5] [bb4,db5,eb5] [gb4,ab4] [db4,eb4] bb3 ~@5", // Absus2 Ebm7 Gb Eb7 Gbsus2 Dbsus2
  B: "~@4 [ab6,bb6] [db6,eb6,gb6] [gb5,ab5,bb5] [bb4,db5,eb5] [gb4,ab4] [eb4,gb4,ab4] [bb4,db5,eb5,gb5,ab5] [bb5,db6,eb6,gb6] [ab6,bb6] ~@3", // Absus2 Ebm7 Gb Eb7 Gbsus2 Ab7 Ebm7 Absus2
  C: "~@4 [bb6,db7] [eb6,gb6,ab6] [ab5,bb5,db6] [db5,eb5,gb5] [ab4,bb4] [gb4,ab4,bb4] [db5,eb5,gb5,ab5,bb5] [db6,eb6,gb6,ab6] [b6,db7] ~@3", // Bbm Ab7 Bbm7 Ebm7 Absus2 Gb Ebm7 Dbsus4 …
})).s("gm_orchestral_harp").gain(0.24).pan(0.7)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A B C B@6 D B C B@14 C B C B@6 E B E B@7 F B@6 D B C B@6 G B H B@5 I B J B@5 K B L B@7 M B@4 ~
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@3 x!2 ~ x!3 ~@2", E: "~@4 x ~@5 x ~ x!2 ~@2",
  F: "~@4 x ~@7 x ~ x!2", G: "~@4 x ~@5 x ~ x ~ x!2", H: "~ x ~@2", I: "~@4 x ~@3 x!3 ~ x ~@3", J: "~@4 x ~@5 x!4 ~@2",
  K: "~@4 x ~@3 x!5 ~@3", L: "~@4 x ~@5 x!3 ~@3", M: "~@4 x ~@3 x ~ x ~ x!3 ~",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@5 A B C D@2 E C D F A B C D@7 C D@5 E A E C D@3 C D G A E C D@6 E C D@5 F A H C D@3 C D E A I J K@2 L J K A I C D@4
  F A ~ C D@3 C D@2 F M D@3 ~
>`.pickRestart({
  A: "~ x!3", B: "x!5 ~@3", C: "~ x!4 ~ x!2", D: "x!5 ~ x!2", E: "x!5 ~ x ~", F: "x!4 ~@4",
  G: "x ~ x ~ x ~ x ~ x ~@2 x ~@4", H: "x ~@2 x", I: "~ x ~@6", J: "~ x!7", K: "x!8", L: "x!7 ~", M: "~@2 x!3 ~ x ~",
})).gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@6 A B ~ B@3 ~ B ~ A B ~ B@13 ~ C B ~ B@3 ~ B ~ C B ~ B@13 ~@2 B ~ B@3 ~ B ~@9 D B ~ B@4 ~@2 B ~ B@3 ~ B@6 ~
>`.pickRestart({
  A: "~@3 x", B: "~@7 x ~@8", C: "~@5 x ~@10", D: "~@3 x ~@12",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@67 [~@8 x!7 ~] ~@5 [~@13 x!2 ~] ~@9 [~ x] ~@13>").gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@4 A ~ A ~@6 B ~ A ~@14 A ~ A ~@6 A ~ A ~@14 A ~ A ~@16 B ~@5 A ~ C ~@13
>`.pickRestart({
  A: "~@7 x", B: "~@4 x ~@2 x", C: "~@8 x ~@4 x ~@2",
})).gain(0.48)

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

// drums · high tom
const high_tom = s("ht").struct("<~@81 [~@13 x ~@2] ~@15>").gain(0.32)

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

stack(
  epiano2, bass, bass_soft, electric_guitar_jazz, fretless_bass, fretless_bass_soft, acoustic_guitar_steel, rock_organ,
  vibraphone, orchestral_harp, kick, snare, hihat, hihat_soft, low_tom, mid_tom, open_hat, high_tom, crash
)

More by Prince