我想从任何 LilyPond文件创建MIDI文件,而无需手动添加\midi { }
块。
可以从命令行完成吗?理想情况下,我正在寻找像lilypond --midi
这样的选项。最终目标是创建一个shell脚本lilypond2midi
。
答案 0 :(得分:2)
文档很清楚,没有这样的命令行选项,所以这不是LilyPond的问题。
然而,您可以做的是在shell脚本中动态地将\midi
命令插入LilyPond代码。
例如,您的脚本可以执行类似的操作。 (我暂时没有完成任何AWK,但我认为这很有用。Perl也可以解决这个问题。)
awk '/^\\score/ {inScore=1}
/^}/ {if (inScore == 1) print "\midi {}"
inScore=0
}
{print}' ${filename}.ly | lilypond -o $filename -
这假设输入文件具有\score
块,并且在}
块开始之后的行开头处的第一个右括号\score
是关闭\score
区块。
当然,这并没有改变原来的LilyPond文件,但LilyPond会编译它,好像 有\midi
命令一样。