Strudelify

Sarba de la Chiricani (Vrancea). (Cu digitatie pentru fluier in D)

Traditional romanian folk music(

KeyG majorTempo190 bpm
0:00/0:00
// Sarba de la Chiricani (Vrancea). (Cu digitatie pentru fluier in D) — Traditional romanian folk music(
// 190 bpm, 2/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5956853; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 148 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(190/2)

// 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 · piano · "Flaut dulce"
const piano = note(`<
  ~@4 A B C D A B E F A B C D A B E G H I J K H I L M H I J N O I E M P K Q K P K E R P K Q S P K E M A B C D A B E F A
  B C D A B E G H I J K H I L M H I J N O I E M P K Q K P K E R P K Q S P K E M A B C D A B E F A B C D A B E G H I J K
  H I L M H I J N O I E M P K Q K P K E R P K Q K P K E M
>`.pickRestart({
  A: "b5@5 e6@3 g6@4 b6@4", B: "a#6 b6 a#6@3 g6@3 f#6 g6 f#6@3 e6@3", C: "f#6@5 g6@3 a#6 b6 a#6@3 g6@3",
  D: "b6@3 a#6@2 g6@3 g6@3 f#6@2 e6@3", E: "g6@3 f#6@2 e6@3 b5@3 c6@2 d#6@3", F: "e6@3 f#6@2 d#6@3 e6@4 ~@4", G: "e6 ~",
  H: "a6 b6 a6@3 a6@3 a6@5 b6@3", I: "a6 b6 a6@3 g6@3 f#6 g6 f#6@3 e6@3", J: "e6 f#6 e6@3 e6@3 b5@5 e6@3",
  K: "f#6 g6 f#6@3 e6@3 b6@5 e6@3", L: "e6 f#6 e6@3 e6@3 b5@3 c6@2 d#6@3", M: "e6 ~@3",
  N: "f#6 g6 f#6@3 e6@3 b6@3 a#6@2 g6@3", O: "a6 b6 a6 b6 a6 b6 a6 b6 a6 b6 a6 b6 b6@4",
  P: "f#6 g6 f#6@3 e6@3 a#6@3 g6@2 f#6@3", Q: "a#6@3 g6@2 f#6@3 f#6 g6 f#6@3 e6@3",
  R: "e6@3 f#6@2 d#6@3 e6@3 f#6@2 g6@3", S: "f#6 g6 f#6@3 e6@3 b6@5 ~@3",
})).s("gm_piano").gain(0.12)

// other · clarinet · "Clarinet Si♭"
const clarinet = note(`<
  ~@27 A B C D E B C F G ~@7 A H I J I H I F G ~@23 A B C D E B C F G ~@7 A H I J I H I F G ~@32 H I J I H I F K H I J I
  H I F G
>`.pickRestart({
  A: "~@8 e4@3 f#4@2 g4@3", B: "a4 b4 a4@3 a4@3 a4@5 b4@3", C: "a4 b4 a4@3 g4@3 f#4 g4 f#4@3 e4@3",
  D: "e4 f#4 e4@3 e4@3 b3@5 e4@3", E: "f#4 g4 f#4@3 e4@3 b4@3 a#4@2 g4@3", F: "g4@3 f#4@2 e4@3 b3@3 c4@2 d#4@3",
  G: "e4 ~@3", H: "f#4 g4 f#4@3 e4@3 a#4@3 g4@2 f#4@3", I: "f#4 g4 f#4@3 e4@3 b4@5 e4@3",
  J: "a#4@3 g4@2 f#4@3 f#4 g4 f#4@3 e4@3", K: "e4@3 f#4@2 d#4@3 e4@3 f#4@2 g4@3",
})).s("gm_clarinet").gain(0.26)

// other · trumpet · "Trumpetă Si♭"
const trumpet = note("<~@44 A B C B A B D E ~@40 A B C B A B D E ~@40 A B C B A B D E>".pickRestart({
  A: "f#4 g4 f#4@3 e4@3 a#4@3 g4@2 f#4@3", B: "f#4 g4 f#4@3 e4@3 b4@5 e4@3", C: "a#4@3 g4@2 f#4@3 f#4 g4 f#4@3 e4@3",
  D: "g4@3 f#4@2 e4@3 b3@3 c4@2 d#4@3", E: "e4 ~@3",
})).s("gm_trumpet").gain(0.12)

// other · viola · "Violă"
const viola = note(`<
  ~@4 A B C D A B E F A B C D A B E A G H A I G H J A G H A K G L M N O P Q P O P E F O P Q P O P R N A B C D A B E F A
  B C D A B E A G H A I G H J A G H A K G L M N O P Q P O P E F O P Q P O P R N A B C D A B E F A B C D A B E A G H A I
  G H J A G H A K G L M N O P Q P O P E F O P Q P O P R S
>`.pickRestart({
  A: "~@4 e3@3 ~@5 g3@3 ~", B: "~@4 e3@3 ~@5 a#3@3 ~", C: "~@4 g3@3 ~@5 g3@3 ~", D: "~@4 a#3@3 ~@5 e3@3 ~",
  E: "~@4 b3@3 ~@5 f#3@3 ~", F: "~@4 d#3@3 ~@5 e3@3 ~", G: "~@4 a3@3 ~@5 a3@3 ~", H: "~@4 a3@3 ~@5 d#3@3 ~",
  I: "~@4 f#3@3 ~@5 e3@3 ~", J: "~@4 e3@3 ~@5 f#3@3 ~", K: "~@4 b3@3 ~@5 a#3@3 ~", L: "~@4 a3@3 ~@5 e3@3 ~",
  M: "~@4 d3@3 ~@5 f#3@3 ~", N: "~@4 e3@3 ~@5 e3@3 ~", O: "~@4 b3@3 ~@5 g3@3 ~", P: "~@4 g3@3 ~@5 e3@3 ~",
  Q: "~@4 a#3@3 ~@5 g3@3 ~", R: "~@4 b3@3 ~@5 d#3@3 ~", S: "e3@3 ~@13",
})).s("gm_viola").gain(0.41)

// other · piano · "Pian"
const piano_2 = note(`<
  A B C D E F G H E F I J E F G H E F K L M N O P M Q R L M N O S M T U V W X Y Z W X AA AB W X Y Z W AC AD AE E F G H E
  F I J E F G H E F K L M N O P M Q R L M N O S M T U V W X Y Z W X AA AB W X Y Z W AC AD AE E F G H E F I J E F G H E F
  K L M N O P M Q R L M N O S M T U V W X Y Z W X AA AB W X Y Z W AF AD AG
>`.pickRestart({
  A: "e3@3 e5@2 e5@3 f#3@3 e5@2 e5@3", B: "g3@3 e5@2 e5@3 a#3@3 e5@2 e5@3", C: "b3@3 e5@2 e5@3 c4@3 e5@2 e5@3",
  D: "c#4@3 e5@2 e5@3 d#4@3 e5@2 e5@3", E: "e3@3 b4@2 b4@3 g3@3 b4@2 b4@3",
  F: "a#3@3 c#5@2 c#5@3 ~@3 [c#4,c#5]@2 c#5@3", G: "e4@3 c#5@2 c#5@3 c#4@3 g4@2 g4@3",
  H: "a#3@3 g4@2 g4@3 g3@3 e4@2 e4@3", I: "f#4@3 b4@2 b4@3 d4@5 a4@3", J: "[d#4,c5]@8 [e4,b4]@4 ~ b4@3",
  K: "f#4@3 b4@2 b4@3 d4@3 b4@2 b4@3", L: "e4@3 b4@2 b4@3 g3@3 b4@2 b4@3", M: "a3@3 a4@2 a4@3 c4@3 a4@2 a4@3",
  N: "[a3,e4]@5 a3@3 [d#4,c5]@8", O: "e4@3 b4@2 b4@3 g4@3 b4@2 b4@3", P: "b3@3 f#4@2 f#4@3 e4@3 b4@2 b4@3",
  Q: "e4@3 a4@2 a4@3 d#4@3 f#4@2 a4@3", R: "e4@3 b4@2 b4@3 b3@3 f#4@2 f#4@3", S: "d4@3 b4@2 b4@3 g3@3 a#3@2 c#4@3",
  T: "e4@3 a4@2 a4@3 a3@3 a4@2 a4@3", U: "b3@3 b4@2 b4@3 d4@3 b4@2 b4@3", V: "e4@3 b4@2 b4@3 e4@3 g4@2 b4@3",
  W: "b3@3 f#4@2 f#4@3 c#4@3 e4@2 e4@3", X: "a#3@3 e4@2 e4@3 e3@3 g3@2 b3@3", Y: "g3@3 e4@2 e4@3 a#3@5 e4@3",
  Z: "[c#4,e4]@8 b3@3 e4@2 e4@3", AA: "d4@3 f#4@2 f#4@3 b3@3 ~@2 c4@3", AB: "[d#4,f#4]@8 [b3,e4]@5 g4@3",
  AC: "a#3@3 e4@2 e4@3 e3@3 g3@2 e4@3", AD: "b3@3 a3 [d#4,f#4]@4", AE: "e4@3 g4@2 g4@3 b3@3 g4@2 g4@3",
  AF: "a#3@3 e4@2 e4@3 b3@3 e4@2 e4@3", AG: "[e3,e4] ~@3",
})).s("gm_piano").gain(0.3)

// bass · contrabass · "Contrabas"
const bass = note(`<
  ~@3 A B C B D B C E F B C B D B C G B H I B J H I K B H I B L H M N K O P Q P O P R F O P Q P O P N K B C B D B C E F
  B C B D B C G B H I B J H I K B H I B L H M N K O P Q P O P R F O P Q P O P N K B C B D B C E F B C B D B C G B H I B
  J H I K B H I B L H M N K O P Q P O P R F O P Q P O P N S
>`.pickRestart({
  A: "~ d#2", B: "e2 ~ g2 ~", C: "a#2 ~ g2 ~", D: "a#2 ~ e2 ~", E: "b2 ~ d2 ~", F: "d#2 ~ e2 ~", G: "b2 ~ f#2 ~",
  H: "a2 ~ e2 ~", I: "c2 ~ d#2 ~", J: "b2 ~ g2 ~", K: "e2 ~ b1 ~", L: "b2 ~ a#2 ~", M: "c2 ~ e2 ~", N: "b1 ~ f#2 ~",
  O: "b1 ~ a#2 ~", P: "g2 ~ e2 ~", Q: "g2 ~ a#2 ~", R: "b1 ~ d2 ~", S: "e2 ~@3",
})).s("gm_contrabass").gain(0.29)

stack(piano, clarinet, trumpet, viola, piano_2, bass)