Strudelify

flamingo

Kero Kero Bonito

KeyE♭ majorTempo180 bpm
0:00/0:00
// flamingo — Kero Kero Bonito
// 180 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5092124; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// 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 C D E F G H A B C D E F I J K L M N O P Q R K L M N O P S T U V W ~ X Y Z ~ A B C AA AB AC AD AE
>`.pickRestart({
  A: "ab4@2 bb4@2 c5@2 eb5@4 f5@4 f5 g5", B: "f5 eb5 c5 f5", C: "eb5@3 g4 ab4 bb4 c5 eb5",
  D: "eb5@2 f5@4 f5 g5 f5@4 eb5@4", E: "d5@4 bb4@3 g4", F: "g4@2 c5@2 g4@2 c5@2 bb4@6 g4 gb4",
  G: "f4 ~ g4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ f4 ~ eb5 ~", H: "eb5 ~ f4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ f4 ~ g4 ~",
  I: "f4 ~ g4 ~ eb5 ~ f4 ~ c5@2 ~@2 d5@4", J: "eb5 ~@3", K: "eb5 ~ f5 ~", L: "g5@2 bb5 ~ bb5@4", M: "~ g5 f5 eb5",
  N: "eb5@2 f5 ~ f5@3 [eb5,g5]", O: "[d5,f5]@2 [bb4,d5] ~@3 [c5,eb5]@2",
  P: "[g4,bb4] ~ [bb4,d5] [c5,eb5] [bb4,d5]@2 ~@2", Q: "eb5 ~ eb5 ~ eb5 ~ d5 ~ f5@4 c5@4", R: "c5 ~ bb4@2 bb4@2 ~@2",
  S: "eb5@4 eb5 ~ c5 ~ f5@4 c5@2 ~@2", T: "eb5 ~ bb4@2", U: "bb5@6 g5 f5", V: "f5 g5 bb4@2 ~ bb4 eb5 bb4",
  W: "ab4 c5 eb5@2 f5@2 g5@2", X: "~@3 eb5 f5 g5 f5 eb5", Y: "f5 f4 eb5@2 c5@2 bb4@2", Z: "g4@2 f4 eb4 c4 f4 eb4@2",
  AA: "eb5@2 f5@4 f5 g5 f5@4 eb5 ~ [eb5,g5] ~", AB: "[d5,f5] [bb4,d5] ~ [c5,eb5]",
  AC: "[g4,bb4]@2 [bb4,d5] [c5,eb5] [bb4,d5]@2 ~@2", AD: "eb5@4 eb5 ~ c5 ~ f5@4 c5@4", AE: "eb5@3 ~@5 eb5@3 ~@5",
})).s("gm_flute").gain(0.35).pan(0.1)

// other · alto sax · "Alto Sax."
const alto_sax = note(`<
  A B C D E F G H A B C D E F I J K L M N O P Q R K L M N O P S T U V W ~ X Y Z ~ A B C AA AB AC AD AE
>`.pickRestart({
  A: "ab3@2 bb3@2 c4@2 eb4@4 f4@4 f4 g4", B: "f4 eb4 c4 f4", C: "eb4@3 g3 ab3 bb3 c4 eb4",
  D: "eb4@2 f4@4 f4 g4 f4@4 eb4@4", E: "d4@4 bb3@3 g3", F: "g3@2 c4@2 g3@2 c4@2 bb3@6 g3 gb3",
  G: "f3 ~ g3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ f3 ~ eb4 ~", H: "eb4 ~ f3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ f3 ~ g3 ~",
  I: "f3 ~ g3 ~ eb4 ~ f3 ~ c4@2 ~@2 d4@4", J: "eb4 ~@3", K: "eb4 ~ f4 ~", L: "g4@2 bb4 ~ bb4@4", M: "~ g4 f4 eb4",
  N: "eb4@2 f4 ~ f4@3 [eb4,g4]", O: "[d4,f4]@2 [bb3,d4] ~@3 [c4,eb4]@2",
  P: "[g3,bb3] ~ [bb3,d4] [c4,eb4] [bb3,d4]@2 ~@2", Q: "eb4 ~ eb4 ~ eb4 ~ d4 ~ f4@4 c4@4", R: "c4 ~ bb3@2 bb3@2 ~@2",
  S: "eb4@4 eb4 ~ c4 ~ f4@4 c4@2 ~@2", T: "eb4 ~ bb3@2", U: "bb4@6 g4 f4", V: "f4 g4 bb3@2 ~ bb3 eb4 bb3",
  W: "ab3 c4 eb4@2 f4@2 g4@2", X: "~@3 eb4 f4 g4 f4 eb4", Y: "f4 f3 eb4@2 c4@2 bb3@2", Z: "g3@2 f3 eb3 c3 f3 eb3@2",
  AA: "eb4@2 f4@4 f4 g4 f4@4 eb4 ~ [eb4,g4] ~", AB: "[d4,f4] [bb3,d4] ~ [c4,eb4]",
  AC: "[g3,bb3]@2 [bb3,d4] [c4,eb4] [bb3,d4]@2 ~@2", AD: "eb4@4 eb4 ~ c4 ~ f4@4 c4@4", AE: "eb4@3 ~@5 eb4@3 ~@5",
})).s("gm_alto_sax").gain(0.35)

// other · tenor sax · "Tenor Sax."
const tenor_sax = note(`<
  A B A C D E F G A B A C D E H I J K J L M N O P J K J L M N Q ~ J K J R M N S C J K J L T U J V
>`.pickRestart({
  A: "c3 ~ c3 ~@9 c3 ~ c3 ~", B: "~@8 c3 ~ c3 ~@5", C: "~ c3", D: "g3 ~ g3 ~@9 g3 ~ g3 ~", E: "~@8 g3 ~ g3 ~@5",
  F: "g3 ~ g3 ~@3 g3 ~ g3 ~@3 g3 ~ g3 ~", G: "~@2 g3 ~ g3 ~@3 g3 ~ g3 ~ g3@4", H: "g3 ~ g3 ~@3 g3 ~ g3@2 ~@2 d4@4",
  I: "eb4 ~@3", J: "c3 ~ c3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ c3 ~ c3 ~", K: "eb4 ~ f3 ~ g3 ~ eb4 ~ c3 ~ c3 ~ eb4 ~ f3 ~",
  L: "eb4 ~ f3 ~ g3 ~ eb4 ~ c3@8", M: "g3 ~ g3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ g3 ~ g3 ~",
  N: "eb4 ~ f3 ~ g3 ~ eb4 ~ g3 ~ g3 ~ eb4 ~ f3 ~", O: "f3 ~ g3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ f3 ~ eb4 ~",
  P: "eb4 ~ f3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ f3 ~ g3 ~", Q: "~@2 g3 ~ g3 ~@3 g3 ~ g3 ~ g3@2 ~@2", R: "ab3 ~ bb3 ~ eb4@2 f4 ~",
  S: "c3 ~ c3 ~ eb4 ~ f3 ~ g3 ~ eb4 ~ c3@2 c3@2", T: "[d3,f3] [bb2,d3] ~ [c3,eb3]",
  U: "[g2,bb2]@2 [bb2,d3] [c3,eb3] [bb2,d3]@2 ~@2", V: "eb3@3 ~@5 eb3@3 ~@5",
})).s("gm_tenor_sax").gain(0.2).pan(0.7)

// other · trumpet · "Trumpet in Bb"
const trumpet = note(`<
  A B C D E F G H A B C D E F I J K L M N O P Q R K L M N O P S T U V W ~ X Y Z ~ AA AB AC AD AE AF AG AH
>`.pickRestart({
  A: "ab3@2 bb3@2 c4@2 eb4@4 f4@4 f4 g4", B: "f4 eb4 c4 f4", C: "eb4@3 g3 ab3 bb3 c4 eb4",
  D: "eb4@2 f4@4 f4 g4 f4@4 eb4@4", E: "d4@4 bb3@3 g4", F: "g4@2 c5@2 g4@2 c5@2 bb4@6 g4 gb4",
  G: "f4 ~ g4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ f4 ~ eb5 ~", H: "eb5 ~ f4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ f4 ~ g4 ~",
  I: "f4 ~ g4 ~ eb5 ~ f4 ~ c5@2 ~@2 d5@4", J: "eb4 ~@3", K: "eb4 ~ f4 ~", L: "g4@2 bb4 ~ bb4@4", M: "~ g4 f4 eb4",
  N: "eb4@2 f4 ~ f4@3 [eb4,g4]", O: "[d4,f4]@2 [bb3,d4] ~@3 [c4,eb4]@2",
  P: "[g3,bb3] ~ [bb3,d4] [c4,eb4] [bb3,d4]@2 ~@2", Q: "eb4 ~ eb4 ~ eb4 ~ d4 ~ f4@4 c4@4", R: "c4 ~ bb3@2 bb3@2 ~@2",
  S: "eb4@4 eb4 ~ c4 ~ f4@4 c4@2 ~@2", T: "eb4 ~ bb3@2", U: "bb4@6 g4 f4", V: "f4 g4 bb3@2 ~ bb3 eb4 bb3",
  W: "ab3 c4 eb4@2 f4@2 g4@2", X: "~@3 eb4 f4 g4 f4 eb4", Y: "f4!2 eb4@2 c4@2 bb3@2", Z: "g4@2 f4 eb4 c4 f4 eb4@2",
  AA: "ab4@2 bb4@2 c5@2 eb5@4 f5@4 f5 g5", AB: "f5 eb5 c5 f5", AC: "eb5@3 g4 ab4 bb4 c5 eb5",
  AD: "eb5@2 f5@4 f5 g5 f5@4 eb5 ~ [eb5,g5] ~", AE: "[d5,f5] [bb4,d5] ~ [c5,eb5]",
  AF: "[g4,bb4]@2 [bb4,d5] [c5,eb5] [bb4,d5]@2 ~@2", AG: "eb5@4 eb5 ~ c5 ~ f5@4 c5@4", AH: "eb5@3 ~@5 eb5@3 ~@5",
})).s("gm_trumpet").gain(0.35).pan(0.3)

// other · french horn · "Flugelhorn"
const french_horn = note(`<
  A B A C D E F G A B A C D E H I J K J L M N O P J K J L M N Q ~ J K J R M N S C M N J L T U M V
>`.pickRestart({
  A: "eb4 ~ eb4 ~@9 eb4 ~ eb4 ~", B: "~@8 eb4 ~ eb4 ~@5", C: "~ eb4", D: "bb3 ~ bb3 ~@9 bb3 ~ bb3 ~",
  E: "~@8 bb3 ~ bb3 ~@5", F: "bb3 ~ bb3 ~@3 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~", G: "~@2 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~ bb3@4",
  H: "bb3 ~ bb3 ~@3 bb3 ~ bb3@2 ~@2 d4@4", I: "eb4 ~@3", J: "eb4 ~ eb4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ eb4 ~ eb4 ~",
  K: "eb5 ~ f4 ~ g4 ~ eb5 ~ eb4 ~ eb4 ~ eb5 ~ f4 ~", L: "eb5 ~ f4 ~ g4 ~ eb5 ~ eb4@8",
  M: "bb3 ~ bb3 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ bb3 ~ bb3 ~", N: "eb5 ~ f4 ~ g4 ~ eb5 ~ bb3 ~ bb3 ~ eb5 ~ f4 ~",
  O: "f4 ~ g4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ f4 ~ eb5 ~", P: "eb5 ~ f4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ f4 ~ g4 ~",
  Q: "~@2 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~ bb3@2 ~@2", R: "ab3 ~ bb3 ~ eb4@2 f4 ~",
  S: "eb4 ~ eb4 ~ eb5 ~ f4 ~ g4 ~ eb5 ~ eb4@2 eb4@2", T: "[d5,f5] [bb4,d5] ~ [c5,eb5]",
  U: "[g4,bb4]@2 [bb4,d5] [c5,eb5] [bb4,d5]@2 ~@2", V: "eb4@3 ~@5 eb4@3 ~@5",
})).s("gm_french_horn").gain(0.2).pan(0.4)

// other · trombone
const trombone = note(`<
  A B A C D E F G A B A C D E H I J K J L D E F M J K J L D E M ~ A B A N D E A C A B A C O P A Q
>`.pickRestart({
  A: "ab3 ~ ab3 ~@9 ab3 ~ ab3 ~", B: "~@8 ab3 ~ ab3 ~@5", C: "~ ab3", D: "d3 ~ d3 ~@9 d3 ~ d3 ~", E: "~@8 d3 ~ d3 ~@5",
  F: "d3 ~ d3 ~@3 d3 ~ d3 ~@3 d3 ~ d3 ~", G: "~@2 d3 ~ d3 ~@3 d3 ~ d3 ~ d3@4", H: "d3 ~ d3 ~@3 d3 ~ d3@2 ~@2 d3@4",
  I: "eb3 ~@3", J: "bb3 ~ bb3 ~@9 bb3 ~ bb3 ~", K: "~@8 bb3 ~ bb3 ~@5", L: "~@2 bb3 ~",
  M: "~@2 d3 ~ d3 ~@3 d3 ~ d3 ~ d3@2 ~@2", N: "ab2 ~ bb2 ~ eb3@2 f3 ~", O: "~@3 [c3,eb3]",
  P: "[g2,bb2]@2 [bb2,d3] [c3,eb3] [bb2,d3]@2 ~@2", Q: "eb3@3 ~@5 eb3@3 ~@5",
})).s("gm_trombone").gain(0.25).pan(0.6)

// other · trombone · "Baritone (B.C.)"
const trombone_2 = note(`<
  A B A C D E F G A B A C D E H I A B A J D E F K A B A J D E K ~ A B A L D E A C A B A C M N A O
>`.pickRestart({
  A: "eb3 ~ eb3 ~@9 eb3 ~ eb3 ~", B: "~@8 eb3 ~ eb3 ~@5", C: "~ eb3", D: "bb2 ~ bb2 ~@9 bb2 ~ bb2 ~",
  E: "~@8 bb2 ~ bb2 ~@5", F: "bb2 ~ bb2 ~@3 bb2 ~ bb2 ~@3 bb2 ~ bb2 ~", G: "~@2 bb2 ~ bb2 ~@3 bb2 ~ bb2 ~ bb2@4",
  H: "bb2 ~ bb2 ~@3 bb2 ~ bb2@2 ~@2 d3@4", I: "eb3 ~@3", J: "~@2 eb3 ~", K: "~@2 bb2 ~ bb2 ~@3 bb2 ~ bb2 ~ bb2@2 ~@2",
  L: "ab2 ~ bb2 ~ eb3@2 f3 ~", M: "~@3 [c3,eb3]", N: "[g2,bb2]@2 [bb2,d3] [c3,eb3] [bb2,d3]@2 ~@2",
  O: "eb3@3 ~@5 eb3@3 ~@5",
})).s("gm_trombone").gain(0.25).pan(0.7)

// bass · tuba
const bass = note(`<
  A B A C D E F G A B A C D E H I A B A J D E F K A B A J D E K ~ A B A L D E A C A B A C M N A O
>`.pickRestart({
  A: "c3 ~ c3 ~@9 c3 ~ c3 ~", B: "~@8 c3 ~ c3 ~@5", C: "~ c3", D: "g2 ~ g2 ~@9 g2 ~ g2 ~", E: "~@8 g2 ~ g2 ~@5",
  F: "g2 ~ g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~", G: "~@2 g2 ~ g2 ~@3 g2 ~ g2 ~ g2@4", H: "g2 ~ g2 ~@3 g2 ~ g2@2 ~@2 d3@4",
  I: "eb3 ~@3", J: "~@2 c3 ~", K: "~@2 g2 ~ g2 ~@3 g2 ~ g2 ~ g2@2 ~@2", L: "ab2 ~ bb2 ~ eb3@2 f3 ~", M: "~@3 [c3,eb3]",
  N: "[g2,bb2]@2 [bb2,d3] [c3,eb3] [bb2,d3]@2 ~@2", O: "eb2@3 ~@5 eb2@3 ~@5",
})).s("gm_tuba").gain(0.25).pan(0.8)

stack(flute, alto_sax, tenor_sax, trumpet, french_horn, trombone, trombone_2, bass)