Strudelify

Paid My Dues

Anastacia

KeyC♯ minorTempo97 bpm
0:00/0:00
// Paid My Dues — Anastacia
// 97 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · electric bass finger
const bass = note(`<
  ~@8 A B C A@2 B C A D E F G H I C J H I C J ~@4 A B C A@2 B C A D E F K H I C J H I C J L M N O L M N P D Q R S T U V
  W T U V W T U V W X Y Z X ~
>`.pickRestart({
  A: "c#2 ~ g#1 ~ e1 ~ c#1@7 ~@3", B: "b1 ~ f#1 ~ d1 ~ b0@7 ~@3", C: "a1 ~ e1 ~ a1@4 b1 ~ f#1 ~ b1@4",
  D: "c#1@9 ~ c#2 ~ c#2@4", E: "d#2@10 ~ d#1 d#2 d#1 ~@2", F: "e1 ~ e1@2 ~@2 e1 ~ f#1 ~ f#1@4 f#1@2",
  G: "c#1@4 c#3!2 b2 g#2 b2 g#2@3 f#2 e2 c#2 b1", H: "c#2 ~ g#1 ~ e1 ~ c#1@6 c#2@4", I: "b1 ~ f#1 ~ d1 ~ b0@6 b1@4",
  J: "c#2 ~ g#1 ~ e1 ~ c#1@5 g#1 b1@4", K: "c#1@4 c#3@2 b2@3 g#2@3 b2 g#2 f#2 e2", L: "c#2@2 g#1@2 ~@9 b1 c#2@2",
  M: "b1 f#2 ~@5 b1", N: "a1 e2 ~ a1 b1 f#1 ~ b1", O: "c#2@2 g#1@2 ~@2 c#1 ~ c#1@2 ~@4 b1@2",
  P: "c#2@2 g#1@2 ~@2 c#1 ~ c#1@2 g#1@2 c#2@3 ~", Q: "~@6 d#1@4 d#2 d#2@2 e2@3, d#2@5 ~@3",
  R: "e2 ~ e1@2 e2@4 f#1 ~ f#1@2 f#2@4", S: "c#1@9 c#1 ~ c#1 c#2@4", T: "d2 ~ a1 ~ f1 ~ d1@6 d2@4",
  U: "c2 ~ g1 ~ d#1 ~ c1@6 c2@4", V: "a#1 ~ f1 ~ a#1@4 c2 ~ g1 ~ c2@4", W: "d2 ~ a1 ~ f1 ~ d1@5 a1 c2@4", X: "d1",
  Y: "c1", Z: "a#1 c2",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · pad warm
const pad_warm = note("<A B C D A E F G ~@20 A E F G ~@49>".pickRestart({
  A: "[c#4,e4]", B: "[b3,d#4]", C: "[a3,c#4] [b3,d#4]", D: "[c#4,e4,g#4]", E: "[d#4,f#4]", F: "[c#4,e4] [b3,d#4]",
  G: "[e4,g#4,c#5]@3 ~", // C#m
})).s("gm_pad_warm").gain(0.24).pan(0.6)

// other · pad choir
const pad_choir = note(`<
  A B C D A B C E ~@12 A B C F A G H I A B C E ~@12 A B C F A G H I ~@12 J K L M J N O P J K L M J N Q P ~
>`.pickRestart({
  A: "e4", B: "f#4@15 ~", C: "a4 b4", D: "c#5@15 ~", E: "c#5@3 ~", F: "c#5", G: "f#4@14 c#4 ~",
  H: "a4 [d#4,b4], e4@3 ~@5", I: "c#5, c#4@13 ~@3", J: "f4", K: "g4@15 ~", L: "a#4 c5", M: "d5", N: "g4@14 d4 ~",
  O: "a#4 [e4,c5], f4@3 ~@5", P: "d5, d4@13 ~@3", Q: "[f4,a#4] [e4,c5]",
})).s("gm_pad_choir").gain(0.4)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A B C A D E F G ~@8 H I J H K L M N K L M N D E F G ~@8 H I J H K L M N K L M N ~@8 H I J H O P Q R O S Q R O P Q R O
  S Q R ~
>`.pickRestart({
  A: "[c#3,c#4] ~ [g#2,g#3] ~ [e2,e3] ~ [c#2,c#3]@9 ~", B: "[b2,b3] ~ [f#2,f#3] ~ [d#2,d#3] ~ [b1,b2]@10",
  C: "[a2,a3] ~ [e2,e3] ~ [a2,a3]@3 ~ [b2,b3] ~ [f#2,f#3] ~ [b2,b3]@3 ~", // A E A B F# B
  D: "[c#3,c#4] ~ [g#2,g#3] ~ [e2,e3] ~ [c#2,c#3]@9 ~, e6", E: "[b2,b3] ~ [f#2,f#3] ~ [d#2,d#3] ~ [b1,b2]@10, f#6",
  F: "[a2,a3] ~ [e2,e3] ~ [a2,a3]@3 ~ [b2,b3] ~ [f#2,f#3] ~ [b2,b3]@3 ~, e6 d#6", // A E A B F# B
  G: "[c#3,c#4] ~ [g#2,g#3] ~ [e2,e3] ~ [c#2,c#3]@6 ~@4, c#6@3 ~", H: "[c#2,c#6]@15 ~", I: "[d#2,d#6]@15 ~",
  J: "[e2,e6] [f#2,f#6]", K: "[e4,e6]", L: "[b3,d#4,f#6]", M: "[a3,c#4,e6] [b3,d#4,d#6]", N: "[c#4,e4,c#6]",
  O: "[f4,f6]", P: "[e4,g6]", Q: "[d4,f6] [e4,e6]", R: "[f4,d6]", S: "[e4,g6]@15 ~",
})).s("gm_string_ensemble_1").gain(0.46).pan(0.4)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@16 A B C D A E F G A E F G ~@12 A B C D A E F G A E F G ~@8 A B C H I J K L M J K L I J K L M J K L ~
>`.pickRestart({
  A: "[g#2,c#3]", B: "[a#2,d#3]", C: "[b2,e3] [c#3,f#3]", D: "[g#2,c#3]@5 [c#2,g#2]@3", E: "[f#2,b2]",
  F: "[a2,e3] [b2,f#3]", G: "[c#3,g#3]", H: "[g#2,c#3]@10 ~@2 [c#3,d#3,e3] b2 [f#2,g#2,a2] [c#2,d#2,e2]",
  I: "[a2,d3], c2 ~@15", J: "[g2,c3]", K: "[a#2,f3] [c3,g3]", L: "[d3,a3]", M: "[a2,d3]",
})).s("gm_overdriven_guitar").gain(0.44).pan(0.4)

// chords · piano
const piano = note(`<
  ~@8 A B C D A B C D E F G H I J K L I J K L ~@4 A B C D A B C D E F G M I J K L I J K L N O P Q N O P Q E F G R S T U
  V S T U V S T U V S T W X ~
>`.pickRestart({
  A: "c#3 ~ c#3 ~@13", B: "b2 ~ b2 ~@7 b1@2 b2@3 ~", C: "a2 ~ e2 ~@5 b2 ~ f#2@2 ~@4", D: "c#3 ~ g#2 ~ e2 ~ c#2@6 ~@4",
  E: "[c#2,g#2,c#3]", F: "[d#2,a#2,d#3]@15 ~", G: "[e2,b2,e3] [f#2,c#3,f#3]",
  H: "~@8 [f#7,g#7] [b6,c#7,d#7,e7] e6 [g#5,b5] [d#5,e5] [c#4,e4,a#4] [f#3,b3] ~, c#2", // F#sus2 C#m7 G#m Emaj7 A#dim B5
  I: "[e4,g#4,c#5] ~ c#4 ~@3 [e4,g#4]@4 [e4,g#4,c#5] ~@2 [e4,g#4,c#5]@3", // C#m E C#m
  J: "~@2 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~ f#3@2 [f#4,b4,d#5] b2 ~ [f#4,b4,d#5] ~@2", // B
  K: "[e4,a4,c#5]@5 ~ [e4,a4,c#5] ~ [f#4,b4,d#5]@6 [f#4,b4,d#5] ~", // A B
  L: "[g#4,c#5,e5] ~ [g#4,c#5,e5] ~ [f#4,b4,d#5] ~ [g#4,c#5,e5]@2 ~@2 [g#4,c#5,e5] g#4@2 [g#4,c#5,e5] c#2@2, ~@2 c#2 ~", // C#m B C#m
  M: "~@8 [f#7,g#7] [b6,c#7,d#7,e7] e6 [g#5,b5] [b4,e5] [c#4,d#4,e4,g#4,a#4] b3 ~, c#2", N: "c#2 g#1 ~@5 c#2",
  O: "b1 f#1 ~@5 b1", P: "a1 e2 ~ a1 b1 f#1 ~ b1", Q: "c#2 g#1 ~@5 b1",
  R: "~@8 [f#7,g#7] [b6,c#7,e7] e6 [g#5,b5] [b4,c#5,e5] [c#4,d#4,e4,f#4,a#4] [a#3,b3] ~, c#2", // F#sus2 C#m7 G#m C#m7 D#m7 Bmaj7
  S: "[f4,a4,d5] ~ d4 ~@3 [f4,a4]@4 [f4,a4,d5] ~@2 [f4,a4,d5]@3", // Dm F Dm
  T: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5] ~ g3@2 [g4,c5,e5] c3 ~ [g4,c5,e5] ~@2", // C
  U: "[f4,a#4,d5]@5 ~ [f4,a#4,d5] ~ [g4,c5,e5]@6 [g4,c5,e5] ~", // A# C
  V: "[a4,d5,f5] ~ [a4,d5,f5] ~ [g4,c5,e5] ~ [a4,d5,f5]@2 ~@2 [a4,d5,f5] a4@2 [a4,d5,f5] d2@2, ~@2 d2 ~", // Dm C Dm
  W: "[a#1,f4,a#4,d5] [c2,g4,c5,e5]", X: "[d2,a4,d5,f5]",
})).s("gm_piano").gain(0.53)

// chords · piano · soft notes · G#7 F# Bsus2 G#7 D#sus4 Bsus2 G#7 F# …
const piano_soft = note(`<
  ~@19
  [~@9 a#6 [d#6,f#6,g#6] [f#5,a#5,c#6] [b4,c#5] [d#4,f#4,g#4] [d#3,e3,g#3,a#3] [b2,c#3]]
  ~@23
  [~@9 a#6 [d#6,f#6,g#6] [f#5,a#5,c#6] [c#5,d#5] f#4 [d#3,e3,f#3,g#3,a#3] [b2,c#3]]
  ~@19
  [~@9 [a#6,d#7] [d#6,f#6,g#6] [f#5,a#5,c#6] d#5 g#4 [d#3,e3,f#3,g#3] [b2,c#3]]
  ~@17
>`).s("gm_piano").gain(0.3)

// chords · clavinet
const clavinet = note("<~@51 A B C D E B C D E ~@21>".pickRestart({
  A: "~@7 b2", B: "c#3@2 [g#3,c#4] ~@2 [g#3,c#4] c#3@2 [g#3,c#4] ~ c#3 [g#3,c#4] ~ b1 [c#2,g#3,c#4]@2",
  C: "~@2 [f#3,b3] ~@2 [f#3,b3] b2@2 [f#3,b3] ~ b2 [f#3,b3] ~ a1 [b1,f#3,b3]@2", // B5
  D: "~@2 [e3,a3] ~@2 [e3,a3] a1@2 b1@2 [f#3,b3] ~@2 [f#3,b3] b1@2", // A5 B5
  E: "c#2@2 [g#3,c#4] ~@2 [g#3,c#4] c#3@2 [g#3,c#4] ~ c#3 [g#3,c#4] ~@2 [g#3,c#4]@2", // C#5
})).s("gm_clavinet").gain(0.47)

// other · electric guitar muted
const electric_guitar_muted = note("<~@8 A B C D E F G H ~@16 A B C D E F G H ~@41>".pickRestart({
  A: "~@2 c#4 ~ b3 ~ g#3 ~ g#3!2 c#4 ~ c#4 b3 g#3 ~", B: "~@2 d#4 b2!2 d#4 b2!2 d#4 ~@7",
  C: "~@2 c#4 ~ c#4 b3 g#3 ~@3 c#4 ~ c#4 b3 g#3@2", D: "~@2 b3@2 g#3 c#4 c#3!2 c#4 ~@7",
  E: "~@2 c#4 ~ c#4 b3 g#3 ~@3 c#4 ~@2 b3 g#3 ~", F: "~@2 d#4 b2!2 d#4 b2!2 d#4 c#4@6 ~",
  G: "~@2 c#4 ~ c#4 b3 g#3@3 ~ c#4 ~ c#4 b3 g#3@2", H: "~@2 b3@2 g#3 c#4 c#3!2 c#4!2 ~@6",
})).s("gm_electric_guitar_muted").gain(0.44).pan(0.9)

// other · electric guitar muted
const electric_guitar_muted_2 = note("<~@8 A B C D E F G H ~@16 A I C D E F G H ~@15 J ~@25>".pickRestart({
  A: "~@4 b3 ~ b3 c#4@7 ~@2", B: "~@2 g#5@6 g#4@2 c#4 ~@3 e4 ~", C: "c#4@10 ~@2 b3 ~ b3 ~", D: "c#4@9 ~ f#3 ~@2 b3 ~@2",
  E: "c#4@9 ~ e4 ~ g#4@4", F: "f#4 e4 c#4 ~ f#4 ~ e4@2 c#4@3 ~@5", G: "c#4@8 ~ e4 c#4!2 e4 ~ e4@2",
  H: "c#4@6 c#4@7 ~@3", I: "~@2 g#5@6 g#4 ~ c#4 ~@3 e4 ~", J: "~@11 e4 e4@3 ~",
})).s("gm_electric_guitar_muted").gain(0.43).pan(0.2)

// chords · piano
const piano_2 = note("<~@52 A B C A@2 B D E ~@21>".pickRestart({
  A: "[c#4,e4]", B: "[d#4,f#4]", C: "[c#4,e4]@3 e4 [b3,d#4]@3 [b3,d#4]",
  D: "[c#4,e4]@6 [b3,d#4]@2 [b3,d#4] [c#4,e4]@5 [b3,d#4]@2", E: "[c#4,e4] [e4,g#4]@11 ~@4",
})).s("gm_piano").gain(0.05)

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

// drums · snare
const snare = s("sd").struct("<~@8 A@11 B A@9 C A ~ A@11 D A@19 E A@7 B A@6 ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~@4 x ~@4 x ~@2 x ~@2 x", D: "~@12 x ~ x!2", E: "~@3 x",
})).gain(0.72)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@8 A B C ~ A B C ~@7 D ~@3 D ~ D ~ C ~ A B C ~ A B C ~@7 D ~@3 D ~@3 D ~@3 D ~@7 D ~@3 D ~@3 D ~@6
>`.pickRestart({
  A: "~@9 x ~@6", B: "~@7 x ~@8", C: "~@7 x ~@7 x", D: "~@15 x",
})).gain(0.32)

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

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

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

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@4 A@3 B C@2 ~ C@3 ~ C D@15 E C@2 ~ C@3 ~ C D@12 F G ~ H F G ~ H D@18 ~@3
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2", C: "~@7 x ~ x ~@6", D: "~@2 x!3 ~ x!3 ~ x!3 ~ x!2",
  E: "~@2 x!3 ~ x!3 ~ x ~ x ~@3", F: "~@7 x ~ x ~@4 x!2", G: "~@6 x!3 ~@7", H: "~@6 x!4 ~@6",
})).gain(1.62)

stack(
  bass, pad_warm, pad_choir, string_ensemble_1, overdriven_guitar, piano, piano_soft, clavinet, electric_guitar_muted,
  electric_guitar_muted_2, piano_2, kick, snare, snare_soft, hihat, open_hat, crash, cabasa
)

More by Anastacia