Strudelify

Invention Nr. 4

J. S. Bach

KeyG majorTempo60 bpm
0:00/0:00
// Invention Nr. 4 — J.S. Bach
// 60 bpm, 3/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/686306; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 52 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/1.5)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@2 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA@6 AB AC AD AE AF AG AH AI AJ C D A B AK AL AM AK AN
>`.pickRestart({
  A: "d4@2 ~ e4@2 f4@2 ~ g4@2 ~ a4@2 a#4@2 ~", B: "c#4@2 ~ a#4@2 a4@2 ~ g4@2 ~ f4@2 e4@2 ~", C: "f4@5 a4@5 ~ d5@5",
  D: "e4@5 g4@5 ~ c#5@5", E: "d4@5 d5@5 ~ f4@5", F: "g4@5 a4@5 ~ a#4@5", G: "c4@5 c5@5 ~ e4@5", H: "f4@5 g4@5 ~ a4@5",
  I: "a#4@2 ~ g4@2 a4@2 ~ a#4@2 ~ c5@2 d5@2 ~", J: "e4@2 ~ d5@2 c5@2 ~ a#4@2 ~ a4@2 g4@2 ~",
  K: "a4@2 ~ f4@2 g4@2 ~ a4@2 ~ a#4@2 c5@2 ~", L: "d4@2 ~ c5@2 a#4@2 ~ a4@2 ~ g4@2 f4@2 ~",
  M: "e4@2 ~ c4@2 d4@2 ~ e4@2 ~ f4@2 g4@2 ~", N: "a3@2 ~ g4@2 f4@2 ~ e4@2 ~ d4@2 c4@2 ~", O: "d4@2 ~ a#3@2 c4@5 ~ c4@5",
  P: "f3@2 ~ g3@2 a3@2 ~ a#3@2 ~ c4@2 d4@2 ~", Q: "e3@2 ~ d4@2 c4@2 ~ a#3@2 ~ a3@2 g3@2 ~",
  R: "a3@2 ~ a#3@2 c4@2 ~ d4@2 ~ e4@2 f4@2 ~", S: "g3@2 ~ f4@2 e4@2 ~ d4@2 ~ c4@2 a#3@2 ~",
  T: "a3@2 ~ a#3@2 c4@2 ~ a3@2 ~ a#3@2 c4@2 ~", U: "f#3@5 ~@11", V: "g3@2 ~ a3@2 a#3@2 ~ g3@2 ~ a3@2 a#3@2 ~",
  W: "e3@5 ~@11", X: "f3@5 f4@5 ~ d4@5", Y: "b3@5 g#3@5 ~ e3@5", Z: "a3@2 ~ g#3@2 a3@2 ~ b3@2 ~ c4@2 d4@2 ~",
  AA: "[e4 f4 ~ e4@82 e5@5 ~ d5@5]/6", AB: "c5@5 b4@5 ~ a4@5", AC: "d5@5 e5@5 ~ f5@5", AD: "d5@5 e5@5 ~ e4@5",
  AE: "a4@2 ~ a3@2 a#3@2 ~ c4@2 ~ d4@2 d#4@2 ~", AF: "f#3@2 ~ d#4@2 d4@2 ~ c4@2 ~ a#3@2 a3@2 ~",
  AG: "g3@8 g3@2 ~ a3@2 a#3@2 ~", AH: "c4@5 g3@5 ~ c4@5", AI: "f4@2 ~ g4@2 a4@2 ~ b4@2 ~ c#5@2 d5@2 ~",
  AJ: "e4@2 ~ d5@2 c#5@2 ~ b4@2 ~ a4@2 g4@2 ~", AK: "f4@2 ~ g4@2 a4@5 ~ a3@5", AL: "a#3@8 c4@2 ~ a#3@2 a3@2 ~",
  AM: "g3@2 ~ a#4@2 a4@2 ~ g4@2 ~ f4@2 e4@2 ~", AN: "d3",
})).s("gm_alto_sax").gain(0.25)

stack(alto_sax)

More by J. S. Bach