Strudelify

Sakvickà Polka

Metodej Prajka

KeyB♭ majorTempo120 bpm
0:00/0:00
// Sakvickà Polka — Metodej Prajka
// 120 bpm, 2/4, 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/5920134; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 238 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/2)

// 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 · "Trompette"
const trumpet = note(`<
  ~@12 A B C D ~ E ~ F G@2 H I J K L M N O P ~@13 A B C D ~ E ~ F G@2 H I J K L M N O Q P R S T U V W X Y Z AA AB AC
  ~@12 A B C D ~ E ~ F G@2 H I J K L M N O Q P ~@18 AD AE AF AG AH AI AJ@2 AK AL G AM AN AO AF AP ~@16 AD AE AF AG AH AI
  AJ@2 AK AL G AM AN AO AF AP ~@15 AQ AF AR G AS AF AT AJ AU C AV G AW AN AX AY AZ ~@15 AQ AF AR G AS AF AT AJ AU C AV G
  AW AN AX AY BA
>`.pickRestart({
  A: "a4 ab4 a4 bb4", B: "c5 b4 c5 db5", C: "d5", D: "d5@2 f5!2 f5@2 f5@2", E: "bb4 d5 bb4 f4", F: "bb4 f4 d4 f4",
  G: "bb4", H: "g4 ~@3 g4 ~ g4 ~", I: "g4@4 ~@4 bb4@6 bb4 ~", J: "a4", K: "a4@4 ~@4 g4@6 g4 ~", L: "f4",
  M: "f4@4 ~@4 d5@6 d5 ~", N: "f5@6 f5!2", O: "f5", P: "d5 ~@7", Q: "d5 ~@3 d5 ~@3", R: "~@2 g4!2 g4@2 g4@2",
  S: "g4!2 g4@2", T: "d5@2 d5@2 d5 c5 bb4 a4", U: "g4@3 ~@13", V: "~@2 f4!2 f4@2 f4@2", W: "f4!2 f4@2",
  X: "c5@6 bb4 ~ a4@2 ~@2 g4@2 ~@2", Y: "f4@3 ~@13", Z: "~ g4", AA: "a4 bb4", AB: "c5@3 ~@5 c5@2 ~@2 bb4@2 ~@2",
  AC: "a4 ~ g4 ~ f4 ~ eb4 ~", AD: "g4@2 ~ g4", AE: "bb4@2 ~ bb4", AF: "eb5", AG: "eb5@3 bb4", AH: "eb5 d5 eb5 f5",
  AI: "g5 f5 eb5 d5", AJ: "c5", AK: "c5 eb5", AL: "eb5 d5 c5@2", AM: "g4 ~@3 eb5@3 eb5", AN: "d5 c5", AO: "bb4 d5",
  AP: "eb5 ~@3", AQ: "~ bb4 c5 d5", AR: "eb5 d5 c5 g4", AS: "bb4@3 ~", AT: "eb5 d5 f5 eb5", AU: "c5@2 ~@2 eb5@3 eb5",
  AV: "d5@6 c5 ~ d5@6 c5 ~", AW: "bb4 g4 bb4 eb5", AX: "c5 d5", AY: "eb5@2 ~@2 eb5 ~ eb5 ~ eb5@2 ~@2 eb5@2 ~@2",
  AZ: "eb5@3 ~@13", BA: "eb5@3 ~@5 eb5@3 ~@5",
})).s("gm_trumpet").gain(0.18)

// other · trumpet · "Trompette" · soft notes
const trumpet_soft = note(`<
  A B A C D E F G H F H I ~@20 A B A C D E F G H F H I ~@27 J K ~@3 A B A C D E F G H F H I ~@150
>`.pickRestart({
  A: "d4 f4 d4 f4", B: "d4", C: "bb4", D: "bb4 a4 g4 f4", E: "g4@4 f4@4 eb4@2 ~@4 d4 ~", F: "c4", G: "c4@3 ~",
  H: "c4 eb4 c4 eb4", I: "a4", J: "~@12 f4 ~ f4 ~", K: "f4 ~",
})).s("gm_trumpet").gain(0.12)

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

// other · trumpet · "Cornet 1" · soft notes
const trumpet_soft_2 = note(`<
  A B A C D E F G H F H I ~@20 A B A C D E F G H F H I ~@27 J K ~@3 A B A C D E F G H F H I ~@150
>`.pickRestart({
  A: "d4 f4 d4 f4", B: "d4", C: "bb4", D: "bb4 a4 g4 f4", E: "g4@4 f4@4 eb4@2 ~@4 d4 ~", F: "c4", G: "c4@3 ~",
  H: "c4 eb4 c4 eb4", I: "a4", J: "~@12 f4 ~ f4 ~", K: "f4 ~",
})).s("gm_trumpet").gain(0.08)

// other · trumpet · "Cornet 2"
const trumpet_3 = note(`<
  ~@12 A B C D ~@7 E C F G H I J K ~@13 A B C D ~@7 E C F G H I J L K M N@2 O P Q R S T U V ~@13 A B C D ~@7 E C F G H I
  J L K ~@18 W X Y Z AA AB AC@2 AD AE Y AF AG AH Y AI ~@16 W X Y Z AA AB AC@2 AD AE Y AF AG AH Y AI ~@15 AJ Y AK Y AL Y
  AM AC AN AO AP Y AQ AG AR Y O ~@15 AJ Y AK Y AL Y AM AC AN AO AP Y AQ AG AR Y AS
>`.pickRestart({
  A: "c4 b3 c4 d4", B: "eb4 d4 eb4 e4", C: "f4", D: "f4 ~@3", E: "~@8 g4@6 g4 ~", F: "f4@4 ~@4 eb4@6 eb4 ~", G: "d4",
  H: "d4@4 ~@4 f4@6 f4 ~", I: "f4 eb4", J: "eb4@2 f4 eb4", K: "d4 ~@7", L: "d4 ~@3 d4 ~@3", M: "~@2 d4!2 d4@2 d4@2",
  N: "d4!2 d4@2", O: "g4@3 ~@13", P: "~@2 c4!2 c4@2 c4@2", Q: "c4!2 c4@2", R: "c4@6 db4 ~ d4@2 ~@2 e4@2 ~@2",
  S: "f4@3 ~@13", T: "~ e4", U: "eb4 d4", V: "c4@3 ~@13", W: "eb4@2 ~ eb4", X: "g4@2 ~ g4", Y: "g4", Z: "g4@3 g4",
  AA: "g4 bb4", AB: "eb5 d5 c5 bb4", AC: "ab4", AD: "ab4 c5", AE: "c5 bb4 ab4@2", AF: "eb4 ~@3 c5@3 c5", AG: "bb4 ab4",
  AH: "d4 ab4", AI: "g4 ~@3", AJ: "~ g4 ab4 bb4", AK: "g4 bb4 ab4 eb4", AL: "g4@3 ~", AM: "g4 f4 ab4 g4",
  AN: "ab4@2 ~@2 c5@3 c5", AO: "bb4", AP: "bb4@6 ab4 ~ bb4@6 ab4 ~", AQ: "g4 eb4 g4!2", AR: "ab4 bb4",
  AS: "g4@3 ~@5 g4@3 ~@5",
})).s("gm_trumpet").gain(0.11)

// other · trumpet · "Cornet 2" · soft notes
const trumpet_soft_3 = note(`<
  A B A B C D E F G E G E ~@20 A B A B C D E F G E G E ~@27 H I ~@3 A B A B C D E F G E G E ~@150
>`.pickRestart({
  A: "bb3 d4 bb3 d4", B: "bb3", C: "d4 f4 eb4 d4", D: "eb4@4 d4@4 c4@2 ~@4 bb3 ~", E: "a3", F: "a3@3 ~",
  G: "a3 c4 a3 c4", H: "~@12 f4 ~ f4 ~", I: "f4 ~",
})).s("gm_trumpet").gain(0.08)

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

// other · tuba · "Euphonium 1" · soft notes
const tuba_soft = note(`<
  A B A C D E F G H F H I ~@20 A B A C D E F G H F H I ~@27 J K ~@3 A B A C D E F G H F H I ~@150
>`.pickRestart({
  A: "bb3 d4 bb3 d4", B: "bb3", C: "d4", D: "d4 f4 eb4 d4", E: "eb4@4 d4@4 c4@2 ~@4 bb3 ~", F: "a3", G: "a3@3 ~",
  H: "a3 c4 a3 c4", I: "c4", J: "~@12 a3 ~ a3 ~", K: "a3 ~",
})).s("gm_tuba").gain(0.14)

// bass · electric bass finger · "Basse"
const bass = note(`<
  ~@6 A B ~@4 C D E F G H G H G I J K L M G N L O P Q ~@6 A B ~@4 C D E F G H G H G I J K L M G N L O R S T U V W X Y Z
  AA ~@2 AA ~@7 A B ~@4 C D E F G H G H G I J K L M G N L O R AB AC AD AE AF AG AH AI AJ AK AL AF AM AN AO I AP AQ AR AE
  AF AG AH AS AC AT AU AV AW AX AY AP@2 AZ BA AE AF AG AH AI AJ AK AL AF AM AN AO I AP AQ AR AE AF AG AH AS AC AT AU AV
  AW AX AY AP@2 AZ BA AS@2 AG AH AS@2 BB BC AP@2 BD AO BE BF BG BH AS@2 AG AH AS AC BI BJ H BK BL AI G BM BN BO AS@2 AG
  AH AS@2 BB BC AP@2 BD AO BE BF BG BH AS@2 AG AH AS AC BI BJ H BK BL AI G BM BN BP
>`.pickRestart({
  A: "~ f2", B: "a2 c3", C: "f2 ~ f2 ~", D: "c3 ~ f2 ~", E: "bb2@2 d3@2 f3 eb3 d3 c3", F: "bb2@3 ~@13", G: "bb2 ~ f2 ~",
  H: "bb2", I: "bb2 ~ d2 ~", J: "eb2@2 ~@2 eb2@3 f2", K: "g2 ~@3", L: "f2 ~ c3 ~", M: "f2@8 f2 ~ gb2 ~ g2 ~ a2 ~",
  N: "bb2 ~ d2@2", O: "eb2 ~ f2 ~", P: "bb2@2 ~@2 bb2 ~ a2 ~", Q: "g2 f2", R: "bb2 ~@3 bb2 ~@3", S: "bb2 ~@5 bb2 a2",
  T: "g2@6 bb2 a2", U: "g2 a2 bb2 a2 g2@4", V: "g2!2 d2@2", W: "g2@3 ~@9 a2@2 g2@2", X: "f2@6 a2 g2",
  Y: "f2 g2 a2 g2 f2@4", Z: "c2@4 d2 ~ e2 ~", AA: "f2@3 ~@13", AB: "bb2 ~@7", AC: "eb2 ~ g2 ~", AD: "bb2 ~ g2 ~",
  AE: "eb2 ~", AF: "bb2 ~", AG: "eb2 g2", AH: "bb2 g2", AI: "eb2 ~ eb2 ~", AJ: "bb2 ~ eb2 ~", AK: "bb2 ~ bb2@2",
  AL: "d2 f2", AM: "f2 ~", AN: "bb2 d2", AO: "f2 d2", AP: "f2 ~ bb2 ~", AQ: "eb2 ~@3 eb2@4", AR: "g2 bb2",
  AS: "eb2 ~ bb2 ~", AT: "ab2 ~ ab2@2", AU: "eb2 ab2", AV: "ab2 ~ c3 ~", AW: "eb3 ~ ab2 ~", AX: "eb2 ~ bb2@2",
  AY: "g2 eb2", AZ: "eb2 g2 bb2 g2", BA: "eb2 ~@3", BB: "d3 f3", BC: "d3 bb2", BD: "f2 ab2", BE: "f2 ~ ab2 ~",
  BF: "f2 ~ d2 ~", BG: "eb3 d3", BH: "c3 bb2", BI: "ab2@2 f2 g2", BJ: "ab2 ~@3", BK: "bb2 ~ bb2 ~", BL: "eb2",
  BM: "d3 ~ bb2 ~", BN: "eb2!2 bb2 g2", BO: "eb2@3 ~@13", BP: "eb2@3 ~@5 eb2@3 ~@5",
})).s("gm_electric_bass_finger").gain(0.48)

// bass · electric bass finger · "Basse" · soft notes
const bass_soft = note(`<
  A B A B A C D ~ E F E F ~@20 A B A B A C D ~ E F E F ~@32 A B A B A C D ~ E F E F ~@150
>`.pickRestart({
  A: "bb2 ~ f2 ~", B: "bb2", C: "bb2 ~ d2 ~", D: "f2 ~@3", E: "f2 ~ c3 ~", F: "f2",
})).s("gm_electric_bass_finger").gain(0.32)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A@5 B A B A@3 B A B A B A@3 B A@6 B ~ A B A B A@5 B A B A@3 B A B A B A@3 B A@8 B A@3 B A@2 B ~@2 B ~ A B A B
  A@5 B A B A@3 B A B A B A@3 B A@10 B@2 A@6 B@2 A@6 B@2 A@14 B@2 A@6 B@2 A@6 B@2 A@13 B A@23 B A@7 B A@23 B A@8
>`.pickRestart({
  A: "x!2", B: "x",
})).gain(0.4)

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

// drums · hihat
const hihat = s("hh").struct(`<
  A B A B A@2 C D A B A B A@2 C E A B A B A@2 C E ~@8 A B A B A@2 C D A B A B A@2 C E A B A B A@2 C E ~@20 A B A B A@2 C
  D A B A B A@2 C E A B A B A@2 C E ~@138
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!3", C: "~@2 x!3 ~ x ~", D: "x!4", E: "x",
})).gain(0.32)

// drums · crash
const crash = s("cr").struct("<~@24 A@6 B ~@25 A@7 B@2 ~@3 B ~@31 A@7 ~@33 B ~@31 B ~@65>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.64)

stack(
  trumpet, trumpet_soft, trumpet_2, trumpet_soft_2, trumpet_3, trumpet_soft_3, tuba, tuba_soft, bass, bass_soft, kick,
  snare, hihat, crash
)