以编程方式从任何LilyPond文件创建MIDI文件

时间:2015-12-16 19:42:38

标签: lilypond

我想从任何 LilyPond文件创建MIDI文件,而无需手动添加\midi { }块。

可以从命令行完成吗?理想情况下,我正在寻找像lilypond --midi这样的选项。最终目标是创建一个shell脚本lilypond2midi

1 个答案:

答案 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命令一样。