【发布时间】:2015-12-16 19:42:38
【问题描述】:
我想从 任何 LilyPond 文件创建一个 MIDI 文件,而无需手动添加 \midi { } 块。
这可以从命令行完成吗?理想情况下,我正在寻找像lilypond --midi 这样的选项。最终目标是创建一个 shell 脚本,lilypond2midi。
【问题讨论】:
标签: lilypond
我想从 任何 LilyPond 文件创建一个 MIDI 文件,而无需手动添加 \midi { } 块。
这可以从命令行完成吗?理想情况下,我正在寻找像lilypond --midi 这样的选项。最终目标是创建一个 shell 脚本,lilypond2midi。
【问题讨论】:
标签: lilypond
文档清楚地表明没有这样的命令行选项,所以这不是一个真正的 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 命令。
【讨论】: