Strudelify

tumbalalaika

Traditional

KeyG minorTempo150 bpm
0:00/0:00
// tumbalalaika — Traditional
// 150 bpm, 3/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Bassklarinette" named as a bass, played on electric bass finger (its clarinet patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5926117; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 70 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · "Klarinette in B"
const clarinet = note(`<
  ~@4 A@2 B C D@2 E F G H I J K L E M N@2 O P Q@2 R S G T U A V P E W@2 X@2 Y Z P AA AB AC ~ AD AE AF AG AH AB AI AJ@2
  AK AL AM@2 AB AI ~ AN AO AP AQ AR AB AS AT
>`.pickRestart({
  A: "d5@11 d5@5", B: "d5@5 c5@5 ~ bb4@5", C: "a4", D: "c5@11 c5@5", E: "c5@5 bb4@5 ~ a4@5", F: "g4",
  G: "g4@5 bb4@5 ~ d5@5", H: "g5@11 d5@5", I: "f5@5 eb5@5 ~ d5@5", J: "c5@11 bb4@5", K: "a4@5 c5@5 ~ eb5@5",
  L: "d5@11 a4@5", M: "g4@11 ~@5", N: "d5@5 d5@5 ~ d5@5", O: "d5@5 c5@8 bb4@3", P: "a4@11 a4@5", Q: "c5@5 c5@5 ~ c5@5",
  R: "c5@5 bb4@8 a4@3", S: "g4@11 g4@5", T: "g5@11 g5@5", U: "bb5@5 a5@8 g5@3", V: "f5@5 eb5@8 c5@3",
  W: "[g4@21 ~@11]/2", X: "g4@11 bb4@5", Y: "bb4@5 a4@5 ~ g4@5", Z: "gb4", AA: "a4@11 gb4@5", AB: "eb4@5 d4@5 ~ c4@5",
  AC: "bb3", AD: "d4@5 g4@5 ~ bb4@5", AE: "b4@5 c5@5 ~ f4@5", AF: "eb4@11 d4@5", AG: "c4@5 eb4@5 ~ g4@5",
  AH: "a4@11 c4@5", AI: "bb3@11 ~@5", AJ: "bb4@3 g4@2 bb4@3 g4@3 bb4@2 g4@3", AK: "bb4@5 a4@8 g4@3", AL: "gb4@11 d4@5",
  AM: "a4@3 gb4@2 a4@3 gb4@3 a4@2 gb4@3", AN: "g4@5 bb4@5 ~ eb5@5", AO: "g5@5 f5@8 eb5@3", AP: "bb4@11 bb4@5",
  AQ: "d5@5 c5@8 eb4@3", AR: "c4@11 c4@5", AS: "bb3@5 ~@6 gb4@5", AT: "g4@5 ~@11",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "Klarinette in B"
const clarinet_2 = note(`<
  ~@4 A@2 B C D E F G ~ H I J K L F M N@2 O P Q@2 R M ~ S T U V W F X@2 Y@2 Z AA AB@2 AC AD AE AF AG AH AI AJ AC AK AL@2
  AM D AN@2 AO AP AE AQ AR Y AS D AC AT AU
>`.pickRestart({
  A: "g4@11 bb4@5", B: "bb4@5 a4@5 ~ g4@5", C: "gb4", D: "a4@11 a4@5", E: "a4@11 gb4@5", F: "eb4@5 d4@5 ~ c4@5",
  G: "bb3", H: "d4@5 g4@5 ~ bb4@5", I: "b4@5 c5@5 ~ f4@5", J: "eb4@11 d4@5", K: "c4@5 eb4@5 ~ g4@5", L: "a4@11 c4@5",
  M: "bb3@11 ~@5", N: "bb4@3 g4@2 bb4@3 g4@3 bb4@2 g4@3", O: "bb4@5 a4@8 g4@3", P: "gb4@11 d4@5",
  Q: "a4@3 gb4@2 a4@3 gb4@3 a4@2 gb4@3", R: "eb4@5 d4@8 c4@3", S: "g4@5 bb4@5 ~ eb5@5", T: "g5@5 f5@8 eb5@3",
  U: "bb4@11 bb4@5", V: "d5@5 c5@8 eb4@3", W: "c4@11 c4@5", X: "[bb3@21 ~@11]/2", Y: "d5@11 d5@5",
  Z: "d5@5 c5@5 ~ bb4@5", AA: "a4", AB: "c5@11 c5@5", AC: "c5@5 bb4@5 ~ a4@5", AD: "g4", AE: "g4@5 bb4@5 ~ d5@5",
  AF: "g5@11 d5@5", AG: "f5@5 eb5@5 ~ d5@5", AH: "c5@11 bb4@5", AI: "a4@5 c5@5 ~ eb5@5", AJ: "d5@11 a4@5",
  AK: "g4@11 ~@5", AL: "d5@5 d5@5 ~ d5@5", AM: "d5@5 c5@8 bb4@3", AN: "c5@5 c5@5 ~ c5@5", AO: "c5@5 bb4@8 a4@3",
  AP: "g4@11 g4@5", AQ: "g5@11 g5@5", AR: "bb5@5 a5@5 ~ g5@5", AS: "f5@5 eb5@5 ~ c5@5", AT: "g4@5 ~@6 d5@5",
  AU: "g5@5 ~@11",
})).s("gm_clarinet").gain(0.3)

// bass · electric bass finger · "Bassklarinette"
const bass = note(`<
  A B C D E F G C H C D E F E G I J K D L M@2 G N@2 O P Q E R@2 E S T D U M E F G C H C D E F E G I J K D L M@2 G N@2 O
  P Q E R@2 E S T D V M
>`.pickRestart({
  A: "g2@11 bb2@5", B: "c3@11 eb3@5", C: "d3@11 a2@5", D: "d2@5 e2@5 ~ gb2@5", E: "g2@11 d3@5", F: "g3@11 d3@5",
  G: "g2@5 a2@5 ~ bb2@5", H: "eb2@11 a2@5", I: "c3@11 bb2@5", J: "a2@11 g2@5", K: "gb2@11 eb2@5", L: "g2@11 d3@2 c3@3",
  M: "g2@5 ~@11", N: "d3@5 ~@11", O: "gb3@5 ~@11", P: "d3@5 e3@5 ~ gb3@5", Q: "g3@5 ~@11", R: "g2@11 eb3@5",
  S: "c3@5 ~@6 bb2@5", T: "a2@5 ~@6 eb2@5", U: "g2@5 d3@5 ~ bb2@5", V: "g2@5 ~@6 d3@3 ~@2",
})).s("gm_electric_bass_finger").gain(0.3)

// chords · clarinet · "Klarinette in B"
const clarinet_3 = note(`<
  A B C D E@2 B F@2 C G E@3 H B@2 I D E J@2 K L M N G O P Q@2 P B R S T U E@2 B C@3 G E@3 V B@2 I G E J@2 K L M N G O P
  Q@2 P B R S W X
>`.pickRestart({
  A: "~@5 [bb3,d4,a4]@3 ~@8", B: "~@5 [c4,eb4,g4]@3 ~@8", C: "~@5 [c4,d4,gb4]@3 ~@8",
  D: "~@5 [d4,g4]@3 ~@3 [c4,d4,gb4]@5", E: "~@5 [bb3,d4,g4]@3 ~@8", F: "~@5 [bb3,c4,e4]@3 ~@8",
  G: "~@5 [d4,g4]@3 ~@3 [c4,d4,gb4]@3 ~@2", H: "~@5 [c4,eb4,g4]@3 ~@3 [d4,f4,g4]@5", I: "~@5 [c4,d4,a4]@3 ~@8",
  J: "~@5 [d4,g4,bb4]@3 ~@3 [d4,g4,bb4]@3 ~@2", K: "~@5 [eb4,g4,c5]@3 ~@3 [d4,g4,d5]@3 ~@2",
  L: "~@5 [c4,gb4,a4]@3 ~@3 [c4,gb4,a4]@3 ~@2", M: "~@5 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@3 ~@2",
  N: "~@5 [c4,d4,a4]@3 ~@3 [c4,d4,a4]@3 ~@2", O: "~@5 [bb3,d4,g4]@3 ~@3 [bb3,d4,g4]@3 ~@2", P: "~@11 d4@2 g4@3",
  Q: "~@11 eb4@2 g4@3", R: "~@5 [eb4,g4,c5]@3 ~@8", S: "~@5 [d4,g4,bb4]@3 ~@3 [c4,d4,a4]@3 ~@2",
  T: "~@5 bb3@3 ~@3 d4@3 ~@2", U: "bb3@3 ~@13", V: "~@5 [c4,eb4,g4]@3 ~@3 [d4,f4,g4]@3 ~@2", W: "g4@3 ~@8 d5@3 ~@2",
  X: "g4@3 ~@13",
})).s("gm_clarinet").gain(0.3)

stack(clarinet, clarinet_2, bass, clarinet_3)

More by Traditional