Re: Vertically centering lyrics between two staves?
Thank you Carl, that is a perfect example. For me, the gap on the right hand side because of the forced break breaks the flow. Also takes up more space. If I force breaks it is ok, but I prefer compact music. Sounds like we are working on something similar, Carl. I'm porting the Reactor Core Hymn repository http://hymns.reactor-core.org/ over to http://beautifulhymns.org/ Right now I'm doing what you're doing, but I'm switching over to using a LISP framework with Django templates. The LISP framework lets me print out the 4 parts separately, and generate music separately, etc. One thing I'm tackling is this: for MIDI output, on some verses you want two notes, because the word has two phrases, but in other verses you want to respect the tie between two notes because there is just one phrase. So in the music, I insert some of my own codes that are interpreted by the LISP framework: (tie print 1 3) Would insert the ~ tie into the notes at that point, but only in the PDF output, and stanzas 1 and 3 of the MIDI output. (tie) by itself just inserts ~ tie in all stanzas and the print output. I also added syntactic sugar for slur and triplet (slur a b c) (triplet a b c) generate the correct output. I realized the need for this LISP framework when I got to some of the 5 part hymns in the Cantus Christi hymnal. By 5 part, I mean they would have 4 verses with refrain then another four verses with a different refrain... and another two verses to finish off! And different melodies in each part. And I wanted to automate the Sacred Harp hymns as well. And stuff as simple as intros and outros. Why go to all this trouble? So that a change to the source will show up in all generated outputs, the PDF file, the full MIDI file, the MIDI file for each individual part, etc. As someone who doesn't play a musical instrument, I found it very hard to follow along when virtuosic performers didn't follow the notes too closely. Having the printed music and the audible music matching perfectly really helps me with singing. Ted On 20 August 2013 20:46, Carl Peterson carlopeter...@gmail.com wrote: On Tue, Aug 20, 2013 at 6:02 PM, Eluze elu...@gmail.com wrote: Ted Walther wrote Another problem with that snippet is the amount to drop. With a good centering command, it is centered. But if I alter the font size, etc, the amount of raising and dropping needed to center the lyrics will alter. How can I predict that without a lot of kludgy code? Again, I'm generating lilypond code from templates. I can compensate for some complexity, but the simpler the better. it would be easier to talk about a real example - can you provide a scan or similar of what you'd like to get!? thanks Eluze See the refrain in http://www.hymnary.org/page/fetch/WASH1957/264/low for an example of what Ted's talking about. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to force a superfluous CombineTextScript to be printed?
Thanks Ian, I'll try that. -- View this message in context: http://lilypond.1069038.n5.nabble.com/How-to-force-a-superfluous-CombineTextScript-to-be-printed-tp149514p149574.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
How to tweak/override the individual Glissando objects in a chord?
Hello all, sorry for the frequent posting but I'm learning a lot! Here is a small example: /\relative c' { a'' b c1 \glissando c, d e1 }/ If I wanted to modify those glissando lines (e.g. move one of them slightly lower), how would I go about doing that without affecting the other two? /\relative c''' { \once \override Glissando.extra-offset = #'(0 . -1) a'' bes c1 \glissando c, d e1 } / affects all of them (of course), as does: /a'' bes c1 -\tweak extra-offset #'(0 . -1) \glissando c, d e1/ /a'' \tweak extra-offset #'(0 . -1) bes c1 \glissando c, d e1/ moves the note itself, but /a'' \tweak Glissando.extra-offset #'(0 . -1) bes c1 \glissando c, d e1/ has no effect. What is the correct syntax for accessing the individual Glissando lines separately? Cheers everyone! Dominic -- View this message in context: http://lilypond.1069038.n5.nabble.com/How-to-tweak-override-the-individual-Glissando-objects-in-a-chord-tp149575.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: How to tweak/override the individual Glissando objects in a chord?
Hi, 2013/8/21 Dominic dominicirv...@gmail.com: Hello all, sorry for the frequent posting No problem! I've noticed that you write excellent descriptive email subjects - that's very good (and that's why i looked at this email) :) Here is a small example: /\relative c' { a'' b c1 \glissando c, d e1 }/ If I wanted to modify those glissando lines (e.g. move one of them slightly lower), how would I go about doing that without affecting the other two? Unfortunately there is no user-level syntax for this - you have to write a Scheme function that will hook into formatting process. Fortunately, i found an example (in Lily's regression tests http://www.lilypond.org/doc/v2.17/input/regression/collated-files.html) and was easy to modify it to do what you want: \relative c' { \once \override Voice.Glissando.extra-offset = #(lambda (grob) (if (= 1 (ly:grob-property grob 'glissando-index)) '(0.8 . 0.3) '(0 . 0))) a'' b c1 \glissando c, d e1 } best, Janek ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Combining graphics and text in one stencil?
David Kastrup wrote: It's called interpret-markup and you obviously need layout and props for it. One variant that gets them itself from a grob is grob-interpret-markup. Thank you. It was right under my nose but I didn't understand it; and now I do. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to tweak/override the individual Glissando objects in a chord?
2013/8/21 Janek Warchoł janek.lilyp...@gmail.com: Hi, 2013/8/21 Dominic dominicirv...@gmail.com: Hello all, sorry for the frequent posting No problem! I've noticed that you write excellent descriptive email subjects - that's very good (and that's why i looked at this email) :) Here is a small example: /\relative c' { a'' b c1 \glissando c, d e1 }/ If I wanted to modify those glissando lines (e.g. move one of them slightly lower), how would I go about doing that without affecting the other two? Unfortunately there is no user-level syntax for this - you have to write a Scheme function that will hook into formatting process. Fortunately, i found an example (in Lily's regression tests http://www.lilypond.org/doc/v2.17/input/regression/collated-files.html) and was easy to modify it to do what you want: \relative c' { \once \override Voice.Glissando.extra-offset = #(lambda (grob) (if (= 1 (ly:grob-property grob 'glissando-index)) '(0.8 . 0.3) '(0 . 0))) a'' b c1 \glissando c, d e1 } best, Janek Hi Dominic, below a more elaborated function I made some time ago (version 2.15.39), still working up to 2.17.24. It uses 'glissando-index like the regtest Janek mentioned already. Using 2.17.24 you'll see a padding/collision-issue even with the untweaked glissando. Probably a bug. \version 2.15.39 #(define (radians-degree radians) (/ (* radians 180) PI)) #(define ((gliss-plus-text padding text) grob) (let* ((text-stencil (grob-interpret-markup grob text)) (spanner-stencil (ly:line-spanner::print grob)) (left-bound-info (ly:grob-property grob 'left-bound-info)) (y-left (cdar left-bound-info)) (right-bound-info (ly:grob-property grob 'right-bound-info)) (y-right (cdar right-bound-info)) (slant (if ( y-right y-left) 1 -1)) (spanner-stencil-x-length (interval-length (ly:stencil-extent spanner-stencil X))) (spanner-stencil-y-length (interval-length (ly:stencil-extent spanner-stencil Y))) (alpha (radians-degree (atan (/ spanner-stencil-y-length spanner-stencil-x-length (spanner-center-X (interval-center (ly:stencil-extent spanner-stencil X))) (label-center-X (interval-center (ly:stencil-extent text-stencil X (ly:stencil-combine-at-edge spanner-stencil Y UP (ly:stencil-translate (ly:stencil-rotate text-stencil (* slant alpha) 0 0) (cons (- spanner-center-X label-center-X) 0)) (+ (* -0.5 spanner-stencil-y-length) padding glissTweak = #(define-music-function (parser location lst)(pair?) #{ \once \override Glissando #'after-line-breaking = #(lambda (grob) (let ((gliss-count (ly:grob-property grob 'glissando-index))) (map (lambda (x) (let ((gliss-nmbr (car x)) (property-value-alist (cdr x))) (if (eq? gliss-nmbr gliss-count) (map (lambda (y) (ly:grob-set-property! grob (car y) (cdr y))) property-value-alist) #f))) ; $lst))) % for Version 2.14.2 lst))) $(make-music 'EventChord 'elements (list (make-music 'GlissandoEvent))) #}) tweakedGliss = { \once \override Glissando #'minimum-length = #8 \once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods } \relative c' { \override TextScript #'font-size = #-2 c e g bes d2\glissando^\no tweaks\ d, a' fis' c' e' \tweakedGliss \glissTweak #`((0 . ((color . ,red) (normalized-endpoints . (0 . 0.8)) (stencil . ,(gliss-plus-text -1.8 (markup #:italic #:fontsize -8 gliss.) (1 . ((style . zigzag))) (2 . ((style . trill) (color . (0.5 0.5 0.5 (3 . ((style . dashed-line))) (4 . ((stencil . ,(gliss-plus-text 0 (markup #:italic #:fontsize -8 gliss.))) (normalized-endpoints . (0 . 0.7)) (color . ,green c' e g bes d2^\some tweaks\ d, a' fis' c' e' \once \override Glissando #'(bound-details right arrow) = ##t \glissTweak #`((0 . ((style . dashed-line) (normalized-endpoints . (0 . -2.1 (1 . ((stencil . #f))) (2 . ((stencil . #f))) (3 . ((stencil . #f))) (4 . ((style . dashed-line) (normalized-endpoints . (0 . -1.5) c' e g bes d2^\some other tweaks\ d, a' fis' c' e' } Please note: I merely copied and pasted it from an old file and did no revision so far, if you encounter any problem, please shout. Attached image was created with 2.15.39 HTH, Harm attachment:
a script for building multiple independent lilyponds from source
Hi all, every now and then many of us need to use different versions of LilyPond - this is especially true for developers. In fact, most developers usually want many concurrent LilyPond versions built from the source code. It was my dream for more than a year to automate the process of compiling custom LilyPonds from source code in a way that would allow to use these versions completely independently, and at the same time have them linked together. I think that i've finally succeeded - attached is a script (build-lily.sh) that does just this. I think that the script should be user-friendly enough to enable non-developers easily build custom (i.e. unreleased) versions of lilypond for themselves, without having to learn Git or any such things - you just need to run a script, and then you can make this new lilyponds available to Frescobaldi. (Unfortunately LilyPond cannot be built on Windows, you need Linux for that - but you could install one in a virtual machine). Detailed instructions are in the scrpit itself, you can see them by running the script with '-h' option. This script has proven itself very helpful in my daily lilypond work - that's why i decided to share it with you. Of course, i recommend that non-technical users wait until experienced developers check if i hadn't made any mistakes :) cheers, Janek PS for those that don't have a clone of LilyPond source code yet, you can use attached grab-lily-sources.sh (it's written for Ubuntu, Debian and other systems that use apt-get. Building script itself should work with any major Linux distribution). PPS you can find my repository containing this script here: https://github.com/janek-warchol/cli-tools/tree/master/lilypond (pull requests welcome). grab-lily-sources.sh Description: Bourne shell script build-lily.sh Description: Bourne shell script ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
question about multiple parts
Greetings, I'm writing another article about the state of music notation software on Linux, and I decided to score some of my older pieces as focus projects. I'm using the Frescobaldi program on Ubuntu 12.04, everything is going very nicely but I do have an important question. I transcribed parts for a trio one by one, i.e. I scored the flute, bassoon, and guitar parts separately, and I'd now like to conjoin them into a single score. Is there a nice easy way to do that, maybe with something like #include files ? I'll be happy if someone can just point me in the right direction in the documentation (which I still find rather confusing, btw). I also want to take a moment to thank everyone involved with LilyPond and its helpers. In my opinion LP is one of the finest projects in the free software world, an outstanding example of collaboration and contribution. Best regards, Dave Phillips ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: question about multiple parts
On 21 août 2013, at 15:11, Dave Phillips dlphill...@woh.rr.com wrote: Greetings, I'm writing another article about the state of music notation software on Linux, and I decided to score some of my older pieces as focus projects. I'm using the Frescobaldi program on Ubuntu 12.04, everything is going very nicely but I do have an important question. I transcribed parts for a trio one by one, i.e. I scored the flute, bassoon, and guitar parts separately, and I'd now like to conjoin them into a single score. Is there a nice easy way to do that, maybe with something like #include files ? I'll be happy if someone can just point me in the right direction in the documentation (which I still find rather confusing, btw). * flute.ly * flute = \relative c'' { a1 } * oboe.ly * oboe = \relative c'' { a1 } * full-score.ly * \include flute.ly \include oboe.ly \new Staff \flute \new Staff \oboe ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: question about multiple parts
And don't forget the closing angled brackets that may have been swallowed by email. Mike Solomon m...@mikesolomon.org schrieb: On 21 août 2013, at 15:11, Dave Phillips dlphill...@woh.rr.com wrote: Greetings, I'm writing another article about the state of music notation software on Linux, and I decided to score some of my older pieces as focus projects. I'm using the Frescobaldi program on Ubuntu 12.04, everything is going very nicely but I do have an important question. I transcribed parts for a trio one by one, i.e. I scored the flute, bassoon, and guitar parts separately, and I'd now like to conjoin them into a single score. Is there a nice easy way to do that, maybe with something like #include files ? I'll be happy if someone can just point me in the right direction in the documentation (which I still find rather confusing, btw). * flute.ly * flute = \relative c'' { a1 } * oboe.ly * oboe = \relative c'' { a1 } * full-score.ly * \include flute.ly \include oboe.ly \new Staff \flute \new Staff \oboe ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to tweak/override the individual Glissando objects in a chord?
2013/8/21 Thomas Morley thomasmorle...@gmail.com: Hi Dominic, [...] Using 2.17.24 you'll see a padding/collision-issue even with the untweaked glissando. Probably a bug. Issue 2942 http://code.google.com/p/lilypond/issues/detail?id=2942 -Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: multiple versions on Linux
Hi, 2013/7/24 bblo...@arcor.de: Provided is the unpacked source of the lilypond version to be installed. A descripton of the steps to install lilypond one finds in INSTALL.txt. More infos one may find at http://lilypond.org/doc/v2.17/Documentation/contributor-big-page#compiling. Every version will be installed in a specific directory, say i. e. in a directory with the version number. Makes sense beccause one remebers and finds it easily. (Any directory name is possible as long as it is not already present in the home directory.) Assumed, that one compiles from the subdirectory build the first step is I'm not sure what exactly did you mean, but i think that this thread may be interesting to you: http://lists.gnu.org/archive/html/lilypond-user/2013-08/msg00548.html best, Janek ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
currentBarnumber in layout?
Hi, playing around with some code to answer a request about setting BarNumber for the first measure at the german lilypond forum http://www.lilypondforum.de/index.php?topic=1529.0 I've found: \version 2.17.24 \layout { \context { \Score currentBarNumber = #10 } } \new Staff \relative c' { \bar \repeat unfold 10 { c'1 \break } } My naive expectation was that _every_ BarNumber would get value 10. Though, it works. Is this a recommended use? If yes should it be mentioned somewhere in the docs? Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: shiftDuration and partial
2013/7/29 David Kastrup d...@gnu.org: Urs Liska u...@openlilylib.org writes: Am 29.07.2013 17:26, schrieb Stjepan Horvat: hi guys..di you realize that shiftDuration doesn't convert the partial part..?! is this a bug? for example: \shiftDuration #1 #0 { c4 d e f } - c8 d e f but \shiftDuration #1 #0 { \partial 4 c4 d e f } - c8 d | f g I'm not sure, but I think that \partial 4 isn't technically a duration such as c4 or r4. If that's right it wouldn't be a but but a limitation. It is technically a duration, but it is stored in a partial-duration music property instead of a duration property and thus is not affected by scaling. Which seems somewhat weird. I was going to file a bug report (as there was no visible follow-up to this thread), but i found that you'd fixed this issue already - thanks :) Janek ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: question about multiple parts
Hi Urs, hi Mike, On 08/21/2013 08:25 AM, Urs Liska wrote: And don't forget the closing angled brackets that may have been swallowed by email. Which indeed were annihilated by email. Thanks for the reminder. :) Mike, thanks for clear example, I'll try it this afternoon. Best, dp ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: currentBarnumber in layout?
Le 21/08/2013 15:05, Thomas Morley disait : Hi, playing around with some code to answer a request about setting BarNumber for the first measure at the German lilypond forum http://www.lilypondforum.de/index.php?topic=1529.0 I've found: \version 2.17.24 \layout { \context { \Score currentBarNumber = #10 } } \new Staff \relative c' { \bar \repeat unfold 10 { c'1 \break } } My naive expectation was that _every_ BarNumber would get value 10. Though, it works. Is this a recommended use? If yes should it be mentioned somewhere in the docs? It is mentioned in NR-1.2.5 Bars (unnumbered Bar numbers). Very useful with vocal materials where, for instance, the count is reset on an act basis. What I usually do is setting the counter in a global variable, like this: %% Act I - 6 military symphony global = { \time 3/4 \key c \major \set Score.currentBarNumber = #210 \skip 2. * 35 \bar || } Cheers, Jean-Charles ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: multiple versions on Linux
There are two linux distributions which make it very easy to have multiple verisons: - nixos.org linux - this also allows to build from source very very easily. lilypond has been packaged - thus getting more versions should be pretty straightforward. - gobolinux If you're interested in nixos.org linux I can assist Marc Weber ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
explicit 7 on a half diminished 7
For the life of me I cannot figure this out. I would like the following example to explicitly include the 7. Is there a way to change the way it handles half diminished 7ths? EXAMPLE \chords { c4:7.9- c:7.9-/g \set slashChordSeparator = \markup { over } \break c4:7.9- c:7.9-/g } Derek ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: explicit 7 on a half diminished 7
2013/8/22 Derek Klinge schilke...@gmail.com: For the life of me I cannot figure this out. I would like the following example to explicitly include the 7. Is there a way to change the way it handles half diminished 7ths? EXAMPLE \chords { c4:7.9- c:7.9-/g \set slashChordSeparator = \markup { over } \break c4:7.9- c:7.9-/g } Derek Hi Derek, I don't understand what you want to achieve. Chordnames are printed in several different manners. Could you provide a scan/link. Cheers, Harm Btw, which version do you use? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: explicit 7 on a half diminished 7
Derek Klinge schilke...@gmail.com writes: For the life of me I cannot figure this out. I would like the following example to explicitly include the 7. Is there a way to change the way it handles half diminished 7ths? EXAMPLE \chords { c4:7.9- c:7.9-/g \set slashChordSeparator = \markup { over } \break c4:7.9- c:7.9-/g } On my machine, using Lilypond version 2.17.22, and copying your code exactly, I get explicit 7 everywhere; all four examples have C7b9 (plus /G for one of them, and plus over G for another one) ... or did you mean your request in a different way? (By the way - Is a Schilke 60 for trombone or tuba?) -- David R ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user