Re: Putting lyrics below its staff?
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?
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?
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?
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?
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?
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?
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