Strudelify

Hot

CJ White

KeyE♭ majorTempo120 bpm
0:00/0:00
// Hot — CJ White
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5947141; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 49 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · flute
const flute = note("<A B A B A B A B C D C D C D C D E ~@7 F G F G F G F G E ~@3 E ~@3 H ~ A I ~@2 A J E>".pickRestart({
  A: "g5@17 ~ g5@3 ab5@3", B: "bb5@3 c6@3 d6@11 ~@7", C: "~@23 g5", D: "f5@4 ~ eb5 d5@4 ~ c5 ~@2 bb4@10", E: "g5 ~@3",
  F: "~@7 d5", G: "eb5@3 f5@3 g5@11 ~ g5@6", H: "g5 ~ f5@4 eb5 ~ d5@4 c5 ~@2 bb4@9", I: "bb5 c6 d6@3 ~@3",
  J: "bb5 c6 d6@3 ~ g5@2",
})).s("gm_flute").gain(0.05)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B A B A B A B C D C D C D C D E ~@7 F G F G F G F G H ~@3 H ~@3 I ~ A J ~@2 A K H
>`.pickRestart({
  A: "g5@6 g5 ab5", B: "bb5 c6 d6@4 ~@2", C: "~@23 g5", D: "f5@4 ~ eb5 d5@4 ~ c5 bb4@9 ~@3", E: "g5 ~@3",
  F: "~@7 [d5,ab5]", G: "[eb5,bb5] [f5,c6] [g5,d6]@4 eb5@2", H: "eb5 ~@3", I: "g5 ~ f5@4 eb5 ~ d5@4 c5 ~ bb4@9 ~",
  J: "bb5 c6 d6@3 ~@3", K: "bb5 c6 d6@3 ~ eb5@2",
})).s("gm_clarinet").gain(0.06)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B A B A B A B C D C D C D C D E ~@7 F G F G F G F G H ~@3 H ~@3 I ~ A J ~@2 A K H
>`.pickRestart({
  A: "g3@6 g3 ab3", B: "bb3 c4 d4@4 ~@2", C: "~@23 g4", D: "f4@4 ~ eb4 d4@4 ~ c4 bb3@9 ~@3", E: "c5 ~@3", F: "~@7 ab4",
  G: "bb4 c5 d5@4 g4@2", H: "g4 ~@3", I: "g4 ~ f4@4 eb4 ~ d4@4 c4 ~ bb3@9 ~", J: "bb3 c4 d4@3 ~@3",
  K: "bb3 c4 d4@3 ~ g4@2",
})).s("gm_alto_sax").gain(0.09)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B A B A B A B C D C D C D C D E ~@7 F G F G F G F G H ~@3 H ~@3 I@2 A J ~@2 A K H
>`.pickRestart({
  A: "eb3@6 eb3 f3", B: "g3 ab3 bb3@4 ~@2", C: "~@23 g4", D: "f4@4 ~ eb4 d4@4 ~ c4@4 bb3@9", E: "g3 ~@3",
  F: "c4@2 c4@2 c4@3 ~", G: "~@3 g4", H: "g4 ~@3", I: "[g4 ~ f4@4 eb4 ~ d4@4 c4@4 ~ bb3@9 ~@22]/2",
  J: "g3 ab3 bb3@3 ~@3", K: "g3 ab3 bb3@3 ~ g4@2",
})).s("gm_tenor_sax").gain(0.12)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@2 A B A B A B A B A B A B A B C ~@7 D E D E D E D E F ~@3 F ~@3 G ~ A H A H A I F
>`.pickRestart({
  A: "g5@6 g5 ab5", B: "bb5 c6 d6@4 ~@2", C: "g5 ~@3", D: "~@7 ab5", E: "bb5 c6 d6@4 eb5@2", F: "eb5 ~@3",
  G: "g5 ~ f5@4 eb5 ~ d5@4 c5 ~ bb4@9 ~", H: "bb5 c6 d6@3 ~@3", I: "bb5 c6 d6@3 ~ eb5@2",
})).s("gm_trumpet").gain(0.18)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~@2 A B A B A B A B A B A B A B C ~@7 D E D E D E D E C ~@3 C ~@3 F ~ A G A G A H C
>`.pickRestart({
  A: "c5@6 c5 d5", B: "eb5 f5 g5@4 ~@2", C: "c5 ~@3", D: "~@7 d5", E: "eb5 f5 g5@4 c5@2",
  F: "g5 ~ f5@4 eb5 ~ d5@4 c5 ~ bb4@9 ~", G: "eb5 f5 g5@3 ~@3", H: "eb5 f5 g5@3 ~ c5@2",
})).s("gm_trumpet").gain(0.19)

// other · trombone
const trombone = note("<~@4 A B A B C@8 D ~@7 E F E G E F E G H ~@3 H ~@3 A I C@2 A I A J K>".pickRestart({
  A: "g3@6 g3 ab3", B: "bb3 c4 d4@4 ~@2", C: "g4@2 g4@2 g4@2 bb4@2 g4@2 g4@2 g4@2 g4@2 g4@2 g4@3 ~@3", D: "g4 ~@3",
  E: "[c4,eb4]@2 [c4,eb4]@2 [c4,eb4]@3 ~", F: "~@3 g4", G: "~@3 [eb4,g4]", H: "[eb4,g4] ~@3", I: "bb3 c4 d4@3 ~@3",
  J: "bb3 c4 d4@3 ~ [c4,eb4]@2", K: "[c4,eb4] ~@3",
})).s("gm_trombone").gain(0.29)

// other · tuba · "Euphonium"
const tuba = note("<~@4 A B A B C D C D C D C D E ~@7 F G F H F G F H I ~@3 I ~@3 A J ~@2 A J A K L>".pickRestart({
  A: "g3@6 g3 ab3", B: "bb3 c4 d4@4 ~@2", C: "~@23 g3", D: "f3@4 ~ eb3 d3@4 ~ c3 bb2@9 ~@3", E: "[c4,g4] ~@3",
  F: "[c4,eb4]@2 [c4,eb4]@2 [c4,eb4]@3 ~", G: "~@3 c4", H: "~@3 eb4", I: "eb4 ~@3", J: "bb3 c4 d4@3 ~@3",
  K: "bb3 c4 d4@3 ~ g3@2", L: "g3 ~@3",
})).s("gm_tuba").gain(0.32)

// bass · tuba
const bass = note("<~@4 A@4 ~@8 B C D E B C D E ~@8 B C D E B C D E A ~ A ~ A ~ A@2 ~>".pickRestart({
  A: "g2@3 g2 ~ g2 g2@3 g2@3 g2@3 ~@9", B: "g2!3 ~", C: "ab2!2 ~@2 ab2!2 ~@2", D: "bb2!3 ~",
  E: "c3!2 ~@2 c3 bb2 ab2 g2",
})).s("gm_tuba").gain(0.8)

stack(flute, clarinet, alto_sax, tenor_sax, trumpet, trumpet_2, trombone, tuba, bass)