Strudelify

Backstreet Boys The Call

Rickey C Battle jr

KeyD♭ majorTempo100 bpm
0:00/0:00
// Backstreet Boys The Call — Rickey C Battle Jr
// 100 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 5 "B♭ Trumpet" trumpet (copy of ch 1 "Flute" flute); ch 3 "Alto Saxophone" alto sax (copy of ch 2 "B♭ Clarinet" clarinet); ch 7 "Horn in F" french horn (copy of ch 2 "B♭ Clarinet" clarinet); ch 8 "Mellophone" french horn (copy of ch 2 "B♭ Clarinet" clarinet); ch 11 "Baritone Horn" french horn (copy of ch 4 "Tenor Saxophone" tenor sax); ch 12 "Euphonium" tuba (copy of ch 4 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/5543051; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 51 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C D E F@2 G H I@2 J K L M N O P Q R S T U V W E X Y Z@2 AA AB AC@2 AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT
>`.pickRestart({
  A: "[bb4,db5]", B: "[bb4,db5]@12 ~@3 [d5,eb5]", C: "f5 db5", D: "bb4@3 [eb5,f5] gb5@4 f5@4 ~@4",
  E: "gb5 f5 eb5 ~ db5 c5 [bb4,bb5] [a4,a5]", // Bb A
  F: "[~@2 db5!3 bb4!2 db5@2 db5@2 db5@2 db5@2 c5@2 c5 ~ c5@2 c5@2 c5@2 db5@2 db5@2 bb4@2 ~]/2",
  G: "~@4 db5!2 bb4 db5@2 db5@2 db5@4 ~", H: "c5@2 ~@2 c5@2 ~@2 c5!2 db5 db5@2 bb4!2 ~",
  I: "[~@2 bb4!2 db5 bb4 db5 db5@2 db5 ~ db5@2 db5@2 c5@2 c5 ~ c5@2 c5@2 c5@2 c5@2 bb4@2 ~ c5@2]/2",
  J: "db5@4 ab5 gb5 f5 eb5, ~@8 f5 ~@7", K: "c5 bb4 c5 bb4 c5@2 ~@8 bb4 db5", L: "bb4@2 ~ bb4 db5!2 eb5@2",
  M: "c5 ~ db5 eb5", N: "gb5@3 f5@2 c5@3 [ab4,ab5]@4 bb4 c5 db5 eb5", O: "f5 ~ c5 ~ eb5 ~ db5@2",
  P: "bb4@4 ~@3 [db5,eb5] f5@8", Q: "~ f5!3 bb5 f5 bb5 ~ bb5@4 f5@4, ~@8 gb5 ~@7",
  R: "~@2 gb5@2 f5@2 eb5@2 db5@3 db5@2 eb5@3", S: "bb4 ~ gb5@2 f5@2 c5@2", T: "~@6 f5!2 bb5@4 f5@4, ~@8 gb5 ~@7",
  U: "c5 f4 c5 ab4 c5 db5@2 ab5", V: "gb5@4 ~ c5 db5 eb5 f5@4 ~@4", W: "gb5 f5 eb5 ~ db5 c5 bb4 a4",
  X: "~@4 bb4@3 [db5,eb5] f5@6 ~@2", Y: "[f5,bb5] ~@3",
  Z: "[~@2 eb5!3 c5!2 eb5@2 eb5@2 eb5@2 eb5@2 d5@2 d5 ~ d5@2 d5@2 d5@2 eb5@2 eb5@2 c5@2 ~]/2",
  AA: "~@4 eb5!2 c5 eb5@2 eb5@2 eb5@4 ~", AB: "d5@2 ~@2 d5@2 ~@2 d5!2 eb5 eb5@2 c5!2 ~",
  AC: "[~@2 c5!2 eb5 c5 eb5 eb5@2 eb5 ~ eb5@2 eb5@2 d5@2 d5 ~ d5@2 d5@2 d5@2 d5@2 c5@2 ~ d5@2]/2",
  AD: "eb5@4 bb5 ab5 g5 f5, ~@8 g5 ~@7", AE: "d5 c5 d5 c5 d5@2 ~@8 c5 eb5", AF: "c5@2 ~ c5 eb5!2 f5@2",
  AG: "d5 ~ eb5 f5", AH: "ab5@3 g5@2 d5@3 ~@4 c5 d5 eb5 f5", AI: "g5 ~ d5 ~ f5 ~ eb5@2", AJ: "c5@4 ~@3 [eb5,f5] g5@8",
  AK: "f5@2 ab5 g5, ~@8 g5 ~@7", AL: "~@2 ab5@2 g5@2 f5@2 eb5@3 eb5@2 f5@3", AM: "c5 ~ ab5@2 g5@2 d5@2", AN: "eb5 ~",
  AO: "d5 g4 d5 bb4 d5 eb5@2 bb5", AP: "ab5@4 ~ d5 eb5 f5 g5@4 ~@4", AQ: "ab5 g5 f5 ~ eb5 d5 c5 b4",
  AR: "ab5 g5 f5 ~ eb5 d5 [c5,c6] [b4,b5]", AS: "~@4 d5@3 [eb5,f5] g5@4 ~@4", AT: "[g5,c6] ~@3",
})).s("gm_clarinet").gain(0.5)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A@2 B C D E@2 F G H I J K L M N O P Q R S T U V D W X Y Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU
>`.pickRestart({
  A: "~@2 bb3 ~@3 bb3 ~", B: "f4 bb4", C: "f4@2 db4@2 bb4@2 db4 eb4", D: "gb4 f4 eb4 ~ db4 c4 bb3 a3",
  E: "[~@2 db4!3 bb3!2 db4@2 db4@2 db4@2 db4@2 c4@2 c4 ~ c4@2 c4@2 c4@2 db4@2 db4@2 bb3@2 ~]/2",
  F: "~@4 db4!2 bb3 db4@2 db4@2 db4@4 ~", G: "[c4,f4]@2 ~@2 [c4,f4]@2 ~@2 c4!2 db4 db4@2 bb3!2 ~",
  H: "~@2 f4!2 bb4 f4 bb4 bb4@2 ~@3 gb4@4", I: "f4@2 ~ db4", J: "~@4 ab4 gb4 f4 eb4, ~@8 gb4 ~@7",
  K: "~@3 bb4 bb4@2 ~@2", L: "bb4 ~@2 eb4", M: "~ c4 f4@2", N: "~@2 ab4 ~", O: "f4 ~ c4 ~ eb4 ~ bb4@2", P: "bb4 ~ f4@2",
  Q: "~ db4 bb4 f4", R: "eb4@8 db4@3 db4@2 eb4@3", S: "db4 ~ f4 ~", T: "bb4@4 ~@2 f4!2 bb4@4 f4@4", U: "~@6 db4 ab4",
  V: "gb4 ~ db4 f4", W: "gb4 f4 eb4 ~ db4 c4 bb4 a4", X: "~@4 bb4@3 ~", Y: "bb4 ~@3",
  Z: "[~@2 eb4!3 c4!2 eb4@2 eb4@2 eb4@2 eb4@2 d4@2 d4 ~ d4@2 d4@2 d4@2 eb4@2 eb4@2 c4@2 ~]/2",
  AA: "~@4 eb4!2 c4 eb4@2 eb4@2 eb4@4 ~", AB: "[d4,g4]@2 ~@2 [d4,g4]@2 ~@2 d4!2 eb4 eb4@2 c4!2 ~",
  AC: "~@2 g4!5 g4@2 ~@3 ab4@4", AD: "g4@2 ~ d4", AE: "~@4 bb4 ab4 g4 f4, ~@8 ab4 ~@7", AF: "~@3 [g4,c5] [g4,c5]@2 ~@2",
  AG: "[g4,c5] ~@2 f4", AH: "~ d4 g4@2", AI: "eb4@2 bb4 ~", AJ: "g4 ~ d4 ~ f4 ~ c5@2", AK: "c5 ~ g4@2",
  AL: "~ eb4 c5 g4", AM: "g4@8 eb4@3 eb4@2 f4@3", AN: "eb4 ~ g4 ~", AO: "c5@4 ~@2 g4!2 c5@4 g4@4", AP: "~@6 eb4 bb4",
  AQ: "ab4 ~ c4 eb4", AR: "ab4 g4 f4 ~ eb4 d4 c4 b3", AS: "ab4 g4 f4 ~ eb4 d4 c5 b4", AT: "~@2 g4 ~", AU: "[g4,c5] ~@3",
})).s("gm_tenor_sax").gain(0.5)

// chords · trombone
const trombone = note(`<
  A B@3 ~ C D C E F G H I C J K L C J K ~ C J K M@2 N O P Q P R S T U V P Q W X P Q W ~ P Q W Y@2 Z AA
>`.pickRestart({
  A: "[bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2 [f3,ab3,c4] ~", // Bbm Fm
  B: "[bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2 ~@2 [bb3,db4,f4] ~ [f3,ab3,c4] ~", C: "[bb3,db4,f4]",
  D: "[a3,c4,f4]", E: "[a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 ~@2 c4!2 db4 db4@2 bb3!2 ~",
  F: "~@2 bb3!2 db4 bb3 db4 db4@2 db4 ~ db4@2 db4@2 ~", G: "[a3,c4,f4]@3 ~", H: "[ab3,db4,f4]",
  I: "[a3,c4,f4]@3 ~@3 [a3,c4,f4]@2", J: "[ab3,c4,f4]", K: "[gb3,bb3,db4]",
  L: "[bb3,db4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [bb3,db4,f4]@2", M: "gb4 f4 eb4 ~ db4 c4 bb3 a3", N: "[bb3,db4,f4]!2",
  O: "[bb3,db4,f4] ~@3", P: "[c4,eb4,g4]", Q: "[bb3,d4,g4]",
  R: "[b3,d4,g4]@2 ~@2 [b3,d4,g4]@2 ~@2 d4!2 eb4 eb4@2 c4!2 ~", S: "~@2 c4!2 eb4 c4 eb4 eb4@2 eb4 ~ eb4@2 eb4@2 ~",
  T: "[b3,d4,g4] ~", U: "[bb3,eb4,g4]", V: "[b3,d4,g4]@3 ~@3 [b3,d4,g4]@2", W: "[ab3,c4,eb4]",
  X: "[c4,eb4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [c4,eb4,g4]@2", Y: "ab4 g4 f4 ~ eb4 d4 c4 b3", Z: "[g3,c4,eb4]",
  AA: "[c4,eb4,g4] ~@3", // Cm
})).s("gm_trombone").gain(0.5)

// bass · tuba · "B♭ Tuba"
const bass = note(`<
  A B@3 C D E D F D G H I J ~@2 K L M N ~ O P Q R@2 S T U V U W U X Y Z AA AB AC AD AE AF AG ~ AH AI AJ AK@2 AL AM
>`.pickRestart({
  A: "bb2 ~ bb2 ~ bb2 ~ bb2 f2", B: "bb2@2 ~@2 bb2@2 ~@2 bb2@2 ~@2 bb2 ~ f2 ~",
  C: "[gb2,gb3] [f2,f3] [eb2,eb3] ~ [db2,db3] [c2,c3] [bb1,bb2] [a1,a2]", // Gb F Eb Db C Bb A
  D: "bb2@2 ~@2 bb2@2 ~@2 bb2@2 ~@2 bb2 ~ gb2 ~", E: "f2@2 ~@2 f2@2 ~@2 f2@2 ~@2 f2 ~ gb2 ~",
  F: "eb2 ~ eb2 ~ f2 ~ f2 ab2", G: "f2 ~ f2 ~ f2 ~ f2 ab2", H: "gb2 ~ gb2 ~ gb2 ~ gb2 db2", I: "f2 ~ f2 ~ f2 ~ f2 a2",
  J: "bb2 ~@3", K: "[f2,f3]@2 ~@2 [c2,c3]@2 ~@2 [eb2,eb3]@2 ~@2 [ab3,bb3] [db3,eb3,f3,gb3] [bb2,c3] ~",
  L: "bb2@4 ~@2 bb2 gb2", M: "[f1,f2]@4 ~@2 eb2 f2", N: "[gb1,gb2] ~", O: "bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2 bb3 ~ gb3 ~",
  P: "f3@2 ~@2 f3@2 ~@2 f3@2 ~@2 f3 ~ eb3 ~", Q: "gb3@2 ~@2 gb3@2 ~@2 gb3@2 ~@2 gb3 ~ db3 ~",
  R: "[gb1,gb2,gb3] [f1,f2,f3] [eb1,eb2,eb3] ~ [db1,db2,db3] [c1,c2,c3] [bb0,bb1,bb2] [a0,a1,a2]", // Gb F Eb Db C Bb A
  S: "[bb0,bb1,bb2]@8 [bb2,bb3]@2 ~@2 [bb2,bb3]!2 ~ [bb2,bb3]", T: "[bb2,bb3] ~@3",
  U: "c3@2 ~@2 c3@2 ~@2 c3@2 ~@2 c3 ~ ab2 ~", V: "g2@2 ~@2 g2@2 ~@2 g2@2 ~@2 g2 ~ ab2 ~", W: "f2 ~ f2 ~ g2 ~ g2 bb2",
  X: "[b2,d3] ~ [b2,d3] ~ g2 ~ g2 bb2", Y: "ab2 ~ ab2 ~ ab2 ~ ab2 eb2", Z: "g2 ~ g2 ~ g2 ~ g2 b2", AA: "c3 ~@3",
  AB: "[g1,g2]@3 ~", AC: "[ab1,ab2]@3 ~",
  AD: "[g2,g3]@2 ~@2 [d2,d3]@2 ~@2 [f2,f3]@2 ~@2 [bb3,c4] [eb3,f3,g3,ab3] [c3,d3] ~", AE: "c3@4 ~@2 c3 ab2",
  AF: "[g1,g2]@4 ~@2 f2 g2", AG: "[ab1,ab2] ~", AH: "[c3,c4]@2 ~@2 [c3,c4]@2 ~@2 [c3,c4]@2 ~@2 [c3,c4] ~ [ab2,ab3] ~",
  AI: "[g2,g3]@2 ~@2 [g2,g3]@2 ~@2 [g2,g3]@2 ~@2 [g2,g3] ~ [f2,f3] ~", // G F
  AJ: "[ab2,ab3]@2 ~@2 [ab2,ab3]@2 ~@2 [ab2,ab3]@2 ~@2 [ab2,ab3] ~ [eb2,eb3] ~", // Ab Eb
  AK: "[ab1,ab2,ab3] [g1,g2,g3] [f1,f2,f3] ~ [eb1,eb2,eb3] [d1,d2,d3] [c1,c2,c3] [b0,b1,b2]", // Ab G F Eb D C B
  AL: "[c1,c2,c3]@8 [c2,c3,c4]@4 [c2,c3,c4]!2 ~ [c2,c3,c4]", AM: "[c2,c3,c4] ~@3",
})).s("gm_tuba").gain(0.5)

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

stack(clarinet, tenor_sax, trombone, bass, kick)

More by Rickey C Battle jr