Strudelify

The Chicken Dance/The Birdie Song/Der Ententanz

Werner Thomas

KeyD majorTempo192 bpm
0:00/0:00
// The Chicken Dance/The Birdie Song/Der Ententanz — Werner Thomas
// 192 bpm, 2/2, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5687759; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(192/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · trumpet · "B♭ Trumpet 2"
const trumpet = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T U V W X U V Y Z AA AB W AC AD AC AE AF AG F G H I J K L M N O P Q R S T
>`.pickRestart({
  A: "f4 ~ f5 ~", B: "~ f5 ~ f5", C: "~ f5 ~ f5 ~ f5 ~ f5", D: "f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~", E: "g5 ~@7",
  F: "~@4 e4 ~ e4 ~@5 e4@2 ~@2", G: "~@4 e4 ~ e4 ~@3 e4 ~ e4 ~ e4 ~", H: "e4 ~@7", I: "d4!2 ~ d4",
  J: "~@4 d4 ~ d4 ~@3 d4 ~ d4 ~ d4 ~", K: "~ d4 ~ d4", L: "e4 ~@3 g4@4 a3@4 b3@4", M: "~@2 g4!2 a4!2 e4!2",
  N: "g4@2 g4!2 a4!2 e4!2", O: "g4@2 g4!2 a4!2 c5!2", P: "b4 ~@3 b4@4 a4@4 g4@4", Q: "f4 ~ f4!2 g4!2 d4!2",
  R: "f4@2 f4!2 g4!2 d4!2", S: "f4 g4 a4 b4", T: "c5", U: "~ e4 d#4 d4", V: "c4@3 e4", W: "g4@3 g4", X: "f4 e4",
  Y: "f4@3 e4", Z: "d4", AA: "~ f4 e4 d#4", AB: "b3@3 d4", AC: "g4!2", AD: "~ g4!3", AE: "~ g4 f#4 f4", AF: "e4",
  AG: "~ b3 c4 d4",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~@2 A B C D E F G H I J K L F E M N I O P ~ Q@2 R S T U V W X Y Z AA AB AC AD AE E F G H I J K L F E M N I O P
>`.pickRestart({
  A: "f4 ~ f4 ~", B: "f4 ~ f4 ~ f4 ~ f4 ~", C: "f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~", D: "f4 ~@7",
  E: "~@4 c4 ~ c4 ~@5 c4@2 ~@2", F: "~@4 c4 ~ c4 ~@3 c4 ~ c4 ~ c4 ~", G: "~ b4 a4 g4", H: "b3!2 ~ b3",
  I: "~@4 b3 ~ b3 ~@3 b3 ~ b3 ~ b3 ~", J: "~ b3 ~ b3", K: "c4 ~@3 b3@4 c4@4 d4@4", L: "e4 c4 ~ c4", M: "b3 ~@15",
  N: "~@4 b3 ~ b3 ~@5 b3@2 ~@2", O: "~ d4 e4 f4", P: "g4", Q: "~ e4 ~ e4", R: "~ e4 ~ f4", S: "e4 ~@3", T: "~ e4 ~ c4",
  U: "~ d4 ~ d4", V: "~ g4 ~ g4", W: "~ b3!3", X: "~ g4 ~ f4", Y: "~ c4 ~ f4", Z: "~ f4 ~ d4", AA: "~ g4 ~ d4",
  AB: "~ d4 ~ g4", AC: "~ d4 c4 d4", AD: "c4", AE: "~ g4 a4 b4",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note(`<
  ~@2 A B C D E F G H I J K L M N O P I Q R ~ S@2 T U S V J W J X Y Z Y AA AB AC E F G H I J K L M N O P I Q R
>`.pickRestart({
  A: "g3 ~ g3 ~", B: "g3 ~ g3 ~ g3 ~ g3 ~", C: "g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~", D: "g3 ~@7",
  E: "~@4 g3 ~ g3 ~@5 g3@2 ~@2", F: "~@4 g3 ~ g3 ~@3 g3 ~ g3 ~ g3 ~", G: "~ b2 a2 g2", H: "g2 d3 ~ d3",
  I: "~@4 d3 ~ d3 ~@3 d3 ~ d3 ~ d3 ~", J: "~ d3 ~ d3", K: "e3 ~@3 g2@4 a2@4 b2@4", L: "c3 e3 ~ e3",
  M: "~@4 e3 ~ e3 ~@3 e3 ~ e3 ~ e3 ~", N: "~@4 e3 ~ e3 ~@5 e3@2 ~@2", O: "d3 ~@3 b2@4 a2@4 g2@4",
  P: "g2@4 d3 ~ d3 ~@5 d3@2 ~@2", Q: "~ b2 c3 d3", R: "e3", S: "~ c3 ~ c3", T: "~ c3 ~ d3", U: "c3 g2 a2 b2",
  V: "~ c3 ~ e3", W: "~ d3!3", X: "b3@3 a3", Y: "a3 g3", Z: "~ b3!2 a3", AA: "~ g3 a3 b3", AB: "c4", AC: "~ g2 a2 b2",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note(`<
  ~@3 A B C D@2 E F G H I D@3 J G@2 K L ~ D@3 M D N G@8 O P D@2 E F G H I D@3 J G@2 K L
>`.pickRestart({
  A: "g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3", B: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", C: "g2 ~@7", D: "c3 ~ g2 ~",
  E: "d2 ~@3 b2@4 a2@4 g2@4", F: "d2 ~ d3 ~", G: "g2 ~ d3 ~", H: "g2 ~ d2 ~", I: "c3 ~ g2@2 a2@2 b2@2",
  J: "d3 ~@3 b2@4 a2@4 g2@4", K: "g2!2 a2 b2", L: "c3 g2 e2 c2", M: "c3 g2 a2 b2", N: "c3 ~ a2 ~", O: "c2 a2 g2 e2",
  P: "c2 g2 a2 b2",
})).s("gm_tuba").gain(0.3)

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

// drums · snare
const snare = s("sd").struct("<~@6 A@14 B C A@14 B C A@14 B>".pickRestart({
  A: "~ x ~ x", B: "~ x!3", C: "x ~ x!6",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@21 x ~@15 x ~@15>").gain(0.3)

stack(trumpet, trumpet_2, trombone, bass, kick, snare, open_hat)