0

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

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

4

1 回答 1

3

文档清楚地表明没有这样的命令行选项,所以这不是一个真正的 LilyPond 问题。

但是,您可以将\midi命令动态插入到您的 shell 脚本中的 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命令一样。

于 2016-01-01T21:26:40.607 回答