使用 Lilypond 围绕五度圈转置模式

use Lilypond to transpose pattern around circle of fifths

我想提供一个模式(例如,C 大调琶音、C E G)并让 Lilypond 自动显示它在所有 12 个音阶中的移调(作为一个乐谱)。

这是我目前的尝试:

music = { c' e' g' s }

\new Staff {
  \transpose c c   { \music }
  \transpose c f   { \music }
  \transpose c bes { \music }
  \transpose c ees { \music }
  \transpose c aes { \music }
  \transpose c des { \music }
  \transpose c fis { \music }
  \transpose c b   { \music }
  \transpose c e   { \music }
  \transpose c a   { \music }
  \transpose c d   { \music }
  \transpose c g   { \music }
}

我不知道如何在每个模式上方添加文本以指示移调键(例如,C、F、Bb 等...)。我希望最终产品看起来像这样:

注意:无论模式的长度如何(可以长于一个小节),我都希望此代码能够正常工作。

如果你想要自动音名,可以通过移调和弦来实现。这样的事情会产生与您所展示的相似的结果。它既不简单也不优雅,但它是自动的,因为你不需要事先知道目标和弦。

\version "2.19.31"

cOne=\chordmode {c1} 

mOne={ c'4 e' g' s }


<<
  \new ChordNames{
    \transpose c f {\transpose c f { \cOne }}
    \transpose c f { \cOne }
    \cOne  
    \transpose c g { \cOne }
    \transpose c g { \transpose c g { \cOne }}
    \transpose c g { \transpose c g { \transpose c g { \cOne }}}
  }

  \new Staff {
    \transpose c f,  {\transpose c f { \mOne }}
    \transpose c f { \mOne }
    \mOne
    \transpose c g { \mOne }
    \transpose c g, { \transpose c g { \mOne }}
    \transpose c g, { \transpose c g { \transpose c g { \mOne }}}
  }
>>