Strudelify

Walc Barbary

Bach

KeyF majorTempo140 bpm
0:00/0:00
// Walc Barbary — Bach
// 140 bpm, 3/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5173364; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 · cello · "Violoncello"
const cello = note(`<
  A B C D E F G F H I@2 F G J K L M B C D E F G F H I@2 F G J N O P Q R S T U V W X@2 R@2 P Y Z O X@2 AA AB AC AB AD R
  AE AF AG AH AI R AE W Z AJ AK AB AC AB AD R AE AF AG AH AI R AE AL@2 AM AN AM AN AO
>`.pickRestart({
  A: "a2@5 bb2@8 a2@3", B: "a2@3 ~@2 db3@3 ~@3 db3@3 ~@2", C: "e2@3 ~@2 db3@3 ~@3 db3@3 ~@2",
  D: "a2@3 ~@2 [db3,a3]@3 ~@3 [db3,a3]@3 ~@2", E: "e2@3 ~@2 [e3,a3]@3 ~@3 [e3,a3]@3 ~@2",
  F: "d3@3 ~@2 [f3,a3]@3 ~@3 [f3,a3]@3 ~@2", G: "a2@3 ~@2 [f3,a3]@3 ~@3 [f3,a3]@3 ~@2",
  H: "~@5 [f3,a3]@3 ~@3 [f3,a3]@3 ~@2", I: "g2@3 ~@2 [g3,bb3]@3 ~@3 [g3,bb3]@3 ~@2",
  J: "ab2@3 ~@2 [e3,b3]@3 ~@3 [e3,b3]@3 ~@2", K: "b2@3 ~@2 [d3,b3]@3 ~@3 [d3,b3]@3 ~@2",
  L: "db3@3 ~@2 [db3,a3]@3 ~@3 [db3,a3]@3 ~@2", M: "[db3,a3]", N: "d3@5 e3@5 ~ e3@5", O: "a2@5 e3@5 ~ e3@5",
  P: "d3@5 f3@5 ~ f3@5", Q: "[f3,a3]", R: "g2@5 g3@5 ~ g3@5", S: "c3@5 e3@5 ~ e3@5", T: "f2@5 c3@5 ~ c3@5", U: "c3",
  V: "a2@5 db3@5 ~ db3@5", W: "db3@5 e3@5 ~ e3@5", X: "~@5 f3@5 ~ f3@5", Y: "f3@5 e3@5 ~ f3@5", Z: "e2@5 e3@5 ~ e3@5",
  AA: "a3", AB: "d2@5 gb3@5 ~ gb3@5", AC: "a2@5 gb3@5 ~ gb3@5", AD: "~@5 gb3@5 ~ gb3@5", AE: "d3@5 g3@5 ~ g3@5",
  AF: "a2@5 g3@5 ~ g3@5", AG: "~@5 g3@5 ~ g3@5", AH: "c3@5 eb3@5 ~ eb3@5", AI: "g2@5 eb3@5 ~ eb3@5",
  AJ: "~@5 d3@5 ~ gb3@5", AK: "[gb3,a3]", AL: "d3@5 [gb3,a3]@5 ~ [gb3,a3]@5", AM: "[d3,bb3]", AN: "g3", AO: "g2@5 ~@11",
})).s("gm_cello").gain(0.3)

// other · cello · "Violoncello"
const cello_2 = note(`<
  A B@2 C D E@2 F G H@2 I J K L M N B@2 C D E@2 F G H@2 I J K O P Q R S T U Q V W X Y Z H I J@2 AA AB@2 AC AD@2 AE AF
  AG@2 AH AI AJ AK AL F M AM AN AO AD@2 AE AF AG@2 AH AI AJ AK AL F AP AQ AE AR AE AR AS
>`.pickRestart({
  A: "a2", B: "[a3@21 a3@5 ~ a3@5]/2", C: "db4", D: "a3@5 bb3@8 a3@3", E: "[f3@21 f3@5 ~ a3@5]/2", F: "d4",
  G: "d4@5 a3@5 ~ d4@5", H: "bb3", I: "d3@5 f3@5 ~ g3@5", J: "a3", K: "ab3", L: "ab3@5 b3@5 ~ ab3@5",
  M: "a3@5 bb3@5 ~ a3@5", N: "g3", O: "e3@5 a3@5 ~ bb3@5", P: "a3@11 g3@5", Q: "f3", R: "~@3 d4@2 db4@3 d4@3 e4@2 d4@3",
  S: "g3@5 e3@5 ~ d3@5", T: "c3", U: "~@5 a3@5 ~ c4@5", V: "a3@5 g3@5 ~ f3@5", W: "e3", X: "a3@11 f3@5", Y: "d3@5 ~@11",
  Z: "d3@5 g3@5 ~ a3@5", AA: "g3@5 a3@5 ~ g3@5", AB: "[f3@21 ~@11]/2", AC: "gb3", AD: "[a3@21 a3@5 ~ bb3@5]/2",
  AE: "d3@5 eb3@5 ~ d3@5", AF: "gb2@5 ~@11", AG: "[d4@21 d4@5 ~ eb4@5]/2", AH: "g2@5 eb3@5 ~ d3@5",
  AI: "bb2@5 a2@5 ~ g2@5", AJ: "g3@5 c4@5 ~ d4@5", AK: "eb4", AL: "g3@5 bb3@5 ~ c4@5", AM: "g3@11 e3@5",
  AN: "d3@5 eb3@8 d3@3", AO: "d3", AP: "a4@5 gb4@5 ~ d4@5", AQ: "d4@5 bb3@5 ~ a3@5", AR: "eb3@5 d3@5 ~ eb3@5",
  AS: "bb3@5 ~@11",
})).s("gm_cello").gain(0.3)

stack(cello, cello_2)