Strudelify

Go daddy o

ziomaldy

KeyB♭ majorTempo225 bpm
0:00/0:00
// Go daddy o — ziomaldy
// 225 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4871265; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(225/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 · "Clarinetto in Si♭"
const clarinet = note(`<
  ~@11 A B C D A E F D A G H D A B C D A E F D A G H D I J ~ K L J ~ K L J ~ K L M N M N O P M N Q R M N S ~@10 T U V W
  X Y ~@6 N S ~@10 I J ~ K L J ~ K L J ~ K Z ~@7 A B C D A E F D A G H D I AA AB W ~ AC@3 ~
>`.pickRestart({
  A: "~@11 bb3@2 ~@2 bb3", B: "d4@7 f4 ~@3 bb3@2 ~@2 bb3", C: "d4@3 f4 eb4@3 db4 d4@3 bb3 ab3@3 f3", D: "bb3@7 d4 ~@8",
  E: "db4@7 f4 ~@3 bb3@4 bb3", F: "db4@3 f4 eb4@3 db4 d4@3 bb3 ab3@3 f3", G: "eb4@7 f4 ~@3 bb3@4 bb3",
  H: "eb4@3 f4 eb4@3 db4 d4@3 bb3 ab3@3 f3", I: "~@11 db4 d4 f4 ~ g4", J: "bb4 ~@7", K: "~@4 bb4@4 g4@4 eb4@3 db4",
  L: "d4@3 bb3 ab3@3 bb3 ~@3 db4 d4 f4 ~ g4", M: "ab4@3 ab4 ab4@3 ab4 ab4@3 ~@5", N: "~@3 ab4@2 ~@2 ab4 ab4@3 ab4 ~@4",
  O: "bb4@3 bb4 bb4@3 bb4 bb4@3 ~@5", P: "~@3 bb4@2 ~@2 bb4 bb4@3 bb4 ~@4", Q: "a4@3 a4 a4@3 a4 a4@3 ~@5",
  R: "~@3 a4@2 ~@2 a4 a4@3 a4 ~@4", S: "ab4@2 ~ ab4 ~@12", T: "~@11 db4 d4 f4 ~ bb4", U: "bb4@2 ~ ab4 ~@3 f4 ~@3 bb3@5",
  V: "db4@2 ~ eb4 ~@3 e4 ~@3 g4@5", W: "f4@3 g4 bb4@3 g4 ab4@3 f4 a4@3 bb4", X: "~@7 bb4 bb4@7 bb4", Y: "bb4 ~",
  Z: "d4@3 bb3 ab3@3 bb3 ~@8", AA: "bb4@3 ab4 ~@3 f4 ~@3 bb3@5", AB: "db4@3 eb4 ~@3 e4 ~@3 g4@5", AC: "d5/3",
})).s("gm_clarinet").gain(0.3)

// other · tenor sax · "Sassofono tenore"
const tenor_sax = note(`<
  ~@4 A B C ~ A B C D E F G D H I G D J K G D E F G D H I G D J K G L M ~ N O M ~ N O M ~ N O P Q P Q R S P Q T U P Q V
  ~@10 W X Y Z AA AB ~@6 Q V ~@23 A B C ~ A B C D E F G D H I G D J K G L AC AD Z ~ AE@3 ~
>`.pickRestart({
  A: "bb4@3 bb4 bb4@3 bb4 g4@2 ~@2 bb2@3 ~", B: "~@3 bb4@4 bb4 g4@3 f4 bb2@3 ~", C: "bb4@3 bb4 bb4@3 bb4 g4@8",
  D: "~@11 bb3@2 ~@2 bb3", E: "d4@7 f4 ~@3 bb3@2 ~@2 bb3", F: "d4@3 f4 eb4@3 db4 d4@3 bb3 ab3@3 f3", G: "bb3@7 d4 ~@8",
  H: "db4@7 f4 ~@3 bb3@4 bb3", I: "db4@3 f4 eb4@3 db4 d4@3 bb3 ab3@3 f3", J: "eb4@7 f4 ~@3 bb3@4 bb3",
  K: "eb4@3 f4 eb4@3 db4 d4@3 bb3 ab3@3 f3", L: "~@11 db4 d4 f4 ~ g4", M: "bb4 ~@7", N: "~@4 bb4@4 g4@4 eb4@3 db4",
  O: "d4@3 bb3 ab3@3 bb3 ~@3 db4 d4 f4 ~ g4", P: "d4@3 d4 d4@3 d4 d4@3 ~@5", Q: "~@3 d4@2 ~@2 d4 d4@3 d4 ~@4",
  R: "db4@3 db4 db4@3 db4 db4@3 ~@5", S: "~@3 db4@2 ~@2 db4 db4@3 db4 ~@4", T: "eb4@3 eb4 eb4@3 eb4 eb4@3 ~@5",
  U: "~@3 eb4@2 ~@2 eb4 eb4@3 eb4 ~@4", V: "d4@2 ~ d4 ~@12", W: "~@11 db4 d4 f4 ~ bb4",
  X: "bb4@2 ~ ab4 ~@3 f4 ~@3 bb3@5", Y: "db4@2 ~ eb4 ~@3 e4 ~@3 g4@5", Z: "f4@3 g4 bb4@3 g4 ab4@3 f4 a4@3 bb4",
  AA: "~@7 f4 f4@7 g4", AB: "g4 ~", AC: "bb4@3 ab4 ~@3 f4 ~@3 bb3@5", AD: "db4@3 eb4 ~@3 e4 ~@3 g4@5", AE: "bb2/3",
})).s("gm_tenor_sax").gain(0.45)

// other · trumpet · "Tromba in Si♭"
const trumpet = note(`<
  ~@11 A ~@11 B C D E B F G E B H I E ~ J K ~@2 J K ~@2 J L ~@2 M N M N O P M N Q R M N S ~@10 T U V W X Y Z AA AB AC AD
  AE N S ~@11 J K ~@2 J K ~@2 J L ~@9 B C D E B F G E B H I E T U V W ~@2 AF@2 AG
>`.pickRestart({
  A: "f5@4 eb5@3 d5 f5@4 ~@4", B: "~@11 bb4@2 ~@2 bb4", C: "d5@7 f5 ~@3 bb4@2 ~@2 bb4",
  D: "d5@3 f5 eb5@3 db5 d5@3 bb4 ab4@3 f4", E: "bb4@7 d5 ~@8", F: "db5@7 f5 ~@3 bb4@4 bb4",
  G: "db5@3 f5 eb5@3 db5 d5@3 bb4 ab4@3 f4", H: "eb5@7 f5 ~@3 bb4@4 bb4", I: "eb5@3 f5 eb5@3 db5 d5@3 bb4 ab4@3 f4",
  J: "~@2 d5@4 bb4 ~", K: "db5@2 ~@2 bb4@2 ~@2 c5@2 ~ bb4 ~@3 d5", L: "db5@2 ~@2 bb4@2 ~@2 c5@3 bb4 c5@3 bb4",
  M: "bb4@3 bb4 bb4@3 bb4 bb4@3 ~@5", N: "~@3 bb4@2 ~@2 bb4 bb4@3 bb4 ~@4", O: "eb5@3 eb5 eb5@3 eb5 eb5@3 ~@5",
  P: "~@3 eb5@2 ~@2 eb5 eb5@3 eb5 ~@4", Q: "c5@3 c5 c5@3 c5 c5@3 ~@5", R: "~@3 c5@2 ~@2 c5 c5@3 c5 ~@4",
  S: "f5@2 ~ f5 ~@12", T: "~@11 db4 d4 f4 ~ g4", U: "bb4@3 c5 ~@3 db5 ~@3 d5@5", V: "e5@3 eb5 ~@3 db5 ~@3 bb4@5",
  W: "d5@3 db5 d5@3 eb5 d5@3 f4 a4@3 bb4", X: "~@15 bb4", Y: "db5!4", Z: "db5@4 c5@3 bb4 db5@4 c5@3 bb4",
  AA: "db5@4 bb4@3 ab4 bb4@2 ~ bb4 ~@3 db5", AB: "~@11 f4 a4@3 c5", AC: "f5@4 e5@3 eb5 eb5@3 f5 eb5@3 d5",
  AD: "c5@3 d5 c5@3 bb4 a4@3 f4 g4@3 bb4", AE: "db5@3 d5 eb5@3 e5 f5@4 db5@2 ~ bb4", AF: "[f5 g5 ab5@6]/2",
  AG: "bb5 ~@3",
})).s("gm_trumpet").gain(0.45)

// other · trumpet · "Tromba in Si♭"
const trumpet_2 = note(`<
  ~@11 A ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B C D ~@2 E D ~@2 C F ~@2 G H G H I J G H K L G H M ~@10 N O P Q R S ~@6 H M
  ~@11 C D ~@2 E D ~@2 C F ~@13 B ~@3 B ~@3 T U V W ~ X@3 ~
>`.pickRestart({
  A: "d5@4 c5@3 bb4 d5@4 ~@4", B: "d5 d5@2 ~", C: "~@2 bb4@4 g4 ~", D: "bb4@2 ~@2 g4@2 ~@2 bb4@2 ~ g4 ~@3 bb4",
  E: "~@2 bb4@4 f4 ~", F: "bb4@2 ~@2 g4@2 ~@2 bb4@3 g4 bb4@3 g4", G: "g4@3 g4 g4@3 g4 g4@3 ~@5",
  H: "~@3 g4@2 ~@2 g4 g4@3 g4 ~@4", I: "c5@3 c5 c5@3 c5 c5@3 ~@5", J: "~@3 c5@2 ~@2 c5 c5@3 c5 ~@4",
  K: "a4@3 a4 a4@3 a4 a4@3 ~@5", L: "~@3 a4@2 ~@2 a4 a4@3 a4 ~@4", M: "d5@2 ~ d5 ~@12", N: "~@11 db4 d4 f4 ~ bb4",
  O: "bb4@2 ~ ab4 ~@3 f4 ~@3 bb3@5", P: "db4@2 ~ eb4 ~@3 e4 ~@3 g4@5", Q: "f4@3 g4 bb4@3 g4 ab4@3 f4 a4@3 bb4",
  R: "~@7 d5 d5@7 d5", S: "d5 ~", T: "d5@4 d5@8 d4 f4 ~ g4", U: "bb4@3 c5 ~@3 db5 ~@3 d5@5",
  V: "e5@3 eb5 ~@3 db5 ~@3 bb4@5", W: "d5@3 db5 d5@3 eb5 d5@3 f4 a4@3 bb4", X: "f5/3",
})).s("gm_trumpet").gain(0.45)

// other · trombone
const trombone = note(`<
  ~@12 A B A C D@2 A C E F G H G I G H D@2 A C E F G C J K ~@2 J K ~@2 L M ~@2 N O N O P Q N O P Q N O R ~@11 S T S U V
  ~@6 O R ~@11 J K ~@2 J K ~@2 L M ~@10 A B A C D@2 A C E F G H S T S ~ W@3 ~
>`.pickRestart({
  A: "d4@4 ~@3 d4 ~@8", B: "d4@4 ~@3 db4 ~@8", C: "g4 g4@2 ~", D: "db4@4 ~@3 db4 ~@8", E: "eb4@2 ~@5 eb4 ~@8",
  F: "eb4@2 ~@5 f4 ~@8", G: "d4@2 ~@5 d4 ~@8", H: "g4@3 ~ g4@8 ~@4", I: "d4@2 ~@5 db4 ~@8", J: "~@2 d4@4 d4 ~",
  K: "f4@2 ~@2 db4@2 ~@2 eb4@2 ~ c4 ~@3 d4", L: "~@2 eb4@4 eb4 ~", M: "f4@2 ~@2 f4@2 ~@2 eb4@3 c4 eb4@3 d4",
  N: "d4@3 d4 d4@3 d4 d4@3 ~@5", O: "~@3 d4@2 ~@2 d4 d4@3 d4 ~@4", P: "eb4@3 eb4 eb4@3 eb4 eb4@3 ~@5",
  Q: "~@3 eb4@2 ~@2 eb4 eb4@3 eb4 ~@4", R: "g4@2 ~ g4 ~@12", S: "f4@3 ~@13", T: "e4@3 ~@13", U: "~@7 g4@8 f4",
  V: "f4 ~", W: "g4/3",
})).s("gm_trombone").gain(0.3)

// bass · electric bass pick · "Basso elettrico"
const bass = note(`<
  ~@11 A B C B D E F B G H I J K L M N O P C Q R S M T M U V Q W X V L O Y Z T M B J B AA AB P B AC AD M K J AE AF M N
  AG AH M AI AJ M B AK AL AM AL AN AG AH AO O M AP U B AE AF M N AG AH M AI AJ M B M U V Q W X V L O Y Z T M ~@7 AQ L M
  N O P C Q R S M T M AL AM AL ~ AR@3 ~
>`.pickRestart({
  A: "bb1@4 bb1@3 bb1 bb1@4 ~@4", B: "bb1 c2 d2 f2", C: "bb2 ab2 g2 f2", D: "bb2 f2 d2 bb1", E: "eb2 f2 g2 f2",
  F: "eb2 d2 c2 b1", G: "bb2 ab2 g2 gb2", H: "f2 eb2 a1 eb2", I: "f2 g2 a2 f2", J: "bb2 d2 eb2 f2", K: "bb1 d2 eb2 f2",
  L: "bb1 bb2 ab2 g2", M: "f2 eb2 d2 c2", N: "bb1 c2 d2 bb1", O: "f2 eb2 d2 bb1", P: "eb2 f2 g2 eb2",
  Q: "bb1 c2 d2 eb2", R: "f2 g2 a2 bb2", S: "f2 g2 f2 c2", T: "bb1 ab2 g2 gb2", U: "bb1 bb2 f2 d2", V: "eb2!2 f2!2",
  W: "f2 g2 ab2 bb2", X: "g1 g2 f2 d2", Y: "f2 c2 eb2 f2", Z: "g2!2 f2!2", AA: "bb2 d2 f2 bb1", AB: "eb2 bb2 g2 eb2",
  AC: "bb2 d2 f2 g2", AD: "f2 c2 eb2 c2", AE: "bb1 bb2 ab2!2", AF: "g2!2 gb2!2", AG: "eb2 g1 ab1 a1",
  AH: "bb1 c2 db2 eb2", AI: "bb1 c2 d2 g2", AJ: "f2 c3 a2 g2", AK: "bb2 f2 ab2 a2", AL: "bb2@3 ~@13", AM: "eb2@3 ~@13",
  AN: "~@7 bb1 bb1@4 d2@4", AO: "f2 bb2 ab2 g2", AP: "f2 c2 f1 a1", AQ: "bb1 ~ bb1@2", AR: "bb1/3",
})).s("gm_electric_bass_pick").gain(0.3)

// chords · piano
const piano = note(`<
  ~@12 A B A C D E A C F G H I A J A C D E K C F G H L M N O P Q N O P Q R S T U V W V X Y W V Z AA W V AB AC AB AC AD
  AE AB AC AF AG AB AC AH AI AJ AK AD AL AM AN AF AG AB AO AB AC AB AC AD AE AB AC AF AG AB AC M N O P Q N O P Q R S T
  ~@8 A B A C D E A C F G H L AH AI AH ~ AP@2 AQ ~
>`.pickRestart({
  A: "[ab3,d4,g4,f5]@3 eb5 d5@3 [ab3,d4,g4,f5] ~@3 bb4 f5@3 g5", // Ddim
  B: "[ab3,d4,g4,g5]@3 bb4 f5@3 [ab3,db4,g4,g5] ~@4 bb4@2 ~@2", // G Db
  C: "[ab3,d4,g4,g5]@3 bb4 f5@3 g5 ~@4 bb4@2 ~@2, ~ [ab3,d4,g4]@2 ~", // G
  D: "[g3,db4,f4,f5]@3 eb5 db5@3 [g3,db4,f4,f5] ~@3 bb4 f5@3 g5", // Gm7b5
  E: "[g3,db4,f4,g5]@3 bb4 f5@3 [g3,db4,f4,g5] ~@4 bb4@2 ~@2", // Gm7b5
  F: "[bb3,eb4,f4]@2 ~@2 [eb5,eb6]@3 [bb3,eb4,f4] [d5,d6]@4 [db5,db6]@4, [f5,f6] ~@3", // Bbsus4 Eb Bbsus4 D Db F
  G: "[bb3,eb4,f4]@2 ~@2 [bb4,bb5]@3 [a3,eb4,f4] [a4,a5]@4 [f4,f5]@4, [c5,c6] ~@3", // Bbsus4 Bb F7 A F C
  H: "[ab3,d4,g4]@2 ~@2 [ab4,ab5]@3 [ab3,d4,g4] [g4,g5]@4 [gb4,gb5]@4, [bb4,bb5] ~@3", // G Ab G Gb Bb
  I: "[ab3,d4,f4,g4,f5] [ab3,bb3,d4,g4]@2 ~", J: "[ab3,d4,g4,g5]@3 bb4 f5@3 [bb3,db4,g4,g5] ~@4 bb4@2 ~@2",
  K: "[ab3,d4,g4,f5]@3 eb5 d5@3 [ab3,db4,g4,f5] ~@3 bb4 f5@3 g5", // Ddim Db
  L: "[ab3,d4,f4,g4,f5] [d4,eb4,eb5] [d4,d5] [c4,c5], ~ [ab3,g4]@2 ~", M: "[bb3,bb4]@4 bb5@2 ~@2 a5@3 bb5 bb5@2 ~@2",
  N: "a5@3 bb5 bb5@2 ~@2 a5@2 ~ bb5 ~@3 bb5", O: "~@4 db5@4 bb4@4 eb4@3 db4",
  P: "d4@3 bb3 ab3@3 bb3 ~@3 db4 d4 f4 ~ g4", Q: "bb4@2 ~@2 bb5@2 ~@2 a5@3 bb5 bb5@2 ~@2",
  R: "a5@3 bb5 bb5@2 ~@2 a5@2 ~ bb5 ~@3 [bb4,bb5]", S: "[bb4,bb5] [ab4,ab5] [g4,g5] [gb4,e5]", T: "[f4,f5] ~@3",
  U: "[bb2,ab3,d4,g4,bb4]@2 ~@6 [bb2,ab3,d4,g4,bb4]@2 ~@2 bb2@3 ~", // Gm
  V: "~@3 [bb2,ab3,d4,g4,bb4]@4 [bb2,ab3,d4,g4,bb4] [d4,g4,bb4]@4 bb2@3 ~, ~@4 [bb2,ab3] ~@3", // Gm Bb7
  W: "[d4,g4,bb4]@4 ~@4 [d4,g4,bb4]@4 bb2@3 ~, [bb2,ab3] ~@3 [bb2,ab3] ~@3", // Gm Bb7
  X: "[g4,c5,eb5]@4 ~@4 [g4,c5,eb5]@4 eb3@3 ~, [eb3,db4] ~@3 [eb3,db4] ~@3", // Cm Eb7
  Y: "~@3 [g4,c5,eb5]@4 [eb3,db4,g4,c5,eb5] [g4,c5,eb5]@4 eb3@3 ~, ~@3 [eb3,db4]@2 ~@3 [eb3,db4]@2 ~@6", // Cm Eb7
  Z: "[eb4,g4,c5]@4 ~@4 [eb4,g4,c5]@4 c3@3 ~, [f3,a3] ~@3 [f3,a3] ~@3", // Cm F
  AA: "~@3 [eb4,g4,c5]@4 [f3,a3,eb4,g4,c5] [eb4,g4,c5]@4 c3@3 ~, ~@3 [f3,a3]@2 ~@3 [f3,a3]@2 ~@6", // Cm F7 Cm F
  AB: "[bb2,ab3,d4,g4,bb4]@4 [bb2,ab3,d4,g4,bb4]@3 [bb2,ab3,d4,g4,bb4] ~@8", // Gm
  AC: "~@4 [bb2,ab3,d4,g4,bb4]@4 [bb2,ab3,d4,g4,bb4]@3 [bb2,ab3,d4,g4,bb4] ~@4", // Gm
  AD: "[eb3,g3,db4,f4,bb4]@4 [eb3,g3,db4,f4,bb4]@3 [eb3,g3,db4,f4,bb4] ~@8", // Eb7
  AE: "~@4 [eb3,g3,db4,f4,bb4]@4 [eb3,g3,db4,f4,bb4]@3 [eb3,g3,db4,f4,bb4] ~@4", // Eb7
  AF: "[f3,a3,eb4,g4,c5]@4 [f3,a3,eb4,g4,c5]@3 [f3,a3,eb4,g4,c5] ~@8", // F7
  AG: "~@4 [eb4,g4,c5]@4 [f3,a3,eb4,g4,c5]@3 [f3,a3,eb4,g4,c5] ~@4, ~@2 [f3,a3] ~@5", AH: "[bb2,ab3,d4,g4,bb4]@3 ~@13",
  AI: "[eb3,g3,db4,e4,bb4]@3 ~@13", AJ: "[bb2,ab3,d4,g4,bb4] ~@3",
  AK: "~@7 [bb2,ab3,d4,g4,bb4] [bb2,ab3,d4,g4,bb4]@6 ~ [eb3,g3,db4,f4,bb4]", // Gm Eb7
  AL: "~@4 [eb3,g3,db4,f4,bb4]@4 [db4,f4,bb4] ~@2 [eb3,g3,db4,f4,bb4] ~@4, ~@4 [eb3,g3] ~@3", // Eb7 Bbm Eb7 Eb
  AM: "[bb2,ab3,d4,g4,bb4]@4 [bb2,ab3,d4,g4,bb4]@3 [d4,g4,bb4] [bb2,ab3]@4 ~@4", // Gm Bb7
  AN: "~@4 [bb2,ab3,d4,g4,bb4]@2 ~@2 [bb2,ab3,d4,g4,bb4]@3 [bb2,ab3,d4,g4,bb4] ~@4", // Gm
  AO: "~@4 [d4,g4,bb4]@4 [bb2,ab3,d4,g4,bb4]@3 [bb2,ab3,d4,g4,bb4] ~@4, ~@2 [bb2,ab3] ~@5", // Gm Bb7
  AP: "[bb2,ab3,d4,e4,g4,bb4]", AQ: "[bb2,ab3,d4,e4,g4,bb4]@15 ~",
})).s("gm_piano").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@4 A B ~ C A B ~@98 A B ~ C A B ~@22>".pickRestart({
  A: "x ~@2 x", B: "~@3 x", C: "x!2",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct("<~@3 [~@11 x!2 ~@2 x] ~@103 [~@11 x!2 ~@2 x] ~@28>").gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<x ~@135>").gain(0.3)

// drums · open hat
const open_hat = s("oh").struct(`<
  [x ~@3 x ~@2 x!2 ~@3 x ~@2 x]!3
  [x ~@3 x ~@2 x!2 ~@7]
  [x ~@3 x ~@2 x!2 ~@3 x ~@2 x]!103
  [x ~@3 x ~@2 x!2 ~@7]
  [x ~@3 x ~@2 x!2 ~@3 x ~@2 x]!20
  ~@8
>`).gain(0.3)

stack(clarinet, tenor_sax, trumpet, trumpet_2, trombone, bass, piano, kick, snare, low_tom, open_hat)