Strudelify

Only With You (Faze 2 edit)

Captain Hollywood Project

KeyG♯ minorTempo129 bpm
0:00/0:00
// Only With You (Faze 2 edit) — Captain Hollywood Project
// 129 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(129/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 · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@4 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 E A@18 B C E A B C E A B C E A B C E A@18 B C E A B C E A B
  C E A B C E A B C E A B C E A B C E A B C E ~@8
>`.pickRestart({
  A: "g#1 ~@3 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2", B: "e1 ~@3 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2",
  C: "f#1 ~@3 f#1 ~@2 f#1 ~@2 f#1 ~@2 f#1 ~@2", D: "g#1 ~@3 g#1 ~@2 g#1 ~@2 g#1 ~@3 f#1 ~",
  E: "g#1 ~@3 g#1 ~@2 g#1 ~@2 g#1 ~@3 g#1 ~",
})).s("gm_synth_bass_2").gain(0.45)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@24 A B C D E B C ~@18 A B C D E B C D E B C D E B ~@19 A B C D E B C D E B C D E B C ~ A B C D E B C D E B C D E B C
  D E B ~@6
>`.pickRestart({
  A: "~@2 [g#4,b4,d#5] ~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5]!2 ~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5]!2 ~", // G#m
  B: "~@2 [e4,g#4,e5] ~@2 [e4,g#4,c#5] ~ [e4,g#4,c#5]!2 ~@2 [e4,g#4,c#5] ~ [e4,g#4,c#5]!2 ~", // E C#m
  C: "~@2 [f#4,a#4,d#5] ~@2 [f#4,a#4,d#5] ~ [f#4,a#4,d#5]!2 ~@2 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] [f#4,a#4,f#5] ~", // D#m F#
  D: "~@2 [g#4,b4,d#5] ~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5]!2 ~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5]!3", // G#m
  E: "~ [g#4,b4,d#5]!2 ~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5]!2 ~@2 [g#4,b4,d#5] ~ [g#4,b4,d#5]!2 ~", // G#m
})).s("gm_percussive_organ").gain(0.16).pan(0.8)

// other · flute
const flute = note(`<
  ~@7 A B@4 C D E A B@4 C D E ~@25 A B@4 C D E A B@4 C D E ~@17 A B@4 C D E A B@4 C D E ~@9 F@12 ~@4
>`.pickRestart({
  A: "~@2 d#4!2 g#4@2 a#4@2",
  B: "[b4@4 a#4@2 a#4@2 g#4@4 f#4@2 g#4@4 f#4@4 d#4@4 d#4@2 ~@2 d#4 c#4@4 ~ c#4@2 b3@2 c#4@3 ~ c#4@2 c#4 b3@5 ~@2 d#4@6 c#4@4]/4",
  C: "g#3@3 ~@5", D: "~@3 d#4@2 d#4 c#4@2", E: "g#3@7 ~@9", F: "[~@14 d#4@4 d#4@2 c#4@4 g#3@7 ~]/2",
})).s("gm_flute").gain(0.4)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note("<~@40 A B C D A B C ~@75>".pickRestart({
  A: "~@3 [b4,d#5,g#5] ~@4 [g#5,b5,d#6] ~ [b5,d#6,g#6] ~ [g#5,b5,d#6] ~ [b5,d#6,g#6]!2", // G#m
  B: "~@2 [a#5,d#6,g#6] ~@2 [a#5,d#6,f#6] ~ [g#6,a#6,c#7] ~@3 [a#6,d#7,f#7] ~@2 [a#7,d#8,f#8] ~", // D#sus4 D#m A#m7 D#m
  C: "[g#7,c#8,e8] ~@2 [g#6,c#7,e7] ~@8 [g#6,c#7,f#7] ~ [g#6,c#7,d#7] ~", D: "~@7 [b4,d#5,g#5] ~@8",
})).s("gm_drawbar_organ").gain(0.2).pan(0.8)

// chords · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note(`<
  A@8 B@2 C D B@2 C D B@2 C D B@2 C ~ B@2 C D B@2 C ~ E F G@2 E F G@2 E F G@2 E F H@3 B@2 C D B@2 C D B@2 C D B@2 C D E
  F G@2 E F G@2 E F G@2 E F I@3 B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D
>`.pickRestart({
  A: "[~@4 c#4@2 d#4 c#4, g#3@3 f#3, [b3,d#4] a#3, ~ e3@2 ~]/4", B: "[[b3,d#4] [e3,c#4], g#3]/2",
  C: "d#4 c#4, [f#3,a#3]", D: "[g#3,b3,d#4]", E: "[g#3,d#4,g#4,b4,d#5]", F: "[a#3,d#4,a#4,d#5,f#5]",
  G: "[[e4,c#5,e5] [d#4,b4,d#5], [g#3,g#4]]/2", H: "[[e4,c#5,e5] [d#4,b4,d#5]@2, [g#3,g#4]]/3",
  I: "[[e4,c#5,e5]@16 [d#4,b4,d#5]@17 ~@15, [g#3,g#4]@11 ~@5]/3", // C#m G#m G#
})).s("gm_synth_strings_2").gain(0.25)

// drums · kick
const kick = s("bd").struct("<~@16 [x!4]!64 ~ [x!4]!29 ~@12>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@16 A@7 B A@7 B C@15 B D A@14 ~ B C@15 B D A@15 B A@11 ~@13>".pickRestart({
  A: "~ x!2 ~@2 x ~ x", B: "x ~@3 x ~@2 x ~@2 x ~ x ~ x ~", C: "~ x ~@2", D: "x ~ x ~ x!2 ~ x ~ x!2 ~ x!3 ~",
})).gain(0.2)

// drums · clap
const clap = s("cp").struct(`<
  ~@16 A@3 B A@3 ~ A@3 B A@3 B ~@17 A@3 B A@3 B A@3 B A@3 B ~@17 A@3 B A@3 B A@3 B A@3 ~ A@3 B A@3 B A@3 ~@13
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~@2 x",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct("<~@4 A@44 B A@14 B C A@15 ~ B A@15 ~ A@20 ~@4>".pickRestart({
  A: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", B: "x!16", C: "x!2 ~@14",
})).gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@12 B@7 A B@7 A B@15 A ~ B@14 ~@2 B@15 ~@2 B@15 ~ B@11 A@9 ~@4>".pickRestart({
  A: "x!4", B: "x!16",
})).gain(0.2)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@8 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~ A@3 B A@3 B A@3 B A@2 ~@2 A@3 B A@3 B A@3 B A@3 B ~
  A@3 B A@3 B A@3 B A@3 ~ A@3 B A@3 B A@3 B ~@12
>`.pickRestart({
  A: "~@4 x ~@4 x ~@2 x ~@3", B: "~@4 x ~@4 x ~@2 x ~@2 x",
})).gain(0.2)

stack(bass, percussive_organ, flute, drawbar_organ, synth_strings_2, kick, snare, clap, hihat, tambourine, shaker)

More by Captain Hollywood Project