<强>问题

我使用 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的编辑器。 它提供了一个强有力的工具换位

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top