Re: Putting lyrics below its staff?

2015-05-28 Thread Kaj

Hi Noeck

Sorry for a late answer. I have been away from home and not being able 
to read my e-mail.


On 2015-05-23 20:41, Noeck wrote:

Hi Kaj,

in general you are right: In case there is only one expression,
duplicating the 'brackets',   or { } is not needed. You can even
write a single note without brackets:
\new Staff a
but of course not two:
\new Staff a b

At the top level you need something to tell LilyPond that this is music
(\new Staff in the examples above or braces) and not lyrics or commands
or something else:
{ a }
simply writing
a
is not enough.

Your code does not compile and it looks a bit strange.
Well, not strange. Now I see the example is not complete. It is an 
extract from the complete code, which was discussed earlier in the 
thread. Outside the \score block there are definitions of the different 
music parts \mE etc and text parts \tE etc. Another point is that I 
found a strange behaviour in my original version for LilyPond 2.18.2. 
However I also noticed that my example is working fine in LP version 
2.19.20, so the bug I discovered is nowadays corrected.

While you are
right concerning redundant brackets, I wonder why you have staves inside
of voices?
The reason is the original question which dealt with how to get the 
lyrics below a staff appearing not at the beginning but later in the 
music. My original problem was that the lyrics showed up between the 
staves, while I wanted it below its respective staff. The lyrics text is 
not the same for the two staves. This lead to some different suggestion, 
while the final one from Carl was the one really working. However he 
suggested these doubled braces and angles, which I could not think are 
necessary, and you also agreed upon. I think that I understand this now. 
Thank you.

I put a different example here and I comment some of the brackets

\new ChoirStaff  % needed because of 2 staves
   \new Staff  % needed because of 2 voices inside staff
 \new Voice = vA { a b } % {} needed because multiple notes
 \new Voice = vB { c d }
 \new Lyrics \lyricsto vB { Hel -- lo }
   
   \new Staff { e f }  % no  needed because only one voice
Does that make sense to you?
Yes, this example works fine for me, even if it does not really deal 
with the original question.


Cheers,
Joram


Thanks everybody for your hints and suggestions, which have finally lead 
me to a working knowledge.

/Kaj

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Putting lyrics below its staff?

2015-05-23 Thread Noeck
Hi Kaj,

in general you are right: In case there is only one expression,
duplicating the 'brackets',   or { } is not needed. You can even
write a single note without brackets:
\new Staff a
but of course not two:
\new Staff a b

At the top level you need something to tell LilyPond that this is music
(\new Staff in the examples above or braces) and not lyrics or commands
or something else:
{ a }
simply writing
a
is not enough.

Your code does not compile and it looks a bit strange. While you are
right concerning redundant brackets, I wonder why you have staves inside
of voices? I put a different example here and I comment some of the brackets

\new ChoirStaff  % needed because of 2 staves
  \new Staff  % needed because of 2 voices inside staff
\new Voice = vA { a b } % {} needed because multiple notes
\new Voice = vB { c d }
\new Lyrics \lyricsto vB { Hel -- lo }
  
  \new Staff { e f }  % no  needed because only one voice


Does that make sense to you?

Cheers,
Joram

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Re: Putting lyrics below its staff?

2015-05-23 Thread 70147persson



On 2015-05-22 22:02, Carl Sorensen wrote:


On 5/22/15 10:03 AM, 70147pers...@telia.com 70147pers...@telia.com
wrote:


Hi Carl!

Yes, you are the person with the big understanding. I learned t from

your solution, that you can, and in this case must, do things inside
open parenthesis.

I am concerned that you do not understand why the braces {} do what they
do, and that you are just memorizing syntax.

The items in a set of {} braces come one after the other in time, so they
will move from right to left on the page.

The items in a set of   angle brackets all start at the same time.

If you understand this, things will make much more sense.



That was what was wrong in my efforts towards the
solution. So I took your solution as a base and worked through my
example. It all was fine. I was a wee wondering about the extra gap
between top staff and the ones below, so I went on and added a
couple of measures an staves. And the result is clear: the new staff
will always start one step below the extra one to the left, even if
there are single measures in the top staff in between. Do you have a
smart solution to this too?

The way to solve this problem is to use one Staff, rather than multiple
Staff contexts, but also to use \startStaff and \stopStaff to break the
staff.  See the example in the Notation Reference where they talk about
many isolated ossia staves.

Thanks,

Carl



Hello Carl

Just when I thought I understand things you are making me confused. Yes, 
I think I have got this with simultaneous or parallel music (inside  
) and serial (inside { }). But I thought these are mutual, you do not 
need them both if they include the same area. You can look at both of 
them as some kind of parenthesis, with a wee different function. But you 
do not need them both together, I thought. There were a couple of such 
doubles in your example, so I removed those not actual. If I need a 
parallel part of the score, I do not have to embrace the double angles 
with braces, or do I? And obviously LilyPond accepts my mistake, if it 
is, since I get the same result from my code as from yours. Well, I 
might be wrong, and then I will try to learn it correct.


Here is your code:

\score {
  
\new ChoirStaff
% This matches (1) below
  {% This matches (2) below
\new Staff = sAB {% This matches (3) below
  % This matches (4) below
{% This matches (5) below
  \new Voice = vA {
\mA

  \mB
  \new Staff = sB {
\new Voice = vE { \mE }
  }
  \new Lyrics = IE \lyricsto vE{\tE}

\mC


  \mD
  \new Staff = sF {
\new Voice = vF { \mF }
  }
  \new Lyrics = lF \lyricsto vF { \tF }
  \new Staff = sG {
\new Voice = vG { \mG }
  }
  \new Lyrics = lF \lyricsto vF { \tF }

  }
  }% (5)
% (4)

  }   % (3)
  }% (2)
% (1)

Here, in my opinion, the pairs (1) and (2) include the same area and are 
redundant. Only the inner ones are necessary. Likewise (3), (4) and (5) 
are redundant and only the inner ones are necessary. But maybe this is 
wrong reasoning, so please tell me.


But again, many many thanks for your clear instructions.

Kaj

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Putting lyrics below its staff?

2015-05-22 Thread Carl Sorensen


On 5/22/15 10:03 AM, 70147pers...@telia.com 70147pers...@telia.com
wrote:


Hi Carl!

Yes, you are the person with the big understanding. I learned t from
your solution, that you can, and in this case must, do things inside
open parenthesis.

I am concerned that you do not understand why the braces {} do what they
do, and that you are just memorizing syntax.

The items in a set of {} braces come one after the other in time, so they
will move from right to left on the page.

The items in a set of   angle brackets all start at the same time.

If you understand this, things will make much more sense.


That was what was wrong in my efforts towards the
solution. So I took your solution as a base and worked through my
example. It all was fine. I was a wee wondering about the extra gap
between top staff and the ones below, so I went on and added a
couple of measures an staves. And the result is clear: the new staff
will always start one step below the extra one to the left, even if
there are single measures in the top staff in between. Do you have a
smart solution to this too?

The way to solve this problem is to use one Staff, rather than multiple
Staff contexts, but also to use \startStaff and \stopStaff to break the
staff.  See the example in the Notation Reference where they talk about
many isolated ossia staves.

Thanks,

Carl


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Re: Putting lyrics below its staff?

2015-05-22 Thread 70147persson


On 2015-05-22 02:18, Carl Sorensen wrote:


On 5/21/15 5:23 PM, Kaj Persson kape_...@algonet.se wrote:

The example shows, that LilyPond perfectly understands the implied
structure and it also understands which lyric belongs to which note.
So that is not the problem. A minor issue is that the lyrics for the
top staff is broken into separate lines, one for each individual
\new Lyrics. This can certainly be solved by a clever definition
of the string for this staff (and maybe every staff). But the main
issue is, that at least I have not found any method to put the text
below the respective staff, exept for the top staff, despite this
would be the normal behaviour according to the manual.  And that was
my wish by calling for assistance on this mailing list.

Here is the new example:

  \version 2.18.2

% The next line does not belong to the task, but

% just to get shorter music lines in the printout.
\paper { ragged-right =#t }

% Music definitions, mA..mD for the  top staff:

mA =relative c' { c4 c c c \break }
mB =relative c' { d4 d d d \break }
mC =relative c' { e4 e e e \break }
mD =relative c' { f4 f f f \break }

mE =relative c''' { g4 g g g }

mF =relative c''' { a4 a a a }
mG =relative c''' { b4 b b b }

% Lyrics for each part of the staves:

tA =lyricmode { A A A A }
tB =lyricmode { B B B B }
tC =lyricmode { C C C C }
tD =lyricmode { D D D D }
tE =lyricmode { E E E E }
tF =lyricmode { F F F F }
tG =lyricmode { G G G G }

\score {

  \new ChoirStaff
  
{
  \new Staff =sAB {

  {

  \new Voice =vA { \mA }


  \new Voice =vB { \mB }
  \new Staff =sB {
\new Voice =vE { \mE }
  }


  \new Voice =vC { \mC }


  \new Voice =vD { \mD }
  \new Staff =sF 
\new Voice =vF { \mF }
  
  \new Staff =sG 
\new Voice =vG { \mG }
  

  }

  }
}

You must put the Lyrics contexts in parallel with the Staff where you want
the lyrics to be aligned.



  \new Lyrics =lA \lyricsto vA { \tA }
  \new Lyrics =lB \lyricsto vB { \tB }
  \new Lyrics =lC \lyricsto vC { \tC }
  \new Lyrics =lD \lyricsto vD { \tD }
  \new Lyrics =lE \lyricsto vE { \tE }
  \new Lyrics =lF \lyricsto vF { \tF }
  \new Lyrics =lG \lyricsto vG { \tG }
  
  
  \layout { indent =0 }

}



Actually, if you want the A, B, C, D lyrics to be aligned on the same
horizontal line, you should probably just make them one lyrics context,
associated with one Voice context, but both can have multiple sequential
music expressions.


\version 2.18.2

% The next line does not belong to the task, but
% just to get shorter music lines in the printout.
\paper { ragged-right =#t }

% Music definitions, mA..mD for the  top staff:
mA =relative c' { c4 c c c  }
mB =relative c' { d4 d d d }
mC =relative c' { e4 e e e }
mD =relative c' { f4 f f f }

mE =relative c''' { g4 g g g }
mF =relative c''' { a4 a a a }
mG =relative c''' { b4 b b b }

% Lyrics for each part of the staves:
tA =lyricmode { A A A A }
tB =lyricmode { B B B B }
tC =lyricmode { C C C C }
tD =lyricmode { D D D D }
tE =lyricmode { E E E E }
tF =lyricmode { F F F F }
tG =lyricmode { G G G G }

\score {
   
 \new ChoirStaff
 
   {
 \new Staff =sAB {
   
 {
   \new Voice =vA {
 \mA
 
   \mB
   \new Staff =sB {
 \new Voice =vE { \mE }
   }
   \new Lyrics =IE \lyricsto vE{\tE}
 
 \mC

 
   \mD
   \new Staff =sF {
 \new Voice =vF { \mF }
   }
   \new Lyrics =lF \lyricsto vF { \tF }
   \new Staff =sG {
 \new Voice =vG { \mG }
   }
   \new Lyrics =lF \lyricsto vF { \tF }
 
   }
   }
 

   }

   }
 
  
   \new Lyrics =lA \lyricsto vA { \tA  \tB \tC \tD}

   
   
   \layout { indent =0 }

}


Hope this is helpful,


Carl



Hi Carl!

Yes, you are the 

Re: Putting lyrics below its staff?

2015-05-21 Thread tisimst
Kaj,

On Thu, May 21, 2015 at 2:05 AM, Kaj [via Lilypond] 
ml-node+s1069038n176837...@n5.nabble.com wrote:

 I am working on a piece of choir music. It consists of two parts, the
 first of which is written on one staff, and the second two staves. The
 upper staff in part two is a continuation of the staff in part one. All the
 staves are accompanied with lyrics. My wish is that this lyrics should be
 written below its respective staff. However, whatever I do, the lyrics for
 the lower staff in part two, which I denote C, is written above the staff,
 hence directly below the lyrics for the upper staff (B). I suspect there
 should be a simple solution for this, and in the handbook they say that the
 lyrics is normally written below the staff. To get it above the staff you
 would have to do some overrides.

 In the code you can see the commented lines, which are part of all the
 tries I have done, but nothing seems to help. To me it almost looks as if
 the behaviour is hard coded, just because of putting the lyrics between the
 staves is the normal. After an experience like this I feel strengthened in
 a thought, grown in my head, that LilyPond will never ever be a tool for
 everybody. It is too complicated and inconsistent to be used by anybody
 else than the absolute top expert. Which is a pity, as it produces an
 excellent result.

 This is the result of my efforts so far:

 \version 2.18.2

 \paper { ragged-right = ##t }

 mA = \relative c' { c4 d e f }
 mB = \relative c'' { g4 a b c }
 mC = \relative c' { c'4 b a8 g f4 }
 mAB = \relative c' { c4 d e f g4 a b c }

 tA = \lyricmode { A B C D }
 tB = \lyricmode { E F G H }
 tC = \lyricmode { i j k l m }
 tAB = \lyricmode { A B C D E F G H }

 xA = { s1*1 \break }
 xB = { s1*1 }
 xC = { s1*1 }

 \score {
   \new ChoirStaff
   
 \new Staff = sAB {
   
 \new Voice = vAB { \mAB }
 {
   \new Voice = vA { \xA }
   
 \new Voice = vB { \xB }
 \new Staff = sC {
   \new Voice = vC { \mC }
 }
   
 }
   
 }
 \new Lyrics = lAB \lyricsto vAB { \tAB }
 \new Lyrics = lC \with {
 % alignBelowContext = #sC
 % \override VerticalAxisGroup #'staff-affinity = #UP
 }
 { \lyricsto vC { \tC } }
   

   \layout { indent = #0 }
 }

 *which produces this:*
 [image: --- (Image from LilyPond) ---]
 /Kaj


I think LilyPond is just getting confused by all the nested voices/staves.
As Phil suggested, a little restructuring of your example score can bring a
nice solution to light:

\version 2.18.2

mA = \relative c' {
  c4 d e f | \break
  g a b c
}
mB = \relative c'' {
  s1 |
  c4 b a8 g f4
}
tA = \lyricmode { A B C D E F G H }
tB = \lyricmode { i j k l m }

\score {
  \new ChoirStaff 
\new Staff {
  \new Voice = vA \mA
}
\new Lyrics \lyricsto vA \tA
\new Staff \with {
  \RemoveEmptyStaves
  \override VerticalAxisGroup.remove-first = ##t
}{
  \new Voice = vB \mB
}
\new Lyrics \lyricsto vB \tB
  
  \layout {
indent = 0
  }
}

There are a few things I'd point out:

   1. All \new Staff declarations are only within the ChoirStaff
   2. Each staff gets its own voice and the second voice gets a spacer rest
   before its notes.
   3. The second staff's empty measures are removed via two overrides
   \RemoveEmptyStaves and \override VerticalAxisGroup.remove-first = ##t
   4. Each set of Lyrics is placed immediately after its staff so there is
   no need to direct it above or below anything

I hope that this provides a clearer logic to how to construct a score that
is quite obvious to what's happening (to the user) and relatively
mistake-proof in interpretation (for LilyPond).

Regards,
Abraham




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Putting-lyrics-below-its-staff-tp176837p176853.html
Sent from the User mailing list archive at Nabble.com.___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Re: Putting lyrics below its staff?

2015-05-21 Thread Kaj Persson


On 2015-05-21 15:30, tisimst wrote:

Kaj,

On Thu, May 21, 2015 at 2:05 AM, Kaj [via Lilypond] [hidden email] 
/user/SendEmail.jtp?type=nodenode=176853i=0 wrote:


I am working on a piece of choir music. It consists of two parts,
the first of which is written on one staff, and the second two
staves. The upper staff in part two is a continuation of the staff
in part one. All the staves are accompanied with lyrics. My wish
is that this lyrics should be written below its respective staff.
However, whatever I do, the lyrics for the lower staff in part
two, which I denote C, is written above the staff, hence directly
below the lyrics for the upper staff (B). I suspect there should
be a simple solution for this, and in the handbook they say that
the lyrics is normally written below the staff. To get it above
the staff you would have to do some overrides.

In the code you can see the commented lines, which are part of all
the tries I have done, but nothing seems to help. To me it almost
looks as if the behaviour is hard coded, just because of putting
the lyrics between the staves is the normal. After an experience
like this I feel strengthened in a thought, grown in my head, that
LilyPond will never ever be a tool for everybody. It is too
complicated and inconsistent to be used by anybody else than the
absolute top expert. Which is a pity, as it produces an excellent
result.

This is the result of my efforts so far:

\version 2.18.2

\paper { ragged-right = ##t }

mA = \relative c' { c4 d e f }
mB = \relative c'' { g4 a b c }
mC = \relative c' { c'4 b a8 g f4 }
mAB = \relative c' { c4 d e f g4 a b c }

tA = \lyricmode { A B C D }
tB = \lyricmode { E F G H }
tC = \lyricmode { i j k l m }
tAB = \lyricmode { A B C D E F G H }

xA = { s1*1 \break }
xB = { s1*1 }
xC = { s1*1 }

\score {
  \new ChoirStaff
  
\new Staff = sAB {
  
\new Voice = vAB { \mAB }
{
  \new Voice = vA { \xA }
  
\new Voice = vB { \xB }
\new Staff = sC {
  \new Voice = vC { \mC }
}
  
}
  
}
\new Lyrics = lAB \lyricsto vAB { \tAB }
\new Lyrics = lC \with {
% alignBelowContext = #sC
% \override VerticalAxisGroup #'staff-affinity = #UP
}
{ \lyricsto vC { \tC } }
  

  \layout { indent = #0 }
}

/which produces this:/

/Kaj


I think LilyPond is just getting confused by all the nested 
voices/staves. As Phil suggested, a little restructuring of your 
example score can bring a nice solution to light:


\version 2.18.2

mA = \relative c' {
  c4 d e f | \break
  g a b c
}
mB = \relative c'' {
  s1 |
  c4 b a8 g f4
}
tA = \lyricmode { A B C D E F G H }
tB = \lyricmode { i j k l m }

\score {
\new ChoirStaff 
\new Staff {
\new Voice = vA \mA
}
\new Lyrics \lyricsto vA \tA
\new Staff \with {
\RemoveEmptyStaves
\override VerticalAxisGroup.remove-first = ##t
}{
\new Voice = vB \mB
}
\new Lyrics \lyricsto vB \tB

\layout {
indent = 0
  }
}

There are a few things I'd point out:

 1. All \new Staff declarations are only within the ChoirStaff
 2. Each staff gets its own voice and the second voice gets a spacer
rest before its notes.
 3. The second staff's empty measures are removed via two overrides
\RemoveEmptyStaves and \override VerticalAxisGroup.remove-first = ##t
 4. Each set of Lyrics is placed immediately after its staff so there
is no need to direct it above or below anything

I hope that this provides a clearer logic to how to construct a score 
that is quite obvious to what's happening (to the user) and relatively 
mistake-proof in interpretation (for LilyPond).


Regards,
Abraham


View this message in context: Re: Putting lyrics below its staff? 
http://lilypond.1069038.n5.nabble.com/Putting-lyrics-below-its-staff-tp176837p176853.html
Sent from the User mailing list archive 
http://lilypond.1069038.n5.nabble.com/User-f3.html at Nabble.com.


Phil and Abraham

Thank you for your comments, and for the example showing a solution to 
my problem. At least it solves this much simplified example. However I 
get an impression it being a fix for just this, so I made an, a wee 
more complicated, but never the less much realistic example. Sorry, of 
course it will occupy a lot of valuable space on this mailing list, but 
to illustrate my thought I see no other way to go. It shows a case with 
several regions with note systems containing more than one staff, but 
with regions between them with just one staff. Generally there could of 
course also be a base system with a number of staves, more than one, 
which is expanded with excess staves. It follows a quite simple 
algorithm, inspired