Strudelify

Ariana Grande - God is a woman

Ariana Grande

KeyG♭ majorTempo145 bpm
0:00/0:00
// Ariana Grande - God is a woman — Ariana Grande
// 145 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Piano" named as a piano, played on piano (its synth strings 1 patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5616128; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(145/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
const piano = note(`<
  ~@17 A@4 B@2 C D A@4 B@2 C D E F G@2 H@2 I J@3 K@2 L@2 M N O@2 P@2 Q@2 M R@2 A@4 B@2 C D S@2 T@2 B@2 C D U@2 ~@5 V W@2
  X@2 Y@2 Z AA W@2 X@2 Y@2 Z AA W@2 X@2 Y@2 Z AA ~@8
>`.pickRestart({
  A: "[~@15 [db2,db3,gb3], [eb2,eb3] [eb2,eb3] [eb2,eb3] [eb2,eb3], ~@3 ab3@8 ab3@5 ~@3 ab3@8 ab3@5, ~ bb3@2 bb3 ~ bb3@2 bb3, ~@7 gb3@8 ~]/4", // Gb5 Eb
  B: "[~@7 [bb1,bb2,eb3], [b1,b2,eb3] [b1,b2], ~@3 gb3@8 gb3@5, ~ ab3@2 ab3, ~@4 eb3@3 ~]/2", // Eb5 B
  C: "~@7 [a1,a2], [ab1,ab2], eb3@3 eb3, ~@3 gb3@5, ~ ab3", D: "f3@3 gb3 ab3@2 ~ [db2,db3], [bb1,bb2]@3 bb3",
  E: "~@7 eb4, [eb2,eb3]", // Eb
  F: "[bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4], [eb2,eb3]", // Ebsus4 Eb
  G: "[[eb2,eb3,bb3,eb4]@16 [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4], [gb4,bb4], ~ [eb2,eb3], ~@7 [db2,db3]]/2", // Eb5 Ebsus4 Gb Eb Db
  H: "[eb4@14 eb4@2 [b3,eb4,ab4]!2 ~ [b3,eb4,ab4]!3 ~ [b3,eb4,ab4]!3 ~ [b3,eb4,ab4]!3 ~ [b3,eb4,ab4], [gb4,bb4], [b1,b2,b3] [b1,b2], ~@7 [bb1,bb2]]/2", // Abm Gb B Bb
  I: "~@7 [a1,a2], [ab1,ab2,bb3,eb4,gb4,bb4], ~ [f4,ab4]", // A Ebm Fm
  J: "[[f4,bb4]@3 [f4,bb4]@2 [f4,ab4] ~ [db2,db3] ~@6 [eb3,ab3,db4,f4]@10, [bb1,bb2] bb4 gb4@2, ~@3 gb4 eb4 bb3@7, ~@6 bb3@2 eb3@3 eb4@13, ~@3 eb4 eb2@8]/3", // Bb5 Fm Db Bb
  K: "[~@3 eb3@3 ~ db3, eb3@3 [ab3,db4,f4]@3 eb3@2, eb4@3 eb4@13, ~ bb3@7, ~ gb4@3]/2", // Db
  L: "[~@3 b2@3 ~ bb2, b1@3 [ab3,db4,f4]@3 b2@2, b2 gb4@3, eb4@3 eb4@13, ~ bb3@7]/2", // Db
  M: "~@7 a2, ab2, ~@3 ab3@13, ~@3 b3@5, ~ eb4", N: "~ f4, bb2, ~@3 bb3@13, ~@3 db4@5",
  O: "[~@3 [eb3,ab3,db4,f4]@5, eb2, eb3 gb4@3, ~ bb3@7, ~@3 eb4@13]/2", // Db
  P: "[~@3 eb3@3 ~ db3, eb3@3 [ab3,db4,f4]@3 eb3@2, ~ bb3@7, ~@3 eb4@13, ~ gb4@3]/2", // Db
  Q: "[~@3 b2@3 ~ bb2, b1@3 [ab3,db4,f4]@3 b2@2, b2 gb4@3, ~ bb3@7, ~@3 eb4@13]/2", // Db
  R: "[~ f4@3, bb2, ~@3 bb3@29, ~@3 db4@13]/2", S: "[~@2 [eb2,eb3] ~, [eb2,eb3] ~, ~@3 ab3@5 ~@8, ~@8 bb3@15 ~@9]/2",
  T: "[~@4 [eb2,eb3] ~@3, [eb2,eb3] ~, ~@3 ab3@5 ~@8, ~@8 bb3@11 ~@13]/2", U: "[eb2, eb3 ~]/2",
  V: "~@3 [f4,bb4]@2 [f4,ab4] ~ [db2,db3], ~@3 [bb3,eb4,gb4,bb4]", // Bb5 Fm Db Ebm
  W: "[~@3 [eb2,eb3,ab3,db4,f4]@5, [eb2,eb3]@3 ~@5, eb4@3 eb4@13, ~ bb3@7, ~ gb4@3]/2", // Db Eb
  X: "[~@3 [eb2,eb3]@3 ~ [db2,db3], [eb2,eb3]@3 [ab3,db4,f4]@3 [eb2,eb3]@2, eb4@3 eb4@13, ~ bb3@7, ~ gb4@3]/2", // Eb Db Eb Db Eb
  Y: "[~@3 b1 b1@2 ~ [bb1,bb2], [b1,b2]@3 [b2,ab3,db4,f4]@3 [b1,b2]@2, eb4@3 eb4@13, ~ bb3@7, ~ gb4@3]/2", // Bb B Db7 B
  Z: "~@7 [a1,a2], [ab1,ab2], ~@3 ab3@13, ~@3 b3@5, ~ eb4", AA: "~ f4, [bb1,bb2], ~@3 bb3@13, ~@3 db4@5",
})).s("gm_piano").gain(0.4)

// chords · piano · soft notes
const piano_soft = note("<A@4 B@2 C D@3 A@2 B@2 C E@2 ~@57 F G H@2 I@2 J K ~@32>".pickRestart({
  A: "[~@3 [eb3,ab3,db4,f4]@5, eb3@3 ~@5, eb4@3 eb4@13, ~ bb3@7, ~ gb4@3]/2", // Db
  B: "[~@3 [b2,ab3,db4,f4]@5, b2@3 ~@5, eb4@3 eb4@13, ~ bb3@7, ~ gb4@3]/2", C: "~ eb4, ab2, ~@3 ab3@13, ~@3 b3@5",
  D: "[~@7 [eb3,ab3,db4,f4]@5, bb2@2 ~, ~@3 bb3@13 [eb3,eb4]@4 bb3@28, ~@3 db4@8 eb4@13, ~ f4@2 gb4@3]/3", // Db Eb
  E: "[~ f4@3, bb2, ~@3 bb3@29, ~@3 db4@13]/2", F: "~@7 eb4",
  G: "[bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4], eb3", // Ebsus4
  H: "[[eb3,bb3,eb4]@16 [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4]!3 ~ [bb3,eb4,ab4], [gb4,bb4], ~ eb3, ~@7 db3]/2", // Eb5 Ebsus4 Gb
  I: "[eb4@14 eb4@2 [b3,eb4,ab4]!2 ~ [b3,eb4,ab4]!3 ~ [b3,eb4,ab4]!3 ~ [b3,eb4,ab4]!3 ~ [b3,eb4,ab4], [gb4,bb4], [b2,b3] b2, ~@7 bb2]/2", // Abm Gb B
  J: "~@7 a2, [ab2,bb3,eb4,gb4,bb4], ~ [f4,ab4]", K: "[bb1,bb2]@13 ~@3, [f4,bb4]@3 ~@5",
})).s("gm_piano").gain(0.2)

// chords · piano
const piano_2 = note("<~@82 A@4 B@2 C D A@4 B@2 C D A@4 B@2 C D A@4 B@2 C D>".pickRestart({
  A: "[~@8 [bb3,eb4,gb4,bb4]@4 [ab3,db4,f4,ab4]@19 ~@9 [bb3,eb4,gb4,bb4]@4 [ab3,db4,f4,ab4]@19 ~, [eb2,eb3]@61 ~@3]/4", // Ebm Db Ebm Db Eb
  B: "[~@8 [bb3,eb4,gb4,bb4]@4 [ab3,db4,f4,ab4]@19 ~, [b1,eb3]@15 ~]/2", C: "[ab1,ab2,ab3,b3,eb4,gb4]@15 ~",
  D: "[bb1,bb2,bb3,db4,f4,ab4]@15 ~", // Bbm7
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft_2 = note("<~@41 A@4 B@2 C D E@4 F@2 G H ~@57>".pickRestart({
  A: "[~@8 [bb3,eb4,gb4]@4 [ab3,db4,f4]@15 ~@13 [bb3,eb4,gb4]@4 [ab3,db4,f4]@15 ~@5, eb2@61 ~@3]/4", // Ebm Db Ebm Db
  B: "[~@8 [bb3,eb4,gb4]@4 [ab3,db4,f4]@15 ~@5, b1@15 ~]/2", C: "[ab3,b3,eb4]@11 ~@5, ab1@15 ~",
  D: "[bb3,db4,f4]@11 ~@5, bb1@15 ~", // Bbm
  E: "[~@8 [bb3,eb4,gb4,bb4]@4 [ab3,db4,f4,ab4]@15 ~@13 [bb3,eb4,gb4,bb4]@4 [ab3,db4,f4,ab4]@15 ~@5, eb2@61 ~@3]/4", // Ebm Db Ebm Db
  F: "[~@8 [bb3,eb4,gb4,bb4]@4 [ab3,db4,f4,ab4]@15 ~@5, b1@15 ~]/2", G: "[ab3,b3,eb4,gb4]@11 ~@5, ab1@15 ~",
  H: "[bb3,db4,f4,ab4]@11 ~@5, bb1@15 ~", // Bbm7
})).s("gm_piano").gain(0.2)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  ~@17 A@4 B@2 C D A@4 B@2 C D A@4 B@2 C D ~@17 A@4 B@2 C D E@2 F@2 B@2 C D ~@8 A@4 B@2 C D A@4 B@2 C D A@4 B@2 C D A@4
  B@2 C D
>`.pickRestart({
  A: "[[eb1,eb2]@3 [eb1,eb2]@5]/2", B: "[[b0,b1]@3 [b0,b1]@5]/2", C: "[ab0,ab1]", D: "[bb0,bb1]",
  E: "[[eb1,eb2]@3 [eb1,eb2]@3 ~@2]/2", F: "[[eb1,eb2]@3 [eb1,eb2]@2 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@16 A B@24 ~@8 C@6 D@2 A B@9 E B F B@36 ~@8>".pickRestart({
  A: "~@6 x!2", B: "~ x!3 ~ x!3", C: "x!2 ~ x", D: "x!4", E: "~ x!3 ~@4", F: "~ x ~@6",
})).gain(0.4)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@17 A@24 ~@17 A@9 ~ A ~ A@4 ~@7 A@25 ~@8>".pickRestart({
  A: "~ x",
})).gain(0.64)

// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~@74 [~ x]!7 ~@33>").gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@17 A B A B A B A B A B A B A B A B A B A B A B A B ~@17 A B A B A B A B A C A D A B A B ~@7 A@2 B A B A B A B A B A
  B A B A B A B A B A B A B ~@8
>`.pickRestart({
  A: "~ x", B: "~ x ~@2 x ~@3", C: "~ x ~@6", D: "~@2 x ~@11 x!2",
})).gain(0.64)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@74 A B A B A B A C ~@32>".pickRestart({
  A: "~ x", B: "~ x ~@2 x ~@3", C: "~ x ~@6",
})).gain(0.32)

// drums · whistle
const whistle = s("ballwhistle:0").struct(`<
  ~@17 A ~@7 A ~@7 A ~@7 A ~@16 A ~@7 A ~ A ~ A ~@3 A ~@7 A ~ A ~ A ~ A@3 ~ A ~ A ~ A@3 ~ A ~ A ~@3 A ~@7
>`.pickRestart({
  A: "x",
})).gain(1.04)

// drums · guiro
const guiro = s("guiro:0").struct("<~@16 A B@24 ~@16 A B@9 C B D B@4 ~@7 E B@24 ~@8>".pickRestart({
  A: "~@6 x!2", B: "x!8", C: "x!4 ~@4", D: "x!2 ~@6", E: "~ x!7",
})).gain(11.83)

// drums · guiro · soft notes
const guiro_soft = s("guiro:0").struct("<~@74 [x!8]!7 x ~@32>").gain(6.76)

// drums · guiro
const guiro_2 = s("guiro:4").struct(`<
  ~@17 A ~@7 A ~@7 A ~@7 A ~@16 A ~@7 A ~ A ~ A ~@3 A ~@7 A ~ A ~ A ~ A@3 ~ A ~ A ~ A@3 ~ A ~ A ~@3 A ~@7
>`.pickRestart({
  A: "x",
})).gain(11.83)

// drums · woodblocks
const woodblocks = s("woodblock:4").struct(`<
  ~@17 A ~@7 A ~@7 A ~@7 A ~@16 A ~@7 A ~ A ~ A ~@3 A ~@7 A ~ A ~ A ~ A@3 ~ A ~ A ~ A@3 ~ A ~ A ~@3 A ~@7
>`.pickRestart({
  A: "x",
})).gain(1.16)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct(`<
  ~@17 A ~@7 A ~@7 A ~@7 A ~@16 A ~@7 A ~ A ~ A ~@3 A ~@7 A ~ A ~ A ~ A@3 ~ A ~ A ~ A@3 ~ A ~ A ~@3 A ~@7
>`.pickRestart({
  A: "x",
})).gain(3.46)

// drums · bell tree
const bell_tree = s("marktrees:0").struct(`<
  ~@17 A ~@7 A ~@7 A ~@7 A ~@16 A ~@7 A ~ A ~ A ~@3 A ~@7 A ~ A ~ A ~ A@3 ~ A ~ A ~ A@3 ~ A ~ A ~@3 A ~@7
>`.pickRestart({
  A: "x",
})).gain(4.77)

stack(
  piano, piano_soft, piano_2, piano_soft_2, bass, kick, pedal_hat, pedal_hat_soft, mid_tom, mid_tom_soft, whistle,
  guiro, guiro_soft, guiro_2, woodblocks, jingle_bells, bell_tree
)

More by Ariana Grande