-- some settings -- vim: ai sw=2 lbr nu encoding=utf8 et pre=[[ %some settings% vim: ai sw=2 lbr nu encoding=utf8 et \version "2.12" \include "stimmen.ly" \score { ]] post=[[ \midi { \context{ %\Score %tempoWholesPerMinute = #(ly:make-moment 72 4) } } } ]] voices={ "s", "a", "t", "b" } expand = { s="sopran", a="alt", t="tenor", b="bass" } map = { sopran="soprane", alt="alti", tenor="tenoere", bass="baesse" } function text(stimme) return [[ \new Staff = ]]..stimme..[[ << %\new Voice = "meta" { s1*<+Anzahl der Takte+> \bar "|." } \new Voice = "]]..map[stimme]..[[" { \global \]]..stimme..[[Melodie } >> ]] end function err() print("oops") os.exit() end which=which or "satb" if type(which)~="string" then err() end for _,v in pairs(voices) do if string.find(which, v) then pre=pre..text(expand[v]) end end input=pre..post --os.execute(lilypond -...) io.stdout:write(input) os.exit()