Strudelify

All For You

Janet Jackson

KeyG majorTempo112 bpm
0:00/0:00
// All For You — Janet Jackson
// 112 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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.

// bass · electric bass finger · "om"
const bass = note(`<
  ~@9 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 A B C D A B C D E
>`.pickRestart({
  A: "e1!2 ~ g1 a1 ~@3", B: "d1@2 ~@2 d1@2 e1@2 e1 ~@3 e1@2 ~@2", C: "g1@2 a1@2 ~@2 a1 ~ a1@2 ~@2 a1@2 ~@2",
  D: "d1@2 ~@2 d1@2 e1@3 ~ e1@2 g1@2 a1 ~", E: "e1@2 ~ e1@2 ~@11",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · epiano1
const epiano1 = note(`<
  ~@9 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 A B C D A B C D ~
>`.pickRestart({
  A: "[e3,g3,b3,d4,g4]@7 ~@3 [e3,g3,a3,c4,g4] ~@2 [e3,g3,a3,c4,g4]@2 ~", // Em7 Am7
  B: "[d3,a3,c4,f#4]@5 ~ [e3,g3,a3,d4,g4]@7 ~ [e3,g3,a3,d4,g4] ~", // D7 Em7
  C: "[c4,e4,g4]@9 ~ [c4,e4,g4]@2 ~ [c4,e4,g4] ~@2, [e3,a3]@7 ~", // C A5
  D: "[d3,a3,c4,f#4,a4] ~@2 [d3,a3,c4,f#4,a4]@2 ~ [e3,g3,d4,g4,b4]@7 ~@3", // D7 Em7
})).s("gm_epiano1").gain(0.56)

// other · flute
const flute = note("<~@64 A@2 B@2 C ~@8 D E F G H G ~@10 D E F G H G ~@19>".pickRestart({
  A: "[~@8 b4@3 ~ a4 ~ a4@4 g4 ~ g4@3 ~@9]/2", B: "[~@6 c5 b4@2 ~ b4 a4@3 ~@2]/2", C: "~@2 a4@3 g4@2 ~ a4@3 a4@3 g4 ~",
  D: "~@6 c5 b4", E: "a4@3 ~ g4@3 ~@9", F: "~@6 d4 ~ e4@2 ~@2 e4@2 d4 ~", G: "e4@2 d4 ~ d4@3 ~@9",
  H: "~@8 e4@3 ~ e4@2 d4 ~",
})).s("gm_flute").gain(0.72)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@9 A B C D A B C D A B C D ~@16 A B C D A B C D ~@16 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: "~@2 [g3,b3] ~ [g3,b3] ~@3 [f#3,a3] [g3,b3]!2 ~ [g3,b3] ~@3", B: "~@4 [f#3,a3] ~@3 [f#3,a3] [g3,b3]!4 ~@3",
  C: "~@4 [e3,a3,c4] ~@3 [e3,a3,c4] ~@2 [e3,a3,c4] ~@4", // Am
  D: "[f#3,a3] ~@2 [f#3,a3] ~@2 [f#3,a3] [g3,b3]!4 ~ [g3,b3] ~@3", // F#m G
})).s("gm_electric_guitar_muted").gain(0.72)

// chords · synth brass 2
const synth_brass_2 = note(`<
  ~@21 A B C D A B C D A B C D A B C D ~@8 A B C D A B C D A B C D A B C D ~@57
>`.pickRestart({
  A: "~@4 [e3,g3,b3,d4] ~@3 [e3,a3,c4]@2 ~@6", B: "[d3,f#3,a3]@2 ~ [e3,g3,b3] ~@4",
  C: "~@2 [e3,g3,c4,e4] ~@5 [e3,g3,c4,e4]@5 ~@3", D: "[d3,f#3,a3,d4]@5 ~ [e3,g3,b3]@7 ~@3",
})).s("gm_synth_brass_2").gain(0.72)

// other · tuba · "Enjoy"
const tuba = note("<~@7 [~@12 a4 g4 ~@2] [a3 ~@3 b3 ~@3 e4 ~@3 d4 ~@3] ~@109>").s("gm_tuba").gain(0.72)

// chords · piano · "This"
const piano = note(`<
  ~@9 A B C D A B C D A B C D ~@16 A B C D A B C D ~@16 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 E F D A B C D
  A B C D A B C D A E F D A B C D A E F D A B C D ~
>`.pickRestart({
  A: "[e3,g3,b3,d4,g4,b4]@7 ~@3 [d4,d5]@2 ~ [b3,b4]@3", // Em7 D B
  B: "[d3,f#3,a3,d4,a4]@3 [d3,f#3,a3,d4,a4]@3 [e3,g3,b3,d4,g4]@5 ~ [d4,g4,b4]@3 ~", // D Em7 G
  C: "[e3,a3,e4,g4,c5]@9 ~ [c4,e4,g4]@5 ~", D: "[d3,f#3,a3,d4,a4]@2 ~ [d3,f#3,a3,d4]@2 ~ [e3,g3,b3,e4]@7 ~@3",
  E: "[d3,f#3,a3,d4,a4]@3 [d3,f#3,a3,d4,a4]@3 [e3,g3,b3,d4,g4]@5 ~ [d4,g4,b4]@2 b5 a5", // D Em7 G
  F: "[e3,a3,e4]@9 ~ [c4,e4,g4]@5 ~, [g4,c5]@7 ~@9", // A5 C C5
})).s("gm_piano").gain(0.56)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A B A C A B A C A B A C A B A C A B A C A B A C A B A D A B A C A B A C A B A C A B A C A B A C A B A D A B A C A
  B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C A B A C E
>`.pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x ~", D: "x", E: "x ~@2 x ~@12",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@9 [~ x ~ x]!27 ~ [~ x ~ x]!23 ~ [~ x ~ x]!56 ~>").gain(0.72)

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

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

// drums · crash
const crash = s("cr").struct(`<
  ~@13 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 ~@8
>`.pickRestart({
  A: "x",
})).gain(0.72)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@11 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A ~@3 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A ~@3 A B ~@2 A B
  ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@3 x",
})).gain(3.65)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@8 A B C D E B C D E B C D E B C D E B C D E B C D E B C D ~ B C D E B C D E B C D E B C D E B C D E B C D ~ B C D E
  B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E ~
>`.pickRestart({
  A: "~@14 x!2", B: "x ~@8 x ~ x!2 ~@3", C: "~@8 x!5 ~@3", D: "~@6 x!3 ~@5 x ~", E: "~@10 x!2 ~@2 x ~",
})).gain(0.72)

stack(
  bass, epiano1, flute, electric_guitar_muted, synth_brass_2, tuba, piano, kick, snare, hihat, open_hat, crash, cabasa,
  shaker
)

More by Janet Jackson