Как отображать названия аккордов над нотным станом - PullRequest
2 голосов
/ 06 мая 2020

Я новичок ie в Lilypond и пытаюсь написать ноты c с названиями аккордов и партией баса. Я хотел бы показать названия аккордов над нотоносцем; однако на самом деле они показаны под нотоносцем. Пишу 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, поэтому я не могу этого избежать. Это лучшее, что я могу сделать на данный момент. Пожалуйста, помогите мне. Заранее спасибо.

1 Ответ

3 голосов
/ 06 мая 2020

Я думаю, что лучший подход - разделить аккорды и мелодию, а затем вы можете просто создать ChordNames в блоке score над Staff.

\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 {}
}
...