Re: Font problem on Mac
> On Aug 27, 2023, at 11:55 PM, Werner LEMBERG wrote: > > >>>> I do not think that my Times New Roman font is corrupted. >> >> Actually, I think it is: Most likely the font's 'post' table is >> broken (i.e., it has a wrong PostScript name for glyph 'N'). >> Normally, you won't see the problem at all because most applications >> access a font's 'cmap' table (i.e., a Unicode input value gets >> mapped to a glyph index), which seems to be OK for this font. > > And indeed, I've found this thread > > https://discussions.apple.com/thread/254519584 > > which explains nicely the exact cause of your problem. > > >Werner Thanks! That explains it. David F.
Re: Pointing Aiken Fa up in partCombine
> On Aug 19, 2022, at 11:23 AM, Benjamin Bruce wrote: > > There may be examples in my older hymnals too, but I wasn't able to find any > (this seems to be something that shows up more in modern music). “Hallelujah, Praise Jehovah” (1899) has doubled Fa's in the treble and bass clefs at the beginning of bar 9. Here’s a scan from a hymnal printed in 1911. The Fa is reversed in the treble clef. https://hymnary.org/hymn/SHCW1911/page/250 > Whatever the consensus on usage may be, I would like to be able to orient > doubled Fas either way, according to the usage shown in these examples. Yes, that sounds reasonable. David F.
Re: Pointing Aiken Fa up in partCombine
> On Aug 18, 2022, at 2:15 PM, Benjamin Bruce wrote: > > Thanks for digging into this for me. Yes, both cases are necessary for > typesetting shape note hymns, as illustrated by the attached scan. I believe > the rule for this is that the notehead should be pointed up in the treble > clef, and down in the bass clef. Of the three hymnals that I have that use shaped notes, two do *not* reverse the Fa notehead in the treble clef—so Lilypond’s current output matches what those two hymnals do. Since I primarily reference one of these hymnals for the engraving I do with Lilypond, I had never seen the behavior that you are describing until you pointed it out. Now I’m wondering how representative those two hymnals are. David
Re: Change to \rest markup in 2.23
> On Jul 20, 2022, at 5:25 AM, Jean Abou Samra wrote: > > Le 20/07/2022 à 05:57, David F. a écrit : >> In 2.23, the rest markup command changed from taking a string to taking a >> duration. >> >> \version "2.22" >> \markup \rest #"4.." >> >> \version "2.23" >> \markup \rest { 4.. } >> >> It would be nice if this change were backward compatible, at least for a >> version or two. > > > LilyPond's general policy is that backwards-incompatible syntax > changes are OK as long as a convert-ly rule is provided to update > input files automatically. > > Well, in this case there is no convert-ly rule ... I'll fix that soon. > > >> My primary Lilypond environment is v2.22.2-1 on macOS 10.14. This is the >> environment I use for final “production” of scores. But I’ve been trying to >> do as much development as possible in v2.23 on macOS 10.15. >> >> Unfortunately, the change to the rest markup command makes going back and >> forth quite cumbersome. Would be be possible to make this command take >> either a string or duration? > > > My answer will be a bit different from Harm's: this sounds like > an XY problem to me. Why do you want to switch back and forth > between two LilyPond versions for the same score? Just install > the same version on both machines. There is no problem with having > several different versions of LilyPond installed in parallel on > the same machine, and in Frescobaldi, you can even choose to > select the LilyPond version from the \version statement (the > setting is in Edit > Preferences > LilyPond Preferences), > making this very convenient. > Installing multiple versions of Lilypond isn’t a big deal, per se. I have 2.22 and 2.23.10 installed on the macOS 10.14 machine. I don’t think there is a standalone install of v2.22 available for macOS 10.15 and greater, so I think I’d have to install MacPorts on the macOS 10.15 machine in order to get Lilypond 2.22. But we can call that a simple annoyance. The issue, for me, is that I’m trying to be conservative in upgrading to newer Lilypond versions. I have around 100 hymns that get turned into just over 4000 individual slides. I can’t realistically inspect each slide after a version upgrade, so I’ve been sticking to the Lilypond stable releases for “production” generation of my slides. But, as I said above, I try to do as much development as possible on the latest “unstable” version so as to catch problems as soon as possible. When I first moved to version 2.23, I found, for example, that there was an issue with handling file paths that contained Unicode characters. Once I brought the issue to the list, Jonas Hahnfeld was able to provide a fix with 2.23.10. If Lilypond’s policy is as you say, then I might have to reconsider my approach to upgrades. But, likely as not, I’ll just carry on trying to stick with stable releases. I started out on version 2.18 and haven’t really had too much trouble switching back and forth between stable and unstable releases. David F.
Re: Change to \rest markup in 2.23
> On Jul 20, 2022, at 5:13 AM, Thomas Morley wrote: > > Am Mi., 20. Juli 2022 um 05:58 Uhr schrieb David F. : >> >> In 2.23, the rest markup command changed from taking a string to taking a >> duration. >> >> \version "2.22" >> \markup \rest #"4.." >> >> \version "2.23" >> \markup \rest { 4.. } >> >> It would be nice if this change were backward compatible, at least for a >> version or two. >> >> My primary Lilypond environment is v2.22.2-1 on macOS 10.14. This is the >> environment I use for final “production” of scores. But I’ve been trying to >> do as much development as possible in v2.23 on macOS 10.15. >> >> Unfortunately, the change to the rest markup command makes going back and >> forth quite cumbersome. Would be be possible to make this command take >> either a string or duration? >> >> David F. >> >> > > Well, going back and forth between 2.22.2 and new devel-version only > works if you don't use devel-features and don't hit internal changes. > > That said, below a coding which makes \rest always take a duration, > transforming it to a string for 2.22. > Once you settled with 2.23. simply delete it. > Disclaimer: it's all a bit clumsy, cheeky and not tested in the wild. > > \version "2.20.0" > > #(begin > (define default-make-rest-markup make-rest-markup) > (define-markup-command (rest layout props duration) (ly:duration?) >(let ((version-arg >(if (string duration >(ly:duration->string duration >(interpret-markup layout props > (default-make-rest-markup version-arg) > > \markup \rest { 4.. } > > Cheers, > Harm Thanks Harm. That seems to do the trick! David F.
Change to \rest markup in 2.23
In 2.23, the rest markup command changed from taking a string to taking a duration. \version "2.22" \markup \rest #"4.." \version "2.23" \markup \rest { 4.. } It would be nice if this change were backward compatible, at least for a version or two. My primary Lilypond environment is v2.22.2-1 on macOS 10.14. This is the environment I use for final “production” of scores. But I’ve been trying to do as much development as possible in v2.23 on macOS 10.15. Unfortunately, the change to the rest markup command makes going back and forth quite cumbersome. Would be be possible to make this command take either a string or duration? David F.
Tempo arguments
\tempo 4 = 90 How is tempo able to take ‘4 = 90’ as an argument? Is this hardwired into the language or can any function take ‘x = y’ as an argument? David F.
Re: Error message using AikenHeads with NullVoice
> On Jul 7, 2022, at 1:59 AM, Valentin Petzel wrote: > > A different way to approach the problem would be to also specify something > like > > \context { > \NullVoice > shapeNoteStyles = ##() > } > > It is still questionable why NullVoice would hickup on simply changing the > NoteHead style, so think this is worth creating a bug report. > > Cheers, > Valentin Yes, it does seem odd—and avoidable—that NullVoice would have a problem with shape notes. With aikenHeads, there is one note-head shape (the triangle that is not a pyramid) that depends on the stem direction. My assumption is that’s where the error is coming from. But if the note is not being shown at all, that logic doesn’t need to be executed. David F.
Re: Error message using AikenHeads with NullVoice
> On Jul 6, 2022, at 12:40 PM, David Wright wrote: > > On Wed 06 Jul 2022 at 11:56:52 (-0600), David F. wrote: >> [ … ] >> The command to use aikenHeads comes from a separate style file that gets >> included for each hymn. But there is an unfortunate interaction between >> aikenHeads and NullVoice: Lilypond outputs the following error message: >> >> programming error: must have stem dir for note head >> continuing, cross fingers >> >> And it outputs a lot of these messages. I need to find a way to stop >> Lilypond from outputting this error. Any kind of quick fix or hack would be >> sufficient. > > $ lilypond source-file.ly |& tee /tmp/complete-errors | grep -v 'programming > error: must have stem dir for note head' | grep -v 'continuing, cross fingers' > > Is this hackish enough? The unfiltered errors are available > for consultation in /tmp/complete-errors. I would need sed > rather than grep to filter out the second line only when > preceded by this particular first line. > > Cheers, > David. Yes, that would be an option. I’m already filtering the warning I get from setting a custom variable from the command line: "2>&1 | grep -v '^warning: no such internal option: \(aspect-ratio\|style\)$’” But in this case, I’d be suppressing the error completely. Which means that, in the future, if something I did were to also cause this error, I wouldn’t see it. David F.
Re: Error message using AikenHeads with NullVoice
> On Jul 6, 2022, at 1:20 PM, Jean Abou Samra wrote: > > How about changing \Staff into \Voice? > > \layout { > \context { > \Voice > \aikenHeads > } > } > > That way, it won't affect those NullVoice contexts. > > Best, > Jean > Perfect. That does exactly what I wanted. Thanks! David F.
Error message using AikenHeads with NullVoice
I have a collection of SATB hymns that I would like to engrave using shape notes. The Lilypond files are all structured the same, as seen below—treble clef with music and a NullVoice for aligning lyrics, then the lyrics, then the bass clef. % \version "2.22" \language “english" % included from another file \layout { \context { \Staff \aikenHeads } } \score { << \new Staff << % music here \new NullVoice = "melody" { e'8 fs'8 } >> % \new Lyrics \lyricsto "melody" { Ly -- rics } % bass clef here >> \layout {} } % The command to use aikenHeads comes from a separate style file that gets included for each hymn. But there is an unfortunate interaction between aikenHeads and NullVoice: Lilypond outputs the following error message: programming error: must have stem dir for note head continuing, cross fingers And it outputs a lot of these messages. I need to find a way to stop Lilypond from outputting this error. Any kind of quick fix or hack would be sufficient. One thought I had would be to re-enable regular note heads for the NullVoice: \new NullVoice = "melody" \with { \unset shapeNoteStyles } { e'8 fs'8 } But I couldn’t come up with anything that worked. Any help or ideas would be greatly appreciated. David F.
Re: UTF-8 characters in filenames with Lilypond 2.23
> On May 25, 2022, at 11:21 AM, Jonas Hahnfeld wrote: > > On Sat, 2022-05-21 at 15:20 -0600, David F. wrote: >> System: Intel-based macOS >> >> I make extensive use of UTF-8 characters in the filenames of my Lilypond >> files. This works in Lilypond up through version 2.22. But Lilypond 2.23 >> cannot handle UTF-8 characters in filenames. >> >> Filename: tést.ly >> >> \version "2.22" >> >> { c' } >> >> >> Under v2.22, this file complies without problem. With 2.23 (including the >> just release 2.23.9) I get the following error: >> >> Starting lilypond 2.23.9 [tést.ly]... >> warning: cannot find file: `/Users/david/Projects/Lily Scratch/te??st.ly' >> fatal error: failed files: "/Users/david/Projects/Lily Scratch/te??st.ly" >> Exited with return code 1. >> >> I thought that this problem had already been reported, but I can’t find any >> mention of it now. So I’m reporting it. >> >> David F. > > Hi David, > > I can indeed reproduce this on macOS, which I think is the critical > piece of information here. It would just be too boring if all operating > systems agreed on how to handle filenames with special characters... In > this case, it might also have to do with the file system because if I > do 'ls', I also get question marks (but this might also be because I'm > ssh-ing from Linux...) > > Jonas Thanks for looking into this Jonas. As I said in my original message Lilypond up to v2.22 handles UTF characters just fine. David F.
Re: UTF-8 characters in filenames with Lilypond 2.23
> On May 21, 2022, at 5:01 PM, Jean Abou Samra wrote: > > Le 21/05/2022 à 23:20, David F. a écrit : >> System: Intel-based macOS >> >> I make extensive use of UTF-8 characters in the filenames of my Lilypond >> files. This works in Lilypond up through version 2.22. But Lilypond 2.23 >> cannot handle UTF-8 characters in filenames. >> >> Filename: tést.ly >> >> \version "2.22" >> >> { c' } >> >> >> Under v2.22, this file complies without problem. With 2.23 (including the >> just release 2.23.9) I get the following error: >> >> Starting lilypond 2.23.9 [tést.ly]... >> warning: cannot find file: `/Users/david/Projects/Lily Scratch/te??st.ly' >> fatal error: failed files: "/Users/david/Projects/Lily Scratch/te??st.ly" >> Exited with return code 1. >> >> I thought that this problem had already been reported, but I can’t find any >> mention of it now. So I’m reporting it. >> >> David F. > > > This is actually not an issue with LilyPond, but with Frescobaldi, > when you have "run LilyPond with English messages" enabled in the > Preferences. This problem is known for some time already, but > I didn't see an issue in the Frescobaldi tracker, so I just > opened one: > > https://github.com/frescobaldi/frescobaldi/issues/1438 > > The workaround is to uncheck "Run LilyPond with English messages" > in Edit > Preferences > LilyPond Preferences. > > Best, > Jean > No, I get the same error running lilypond from the command line: $ lilypond --png tést.ly GNU LilyPond 2.23.9 (running Guile 2.2) warning: cannot find file: `t??st.ly' fatal error: failed files: "t??st.ly” David F.
UTF-8 characters in filenames with Lilypond 2.23
System: Intel-based macOS I make extensive use of UTF-8 characters in the filenames of my Lilypond files. This works in Lilypond up through version 2.22. But Lilypond 2.23 cannot handle UTF-8 characters in filenames. Filename: tést.ly \version "2.22" { c' } Under v2.22, this file complies without problem. With 2.23 (including the just release 2.23.9) I get the following error: Starting lilypond 2.23.9 [tést.ly]... warning: cannot find file: `/Users/david/Projects/Lily Scratch/te??st.ly' fatal error: failed files: "/Users/david/Projects/Lily Scratch/te??st.ly" Exited with return code 1. I thought that this problem had already been reported, but I can’t find any mention of it now. So I’m reporting it. David F.
Re: Manipulating lyrics with a music function
On Oct 8, 2021, at 10:33 PM, Aaron Hill wrote: > On 2021-10-08 8:24 pm, David F. wrote: >> macOS 10.14.6, Lilypond 2.22.1 >> The syntax for adding quotes to lyrics is a little cluttered, so I >> thought I’d whip up a couple of little helper functions to tidy things >> up. Two hours later I’m reaching out to the mailing list for help. >> The example below is failing in two ways. First, I can’t figure out >> how to actually interpolate the syllable that is the input to my >> functions into the output. Second, the hyphen between the first two >> syllables is lost. > > Your functions could accept the text as markup. Also, you should strongly > consider using typographer's quotes, which can be input directly as UTF-8 or > using character shorthand neither of which requires messing about with > escaping: > > > \paper { #(include-special-characters) } > \relative { \time 3/4 e'4 e4. e8 d4 e d c2. } > \addlyrics { In -- com -- pa -- ra -- ble, said she } > > openQuote = #(define-scheme-function (text) (markup?) #{ \markup \concat { “ > #text } #}) > closeQuote = #(define-scheme-function (text) (markup?) #{ \markup \concat { > #text ” } #}) > \relative { \time 3/4 e'4 e4. e8 d4 e d c2. } > \addlyrics { \openQuote In -- com -- pa -- ra -- \closeQuote ble, said she } > Thanks Aaron, that’s great. Yes, using typographer’s quotes was one of my motivations for making the helper functions in the first place. I did notice that the \markup defeats lyric ties. It’s not a big deal—that combo only occurs once in the songs I have. But now I’m curious. What do lyric syllables get turned into? A LyricEvent? Is it possible to build and return a LyricEvent from a function? openQuote = #(define-scheme-function (text) (markup?) #{ \markup \concat { “ #text } #}) closeQuote = #(define-scheme-function (text) (markup?) #{ \markup \concat { #text ” } #}) \relative { \time 3/4 e'4 e4. e8 d4 e d c2. } \addlyrics { \openQuote O~In -- com -- pa -- ra -- \closeQuote ble, said she } David F.
Manipulating lyrics with a music function
macOS 10.14.6, Lilypond 2.22.1 The syntax for adding quotes to lyrics is a little cluttered, so I thought I’d whip up a couple of little helper functions to tidy things up. Two hours later I’m reaching out to the mailing list for help. The example below is failing in two ways. First, I can’t figure out how to actually interpolate the syllable that is the input to my functions into the output. Second, the hyphen between the first two syllables is lost. Help? David F. \version "2.22" \layout { \context { \Lyrics \override LyricHyphen.minimum-distance = #1.0 } } openQuote = #(define-music-function (syllable) (ly:music?) #{ \lyricmode { "\"In" } #} ) closeQuote = #(define-music-function (syllable) (ly:music?) #{ \lyricmode { "ble,\"" } #} ) \relative { \time 3/4 e'4 e4. e8 d4 e d c2. } \addlyrics { \openQuote In -- com -- pa -- ra -- \closeQuote ble, said she }
Re: After directory rename, Frescobaldi doesn't show PDF
On Jul 5, 2020, at 6:23 PM, Davide Liessi wrote: > Il giorno ven 3 lug 2020 alle ore 23:48 David F. ha scritto: >> Frescobaldi is having problems with file paths that have question marks and >> accented characters. > > It should be solved in current master and v3.1.x branches. > The fix will appear in future Frescobaldi 3.1.3. > > Best wishes. > Davide That’s great! Thanks!! David F.
Re: After directory rename, Frescobaldi doesn't show PDF
On Jul 3, 2020, at 4:18 PM, Davide Liessi wrote: > Dear David, > > Il giorno ven 3 lug 2020 alle ore 23:48 David F. ha scritto: >> Frescobaldi is having problems with file paths that have question marks and >> accented characters. > > tomorrow I'll test and get back to you. > >> This problem is not present in Frescobaldi 2.20. > > This is interesting. > > Best wishes. > Davide Thanks! David
Re: After directory rename, Frescobaldi doesn't show PDF
On Jul 3, 2020, at 3:18 PM, David F. wrote: > macOS 10.14.6 > Frescobaldi 3.1.2 > > I was working on a song in Frescobaldi. After renaming the directory that > the song is in Frescobaldi no longer shows the PDF for the song after > engraving. > > Does Frescobaldi keep track of what PDF file belongs to what input file? Can > that information be flushed? > > I’ve tried to reproduce the problem intentionally, but haven’t had any luck. > Any help would be appreciated. > > (Also, I’m posting this to the Lilypond list because none of my message go > through on the Frescobaldi list.) > > David > Ok, I’ve narrowed the issue down. Frescobaldi is having problems with file paths that have question marks and accented characters. Given a file named “song.ly” with just this content: \version "2.19" \fixed c' { c d e f } Frescobaldi shows the PDF after engraving if this file is in either of the following directories: Helló/ Hello?/ But Frescobaldi does not show the PDF if song.ly is in a directory named Helló?/ And yes, I use the fully punctuated song titles as the enclosing directory name. macOS handles it, no problem. I even use bash scripts to process these files without a hiccup. The following are all examples of directory names I use: ¡Gloria! ¡Gloria!/ Bendiciones, ¡Cuántas Tienes Ya!/ Señor, ¿Quién Entrará?/ This problem is not present in Frescobaldi 2.20. David
After directory rename, Frescobaldi doesn't show PDF
macOS 10.14.6 Frescobaldi 3.1.2 I was working on a song in Frescobaldi. After renaming the directory that the song is in Frescobaldi no longer shows the PDF for the song after engraving. Does Frescobaldi keep track of what PDF file belongs to what input file? Can that information be flushed? I’ve tried to reproduce the problem intentionally, but haven’t had any luck. Any help would be appreciated. (Also, I’m posting this to the Lilypond list because none of my message go through on the Frescobaldi list.) David
Re: Complex/Large Lilypond projects and build automation
On Dec 7, 2019, at 2:35 PM, Jim Duke wrote: > I have a large Lilypond project for several hymnals. The project is > organized into a subdirectory structure with each hymn in a separate > directory. For each hymn I produce several products: an 8.5x11 PDF, a 6x9 > PDF, a set of images formatted for projection at 4x3 and 16x9 aspect ratios, > and a set of part dominant MP3’s for use in learning the hymns. These > products are then assembled at a higher level into a comprehensive PDF of the > hymnal including front material and index; and a package of the slide images > organized to be compatible with a Slide production product used at my church > for assembling a song service; as well as assembling metadata files to be > uploaded into a website I maintain that provides access to these hymns and > provides simple search capabilities and internet access to these products. > > I use Make (that old workhorse) to automate the process; but that has some > distinct limitations. So I was wondering what tools others may be using to > aid them in building larger Lilypond projects. What, if anything, are you > using? How well does that work for you? Jim, I’m right behind you! I have a collection of just over 100 hymns that are mostly Spanish language, but about 20 of those also have bilingual versions. My build system creates proof PDFs, 4x3 and 16x9 slide images and 4x3 and 16x9 PowerPoint slide decks which get synchronized to a shared Dropbox folder. I started off with make, but switched to gradle because I was already using that at work. I’ve got about 400 lines of Kotlin/gradle code. I haven’t built any hymnals yet, but I plan to. So far I feel like I’ve gotten further with gradle than I could have with make, but lately I’ve found gradle to be more and more annoying. Both make and gradle struggle with 1-to-many and (especially) many-to-1 type build tasks. So, for example, taking 8 png files and combining them into one Powerpoint file is doable in gradle, but you’re really fighting the build system and incremental builds start to fail in certain cases (like when a song goes from fitting on 6 slides to taking up 8 slides). There are other annoyances. Just a couple of weeks ago, I came across this blog post: "The only build system that might someday replace make” https://apenwarr.ca/log/20101214 So I intend to dig in to the design of the redo system and see if it can match the functionality provided by gradle without the pain and annoyances. David
Re: Snippet: Using arbitrary markup with LyricHyphen
On Mar 16, 2019, at 6:30 AM, Aaron Hill wrote: > This whole thing started as a way to automate setting the properties of > LyricHyphen based on the current LyricText font. In my use case, I am > preparing music for projection, which requires larger font sizes than typical > for print. The default values for things like length, thickness, and height > are not suitable and require manual tweaking. > > What I wanted is a way to measure the size of an actual hyphen in a font and > have LyricHyphen's default stencil procedure draw a box accordingly. > However, when using ly:stencil-extent against a simple glyph, the results did > not reflect only the ink but also included spacing/kerning information for > the glyph. Depending on the font, the effective width of a hyphen might be > larger than it actually appears. The resulting LyricHyphen does not line up > with nor properly mimic a real hyphen. > > Now, even if I could solve the detail with glyph outlines and get the right > dimensions, there is still a problem that Lyric_hyphen::print uses a rounded > box with a hard-coded corner radius for its stencil. In my case, the radius > was too small compared to the actual hyphen in the font I was using, so it > looks too "sharp". > > So, what I ended up doing was rewriting the LyricHyphen stencil procedure to > use an actual hyphen glyph rather than try to draw something. And in the > noble pursuit of generalization, the following approach supports *any* > arbitrary markup. I’ve been wanting this for quite a while. Thanks for sharing!! David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change stanza formatting
On Mar 1, 2019, at 6:21 PM, Aaron Hill wrote: > On 2019-03-01 10:20 am, David F. wrote: >> There’s one small issue that I noticed. I’m engraving music with >> simultaneous bilingual lyrics and I’m using the stanza number to print >> the language name. Since the language name is almost always longer >> than the first syllable, it is making that first note column wider >> than it would be without the stanza number. Is there a way to keep the >> sanza number from influencing the width of the note column? >> (On the one hand, the extra space isn’t necessarily a big deal. But >> the whole reason I want to print the language names on top of the >> lyrics instead of to the left of them is that I’ve run into cases >> where the extra text in the stanza number is preventing me from >> getting everything I want onto the first line of music.) > > Would it work to use abbreviations for the languages? (e.g. "E:" and "F:" > for "English" and "Français".) Unless your first LyricText is particularly > wide, there should be enough room for such an abbreviation as a traditional > StanzaNumber without the need to play around with properties. That’s a great suggestion, but English and French are just what were in the snippet I got from the Lilypond manual. We’re actually singing in English and Español. So I could do “Eng.” and “Esp.”, but I’m worried that abbreviations would be more confusing than helpful. > As an alternative, you could see if right-aligning the StanzaNumbers works > for you. Since this means the LyricTexts and StanzaNumbers share a common > right extent, there should be no additional space added before the next > syllable: > > > \version "2.19.82" > > \layout { \context { \Lyrics > \override StanzaNumber.direction = #UP > \override StanzaNumber.side-axis = #Y > \override StanzaNumber.padding = #0.2 > \override StanzaNumber.X-offset = #(lambda (grob) >(define (grob-list-property glst prop) > (map (lambda (g) (ly:grob-property g prop)) glst)) >(let* ((sse (ly:grob-object grob 'side-support-elements)) > (lyrics (cdr (ly:grob-array->list sse))) > (lyrics-extents (grob-list-property lyrics 'X-extent)) > (lyrics-widths (map interval-length lyrics-extents)) > (lyrics-offsets (grob-list-property lyrics 'X-offset)) > (lyrics-rights (map + lyrics-offsets lyrics-widths)) > (lyrics-right (apply max lyrics-rights)) > (grob-extent (ly:grob-property grob 'X-extent)) > (grob-width (interval-length grob-extent))) > (- lyrics-right grob-width))) > } } > > \new Voice \relative { \time 3/4 g'2 e4 a2 f4 g2. } > \addlyrics { \set stanza = #"English" Hi, my name is Bert. } > \addlyrics { \set stanza = #"Français" Oooh, ché -- ri, je t'aime } > > > NOTE: The code above considers all of the LyricTexts in the column, not just > the current line. As a result, there is a consistent right-alignment of the > StanzaNumbers based on the widest of the LyricTexts. I had to add \override StanzaNumber.Y-offset = #ly:side-position-interface::y-aligned-side in order for the stanza text to not overlap the lyrics. And I did’t like the way it looked at first. But it’s grown on me. I’ll probably play with it some more. > Assuming you want left-alignment without the added space to the right, you > will probably have to resort to altering the actual extents of the > StanzaNumber: > > > \version "2.19.82" > > #(define (interval-max . args) (reduce interval-union empty-interval args)) > #(define ((side-support-property func prop) grob) > (let* ((sse (ly:grob-object grob 'side-support-elements)) > (elems (cdr (ly:grob-array->list sse))) > (props (map (lambda (g) (ly:grob-property g prop)) elems))) >(apply func props))) > > \layout { \context { \Lyrics > \override StanzaNumber.direction = #UP > \override StanzaNumber.side-axis = #Y > \override StanzaNumber.padding = #0.2 > \override StanzaNumber.X-offset = #(side-support-property min 'X-offset) > \override StanzaNumber.X-extent = #(side-support-property interval-max > 'X-extent) > \override StanzaNumber.Y-offset = #ly:side-position-interface::y-aligned-side > } } > > \new Voice \relative { \time 3/4 g'2 c,4 a'2 f4 g2. } > \addlyrics { \set stanza = #"English" Hi, my name is Bert. } > \addlyrics { \set stanza = #"Français" Oooh, ché -- ri, je t'aime } > > > But be advised this approach can generate overlapping ink. In the example > above, I lowered the E in the first measure to middle C to demonstrate this. > The collision occ
Re: Change stanza formatting
On Mar 1, 2019, at 1:04 AM, Aaron Hill wrote: > On 2019-02-28 8:53 pm, David F. wrote: >> Given a line of lyrics with the stanza number in front, how can I move >> the stanza number (“1.”) so that it is above the first syllable of the >> lyrics instead of to the left of the lyrics? >> \version "2.19" >> \new Voice \relative { >>\time 3/4 g'2 e4 a2 f4 g2. >> } >> \addlyrics { >>\set stanza = #"1. " >>Hi, my name is Bert. >> } > > The above snippet cheats a little because StanzaNumber does not actually > support self-alignment-interface, but it is reusing some code to ensure the > text is centered to the parent note. > > It would be possible to support alignment to the LyricText with a little > extra work. The following left-aligns the StanzaNumber to the supporting > text: > > > \version "2.19.82" > > \layout { \context { \Lyrics > \override StanzaNumber.direction = #UP > \override StanzaNumber.side-axis = #Y > \override StanzaNumber.X-offset = #(lambda (grob) >(let* ((sse (ly:grob-object grob 'side-support-elements)) > (lyr (car (ly:grob-array->list sse))) > (xoff (ly:grob-property lyr 'X-offset))) > xoff)) > \override StanzaNumber.Y-offset = #ly:side-position-interface::y-aligned-side > } } > > \new Voice \relative { \time 3/4 g'2 e4 a2 f4 g2. } > \addlyrics { \set stanza = #"1." Hi, my name is Bert. } > Thanks, Aron, that’s exactly what I was looking for. There’s one small issue that I noticed. I’m engraving music with simultaneous bilingual lyrics and I’m using the stanza number to print the language name. Since the language name is almost always longer than the first syllable, it is making that first note column wider than it would be without the stanza number. Is there a way to keep the sanza number from influencing the width of the note column? (On the one hand, the extra space isn’t necessarily a big deal. But the whole reason I want to print the language names on top of the lyrics instead of to the left of them is that I’ve run into cases where the extra text in the stanza number is preventing me from getting everything I want onto the first line of music.) \version "2.19" \layout { \context { \Lyrics \override StanzaNumber.direction = #UP \override StanzaNumber.side-axis = #Y \override StanzaNumber.X-offset = #(lambda (grob) (let* ((sse (ly:grob-object grob 'side-support-elements)) (lyr (car (ly:grob-array->list sse))) (xoff (ly:grob-property lyr 'X-offset))) xoff)) \override StanzaNumber.Y-offset = #ly:side-position-interface::y-aligned-side } } \new Voice \relative { \time 3/4 g'2 e4 a2 f4 g2. } \addlyrics { \set stanza = #"English" Hi, my name is Bert. } \addlyrics { \set stanza = #"Français" Oh, ché -- ri, je t'aime } Thanks, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Change stanza formatting
Given a line of lyrics with the stanza number in front, how can I move the stanza number (“1.”) so that it is above the first syllable of the lyrics instead of to the left of the lyrics? \version "2.19" \new Voice \relative { \time 3/4 g'2 e4 a2 f4 g2. } \addlyrics { \set stanza = #"1. " Hi, my name is Bert. } Thanks, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: systems-per-page and ragged-last-bottom
On Feb 7, 2019, at 10:04 AM, Malte Meyn wrote: > Hi list, > > IMHO systems-per-page should be ignored on the last page if (and only if) > ragged-last-bottom is set to ##t. I think that systems-per-page is used for > even spacing and ragged-last-bottom = ##t shows that the user wants an > exception to such an even spacing on the last page. I would very much appreciate this behavior from Lilypond. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: set-global-staff-size undoes define fonts
On Jan 27, 2019, at 9:09 PM, Martin Neubauer wrote: > On 27/01/2019 04:52, David F. wrote: >> I can specify the font for my score to use with #(define fonts … ), but >> calling #(set-global-staff-size) undoes the font definition. >> >> In the snippet below, Times New Roman will be used as the font for the whole >> document. But if line 6 is uncommented, the font reverts to the default of >> New Century Schoolbook. (These fonts are easily distinguished by the letter >> Q—hence the title.) >> >> Any suggestion on how I can both set the font to TNR and set the staff size >> (in that order)? > Why do you insist on the order, anyway? If you don't, I think the > solution would be quite obvious. Because I engrave hymns in several different styles, e.g. 4:3 slides, 16:9 slides, hymnal-style, etc. I have a .ly file with all the base or common styles and then I override whatever is appropriate for specific styles. In this case, I want the font to be the same for all styles (so it gets declared first). But slides have a larger text size, so I want to override the font size specifically for engraving slides, so it gets declared later. As a workaround to the trouble I’m having (because there is a bug in either Lilypond or my understanding) I’m currently re-declaring the font change after I call set-global-staff-size. Which means I now have duplication in my style declarations. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: set-global-staff-size undoes define fonts
On Jan 26, 2019, at 8:52 PM, David F. wrote: > I can specify the font for my score to use with #(define fonts … ), but > calling #(set-global-staff-size) undoes the font definition. > > In the snippet below, Times New Roman will be used as the font for the whole > document. But if line 6 is uncommented, the font reverts to the default of > New Century Schoolbook. (These fonts are easily distinguished by the letter > Q—hence the title.) > > Any suggestion on how I can both set the font to TNR and set the staff size > (in that order)? > > === > \version "2.19" > > \paper { >#(define fonts (make-pango-font-tree "Times New Roman" "" "" 1)) > } > % #(set-global-staff-size 20) > > \header { >title = "QQQ" > } > > \relative c' { > c c c c > } > === Using the new 2.19 syntax for setting fonts has the same problem. I’m using 2.19.82 on macOS 10.13.6. \paper { #(define fonts (set-global-fonts #:roman "Times New Roman")) } David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
set-global-staff-size undoes define fonts
I can specify the font for my score to use with #(define fonts … ), but calling #(set-global-staff-size) undoes the font definition. In the snippet below, Times New Roman will be used as the font for the whole document. But if line 6 is uncommented, the font reverts to the default of New Century Schoolbook. (These fonts are easily distinguished by the letter Q—hence the title.) Any suggestion on how I can both set the font to TNR and set the staff size (in that order)? === \version "2.19" \paper { #(define fonts (make-pango-font-tree "Times New Roman" "" "" 1)) } % #(set-global-staff-size 20) \header { title = "QQQ" } \relative c' { c c c c } === Thanks, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Adjusting space in a lyric tie
On Jan 20, 2019, at 7:43 AM, Kieren MacMillan wrote: > Hi David, > >> I want to increase the space inside the lyric tie. So if I have >> “some~word”, I’d like to have a little more space between “some” and “word”. >> LyricHyphen.minimum-distance doesn’t do that. > > Ah, yes. Glad you found the answer! > > In your example, I suppose you really need all three tweaks given — otherwise > no hyphen appears, which makes the output rather confusing for the > reader/singer. Exactly. I already had LyricHyphen.minimum-distance set to 1. Then last night I came across LyricSpace.minimum-distance. All that was left was easing the spacing of LyricText.word-space. The result is much more legible. Thanks again for your help! David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Adjusting space in a lyric tie
On Jan 19, 2019, at 10:06 PM, Aaron Hill wrote: > LyricText.word-space is what you want to adjust. Note that it doesn't > stretch the size of the tie. Perfect! Thanks! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Adjusting space in a lyric tie
On Jan 19, 2019, at 8:53 PM, Kieren MacMillan wrote: > Hi David, > >> How do I adjust the space between two syllables/words that are tied? >> LyricSpace.minimum-distance works for words that are not tied. > > \override Lyrics.LyricHyphen.minimum-distance = #2 > > Hope that helps! Thanks Kieren, but I wasn’t clear enough in my initial request for help. I want to increase the space inside the lyric tie. So if I have “some~word”, I’d like to have a little more space between “some” and “word”. LyricHyphen.minimum-distance doesn’t do that. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Adjusting space in a lyric tie
How do I adjust the space between two syllables/words that are tied? LyricSpace.minimum-distance works for words that are not tied. Thanks! David \version "2.19" { c'4 d'4 e'4 f'4 } \addlyrics { \override Lyrics.LyricSpace.minimum-distance = #2 Ly -- rics with~some~ly -- ric~ties } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Slurs inside a beam
On Aug 12, 2018, at 8:24 AM, Thomas Morley wrote: > 2018-08-12 3:31 GMT+02:00 Andrew Bernard : >> Hi David, >> >> One way to do it: >> >> \version "2.19" >> >> { >> 8. 16 >> } >> >> >> From the Changes page: >> >> A new command \=X has been added – where ‘X’ can be any non-negative integer >> or symbol – so that a specific ‘id’ can be assigned to the start and end of >> slurs and phrasing slurs. >> >> This is useful when simultaneous slurs are required or if one slur overlaps >> another or when nesting short slurs within a longer one. >> >> Andrew >> >> >> >> On Sun, 12 Aug 2018 at 06:31, David F. wrote: >>> >>> While we’re on the topic of bending slurs to our will, I’d like for >>> slurred, beamed eighth notes to have the slur printed below or inside the >>> beam. This works with a simple ^~ for ties. How might I accomplish this? >>> > > Some background. > Slurred notes or chords will have their left/right bound set to the > respective NoteColumn. > As long as NoteColumns are the bounds, I see no possibility to get > Slurs "inside" of a Beam (with equal direction for both) > > In-chord Slurs bounds are NoteHeads. > Thus Andrew's coding above works. > > Another possibility would be to reset bounds for certain Slurs from > NoteColumn to selected NoteHead: > > #(define (buzz lb rb) > (lambda (grob) > (let* ((left-bound (ly:spanner-bound grob LEFT)) > (left-nhs-array > (ly:grob-object left-bound 'note-heads)) > (left-nhs > (if (ly:grob-array? left-nhs-array) > (sort > (ly:grob-array->list left-nhs-array) > (lambda (p q) > (ly:pitch (ly:prob-property (ly:grob-property p 'cause) 'pitch) > (ly:prob-property (ly:grob-property p 'cause) 'pitch > '())) > (right-bound (ly:spanner-bound grob RIGHT)) > (right-nhs-array > (ly:grob-object right-bound 'note-heads)) > (right-nhs > (if (ly:grob-array? right-nhs-array) > (sort > (ly:grob-array->list right-nhs-array) > (lambda (p q) > (ly:pitch (ly:prob-property (ly:grob-property p 'cause) 'pitch) > (ly:prob-property (ly:grob-property p 'cause) 'pitch > '( >(ly:spanner-set-bound! grob LEFT (list-ref left-nhs lb)) >(ly:spanner-set-bound! grob RIGHT (list-ref right-nhs rb) > > { > 8[-\tweak before-line-breaking #(buzz 1 1) ^\=1(_\=2( > ]\=1)\=2) > } > > Making for a different syntax. > > The lower Slur looks nicer, imho > The upper Slur still needs shaping (with \shape or \shapeII or Aaron's > coding or whatever) > > Cheers, > Harm Thanks for your explanation, Harm. But I’m not familiar enough with Lilypond internals to completely understand what’s going on here. In particular, I don’t understand what’s different about beamed notes versus non-beamed notes that make this all so tricky. For example, two slurred quarter notes have a perfectly placed slur. If those two quarter notes were beamed just as they are (making them eighth notes, obviously) everything would be just fine. \version "2.19" { e'4 ^( a'4 ) % Two slurred quarter notes. A beam would fit just fine over the slur. e'8 [ ^( a'8 ) ] % Two beamed eighth notes with the slur above the beam } Is there a change in the representation between a quarter note and a beamed note that prevents slurred beamed notes from being constructed just like slurred quarter notes? Apologies in advance for my ignorance. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Slurs inside a beam
While we’re on the topic of bending slurs to our will, I’d like for slurred, beamed eighth notes to have the slur printed below or inside the beam. This works with a simple ^~ for ties. How might I accomplish this? \version "2.19" \language "english" \new Staff \with { beamExceptions = #'() } << { e'8 ~ e'8 % Tie bends down e'8 ^~ e'8 % Tie bends up *below* or *inside* the beam e'8 ( a'8) % Bends down e'8 ^( a'8 ) % Bends up *above* or *outside* the beam \tuplet 3/2 { b'8 ( a'8 ) f'8 } % Bends down \tuplet 3/2 { b'8 ^( a'8 ) f'8 } % Bends up *above* or *outside* the beam }>> The behavior I am after can also be seen here: https://hymnary.org/hymn/SS4C1956/page/561 Thanks! David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: keepWithTag for a score
On Sep 30, 2017, at 11:52 PM, David Kastrup <d...@gnu.org> wrote: > "David F." <dav...@gmx.us> writes: > >> Let’s say I have a score: >> >> myScore = \score { … } >> >> After my score is built, I’d like to keep/remove tagged sections from the >> music inside my score. >> >> How might I accomplish that? >> >> I’ve already tried to decompose/recompose the score, like so: >> >> \score { >> \keepWithTag #’myTag >> #(ly:score-music #{ myScore #}) >> } >> >> But I’ve gotten some weird results (like the last system being ragged) and I >> don’t really want to throw away the original score because it has stuff like >> headers in it. >> >> Any ideas would be greatly appreciated. > > <http://lilypond.org/tiny-examples.html> > > If you want people to help, forcing them to create complete examples of > their own for demonstration/experimentation is going to make them less > likely to do so. > > At any rate, you might want to experiment with ly:score-header and > ly:score-output-defs. Could be that with newer versions of LilyPond > $(ly:score-header ...) and $@(ly:score-output-defs ...) work in a score > definition or can be made to do so. > > -- > David Kastrup My apologies. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
keepWithTag for a score
Let’s say I have a score: myScore = \score { … } After my score is built, I’d like to keep/remove tagged sections from the music inside my score. How might I accomplish that? I’ve already tried to decompose/recompose the score, like so: \score { \keepWithTag #’myTag #(ly:score-music #{ myScore #}) } But I’ve gotten some weird results (like the last system being ragged) and I don’t really want to throw away the original score because it has stuff like headers in it. Any ideas would be greatly appreciated. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Difference between #music and \music?
The following code runs without error: \version "2.19" #(define-markup-command (myMarkup layout props music) (ly:music?) % Code to generate markup based on music goes here—elided for simplicity (interpret-markup layout props "myMarkup")) music = { c'1 } \markup \myMarkup #music \ music However, if I replace #music with \music as the argument to \myMarkup, I get the following error: document.ly:9:19: error: syntax error, unexpected MUSIC_IDENTIFIER, expecting LOOKUP_IDENTIFIER or SCM_FUNCTION or SCM_IDENTIFIER or SCM_TOKEN \markup \myMarkup \music Can anyone shed some light on the difference between #music and \music? Thanks, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
What is a score?
If I have a score, myScore = \score { … } and I try to pass it into a function that expects music (ly:music?), I get an error: error: wrong type for argument 2. Expecting music, found # So if a score is not a music, what it is it? Where can I find that object described in Lilypond’s documentation? If I wanted to pass a score into a function, how would I specify its type? And ditto to all of the above for book and bookpart. Thanks, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Variable systems-per-page only on last page?
That doesn’t work for me. (Lilypond 2.19.58) I’ve got 3 bars at the end of a piece that would comfortably fit on a single line, but they are stretched to fill two lines. David On Sep 9, 2017, at 7:38 PM, Kieren MacMillanwrote: > Hi David, > >> Is there a way to tell Lilypond to put 2 systems per page on all pages >> except the last—the last page can have one or two systems, depending on >> whichever fits best? > > 1. It would be great if there was some consistent way to tell Lilypond to > consider the first and last page separately from the rest of the score, for > layout purposes — as far as I know, there's no such thing. > > 2. If you use ragged-last-bottom = ##t, then systems-per-page = 2 should do > what you want. Does that not work for you? > > Cheers, > Kieren. > > > Kieren MacMillan, composer > ‣ website: www.kierenmacmillan.info > ‣ email: i...@kierenmacmillan.info > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Variable systems-per-page only on last page?
Is there a way to tell Lilypond to put 2 systems per page on all pages except the last—the last page can have one or two systems, depending on whichever fits best? Thanks, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Show Key name and first note of song?
That is great! Just what I was looking for. Your patch isn’t extracting the tonic—it always returns ‘C’. But I always explicitly define the key, so your original code works like a charm. Thanks! David On Sep 2, 2017, at 7:25 AM, David Nalesnik <david.nales...@gmail.com> wrote: > On Sat, Sep 2, 2017 at 8:09 AM, David Nalesnik <david.nales...@gmail.com> > wrote: >> Hi David, >> >> On Sat, Sep 2, 2017 at 12:25 AM, David F. <dav...@gmx.us> wrote: >>> I have a hymnal that prints the name of the key and the first note the song >>> above the treble clef sign of the first staff. So, for example, if you >>> have Amazing Grace in the key of G major, the first note of the soprano >>> (melody) part is a D. That is printed as “G/D”. >>> >>> Can lilypond do that? I thought I had seen an example of that somewhere, >>> but I can’t find it now. >>> >> >> I don't know where you saw this on the lists, but attached you'll find >> a solution. >> > > The original code will break if there's no explicit key set. > > Patch: > > #(define-markup-command (firstNoteAndKey layout props mus) > (ly:music?) > (let* ((keey (extract-named-music mus 'KeyChangeEvent)) > (tonic > (if (ly:music? keey) > (ly:music-property (car keey) 'tonic) > (ly:make-pitch 0 0))) > (notes (extract-named-music mus 'NoteEvent)) > (first-ne (car notes)) > (first-pitch (ly:music-property first-ne 'pitch))) > (interpret-markup layout props > (make-concat-markup >(list > (format-key first-pitch) > "/" > (format-key tonic)) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Show Key name and first note of song?
I have a hymnal that prints the name of the key and the first note the song above the treble clef sign of the first staff. So, for example, if you have Amazing Grace in the key of G major, the first note of the soprano (melody) part is a D. That is printed as “G/D”. Can lilypond do that? I thought I had seen an example of that somewhere, but I can’t find it now. Thanks! David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Spacing for s4
On Dec 3, 2016, at 8:19 AM, Kieren MacMillanwrote: > Right now, I have the syntactic sugar \ignoreH, \ignoreV, and \ignore (both H > and V) which I put in front of objects when I want to adjust their effect on > spacing — but it would be nice to have a built-in and less verbose way of > doing the same thing. Kieren, how did you implement those functions? David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: partcombine and tuplet bug (?)
I’ve hit this bug as well, but don’t have a workaround for it. I’ve had to manually combine tuplets when voices share a note. The issue there, besides the extra work and the way it muddies the source file, is that the shared note will be printed with two note heads and a single stem instead of a single note head and two stems. Your example would look like: musicC = { \tuplet 3/2 { r4 r4 } d'2 } musicD = { \tuplet 3/2 { r4 r 4 } c'2 } \score { \partcombine \musicC \musicD } In other places, I’ve been able to replace the tuplet in the second voice with s2, but for some reason that doesn’t work with this example. partcombine similarly chokes on notes that should be beamed when voices share a note. For that case, I can wrap the notes that should be beamed together with \partcombineApart … \partcomineAutomatic. That trick does’t work for tuplets, though. David On Oct 22, 2016, at 8:44 AM, Kieren MacMillan wrote: > Hi all, > > Any ideas why the tuplet isn’t bracketing properly in the following snippet, > and/or a workaround? > > %%% SNIPPET BEGINS > \version "2.19" > musicA = { \tuplet 3/2 { r4 r c' } d'2 } > musicB = { \tuplet 3/2 { r4 r c' ~ } 2 } > \score { \partcombine \musicA \musicB } > %%% SNIPPET ENDS > > Thanks, > Kieren. > > > Kieren MacMillan, composer > ‣ website: www.kierenmacmillan.info > ‣ email: i...@kierenmacmillan.info > > > ___ > 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
Beaming, partcombine and pickups
I have a song in 9/8 time with a pickup of three eighth notes. I expect Lilypond to beam those three eighth notes together, but it does not when I combine two voices with partcombine. Am I doing something wrong? Is Lilypond doing something wrong? How might I work around this? Thanks! David BeamsPartcombinePickup.ly Description: Binary data BeamsPartcombinePickup.pdf Description: Adobe PDF document ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Combining voices in American Hymns
On Sep 8, 2016, at 8:52 AM, David Wrightwrote: > There's another "feature" of American hymn books illustrated on > http://www.hymnary.org/text/amazing_grace_how_sweet_the_sound#pagescans > which I haven't seen any mention of before, and only noticed recently > when thumbing my way through a hymnbook during a boring hymn. > > We're used to seeing lyrics left-aligned when under a melisma, but > centred under the note otherwise. However, some hymnbooks left-align > the first lyric on each printed line regardless. > > The second hymn from the left, which is a link to > http://www.hymnary.org/hymn/G32011/page/484 > shows this. I don't want it, but can LP do this automatically? Ah, yes. It would be nice if Lilypond could be coaxed to do that. Also, I’ve noticed that hymnals will often place line breaks inside a measure when the song begins with a partial measure, such that subsequent lines also begin with the same partial measure. This typically also corresponds to the beginning of a poetic line. For example, in this attached version of Amazing Grace, I’d prefer the first line to include first two beats of bar 7 (corresponding to the word “me!” in the first verse). I know I can do this by hand, but it would be great if I could tell Lilypond to take an initial partial measure into account when breaking lines. David Amazing Grace.pdf Description: Adobe PDF document ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Solved Re: Combining voices in American Hymns
On Sep 7, 2016, at 10:56 PM, David F. <dav...@gmx.us> wrote: > Is there a way to combine two voices and print both stems (up and down) when > the voices share a note? \partcombine does not appear to do this by default. As pointed out by Phil Holmes, \partcombine has been upgraded in 2.19 and now does exactly what I want when I use \partcombine #'(1 . 9). See .ly and .pdf attached. I really wish \partcombine didn’t obliterate the voices it consumes, though. Using the NullVoice is simple enough, but I’d rather not have to do it at all. David Amazing Grace.ly Description: Binary data Amazing Grace.pdf Description: Adobe PDF document ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Combining voices in American Hymns
On Sep 13, 2016, at 4:14 PM, Rutger Hofman <rut...@cs.vu.nl> wrote: > On 09/13/2016 11:32 PM, David Wright wrote: >> On Tue 13 Sep 2016 at 21:56:04 (+0100), J Martin Rushton wrote: >>> On 12/09/16 19:21, Karlin High wrote: >>>> On 9/7/2016 11:56 PM, David F. wrote: >>>>> Is there a way to combine two voices and print both stems (up and down) >>>>> when the voices share a note? \partcombine does not appear to do this by >>>>> default. >>>>> >>>>> American SATB hymns are typically engraved with the soprano and alto >>>>> voices combined and the tenor and bass voices combined. If a note in the >>>>> soprano voice has the same duration as the note in the alto voice, then >>>>> the notes for soprano and alto will share a stem. If the durations are >>>>> different, then there is no sharing. And if the notes are the same >>>>> duration and the same pitch, then the note with have both an up stem and >>>>> a down stem. >>>> >>>> You're not alone with difficulties on American-style part combining. >>>> Another LilyPond user shared some of her work with me, and I'm still >>>> studying the approach she uses. Below is a small example I'm using for >>>> experiments. I'm not very familiar with the inner workings of LilyPond; >>>> maybe someone will take one look and say, "That will mostly work, but >>>> you will run into problems with such-and-such situations." >>>> -- >>>> Karlin High >>>> Missouri, USA >>> > > My guess is that \partcombine #'(1 . 9) or \partcombine #'(2 . 9) does what > you specify. I attach code for default partcombine and both your options. > Beware that stem crossings need to lead to uncombined notes. Why 9 as the second argument to \partcombine? David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
New \partcombine in 2.19 Was: Re: Combining voices in American Hymns
On Sep 8, 2016, at 2:09 AM, Phil Holmeswrote: > Partcombine has been improved in 2.19. See > http://lilypond.org/doc/v2.19/Documentation/notation/multiple-voices#automatic-part-combining Ah, yes. That looks very close to what I want. In fact \partcombine #'(1 . 0) appears to do the trick. But I do not understand what the two new arguments do. The documentation linked above has a paragraph that tries to explain the new arguments, but I simply do not understand. Also, some quick experimentation didn’t shed any more light. \version "2.19" instrumentOne = \relative { c'1 | b2 c | a4 b c d | } instrumentTwo = \relative { c'1 | c2 c | c4 c c c | } << % These all generate the same output \new Staff \partcombine \instrumentOne \instrumentTwo \new Staff \partcombine #'(0 . 0) \instrumentOne \instrumentTwo \new Staff \partcombine #'(0 . 1) \instrumentOne \instrumentTwo \new Staff \partcombine #'(0 . 2) \instrumentOne \instrumentTwo \new Staff \partcombine #'(0 . 3) \instrumentOne \instrumentTwo % These all generate the same output \new Staff \partcombine #'(1 . 0) \instrumentOne \instrumentTwo \new Staff \partcombine #'(1 . 1) \instrumentOne \instrumentTwo \new Staff \partcombine #'(1 . 2) \instrumentOne \instrumentTwo \new Staff \partcombine #'(1 . 3) \instrumentOne \instrumentTwo \new Staff \partcombine #'(2 . 0) \instrumentOne \instrumentTwo \new Staff \partcombine #'(2 . 1) \instrumentOne \instrumentTwo \new Staff \partcombine #'(2 . 2) \instrumentOne \instrumentTwo \new Staff \partcombine #'(2 . 3) \instrumentOne \instrumentTwo \new Staff \partcombine #'(3 . 0) \instrumentOne \instrumentTwo \new Staff \partcombine #'(3 . 1) \instrumentOne \instrumentTwo \new Staff \partcombine #'(3 . 2) \instrumentOne \instrumentTwo \new Staff \partcombine #'(3 . 3) \instrumentOne \instrumentTwo >> Also, Lilypond 2.19 is 5x to 10x slower on my Mac. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Combining voices in American Hymns
Is there a way to combine two voices and print both stems (up and down) when the voices share a note? \partcombine does not appear to do this by default. American SATB hymns are typically engraved with the soprano and alto voices combined and the tenor and bass voices combined. If a note in the soprano voice has the same duration as the note in the alto voice, then the notes for soprano and alto will share a stem. If the durations are different, then there is no sharing. And if the notes are the same duration and the same pitch, then the note with have both an up stem and a down stem. For example, on this web page, about 2/3rds of the way down the page, you can see several hundred(!) scanned versions of Amazing Grace: http://www.hymnary.org/text/amazing_grace_how_sweet_the_sound The Lilypond docs discuss automatic part combining here: http://lilypond.org/doc/v2.18/Documentation/notation/multiple-voices#automatic-part-combining But I don’t see anything that would make \partcombine print two stems when voices share a note. I’d appreciate any help. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Song layout for overhead projection
I have a song transcribed in lilypond notation. It prints very nicely on one page, like you might see in a hymnal. How do I print that same song so that it could be projected on a screen? E.g. printed in landscape, broken up over multiple pages and song verses printed separately and in sequence instead of all together. I’m pretty sure I could manually reconstruct the lilypond song file to achieve this, but I wondering if there are any built in capabilities that could achieve most or all of what I want. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Scheme Markups in TextSpanner's #'edge-text
Hello: Thanks very much for your help on my last topic. I have a situation where I would like to have a \markup as the end text of a TextSpanner. I see that I can do it by using the scheme syntax for the markup as described in section 8.1.2. The markup I want is correctly engraved using the following normal markup syntax. I am using version 2.10.25. \markup {\line {\bold {sehr langsam} \tiny \note #4 #1 = ca 42}} When I try to translate it to scheme in an obvious way, the engraver just leaves out the note altogether. \override TextSpanner #'edge-text = #(cons rit. (markup #:line (#:bold sehr langsam #:tiny #:note 4 1 = ca 42))) I can't find anywhere in the documentation where the process of transcribing \markup into scheme markup is detailed. I'll be grateful for your help. Cheers, David ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Scheme Markups in TextSpanner's #'edge-text
On Sep 3, 2007, at 2:20 PM, Trevor Bača wrote: Assuming that edge-text is gone, you can read about the convert-ly script and try running convert-ly on a simple example of the old edge-text syntax and examine what the new syntax looks like. Last, here's an example to get you started with the new syntax ... \override TextSpanner #'bound-details #'left #'text = \markup { \fontsize #4 picc. } ... which is good because you can use \markup { } directly instead of having to translate to the #( )-looking forms. Hope this helps. Thanks, Trevor. That's very helpful. Bound-details looks like it does what I want, but apparently it didn't make it into 2.10.25 where #'edge-text still rules. ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
\markup different when used in #'bound-details
Hi, As a follow up to my previous message, I'm including a snippet that demonstrates that \markup works differently when used in the bound-details of a TextSpanner. I want the right of the TextSpanner to look exactly like the first markup. The note is not engraved. version = 2.11.32 Cheers,David \version 2.11.32 \score { \relative c'' { \textSpannerUp \override TextSpanner #'bound-details #'left #'text = \markup rit. \override TextSpanner #'bound-details #'right #'text = \markup \line {\bold {sehr langsam} \tiny \note #4 #1 = ca 42} \time 4/4 c4^\markup \line {\bold {sehr langsam} \tiny \note #4 #1 = ca 42} d e f c d e f c d e f c\startTextSpan d e f c d e f\stopTextSpan c1 c c c c \bar |. } }___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \markup different when used in #'bound-details
On Sep 3, 2007, at 5:01 PM, Neil Puttock wrote: t definitely looks like a bug; I'd recommend posting a bug report with a minimal example. Here's a tip for you: you've probably noticed that your note is a bit lower than the text. You can improve its base alignment using the \general-align command: Thanks, Neil, for the message and the tip. I submitted a bug report. Cheers, David ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \once \override works differently on R and r
Thanks, Graham. I see the warning in Ch. 8.2.1 about using MultiMeasureRestText instead of TextScript to move these markups. I was originally thrown off course, because I was trying to use the \translate text markup command described in 8.1.6. It works on TextScript, but is ignored by MultiMeasureRestText. This seems like a bug to me, yes-no? On Sep 1, 2007, at 10:41 PM, Graham Percival wrote: Rests and multi-measure rests are different objects. For general information about this, see chapters 3-5 and 10. You may also want to look at the doc pages for rest (somehwere in ch 6) and multi- measure rest (ch 8). ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \once \override works differently on R and r
Thanks, Valentin. I see now that I misunderstood the function of \translate. I used at as the first operator in a markup in order to move the whole thing which I now understand is not supposed to work as described in the documentation of \raise. I was confused because it did work in one case giving the same results as overriding extra- offset. Clearly, I have a lot to learn about the subtleties of the underlying structures of lilypond. On Sep 2, 2007, at 10:10 AM, Valentin Villenave wrote: The third one is what I would recommend to print the tempo indication (you don't have to put it after the rest, because it's aligned with the barline or the clef). ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
\once \override works differently on R and r
Hi, I've had a fairly pleasant outing on my first lilypond project. Many thanks to those who helped me with the Webern accidentals. Everything was going swimmingly and I was nearly done but for tweaking the position of some TextScripts. Some just wouldn't move. Those that were attached to multi-rests ignore the override extra- offset commands. When I changed to r rests, they worked as expected. Of course, that is an unacceptable solution because it looks very amateurish. Is this a known behavior? It seems like a bug to me. Cheers, David showLily.ly Description: Binary data ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Webern-style accidentals transposition
Hello: I am transcribing Webern's Drei Lieder Op. 25 for alto flute and piano. Though I have studied the documentation, particularly 9.1.1 Automatic Accidentals, I haven't been able to find what I need. 1.) accidentals before every note (including naturals) 2.) transposition without creating a key signature Is this possible in Lilypond? I'm relatively new to it. Cheers, David ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Webern-style accidentals transposition
Thanks, Rune. That does work, but it makes lilypond print a warning for every note. Cheers, David ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Webern-style accidentals transposition
On Aug 31, 2007, at 7:25 PM, Rune Zedeler wrote: Are you sure that you removed the key_engraver as specified in my snippet? -Rune I did not. Now, I have and it works perfectly. ___ (---o---o-o-o---o-o-o( David F. Place mailto:[EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user