我想从任何LilyPond 文件创建一个 MIDI 文件,而无需手动添加一个\midi { }
块。
这可以从命令行完成吗?理想情况下,我正在寻找像lilypond --midi
. 最终目标是创建一个 shell 脚本,lilypond2midi
.
我想从任何LilyPond 文件创建一个 MIDI 文件,而无需手动添加一个\midi { }
块。
这可以从命令行完成吗?理想情况下,我正在寻找像lilypond --midi
. 最终目标是创建一个 shell 脚本,lilypond2midi
.
文档清楚地表明没有这样的命令行选项,所以这不是一个真正的 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
命令一样。