Hello Marcus,

essentially what you have here is
<< chordNames voiceI \\ voiceII >>

If you only had << chordNames voiceI >> this would work out, because Lilypond 
would first see the chord names, which creates a new ChordNames context, and 
then the music, for which Lilypond does implicitely create a new Staff.

Now, when Lilypond encounters \\ as element of a music expression it will 
split the elements along these and create individual voices. So

<< chordNames voiceI \\ voiceII >>

becomes

<< \new Voice { \voiceOne << chordNames voiceI >> } \new Voice { \voiceTwo 
voiceII >>

So Lilypond will first encounter a new Voice, which requires it to implicitely 
create a new Staff, and only then encounter the chord names.

This is why in your case the chord names are below the Staff. To fix this do 
instead of

<< chordNames \new Staff << voiceI \\ voiceII >> >>

so do

\language "english"

<<
  \chords {
    e1:maj
  }
  \new Staff <<
    \relative c''
    {
      \key e \major
      e1 |
    }
    \\
    \relative c'
    {
      <gs b ds>1 |
    }
  >>
>>

Cheers,
Valentin

Am Montag, 5. Februar 2024, 02:33:55 CET schrieb Marcus Mayo:
> Hi all,
> 
> I'm using lilypond to practice my voice leading. I want to keep the harmony
> as a separate voice for the sake of tidiness. However, when I add a second
> voice, the chords appear underneath the staff as opposed to above it. How
> do I fix this?
> 
> Example:
> 
> \version "2.25.11"
> 
> \language "english"
> 
> <<
> \chords {
> e1:maj
> }
> 
> \relative c''
> {
> \key e \major
> e1 |
> }
> \\
> % Chords show above staff until I add second voice, how do I fix?
> \relative c'
> {
> <gs b ds>1 |
> }
> 
> 
> Thanks in advance!

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to