Strudelify

We Are Number One but it is arranged for a band

Robbie Rotten

KeyA♭ majorTempo168 bpm
0:00/0:00
// We Are Number One but it is arranged for a band — Robbie Rotten
// 168 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 "B♭ Clarinet" clarinet (copy of ch 2 "Oboe" oboe); ch 13 "Baritone Horn" french horn (copy of ch 14 "Euphonium" tuba); ch 15 "Tuba" tuba (copy of ch 14 "Euphonium" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/3892701; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(168/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.

// chords · flute
const flute = note(`<
  A ~@2 B ~@4 C D@2 E F D@2 E F D@2 ~@10 G H E ~@2 I D J K L D J K M N D J K ~@6 O ~@7 P ~ Q R ~@2 C ~@4 S T U V S T U ~
  W X Y Z W X AA AB W X Y Z W X AA AB ~ AC AD
>`.pickRestart({
  A: "e5@2 ~ g5@2 ~ a5@2", B: "gb5@3 a5@3 bb5@3 b5@7", C: "~@12 c5@3 ~", D: "~ [c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [c5,f5]",
  E: "~ [ab5,db6] ~ [ab5,db6] ~ [ab5,db6] ~ [ab5,db6]", F: "~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5]",
  G: "~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5]", H: "~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6]",
  I: "ab4@2 g4@2 gb4@2 f4 [c5,f5]", J: "~ [c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [ab5,db6]",
  K: "~ [ab5,db6] ~ [ab5,db6] ~ [ab5,db6] ~@2", L: "~@8 c5@3 ~@3 [c5,f5]@2", M: "~@8 c5@3 ~ a4@2 bb4@2",
  N: "b4 c5 db5 d5 eb5 e5 ~ [c5,f5]", O: "c6 ~", P: "f5 eb5 ~ f5 c6 g5 ~ c6 f6@4 ~@4", Q: "~ ab4 g4 gb4", R: "f4@3 ~@5",
  S: "f4@6 c5@2 b4 c5 b4 c5 b4 ~ c5 ~", T: "ab4@4 f4@4 ~@2 f4 ~ ab4 ~ c5 ~", U: "db5 ab4 db5 eb5",
  V: "c5 db5 c5 db5 c5 ~ [e4,g4,c5]@2", W: "gb5@6 db6@2 c6 db6 c6 db6 c6@2 db6@2", X: "a5@2 gb5@3 gb5 a5 db6",
  Y: "d6 a5 d6 e6", Z: "db6 d6 db6 d6 db6@2 ab6@2", AA: "d6 a5 e6 d6", AB: "db6 d6 db6 d6 db6@4",
  AC: "db6@2 d6@2 db6@2 d6@2 db6@4 [db6,f6]@3 ~", AD: "[gb5,db6,gb6]@11 ~@5",
})).s("gm_flute").gain(0.3)

// chords · oboe
const oboe = note(`<
  A ~@2 B ~@4 C D@2 E F D@2 E F D@2 ~@10 G H E ~@2 I D J K L D J K M N D J K ~@6 O ~@7 P ~ Q R ~@2 C ~@4 S T U V S T U ~
  W X Y Z W X AA AB W X Y Z W X AA AB ~ AC AD
>`.pickRestart({
  A: "e5@2 ~ g5@2 ~ a5@2", B: "gb5@3 a5@3 bb5@3 b5@7", C: "~@12 c5@3 ~", D: "~ [c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [c5,f5]",
  E: "~ [ab5,db6] ~ [ab5,db6] ~ [ab5,db6] ~ [ab5,db6]", F: "~ [g4,c5] ~ [g4,c5] ~ [g4,c5] ~ [g4,c5]",
  G: "~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5] ~ [f5,bb5]", H: "~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6]",
  I: "ab5@2 g5@2 gb5@2 f5 [c5,f5]", J: "~ [c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [ab5,db6]",
  K: "~ [ab5,db6] ~ [ab5,db6] ~ [ab5,db6] ~@2", L: "~@8 c5@3 ~@3 [c5,f5]@2", M: "~@8 c5@3 ~ a4@2 bb4@2",
  N: "b4 c5 db5 d5 eb5 e5 ~ [c5,f5]", O: "c5 ~", P: "f5 eb5 ~ f5 c6 g5 ~ c6 f6@4 ~@4", Q: "~ ab5 g5 gb5", R: "f5@3 ~@5",
  S: "f4@6 c5@2 b4 c5 b4 c5 b4 ~ c5 ~", T: "ab4@4 f4@4 ~@2 f4 ~ ab4 ~ c5 ~", U: "db5 ab4 db5 eb5",
  V: "c5 db5 c5 db5 c5 ~ [e4,g4,c5]@2", W: "gb4@6 db5@2 c5 db5 c5 db5 c5@2 db5@2", X: "a4@2 gb4@3 gb4 a4 db5",
  Y: "d5 a4 d5 e5", Z: "db5 d5 db5 d5 db5@2 f5@2", AA: "d5 a4 e5 d5", AB: "db5 d5 db5 d5 db5@4",
  AC: "db5@2 d5@2 db5@2 d5@2 db5@4 db5@3 ~", AD: "gb5@11 ~@5",
})).s("gm_oboe").gain(0.3)

// other · trumpet
const trumpet = note(`<
  A ~@2 B ~@4 C ~@2 D C ~@2 D C ~@17 E@2 F G H ~ F I J ~@2 F I ~@6 K ~@9 L M ~ D C ~@2 D ~ N O D P N O D ~ Q R S T Q R U
  V Q R S T Q R U V ~ W X
>`.pickRestart({
  A: "e5@2 ~ g5@2 ~ a5@2", B: "gb5@3 a5@3 bb5@3 b5@7", C: "c5@2 db5@2 c5@2 db5@2 c5@2 ~@2 c5@3 ~", D: "db5 ab4 db5 eb5",
  E: "[ab4@2 g4@2 gb4@2 f4@3 ~@7]/2", F: "~@3 db5", G: "ab4@2 db5@2 eb5@2 c5 db5", H: "c5@2 db5@2 c5@2 ~@2 c5@3 ~@5",
  I: "ab4 db5 eb5 ~", J: "~@8 c5@3 ~@5", K: "c5 ~", L: "~ ab4 g4 gb4", M: "f4@3 ~@5",
  N: "f4@6 c5@2 b4 c5 b4 c5 b4 ~ c5 ~", O: "ab4@4 f4@4 ~@2 f4 ~ ab4 ~ c5 ~", P: "c5 db5 c5 db5 c5 ~ [e4,g4,c5]@2",
  Q: "gb4@6 db5@2 c5 db5 c5 db5 c5@2 db5@2", R: "a4@2 gb4@3 gb4 a4 db5", S: "d5 a4 d5 e5", T: "db5 d5 db5 d5 db5@2 ~@2",
  U: "d5 a4 e5 d5", V: "db5 d5 db5 d5 db5@4", W: "db5@2 d5@2 db5@2 d5@2 db5@4 [db5,f5]@3 ~", X: "[gb4,db5,gb5]@11 ~@5",
})).s("gm_trumpet").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@8 A B C D E B C D E ~@12 F G H I ~ J@2 K L M N K L O P N K L Q ~ R@2 S T ~@11 U C D V U C D ~ U C D V U C D ~ W X Y
  Z W X AA AB W X Y Z W X AA AB ~ AC AD
>`.pickRestart({
  A: "~@12 e4@3 ~", B: "f3@4 ~@2 c4@2 b3 c4 b3 c4 b3 ~ c4 ~", C: "ab3@4 f3@4 ~@2 f3 ~ ab3 ~ c4 ~", D: "db4 ab3 db4 eb4",
  E: "c4@2 db4@2 c4@2 db4@2 c4@2 ~@2 e4@3 ~", F: "c3@2 eb3!2 g3!2 eb3 ~", G: "db3!2 f3!2 ab3 ~ f3 ~",
  H: "eb3@2 gb3!2 bb3!2 gb3 ~", I: "g3", J: "[~@12 f3@6 c4@2 b3 c4 b3 c4 b3 ~ c4 ~ ab3@4]/2",
  K: "f3@4 ~@2 f3 ~ ab3 ~ c4 ~ db4@4", L: "ab3@2 db4@2 eb4@2 c4 db4", M: "c4 db4 c4 ~@3 f3@2",
  N: "~@2 c4@2 b3 c4 b3 c4 b3 ~ c4 ~ ab3@4", O: "c4@2 db4@2 c4@2 ~@2 e4@3 ~ a2@2 bb2@2", P: "b2 c3 db3 d3 eb3 e3 f3@2",
  Q: "c4 db4 c4@4 ~@2", R: "f3 ab3 c4 ab3", S: "db4 f4 ab4 f4", T: "c4 e4 c4 ~", U: "f3@6 c4@2 b3 c4 b3 c4 b3 ~ c4 ~",
  V: "c4 db4 c4 db4 c4 ~@3", W: "gb3@6 db4@2 c4 db4 c4 db4 c4@2 db4@2", X: "a3@2 gb3@3 gb3 a3 db4", Y: "d4 a3 d4 e4",
  Z: "db4 d4 db4 d4 db4@2 ~@2", AA: "d4 a3 e4 d4", AB: "db4 d4 db4 d4 db4@4",
  AC: "db4@2 d4@2 db4@2 d4@2 db4@4 [db4,f4]@3 ~", AD: "[gb3,db4]@11 ~@5",
})).s("gm_tenor_sax").gain(0.45)

// chords · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  ~@8 A ~@3 A ~@3 A ~@2 B@2 C D B@2 C D ~@11 E ~@3 F G ~@5 H@2 I J ~@10 K L H I M ~@4 N O P Q N O P ~ R@2 S T R@2 S T
  R@2 S T R@2 S ~ U V W
>`.pickRestart({
  A: "~@12 e3@3 ~", B: "f2 ~ ab2 ~ c3 ~ ab2 ~", C: "db3 ~ f3 ~ ab3 ~ f3 ~", D: "c3 ~ e3 ~ c3 ~ g2 ~", E: "~@8 e3@3 ~@5",
  F: "~@8 e3@3 ~ a2@2 bb2@2", G: "b2 c3 db3 d3 eb3 e3 ~@2", H: "f2 ab2 c3 ab2", I: "db3 f3 ab3 f3", J: "c3 e3 c3 ~",
  K: "~ ab2 g2 gb2", L: "f2@3 f2 c3@2 ab2@2", M: "c3 e3 c3 g2", N: "f2@6 c3@2 b2 c3 b2 c3 b2 ~ c3 ~",
  O: "ab2@4 f2@4 ~@2 f2 ~ ab2 ~ c3 ~", P: "db3 ab2 db3 eb3", Q: "c3 db3 c3 db3 c3 ~@3",
  R: "~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3]", S: "~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4]",
  T: "~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4]", U: "db4 d4 db4 d4 db4@4", V: "db4 d4 db4 d4 db4@2 db3@2",
  W: "gb2@11 ~@5",
})).s("gm_baritone_sax").gain(0.45)

// chords · clarinet · "Bass Clarinet"
const clarinet = note(`<
  ~@8 A B@2 C A B@2 C A ~@12 D E F G ~@5 H ~@3 I J ~@5 K@2 L M ~@10 N O P Q R ~@4 S T U V S T U ~ W@2 X Y W@2 X Y W@2 X
  Y W@2 X ~ Z AA AB
>`.pickRestart({
  A: "~@12 g4@3 ~", B: "~ f3 ~ f3 ~ f3 ~ f3", C: "~ ab3 ~ ab3 ~ ab3 ~ ab3", D: "c3@2 eb3!2 g3!2 eb3 ~",
  E: "db3!2 f3!2 ab3 ~ f3 ~", F: "eb3@2 gb3!2 bb3!2 gb3 ~", G: "g3", H: "~@8 g4@3 ~@5", I: "~@8 g4@3 ~ a3@2 bb3@2",
  J: "b3 c4 db4 d4 eb4 e4 ~@2", K: "f2 ab2 c3 ab2", L: "db3 f3 ab3 f3", M: "c3 e3 c3 ~", N: "~ ab3 g3 gb3",
  O: "f3@3 f3 c4@2 ab3@2", P: "f3 ab3 c4 ab3", Q: "db4 f4 ab4 f4", R: "c4 e4 c4 g3",
  S: "f3@6 c4@2 b3 c4 b3 c4 b3 ~ c4 ~", T: "ab3@4 f3@4 ~@2 f3 ~ ab3 ~ c4 ~", U: "db4 ab3 db4 eb4",
  V: "c4 db4 c4 db4 c4 ~@3", W: "~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3]",
  X: "~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4]", Y: "~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4]",
  Z: "db4 d4 db4 d4 db4@4", AA: "db4 d4 db4 d4 db4@2 db3@2", AB: "gb3@11 ~@5",
})).s("gm_clarinet").gain(0.45)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  ~@3 A@2 ~@4 B@2 C D B@2 C D B E B@2 C D B@2 C F ~@2 G H I J ~ K@2 L M N O L P Q R O L P ~@2 B@2 C S ~@10 T U B C D V B
  C ~ V B C ~ V B C ~ W@2 X Y W@2 X Y W@2 X Y W@2 X ~ Z AA AB
>`.pickRestart({
  A: "[gb1@3 a1@3 bb1@3 b1@21 ~@2]/2", B: "f1 ab1 c2 ab1", C: "db2 f2 ab2 f2", D: "c2 e2 c2 g1",
  E: "f1@2 ab1@2 db2 c2 ab1 g1", F: "c2@2 e2@2 c2@2 g1 ~", G: "c2@2 eb2!2 g2!2 eb2 ~", H: "db2!2 f2!2 ab2 ~ f2 ~",
  I: "eb2@2 gb2!2 bb2!2 gb2 ~", J: "g2", K: "[ab1@2 g1@2 gb1@2 f1@3 f1 c2@2 ab1@2 f1@2]/2", L: "ab1 c2 ab1 db2",
  M: "f2 ab2 f2 c2", N: "e2 c2 g1 f1", O: "ab1 c2 ab1 f1", P: "f2 ab2 f2 ~", Q: "~@6 a1 bb1",
  R: "b1 c2 db2 d2 eb2 e2 f1@2", S: "c2 e2 c2 ~", T: "~ ab1 g1 gb1", U: "f1@3 f1 c2@2 ab1@2", V: "f1@2 c2 ab1",
  W: "~ [db2,gb2] ~ [db2,gb2] ~ [db2,gb2] ~ [db2,gb2]", X: "~ [a2,d3] ~ [a2,d3] ~ [a2,d3] ~ [a2,d3]",
  Y: "~ [ab2,db3] ~ [ab2,db3] ~ [ab2,db3] ~ [ab2,db3]", Z: "db2 d2 db2 d2 db2@4", AA: "db2 d2 db2 d2 db2@2 db2@2",
  AB: "gb1@11 ~@5",
})).s("gm_electric_bass_pick").gain(0.3)

// chords · trombone
const trombone = note(`<
  ~@8 A B@2 C D B@2 C D ~@12 E F G ~@2 H I J K L I M N O P I M N ~@25 Q R S T Q R S ~@17 U V W
>`.pickRestart({
  A: "~@3 c3", B: "~ f2 ~ f2 ~ f2 ~ f2", C: "~ ab2 ~ ab2 ~ ab2 ~ ab2", D: "~ c3 ~ c3 ~ c3 ~ c3",
  E: "bb3 ~ bb3 ~ bb3 ~ bb3 ~", F: "c4 ~ c4 ~ c4 ~ c4 ~", G: "db4 ~ db4 ~ db4 ~ db4 ~", H: "~@6 f2 f3",
  I: "~ f3 ~ f3 ~ f3 ~ f3", J: "~ f3 ~ f3 ~ f3 ~ ab3", K: "~ ab3 ~ ab3 ~ ab3 ~@2", L: "~@4 c3@2 ~ f3",
  M: "~ f3 ~ f3 ~ ab3 ~ ab3", N: "~ ab3 ~ ab3 ~@4", O: "~@4 c3@2 a2 bb2", P: "b2 c3 db3 d3 eb3 e3 ~ f3",
  Q: "f2@6 c3@2 b2 c3 b2 c3 b2 ~ c3 ~", R: "ab2@4 f2@4 ~@2 f2 ~ ab2 ~ c3 ~", S: "db3 ab2 db3 eb3",
  T: "c3 db3 c3 db3 c3 ~@3", U: "db3 d3 db3 d3 db3@4", V: "db3 d3 db3 d3 ~@4", W: "gb3@11 ~@5",
})).s("gm_trombone").gain(0.3)

// chords · trombone · soft notes
const trombone_soft = note("<~@80 A@2 B C A@2 B C A@2 B C A@2 B ~@4>".pickRestart({
  A: "~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3]", B: "~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4]",
  C: "~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4]", // Db5
})).s("gm_trombone").gain(0.2)

// chords · tuba · "Euphonium"
const tuba = note(`<
  ~@8 A B@2 C D B@2 C D ~@2 E@2 F G E@2 F G ~@9 H I J ~@3 K L ~@28 M N O P M N O ~@17 Q R S
>`.pickRestart({
  A: "~@12 c3@3 ~", B: "~ f3 ~ f3 ~ f3 ~ f3", C: "~ ab3 ~ ab3 ~ ab3 ~ ab3", D: "c4@2 db4@2 c4@2 db4@2 c4@2 ~@2 c3@3 ~",
  E: "f2 ~ ab2 ~ c3 ~ ab2 ~", F: "db3 ~ f3 ~ ab3 ~ f3 ~", G: "c3 ~ e3 ~ c3 ~ g2 ~", H: "~@3 db4",
  I: "ab3@2 db4@2 eb4@2 c4 db4", J: "c4@2 db4@2 c4@2 ~@2 c3@3 ~@5", K: "~@6 a2 bb2", L: "b2 c3 db3 d3 eb3 e3 ~@2",
  M: "f2@6 c3@2 b2 c3 b2 c3 b2 ~ c3 ~", N: "ab2@4 f2@4 ~@2 f2 ~ ab2 ~ c3 ~", O: "db3 ab2 db3 eb3",
  P: "c3 db3 c3 db3 c3 ~@3", Q: "db3 d3 db3 d3 db3@4", R: "db3 d3 db3 d3 ~@4", S: "gb2@11 ~@5",
})).s("gm_tuba").gain(0.3)

// chords · tuba · "Euphonium" · soft notes
const tuba_soft = note("<~@80 A@2 B C A@2 B C A@2 B C A@2 B ~@4>".pickRestart({
  A: "~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3] ~ [db3,gb3]", B: "~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4]",
  C: "~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4]", // Db5
})).s("gm_tuba").gain(0.2)

// drums · kick
const kick = s("bd").struct(`<
  ~@8 A B@8 ~@2 B@7 C D E F@2 G H ~ A I F@5 J ~ A F@3 J ~ F@2 K J ~@3 A F@3 J ~@3 L B@2 D L B@2 L@2 B@2 L@2 B@2 L B@15
  ~@4
>`.pickRestart({
  A: "~@3 x", B: "x!2", C: "x ~@3 x ~@2 x", D: "x!4", E: "~ x", F: "~ x ~ x", G: "~@4 x ~@7 x ~@2 x", H: "x",
  I: "x!2 ~ x", J: "~ x ~@2", K: "x ~ x!2", L: "x!3 ~",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<~@29 [x ~@7 x ~@2 x!2 ~@3]!3 ~@67>").gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B@8 ~@2 B@9 C ~@6 D E@6 ~@2 E@3 F G E@2 H I ~@3 J E@3 I ~@3 A B@2 ~ A B@2 K A B@2 L A B@2 M B@3 H B@3 H B@3 H
  B@3 ~@4
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x!9 ~@7", D: "~ x", E: "x!2", F: "x ~@7 x ~@3 x ~@2 x", G: "~@2 x!3 ~@11", H: "~ x ~@2",
  I: "x", J: "x!3 ~ x ~ x ~ x ~@7", K: "~@10 x!6", L: "~@10 x!4 ~@2", M: "~@10 x!5 ~",
})).gain(0.45)

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

// drums · crash
const crash = s("cr").struct("<~@83 A ~@3 A ~@3 A ~@3 A@3 B>".pickRestart({
  A: "~@3 x", B: "x",
})).gain(0.45)

// drums · tambourine
const tambourine = s("tb").struct("<~@52 [~@3 x] [x!4]!3 ~@4 [~@2 x!2] [x!4]!2 x ~@35>").gain(0.45)

stack(
  flute, oboe, trumpet, tenor_sax, baritone_sax, clarinet, bass, trombone, trombone_soft, tuba, tuba_soft, kick, rim,
  snare, hihat, crash, tambourine
)