Strudelify

Hurshat HaEkalyptus (The Eukalyptus Grove) By Naomi Shemer for violin clarinet and cello

yoelepst

KeyA minorTempo120 bpm
0:00/0:00
// Hurshat HaEkalyptus (The Eukalyptus Grove) By Naomi Shemer for violin clarinet and cello — yoelepst
// 120 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 2, 2/4 at bar 84) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/6025927; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · violin
const violin = note(`<
  A B C D E F G H I J K L M N O P Q R S T U R S B V@2 W X Y B Y Z AA AB AC AD W AE W AF AG@2 B C D E F G H I J K L M N O
  P Q R S T U R S B V@2 W X Y B Y Z AA AB AC AD W AE W AH@2 AI@2
>`.pickRestart({
  A: "~@11 a4@5", B: "e5@8 c5@3 d5@2 e5@3", C: "d5@5 b4@5 ~ g4@5", D: "a4@8 b4@3 c5@2 d5@3", E: "g4@11 g4@5",
  F: "f4@8 g4@3 a4@2 b4@3", G: "c5@3 d5@2 e5@5 ~ f5@5", H: "e5@5 a4@11", I: "a4@11 a4@5", J: "a3@3 e4@2 c5@5 ~@6",
  K: "g3@3 d4@2 b4@5 ~@6", L: "a3@3 f4@2 c5@5 ~@6", M: "c4@3 g4@2 e5@5 ~@6", N: "d4@3 a4@2 f5@5 ~@6",
  O: "g3@3 e4@2 c5@5 ~ b4@5", P: "c5@3 b4@2 c5@3 e5@3 d5@2 c5@3", Q: "c5@3 b4@2 c5@3 d5@3 b4@5",
  R: "c5@8 a4@3 b4@2 c5@3", S: "d5@8 b4@3 c5@2 d5@3", T: "e5@8 e5@3 f5@2 e5@3", U: "d5@11 b4@5", V: "[f5@27 ~@5]/2",
  W: "a5@8 g5@3 f5@2 e5@3", X: "g5@8 b4@3 c5@2 d5@3", Y: "f5@8 e5@3 d5@2 c5@3", Z: "b4@8 g#4@3 a4@2 b4@3",
  AA: "c5@5 e4@3 f4@3 e4@2 d4@3", AB: "e4@3 d4@2 c4@3 d4@3 e4@2 e5@3", AC: "c6@8 b5@3 a5@2 g5@3",
  AD: "b5@5 e5@5 ~ f5@5", AE: "g5@11 c5@5", AF: "f5@5 b4@5 ~ c5@2 d5@3", AG: "[e5@5 ~@11 c4@11 a4@5, ~@5 a4@21 ~@6]/2",
  AH: "[f5@5 b4@21 ~ c5@2 d5@3]/2", AI: "[e5@5 ~@11 c5@11 ~@5, ~@5 a5@21 ~@6]/2",
})).s("gm_violin").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  ~ A B C D E A F G H I J K L M N@2 O P Q R O P S T@2 A U V D E W A X A U V D E W A Y A B C D E A F G H I J K L M N@2 O
  P Q R O P S T@2 A U V D E W A X A U V D E Z AA ~ AB
>`.pickRestart({
  A: "a2@3 e3@2 c4@5 ~@6", B: "g2@3 d3@2 b3@5 ~@6", C: "a2@3 f3@2 c4@5 ~@6", D: "c2@3 g2@2 e3@5 ~@6",
  E: "d2@3 a2@2 f3@5 ~@6", F: "a2@3 e3@2 c4@3 d4@3 c4@2 b3@3", G: "e4@3 d4@2 c4@3 d4@3 c4@2 b3@3",
  H: "e4@8 c4@3 d4@2 e4@3", I: "d4@5 b3@5 ~ g3@5", J: "a3@8 b3@3 c4@2 d4@3", K: "g3@11 g3@5", L: "f3@8 g3@3 a3@2 b3@3",
  M: "c4@3 d4@2 e4@5 ~ f4@5", N: "[g4@5 c4@21 ~@6]/2", O: "f2@3 a2@2 c3@5 ~@6", P: "g2@3 b2@2 d3@5 ~@6",
  Q: "a2@3 c3@2 e3@5 ~@6", R: "d3@3 f3@2 a3@5 ~@6", S: "a2@3 c3@2 e3@3 ~@8", T: "[g#2@3 e3@2 b3@21 ~@6]/2",
  U: "e2@3 b2@2 g3@5 ~@6", V: "f2@3 c3@2 a3@5 ~@6", W: "g#2@3 d3@2 g#3@5 ~@6", X: "c4@3 b3@2 a3@3 b3@3 a3@2 g#3@3",
  Y: "a2@11 ~@5", Z: "g#2@3 e3@2 g#3@11", AA: "g#3@11 ~@5", AB: "[a2,e3,c4]@11 ~@5",
})).s("gm_cello").gain(0.3)

stack(violin, cello)