Strudelify

Der Lindenbaum (Am Brunnen vor dem Tore)

Mel: Frank Schubert

KeyE♭ majorTempo60 bpm
0:00/0:00
// Der Lindenbaum (Am Brunnen vor dem Tore) — Mel: Frank Schubert
// 60 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 3/4 at bar 2, 5/8 at bar 19) are rendered on a constant 3/4 grid of one bar per cycle
// note: ch 4 "Basso" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5859663; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 19 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · piano · "Alto"
const piano = note("<A B C D E F G H I J K L M J K N E O P>".pickRestart({
  A: "~@5 eb4", B: "eb4@11 ~ eb4@4 eb4@4 eb4@4", C: "eb4@2 bb3@2 ~ bb3", D: "d4@11 ~ eb4@4 f4@6 d4@2",
  E: "eb4@15 ~@5 eb4@4", F: "g4@11 ~ eb4@4 eb4@4 eb4@4", G: "bb3@2 bb3@2 ~ bb3", H: "d4@11 ~ eb4@4 g4@3 f4@2 d4@3",
  I: "eb4@15 ~@5 bb3@4", J: "d4@11 ~ d4@4 d4@4 d4@4", K: "eb4@3 f4 g4@4 ~@2 g4@2", L: "ab4@11 ~ g4@4 eb4@4 bb3@4",
  M: "d4@15 ~@5 eb4@4", N: "g4@11 ~ eb4@4 f4@6 d4@2", O: "g4@11 ~ eb4@4 d4@4 d4@4", P: "eb4@5 ~@3",
})).s("gm_piano").gain(0.3)

// other · piano · "Tenor"
const piano_2 = note("<A B C D E F G H I F J K E L M N O P Q>".pickRestart({
  A: "~@5 g3", B: "g3@11 ~ bb3@4 bb3@4 bb3@4", C: "bb3@2 g3@2 ~ g3", D: "bb3@11 ~ bb3@4 bb3@6 bb3@2",
  E: "bb3@15 ~@5 g3@4", F: "bb3@11 ~ bb3@4 bb3@4 bb3@4", G: "eb4@2 bb3@2 ~ bb3", H: "bb3@11 ~ bb3@4 bb3@4 ab3@4",
  I: "g3@15 ~@5 g3@4", J: "bb3@2 bb3@2 ~ eb4", K: "eb4@11 ~ eb4@4 bb3@4 g3@4", L: "bb3@6 bb3@2 bb3@11 ~ bb3@4",
  M: "bb3@2 bb3@2 ~ bb3", N: "bb3@11 ~ eb4@4 d4@6 bb3@2", O: "bb3@15 ~@5 bb3@4", P: "bb3@11 ~ bb3@4 f3@4 ab3@4",
  Q: "g3@5 ~@3",
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Basso"
const bass = note("<A B C D E B F G E H C I J K C L M N O>".pickRestart({
  A: "~@5 eb3", B: "eb3@11 ~ eb3@4 eb3@4 eb3@4", C: "eb3@2 eb3@2 ~ eb3", D: "bb2@11 ~ bb2@4 bb2@6 bb2@2",
  E: "eb3@15 ~@5 eb3@4", F: "eb3@2 g3@2 ~ g3", G: "bb3@11 ~ bb3@4 bb2@4 bb2@4", H: "bb2@6 bb3@2 bb3@11 ~ bb2@4",
  I: "eb3@11 ~ eb3@4 eb3@4 g3@4", J: "bb2@15 ~@5 eb3@4", K: "bb3@11 ~ bb2@4 bb2@4 bb2@4",
  L: "eb3@2 g3@2 bb3@2 bb3@2 bb3@3 ab3", M: "g3@15 ~@5 eb3@4", N: "eb3 g3 bb3!2 bb2!2", O: "eb3@5 ~@3",
})).s("gm_electric_bass_finger").gain(0.3)

stack(piano, piano_2, bass)