什么是自动转一个LilyPond的源文件分成多个按键的最佳途径?
-
18-09-2019 - |
题
<强>问题强>
我使用 LilyPond的以排版乐谱用于教会合唱来执行。取决于谁是可在任何给定的一周,歌曲将在各个键进行播放。我们有一个惊人的钢琴家谁可以玩什么,我们扔在她和吉他手将在备用和弦通常铅笔,但我想通过在任何我们想要的键可用的精美排版乐谱,使事情变得更容易。
所以说,我们要唱我们的ABC。首先,我将采取一切源转录可用,它进入一个LilyPond的脚本:
melody = \relative c' {
c c g g
a a g2
f f e e
d d c2 }
我想能够自动转这一点,所以如果我想在“G”整个事情我换歌在\转呼叫,像这样:
melody = \transpose c g \relative c' {
c c g g
a a g2
f f e e
d d c2 }
我真正想要的是替代的东西为“G”,并产生旋律多次输出。简单LilyPond的变量似乎并没有在这里工作,所以到目前为止,我已经在界定方案的功能要做到这一点是不成功的。
我所使出的那一刻,走的是上面的文件,twinkle.ly调用它,把它变成一个M4脚本调用twinkle.ly.m4,其内容是这样的:
melody = \transpose c _key \relative c' {
c c g g
a a g2
f f e e
d d c2 }
我然后通过执行下面的行编译而事:
> m4 -D _key=g twinkle.ly.m4 > twinkle_g.ly && lilypond twinkle_g.ly
我写了一个Makefile文件来为我做这个,定义了每首歌我已经和每一个关键我感兴趣的规则。
<强>问题强> 一定有什么是要对这个更好的方法。鉴于LilyPond的支持嵌入式方案,我宁愿不使用预处理就可以了宏。有其他人想出了一个解决这个同样的问题?
解决方案
可以指旋律变量,并在所需键转置:
melody = \relative c' { c8 e c e g4 g } \score { \transpose c d \melody } \score { \transpose c e \melody } % etc.
如果你想输出的换位作为单独的文件,将它们嵌入到\书芯。
其他提示
如果你想创建同一片段的两个副本,一个换位,一个没有,你可以使用的 \displayLilyMusic
。例如,
{
\displayLilyMusic \transpose c a, { c4 e g a bes }
}
将显示
{ a,4 cis e fis g }
复制此输出并粘贴不管你想要的。
使用免费的为LilyPond的 frescobaldi的编辑器。 它提供了一个强有力的工具换位
不隶属于 StackOverflow