【问题标题】:Make lilypond use constant spacing and no bars使 lilypond 使用恒定间距且没有条形
【发布时间】:2019-06-26 22:10:25
【问题描述】:

我想禁用条形并使所有音符等间距(不管它们的持续时间)。

我试过了:

\layout {
  \override Stem.transparent = ##t
  \context {
    \Score
    \override SpacingSpanner.spacing-increment = 1
    \override SpacingSpanner.uniform-stretching = ##t
    \override SpacingSpanner.strict-note-spacing = ##t
  }
}

但音符之间的间距仍然取决于它们的持续时间。

【问题讨论】:

    标签: lilypond


    【解决方案1】:

    下面的代码确实很笨拙,但应该会产生与您想要的相似的东西:

    \version "2.19.82"
    
    \layout {
      \omit Score.Stem
      \omit Score.Beam
      \omit Score.TimeSignature
      \omit Score.BarLine
      \context {
        \Score
        \override SpacingSpanner.spacing-increment = 0.2
        \override SpacingSpanner.uniform-stretching = ##t
        \override SpacingSpanner.strict-note-spacing = ##t
        \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/100000000)
      }
    }
    
    {
      c'4 d'4 e'2 
      c'8 cis'8 d'4 e'2
      c'4 d'4 ees'2 
      c'8 g'8 a'4 e'2
    }
    

    输出:

    诀窍是使base-shortest-duration 非常小,然后相应地调整spacing-incrementbase-shortest-duration 越小,不同持续时间之间的差异就越不明显。所以你需要做的就是使用spacing-increment的一些值来输出你想要的音符头距离。

    【讨论】:

    • 顺便说一句,使用\omit 比更改transparent 属性或使用\hide 要好得多。这是因为透明和隐藏的图形对象仍然占据乐谱中的空间,并且在确定位置时会考虑在内(例如,与意外碰撞的不可见光束可能会导致音符移动)。所以省略是要走的路,因为没有创建对象,因此不占用任何空间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2018-01-11
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多