Strudelify

Musik Musik !

Frantisek Kmoch

KeyB♭ majorTempo252 bpm
0:00/0:00
// Musik Musik ! — Frantisek Kmoch
// 252 bpm, 2/2, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 9 "Basse" named as a bass, played on electric bass finger (its tuba patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5920146; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(252/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 · trumpet · "Trompette"
const trumpet = note(`<
  A B C D E F G H I J K L E F M N O P Q D E F G H I J K L E F M N O P Q R S T U V ~@3 W X Y Z AA AB C AC R S T U V ~@3 W
  X Y Z AA AB C AC AD AE ~ AF AG AH AI AF AG AJ AK AL AM AJ AK AN AO AP AQ AF AG AH AI AF AG AJ AK AL AM AJ AK AN AO AP
  AQ AR AS AT AU AV AW AX AU AR AS AT AU AY AZ BA BB AE ~ AF AG AH AI AF AG AJ AK AL AM AJ AK AN AO AP AQ AR AS AT AU AV
  AW AX AU AR AS AT AU AY AZ BA BB
>`.pickRestart({
  A: "bb4@2 ~@2 bb4 ~ bb4 ~ bb4@2 ~@2 f4@2 ~@2", B: "bb4 ~ f4 ~ bb4 ~ c5 ~", C: "d5 c5", D: "bb4 ~ f4@2 bb4@2 c5@2",
  E: "d5 ~@3 d5 ~@2 d5", F: "d5 ~ c5 ~ bb4 ~ a4 ~", G: "a4 ~@2 g4!2 ~ gb4 ~", H: "g4@3 ~", I: "c5 ~@3 c5 ~@2 c5",
  J: "c5 ~ bb4 ~ a4 ~ g4 ~", K: "g4 ~@2 f4 e4 ~ g4 ~", L: "f4@4 e4 f4 bb4 c5", M: "a4 ~@2 g4 gb4 ~ g4 ~", N: "c5 ~",
  O: "~@4 f5 ~ f5 ~ f5@8", P: "f5@4 f5 ~ f5 ~ f5@8", Q: "bb4 ~ a4 c5 bb4 ~ a4 c5", R: "bb4 ~@2 f4 eb5 ~@2 d5",
  S: "f5@12 f5 ~ f5 ~", T: "f5", U: "[bb4,bb5]@12 [bb4,bb5] ~ [bb4,bb5] ~", V: "[bb4,bb5] ~@3", W: "~@3 f4 eb5 ~@2 d5",
  X: "g5@12 g5 ~ g5 ~", Y: "g5", Z: "f5@3 f4@2 bb4@3 d5@3 bb4@2 d5@3", AA: "f5@2 ~ bb4 a4 ~@2 g4",
  AB: "f4@4 eb5 ~ eb5 ~", AC: "bb4@2 ~@6 f4@6 g4 a4", AD: "bb4@2 ~@2 bb4 ~ bb4 ~ bb4@3 ~@5",
  AE: "bb4 [c5,d5] eb5@2 ~@12", AF: "eb4@12 eb4 ~ eb4 ~", AG: "eb4@3 ~", AH: "~@4 bb3 ~ bb3 ~ eb4@2 ~@2 g4@2 ~@2",
  AI: "bb4@2 ~@2 eb4 ~ eb4 ~ eb4@8", AJ: "~@4 bb3 ~ bb3 ~ d4@2 ~@2 f4@2 ~@2", AK: "bb4@2 ~@2 f4 ~ f4 ~ bb4@8",
  AL: "bb3@12 bb3 ~ bb3 ~", AM: "bb3@3 ~", AN: "bb4@12 bb4 ~ bb4 ~", AO: "bb4@3 ~",
  AP: "~@4 eb4 ~ eb4 ~ g4@2 ~@2 bb4@2 ~@2", AQ: "eb4 ~@7", AR: "d5", AS: "d5@2 c5 b4",
  AT: "c5@2 ~@2 eb5 ~ eb5 ~ eb5@2 ~@2 eb5 ~ eb5 ~", AU: "eb5@2 ~@2 bb4 ~ bb4 ~ eb5@8", AV: "c5", AW: "c5@2 bb4 ab4",
  AX: "bb4@2 ~@2 eb5 ~ eb5 ~ eb5@2 ~@2 eb5 ~ eb5 ~", AY: "ab5", AZ: "ab5@2 g5 f5", BA: "eb5@2 ~@6 bb4@6 c5 d5",
  BB: "eb5@2 ~@2 eb5 ~ eb5 ~ eb5@3 ~@5",
})).s("gm_trumpet").gain(0.19)

// other · trumpet · "Trompette" · soft notes
const trumpet_soft = note("<~@40 A B C D ~@12 A B C D ~@92>".pickRestart({
  A: "~@4 f4 ~ f4 ~ f4@2 ~@2 f4 ~ f4 ~", B: "f4", C: "f4@4 f4 ~ f4 ~ f4@2 ~@2 f4 ~ f4 ~", D: "f4 ~@7",
})).s("gm_trumpet").gain(0.1)

// other · trumpet · "Cornet 1"
const trumpet_2 = note(`<
  A B C D E F G H I J K L E F M N O P Q D E F G H I J K L E F M N O P Q R S T U V ~@3 W S T U X Y C Z R S T U V ~@3 W S
  T U X Y C Z AA AB ~ AC AD AE AF AG AH AI AJ AK AL AM AJ AN AD AO AP AC AD AE AF AG AH AI AJ AK AL AM AJ AN AD AO AQ U
  AR AS AT S AU AV AW U AR AS AT S AU AX AY AB ~ AC AD AE AF AG AH AI AJ AK AL AM AJ AN AD AO AQ U AR AS AT S AU AV AW U
  AR AS AT S AU AX AY
>`.pickRestart({
  A: "bb4@2 ~@2 bb4 ~ bb4 ~ bb4@2 ~@2 f4@2 ~@2", B: "bb4 ~ f4 ~ bb4 ~ c5 ~", C: "d5 c5", D: "bb4 ~ f4@2 bb4@2 c5@2",
  E: "d5 ~@3 d5 ~@2 d5", F: "d5 ~ c5 ~ bb4 ~ a4 ~", G: "a4 ~@2 g4!2 ~ gb4 ~", H: "g4@3 ~", I: "c5 ~@3 c5 ~@2 c5",
  J: "c5 ~ bb4 ~ a4 ~ g4 ~", K: "g4 ~@2 f4 e4 ~ g4 ~", L: "f4@4 e4 f4 bb4 c5", M: "a4 ~@2 g4 gb4 ~ g4 ~",
  N: "c5@4 c5 bb4 a4 g4", O: "f4@4 d4 f4 bb4 d5", P: "f5@4 f5 eb5 d5 c5", Q: "bb4 ~ a4 c5 bb4 ~ a4 c5",
  R: "bb4 ~@2 f4 eb5 ~@2 d5", S: "c5", T: "c5@2 ~ b4 c5 ~@2 db5", U: "d5", V: "d5 ~@3", W: "~@3 f4 eb5 ~@2 d5",
  X: "d5@2 ~ bb4 a4 ~@2 g4", Y: "f4@4 eb5 ~ eb5 ~", Z: "bb4@2 ~@6 f4@6 g4 a4", AA: "bb4@2 ~@2 bb4 ~ bb4 ~ bb4@3 ~@5",
  AB: "bb4 [c5,d5] eb5@2 ~@12", AC: "~ bb4", AD: "bb4 ab4", AE: "g4 ~ ab4 ~ bb4@4", AF: "bb4 ~", AG: "c5 ~@3 c5@4",
  AH: "c5 bb4", AI: "ab4 ~ g4 ~ ab4@4", AJ: "ab4 ~", AK: "ab4 ~@3 ab4@4", AL: "ab4 g4", AM: "f4 ~ g4 ~ ab4@4",
  AN: "bb4 ~@3 bb4@4", AO: "g4", AP: "g4 ~@3", AQ: "g4 ~ bb4 eb5", AR: "d5@2 c5 b4", AS: "c5 ~@3 c5 ~@3",
  AT: "bb4@2 a4 bb4", AU: "c5@2 bb4 ab4", AV: "bb4 ~@3 bb4 ~@3", AW: "g4@2 bb4 eb5", AX: "g4@2 ~@6 bb4@6 c5 d5",
  AY: "eb5@2 ~@2 eb5 ~ eb5 ~ eb5@3 ~@5",
})).s("gm_trumpet").gain(0.15)

// other · trumpet · "Cornet 1" · soft notes
const trumpet_soft_2 = note("<~@39 A B C D E ~@11 A B C D E ~@10 F ~@15 F ~@33 F ~@31>".pickRestart({
  A: "~@3 f4 bb4 ~@2 f4", B: "a4", C: "a4@2 ~ eb4 g4 ~@2 f4", D: "d4", E: "d4 ~@3", F: "bb4 ~@7",
})).s("gm_trumpet").gain(0.08)

// other · tuba · "Euphonium 1"
const tuba = note(`<
  A B C D E F G H I J K L M F N O P Q R S E F G H I J K L M F N O P Q R S T U V W X G Y Z G AA U AB AC C AD D T U V W X
  G Y Z G AA U AB AC C AD AE ~@2 AF AG AH AI AJ AK AG AI AL U AM AN AO AP G AQ AF AG AH AI AJ AK AG AI AL U AM AN AO AP
  G AQ AR AS AT AU AV AW AX AY AR AS AT AU AZ BA BB BC ~@2 AF AG AH AI AJ AK AG AI AL U AM AN AO AP G AQ AR AS AT AU AV
  AW AX AY AR AS AT AU AZ BA BB BC
>`.pickRestart({
  A: "d4@2 ~@2 d4 ~ d4 ~ d4@2 ~@2 bb3@2 ~@2", B: "d4 ~ bb3 ~ d4 ~ f4 ~", C: "f4 eb4", D: "d4 ~@7", E: "~@2 f3 g3 f3@4",
  F: "f3 d4", G: "eb4", H: "eb4@4 eb4 d4 c4 bb3", I: "a3 ~ f3 g3 f3@4", J: "f3 c4", K: "d4", L: "d4@4 d4 c4 bb3 g3",
  M: "f3 ~ f3 g3 f3@4", N: "f4 ~@2 c4!2 ~ c4 ~", O: "c4@4 c4 bb3 a3 g3", P: "f3@4 bb3 d4 bb3 d4",
  Q: "f4@4 f4 eb4 d4 c4", R: "bb3 ~ a3 ~ bb3 ~ a3 ~", S: "bb3 ~@7", T: "~@3 f3 a3 ~@2 c4", U: "f4",
  V: "~@3 bb3 a3 ~@2 g3", W: "f3 ~@3", X: "~@2 f3@2 a3@3 c4", Y: "~@2 d3@2 f3@3 bb3", Z: "d4@2 ~ d4 b3 ~@2 d4",
  AA: "eb4@2 ~ g4 eb4 ~@2 e4", AB: "f4 ~ e4@2", AC: "f4@4 eb4 ~ eb4 ~", AD: "d4 ~@3 eb4@4",
  AE: "d4@2 ~@2 d4 ~ d4 ~ d4@3 ~@5", AF: "~ eb3 bb3 eb4", AG: "bb3", AH: "bb3 ~", AI: "bb3 ~ c4 ~ bb3@4",
  AJ: "~ eb4 c4 eb4", AK: "c4 eb4", AL: "~ bb3 d4 eb4", AM: "f4 ~", AN: "f4 ~ eb4 ~ d4@4", AO: "d4 ~@3 d4@4",
  AP: "d4 f4", AQ: "eb4 ~@3", AR: "~@2 d3@2 f3@3 ab3", AS: "d4@2 c4 b3", AT: "c4 eb3 ab3 c4", AU: "bb3 eb4",
  AV: "d4@3 db4 d4@3 eb4", AW: "f4 d4", AX: "f4@2 eb4 ~ eb4@2 d4 ~", AY: "c4 bb3 g3 eb3", AZ: "eb4@3 d4 f4@3 eb4",
  BA: "d4 bb3", BB: "eb4 ~@3 d4@4", BC: "eb4@2 ~@2 eb4 ~ eb4 ~ eb4@3 ~@5",
})).s("gm_tuba").gain(0.19)

// other · tuba · "Euphonium 2"
const tuba_2 = note(`<
  A B C D E F G H I J K L M N O P Q R S D E F G H I J K L M N O P Q R S D T U V W X Y Z AA AB AC K AD AE AF AG D T U V W
  X Y Z AA AB AC K AD AE AF AG AH ~@2 AI AJ AK AL AM AN AJ AL AO AJ AK AL AP AQ AR AS AI AJ AK AL AM AN AJ AL AO AJ AK
  AL AP AQ AR AS Z AT AU AV AW AX AY AZ Z AT AU AV BA BB BC BD ~@2 AI AJ AK AL AM AN AJ AL AO AJ AK AL AP AQ AR AS Z AT
  AU AV AW AX AY AZ Z AT AU AV BA BB BC BD
>`.pickRestart({
  A: "bb3@2 ~@2 bb3 ~ bb3 ~ bb3@2 ~@2 f3@2 ~@2", B: "bb3 ~ f3 ~ bb3 ~ c4 ~", C: "d4 c4", D: "bb3 ~@7",
  E: "~@2 f3 g3 f3@4", F: "f3 d4", G: "eb4", H: "eb4@4 eb4 d4 c4 bb3", I: "a3 ~ f3 g3 f3@4", J: "f3 c4", K: "d4",
  L: "d4@4 d4 c4 bb3 g3", M: "f3 ~ f3 g3 f3@4", N: "f3 bb3", O: "a3 ~@2 g3 gb3 ~ g3 ~", P: "g3@4 c4 bb3 a3 g3",
  Q: "f3@4 d3 f3 bb3 d4", R: "f4@4 f4 eb4 d4 c4", S: "bb3 ~ f3 ~ bb3 ~ f3 ~", T: "~@3 f3 a3 ~@2 c4", U: "f4",
  V: "~@3 bb3 a3 ~@2 g3", W: "f3 ~@3", X: "~@2 eb3@2 f3@3 eb3", Y: "a3", Z: "~@2 bb2@2 d3@3 f3",
  AA: "bb3@2 ~ bb3 g3 ~@2 b3", AB: "c4", AC: "c4@2 ~ b3 c4 ~@2 db4", AD: "d4 ~ a3@2", AE: "bb3@4 c4 ~ c4 ~", AF: "a3!2",
  AG: "bb3@2 ~@6 f3@6 g3 a3", AH: "bb3@2 ~@2 bb3 ~ bb3 ~ bb3@3 ~@5", AI: "~ eb3 bb3 eb4", AJ: "bb3", AK: "bb3 ~",
  AL: "bb3 ~ c4 ~ bb3@4", AM: "~ eb3 ab3 c4", AN: "ab3 g3", AO: "~ bb3 d4 c4", AP: "~ bb2 d3 f3", AQ: "bb3 ab3",
  AR: "g3", AS: "g3 ~@3", AT: "bb3@2 ab3 g3", AU: "ab3 eb3 ab3!2", AV: "g3 eb3", AW: "f3@3 e3 f3@3 g3", AX: "ab3 bb3",
  AY: "d4@2 c4 ~ c4@2 bb3 ~", AZ: "ab3 g3 eb3 c3", BA: "ab3 f3", BB: "bb3 bb2 c3 d3", BC: "eb3 ~@3 ab3@4",
  BD: "g3@2 ~@2 g3 ~ g3 ~ g3@3 ~@5",
})).s("gm_tuba").gain(0.2)

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

stack(trumpet, trumpet_soft, trumpet_2, trumpet_soft_2, tuba, tuba_2, bass)