Re: --bigpdf
I finally got it working! For future reference, the problem was that I could not make ghostscript use the exported font files from lilypond. I got it working by symlinking from one of the hardcoded font search paths (/usr/local/share/ghostscript) into the font export directory. Also I use pdfcrop in my chain and for the files produced with --pspdfopt=TeX-GS, pdfcrop doesn’t work correctly. pdfcrop uses gs with -sDEVICE=bbox to get the bounding box of the pdf but it runs gs with -dSAFER which prevents gs from loading the exported font files. I suspect it is because they are not the actual font files but only wrappers linking to the real font files. The only way I could resolve that was to either patch pdfcrop to remove -dSAFER or to ”manually” point gs to the actual font files by placing their path in the environment before calling pdfcrop: GS_FONTPATH=/Library/Fonts/:/Applications/LilyPond.app/Contents/Resources/share/lilypond/current/fonts/otf/ pdfcrop myscore.pdf If anyone has a cleaner solution I would be glad to hear about it! Erik > 27 sep. 2021 kl. 20:47 skrev Erik Ronström : > >> That option was removed again, but as far as I understand [1] you can >> get similar tunings with "--pspdfopt=".
Re: --bigpdf
> That option was removed again, but as far as I understand [1] you can > get similar tunings with "--pspdfopt=". Thank you, I think that is what I was looking for! However I didn’t get it to work: now the fonts are not embedded at all and GS does not load them: Querying operating system for font files... Substituting font Helvetica for Emmentaler-20. Loading NimbusSanL-Reg font from /usr/local/share/ghostscript/9.19/Resource/Font/NimbusSanL-Reg... 7031772 5679169 8204340 6720995 3 done. Substituting font Helvetica for Emmentaler-14. Substituting font Helvetica-Bold for CMUSerif-Bold. Loading NimbusSanL-Bol font from /usr/local/share/ghostscript/9.19/Resource/Font/NimbusSanL-Bol... 7190500 5866190 8358820 6850270 3 done. Substituting font Helvetica for Emmentaler-13. Page 6 Substituting font Helvetica for Emmentaler-20. Substituting font Helvetica for Emmentaler-14. Substituting font Helvetica-Bold for CMUSerif-Bold. Substituting font Helvetica for Emmentaler-13. […] Do I have to install the fonts used system-wide somehow? Or can I use the lilypond font export option to feed the used fonts into GS? Erik
--bigpdf
Hi, A couple of years ago, Knut Petersen submitted a patch for a --bigpdf option: https://sourceforge.net/p/testlilyissues/issues/4251/ Was this option ever included in the main lilypond code base? The reason I’m asking is that I just downloaded lilypond 2.22.1 (on macOS, via homebrew) and it doesn’t recognise it: unrecognized option: `--bigpdf’ Obviously I could try and apply the patch to the current code and recompile it myself but on the other hand, since it is a useful feature (at least for me!) I think it would be nice to have it in the official version! Erik
Re: Barline glyphs in lilyglyphs
If you’re not specifically requiring the Feta font, you could try Bravura Text (https://www.smufl.org/fonts/) See https://w3c.github.io/smufl/gitbook/tables/barlines.html https://w3c.github.io/smufl/gitbook/tables/repeats.html Regards Erik > 30 maj 2018 kl. 20:35 skrev Sam Bivens : > > Hi all, > > How can I invoke a barline glyph in lilyglyphs? I'm having trouble finding a > list of glyphs akin to > http://lilypond.org/doc/v2.18/Documentation/notation/the-feta-font > > Thanks, > > Sam > > > ___ > 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: Key signatures in modes other than Ionian & Aeolian
>> Even if my opinion may differ from the general opinion here, I think that in >> popular music, one would use standard D major key signature. >> Reason: Two sharps clearly show D major tonic and the characteristic mixo >> tone C (flat seventh) stands out in the sheet music by the accidental used. > I very much agree. In my impression, nowadays most musicians (save medieval > or Renaissance music specialists and maybe Jazz musicians) tend to only > differentiate between "major-like" and "minor-like" scales/keys Another exception is the pretty large and vivid community of Irish/Celtic traditional music, where key signatures usually written corresponding to the actual mode (so e.g. a tune in D mixolydian would be written with only one sharp). This makes sense as the music is (for the most part) strictly modal and diatonic. Many musicians in this genre use abc notation rather than sheet music, and in abc, mode is (almost) always defined explicitly: http://abcnotation.com/wiki/abc:standard:v2.1#kkey Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [OT] Grammatic gender
Swedish (if anyone’s interested) has two grammatical genders, but they are not connected to male/female. Third person singular ”den”/”det” would both just translate to ”it” in English, whereas ”han” and ”hon” (”he” and ”she”) are separate pronouns only used for people (plus animals and things to which you have a personal relation). (So I don’t know if you could say that we technically have four grammatical genders, I have a vague memory from my school time about it) Erik > 15 nov. 2017 kl. 23:32 skrev Wol's lists <antli...@youngman.org.uk>: > > On 15/11/17 20:32, David Kastrup wrote: >> David Wright <lily...@lionunicorn.co.uk> writes: >>> On Wed 15 Nov 2017 at 11:56:07 (-0500), Kieren MacMillan wrote: >>>> Hi Simon, >>>> > >>> >>> A duchess has gender, but I don't see that the word "duchess" has >>> grammatical gender. How is that expressed? >> "The duchess ate her lunch" as opposed to "The duchess ate its lunch"? >> German: "Das Mädchen aß seine Mahlzeit.". > > Except that "her" refers to the person, not the noun ... > > Mind you, I would feel happy with the following: > The cat ate its lunch (indeterminate gender) > The tom ate its lunch (we know it's male because it's a tom) > The queen ate its lunch (we know it's female because it's a queen) > > But I suspect that's because we rarely use "tom" or "queen", and your mind > substitutes the indeterminate "cat". >>>>> It may seem so, because the articles for all three genders are the >>>>> same, but words are referred to by ‘he’, ‘she’, or ‘it’. In >>>>> English the sun is male, the moon female >>>> >>>> I've spoken English my entire life, and I have literally never heard >>>> an exchange like: >>>> >>>> Q: Is the sun up yet? >>>> A: Yes — he rose an hour ago. >>> >>> Neither have I, though there is the song "The sun has got his hat on". >>> Again, personification, not grammar. >> "Sometime too hot the eye of heaven shines >> And often is his gold complexion dimm'd" >> Sonnet 18 by Shakespeare. > But again, personification, not grammar. To me that feels slightly weird - as > far as I am concerned the sun is "it". > > Cheers, > Wol > > ___ > 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: Gotlandstoner
> If I apply the attached patch to a cloned git archive I get the following > results with ghostscript 9.06: > > bok2: Original size 9.996.691 bytes, optimized size 2.043.380 bytes > bok3: Original size 13.706.324 bytes, optimized size 2.447.232 bytes > > Unfortunately I found that a current git master of ghostscript does not work > as intended. I have to bisect and investigate that problem. Lovely! Thanks again! >>> A lot of pages contain a lot of white space. It would be possible to >>> include every staff as a paragraph instead of including the whole pdfs …. >>> >> Yeah, but that is intentional. I didn’t want tunes split over page breaks >> (except the tunes that are too long to fit in one page). Actually that was >> the main reason for not using lilypond-book: I wanted more fine-grained >> control over vertical spacing, and I found that much easier to achieve when >> lilypond takes care of the whole typesetting process. > > I did not write about using lilypond-book, I never use it and prefer > pdf(la)tex/xe(la)tex/lua(la)tex for similar reasons. I know, I just meant that I find it easier to tweak vertical spacing in lilypond than working with individual staff systems (be it lilypond-book, latex or whatever). > I agree that there are valid reasons not to split over page breaks if a page > turn would be the result. But why do you have objections against a score > starting on an even page and continuing on an uneven page? Actually, I started out that way. But it turned out that the reduction in number of pages was not very big in the end (just over 20%), so I went for the tradeoff of paying a few more pages for getting as many tunes as possible fit into a single page. Of course that’s mainly an aesthetic decision (and I do find it slightly easier when sightreading) but another benefit is that if you want to print a single tune from the pdf file, you generally only have to print one page. > A possible extension of your work: You might generate score videos (example) > and add links to those videos in your books …. Nice! Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Gotlandstoner
> > Nice work, but your pdf includes many different subsets of the lilypond fonts > and is several MB to big because of this. > > Use the --bigpdfs option of lilypond in step 3. The resulting pdfs are > _much_ bigger because all glyphs from the fonts are included. > > … Wow, thanks, I hadn’t thought of that at all! There’s always something more to learn! :) > A lot of pages contain a lot of white space. It would be possible to include > every staff as a paragraph instead of including the whole pdfs …. Yeah, but that is intentional. I didn’t want tunes split over page breaks (except the tunes that are too long to fit in one page). Actually that was the main reason for not using lilypond-book: I wanted more fine-grained control over vertical spacing, and I found that much easier to achieve when lilypond takes care of the whole typesetting process. Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Gotlandstoner
>> I just wanted to say that in July, we published a reprint of Gotlandstoner, >> a collection of about 500 traditional fiddle tunes from Gotland, Sweden. The >> reprint was typeset with Lilypond. > > Impressive! Could you describe the production process for this? In the > PDF properties I can see references to LuaTeX and TeX Live 2016, so I'm > guessing that's what produced it. Was lilypond-book used there? I have > dreams of doing a project this size, and I'm still trying to understand > the best way to structure it. I’m glad you asked! :) 1) One-time conversion from abc files to lilypond ”notes files” – lilypond source, but only the notes (and key and time signatures etc) 2) The ”notes files” are combined with a song template using a config file, to produce lilypond ”song files” – complete lilypond documents 3) The song files are run through lilypond to produce pdf files 4) The text information from the abc source is extracted and inserted into a book template, again using the config file, to produce a ”book document” in latex format, which also includes the individual song pdf files 5) The latex document is run through LuaLaTEX I didn’t use lilypond-book as I needed more control over the process, but the overall principle is the same. Apart from the first one-time conversion from abc, all steps are scripted and a hash is appended to the names of all generated files, so that changing a single tune (in the ”notes file”) requires only a single terminal command to rebuild the complete book, and only the affected song is recompiled. Having the entire project under version control has been a big help, I can highly recommend using git (or something similar) for any bigger Lilypond project! Feel free to check out the project on github (https://github.com/erikronstrom/gotlandstoner)! The bin folder contains all the scripts (but be warned that the code is a bit messy and mostly undocumented). Most scripts are written in perl. If you have any more specific questions, also feel free to email me privately! Regards Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Gotlandstoner
Hi folks, I just wanted to say that in July, we published a reprint of Gotlandstoner, a collection of about 500 traditional fiddle tunes from Gotland, Sweden. The reprint was typeset with Lilypond. The entire material is available on www.gotlandstoner.se, both the final PDF file used for printing, and an online version for browsing individual tunes. Lilypond has been both a prerequisite and an important inspiration for this project coming true, so thank you for making this wonderful tool! Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Reverting TimeSignature after box notation
Brilliant! Thanks! Erik lör 5 aug. 2017 kl 21:54 skrev Thomas Morley <thomasmorle...@gmail.com>: > 2017-08-05 21:09 GMT+02:00 Erik Natanael Gustafsson > <eriknatanaelgustafs...@gmail.com>: > > > Here is the MWE I arraived at (I don't know how much of the structure > code > > is usually posted here so I'm posting the whole file with score > definition > > and all): > [skipping the "whole file"] > > A minimal would be: > > \version "2.18.2" > > { > \time 4/4 r1 > \set Staff.timeSignatureFraction = 4/4 > \time 2/4 r2 > \time 3/4 r2. > } > > Two suggestions: > > { > \time 4/4 r1 > \once \set Staff.timeSignatureFraction = 4/4 > \time 2/4 r2 > \time 3/4 r2. > } > > { > \time 4/4 r1 > \set Staff.timeSignatureFraction = 4/4 > \time 2/4 r2 > \unset Staff.timeSignatureFraction > \time 3/4 r2. > } > > -Harm > -- Erik Natanael Gustafsson --- ► Composer, musician ◄ ❂ Website: https://eriknatanael.com/ ❂ SoundCloud: https://soundcloud.com/enatanael ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Reverting TimeSignature after box notation
Sorry for the confusion. Seems like the first reply I got also only went to me and not to the list. This was written by Holland Hopson: "Hi Erik, Your example doesn’t compile for me. Maybe you can make a minimal working example? I’ve had good results using frameEngraver-bars-and-boxes.ily for box notation. Best, Holland" So I made a minimal example and found the error in the process ("\set Staff.timeSignatureFraction = 4/4" disables all time signatures after that point, it had nothing to do with the markup). But what about if I only want to print an "alternative" time signature (fraction) for one bar and then go back to the normal ones? Holland also attached the frameEngraver-bars-and-boxes.ily and I asked for how to use it and he answered that so that's solved. Here is the MWE I arraived at (I don't know how much of the structure code is usually posted here so I'm posting the whole file with score definition and all): \version "2.18.2" \header { title = "Rymdmusik" composer = "Erik Natanael Gustafsson" poet = "Jane Barlow" tagline = ##f } global = { \key c \major \time 4/4 \tempo "Svävande" 4 = 70 } altoVoice = \relative c' { \global \dynamicUp % Music follows here. s1 | a'2 d8 c a g | \time 5/4 d4. g8 e g a,2 \bar "||"| \time 4/4 a'2 d8 c a g | \time 5/4 d4. g8 a g d'2 \bar "||" | \time 5/8 dis8 cis b cis a \bar"|"| \time 4/4 f g es des a'2 | % Mellanbit \time #'(3 2 2) 7/8 r4. r2 | \time 3/4 r2. \bar "||"| \time #'(2 2 4 1) 9/8 r2 r2 r8 | \time #'(3 4) 7/8 r4. r2 \bar "||"| \time 4/4 r1 | \time 3/4 r2. | cis2.~\< | cis4\> r2\! | } left = \relative c' { \global % Music follows here. a8 e' d a'8 g d' c g' \bar"" | %\override Staff.TimeSignature.stencil = ##f s1 | s1 s4 | s1 | s1 s4 | %\revert Staff.TimeSignature.stencil \clef "treble" %\set Staff.timeSignatureFraction = 4/4 % If I add this in no more time signature will be shown \scaleDurations 5/8{ g,8 cis b f' dis a' g cis |} s1 | \scaleDurations 7/6 { f,8 bes as des ces e } %\set Staff.timeSignatureFraction = 4/4 \scaleDurations 6/8 { gis8 fis e'4^"x3" ais,8 gis e'4^"x3" } \change Staff = "left" s1 s8 | s2 s4. | r2. \tuplet 3/2 { fis,,8 gis a } | eis''2 \tuplet 3/2 { fis,,8 gis a } | eis''8 cis4. \ottava #1 \tuplet 3/2 {fis8 eis cis } | } altoVoicePart = \new Staff \with { instrumentName = "Alto" midiInstrument = "choir aahs" } { \altoVoice } pianoPart = \new PianoStaff \with { \override StaffGrouper.staffgroup-staff-spacing.padding = #20 instrumentName = "Piano" } << \new Staff = "left" \with { midiInstrument = "acoustic grand" } { \clef bass \left } >> \score { << \altoVoicePart \pianoPart >> \layout { \context { \Score \override StaffGrouper.staff-staff-spacing.padding = #1 } \context { \Staff } } \midi { \tempo 4=70 } } lör 5 aug. 2017 kl 19:53 skrev Thomas Morley <thomasmorle...@gmail.com>: > 2017-08-05 19:28 GMT+02:00 Erik Natanael Gustafsson > <eriknatanaelgustafs...@gmail.com>: > > Whoops, I accidentally sent my reply only to Holland. Here it is again: > > > > " > > Good idea! I made a minimal example > > Where is it? > > > and in the process I realised that time > > signatures stopped being printed after I used "\set > > Staff.timeSignatureFraction = 4/4" (the box markup had nothing to do with > > it). Is there any way of continuing to print the default time signature > > after one bar of polymetric notation? > > "polymetric notation?" > Minimal example please! > > > > > Thanks for the code! > > Which code? > I'm tired of looking into the archives whether there is some code > somewhere. > Finding: > > > > > > > > > > > >Could you point me to a resource for how to use it? I > > mean, where I put that file, how I invoke it in my score etc. > > No idea what you're talking about. > > > -Har -- Erik Natanael Gustafsson --- ► Composer, musician ◄ ❂ Website: https://eriknatanael.com/ ❂ SoundCloud: https://soundcloud.com/enatanael ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Reverting TimeSignature after box notation
Whoops, I accidentally sent my reply only to Holland. Here it is again: " Good idea! I made a minimal example and in the process I realised that time signatures stopped being printed after I used "\set Staff.timeSignatureFraction = 4/4" (the box markup had nothing to do with it). Is there any way of continuing to print the default time signature after one bar of polymetric notation? Thanks for the code! Could you point me to a resource for how to use it? I mean, where I put that file, how I invoke it in my score etc. Cheers, Erik" lör 5 aug. 2017 kl 17:02 skrev Knute Snortum <ksnor...@gmail.com>: > You'll probably get more responses if you create a Minimal Working Example > (MWE). This is the smallest amount of code that will reproduce the problem. > > I often find that I stumble over a solution when I'm creating my MWE. > > > --- > Knute Snortum > (via Gmail) > > On Thu, Aug 3, 2017 at 3:27 AM, Erik Natanael Gustafsson < > eriknatanaelgustafs...@gmail.com> wrote: > >> Hi! >> >> I'm working on a piece while learning lilypond. It uses a bit of box >> notation so I have the time signatures hidden in the beginning, but then I >> want them back. >> >> After using >> \override Staff.TimeSignature.stencil = ##f >> to remove my time signatures, I can revert back using >> \revert Staff.TimeSignature.stencil >> if I place it before this block of code (making boxes for my box notation) >> >> s2-\markup { >> \with-dimensions #'(0 . 0) #'(0 . 0) >> \override #'(thickness . 3) >> \box >> \with-dimensions #'(-2 . 100) #'(-10 . 10) >> \null} s4. \bar""| >> s4.-\markup { >> \with-dimensions #'(0 . 0) #'(0 . 0) >> \box >> \with-dimensions #'(-2 . 15) #'(0 . 10) >> \null} s4.-\markup { >> \with-dimensions #'(0 . 0) #'(0 . 0) >> \box >> \with-dimensions #'(-2 . 9) #'(0 . 10) >> \null}| >> >> but if I place it after this code it has no effect (and gives no error). >> What am I doing wrong, is it a bug, is there a workaround? I'm on lilypond >> 2.18.2. >> >> Cheers, >> Erik Natanael Gustafsson >> >> ___ >> lilypond-user mailing list >> lilypond-user@gnu.org >> https://lists.gnu.org/mailman/listinfo/lilypond-user >> >> > -- Erik Natanael Gustafsson --- ► Composer, musician ◄ ❂ Website: https://eriknatanael.com/ ❂ SoundCloud: https://soundcloud.com/enatanael ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Reverting TimeSignature after box notation
Hi! I'm working on a piece while learning lilypond. It uses a bit of box notation so I have the time signatures hidden in the beginning, but then I want them back. After using \override Staff.TimeSignature.stencil = ##f to remove my time signatures, I can revert back using \revert Staff.TimeSignature.stencil if I place it before this block of code (making boxes for my box notation) s2-\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \override #'(thickness . 3) \box \with-dimensions #'(-2 . 100) #'(-10 . 10) \null} s4. \bar""| s4.-\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \box \with-dimensions #'(-2 . 15) #'(0 . 10) \null} s4.-\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \box \with-dimensions #'(-2 . 9) #'(0 . 10) \null}| but if I place it after this code it has no effect (and gives no error). What am I doing wrong, is it a bug, is there a workaround? I'm on lilypond 2.18.2. Cheers, Erik Natanael Gustafsson ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Center-align a score
> There are paper variables to achieve ragged-right and ragged-last > layout. Is there a way to achieve center-aligned music in a score? I’ve been fairly successful in the past with rendering lilypond to svg, and then writing perl scripts to automatically edit the svg file (which is a lot easier than manipulating a pdf). In those specific situations, svg happened to be my target format anyway, but if you want pdf I suppose you can convert the svg to pdf somehow (?). I don’t know whether this would make sense for you at all, just wanted to mention it! Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Outputting current moment to svg
Many thanks! I should have found those discussions after more than two hours of googling, but somehow I didn’t… Erik > 16 jan. 2017 kl. 01:57 skrev David Nalesnik <david.nales...@gmail.com>: > > Hi Erik, > > On Sun, Jan 15, 2017 at 6:14 PM, Erik Ronström <e...@ompom.se> wrote: >> Hi, >> >> I’m trying to output some identifiers to my svg, so that I can access >> different objects later. >> >> I found this thread: >> http://lilypond.1069038.n5.nabble.com/id-s-for-svg-elements-td152945.html >> >> explaining how to output pitch, which is useful. But I also want to output >> the ”timing” (current moment) of each note, and I can’t figure out how to do >> it. >> >> This question seems to have been asked before >> (https://lists.gnu.org/archive/html/lilypond-user/2013-12/msg00207.html), >> but I couldn’t find any conclusive answer. >> >> Any examples greatly appreciated! >> > > Try the discussion here: > http://www.mail-archive.com/lilypond-user@gnu.org/msg114527.html > > and the follow-up thread here: > http://www.mail-archive.com/lilypond-user@gnu.org/msg117641.html > > More information is output than just moment, but hopefully the code > there will be useful to you. > > -David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Outputting current moment to svg
Hi, I’m trying to output some identifiers to my svg, so that I can access different objects later. I found this thread: http://lilypond.1069038.n5.nabble.com/id-s-for-svg-elements-td152945.html explaining how to output pitch, which is useful. But I also want to output the ”timing” (current moment) of each note, and I can’t figure out how to do it. This question seems to have been asked before (https://lists.gnu.org/archive/html/lilypond-user/2013-12/msg00207.html), but I couldn’t find any conclusive answer. Any examples greatly appreciated! Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Re; New LilyPond website
> In fact, I tend to be confused about the different layout and sectioning of > the manual pages for stable and unstable. Now suddenly I wonder whether in > the long run it would be a good idea to have an identical structure for > downloads, manuals, regtests etc. for stable and unstable, but use a > different (background) color (scheme) for the two? +1 ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: New LilyPond website
Hi, While the new site may give a ”nicer” or more ”friendly” impression (depending on taste), I actually found it much harder to use, especially on a laptop screen where vertical space is limited: scrolling is needed for almost every action. While the old site may not be the most beautiful (although I have seen worse!), it is very functional, with good overview and almost all resources available with a single click from the first screen, without any scrolling. So as a Lilypond user, I certainly prefer the old design, as function is far more important to me than design. But perhaps non-Lilypond users stumbling on the site are discouraged by the somewhat old-fashioned look? (OTOH, as someone pointed out, potential Lilypond users are probably already more or less deep into music typesetting, and hopefully would have a more deep perspective than just being deterred by the general website design). Would it thus make sense to have a public-facing ”front-page”, with the current (more ”traditional”) webpage easily accessible for those who are already using Lilypond? (I’m actually not convinced myself that this is a good idea, I just wanted to raise the question) Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Choosing glyph variants
> if it’s about easier maintenance or nicer code, you might do something like > this: > > %% > \version "2.19.47" > computer-modern = ##f > flqq = #(if computer-modern #{ \markup { \char #"#xF101" } #} "»") > \markup \flqq > %% Nice one, thanks! Actually, in my specific case, I’m typesetting a book of many hundred folk tunes from an abc source, so I’m already scripting the generation of the .ly files. So I can just do the replacement there. Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Choosing glyph variants
I found another workaround: even though the glyph variants share the same codepoint in the font, the alternative glyphs are actually defined in the unicode ”Private Use Area”, so they also have codepoints of their own. So I just replaced all » characters in the lilypond source with the unicode character #xF101. The drawback is that this codepoint is specific to the font, so when editing the source files, these characters is not displayed ”correctly”. And if I would like to change lyrics font for the score, the quotes won’t show up. Erik > 29 aug. 2016 kl. 22:02 skrev Erik Ronström <e...@ompom.se>: > > Hi, > > I’m using Computer Modern in my score to match the surrounding text (set in > LaTeX). However, I discovered that the french quotes (guillemet) display > differently in the lyrics, compared to the TeX text (see attached image). > > After digging into it, I found that the Computer Modern font contain > different glyph variants of the guillemet, encoded to the same codepoint in > the font. LaTeX chooses a specific variant because of the language context (I > think), while lilypond uses the default glyph. > > So, the question is: Is it possible to choose glyph variants for text in > lilypond? > > (Plan B would be to edit the font file in FontForge and replace the default > glyph with the variant I want, but I wouldn’t do that unless I really have > to…) > > Erik > > > > ___ > 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: Adding augmentation dots
>> I would like to add a dot, but \override Dots.dot-count = #1 has no effect. > > You can also use (e.g.) > > c4.*2/3 > > This puts the dot on, but only uses up a quarter note worth of time. Nice trick, thanks! Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Adding augmentation dots
Hi, For a dotted note, it’s possible to override the number of dots actually drawn. But when there are no dots to begin with? I would like to add a dot, but \override Dots.dot-count = #1 has no effect. Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Open Sound control?
AFAIK, OSC is only a communication protocol – what is sent over the protocol is up to the application. So it is not a replacement for MIDI, rather a complement. Erik > 13 aug. 2016 kl. 15:52 skrev bb <bb-543...@telecolumbus.net>: > > https://de.wikipedia.org/wiki/Open_Sound_Control > is sayed to replace MIDI. Is this something usefull for lilypond? Can one > save osc files like MIDI files? > > Kindly > > ___ > 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: Custom fonts
> However, for some reason it doesn’t work: #(define fonts …) seems to have no > effect at all in my document. Any tips for why? Never mind: I found this thread: http://lilypond.1069038.n5.nabble.com/Make-pango-font-tree-doesn-t-work-with-set-global-staff-size-td15920.html which explained that set-global-staff-size seems to reset all fonts. Moving set-global-staff-size to before the \paper block solves the problem. Thanks again! Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Custom fonts
> Do you really want to change only the Lyrics font? Or is it ok to change the > fonts in the whole document? Here is how to do that in LilyPond version 2.19 > and 2.18: Thanks, that would be the best solution! However, for some reason it doesn’t work: #(define fonts …) seems to have no effect at all in my document. Any tips for why? Erik > > %%% begin LilyPond code > > %{ > \version "2.19.46" > > \paper { > #(define fonts >(set-global-fonts >#:roman "LMRoman10" >#:sans "LMSans10" >#:typewriter "LMMono10" >#:factor (/ staff-height pt 20) > )) > } > %} > > %%{ > \version "2.18.2" > > \paper { > #(define fonts > (make-pango-font-tree > "LMRoman10" > "LMSans10" > "LMMono10" > (/ staff-height pt 20))) > } > %} > > > \relative { > c' d e f g2 g > } > > \addlyrics { > \markup \typewriter Al -- le mei -- ne \markup \italic Ent -- \markup \bold > chen > } > > %%% end LilyPond code ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Custom fonts
Hi, I’m trying to use Computer Modern for lyrics, and after installing the otf version of the font, the following works well: \layout { \context { \Lyrics \override LyricText #'font-size = #-1 \override LyricText #'font-name = #"CMU Serif" } } However, making italic text with \markup { \italic text } doesn’t work anymore. Of course, I can define my own macro, but isn’t there a built-in mechanism to resolve different fonts of the same typeface/font family? Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Padding of VoltaBrackets
That works, thanks! Erik > 8 aug. 2016 kl. 11:22 skrev Pierre Perol-Schneider > <pierre.schneider.pa...@gmail.com>: > > Hi Erik, > > Try: \override Score.VoltaBracketSpanner #'padding = #4 > > Cheers, > Pierre > > 2016-08-08 10:58 GMT+02:00 Erik Ronström <e...@ompom.se>: > Hi List, > > How do I move VoltaBrackets further from the staff? > > \override Score.VoltaBracket #'padding = #4 > or > \override Score.VoltaBracket #'outside-staff-padding = #4 > > seems to have no effect > > Erik > > > > ___ > 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: bis
This works perfectly, thanks a lot! Erik > 25 juli 2016 kl. 14:56 skrev David Nalesnik <david.nales...@gmail.com>: > > On Mon, Jul 25, 2016 at 6:54 AM, <e...@ompom.se> wrote: >> >> Thanks a lot, I'll check it out! >> >> Erik >> >> >> - Ursprungligt meddelande - >> Från: >> "Andrew Bernard" <andrew.bern...@gmail.com> >> >> Till: >> "lilypond-user Mailinglist" <lilypond-user@gnu.org> >> Kopia: >> >> Skickat: >> Mon, 25 Jul 2016 19:23:40 +1000 >> Ämne: >> Re: bis >> >> >> >> Hi Erik, >> >> This is a use for a text spanner with centred text that I had been >> asking about on the list for some time, Eventually I wrote a function >> to do it with the kind help of Thomas Morley also. Very useful - I >> always said so! >> > > This is a good solution, but one drawback is the left and right bounds > of the text spanner aren't set to the column that holds the bar lines, > rather to the NoteColumn objects. One consequence is that you > wouldn't get automatic alignment with bar lines, if that's what you > want. > > Another solution is available on the LSR: > http://lsr.di.unimi.it/LSR/Snippet?id=954. > > Add this function: > > textedMeasureBracket = > #(define-music-function > (parser location str mus) > (markup? ly:music?) > #{ >\override Staff.MeasureCounter.stencil = >#(lambda (grob) (test-stencil grob str)) >\startMeasureCount >#mus >\stopMeasureCount > #} > ) > > Use it like this: > > twice = \markup { \italic "bis" } > > { > \textedMeasureBracket \twice { g'1 g'1 } > } > > > HTH, > David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Padding of VoltaBrackets
Hi List, How do I move VoltaBrackets further from the staff? \override Score.VoltaBracket #'padding = #4 or \override Score.VoltaBracket #'outside-staff-padding = #4 seems to have no effect Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: bis
Thanks a lot, I'll check it out! Erik - Ursprungligt meddelande - Från: "Andrew Bernard" <andrew.bern...@gmail.com> Till:"lilypond-user Mailinglist" <lilypond-user@gnu.org> Kopia: Skickat:Mon, 25 Jul 2016 19:23:40 +1000 Ämne:Re: bis Hi Erik, This is a use for a text spanner with centred text that I had been asking about on the list for some time, Eventually I wrote a function to do it with the kind help of Thomas Morley also. Very useful - I always said so! Have a look at this - it may do what you require. Andrew == snip version "2.19.37" include "/home/andro/lib/lilypond/scheme.ily" % Annotation bracket with centred text. % Andrew Bernard and Thomas Morley TextSpannerCentredText = #(define-music-function (text extra-length) (string? pair?) "Use TextSpanner semantics to create spanner brackets with centred text" #{ once override TextSpanner.after-line-breaking = #(lambda (grob) (let* ( ;; get stencil of grob (stil (ly:grob-property grob 'stencil)) ;; get spanner length (spanner-len (interval-length (ly:stencil-extent stil X))) ;; make stencil from text arg (text-stil (grob-interpret-markup grob (markup #:sans #:upright text))) ;; get text length (text-len (interval-length (ly:stencil-extent text-stil X ;; if text length exceeds the spanner length we cannot really proceed. ;; do nothing - make an ordinary text spanner and warn. (if (>= text-len spanner-len) (begin (ly:warning "text length longer than spanner") #f ) (let* ( ;; get direction, up or down (dir (ly:grob-property grob 'direction)) ;; some padding (padding 1) ;; line thickness (thickness 0.25) ;; extra length on left, negative values shorten (left-ext (car extra-length)) ;; extra length on right, negative values shorten (right-ext (cdr extra-length)) ;; calculate length considering text length (path-part-len (/ (- spanner-len text-len) 2)) ;; make left bracket stencil (path-left-part-stil (make-path-stencil `( moveto ,(- left-ext) ,(* -1 dir) lineto ,(- left-ext) 0 lineto ,path-part-len 0 ) thickness 1 1 #f)) ;; make right bracket stencil (path-right-part-stil (make-path-stencil `( moveto ,(+ path-part-len right-ext) ,(* -1 dir) lineto ,(+ path-part-len right-ext) 0 lineto 0 0 ) thickness 1 1 #f)) ;; make complete stencil combining left and right parts ;; and text (full-stil (stack-stencils X RIGHT padding (list path-left-part-stil (centered-stencil text-stil) path-right-part-stil))) ) ;; set grob stencil to fully constructed stencil (ly:grob-set-property! grob 'stencil full-stil) #} ) { c' d' ees' fis' once override TextSpanner.direction = #DOWN TextSpannerCentredText "6"" #'(0 . 0) g' startTextSpan a' bes' c'' stopTextSpan TextSpannerCentredText "x3" #'(2 . 1) bes'startTextSpan a' g' c'stopTextSpan TextSpannerCentredText "x3" #'(2 . -6) c''1startTextSpan c''1stopTextSpan } == snip ___ 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: bis
Just the markup would work fine, I don't need correct Midi playback! Attached is a mockup. I've seen this notation in a couple of old tune books of Swedish traditional music, and I thought it was a common thing, until I started googling for it - seems to be quite rare actually... But it is a very useful thing, as it effectively introduces nested repeats in a very readable way! Erik - Ursprungligt meddelande - Från: "Chris Yate" <chrisy...@gmail.com> Till:<e...@ompom.se>, <lilypond-user@gnu.org> Kopia: Skickat:Sun, 24 Jul 2016 23:32:36 + Ämne:Re: bis Erik, Do you want it to reproduce that in Midi, or just create the appropriate markup? Could you create a mockup of what you want and post it (I'm sure it's possible if not quite easy to create the output). It's not a style of repeats I've ever seen. Chris On Mon, 25 Jul 2016 at 00:24 <e...@ompom.se [1]> wrote: Hi List, Does Lilypond have a built-in way of making "bis" repeats? I.e. a horizontal bracket over one or a few measures with the word "bis", indicating that the section is to be played twice. Regards Erik ___ lilypond-user mailing list lilypond-user@gnu.org [2] https://lists.gnu.org/mailman/listinfo/lilypond-user [3] Links: -- [1] mailto:e...@ompom.se [2] mailto:lilypond-user@gnu.org [3] https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
bis
Hi List, Does Lilypond have a built-in way of making "bis" repeats? I.e. a horizontal bracket over one or a few measures with the word "bis", indicating that the section is to be played twice. Regards Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Ace editor - Lilypond support
Thanks for the input! I'll have a look at the VIM files, although I'm not familiar with their format. I've found that there is an automatic importer for Ace that can take a syntax described in a .tmLanguage file (Text Mate format). There are such files for Lilypond here: https://github.com/yrammos/SubLilyPond I haven't given it a try yet but the generated files might be a good enough start for getting Lilypond support in Ace. //Erik On Mon, Mar 9, 2015 at 5:39 PM, Michael Hendry hendry.mich...@gmail.com wrote: On 9 Mar 2015, at 13:34, Erik Nilsson nilsso...@gmail.com wrote: Hi, I'm considering creating a syntax highlighter for Lilypond code for the Ace javascript code editor (http://ace.c9.io/). I think it would be useful for tools like for instance weblily (http://www.weblily.net/). Is there a clear definition of the lilypond language that one could use as the basis for such work? Does anybody know of other syntax highlighters out there (Frescobaldi, Emacs, Sublime or whatever) that would be a good starting point (being fairly complete, readable code). Regards, Erik I’m not sure if this is what you’re looking for, Erik, but my installation of lilypond (on iMac) includes the following files: /Applications/LilyPond.app/Contents/Resources/share/lilypond/current/vim/compiler/lilypond.vim /Applications/LilyPond.app/Contents/Resources/share/lilypond/current/vim/ftdetect/lilypond.vim /Applications/LilyPond.app/Contents/Resources/share/lilypond/current/vim/ftplugin/lilypond.vim /Applications/LilyPond.app/Contents/Resources/share/lilypond/current/vim/indent/lilypond.vim /Applications/LilyPond.app/Contents/Resources/share/lilypond/current/vim/syntax/lilypond.vim …which allow MacVim to provide syntax highlighting for lilypond. I’m not sure now whether these came with lilypond, or whether I installed them separately. Michael ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Ace editor - Lilypond support
Hi, I'm considering creating a syntax highlighter for Lilypond code for the Ace javascript code editor (http://ace.c9.io/). I think it would be useful for tools like for instance weblily (http://www.weblily.net/). Is there a clear definition of the lilypond language that one could use as the basis for such work? Does anybody know of other syntax highlighters out there (Frescobaldi, Emacs, Sublime or whatever) that would be a good starting point (being fairly complete, readable code). Regards, Erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: automatic fingering annotation
thanks a lot david, i learned a lot from studying this! looks like there would be two options to get lilypond to report pitch info: \void \displayLilyMusic % types absolute pitches to console \include event-listener.ly % writes file w/midi numbers but your example inspired me to figure it out in scheme, see attached. i would think auto-fingering-diagrams would be of general interest -- is it worth submitting either to the snippet library or the core scm library? some questions: - how could i pass an argument to the engraver (like 'recorder, to tell it what diagrams to use)? - i can't find doc on make-engraver -- are there any? - this method ignored the layout overrides i need (that worked on manually entered markups): TextScript.staff-padding TextScript.self-alignment-X how do i get them back? - i like your 'display-fingering property, but i removed it for simplicity while trying to learn, i'll add it back... i also found http://www.lilypond.org/doc/v2.17/Documentation/learning/advanced-tweaks-with-scheme, which seems like it should also work and is simpler than defining a new engraver. however, i can't figure out how to find the right object/property to give a note/column a markup. NoteHead.text doesn't do anything. where do i look this up? ancillary layout q's: - getting the diagrams to line up looks impossible -- staff-padding isn't general enough -- woodwind diagrams are tall, of variable height, and their reference point is typically at their bottom. can staff-padding be sensitive to variable heights and appropriate for either above/below the staff? also, there seems to be no way to account for staff objects that extend beyond the anticipated amount. why not be able to assign objects to arbitrary groupings, and then apply justification/alignment rules to those groups? this could lead to contradictory constraints, but that could just be an error. - it took me a while to realize i had to set TextScript.staff-padding, not some other object like DynamicLineSpanner (which http://www.lilypond.org/doc/v2.17/Documentation/learning/fixing-overlapping-notation#the-staff_002dpadding-property suggests works even for non-spanning objects ) -- where are objects/properties comprehensively listed? - why can't i \context {\Score staff-padding = #5}? - self-alignment-X is behaving strangely -- on the first line, the diagrams align to the left note in a chord, but to the right note on subsequent lines. why? - i can't find anything along the lines of VerticalAxisGroup.nonstaff-unrelatedstaff-spacing that will give me additional spacing between lines, and the diagrams are crowding the next line. where do i look this up? - and of course, if anyone can help me figure out why that 1h ('half-covered') works for eg flute, but not on my recorder thumb :( thanks alot for the help! -e recorder fingering.ly Description: Binary data ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
automatic fingering annotation
hi- i'm writing some software that generates .ly files and want to offer the option to automatically add (woodwind) fingering chart annotations to the engraving. the project is in haskell and i'd rather not learn scheme or lilypond internals. the problem is determining the octave -- i want to support relative octave entry (http://lilypond.org/doc/v2.18/Documentation/notation/writing-pitches#relative-octave-entry), but i don't want to reimplement relative octave detection (not because it's hard, but i in principle don't want to duplicate logic). i would think automatic fingering annotation would be a desirable feature in lilypond itself -- perhaps a markup flag where i request the standard fingering for the note, maybe some way of selecting a predefined alternate fingering (nice to have would be rules for determining prefered fingerings from the previous note, a way to define fingering libraries to choose from, etc). i assume that wouldn't be anyone's priority to implement, so either i could try to myself from within lilypond, or (my preference) i need some way to ask lilypond for the octave -- either an API or command-line program or something where i give an .ly snippet and lilypond gives me back the absolute pitches. what do you think would be the best way? thanks! -erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: recorder diagram and some woodwind-diagram bugs
ok here you go On Sun, Oct 12, 2014 at 2:31 AM, James pkx1...@gmail.com wrote: Erik, On 12/10/14 04:05, erik flister wrote: hi there- sorry for cross posting to all the lists, i'd rather not subscribe and this post seems to apply to all three. attached is a recorder diagram patch, would love for feedback and for it to be incorporated. hopefully it's ok it's not actually in patch format, it just drops into display-woodwind-diagrams.scm (of course a corresponding entry needs to be added to woodwind-data-assembly-instructions in that file as well). Can you make it patch format? Then I can help push this through the proper review process. Although if you do want to wait for people to comment (and I am not qualified to ... sorry) then that is fine, but it will still need to be in patch format in the end, it's up to you. It's more likely to get more constructive reviews if it is a proper patch though. regards James my biggest problems: - 1h (half-covered) works for eg 'flute two', but on my recorder thumb (T) it doesn't work -- it just shows fully covered. - why are partial covers shown as shaded, then there is no distinction w/trills (ie 1h and 1hT are identical)? i don't know scheme, so i was mainly pattern-matching from existing diagrams. some issues i had while trying to figure this out: - what is the purpose of the baked-in cc/lh/rh grouping? - i can't find doc for draw-instructions rules -- seems to determine whether keys are hidden unless specified -- i didn't want that behavior, but was stuck unexpectedly getting it for a while. - difference between identity and return-1 -- they sound identical to me (when xy-scaling), but gave different results. - the style used encourages a lot of duplicated code -- it needs to be refactored so that keys are defined as simple declarative structures (with properties like name, group, position, complexity, stencil, textual-representation) and graphical/textual-commands derived therefrom. - similarly, key positions should be described in relative terms -- most stuff is absolute w/brittle hardcoding. - explicit support for when there is no text-override (key name instead of graphical stencil) available. i tripped across a previously reported bug that doesn't seem to have made it to the issue list even though it's a crash: (http://lists.gnu.org/archive/html/lilypond-user/2014-09/msg00405.html): c^ \markup \override #'(graphical . #f) { \woodwind-diagram #'tin-whistle #'() } C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: In procedure = in expression (= 0 (assoc-get node draw-ins tructions)): C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: Wrong type: #f also broken for saxophone (a different error tho), but works for piccolo. for tin-whistle, seems to be from use of CENTRAL-COLUMN-HOLE-H-LIST instead of CENTRAL-COLUMN-HOLE-LIST. - when using \override #'(graphical . #f) (is there a way to call this textual?) with an empty keylist, should show all possible text stencils (as it currently does for graphical). also, how are partial coverings/trills handled in this case? - would be nice if i didn't have to edit display-woodwind-diagrams.scm and instead could just \include my raw .scm file from a .ly file. thanks! -erik ___ bug-lilypond mailing list bug-lilyp...@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond 0001-added-recorder-diagram.patch Description: Binary data ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
recorder diagram and some woodwind-diagram bugs
hi there- sorry for cross posting to all the lists, i'd rather not subscribe and this post seems to apply to all three. attached is a recorder diagram patch, would love for feedback and for it to be incorporated. hopefully it's ok it's not actually in patch format, it just drops into display-woodwind-diagrams.scm (of course a corresponding entry needs to be added to woodwind-data-assembly-instructions in that file as well). my biggest problems: - 1h (half-covered) works for eg 'flute two', but on my recorder thumb (T) it doesn't work -- it just shows fully covered. - why are partial covers shown as shaded, then there is no distinction w/trills (ie 1h and 1hT are identical)? i don't know scheme, so i was mainly pattern-matching from existing diagrams. some issues i had while trying to figure this out: - what is the purpose of the baked-in cc/lh/rh grouping? - i can't find doc for draw-instructions rules -- seems to determine whether keys are hidden unless specified -- i didn't want that behavior, but was stuck unexpectedly getting it for a while. - difference between identity and return-1 -- they sound identical to me (when xy-scaling), but gave different results. - the style used encourages a lot of duplicated code -- it needs to be refactored so that keys are defined as simple declarative structures (with properties like name, group, position, complexity, stencil, textual-representation) and graphical/textual-commands derived therefrom. - similarly, key positions should be described in relative terms -- most stuff is absolute w/brittle hardcoding. - explicit support for when there is no text-override (key name instead of graphical stencil) available. i tripped across a previously reported bug that doesn't seem to have made it to the issue list even though it's a crash: (http://lists.gnu.org/archive/html/lilypond-user/2014-09/msg00405.html): c^ \markup \override #'(graphical . #f) { \woodwind-diagram #'tin-whistle #'() } C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: In procedure = in expression (= 0 (assoc-get node draw-ins tructions)): C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: Wrong type: #f also broken for saxophone (a different error tho), but works for piccolo. for tin-whistle, seems to be from use of CENTRAL-COLUMN-HOLE-H-LIST instead of CENTRAL-COLUMN-HOLE-LIST. - when using \override #'(graphical . #f) (is there a way to call this textual?) with an empty keylist, should show all possible text stencils (as it currently does for graphical). also, how are partial coverings/trills handled in this case? - would be nice if i didn't have to edit display-woodwind-diagrams.scm and instead could just \include my raw .scm file from a .ly file. thanks! -erik ;;; Recorder assembly instructions (define make-hidden-key-addresses (make-key-symbols 'hidden)) (define recorder-change-points ((make-named-spreadsheet '(recorder)) '())) (define (remove-last x) (reverse (cdr (reverse x (define recorder-rh-B-key-stencil (variable-column-circle-stencil 0.55)) (define recorder-rh-L-key-stencil (variable-column-circle-stencil 0.35)) (define (generate-recorder-family-entry recorder-name) (let* ((change-points (get-named-spreadsheet-column recorder-name recorder-change-points))) `(,recorder-name . ((keys . ((hidden . ((midline . ((offset . (0.0 . 0.0)) (stencil . ,midline-stencil) (text? . #f) (complexity . basic))) (r3 . ((offset . (0.0 . 1.0)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . basic))) (r4 . ((offset . (0.0 . 0.0)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . basic) (central-column . ((one . ((offset . ,(assoc-get 'one CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (two . ((offset . ,(assoc-get 'two CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (three . ((offset . ,(assoc-get 'three CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text? . #f) (complexity . trill))) (four . ((offset . ,(assoc-get 'four CENTRAL-COLUMN-HOLE-PLACEMENTS)) (stencil . ,column-circle-stencil) (text
Re: lilypond-user Digest, Vol 135, Issue 60
Hey David, -danti-alias-factor looks great - thanks for the suggestion - but I believe it won't work for (extremely) large, transparent images... Unless Ghostscript is called with the option -dMaxBitmap=2147483647 (or similar) from within LilyPond. The reason is that without that option set, Ghostscript will revert to the png16m device (rather than the pngalpha device) for extremely large images, presumably because of memory reasons... and with png16m instead of pngalpha I will loose the transparency, which I don't want to... If Ghostscript was run with this dMaxBitmap option automatically, then I think it would work, or if I was able to specify this option somehow during lilypond runtime? Is that possible? Cheers, Erik PS: Pasting the previous discussion regarding GS / pngalpha / png16m for reference. Regarding how to create large, transparent scores: When the images you output are reasonably small, 'lilypond... --png ... -dpixmap-format=pngalpha ' successfully generates the transparent images. Once the images surpass a certain size however, transparency seems to fail, and the .png images come out with a white background. If you run the following lilypond command: 'lilypond --png -dresolution=100 -dpixmap-format=pngalpha --ps --verbose x.ly' and look at the bottom of the log, you can see the actual Ghostscript command called by Lilypond used to create the .png. It is going to look something like this: gs -dDEVICEWIDTHPOINTS=37533.99 -dDEVICEHEIGHTPOINTS=2160.00 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=./x.png -r100 x.ps -c quit As you can see it is correctly using the device 'pngalpha' in order to generate the transparent image. The problem seems to be that - upon inspecting the logs - Ghostscript reverts to the device png16m instead, which is unable to generate a transparent image. The way to fix this is to tweak the memory usage options for Ghostscript, specifically by adding the option '-dMaxBitmap=2147483647' to the Ghostscript command, as in the following snippet: gs -dDEVICEWIDTHPOINTS=37533.99 -dDEVICEHEIGHTPOINTS=2160.00 -dMaxBitmap= 2147483647 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=./x.png -r100 x.ps -c quit This allocates more memory to Ghostscript and makes it correctly use the pngalpha device, and thus correctly output a transparent image. If you have a 64 bit machine perhaps you can extend it further. It should also be possible to rebuild lilypond from source and compile it with this option baked in, but I haven't tried that Perhaps this information helps someone trying to create large, transparent images in LilyPond! On Fri, Feb 14, 2014 at 1:38 AM, David Kastrup d...@gnu.org wrote: Erik Linde erik.li...@gmail.com writes: Hey Chris / David, Adding the --png option when you run your lilypond command works fine (as David stated)... Also, you may want to set the -dresolution parameter to something high like 300 (DPI) to get a good resolution. Or even set it to 600, and then shrink it to 300DPI using some image processing software such as Photoshop or ImageMagick / GraphicMagick to achieve an even better anti-aliasing effect. Why would you do that manually rather than using the -danti-alias-factor=2 option? -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: lilypond-user Digest, Vol 135, Issue 60
Hey Chris / David, Adding the --png option when you run your lilypond command works fine (as David stated)... Also, you may want to set the -dresolution parameter to something high like 300 (DPI) to get a good resolution. Or even set it to 600, and then shrink it to 300DPI using some image processing software such as Photoshop or ImageMagick / GraphicMagick to achieve an even better anti-aliasing effect. Cheers, Erik PS: I am adding some additional information below for anyone who has attempted to create large *transparent* images using Lilypond but failed. It took me a while to get the transparency to work as it seems to fail for large images. Regarding how to create large, transparent scores: When the images you output are reasonably small, 'lilypond... --png ... -dpixmap-format=pngalpha ' successfully generates the transparent images. Once the images surpass a certain size however, transparency seems to fail, and the .png images come out with a white background. If you run the following lilypond command: 'lilypond --png -dresolution=100 -dpixmap-format=pngalpha --ps --verbose x.ly' and look at the bottom of the log, you can see the actual Ghostscript command called by Lilypond used to create the .png. It is going to look something like this: gs -dDEVICEWIDTHPOINTS=37533.99 -dDEVICEHEIGHTPOINTS=2160.00 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=./x.png -r100 x.ps -c quit As you can see it is correctly using the device 'pngalpha' in order to generate the transparent image. The problem seems to be that - upon inspecting the logs - Ghostscript reverts to the device png16m instead, which is unable to generate a transparent image. The way to fix this is to tweak the memory usage options for Ghostscript, specifically by adding the option '-dMaxBitmap=2147483647' to the Ghostscript command, as in the following snippet: gs -dDEVICEWIDTHPOINTS=37533.99 -dDEVICEHEIGHTPOINTS=2160.00 -dMaxBitmap=2147483647 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=./x.png -r100 x.ps -c quit This allocates more memory to Ghostscript and makes it correctly use the pngalpha device, and thus correctly output a transparent image. If you have a 64 bit machine perhaps you can extend it further. It should also be possible to rebuild lilypond from source and compile it with this option baked in, but I haven't tried that Perhaps this information helps someone trying to create large, transparent images in LilyPond! On Thu, Feb 13, 2014 at 8:20 AM, lilypond-user-requ...@gnu.org wrote: Send lilypond-user mailing list submissions to lilypond-user@gnu.org To subscribe or unsubscribe via the World Wide Web, visit https://lists.gnu.org/mailman/listinfo/lilypond-user or, via email, send a message with subject or body 'help' to lilypond-user-requ...@gnu.org You can reach the person managing the list at lilypond-user-ow...@gnu.org When replying, please edit your Subject line so it is more specific than Re: Contents of lilypond-user digest... Today's Topics: 1. Re:Ottava (Brian Barker) 2. Re:Horizontalized scores (David Kastrup) 3. Re:Ottava (Noeck) 4. Re:Ottava (Noeck) 5. Lilypond for blind musicians (Claudio Garanzini) 6. Re:frescobaldi macports broken after update (Davide Liessi) 7. Re:Lilypond for blind musicians (Pierre Perol-Schneider) -- Message: 1 Date: Thu, 13 Feb 2014 06:57:25 + From: Brian Barker b.m.bar...@btinternet.com To: lilypond-user@gnu.org Subject: Re: Ottava Message-ID: 52f0e4380091e...@smtpout06.bt.lon5.cpcloud.co.uk (added by postmas...@btinternet.com) Content-Type: text/plain; charset=us-ascii; format=flowed At 20:19 12/02/2014 +0100, Noeck Joram Marburg wrote: what is the recommended/default formatting for ottava marks/brackets (8va)? In bold or not bold? And with dashed lines or dotted or others? What does E. Gould say ... Page 28: The octave sign is written in italic, the numeral '8' is 1 1/2 stave-paces high. The optional 'va' is placed flush with the top of _ottava sopra_ (_8^va_), flush with the base of _ottava bassa_ (_8va_). Indicate the extent of the transposition with a line of dashes (hereafter called a dotted line). The line extends from the top edge of the _8_ for _8 sopra_ and the base of the _8_ for _8 bassa_, and runs parallel to the stave. And those 8s look bold to me. Brian Barker -- Message: 2 Date: Thu, 13 Feb 2014 07:07:18 +0100 From: David Kastrup d...@gnu.org To: Chris Crossen elaparic...@gmail.com Cc: lilypond-user@gnu.org lilypond-user@gnu.org Subject: Re: Horizontalized scores Message-ID: 87ha838s15@fencepost.gnu.org Content-Type: text/plain Chris Crossen elaparic...@gmail.com writes: I am also generating single, continuous line scores
Re: Horizontalized scores
Hello Jay, Thanks for the tip, I tried it and it works wonders! Truly excellent, will save me enormous amounts of time :) Lunch on me if you come to NYC! Best, Erik On Fri, Feb 7, 2014 at 6:36 PM, Jay Anderson horndud...@gmail.com wrote: On Fri, Feb 7, 2014 at 11:24 AM, Erik Linde e...@notezilla.io wrote: Typically the way we have been generating the images of the sheet music that we use on the website, is by setting some of the layout attributes to really large values, for example: ragged-last = ##t paper-width = 2400.0\cm paper-height = 50.0\cm or perhaps #(set! paper-alist (cons '(my size . (cons (* 2000 in) (* 50 in))) paper-alist)) #(set-default-paper-size my size) And then generating a pdf, which we then convert to images. This works very well when generating a simple piece, such as a piano piece, but whenever there are multiple instruments, and when the piece is very long, such as is the case for most symphonies (which happen to be the most popular pieces on Notezilla), the time required to typeset a file seems to increase exponentially with the complexity of the music. For a symphony, it could easily go from a few minutes, when using a default layout, such as A4 or letter, to upwards of 10 hours, when using a custom paper format that is extremely wide, for example a 500cm or 1000cm in width. Please feel free to use this link to download the example that illustrates this - Beethoven's 3rd Symphony Mvt. 1. If I try running lilypond ScoreMvtI.ly in this example in a default layout, it takes maybe 10-15 minutes or so to typeset. If I uncomment row 27 and 28 (which is where I specify the *huge* paper size), it takes maybe 10 hours... I am wondering if someone on this mailing list knows of any work-arounds or tricks that I could employ here to shorten the this time? The only requirements for us is that, in the end, that we get one long horizontal score, where the vertical spacing between the staffs is identical throughout the piece. Whatever method we can use to get there would be great to hear about! Maybe one way could be to split up the score into just 3-4 rows instead, and then merge these in Photoshop - my concern with that method would be that the vertical distances between staffs would probably not be identical, which would mean that the horizontal score simply would not work... Try this: \paper { page-breaking = #ly:one-line-breaking } This should make the compilation much quicker. Also \override Score.NonMusicalPaperColumn #'line-break-permission = ##f may be useful. -Jay ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontalized scores
Thanks Janek! Jay's suggestion worked great. I've been talking with Adam as well and will dig into the ly2video project when I get a chance - could definitely be a lot of overlap with Notezilla! All the best, Erik On Sat, Feb 8, 2014 at 4:36 PM, Janek Warchoł janek.lilyp...@gmail.comwrote: Hello, 2014-02-07 19:24 GMT+01:00 Erik Linde e...@notezilla.io: Hi, I am the creator of Notezilla, a popular (and fairly new) web application that allows users to both listen to classical music, as well as see a scrolling representation of the score that has been synced exactly to the recording. this looks very nice! I haven't heard about it before. I hope that Jay's suggestion worked for you. Btw, you may find this project interesting: https://github.com/aspiers/ly2video best, Janek ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Horizontalized scores
Hi, I am the creator of Notezilla http://www.notezilla.io, a popular (and fairly new) web application that allows users to both listen to classical music, as well as see a scrolling representation of the score that has been synced exactly to the recording. A big thing for us is being able to generate horizontal scores, ie scores where there are no line breaks or page breaks. This allows us and our users to enjoy a very constant visual flow of the music without skipping around too much. LilyPond is an integral component for us when it comes to generating these scores, as it is very important to us that the music looks and feels like real sheet music - this is one of the primary reasons for why we love LilyPond. Typically the way we have been generating the images of the sheet music that we use on the website, is by setting some of the layout attributes to really large values, for example: ragged-last = ##t paper-width = 2400.0\cm paper-height = 50.0\cm or perhaps #(set! paper-alist (cons '(my size . (cons (* 2000 in) (* 50 in))) paper-alist)) #(set-default-paper-size my size) And then generating a pdf, which we then convert to images. This works very well when generating a simple piece, such as a piano piece, but whenever there are multiple instruments, and when the piece is very long, such as is the case for most symphonies (which happen to be the most popular pieces on Notezilla), the time required to typeset a file seems to increase exponentially with the complexity of the music. For a symphony, it could easily go from a few minutes, when using a default layout, such as A4 or letter, to upwards of 10 hours, when using a custom paper format that is extremely wide, for example a 500cm or 1000cm in width. Please feel free to use this linkhttps://s3.amazonaws.com/notezilla/other/Horizontal+Score+Beethoven+3-1+example.zip to download the example that illustrates this - Beethoven's 3rd Symphony Mvt. 1. If I try running lilypond ScoreMvtI.ly in this example in a default layout, it takes maybe 10-15 minutes or so to typeset. If I uncomment row 27 and 28 (which is where I specify the *huge* paper size), it takes maybe 10 hours... I am wondering if someone on this mailing list knows of any work-arounds or tricks that I could employ here to shorten the this time? The only requirements for us is that, in the end, that we get one long horizontal score, where the vertical spacing between the staffs is identical throughout the piece. Whatever method we can use to get there would be great to hear about! Maybe one way could be to split up the score into just 3-4 rows instead, and then merge these in Photoshop - my concern with that method would be that the vertical distances between staffs would probably not be identical, which would mean that the horizontal score simply would not work... I look forward to hearing your thoughts! Thank you very much for all the work that has gone into LilyPond! Best regards, Erik Linde - Using a Mac Book Pro with 16GB RAM, 2.3GHz i7, Max OS X 10.9.1 + and LilyPond 2.18.0-1 ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Creating a 1-channel MIDI file?
When I use lilypond to create a MIDI file, it seems to create a 2-channel file. Am I understanding this correctly? Can I get a 1-channel file? Any help would be greatly appreciate, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
quit
I've been around for a short while only. A month with lilypond and 3 weeks on the list. Made a couple of scores, quite complex ones. But for each and every one I had to fiddle for hours and hours trying to grab all the details. All the while I had Sibelius at the ready and whenever I did fallback finished the score in record time. This is not going to continue I thought. I'd rather have a score that looks 85% than no score at all. So for now it's quits with Lilypond. Perhaps I'll be back, I just don't know. All that helped, many thanks. I have now disabled the posts from the list, any reply have to be personal. Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: quit
As several users have responded asking for feedback why I stopped with lilypond (or criticism). Here's my 2cents worth. During the last four weeks I have been restoring a piece. It has come to me in several different parts. Handwriting, several voices just as extraction parts. The publisher asked for goodlooking, editable scores. Which seemed like a good point to start with lilypond. I started with the simplest piece, a voice with organ. Laying it all out wasn't the problem. I am familiar with programming, and familiar with other markup languages. From day one I ran into trouble with notating what was asked. I have found the list very friendly and very helpful. In the end all my questions were answered, and all notating puzzles solved. But the fact I had to use several of these solutions (or work arounds) in one score (or even in one bar) made inputting very tedious. The last piece I did was a short piece of 25 bars, four voices. Took me two days to complete. And although I can see that the speed will get greater, at this point I'm only frustrated. I created all 10 movements in Sibelius, took me about 5 evenings. I have created the 4 smallest of them with lilypond, took me 20 evenings. So I take all the blame. I'm just to slow. On the practical side the work just could not wait. On the plus I found, good looking scores, very flexible On the minus I found, very tedious, time-consuming and heavily relying on work-arounds. Hope this will give some inside. I won't say I'll never try again, but not just now. Hou je goed / Keep well, Erik -Original Message- From: Patrick McCarty [mailto:pnor...@gmail.com] Sent: woensdag 11 november 2009 0:39 To: Erik Appeldoorn Cc: lilypond-user@gnu.org Subject: Re: quit On Tue, Nov 10, 2009 at 11:36 AM, Erik Appeldoorn ursus.k...@ziggo.nl wrote: I've been around for a short while only. A month with lilypond and 3 weeks on the list. Made a couple of scores, quite complex ones. But for each and every one I had to fiddle for hours and hours trying to grab all the details. All the while I had Sibelius at the ready and whenever I did fallback finished the score in record time. This is not going to continue I thought. I'd rather have a score that looks 85% than no score at all. So for now it's quits with Lilypond. Perhaps I'll be back, I just don't know. All that helped, many thanks. I have now disabled the posts from the list, any reply have to be personal. While it's interesting that you have stopped using LilyPond, I wish you would have posted some constructive feedback or criticism. Do you have suggestions to improve the documentation or the program itself? Thanks, Patrick ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: slurs and ties
Thanks Nick, Interesting to see how your solution differs from the one Kieren and Carl offered. More than one way to reach the goal. Nice. Erik -Original Message- From: Nick Payne [mailto:nick.pa...@internode.on.net] Sent: zaterdag 7 november 2009 13:27 To: Erik Appeldoorn Cc: lilypond-user@gnu.org Subject: Re: slurs and ties Erik Appeldoorn wrote: Attached a jpg snipped of score parts I want to reproduce with lilypond. (Took me 30 secs to make using Sibelius) But after a day of trying I can't figure it out. I have looked into the LSR and tried to adapt the following snippet without any success. Here's my solution (took about 15 minutes) %== \version 2.13.7 \relative c' { \time 3/4 \key d \major \mergeDifferentlyHeadedOn { s4 d8 fis a d | R1*3/4 | d a8 fis, a d fis e | } \\ { d a4 d, ~ d | s2. | fis8 fis fis4 ~ fis | } \\ { \tieDown \override NoteColumn #'ignore-collision = ##t s4. \once \override Stem #'flag-style = #'no-flag fis8 ~ \stemDown fis4 | s2. | s4 ]\stemUp a ~ \stemDown a | } } %== Nick ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: slurs and ties
Kieren, Trying to understand. As I see it you create the two voices as if nothing special was needed. Then create a third voice, with identical notes as the second voice. These remain hidden, but the ties are visible. Am I correct? Erik -Original Message- From: Kieren MacMillan [mailto:kieren_macmil...@sympatico.ca] Sent: zaterdag 7 november 2009 1:31 To: Erik Appeldoorn Cc: lilypond user group; Carl Sorensen Subject: Re: slurs and ties Hi Erik, I WANT TO CREATE NICE SCORES!!! Well, aren't you glad you're learning Lilypond, then!? ;) Here's a final version: \version 2.13.7 \include english.ly tieVoice = { \shiftOff \override Voice.NoteColumn #'ignore-collision = ##t \set tieWaitForNote = ##t \hideNotes } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: slurs and ties
David, If the composer has written them it is not to me to leave them out. Sensical or not-so-sensical. As I'm restoring an old manuscript I feel I'm bound to what I find. It is difficult enough to recreate the score with only parts in different handwriting available. But I have to agree on the tricky part. All the extra's I need to recreate the score makes my scores unyealding and time-consuming to create. Erik Now there is something to be said against tieing into a different voice like that musically: it messes up the audible voice situation. Unless dictated by the instrument (and then there is little necessity to write the tie explicitly), it is cleaner to articulate the note separately. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Tie doesn't tie
Why doesn't the first bar tie to the second? mus = \relative c { \autoBeamOff \key d \major \time 3/4 \clef bass { d a' d2 d, d'4~ } \\ { d2 } | d d'2. | } \score { \mus } Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
fermata on final barline
It seems logical that someone has figured out how to create a \fermata on the final barline \bar |. Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: fermata on final barline
Still have to learn to remember this exists (And then learn how to use it) This is a good reason for a further look what the LSR has to offer. Thanks, Erik -Original Message- From: lilypond-user-bounces+ursus.kirk=ziggo...@gnu.org [mailto:lilypond- user-bounces+ursus.kirk=ziggo...@gnu.org] On Behalf Of Reinhold Kainhofer Sent: woensdag 4 november 2009 9:56 To: lilypond-user@gnu.org Subject: Re: fermata on final barline Am Mittwoch, 4. November 2009 09:40:52 schrieb Erik Appeldoorn: It seems logical that someone has figured out how to create a \fermata on the final barline \bar |. The LSR is your friend: http://lsr.dsi.unimi.it/ In particular: http://lsr.dsi.unimi.it/LSR/Item?id=1 To see the lilypond code for the snippet, simply click on the image. Cheers, Reinhold -- -- Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ * Financial Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.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
error
Did I understand correctly that hairpins and (de)crescendo's automatically end on a volume specifier? Like c\ d e f g\f, where the crescendo ends on (or just before) the g with the forte. I shouldn't have to end them with an \! I get errors: (de)crescendo on items with specified volume. The files nor the specific place are mentioned (as they are on other errors) Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: textspan
Thanks Frédérick, As I said: I must have been blind (Or just plain stubborn) Either way, problem corrected now. Thanks for pointing it out. Erik -Original Message- From: Frédéric Bron [mailto:frederic.b...@m4x.org] Sent: maandag 2 november 2009 19:36 To: Erik Appeldoorn Cc: Kieren MacMillan; lilypond-user@gnu.org Subject: Re: textspan I still must be blind, but haven't got the solution to work. You did not look in detail at my proposition: replace s s2\stopTextSpan by s2 s8 s8\stopTextSpan Frédéric ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: error
Thanks Reinhold, As I wanted the hairpins and the forte afterwards for me the output is not erroneous. Indeed the error-wording does suggest a music-coding error where in fact there might be none. I'm not into changing source code, someone else will have to figure that one out. Keep well, Erik -Original Message- From: lilypond-user-bounces+ursus.kirk=ziggo...@gnu.org [mailto:lilypond- user-bounces+ursus.kirk=ziggo...@gnu.org] On Behalf Of Reinhold Kainhofer Sent: woensdag 4 november 2009 1:06 To: lilypond-user@gnu.org Subject: Re: error -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am Dienstag, 3. November 2009 21:33:51 schrieb Erik Appeldoorn: Did I understand correctly that hairpins and (de)crescendo's automatically end on a volume specifier? Like c\ d e f g\f, where the crescendo ends on (or just before) the g with the forte. I shouldn't have to end them with an \! I get errors: (de)crescendo on items with specified volume. This has nothing to do with the implicit \! The problem appears when the volume before and after a (de)crescendo is the same (typically because of an implicit decrescendo, which is not notated), so lilypond does not know how to handle the crescendo. I'm able to reproduce that warning with the following code: \version 2.13.7 \score { \new Staff \relative c'{ c\f d e f c\ d e f\!\f } \midi {} } Note that the volume is already \f, and then another crescendo starts and ends with \f, too. Typically, some parts after the first \f would be played a little less forte, so the crescendo makes sense. Granted, that warning message has extremly bad wording, and it does not tell you at all where in the problem is! I have not checked, whether the location can be included in the warning, which would be quite an improvement. AFAICS, that warning is triggered in the function Audio_span_dynamic::render(), so it happens after parsing. And the code is structured so that all superfluous dynamics are discarded. The message is then printed if no dynamics changes are left for the crescendo. First, I have no idea if it is even possible to get the position in the code at that time, even if the dynamic object is still available... And second, one would have to restructure the code a little bit to keep the discarded dynamics around, from which one might possibly get the position in the code. Cheers, Reinhold - -- - -- Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ * Financial Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.org -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQFK8MVmTqjEwhXvPN0RAnjTAJ4u/V1XS6WgnOoQ3ikXTEBh9Qm28QCggqv7 VqFsIYTD7xf8YJs3wqz/+Vs= =1ug6 -END PGP SIGNATURE- ___ 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: error
Francisco, Reinhold has explained this behaviour in the group.. Keep well, Erik -Original Message- From: Francisco Vila [mailto:paconet@gmail.com] Sent: woensdag 4 november 2009 0:19 To: Erik Appeldoorn Cc: lilypond-user@gnu.org Subject: Re: error 2009/11/3 Erik Appeldoorn ursus.k...@ziggo.nl: Did I understand correctly that hairpins and (de)crescendo's automatically end on a volume specifier? Like c\ d e f g\f, where the crescendo ends on (or just before) the g with the forte. I shouldn't have to end them with an \! I get errors: (de)crescendo on items with specified volume. What version are you using? I can not reproduce it on 2.13.7; it compiles without errors or warnings and gives the expected output. -- Francisco Vila. Badajoz (Spain) www.paconet.org www.csmbadajoz.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: textspan
I still must be blind, but haven't got the solution to work. I have tried: { d2 d4 | cis a2} \new Voice { \tsRal s2.\startTextSpan s4 | s s2\stopTextSpan } | and tried: { d2 d4 | cis a2} \new Voice { \tsRal s2.\startTextSpan s4 | s s2\stopTextSpan } | Then I tried: { \tsRal s2.\startTextSpan s4 | s s2\stopTextSpan } \\ { d2 d4 | cis a2} And nothing seems to work. So I think it must be me, misunderstanding something Erik -Original Message- From: Kieren MacMillan [mailto:kieren_macmil...@sympatico.ca] Sent: zondag 1 november 2009 13:16 To: Frédéric Bron Cc: Erik Appeldoorn; lilypond-user@gnu.org Subject: Re: textspan Hi Frédéric, It is funny. I was quite sure to have the solution but I do not understand why what I propose does not work: you have to separate notes and TextSpan in parallel music expressions. Can somebody tell why this does not work? Because your construct doesn't have two Voice constructs, only two expressions in the same Voice. Instead, try tsRal = \override TextSpanner #'(bound-details left text) = Ral. \new Score \new Staff \relative c' { \time 3/4 { d2 d4 | cis a2 } \new Voice { \tsRal s2.\startTextSpan s2 s8 s8\stopTextSpan } } \new Staff \relative c' { \time 3/4 { \repeat unfold 12 d8 } \new Voice { \tsRal s2. \startTextSpan s2 s8 s8\stopTextSpan } } Hope this helps! Kieren.= ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
textspan
I have defined the following \override TextSpanner #'(bound-details left text) = Ral. Within a \time 3/4 I have the following notes: d2\startTextSpan d4 | cis a2\stopTextSpan | The Ral. now stops directly above the a2. Other voices above it have more notes there, so the Ral. stops far more to the right within the same bar. I want the Ral. to align right up to the last notes of the voices above for this voice only. So all Rals stop at the same vertical. Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
escaped string
Why do I get ëscaped string error here. The compiled result looks ok to me \layout { \context { \Staff \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3) \fontSize = #-2 } } Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: escaped string
According to the manual: 3.3.4 Modifying context properties fontSize Real Increase or decrease the font size and further: % make note heads smaller \set fontSize = #-4 I did forget to type the \set but the result is still the same Erik _ From: James E. Bailey [mailto:derhindem...@googlemail.com] Sent: zondag 1 november 2009 0:28 To: Erik Appeldoorn Cc: lilypond-user@gnu.org Subject: Re: escaped string If I remember correctly, \fontSize is not a known LilyPond string. On 01.11.2009, at 00:20, Erik Appeldoorn wrote: Why do I get ëscaped string error here. The compiled result looks ok to me \layout { \context { \Staff \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3) \fontSize = #-2 } } Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
bracket and staff names
I have a snipped of code that doesn't quite come out is expected / wanted. The score is a choir SATB with organ (two staffs) I would like the normal bracket to be in front of the SATB staffs. It now extends to the last staf. 2nd I'm missing the names of the voices before the staves although I use the \set Staff.instrumentName. Any other hints also very welcome. \score { \new ChoirStaff { \new Staff = Sopraan \sop \set Staff.instrumentName = #Sopraan } { \new Staff = Alt \alt \set Staff.instrumentName = #Alt } { \new Staff = Tenor \ten \set Staff.instrumentName = #Tenor } { \new Staff = Bas \bas \set Staff.instrumentName = #Bas } \new PianoStaff \new Staff = ManualOne \new Voice { \rh } \new Staff = ManualTwo \new Voice { \lh } } Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: bracket and staff names
Mats, Bracket problem solved I just miscounted the place for the closing It now looks slightly different and brackets are in place as I want them. But still no names before the staffs Thanks, Erik -Original Message- From: Mats Bengtsson [mailto:mats.bengts...@ee.kth.se] Sent: vrijdag 30 oktober 2009 11:00 To: Erik Appeldoorn Cc: lilypond-user@gnu.org Subject: Re: bracket and staff names Erik Appeldoorn wrote: I have a snipped of code that doesn't quite come out is expected / wanted. The score is a choir SATB with organ (two staffs) I would like the normal bracket to be in front of the SATB staffs. It now extends to the last staf. Yes, since you include all the staves within the ChoirStaff. I think you rather want to follow the structure used in the Learning Manual template SATB + piano: \score{ \new ChoirStaff % Here comes the two staves for the SATB ... \new PianoStaff % Here comes the two staves for the organ } I would recommend to use indentation as I did above and as is done in the examples in the manual, to make it easier to see the overall hierarchical structure of the score. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: bracket and staff names
Eluze Thanks for the explanation, but solving one problem creates a new one. The names of the staves now are correct. But the lyrics belonging to the notes are completely misplaced. Lyrics of voices now get collected all in one go below the bass staff. More to learn I guess. Here is how it is looking now. \score { \new ChoirStaff \new Staff = Sopraan { \set Staff.instrumentName = #Sopraan \sop } \new Staff = Alt { \set Staff.instrumentName = #Alt \alt } \new Staff = Tenor { \set Staff.instrumentName = #Tenor \ten } \new Staff = Bas { \set Staff.instrumentName = #Bas \bas } \new PianoStaff \new Staff = ManualOne \new Voice { \rh } \new Staff = ManualTwo \new Voice { \lh } } -Original Message- From: lilypond-user-bounces+ursus.kirk=ziggo...@gnu.org [mailto:lilypond- user-bounces+ursus.kirk=ziggo...@gnu.org] On Behalf Of -Eluze Sent: vrijdag 30 oktober 2009 11:20 To: lilypond-user@gnu.org Subject: Re: bracket and staff names Erik Appeldoorn wrote: 2nd I'm missing the names of the voices before the staves although I use the \set Staff.instrumentName. if yout set the instrument names *before* the notes they will be displayed: \new Staff = Sopraan { \set Staff.instrumentName = #Sopraan \sop } -- View this message in context: http://old.nabble.com/bracket-and-staff- names-tp26126880p26127716.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 ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: bracket and staff names
Thanks again all. I found the problem \new Staff = Sopraan { \set Staff.instrumentName = #Sopraan \sop } Should be \new Staff = Sopraan \set Staff.instrumentName = #Sopraan \sop And all looks well now. Probably have more questions later, but for now I am content. Keep well, Erik -Original Message- From: lilypond-user-bounces+ursus.kirk=ziggo...@gnu.org [mailto:lilypond- user-bounces+ursus.kirk=ziggo...@gnu.org] On Behalf Of Erik Appeldoorn Sent: vrijdag 30 oktober 2009 11:45 To: '-Eluze' Cc: lilypond-user@gnu.org Subject: RE: bracket and staff names Eluze Thanks for the explanation, but solving one problem creates a new one. The names of the staves now are correct. But the lyrics belonging to the notes are completely misplaced. Lyrics of voices now get collected all in one go below the bass staff. More to learn I guess. Here is how it is looking now. \score { \new ChoirStaff \new Staff = Sopraan { \set Staff.instrumentName = #Sopraan \sop } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
tempter
Can I tempt anyone? After learning on one voice only pieces, I have now finished my first multi-voice / multi-file piece. The resulting pdf looks fine but I'm open to feedback. Would anyone be tempted to give it the once over and give that feedback? Some info on the project: For my choir I'm restoring a piece once performed in 1892. The score has only survived in bits and pieces which I'm attempting to put together again. With lylipond I have started with part 4. choir SATB and organ. Choir 44 bars text and notes. Organ notes completely missing at this point. Project has 8 files. SATB, organ RH and LH, a style file to replace the time signature and the main file that binds it all together. Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Adding voices
As I'm brand spanking new I'm probably going to ask a lot of dumb questions. If so, just tell me. The point is building a SATB with organ score. Everything looks fine until I activate/add the organ part. After that the score is rubbish. Would a basic explanation of what I've done suffice? \header { left empty for now } \global = { \autoBeamOff \key g \major } sopMusic = \relative c' { left empty } sopWords = \lyricmode { left empty } the same for alto, tenor , bass and orgAmusic, orgBmusic then I built the score \score { \new ChoirStaff \new Staff = Sop \set Staff.instrumentName = #Sopraan \new Lyrics = sopranos { s1 } \new Voice = sopranos { \global \sopMusic } Repeat three times for rhe other voices Add the lyrics: \context Lyrics = sopranos \lyricsto sopranos \sopWords \context Lyrics = altos \lyricsto altos \altoWords \context Lyrics = tenors \lyricsto tenors \tenorWords \context Lyrics = basses \lyricsto basses \bassWords When I now end it and compile all looks well (Without the organ ofcourse) but then add the following and all kind of things go awry. Extra time signs suddenly appear out of nowhere, the score gets unbalanced So here is the organ part I added. \new PianoStaff \new Staff = ManualOne \new Voice { \orgAMusic } \new Staff = ManualTwo \new Voice { \orgBMusic } All { and are well balanced and the score does compile without errors it just looks a mess afterwards Thanks very much for any help, Keep well, Ursus ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: Adding voices
Thanks Simon and Kieren, Indeed the r1 was the culprit. I will add the | marks from now on. Erik in both these parts you had a 4-beat rest (r1) in a 3-beat bar. the error message about a barcheck failing was also being output. misplaced bars and beats will almost always cause a score to end up looking weird. at which point it's a good idea to read the process log to see what errors turn up. lily can be fairly verbose, but you can normally spot your errors through the log. another good practice is to _always_ use bar checks in your scores. where you expect a bar-line, put | in your score. if the beats are off at this point, lily will scream at you. : ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
centering rests
When I use r1 (4/4 time) the sign gets aligned left in the bar. R1 aligns it properly, but when I want to use r2 at the start (or R2) of the bar it looks awfull. So how do I align these rests centered? I haven't done anything fancy Hou je goed / Keep well, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: centering rests
You are quite right, and I have never even bothered to check. Although I have a quite substantial library and am over 25 years active with music. Erik -Original Message- From: Kieren MacMillan [mailto:kieren_macmil...@sympatico.ca] Sent: donderdag 29 oktober 2009 18:29 To: Erik Appeldoorn Cc: lilypond-user@gnu.org Subject: Re: centering rests Hi Erik, when I want to use r2 at the start (or R2) of the bar it looks awfull. So how do I align these rests centered? If you mean that you want the (e.g.) half-note rest to be mid-way through the first half of the measure, rather than left-aligned at the first beat, then... you don't/shouldn't. In standard music engraving practice, the full-measure rest is the *only* one that is centered in its [horizontal] duration-space - all other rests are placed at the position where they first happen in the flow of time, just like their sounding-note equivalent(s). Hope this helps! Kieren.= ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Combine rests from two voices
Thank you folks! / Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Combine rests from two voices
Hi! I am writing a single staff with two voices, using \voiceOne and \voiceTwo. Is it possible to have rests common to both voices to be combined into single voice rests? Of course I could do like \newVoice = one { \voiceOne a4 b c d } \newVoice = two { \voiceTwo a4 b c d } r2 r4 \newVoice = one { \voiceOne a4 b c d } \newVoice = two { \voiceTwo a4 b c d } but it is not a very practical solution. Regards Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Tuplet groupings / TupletBracket Padding
Hi, I'm a new user of lilypond and I'm currently learning to write parts for drums with this great program. I've run into a minor issue with some tuplet number markings. In the example there's a triplet over 2 beats with each of the triplets being another tuplet. Lilypond handles this beautifully, and I managed to raise the tuplet bracket for the overlaying triplet with the \override TupletBracket #'padding command. This makes the underlying tuplet numbers easier to see, but somehow lilypond chooses to raise the first sub tuplet number too. I've tried putting \revert TupletBracket #'padding at various places but it doesn't seem to work. I feel like there's probably some solution to this though - hope you can help out! Example file at: http://www.erikhagstrom.net/files/snippet.ly /Erik Hagström ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Tuplet groupings / TupletBracket Padding
Thanks a lot Risto, that did the trick! ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: lilypond-book and searchable pdf:s
if you replace --psfonts lilypond-book option with --pdf, you'll get a LaTeX document to be processed by pdflatex. I recently changed lilypond-book doc to explain clearly both ways (via latex/dvips/ps2pdf or via pdflatex) and encourage new users use [...] Oh! Very good! Many thanks!! Too bad I didn't find that earlier :-/ One thing though: the --pdf switch is mentioned in the example, but is not present under command line options (section 4.4). Best regards Erik __ Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
lilypond-book and searchable pdf:s
Hi! This is not a question, rather I would like to just present some things I've come across the last days. Maybe this is old knowledge to you, and in that case, please ignore this mail. Still, I was not able to find these my conclusions in the archives, so hopefully it may be of some use for someone! I'm typesetting a book with lilypond and LaTeX, using lilypond-book to put it all together. However the text in the resulting pdf file is not searchable or copyable by Acrobat or Preview.app. After many hours of error checking, I found out what is causing my problems and some workarounds. The problem seems to be that when the fonts are encoded with T1 encoding in LaTeX, the resulting pdf does not have a correct character mapping, and thus can not extract any text. As several people earlier have pointed out, there are some workarounds: 1) Use the CMAP package for LaTeX 2) Use a standard postscript font, like times 3) Use the default OT1 font encoding instead of T1 The CMAP package works perfectly and magically takes care of everything. However, it only works with pdflatex and not with dvips, which is a problem when I'm using lilypond-book (since I can't make pdflatex work with my generated tex files from lilypond-book, I have to use dvips) Using times instead of the CM fonts work - but I don't want times! Using OT1 font encoding has two problems: a minor problem is that the pdf renders a bit ugly on-screen in Acrobat, compared to when using T1 fonts. Worse is that the OT1 fonts only contain a basic extended ASCII set of glyphs, which means that many non-english characters are missing! Conclusion: * I can have a searchable pdf, but in that case I have to sacrifice either the font or the encoding (meaning all non-english chars), OR * I can have a complete, perfectly looking pdf, which is not searchable, OR * I can get it all if I use the cmap package for LaTeX. But then I have to use pdflatex instead of dvips, which doesn't work with lilypond-book! As far as I can tell, there is no solution to this problem. HOWEVER: Making cmap work with dvips is on the TODO for cmap. I emailed the creator of the cmap package, and he says that he think[s] it is possible to make it work with dvips, but it needs some hacking and time. He continues unfortunately i currently don't have time for this. if you can help, or know someone who is interested in this, please let me know. I don't have enough skills for such a task, but maybe someone on this list has? And I want to ask the LilyPond team: can this be a candidate for sponsoring, even though it is not really a part of lilypond itself? Best regards Erik Ronström __ Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OO and MIDI support
On Friday 05 October 2007, Hans Aberg wrote: On 5 Oct 2007, at 01:20, Graham Percival wrote: Midi support in lilypond is quite limited, and this is not likely to change in the near future. Might it possible to handle this by OO (object orientation)? The idea is that if objects can be defined (in pseudocode) turn := default: ... midi: ... short: ... quintuplet: ... ; And one then is able to write code like d8^\turn[staff-short,midi-quintuplet] if one in this position wants the turn to not be the defaults, but then the staff to be written in the short form, and MIDI be written as a quintuplets. The principle is quite general. So it might be useful for handing a number of problems. The enhanced MIDI support would emerge as a byproduct of this OO support. I don't understand all of this, but wouldn't it be possible to achieve most of this functionality with tags? You could just use \keepWithTag #'midi when creating midi, and then tag stuff with midi in the definition of \turn. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Scheme code for extracting LilyPond header properties?
On Tuesday 09 October 2007, John Zaitseff wrote: Dear Nicolas / LilyPonders, I store a field in the header, lastupdated, in the form 09-Oct-2007; the \parsed-date function converts that to something like 9 October, 2007: % \parsed-date DATE - convert a DD-MMM- property to a fully printed date #(define-markup-command (parsed-date layout props date) (symbol?) Convert the property @var{date} containing a date in the form DD-MMM- into a nicely formatted stencil output D , . (let* ((datestr (chain-assoc-get date props))) (interpret-markup layout props (if (string? datestr) (markup #:simple (strftime %e %B, %Y (car (strptime %d-%b-%Y datestr datestr (Of course, I should rewrite that to make it somewhat more robust. It works for me, however). You may want to use SRFI-19 for this, http://www.gnu.org/software/guile/manual/html_node/SRFI_002d19.html#SRFI_002d19 Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
PNG output from lilypond-book using Infotex under Cygwin
Hello, I'm trying to generate an html from an Infotex file with lilypond-book, under Cygwin. After I've put the source through lilypond-book, I seem to end up with just about everything I'm supposed to, except for the png files. It gives me eps files, and I assume that it's supposed to convert them to png, but it seems to skip that step without telling me anything about it. The lines below are what happens. Any ideas? $ lilypond-book book.texi --output lilypond --format texi-html lilypond-book (GNU LilyPond) 2.10.33 Reading book.texi... Dissecting... Writing snippets... Processing... Running lilypond...GNU LilyPond 2.10.33 Processing `snippet-map.ly' Parsing... Processing `book.texi' Parsing... Interpreting music... Preprocessing graphical objects... Calculating line breaks... Drawing systems... Writing lily-e413b06d98-systems.tex... Writing lily-e413b06d98-systems.texi... Layout output to `lily-e413b06d98-1.eps'... Layout output to `lily-e413b06d98.eps'... Compiling book.texi... Writing `book.texi'... lilypond-book: warning: option --psfonts not used lilypond-book: warning: processing with dvips will have no fonts -- Erik Igelström [EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: SVG output sponsorship
On Wednesday 15 August 2007, Eduardo Vieira wrote: Citando Vivian Barty-Taylor [EMAIL PROTECTED]: I'm using various bits of graphics in this piece which aren't natively supported by Lilypond. Although I could add them all as EPS markups, the amount of time I would spend adjusting the positions of them makes it a lot easier to do it this way. Have you ever tried importing your ps file into Scribus? You could import and ungroup all the objects of your score, then you can adjust, move, or insert whatever object you want. Ah, now I remember, this is the way I used to do to convert ps - svg. IIRC, you sometimes need to do a round or two of ps2ps, eps2eps, pdf2ps, or similar to make scribus decode the ps correctly. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: SVG output sponsorship
On Wednesday 15 August 2007, Vivian Barty-Taylor wrote: Thanks for that suggestion. Do you know where I can get the gnome backend, or do I just need to download the earlier version of Lilypond? IIRC, it's a compile-time option which by default is off (i.e., you need to recompile lily manually). However, I think there is a more general issue here about graphical notation in scores. I'm using various bits of graphics in this piece which aren't natively supported by Lilypond. Although I could add them all as EPS markups, the amount of time I would spend adjusting the positions of them makes it a lot easier to do it this way. The SVG option seemed the best because I don't lose image quality by converting to a bitmap, and also because Inkscape is a good piece of software. Again, if your only problem is to adjust offsets etc, then getting the gnome back-end to work may be a good solution for this problem too (i.e.: insert EPS markups without considering spacing offsets, then move them to the right spot using the gnome back-end). A problem here is that EPS images probably won't show up in the gnome back-end. IIRC, it's possible to store a bitmap preview in an EPS image; in this case it may be possible to hack the gnome back-end to extract display the preview. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: SVG output sponsorship
On Sunday 12 August 2007, Vivian Barty-Taylor wrote: It seems to me that having reliable (bug-free) SVG output would be a big plus for Lilypond. At the present time, I have been unable to fix all the font problems (not sure whether this is Lilypond or Inkscape which is giving me trouble.) To get to where I am at I had to make a lot of changes by hand to the SVG file which is tedious. (Specifically, the italic sans-serif fonts still don't work.) The main advantage of the SVG output (I would suggest) is that small changes to positions of objects can be done in a WYSIWYG environment, instead of the current estimate-how-much-I-have-to-move-that-object/ add line of code/ re-process score/ find out I haven't moved it enough/ moved it too much/ change values of #'padding or #'extra-offset etc. etc. all of which is time consuming especially with big projects. This approach has a problem: Once you change a note (say, fix a typo) and need to re-run lilypond, you will have to redo all tweaks again. You may want to take a look at the experimental gnome back-end, which has existed for quite some time now (2.4 or 2.6, IIRC), but which for some reason never became popular. It offers a better solution to your problem: The score is displayed on the screen, and you can adjust spacing by drag-and drop, and save all modifications in a separate file (containing tweaks). This way you can still make musical corrections in the .ly file without having to redo all spacing tweaks (except, of course, if your musical corrections themselves affect spacing sufficiently to invalidate your tweaks). Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Fonts in SVG output
On Sunday 08 July 2007, Benjamin Esham wrote: Benjamin Esham wrote: I'm having some issues with Lilypond 2.10.x's SVG export. I seem to have fixed most (all?) of my font problems. I now have another problem, however. In order to submit one of LilyPond's SVGs to e.g. the Wikimedia Commons, it is necessary to convert all of its text into paths; that way, users need not have LilyPond's fonts in order to view the image correctly. Before converting text into paths in Inkscape, you must make sure that none of the text is contained within a group. Therefore, I started to process my file by selecting everything and issuing an Ungroup command. When I did so, the staff lines disappeared! Apparently every object in the file is in a one-element group. For some reason, ungrouping the staff lines made them disappear—they were still present, just not visible. I think there may be an Inkscape bug at play here too, since Select All couldn't find the lines, but on the LilyPond end... how can I get Lily to create a sane, usable SVG file? Any help is greatly appreciated here. There's another approach to the SVG output problem: You can take PDF or EPS output from lilypond, and try to turn it into SVG files. The postscript backend of lilypond is obviously more mature, and there exist converters from pdf/ps to svg. Free converters are a bit shaky, but for some lily versions I managed to convert .ly files into valid SVG via a chain of converters. Usually, you need to first expand fonts to curves using some ps2ps-like script, and then use pstoedit to convert to something that can be converted to svg. Unfortunately, most conversion tools are rather immature, so you will need some experimenting to make it work. IIRC, I managed to generate valid svg with this method for my master's thesis, using a lilypond version around 2.6. I don't remember the exact combination of commands that worked though. (I have vague memories that it may be good to start with pdf output and convert it back to eps) Here's a script that works for some subsets of ps (not lily's though), you can look at it for ideas: http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Electronics/Ps2svg.sh If you manage to find a fairly reliable path to convert the output of a recent lily version into wikipedia-usable SVGs, I'd be happy to know. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \times vs \tuplet (Was: Constructive Criticism and a Question)
On Monday 15 January 2007 10:25, Valentin Villenave wrote: 2007/1/14, Mats Bengtsson [EMAIL PROTECTED]: Valentin Villenave wrote: Tuplets are made with the minimalistic \t keyword. Comments: - If Erik's proposal to handle fractions such as 2/3 as a new argument type is implemented, then it will be trivial to define your own music function called \t within LilyPond. I definitely do not think that it's a good idea to use such heavily abbreviated command names by default in LilyPond but on the other hand it's an excellent solution for you and many others to add such a customized music function and this specific example should be included as a standard example in the documentation. /Mats Thank you Mats; it would be indeed heavily abbreviated. But what about the second part of my suggestion: If you do not specify a tuplet argument, the argument last entered is used for the next tuplet. The argument of the first tuplet in input defaults to 2/3. When you use the \times command, most of the time it's to use 2/3, or to use some argument you've already been using. Is we keep \times, I agree to say this command can't go without any argument. But if it becomes \tuplet, why couldn't we implemement some default rule ? Where \times {f8 g a} doesn't mean anything, \tuplet {f8 g a} makes sense, doesn't it ? it's easy to write a separate function \triplet {f8 g a} for this purpose. (IMHO, this would be a useful addition to the standard lily distribution) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Sunday 07 January 2007 04:55, [EMAIL PROTECTED] wrote: . . . Note also that the tupletSequence function would be implemented entirely in Scheme . . . I'm not very fluent in Scheme, so this is a naive question. I presume that ratios like 3:2 (or 2/3) could be made into some kind of object type (possibly a moment). So I could imagine that it would be possible to write a Scheme function definition to cover a syntax like \tupletSequence m:n #'( {...} {...} ... ) where the first argument is a moment and the second is a list of literal music expressions. (And I suppose I'm too optimistic about that syntax; probably those {...} would have to be sprinkled with # or $ or other spices.) But there are some questions: 1) I don't see how this could accommodate the case where one of the music expressions *were* a variable reference (\var) or *contained* a variable reference. Music functions are not macros; the arguments are evaluated before the function is called. So \var always means to dereference a variable. (I'm working on a system for 'music macros', which should make it possible to delay the dereferencing of variables, this will mainly be useful to clean up \relative) 2) Because the syntax \tupletSequence m:n { {...} {...} } is nicer, it would be good if it could be written that way, but then the second argument would not be a standard Scheme entity, so I don't see how Scheme could handle it at all. There is a distinction between Scheme functions and Music functions. Music functions are invoked as \function arg1 arg2, while Scheme functions are invoked in Scheme expressions, as #(function arg1 arg2). tupletSequence would be a music function. There are three types of arguments to music functions: Music, Markup and Scheme. This suggestion would add another argument type 'fraction'. The parser takes care of identifying argument types. Music arguments are notated as music, so you can use {{c}{d}} syntax out-of-the-box. E.g., partcombine is a music function. In Scheme functions, you can use the #{ #} syntax to easily create music expressions as arguments. Can tupletSequence really be defined in pure Scheme, as long as the parser is modified to recognize the object m:n or n/m (so that there would exist a type-verification-name for the object m:n for use in defining Scheme functions)? yes, the only thing we need is a new parameter type. BTW, one of the biggest problems (IMHO) in the lilypond language is that we can't extend the parser to accept durations as parameters to music functions: \foo c 4. is ambiguous; it's unclear whether the 4. is the c's duration, or if it's a separate argument. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Friday 05 January 2007 22:53, [EMAIL PROTECTED] wrote: . . . The { m1 m2 m3 } syntax is used for repeat alternatives already, and the meaning is very clear: Each music expression between the outer { } is a separate argument. Note also that the tupletSequence function would be implemented entirely in Scheme . . . { {g8 f e} \seq {b8 a g} } \tuplet {g f e} \tuplet \seq \tuplet {b a g} {{c d e} {{f g} a} b c} \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c OK. Thank you for clarifying that. I understand, from your original remarks, that (here) you have written just \tuplet in the interest of brevity, and that the full form would be \tupletSequence 3:2 {{c d e} {{f g} a} b c} meaning \tuplet 3:2 {c d e} \tuplet 3:2 {{f g} a} \tuplet 3:2 b \tuplet 3:2 c yes, that's right. which implies the following things: a) tupletSequence is a Scheme function which just breaks up its subexpressions naively, without any semantic analysis. b) \tuplet is a real LilyPond function; it is identical to \times, except that the notation 3:2 (meaning 2/3) would be allowed. c) People would have to write \tupletSequence m:n { {...} {...} }, not \tuplet m:n { {...} {...} }. yep, this is right (thanks for expressing it clearly). d) Any semantic errors in the subexpressions would be reported by the \tuplet function, not by the \tupletSequence Scheme function. technically this is not correct (the \tuplet function doesn't detect semantic errors), but in principle you're right (\tuplet and \tupletSequence actually only create Music data structures, without performing semantic analysis; most 'semantic errors' are detected either when these data structures are further processed into typeset scores, or by the parser before the function applications) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Friday 05 January 2007 09:22, [EMAIL PROTECTED] wrote: . . . \tupletSequence 2/3 {{c d e} {f g a} {b c d}} would just be a shorthand for \tuplet 2/3 {c d e} \tuplet 2/3 {f g a} \tuplet 2/3 {b c d} That would add a big semantic burden to the meaning of { and }. Currently {{c d e} {f g a} {b c d}} means the same thing as {c d e f g a b c d}. It's not a problem. The { m1 m2 m3 } syntax is used for repeat alternatives already, and the meaning is very clear: Each music expression between the outer { } is a separate argument. Note also that the tupletSequence function would be implemented entirely in Scheme, the parser would not be modified. Examples: I would hate to have to write the parser that would figure out (reliably) what {{c d e} {f g} {a b c}} \tuplet {c d e} \tuplet {f g} \tuplet {a b c} or {{c d e} {{f g} a} b c} \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c or {{c8 d e} {f4 g a}} \tuplet {c d e} \tuplet {f4 g a} mean (as arguments to \tupletSequence). And if \seq = {{a8 b c} {d8 e f}} then, since LP macros are *not* string macros, what will the parser do with the argument { {g8 f e} \seq {b8 a g} } \tuplet {g f e} \tuplet \seq \tuplet {b a g} -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Tuesday 02 January 2007 22:29, [EMAIL PROTECTED] wrote: ... in irregular, tuplet-intensive music it may be sensible to create a music function for sequences of tuplets. In addition, it's IMHO a more lilypondesque solution than tupletSpannerDuration, once we support fractions as music function arguments. If I understand you correctly, this would involve specifying, one way or another, the duration of each actual tuplet. Explicit specification of a duration (other than by an external tupletSpannerDuration declaration) has been suggested by another user, and IMO it would be a good idea, although I gather that Han-Wen is not in favour of the idea. No, \tupletSequence 2/3 {{c d e} {f g a} {b c d}} would just be a shorthand for \tuplet 2/3 {c d e} \tuplet 2/3 {f g a} \tuplet 2/3 {b c d} It is problematic to use durations to decide the scaling of a tuplet; this has been discussed previously in this thread. E.g., if you scale 3 8th notes to duration 4, then it is unclear whether it corresponds to factor 2/3 or 4/6. But I have a question about how one would specify a duration. Specifying durations in the way we usually think about them allows actual durations that look like this: 1== 1 2... == 15/16 2.. == 7/8 2. == 3/4 4... == 15/32 4.. == 7/16 4. == 3/8 4== 1/4 (etc.) so that only durations of the form 2^(p-1) / 2^q (where p q) can be specified this way. But given the extravagancies of contemporary music, wouldn't it be possible, for example, to have a tuplet where 4 eighth notes would be played over a time interval of 5 eighths -- \times 5/4 {c8 d e f} Or does such a thing never happen? If it does, then the tuplet's duration, equal to 5/8 here, cannot be expressed simply by a dotted-note notation such as in the preceding list. you could always write 1*5/8, which is a valid duration. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Monday 01 January 2007 20:57, Mats Bengtsson wrote: Frédéric Chiasson wrote: Might it be possible to use \tuplet 3:2 {x x x} for the usual operation, and if we want to have many tuplets of the same kind, to use \tuplet 3:2 { {x x x} {y y y} {z z z} } Might resolve the clarity problems. Since it's easy to define your own function \triplet which does the equivalent of \tuplet 3:2 ..., and since you could give it a short name like \t, your proposal wouldn't save much typing or increase the clarity compared to \t {x x x} \t {y y y} \t {z z z} In these situations with repetitive triplet patterns, I definitely prefer the current kind of solution with \set tupletSpannerDuration = #(ly:make-moment 1 4) There is one problem with this: If the 'most common' tuplet duration is 1/4, but you occasionally have a different tuplet with _longer_ duration, then tupletSpannerDuration will break the long tuplet into several shorter durations, unless you always remember to \unset tupletSpannerDuration all the time. So, in irregular, tuplet-intensive music it may be sensible to create a music function for sequences of tuplets. In addition, it's IMHO a more lilypondesque solution than tupletSpannerDuration, once we support fractions as music function arguments. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Thursday 28 December 2006 11:13, Brett Duncan wrote: Erik Sandberg wrote: On Monday 25 December 2006 06:32, David Fedoruk wrote: Hello: I've been watching this discussion or debate. There are two ways to look at this problem. The first is from a programmer's point of view where the programmer is experienced with some computer languages, these days its upper level languages more and more. For these people, lilypond typesetting code feels comfortable when it is syntactically correct and when it makes sense in either computer or mathematical terms. A mathematical algorithm is what they are used to seeing. The other group has less mathematical knowledge, very little (very little compared to a programmer working on a major project like Lilypond) programming knowledge or experience. In all likelihood the only thing that connects these people is the printed musical score. At least in part I think these points have already been made. The question that occurs to me as a novice Lilypond user (and one who jumps in the deep end with complex scores!) is this: How will you deal with other types of prolongation or compression of notes into one or more beats or where the composers intentions are clear but they are not immediately mathematically correct? The example below is a single bar from a Beethoven Piano Sonata (Opus 31 number 3, 1st mvt. bar 53) in which two more out of the ordinary examples occur next to each other. You will excuse any mistakes in coding here, this doesn't render as it should. upper = \relative c'' { \clef treble \key ef \major \time 3 bf16[d f ef] \times 5/4 d16[ ef f g a] bf32[bf a c bf d c bf a g c g ef] } You can see how there are three beams, one for the notes in eaech beat. The first and second beat are quite clear, but the third one has eluded me as yet. The score has 12 thirty-second notes beamed together with 12 below the note heads. The printed score is clear to the performer. The Lilypond code I suspect is far more complex. The only way that 12 thirty-second notes will fit into one beat is if they are triplets, but in context, they are not played or heard as triplets. My only comment in this discussion is that the Lilypond code to represent this short passage should be as clear as the printed score I am reading. try \times 8/12 { ... } (by default, this will probably display as 12:8 above the notes, which can be tweaked to just show 12) IMHO, this is an argument for a mathematical notation: You must know what you are doing to notate the music (i.e., multiplying durations with 8/12), just saying that a 12 should be displayed above would make it difficult to maintain the .ly code. Here's a different idea: instead of specifying the ratio for a tuplet or set of tuplets, what about specifying the duration of a tuplet, and letting LP determine what number appears over the beam? For example, where we now use \times 2/3 { a8 b c } to get a triplet of three quavers in the time of two, instead have \tuplet 4 { a8 b c } LP can calculate the ratio (and hence what should appear over the tuplet) from the time given before the {...} and the cumulative time of the notes inside the {...}. This would mean that users do not need to work out the ratio, they just need to know how long the tuplet should last. Further to this idea would be to allow an internal division inside the {...}, so that multiple tuplets could be entered, maybe something like \tuplet 4 { a8 b c ! c4 a8 ! b8 c4 }. (I've used ! only for explaining the idea - I'm NOT advocating it as the desired syntax.) This would mean that for the Beethoven snippet in David Fedoruk's post, instead of bf16[d, f ef] \times 4/5 {d16[ ef f g a]} \times 8/12 {bf32[a c bf d c bf a g f g ef]} you would put bf16[d, f ef] \tuplet 4 { d16 ef f g a ! bf32a c bf d c bf a g f g ef } Just a thought! Unfortunately, the number above does not always follow from the duration. E.g., the factors 2/3 and 4/6 are mathematically equal, but give different numbers. It is probably difficult to define when to use 4/6 and 2/3, respectively (e.g., I guess {c8[ c16 c c8]} could have either a 3 or a 6 above it, depending on context) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Any way to turn off warning: ignoring too many clashing note columns?
On Saturday 18 November 2006 23:12, Trevor Bača wrote: Hi, So my question is: is there any way to turn off the clashing note column warnings? I think this is the one place where one of Lily's warnings truly is completely harmless and I feel safe turning it off. More importantly, I really need to see any *other* warnings that Lily generates, which is quite hard given the original sourcefile (which runs many thousands of lines). It would not be difficult to add a feature to disable warnings for specific input spots, so you could write something like: \new Voice { \noWarning e8 } \new Voice { \noWarning c8 } to suppress warnings only for the notes you have made strange tweaks to (I don't have much time now, but you could ask Han-Wen if he likes the idea, and if it's sponsorable). -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Saturday 23 December 2006 03:10, Frédéric Chiasson wrote: Might it be possible to use \tuplet 3:2 {x x x} for the usual operation, and if we want to have many tuplets of the same kind, to use \tuplet 3:2 { {x x x} {y y y} {z z z} } Might resolve the clarity problems. Doesn't look good to me, syntax becomes unclear for cases like \tuplet 3:2 { x {y y y } z } However, it would IMHO be OK to write a separate music function with this syntax, something like: \tupletSequence 3:2 {{ x x x} {y y y} {z z z}} -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Monday 25 December 2006 07:05, Joe Neeman wrote: On 12/21/06, Han-Wen Nienhuys [EMAIL PROTECTED] wrote: Erik Sandberg escreveu: BTW, in this case it may be good to register the fraction as its own argument type, so \tuplets and \tuplet are generic music functions, both with signature (tuplet-fraction? music?) it would be cool if we could pull this off, that would make \time generic too. Could you make 3:2 equivalent to #'(3 . 2)? Then - you don't need to introduce a new type - we could use x:y everywhere instead of the scary (it certainly was for me when I first started with lilypond) #'(x . y) With the current way the parser works, you'd probably be able to do something like #(ly:export '(x . y)); of course we can add a define-music-function style synonym on top of that, like #(make-fraction x y) BTW, I have some ideas to change the way SCM expressions work in the parser; unfortunately I haven't had the time to code lilypond for a very long time though, and other things are of higher priority. My idea is that the detection of types after ly:export should be carried out by the parser rather than lexer; this would allow a more intuitive behaviour of music macros the day they are implemented (it would be possible to delay the evaluation of inline SCM expressions) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Monday 25 December 2006 06:32, David Fedoruk wrote: Hello: I've been watching this discussion or debate. There are two ways to look at this problem. The first is from a programmer's point of view where the programmer is experienced with some computer languages, these days its upper level languages more and more. For these people, lilypond typesetting code feels comfortable when it is syntactically correct and when it makes sense in either computer or mathematical terms. A mathematical algorithm is what they are used to seeing. The other group has less mathematical knowledge, very little (very little compared to a programmer working on a major project like Lilypond) programming knowledge or experience. In all likelihood the only thing that connects these people is the printed musical score. At least in part I think these points have already been made. The question that occurs to me as a novice Lilypond user (and one who jumps in the deep end with complex scores!) is this: How will you deal with other types of prolongation or compression of notes into one or more beats or where the composers intentions are clear but they are not immediately mathematically correct? The example below is a single bar from a Beethoven Piano Sonata (Opus 31 number 3, 1st mvt. bar 53) in which two more out of the ordinary examples occur next to each other. You will excuse any mistakes in coding here, this doesn't render as it should. upper = \relative c'' { \clef treble \key ef \major \time 3 bf16[d f ef] \times 5/4 d16[ ef f g a] bf32[bf a c bf d c bf a g c g ef] } You can see how there are three beams, one for the notes in eaech beat. The first and second beat are quite clear, but the third one has eluded me as yet. The score has 12 thirty-second notes beamed together with 12 below the note heads. The printed score is clear to the performer. The Lilypond code I suspect is far more complex. The only way that 12 thirty-second notes will fit into one beat is if they are triplets, but in context, they are not played or heard as triplets. My only comment in this discussion is that the Lilypond code to represent this short passage should be as clear as the printed score I am reading. try \times 8/12 { ... } (by default, this will probably display as 12:8 above the notes, which can be tweaked to just show 12) IMHO, this is an argument for a mathematical notation: You must know what you are doing to notate the music (i.e., multiplying durations with 8/12), just saying that a 12 should be displayed above would make it difficult to maintain the .ly code. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Unequal, changing time signatures in parts
Hello, I have a manuscript from my organ teacher I'm attempting to transcribe. So far, so good, but the beginning of one composition has me stumped, despite looking for hints in the archive, snipits, and documentation. The piece begins with a somewhat unmeasured section; the bass is a slightly modified version of Adoro Devote, and the accompaniment is a tone cluster composed of tied whole notes. The cluster starts with a high d, and then after each phrase of the plainchant the next lower semitone is added (cis, c, b bes...fis) so that at the end of the chant, the full cluster is sounding. It is very beautiful. The problem I'm having is reconciling the whole note notation in the cluster with the varying meter of the chant within Lilypond; the bars in the chant are 9/8, 8/8, 10/8, 8/8, 10/8, 6/8, 8/8. 8/8. So, I can't get the tone cluster additions to line up properly with the chant phrases. In the manuscript, my teacher used vertical arrows in the score to emphasize the aligment of the tones where a new cluster tone enters. I'm happy to place barlines instead, as drawn arrows across three staves sounds pretty exotic. Once this section concludes, the rest of the score changes time frequently, but all parts are in the same time so I'm home free. I've looked at staff measure length and the arguments of \time, but can't seem to find a way to affect one staff without messing up the other. Any solutions or hints welcome. Thanks, Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Wednesday 20 December 2006 10:58, Mats Bengtsson wrote: Graham Percival wrote: ... hmm, what about allowing \tuplet 3:2 {c8 d e} \tuplet { f e d} Again, I definitely vote against! We already now have too many optional constructs in the syntax, which causes more confusion than it helps. I also vote against this. AFAIK, this kind of repetition seldom happens for other cases than 2/3 and 4/6; we can easily build music functions for those cases (i.e., create a unary function \triplet etc.) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Wednesday 20 December 2006 07:51, Graham Percival wrote: Han-Wen Nienhuys wrote: Jonathan Henkelman escreveu: I think Eriks point is actually well founded. The discussion started with my discussion of trying to trim down the grammer complexity. Adding syntax is not really in that direction. Another option: - add \tuplet 3:2 {.. } - replace \times 2/3 by \times #'(2 . 3) ; this can be implemented with a standard music function Oh God no. It took me a year to get used to #'(2 . 3) -- I kept on trying '#( and #( and #'(2.3)... every time I gave up after ten minutes and found an example from the documentation to copy. Scheme has rational numbers as a builtin type, so it _is_ possible to pass the easy-to-type #2/3 as an argument to a music function (AFAIK, this is the only case where scheme doesn't use polish notation). Unfortunately, this would not work with \times: #2/3 and #4/6 are the same rational number, but 2/3 and 4/6 are different tuplet fractions. Also, Scheme rational numbers may not contain whitespaces, so #2 / 3 is not the same as #2/3. (hm.. for obvious mathematical reasons this solution doesn't work, but if it WOULD have worked, it would have been a nice solution in a mathematical sense) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Tuesday 19 December 2006 15:25, Mats Bengtsson wrote: Werner LEMBERG wrote: \tuplet 3:2 {...} One minor detail is that the name isn't exactly appropriate when you do \set tupletSpannerDuration = #(ly:make-moment 1 4) \times 2/3 {c8 d e f e d e f g f e d } Well, in that case just stay with \times. I thought the proposal was to completely get rid of \times and replace it by \tuplet (which I think is a good idea). Just wanted to see if anybody had any bright idea on a command name that's accurate also in this special case. What about: \tuplets 2/3 {c8 d e f e d e f g f e d } We could also make \tuplet and \tuplets differ on the iterator level, so that the tupletSpannerDuration property affects \tuplets expressions but not \tuplet expressions. BTW, in this case it may be good to register the fraction as its own argument type, so \tuplets and \tuplet are generic music functions, both with signature (tuplet-fraction? music?) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Thursday 21 December 2006 12:55, Han-Wen Nienhuys wrote: Erik Sandberg escreveu: BTW, in this case it may be good to register the fraction as its own argument type, so \tuplets and \tuplet are generic music functions, both with signature (tuplet-fraction? music?) it would be cool if we could pull this off, that would make \time generic too. Hm, if we do this together with the 2:3 syntax change, then we would suddenly be able to write: \time 4:3 which would be equivalent to: \time 3/4 That's a bit confusing. BTW, if we start adding new types, it would be nice to create a new 'type' data structure, to be used in function signatures. The data structure would contain a type-checking predicate, a name (displayed when type-check fails), and perhaps a type ID for the lexer. This would allow more complex types, e.g. 'sequential music', 'single note or chord', 'pair of numbers' (as in #'(1 . 3)), etc; perhaps the system could be used for define-context-properties.scm as well. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Thursday 21 December 2006 15:01, Han-Wen Nienhuys wrote: Erik Sandberg escreveu: On Thursday 21 December 2006 12:55, Han-Wen Nienhuys wrote: Erik Sandberg escreveu: BTW, in this case it may be good to register the fraction as its own argument type, so \tuplets and \tuplet are generic music functions, both with signature (tuplet-fraction? music?) it would be cool if we could pull this off, that would make \time generic too. Hm, if we do this together with the 2:3 syntax change, then we would suddenly be able to write: \time 4:3 which would be equivalent to: \time 3/4 That's a bit confusing. BTW, if we start adding new types, it would be nice to create a new 'type' data structure, to be used in function signatures. The data structure would contain a type-checking predicate, a name (displayed when type-check fails), and perhaps a type ID for the lexer. This would allow more complex types, e.g. 'sequential music', 'single note or chord', 'pair of numbers' (as in #'(1 . 3)), etc; perhaps the system could be used for define-context-properties.scm as well. be careful. If you introduce type, you will have to introduce subtypes as well: seq-music is a subtype of music. Before you know, we'll be writing a type inference engine. I don't understand. Why isn't is sufficient to let typechecking be carried out by an arbitrary user-defined turing-complete function? music and seq-music don't need to share any code, the type inference engine machinery would be voluntary AFAICS (seq-music's predicate would check that the object is a Music and that it's of type SequentialMusic, and seq-music's name would be sequential music). And when it comes to parser, seq-music can just tell it that it expects a Music, and typecheck after parsing. Alternatively, we create an independent rule for seq-music which only accepts stuff on the form { }. This rule will exist independently of the generic Music rule. Or did I miss something? -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user