首页 > 解决方案 > 如何在五线谱上方显示和弦名称

问题描述

我是 Lilypond 的新手,正在尝试写一张带有和弦名称和贝斯线的乐谱。我想在五线谱上方显示和弦名称;但是,它们实际上显示在五线谱下方。baseChords以前写过baseMelody,但它根本没有帮助。这是我的整个代码:

baseChords = \chords {
    \set chordChanges = ##t
    c1:m7 f:7 bes:maj7 ees:maj7 
    a:m7.5- d:7.13- g:m6 g:m6 
}

baseMelody = \fixed c {
  \language "english"
c4 c ef g, 
f, f, a, c 
bf, bf, d f, 
ef ef g, bf, 
a, a, c ef 
d d fs, a, 
g, g, bf, d 
g, g, bf, d 
g,1
}

melody = {
  \key g \minor
  \clef bass
  \tempo 4 = 108
  <<
  \baseChords
  \baseMelody
  >>
}

\score {
  \new Staff <<
    \new Voice \melody
  >>
  \layout { }
}

\score {
  \new Staff <<
    \new Voice {
      r\mf
      \set Staff.midiInstrument = #"electric bass (finger)" \melody
    }
  >>
  \midi { }
}

...我参考了Demo MidiInstruments来编写这段代码。这对我来说太复杂了,但我也想播放 MIDI,所以我无法避免使用它。这是我目前能做的最好的。请帮我。先感谢您。

标签: lilypondchord

解决方案


我认为最好的方法是保持和弦和旋律分开,然后你可以简单地ChordNames在.scoreStaff

\language "english"

chord_sequence = \chords {
  \set chordChanges = ##t
  c1:m7 f:7 bf:maj7 ef:maj7 
  a:m7.5- d:7.13- g:m6 g:m6 
}

melody = \fixed c {
  \key g \minor
  \clef bass
  \tempo 4 = 108
  c4 c ef g, 
  f, f, a, c 
  bf, bf, d f, 
  ef ef g, bf, 
  a, a, c ef 
  d d fs, a, 
  g, g, bf, d 
  g, g, bf, d 
  g,1
}

\score {
  <<
    \new ChordNames {
      \chord_sequence
    }
    \new Staff {
      \melody
    }
  >>
  \layout {}
}

推荐阅读