Strudelify

Flying High (single mix)

Captain Hollywood Project

KeyD minorTempo148 bpm
0:00/0:00
// Flying High (single mix) — Captain Hollywood Project
// 148 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(148/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 · slap bass 2 · "SLAPBASS 2"
const bass = note(`<
  ~@9 A B C D A B C D A B C D A B C D E F E G E F E H E F E H E F E H E F E ~ I@3 J I@3 J I@3 J I@3 J A B C D A B C D E
  F E G E F E H E F E H E F E H E F E ~ I@3 J I@3 J I@3 J I@3 J A B C D A B C ~ A B C D A B C ~ I@3 J I@3 J I@3 J I@3
  ~@4
>`.pickRestart({
  A: "d2 ~ d2!3 ~ d2!3 ~ d2!3 ~ d2!2", B: "d2 ~ d2!3 ~ d2!3 ~ d2!6", C: "f2 ~ f2!3 ~ f2!3 ~ f2!3 ~ f2!2",
  D: "g2 ~ g2!3 ~ g2!3 ~ g2!6", E: "~@2 d2!2 ~@2 d2!2 ~@2 d2!2 ~@2 d2!2", F: "~@2 d2!2 ~@2 d2!2 ~@2 d2!2 ~ d2!3",
  G: "~@2 c2!2 ~@2 c2!2 ~@2 db2!2 ~@4", H: "~@2 c2!2 ~@2 c2!2 ~@2 db2!2 ~ db2!3",
  I: "d2@2 f2!2 d2@2 f2!2 d2@2 f2!2 d2 f2!3", J: "d2@2 g2!2 d2@2 g2!2 d2@2 g2!2 d2 g2!3",
})).s("gm_slap_bass_2").gain(0.27)

// bass · slap bass 2 · "SLAPBASS 2" · soft notes
const bass_soft = note(`<
  ~@25 A B A C A B A D A B A D A B A D A B A ~@25 A B A C A B A D A B A D A B A D A B A ~@52
>`.pickRestart({
  A: "d2!2 ~@2 d2!2 ~@2 d2!2 ~@2 d2!2 ~@2", B: "d2!2 ~@2 d2!2 ~@2 d2!2 ~@2 d2 ~@3", C: "c2!2 ~@2 c2!2 ~@2 c2!2 ~@6",
  D: "c2!2 ~@2 c2!2 ~@2 c2!2 ~@2 db2 ~@3",
})).s("gm_slap_bass_2").gain(0.17)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@9 A B C D A B C D A B C D A B C D ~@20 E F G F E F G F E F G F E F G F A B C D A B C D ~@20 E F G F E F G F E F G F
  E F G F A B C D A B C D ~@8 E F G F E F G F E F G F E F G H ~@3
>`.pickRestart({
  A: "[d4,g4,d5]@2 [d4,a4,d5] ~@3 [d4,a4,d5] ~@3 [d4,a4,d5] ~@3 [d4,a4,d5] ~", // G5 D5
  B: "[d4,g4,d5]@2 [d4,a4,d5] ~@3 [d4,a4,d5] ~@3 [d4,a4,d5] ~@3 [d4,a4,d5]!2", // G5 D5
  C: "[f4,a4,f5]@2 [f4,bb4,f5] ~@3 [f4,bb4,f5] ~@3 [f4,bb4,f5] ~@3 [f4,bb4,f5] ~", // F Bb5
  D: "[d4,g4,d5] ~ [e4,c5,e5] ~@3 [e4,c5,e5]!2 [d4,g4,d5]@2 [e4,c5,e5] ~@3 [e4,c5,e5] ~", // G5 C G5 C
  E: "[d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] f3, ~@14 f4 ~", // D
  F: "[d3,d4]@2 ~@2 [d3,d4]@2 ~@2 [d3,d4]@2 ~@2 d3@2 [c3,c4] ~, ~@12 d4 ~@3", // D C
  G: "[d3,d4]@2 ~@2 [d3,d4]@2 ~@2 [d3,d4]@2 ~@2 [d3,d4]@2 [f3,f4] ~", H: "[d3,d4] ~@7",
})).s("gm_synth_brass_1").gain(0.14)

// other · synth bass 1 · "SYN BASS 1"
const synth_bass_1 = note("<~@17 A@2 B C A@2 B C ~@36 A@2 B C A@2 B C ~@36 A@2 B C A@2 B ~@28>".pickRestart({
  A: "~ d4 c5 d4 bb4 d4 a4 d4 bb4 d4 a4 d4 bb4 d4 a4 d4", B: "~ f4 c5 f4 bb4 f4 a4 f4 bb4 f4 a4 f4 bb4 f4 a4 f4",
  C: "~ g4 c5 g4 bb4 g4 a4 g4 bb4 g4 a4 g4 bb4 g4 a4 ~",
})).s("gm_lead_8_bass_lead").gain(0.27)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A@3 B A@3 B C@2 D E C@2 D E C@2 D E C@2 D E ~@20 A@3 B A@3 B A@3 B A@3 B C@2 D E C@2 D E ~@20 A@3 B A@3 B A@3 B A@3
  B C@2 D E C@2 D F G@2 H I G@2 H J A@3 B A@3 B A@3 B A@3 B K@3
>`.pickRestart({
  A: "[[d2,d3,d5]@2 [f2,f3,c5], [f4,a4]]/3", B: "[g2,g3,g4,b4,d5]", C: "[[d4,a4]@31 ~]/2", D: "[bb3,f4]", E: "[c4,e4]",
  F: "[c4,e4,c5]", G: "[d2,d3,a3]/2", H: "[f2,f3,c4]", I: "[g2,d3,g3]@15 ~", J: "[g2,d3,g3]@3 ~", K: "[[d1,d2]@23 ~]/3",
})).s("gm_synth_strings_1").gain(0.07)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@45 A B@2 ~ A C@2 ~@37 A B@2 ~ A C@2 ~@18 D E F@3 G@2 A B@2 ~ A C@2 ~@12
>`.pickRestart({
  A: "~@12 d5@3 ~", B: "[d5@3 c5@4 a4@2 ~@7]/2", C: "[d5@2 ~@2 d5 ~ d5@12 ~@14]/2", D: "~@6 c4@2 d4@2 ~ d4@2 ~ f4@2",
  E: "~ d4@15", F: "[~@14 d4@4 ~ f4@15 ~@14]/3", G: "[g4@8 f4@21 ~@3]/2",
})).s("gm_overdriven_guitar").gain(0.21)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@46 A B C ~ D E F G H I H J@2 K L ~@29 A B C ~ D E F G H I H J@2 K L ~@17 A B C ~ D E F G H I H J@2 K L ~@3
>`.pickRestart({
  A: "~@4 a4@2 ~@2 g4@4 e4@3 ~", B: "a4@3 ~ a4@3 ~ a4@3 ~ a4@4", C: "g4@5 ~@3", D: "~@4 a4@3 ~ g4@4 e4@3 ~",
  E: "a4@3 ~ a4@3 ~ a4@3 ~ b4@3 ~", F: "g4@11 e4@2 ~ f4 ~", G: "a4 ~ f4 ~ a4 ~ f4 ~",
  H: "a4@2 ~@2 f4@2 e4@4 ~@2 f4@3 ~", I: "a4@3 ~ f4@2 ~@2 a4@2 ~@2 f4@2 ~@2", J: "[a4@18 ~@2 a4@3 ~ g4@4 e4@3 ~]/2",
  K: "a4@3 ~ a4@3 ~ a4@4 b4@3 ~", L: "g4@7 ~",
})).s("gm_overdriven_guitar").gain(0.18)

// other · tenor sax
const tenor_sax = note("<~@29 A B C D E F G H I J K L M N O ~@29 P Q R S T U V W X Y Z AA AB AC AD ~@52>".pickRestart({
  A: "a2 ~@3 a2!2 ~ a2 ~ a2 ~ a2!2 ~@3", B: "a2 ~ a2!2 ~ a2!2 ~ a2!2 ~ a2!2 ~@3", C: "a2!4 ~ a2!2 ~ a2!2 ~ a2!2 ~@3",
  D: "a2!4 ~@2 a2 ~ a2!2 ~@2 a2 ~ a2!2", E: "c3 a2!3 c3 a2 ~@2 a2!4 c3@3 a2", F: "~@3 c3 b2 ~@2 b2 ~ b2@2 ~ c3 a2 ~@2",
  G: "c3!2 a2 ~@2 a2 ~ a2 ~ a2@3 c3 ~@3", H: "g2!3 ~ a2 g2 ~ g2 ~ a2 g2 ~ a2 ~@3",
  I: "a2!3 ~ c3 a2 ~ a2 ~ a2@2 ~ c3 ~ a2 ~", J: "a2!3 ~ c3@2 ~ a2 ~ a2!2 ~ c3 ~ a2 ~",
  K: "g2!2 ~ a2 ~ g2 ~ g2 ~ g2!2 ~ a2 ~@3", L: "g2!3 ~ a2 g2 ~ g2 ~ g2@2 ~ a2@2 ~ a2",
  M: "c3 a2 ~ c3 ~@3 a2 c3 a2 ~ c3 ~@3 a2", N: "c3 ~ a2 ~ c3 ~ a2 ~ c3 ~ a2 ~ c3 ~ f2 ~",
  O: "g2@2 f2 ~ g2@2 f2@2 g2 ~ f2 ~ f2@3 ~", P: "d2@3 ~ c3 ~ g2 a2 ~ a2!3 c3@2 ~ a2", Q: "a2!9 ~ g2 ~ c3@2 ~@2",
  R: "c3 a2!3 c3 a2!4 ~ g2 ~ c3 ~ c3 a2", S: "a2 ~ c3 a2!2 ~ a2!3 ~ a2 ~ g2@2 ~@2",
  T: "c3@2 g2 ~ c3 ~ g2 ~ c3 g2!3 c3 ~ g2 ~", U: "~@2 g2 ~ a2 ~@2 a2!2 ~ g2 ~ a2 ~ a2 ~",
  V: "g2@2 ~ a2!3 ~ a2 ~ a2@2 ~ c3@2 ~@2", W: "a2!5 ~ a2!3 ~ a2 ~ a2 ~ g2!2", X: "a2 ~ g2!2 a2 ~@3 a2!3 ~ c3@2 ~@2",
  Y: "a2!3 ~ c3 ~ a2!3 ~ a2 ~ g2 ~@3", Z: "g2!5 ~ g2!3 ~ g2 ~ g2 ~ a2 ~", AA: "~@2 a2 ~ c3 ~ a2 ~ a2 ~ a2 ~ g2@2 a2 ~",
  AB: "c3 a2!2 c3@2 ~ a2 ~ c3 a2 a2@2 c3 ~@3", AC: "g2!3 g2@2 ~ g2!3 ~ g2 ~ a2 ~@3", AD: "c3@4 ~@2 g2 ~ a2@3 ~ g2@3 ~",
})).s("gm_tenor_sax").gain(0.39)

// drums · kick
const kick = s("bd").struct(`<
  ~@13 A B A B C D C D C D C D E@19 F C D C D C D C D C D C D C D C G C D C D C D C D E@19 F C D C D C D C D C D C D C D
  C G C D C D C D C ~@9 C D C D C D C D C D C D ~@7
>`.pickRestart({
  A: "x ~@6 x!2 ~@7", B: "x ~@6 x!2 ~@5 x ~", C: "x ~@3 x ~@2 x!2 ~@3 x ~@3", D: "x ~@3 x ~@2 x!2 ~@3 x ~ x ~",
  E: "x!4", F: "x", G: "x!2 ~ x!2 ~ x ~ x ~@2 x!2 ~ x ~",
})).gain(0.47)

// drums · snare
const snare = s("sd").struct("<A ~@27 B ~@15 A ~@27 B ~@15 A ~@31 A ~@16 A ~@2>".pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.26)

// drums · low tom
const low_tom = s("lt").struct("<A ~@27 B ~@15 A ~@27 B ~@15 A ~@31 A ~@16 A ~@2>".pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.53)

// drums · hihat
const hihat = s("hh").struct("<~@17 A@27 B A@43 B A@23 B C@7 ~ A@12 C@3 ~@4>".pickRestart({
  A: "x!4", B: "x", C: "x!16",
})).gain(0.21)

// drums · open hat
const open_hat = s("oh").struct("<~@17 A@11 B A@15 ~ A@27 B A@15 ~ A@23 ~@9 A@12 ~@7>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2",
})).gain(0.21)

// drums · tambourine
const tambourine = s("tb").struct("<~@9 A@16 ~@20 A@15 ~ A@8 ~@20 A@15 ~ A@7 ~@9 A@14 ~@5>".pickRestart({
  A: "x!16",
})).gain(0.26)

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

// drums · shaker
const shaker = s("sh").struct("<~@13 A@15 B A@15 ~ A@15 ~ A@11 B A@15 ~ A@15 ~ A@7 ~@9 A@12 ~@7>".pickRestart({
  A: "x!16", B: "x!12 ~@4",
})).gain(0.21)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~@37 A@7 ~@16 A ~@20 A@7 ~@16 A ~@35>".pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(0.68)

stack(
  bass, bass_soft, synth_brass_1, synth_bass_1, synth_strings_1, overdriven_guitar, overdriven_guitar_2, tenor_sax,
  kick, snare, low_tom, hihat, open_hat, tambourine, crash, shaker, jingle_bells
)

More by Captain Hollywood Project