Strudelify

Don't Stop

Madonna

KeyE majorTempo100 bpm
0:00/0:00
// Don't Stop — Madonna
// 100 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/4)

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

// chords · vibraphone · "Vibes"
const vibraphone = note(`<
  ~ A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B
  C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "[g#3,b3,c#4,e4]", B: "[a3,d4,f#4]", C: "[b3,c#4,e4,g#4]", D: "[f#3,a3,d4]",
})).s("gm_vibraphone").gain(0.29)

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  ~@5 A B A B A B A B ~@8 A B A B A B A B ~@8 A B A B A B A B A B A B A B A B A B A B A B A B ~@8 A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "[g#3,b3,c#4,e4]@3 ~ [g#3,b3,c#4,e4]@3 ~ [g#3,b3,c#4,e4]@3 ~ [g#3,b3,c#4,e4]@3 ~", // C#m7
  B: "[f#3,a3,d4]@3 ~ [f#3,a3,d4]@3 ~ [f#3,a3,d4]@3 ~ [f#3,a3,d4]@3 ~", // D
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@5 A B ~@2 A C D E F G F G F G F G A B ~@2 A C D E F G F G F G F G A B ~@2 A C D E A B ~@2 A C D E H G F I J G F I F
  G F G F G F G A B ~@2 A C D E A B ~@2 A C D E J G F I J G F I J G F I J G F I
>`.pickRestart({
  A: "~@6 g#5 ~", B: "~@10 d5 d#5 e5@2 ~@2", C: "~@6 a5@2 ~@2 d5 d#5 e5@2 ~@2", D: "g#5", E: "a5@3 g#5@5",
  F: "e6 ~ e6 ~ e6 ~ e6 ~", G: "d6 ~ d6 ~ d6 ~ d6 ~", H: "e6@2 ~@2 e6@2 ~@2 e6@2 ~@2 e6 b4 d5 b4",
  I: "d6@2 ~@2 d6@2 ~@2 d6@2 ~@2 d6 b4 e5 b4", J: "[e5,e6]@2 ~@2 e6@2 ~@2 e6@2 ~@2 e6 b4 d5 b4",
})).s("gm_string_ensemble_1").gain(0.2)

// bass · acoustic bass · "Acou Bass"
const bass = note(`<
  ~ A@4 B C B D B C B D B E B F B E B F B C B D B C B D B E B F B E B F B C B D B C B D B G B H B G B H B C B D B C B D
  B E B F B E B F B C B D B C B D B G B H B G B H B C@3 B C@4 B C I C B C I
>`.pickRestart({
  A: "e1@3 ~@5 e1@3 ~@5", B: "e1@2 ~ b1@3 e2@7 ~ b1@2", C: "e1@2 ~ b1@3 e2@4 f#2@2 e2@2 b1@2",
  D: "e1@2 ~ b1@3 e2@4 e2@2 e2@2 b1@2", E: "e1@2 ~ b1@3 f#2@7 ~ b1@2", F: "e1@2 ~ b1@3 f#2@5 ~ e2@2 b1@2",
  G: "f#1@2 ~ b1@3 f#2@4 f#2@2 e2@2 b1@2", H: "f#1@2 ~ b1@3 f#2@6 e2@2 b1@2", I: "e1@3 ~@5 b1@3 ~ b1@3 ~",
})).s("gm_acoustic_bass").gain(0.42)

// drums · kick
const kick = s("bd").struct(`<
  ~
  [x ~@2 x ~@4 x ~@2 x ~@4]!3
  [x ~@2 x ~@4 x ~@2 x ~@2 x ~]
  [x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~]!96
>`).gain(0.42)

// drums · snare
const snare = s("sd").struct("<[~@12 x!3 ~] [~ x ~ x]!100>").gain(0.42)

// drums · clap
const clap = s("cp").struct(`<
  ~ A@3 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B A@7 B
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~@5",
})).gain(0.42)

// drums · hihat
const hihat = s("hh").struct("<~ [~ x!7] [x!8]!99>").gain(0.42)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@4 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A
>`.pickRestart({
  A: "~@4 x ~@2 x",
})).gain(0.42)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A ~@3 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B
>`.pickRestart({
  A: "~@7 x", B: "~@12 x!2 ~@2",
})).gain(0.42)

// drums · high tom
const high_tom = s("ht").struct(`<
  A ~@3 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~@5 x ~@2",
})).gain(0.42)

// drums · crash
const crash = s("cr").struct("<~ x ~@99>").gain(0.42)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@21 A ~@15 A ~@31 A ~@7 A ~@23>".pickRestart({
  A: "x",
})).gain(4.95)

stack(
  vibraphone, acoustic_guitar_nylon, string_ensemble_1, bass, kick, snare, clap, hihat, low_tom, mid_tom, high_tom,
  crash, vibraslap
)

More by Madonna