Re: How to tie the last note of one variable to the first note of another variable?
On 24 January 2011 07:53, Jürgen Ibelgaufts juri...@gmx.de wrote: hi, maybe I'm missing something. I did not try your solution, but I suppose it works fine. but how would you append lyrics? \addlyrics gives a syntax error (unexpected \addlyrics), and \lyricsto requires different named voice contexts in which I could not get your solution to work. Why different named voice contexts? I use a single voice, I can use a single Lyrics \lyricsto . This works fine: \version 2.13.46 partOne = \relative c' { c4 e g e~ } partTwo = \relative c' { e1 c4 e g e~ e1 } versePartOne = \lyricmode { ta ra ta taa } versePartTwo = \lyricmode { tu ru tu tuu } \score { \new Staff { \tempo 4 = 120 \new Voice = melody { \partOne \partTwo } } \new Lyrics \lyricsto melody { \versePartOne \versePartTwo } \midi { } \layout {} } Cheers, Xavier -- Xavier Scheuer x.sche...@gmail.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Bug in ties over barlines
- Original Message - From: Jan Warchoł lemniskata.bernoulli...@gmail.com I don't agree. *Theoretically* accidental is not needed, but if it would be omitted, how can you tell the difference between aes~ | aes and aes( | a) ? In my opinion accidental here is necessary (surely it may be parenthesized). If it's necessary, it should be printed automatically in my opinion. cheers, Janek If you use #(set-accidental-style 'modern-cautionary) then you get the parenthesised accidental automatically, as requested. -- Phil Holmes ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics in a markup
Hi 2011/1/23 jakob lund jakob.be...@gmail.com: 2011/1/23 Jan-Peter Voigt jp.vo...@gmx.de: Hello and thank you Jakob, hello list, this piece is a great work. It compiles well in 2.13(.47 lilybuntu) and adds a very useful function to lily! The .ly is attached again, because I think it is good to have it on the devel-list. I would like to add it to LSR to have it in the main distro once. But it doesn't compile in 2.12(.3) stable, so it can't be uploaded right now. What else should we do now? Lilypond 2.12 complains about these lines: ... #(define-markup-command (verse layout props lyrics) (ly:music?) #:properties ((display-nl #f) (make-line make-justify-markup)) ... by the way: Is this #:properties(()) notation a new functionality in 2.13? I haven't seen it before? You're probably right about the #:properties syntax -- it should be easy enough to swap make-line and display-nl with their default values (make-justify-markup resp. #f) in the macro code to make it compile in 2.12 (which I don't have installed so I'm not gonna test it) ... ? I realized I had 2.12 installed as well.. After removing the #:properties stuff and adding { } to \addlyrics, the new version compiles in both 2.12 and 2.13 (the markup looks better in the 2.12 version though; seems that in 2.13, the lines are a little too close?) Cheers Jakob. % \version 2.13 #(define linebreakindicator \\) % \nl command that inserts the placeholder event into a lyrics nl = #(make-music 'LineBreakEvent) %% Function to extract strings from lyrics. % #(define (lyrics-list lyrics) Return only syllables and hyphens from @code{lyrics}. (if (ly:music? lyrics) (cond ((eq? (ly:music-property lyrics 'name) 'LyricEvent) (ly:music-property lyrics 'text)) ((eq? (ly:music-property lyrics 'name) 'HyphenEvent) (list --)) ((eq? (ly:music-property lyrics 'name) 'LineBreakEvent) (list linebreakindicator)) (else (let ((elt (ly:music-property lyrics 'element)) (elts (ly:music-property lyrics 'elements))) (if (ly:music? elt) (lyrics-list elt) (if (null? elts) '() (map (lambda(x) (lyrics-list x)) elts) ) '())) #(define (flatten-nonmarkup-list x) Unnest list, but don't flatten markup constructs! (cond ((null? x) '()) ((not (pair? x)) (list x)) (else (append (if (markup? (car x)) (list (car x)) (flatten-nonmarkup-list (car x))) (flatten-nonmarkup-list (cdr x)) #(define (reduce-hyphens text) (let eat ((wd (car text)) (wds (cdr text))) (cond ((null? wds) (list wd)) ((and (equal? -- (car wds)) (not (null? (cdr wds (eat (markup #:concat (wd (cadr wds))) (cddr wds))) (else (cons (markup wd) (eat (car wds) (cdr wds))) #(define (split-on predicate? l) (let loop ((h '()) (r l)) (cond ((null? r) (if (null? h) h (list (reverse h ((predicate? (car r)) (if (null? h) (loop h (cdr r)) (cons (reverse h) (loop '() (cdr r) (else (loop (cons (car r) h) (cdr r)) #(define-markup-command (verse layout props lyrics) (ly:music?) ; #:properties ((display-nl #f) ;(make-line make-justify-markup)) Verse command that marks up a column of \\nl-separated lines (let* ( ;; The first three associations replace the two commented ;; lines above in a (presumably?) 2.12-compatible way... (property (lambda (key default) (let ((a (assoc key (apply append props (if (-bool a) (cdr a) default (display-nl (property 'display-nl #f)) (make-line (property 'make-line make-justify-markup)) (split-cond? (lambda (a) (and (not display-nl) (equal? a linebreakindicator (list-of-lines (map (lambda (l) (make-line (reduce-hyphens l))) (split-on split-cond? (flatten-nonmarkup-list (lyrics-list lyrics) ) (interpret-markup layout props (make-column-markup list-of-lines))) ) test = \lyricmode{ Du lil -- le \markup \italic fis -- \markup \italic ker \nl Du \markup \italic lil -- \markup \italic le fis -- ker } %{ \new Voice = mel \relative c'' { \partial 4. g8 a g e c r4 r8 g' a g | f d} \new Lyrics \lyricsto mel \test %}
Re: How to start translate documents without running autoconf.sh
Hi Ben, I translated priority 1 files to Chinese. That's just great; thanks! How can I submit to key person? I can not find the way. Please send them to Francisco and read the contributor's guide; and please send any questions you may have. This may be just in time to have a Chinese website for our 2.14 release -- that's worth an item in Changes I think. Welcome aboard as a translator! Jan. -- Jan Nieuwenhuizen jann...@gnu.org | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.nl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics in a markup
Hi Jakob, hello list, I was about to answer with my 2.12-version ;-) It is essentially like your version (using let and assoc props ...) but yours is open for override extension ... Now its posted to LSR and has to be approved. Best regards and cheers! Jan-Peter On 24.01.2011 10:35, jakob lund wrote: Hi ... I realized I had 2.12 installed as well.. After removing the #:properties stuff and adding { } to \addlyrics, the new version compiles in both 2.12 and 2.13 (the markup looks better in the 2.12 version though; seems that in 2.13, the lines are a little too close?) Cheers Jakob. \version 2.12.3 #(define linebreakindicator \\) % \nl command that inserts the placeholder event into a lyrics nl = #(make-music 'LineBreakEvent) %% Function to extract strings from lyrics. % #(define (lyrics-list lyrics) Return only syllables and hyphens from @code{lyrics}. (if (ly:music? lyrics) (cond ((eq? (ly:music-property lyrics 'name) 'LyricEvent) (ly:music-property lyrics 'text)) ((eq? (ly:music-property lyrics 'name) 'HyphenEvent) (list --)) ((eq? (ly:music-property lyrics 'name) 'LineBreakEvent) (list linebreakindicator)) (else (let ((elt (ly:music-property lyrics 'element)) (elts (ly:music-property lyrics 'elements))) (if (ly:music? elt) (lyrics-list elt) (if (null? elts) '() (map (lambda(x) (lyrics-list x)) elts) ) '())) #(define (flatten-nonmarkup-list x) Unnest list, but don't flatten markup constructs! (cond ((null? x) '()) ((not (pair? x)) (list x)) (else (append (if (markup? (car x)) (list (car x)) (flatten-nonmarkup-list (car x))) (flatten-nonmarkup-list (cdr x)) #(define (reduce-hyphens text) (let eat ((wd (car text)) (wds (cdr text))) (cond ((null? wds) (list wd)) ((and (equal? -- (car wds)) (not (null? (cdr wds (eat (markup #:concat (wd (cadr wds))) (cddr wds))) (else (cons (markup wd) (eat (car wds) (cdr wds))) #(define (split-on predicate? l) (let loop ((h '()) (r l)) (cond ((null? r) (if (null? h) h (list (reverse h ((predicate? (car r)) (if (null? h) (loop h (cdr r)) (cons (reverse h) (loop '() (cdr r) (else (loop (cons (car r) h) (cdr r)) #(define-markup-command (verse layout props lyrics) (ly:music?) Verse command that marks up a column of \\nl-separated lines (let ((display-nl (chain-assoc-get 'display-nl props #f)) (make-line (chain-assoc-get 'make-line props make-justify-markup))) (let* ((split-cond? (lambda (a) (and (not display-nl ) (equal? a linebreakindicator (list-of-lines (map (lambda (l) (make-line (reduce-hyphens l))) (split-on split-cond? (flatten-nonmarkup-list (lyrics-list lyrics) ) (interpret-markup layout props (make-column-markup list-of-lines))) )) test = \lyricmode { Du lil -- le \markup \italic fis -- \markup \italic ker \nl Du \markup \italic lil -- \markup \italic le fis -- ker } textA = \lyricmode { \set stanza = 1. Toch -- ter __ Zi -- on, freu -- e dich, \nl jauch -- ze laut, Je -- ru -- sa -- lem. \nl Sieh, __ dein Kö -- nig kommt zu dir, \nl ja, __ er kommt, der Frie -- de -- fürst. \nl Toch -- ter Zi -- on, freu -- e dich, \nl jauch -- ze laut, Je -- ru -- sa -- lem. } \bookpart { \score { \relative c'' { \partial 4. g8 a g e c r4 r8 g' a g | f d r4 } \addlyrics { \test } } \markup { \line { \bold { With line breaks (no overrides) } } } \markup { \verse #test } \markup { \line { \bold { With visible line break character } } } \markup { \override #'(display-nl . #t) \verse #test } \score { \relative c'' { \time 2/2 \key ees \major \dynamicUp \autoBeamOff bes2 g4.( aes8) | bes2 ees, | f8([ g aes bes] aes4) g | f1 | g8([ aes bes c] bes4) bes | ees2 bes | aes4( g8[ aes] f4.) ees8 | ees2. r4 | g8([ f g aes] g4) g | f2 ees | aes4( g f) ees | d1 | ees8([ d ees f] ees4) ees | c'2 a! | bes4( c8[ bes] a!4.) bes8 | bes2.\ r4\! | bes2 g4.( aes8) | bes2 ees, | f8([ g aes bes] aes4) g | f1 |
Re: Using lyrics in a markup
Hi, On 24.01.2011 13:22, jakob lund wrote: By the way, the first version (no line breaks) is here http://lsr.dsi.unimi.it/LSR/Item?id=744 might as well just update that entry if possible? This has to be done by an LSR-administrator ;-) If someone is able and willing to do this, go ahead and decide wether to take Jakobs or my version ;-) Cheers, Jan-Peter. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics in a markup
Hi 2011/1/24 Jan-Peter Voigt jp.vo...@gmx.de: Hi Jakob, hello list, I was about to answer with my 2.12-version ;-) It is essentially like your version (using let and assoc props ...) but yours is open for override extension ... Why? The only difference (AFAICT) is that you did the clever thing and used chain-assoc-get instead of reinventing the wheel like I did... I oughtta have guessed there was already a function to do that :-) another question: This snippet is mostly your work, but I posted it to LSR with my name. Shall I add a text: created by Jakob Lund or something similar? No, never mind... And in fact, Marc wrote the first bit, if you look up the thread :-) Cheers Jakob. Now its posted to LSR and has to be approved. Best regards and cheers! Jan-Peter On 24.01.2011 10:35, jakob lund wrote: Hi ... I realized I had 2.12 installed as well.. After removing the #:properties stuff and adding { } to \addlyrics, the new version compiles in both 2.12 and 2.13 (the markup looks better in the 2.12 version though; seems that in 2.13, the lines are a little too close?) Cheers Jakob. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics in a markup
I've slightly lost the plot of what's needed here. There's http://lsr.dsi.unimi.it/LSR/Item?id=744 which I think could be edited for the new improvements, and there's an improved version waiting for approval. Please let me know if the old version is to be edited or deleted, and whether the new version should be approved. -- Phil Holmes ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics in a markup
Hello Phil, I posted the improved version this morning with a bit more text about the possible overrides. So you can approve that and delete the old one or copy either the code of the new snippet (or the attached one) to the old and delete the new one. ... huh??? OK, I try once more ;-) - Delete old snippet and approve new one or - update old snippet with code from the new one (or the attached) and delete pending new snippet. The uploaded code and the attached differ only very slightly in the verse-markup-command. (howto get override props) Cheers, Jan-Peter On 24.01.2011 15:12, Phil Holmes wrote: I've slightly lost the plot of what's needed here. There's http://lsr.dsi.unimi.it/LSR/Item?id=744 which I think could be edited for the new improvements, and there's an improved version waiting for approval. Please let me know if the old version is to be edited or deleted, and whether the new version should be approved. -- Phil Holmes \version 2.12.3 #(define linebreakindicator \\) % \nl command that inserts the placeholder event into a lyrics nl = #(make-music 'LineBreakEvent) %% Function to extract strings from lyrics. % #(define (lyrics-list lyrics) Return only syllables and hyphens from @code{lyrics}. (if (ly:music? lyrics) (cond ((eq? (ly:music-property lyrics 'name) 'LyricEvent) (ly:music-property lyrics 'text)) ((eq? (ly:music-property lyrics 'name) 'HyphenEvent) (list --)) ((eq? (ly:music-property lyrics 'name) 'LineBreakEvent) (list linebreakindicator)) (else (let ((elt (ly:music-property lyrics 'element)) (elts (ly:music-property lyrics 'elements))) (if (ly:music? elt) (lyrics-list elt) (if (null? elts) '() (map (lambda(x) (lyrics-list x)) elts) ) '())) #(define (flatten-nonmarkup-list x) Unnest list, but don't flatten markup constructs! (cond ((null? x) '()) ((not (pair? x)) (list x)) (else (append (if (markup? (car x)) (list (car x)) (flatten-nonmarkup-list (car x))) (flatten-nonmarkup-list (cdr x)) #(define (reduce-hyphens text) (let eat ((wd (car text)) (wds (cdr text))) (cond ((null? wds) (list wd)) ((and (equal? -- (car wds)) (not (null? (cdr wds (eat (markup #:concat (wd (cadr wds))) (cddr wds))) (else (cons (markup wd) (eat (car wds) (cdr wds))) #(define (split-on predicate? l) (let loop ((h '()) (r l)) (cond ((null? r) (if (null? h) h (list (reverse h ((predicate? (car r)) (if (null? h) (loop h (cdr r)) (cons (reverse h) (loop '() (cdr r) (else (loop (cons (car r) h) (cdr r)) #(define-markup-command (verse layout props lyrics) (ly:music?) Verse command that marks up a column of \\nl-separated lines (let ((display-nl (chain-assoc-get 'display-nl props #f)) (make-line (chain-assoc-get 'make-line props make-justify-markup))) (let* ((split-cond? (lambda (a) (and (not display-nl ) (equal? a linebreakindicator (list-of-lines (map (lambda (l) (make-line (reduce-hyphens l))) (split-on split-cond? (flatten-nonmarkup-list (lyrics-list lyrics) ) (interpret-markup layout props (make-column-markup list-of-lines))) )) test = \lyricmode { Du lil -- le \markup \italic fis -- \markup \italic ker \nl Du \markup \italic lil -- \markup \italic le fis -- ker } textA = \lyricmode { \set stanza = 1. Toch -- ter __ Zi -- on, freu -- e dich, \nl jauch -- ze laut, Je -- ru -- sa -- lem. \nl Sieh, __ dein Kö -- nig kommt zu dir, \nl ja, __ er kommt, der Frie -- de -- fürst. \nl Toch -- ter Zi -- on, freu -- e dich, \nl jauch -- ze laut, Je -- ru -- sa -- lem. } \bookpart { \score { \relative c'' { \partial 4. g8 a g e c r4 r8 g' a g | f d r4 } \addlyrics { \test } } \markup { \line { \bold { With line breaks (no overrides) } } } \markup { \verse #test } \markup { \line { \bold { With visible line break character } } } \markup { \override #'(display-nl . #t) \verse #test } \score { \relative c'' { \time 2/2 \key ees \major \dynamicUp \autoBeamOff
Re: Using lyrics in a markup
- Original Message - From: Jan-Peter Voigt jp.vo...@gmx.de To: Phil Holmes m...@philholmes.net Cc: jakob lund jakob.be...@gmail.com; Lilypond-User lilypond-user@gnu.org Sent: Monday, January 24, 2011 2:33 PM Subject: Re: Using lyrics in a markup Hello Phil, I posted the improved version this morning with a bit more text about the possible overrides. So you can approve that and delete the old one or copy either the code of the new snippet (or the attached one) to the old and delete the new one. ... huh??? OK, I try once more ;-) - Delete old snippet and approve new one or - update old snippet with code from the new one (or the attached) and delete pending new snippet. The uploaded code and the attached differ only very slightly in the verse-markup-command. (howto get override props) Cheers, Jan-Peter I've updated the old snippet with the new code and description. -- Phil Holmes ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to tie the last note of one variable to the first note ofanother variable?
Xavier Scheuer wrote: [...] James Bailey wrote: I haven't checked it, but they're probably in different voice contexts. Possible explicity doing a \new Voice = first and \context Voice = first where appropriate may solve the problem. Yes, or simply putting all in a \new Voice works: The idea being to obviate the implicit Voice creation? But this is surely not the whole story; reformulating the variables with absolute pitches works too. So is it due to an initial \relative messing up the automagic dataflow? And does the following snippet indicate an additional aspect? The output makes it apparent why the (first) tie might be suppressed, but I would very much like to understand what is going on here. { \relative c' b1 \partOne \partTwo b1 \partOne \partTwo } Cheers, Robinattachment: absolutelybetter.png___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to tie the last note of one variable to the first note of another variable?
Hi Xavier, I gave it a try and it seems that my thoughts were too complicated, your code looks very clean. But... in my case having \voiceOne and \voiceTwo and having them printed in different colors, things get confusing very quickly, and it seems that I still can't omit having several Voices. Many thanks for your advice anyway, it helps me getting rid of many unnecessary lines of code. Cheers Jürgen -- View this message in context: http://old.nabble.com/How-to-tie-the-last-note-of-one-variable-to-the-first-note-of-another-variable--tp30737881p30748073.html Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics in a markup
Am 24.01.2011 15:33, schrieb Jan-Peter Voigt: Hello Phil, I posted the improved version this morning with a bit more text about the possible overrides. So you can approve that and delete the old one or copy either the code of the new snippet (or the attached one) to the old and delete the new one. ... huh??? OK, I try once more ;-) - Delete old snippet and approve new one or - update old snippet with code from the new one (or the attached) and delete pending new snippet. The uploaded code and the attached differ only very slightly in the verse-markup-command. (howto get override props) Whatever - looks great! Thanks to you both, Jan-Peter and Jakob for improving this stuff, it will be very helpful for my current project! Regards, Marc Cheers, Jan-Peter On 24.01.2011 15:12, Phil Holmes wrote: I've slightly lost the plot of what's needed here. There's http://lsr.dsi.unimi.it/LSR/Item?id=744 which I think could be edited for the new improvements, and there's an improved version waiting for approval. Please let me know if the old version is to be edited or deleted, and whether the new version should be approved. -- Phil Holmes ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extender style
Am 24.01.2011 04:24, schrieb Robert Stoddard: Undoubtedly, this is a simple request for those who understand Scheme... I don't think so, see http://lists.gnu.org/archive/html/lilypond-user/2008-05/msg00254.html How can I change the lyric extender from a solid line to a dotted one? Nothing in the LSR or manuals discusses this. Digging through the sources, it looks as if the LyricExtender is hard-coded in the sources, so the is no easy way to change it, but perhaps you can (mis)use a text spanner? http://lists.gnu.org/archive/html/lilypond-user/2010-12/msg00797.html With text spanners, customized dashed lines are easily created. HTH, Marc Thanks, Robert www.bostonsing.org http://www.bostonsing.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extender style
Am 24.01.2011 21:24, schrieb Marc Hohl: [...] With text spanners, customized dashed lines are easily created. Oops, you needed dotted lines, not dashed ones ... sorry, I have no clue at the moment. HTH, Marc Thanks, Robert www.bostonsing.org http://www.bostonsing.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Understanding herd of curly braces
I have turned out a few simple jobs with LilyPond, mainly simple copying jobs just for practice and -- as a practical matter -- a few pieces that I needed to transpose into another key. However, as I look at LilyPond code generated by others, it's not obvious to me (usually near the end of a document) what each closing curly brace refers to. Am I even SUPPOSED to be able to figure that out by looking at all the closed curly braces, usually at different indentations on different lines? Are you supposed to see these things and know to what they apply in the code above? Is there a logic here that I'm missing? I am trying to figure out the logic of why the close braces (in particular) appear where they are and at a given indentation. So far there's nothing intuitive about it. Such documentation as I've been able to find at the LilyPond site and elsewhere has been of limited utility in this regard. Is this something you just learn by doing? Or can anybody help me out? Seth Williamson ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Understanding herd of curly braces
Hi Seth, It sounds as though you've not had previous exposure to programming languages where nested braces (curly and otherwise) are common. The short answer to your question is that the braces identify which pieces of text go with which command. The indentation levels are only significant in the sense that they make the file easier for humans to read. The computer doesn't care as long as the opening and closing braces are matched. Most programmers use special text editors with features that help you see which opening and closing braces belong with each other, e.g. if you put the cursor on a particular brace, the editor will highlight its mate. I won't presume to recommend a particular editor to you -- better to find a friend who's a programmer and get him/her to help you choose one and get started using it. I know this probably isn't much help, but at least it may point you in the right direction. Cheers, Mike On Mon, Jan 24, 2011 at 4:07 PM, Seth Williamson hazelmo...@gmail.com wrote: I have turned out a few simple jobs with LilyPond, mainly simple copying jobs just for practice and -- as a practical matter -- a few pieces that I needed to transpose into another key. However, as I look at LilyPond code generated by others, it's not obvious to me (usually near the end of a document) what each closing curly brace refers to. Am I even SUPPOSED to be able to figure that out by looking at all the closed curly braces, usually at different indentations on different lines? Are you supposed to see these things and know to what they apply in the code above? Is there a logic here that I'm missing? I am trying to figure out the logic of why the close braces (in particular) appear where they are and at a given indentation. So far there's nothing intuitive about it. Such documentation as I've been able to find at the LilyPond site and elsewhere has been of limited utility in this regard. Is this something you just learn by doing? Or can anybody help me out? Seth Williamson ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Understanding herd of curly braces
On Jan 24, 2011, at 10:07 PM, Seth Williamson wrote: I have turned out a few simple jobs with LilyPond, mainly simple copying jobs just for practice and -- as a practical matter -- a few pieces that I needed to transpose into another key. However, as I look at LilyPond code generated by others, it's not obvious to me (usually near the end of a document) what each closing curly brace refers to. Am I even SUPPOSED to be able to figure that out by looking at all the closed curly braces, usually at different indentations on different lines? Are you supposed to see these things and know to what they apply in the code above? Is there a logic here that I'm missing? I am trying to figure out the logic of why the close braces (in particular) appear where they are and at a given indentation. So far there's nothing intuitive about it. Such documentation as I've been able to find at the LilyPond site and elsewhere has been of limited utility in this regard. Is this something you just learn by doing? Or can anybody help me out? Seth Williamson Because this is something not limited to lilypond, the documentation in lilypond is rather scant on the subject. Editors of programs which use braces extensively usually have features to make indentation and bracket matching more transparent and easier to use. They are also usually highly modifiable, and each person learns and finds a method that works for him. There are some suggested editors for lilypond, and each of those should have some means of making understanding indentation and brackets (and matching them) more transparent and easy to understand. Most of these programs should have a way of easily jumping between matching brackets, and adjusting the indentation of a region. If you haven't yet, I highly recommend reading through the learning manual, aside from the ins and outs of how lilypond works, it also has some helpful tips on how to organize brackets and indentation in your own files. (At least, it did the last time I read it.) Hope this helps, James___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Understanding herd of curly braces
On 25/01/11 08:07, Seth Williamson wrote: I have turned out a few simple jobs with LilyPond, mainly simple copying jobs just for practice and -- as a practical matter -- a few pieces that I needed to transpose into another key. However, as I look at LilyPond code generated by others, it's not obvious to me (usually near the end of a document) what each closing curly brace refers to. Am I even SUPPOSED to be able to figure that out by looking at all the closed curly braces, usually at different indentations on different lines? Are you supposed to see these things and know to what they apply in the code above? Is there a logic here that I'm missing? I am trying to figure out the logic of why the close braces (in particular) appear where they are and at a given indentation. So far there's nothing intuitive about it. Such documentation as I've been able to find at the LilyPond site and elsewhere has been of limited utility in this regard. Is this something you just learn by doing? Or can anybody help me out? Good programming text editors will match braces for you. Position the cursor on an opening or closing brace and the editor will highlight the corresponding closing or opening brace. I like jEdit, which does this, is available on any platform that supports Java, and has a Lilypond-specific plugin (Lilypondtool). Nick ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Odd vertical spacing of lyrics
On Jan 19, 2011, at 7:25 PM, James Bailey wrote: On Jan 19, 2011, at 1:27 AM, Keith OHara wrote: … The old LilyPond collapsed everything in each system to take only the vertical space needed. For lyrics, it seems that did pretty much the right thing. The new LilyPond will spread things vertically to use the space available, which reveals her ignorance in how things are supposed to be attached. Lilypond lets us associate lyrics (for timing purposes, \lyricsto) to any voice anywhere, so to have her know whether they should go close to the next staff up or down seems to require a search for which Staff contains the associate Voice. Another approach would be to put a staff-affinity=#CENTER marker at the top and bottom of each system, so the bit of code producing that warning staff- affinities should only decrease would ensure that Lyrics have 'affinity' pointing to something within their own system. … I have been meaning to work on that centering-lyrics snippet (and will not be hurt if somebody else steals the job) to try to boil down the complicated overrides into a small useful set of predefines, so we can just say: \lyricAttachDown or \lyricsCenter or \lyricsCollapse and remain blissfully ignorant of the complexity underneath. After some fiddling, apparently, all I needed to do was add \override VerticalAxisGroup #'staff-affinity = #CENTER to the main lyrics. That solved all of my problems. I won't even pretend to understand what exactly the affinities do, but it worked for me. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user