Strudelify

You Can't Deny It

Stansfield Lisa

KeyC minorTempo102 bpm
0:00/0:00
// You Can't Deny It — Stansfield Lisa
// 102 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "SYN BASS 1" synth bass 1 (copy of ch 2 "FRETLESS" fretless bass)
// note: Full arrangement: all 108 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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(`<
  ~@2 A B C D E F G H I H J F K L M H M N J F O P Q R S R T U V W X Y V Z AA AB A B C D E F G H I H J F K L M H M N J F
  O P Q R S R T U V W X Y V Z AA AB AC AD AE AF AG AH AI AF ~@8 O P Q R S R T U V W X Y V Z AA AB ~@2
>`.pickRestart({
  A: "[f4,a4,d5] ~@4 [a4,c5,e5] ~@3 [f4,a4] ~@14, ~@9 c5@2 ~@13", // Dm Am F
  B: "[g4,b4] ~@4 [g4,c5,e5] ~@3 [e4,b4] ~@14, d5@2 ~@7 g4@2 ~@13", // G C E5
  C: "[a4,d5]@2 ~@3 [a4,c5,e5] ~@3 [a4,c5]@2 ~@13, f4 ~@8 f4 ~@14", // D5 Am
  D: "[g4,b4] ~@4 [g4,c5,e5] ~@3 [e4,b4]@2 ~@13, d5@2 ~@7 g4 ~@14", // G C E5
  E: "[f4,d5]@2 ~@3 [a4,e5]@2 ~@2 [a4,c5]@2 ~@13, a4 ~@4 c5 ~@3 f4 ~@14", // Dm A5 Am
  F: "[g4,b4] ~@4 [g4,c5,e5] ~@3 [e4,g4,b4] ~@14, d5 ~@11", G: "[f4,a4] ~@4 [a4,c5,e5] ~@3 [f4,a4,c5] ~@14, d5 ~@11",
  H: "[g4,b4] ~@4 [g4,c5,e5] ~@3 [e4,g4] ~@14, d5@2 ~@7 b4@2 ~@13", // G C Em
  I: "[f4,a4,d5] ~@4 [a4,c5,e5] ~@3 [f4,c5] ~@14, ~@9 a4@2 ~@13", // Dm Am F5
  J: "[f4,a4] ~@4 [a4,c5,e5] ~@3 [f4,c5] ~@14, d5@2 ~@7 a4@2 ~@13", // F Am F5
  K: "[f4,a4] ~@4 [a4,c5,e5] ~@3 [a4,c5]@2 ~@13, d5@2 ~@7 f4 ~@14", // F Am
  L: "[g4,b4] ~@4 [c5,e5] ~@3 [e4,g4,b4] ~@14, d5@2 ~@3 g4@2 ~@17", // G C Em
  M: "[f4,a4] ~@4 [a4,c5,e5] ~@3 [f4,a4] ~@14, d5@2 ~@7 c5@2 ~@13", // F Am F
  N: "[g4,b4] ~@4 [g4,c5] ~@3 [e4,g4,b4] ~@14, d5@2 ~@3 e5@2 ~@17", // G C5 Em
  O: "[ab4,f5]@2 ~@3 [eb5,g5]@2 ~@2 [ab4,c5,eb5]@2 ~@13, c5 ~@23", // Db Eb Ab
  P: "[bb4,f5]@2 ~@3 [bb4,eb5,g5] ~@3 [g4,bb4]@2 ~@13, d5 ~@8 d5 ~@14", // Bb5 Eb Gm
  Q: "[ab4,c5,f5]@2 ~@3 [c5,eb5,g5]@2 ~@2 [ab4,c5,eb5]@2 ~@13", // Fm Cm Ab
  R: "[bb4,d5] ~@4 [bb4,eb5,g5] ~@3 [g4,d5] ~@14, f5@2 ~@7 bb4@2 ~@13", // Bb Eb G5
  S: "[ab4,c5] f5@2 ~@2 [c5,eb5,g5] ~@3 [ab4,c5] ~@14, ~@9 eb5@2 ~@13", // Ab Cm Ab
  T: "[ab4,c5,f5] ~@4 [c5,eb5,g5] ~@3 [ab4,c5] ~@14, ~@9 eb5@2 ~@13", // Fm Cm Ab
  U: "[bb4,d5] ~@3 eb5 [bb4,g5] ~@3 [g4,d5] ~@14, f5@2 ~@7 bb4@2 ~@13", // Bb Eb G5
  V: "[ab4,c5] ~@4 [c5,eb5,g5] ~@3 [ab4,c5] ~@14, f5@2 ~@7 eb5@2 ~@13", // Ab Cm Ab
  W: "[bb4,d5,f5] ~@4 [bb4,eb5] ~@3 [g4,d5] ~@14, ~@5 g5@2 ~@2 bb4@2 ~@13", // Bb Eb5 G5
  X: "[c5,f5] ~@4 [c5,eb5,g5] ~@3 [ab4,c5] ~@14, ab4@2 ~@7 eb5@2 ~@13", // F5 Cm Ab
  Y: "[bb4,d5] ~@4 [bb4,eb5] ~@3 [bb4,d5]@2 ~@13, f5@2 ~@3 g5@2 ~@2 g4 ~@14", // Bb Eb5 Bb
  Z: "[bb4,f5]@2 ~@3 [bb4,eb5,g5] ~@3 [g4,d5] ~@14, d5 ~@8 bb4@2 ~@13", // Bb5 Eb G5
  AA: "[ab4,f5]@2 ~@3 [c5,g5] ~@3 [ab4,c5] ~@14, c5 ~@4 eb5@2 ~@2 eb5@2 ~@13", // Db C5 Ab
  AB: "[bb4,d5] ~@4 [bb4,eb5,g5] ~@3 [g4,bb4,d5] ~@14, f5 ~@11", // Bb Eb Gm
  AC: "[f4,a4] ~@4 [f4,a4] ~@3 [f4,a4,c5] ~@14, d5@2 ~@3 e5@2 ~@17", // F
  AD: "[e4,g4,d5] ~@4 [e4,g4,e5] ~@3 [e4,b4] ~@14, ~@9 g4@2 ~@13", // Em7 Em E5
  AE: "[f4,a4,d5]@2 ~@3 [f4,a4,e5] ~@3 [f4,a4,c5] ~@14", // Dm Fmaj7 F
  AF: "[e4,g4,d5] ~@4 [e4,g4,e5] ~@3 [e4,g4] ~@14, ~@9 b4@2 ~@13", // Em7 Em
  AG: "[f4,a4,d5] ~@4 [f4,a4,e5] ~@3 [f4,a4] ~@14, ~@9 c5@2 ~@13", // Dm Fmaj7 F
  AH: "[e4,g4,d5]@2 ~@3 [e4,g4,e5] ~@3 [e4,g4,b4] ~@14", AI: "[f4,a4,d5] ~@4 [f4,a4,e5] ~@3 [f4,a4,c5] ~@14",
})).s("gm_epiano2").gain(0.38)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@2 A B C B D E F G H G I J H G I E H E K L M N O P Q N R S T U V S Q N O W A B C B D E F G H G I J H G I E H E K L M
  N O P Q N R S T U V S Q N O W X ~@15 M N O P Q N R S T U V S Q N O W Y@2
>`.pickRestart({
  A: "d1@10 ~@5 f1@2 ~@3 a1@2 ~@2", B: "g1@3 ~", C: "a1@12 ~@3 f1@3 ~@2 a1@3 ~", D: "d1@12 ~@3 f1@3 ~@2 a1@2 ~@2",
  E: "g1@19 ~@5", F: "a1@13 ~@2 f1@2 ~@3 a1@3 ~", G: "g1@5 ~", H: "d1@12 ~@3 f1@2 ~@3 a1@2 ~@2",
  I: "a1@11 ~@4 f1@2 ~@3 a1@2 ~@2", J: "g1@7 ~", K: "a1@12 ~@3 f1@2 ~@3 a1@2 ~@2", L: "g1@23 ~",
  M: "f1@6 ~@9 ab1@3 ~@2 c2@4", N: "bb1@3 ~", O: "ab1@11 ~@4 ab1@3 ~@2 c2@4", P: "bb1@7 ~@3 bb1@2 c2@2 ~ c2@3 ~@2 g1@4",
  Q: "f1@11 ~@4 ab1@3 ~@2 c2@4", R: "ab1@11 ~@4 ab1@2 ~@2 c2@5", S: "bb1@7 ~@4 bb1 c2@2 ~ c2@3 ~@2 c2 g1@3",
  T: "f1@12 ~@3 ab1@3 ~@2 c2@4", U: "bb1@19 ~@5", V: "ab1@11 ~@4 ab1@2 ~@3 c2@4",
  W: "bb1@8 ~@3 bb1 c2@2 ~ c2@3 ~@2 c2 g1@3", X: "f1 ~@23", Y: "[bb1@3 ~]/2",
})).s("gm_fretless_bass").gain(0.27)

// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~@14 A@3 ~@5 B@3 ~ B@3 C@2 D@2 E@2 D@2 ~@13 A@3 ~@5 B@3 ~ B@3 C@2 D@2 F@2 D@2 ~@9 A@3 ~@5 B@3 ~ G@2 ~ C@2 D@2 E@2 D@2
  ~@3
>`.pickRestart({
  A: "[~@2 e4@12 c4@3 d4@3 e4@12 c4@4 f4@6 e4@18 ~@12]/3", B: "[~@2 g4@39 ab4@3 bb4@6 g4@21 ~]/3",
  C: "[~@12 c5@6 d5@3 bb4@26 ~]/2", D: "[~@4 c5@2 d5 bb4@4 ab4@5]/2", E: "[~@4 c5@2 d5 bb4@9]/2",
  F: "[~@4 c5@2 eb5 bb4@9]/2", G: "[~@2 g4@27 ~@19]/2",
})).s("gm_epiano1").gain(0.32)

// chords · synth brass 2 · "SYNBRASS 2"
const synth_brass_2 = note(`<
  ~@2 A B C B D B E B F B G B F B E H F B C H ~@16 A B C B D B E B F B G B F B E H F B C H ~@24 I J K L D J K M ~@18
>`.pickRestart({
  A: "[f3,a3,c4]@5 ~", B: "[g3,b3,d4]@7 ~", C: "[a3,c4,e4]@5 ~", D: "[f3,a3,c4]", E: "[a3,c4,e4]@7 ~",
  F: "[f3,a3,c4]@7 ~", G: "[c4,e4]@7 ~, a3@23 ~", H: "[g3,b3,d4]@11 ~", I: "[f3,a3,c4]@19 ~@5", J: "[g3,b3,d4]",
  K: "[a3,c4,e4]", L: "[b3,d4]@23 ~, g3@19 ~@5", M: "[g3,b3,d4]@23 ~",
})).s("gm_synth_brass_2").gain(0.22)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@22 A B C D@2 E F G@2 B C H A I C J ~@20 A B C D@2 E F G@2 B C H A I C J ~@16 A B C D@2 E F G@2 B C H A I C K@3
>`.pickRestart({
  A: "[ab3,c4,eb4]", B: "[bb3,d4,f4]", C: "[c4,eb4,g4]", D: "[[bb3,d4,f4] [e4,g4,bb4] [ab3,eb4]@2, ~ c4@3]/2",
  E: "f4 bb4, [bb3,d4]", F: "[c4,g4], eb4@3 ~", G: "[[bb3,d4,f4] [e4,g4,c5] [ab3,eb4]@2, ~ c4@3]/2",
  H: "[bb3,f4] [e4,g4,bb4], d4 ~ c4 ~", I: "~ bb4, [bb3,d4,f4]", J: "[bb3,d4,f4] [c4,e4]",
  K: "[[bb3,d4,f4] e4 [ab3,eb4,g4]@3 ~, ~ c4@4 ~]/3", // Bb Abmaj7
})).s("gm_string_ensemble_1").gain(0.33)

// other · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note(`<
  ~@22 A B C D A D C E A B C D A D C F ~@12 G@2 H@2 I@2 J K@2 L M N O P Q R S@2 T@2 U@4 ~@16 A L M N O P Q R S@2 T@2 V@6
>`.pickRestart({
  A: "eb5", B: "f5", C: "g5", D: "f5 bb5", E: "f5 c6", F: "f5 e5", G: "[g4@7 d5]/2", H: "[c5@5 b4 c5 d5]/2",
  I: "[e5@3 g5]/2", J: "c5", K: "[b4 g4 ~@2 eb5@4, ~ g5@3]/2", L: "f5 bb5, d5", M: "[c5,eb5]", N: "[d5,f5] [e5,c6]",
  O: "[eb5,g5]", P: "[d5,f5]@2 eb5 d5", Q: "[eb5,g5]@23 ~", R: "[d5,f5] [c5,e5]", S: "[[c5,c6]@3 [bb4,bb5]]/2",
  T: "[[c5,c6]@6 [bb4,bb5] [eb5,eb6]]/2", U: "[[c5,c6]@14 [bb4,bb5] [c5,c6]]/4",
  V: "[[c5,c6]@14 [bb4,bb5] [c5,c6]@7 ~@2]/6", // C Bb C
})).s("gm_synth_strings_2").gain(0.33)

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

// drums · snare
const snare = s("sd").struct(`<
  A B A@3 C A@3 D A@3 D A@3 D A@3 D A@3 D A@3 D A@3 D A@3 D A@3 C A@2 D A@3 D A@3 D A@3 D A@3 D A@3 D A@3 D A@3 D A@4 D
  A@3 D A@3 D A@3 D A@2 D A@3 D A@3 D A@3 D A ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@6 x ~@7 x ~@3 x ~@4 x", C: "~@6 x ~@7 x ~@3 x ~@2 x ~ x", D: "~@6 x ~@11 x ~@4 x",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct(`<
  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 A B A B A B A B A B@2 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@2 A B A B A B A B A B A B A B@2 A B A B A B A B A B A B A B A ~@2
>`.pickRestart({
  A: "x!5 ~ x!2", B: "x!5 ~ x ~",
})).gain(0.27)

// drums · open hat
const open_hat = s("oh").struct(`<
  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 A B A B A B A B A B@2 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@2 A B A B A B A B A B A B A B@2 A B A B A B A B A B A B A B A ~@2
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@5 x ~ x",
})).gain(0.33)

// drums · crash
const crash = s("cr").struct("<~@22 x ~@85>").gain(0.33)

// drums · ride
const ride = s("rd").struct("<~@106 [x ~@10 x!3 ~@10] ~>").gain(0.33)

// drums · bongos
const bongos = s("bongo:4").struct("<[~@11 x ~@2 x ~@9]!106 ~@2>").gain(0.86)

// drums · congas
const congas = s("conga:13").struct("<[~@11 x ~@2 x ~@9]!106 ~@2>").gain(1.22)

// drums · shaker
const shaker = s("sh").struct("<[x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x]!106 ~@2>").gain(0.27)

stack(
  epiano2, bass, epiano1, synth_brass_2, string_ensemble_1, synth_strings_2, kick, snare, hihat, open_hat, crash, ride,
  bongos, congas, shaker
)

More by Stansfield Lisa