Strudelify

La Foule

A. Cabral

KeyE majorTempo190 bpm
0:00/0:00
// La Foule — A. Cabral
// 190 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5363775; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 98 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(190/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin · "Violin II"
const violin = note(`<
  ~@8 A B C@4 D@2 E F G H I J K L M N O P Q N R S T U G H I J K L M N O P Q N R V Q W X Y Z AA X AB AC AD AE AF AG AH AI
  AJ AK AL X Y Z AA X AB AC AD AE AF AG AH AI AM AN AO ~@6 A B C@4 D@2 AP Q
>`.pickRestart({
  A: "b3@5 b3@5 ~ c4@5", B: "c#4@5 d4@5 ~ d#4@5", C: "e4@3 e4@3 ~@2 f#4@3 f#4@5", D: "d#4@3 d#4@3 ~@2 f#4@3 f#4@5",
  E: "e4", F: "~@5 b3@5 ~ b3@5", G: "e5@8 e5@3 e5@2 f#5@3", H: "g5@8 f#5@3 e5@2 d#5@3", I: "e5@5 c5@5 ~@6",
  J: "~@5 e5@5 ~ f#5@5", K: "a5@5 g5@5 ~ f#5@5", L: "a5@5 d5@5 ~ e5@5", M: "d5", N: "~@5 b4@5 ~ b4@5",
  O: "d#5@3 d#5@3 ~@2 d#5@5 d#5@3", P: "f#5@5 e5@5 ~ d#5@5", Q: "e5", R: "c5@3 c5@2 c5@3 c5@3 c5@2 c5@3",
  S: "e5@3 e5@2 e5@3 e5@3 e5@2 e5@3", T: "e5@5 d#5@11", U: "~@3 b4@2 c5@3 b4@3 a#4@2 b4@3", V: "b4@5 g5@5 ~ f#5@5",
  W: "~@3 d5@2 e5@3 d5@3 c#5@2 d5@3", X: "f#4@5 ~@3 e4@3 e4@2 d4@3", Y: "f#4@3 e4@3 ~@2 e4@5 d4@3",
  Z: "g4@5 ~@3 e4@3 e4@2 d4@3", AA: "g4@3 e4@3 ~@2 e4@5 d4@3", AB: "f#4@3 d4@3 ~@2 d4@5 c4@3", AC: "b3",
  AD: "~@3 b3@2 c4@3 b3@3 a#3@2 b3@3", AE: "d#4@11 e4@5", AF: "f#4@5 e4@5 ~ d#4@5", AG: "e4@3 g4@2 b4@3 e4@3 g4@2 b4@3",
  AH: "e4@5 b3@5 ~ b3@5", AI: "e4@3 e4@2 e4@3 e4@3 e4@2 e4@3", AJ: "e4@5 g4@5 ~ g4@5", AK: "g4 g4@4 f#4@11, ~ a4 ~@14",
  AL: "~@3 d4@2 e4@3 d4@3 c#4@2 d4@3", AM: "d#5@5 g5@5 ~ f#5@5", AN: "e5@5 b4@5 ~ c5@5", AO: "c#5@5 d5@5 ~ d#5@5",
  AP: "e5@3 e4@2 d#4@3 e4@3 g4@2 b4@3",
})).s("gm_violin").gain(0.3)

// other · viola
const viola = note(`<
  A B C@2 D@2 C@2 E B F@2 G H I J K L M@2 C@2 N@2 O@2 C@2 O@3 N C P M@2 C@2 N@2 O@2 C@2 O@3 C M ~ N@2 O@2 N@2 O Q N@2
  O@3 C@2 R N@2 O@2 N@2 O Q N@2 O@3 N L ~ C@2 D@2 C@2 S B C@2 O@2 C@2 T U
>`.pickRestart({
  A: "~@5 b3@5 ~ c4@5", B: "c#4@5 d4@5 ~ d#4@5", C: "~@5 a4@5 ~ a4@5", D: "~@5 b4@5 ~ b4@5", E: "e4@5 b3@5 ~ c4@5",
  F: "a3@5 a4@5 ~ a4@5", G: "e4@5 g4@5 ~ g4@5", H: "[b3,b4]@5 g4@5 ~ g4@5", I: "f#4@5 a4@5 ~ a4@5",
  J: "b3@5 a4@5 ~ a4@5", K: "e3@5 b3@5 ~ g3@5", L: "e3@5 ~@11", M: "~@5 e4@5 ~ e4@5", N: "~@5 f#4@5 ~ f#4@5",
  O: "~@5 g4@5 ~ g4@5", P: "b4@5 ~@11", Q: "g3@5 ~@11", R: "b3@5 ~@11", S: "e5@5 b3@5 ~ c4@5",
  T: "e4@5 d#4@3 e4@3 g4@2 b4@3", U: "e4",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B C@2 D E F G H B I@2 J K L M N O P Q C D R C S@2 G@2 O S T C G U P Q C D R C S@2 G@2 O S T G O@2 C R S R C R S@2 V
  G O R T C G@2 C R S R C R S@2 V G O R T G O ~ C@2 D E F G H B C@2 D G F G W X
>`.pickRestart({
  A: "~@5 b2@5 ~ c3@5", B: "c#3@5 d3@5 ~ d#3@5", C: "a2@5 ~@11", D: "e3@5 ~@11", E: "g3@5 ~@11", F: "f#3@5 ~@11",
  G: "b2@5 ~@11", H: "e3@5 b2@5 ~ c3@5", I: "a2@5 a3@5 ~ a3@5", J: "e3@5 g3@5 ~ g3@5", K: "[b2,b3]@5 g3@5 ~ g3@5",
  L: "f#3@5 a3@5 ~ a3@5", M: "b2@5 a3@5 ~ a3@5", N: "e2@5 b2@5 ~ g2@5", O: "e2@5 ~@11", P: "e2@5 e3@5 ~ e3@5",
  Q: "c3@5 e3@5 ~ e3@5", R: "d3@5 ~@11", S: "g2@5 ~@11", T: "c3@5 ~@11", U: "b3@5 ~@11", V: "f#2@5 ~@11",
  W: "e3@5 d#3@3 e3@3 g3@2 b3@3", X: "e3",
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)