Re: LilyPond 2.24.0 released!
Great! Thanks to everyone involved!! Any idea when there will be a Debian package? (Not that I can't install it the way I have done the all the other 2.23.x versions). Paul On 12/15/22 2:42 PM, Jonas Hahnfeld via Discussions on LilyPond development wrote: We are proud to announce the release of GNU LilyPond 2.24.0. LilyPond is a music engraving program devoted to producing the highest-quality sheet music possible. It brings the aesthetics of traditionally engraved music to computer printouts. This version includes improvements and fixes since the branching of the previous stable release in October 2020. A list of added features and other user-visible changes can be found at https://lilypond.org/doc/v2.24/Documentation/changes/ This release switches to Guile 2.2 and features a completely rewritten infrastructure for creating the official packages, finally allowing us to offer 64-bit binaries for macOS and Windows. These pre-built binaries are linked from https://lilypond.org/download.html and available from GitLab: https://gitlab.com/lilypond/lilypond/-/releases/v2.24.0 LilyPond 2.24 is brought to you by Main Developers: Jean Abou Samra, Colin Campbell, Dan Eble, Jonas Hahnfeld, Phil Holmes, David Kastrup, Werner Lemberg, Han-Wen Nienhuys, Francisco Vila Core Contributors: Erlend E. Aasland, Kevin Barry, Martín Rincón Botero, Tim Burgess, Thibaut Cuvelier, Jefferson Felix, David Stephen Grant, Jordan Henderson, Masamichi Hosoda, Nihal Jere, Martin Joerg, Michael Käppler, Doug Kearns, Mark Knoop, Thomas Morley, Lukas-Fabian Moser, Martin Neubauer, Knut Petersen, Valentin Petzel, Pete Siddall, Alen Šiljak, Samuel Tam, Timofey, Nathan Whetsell Font Contributors: Johannes Feulner, David Stephen Grant, Owen Lamb Documentation Writers: Michael Käppler, Daniel Tobias Johansen Langhoff, Thomas Morley, John Wheeler Translators: Federico Bruni, Walter Garcia-Fontes, Dénes Harmath, Masamichi Hosoda, Guyutongxue, Chengrui Li, Jean-Charles Malahieude, Benkő Pál and numerous other contributors.
Re: LilyPond 2.23.7 released
I just downloaded the Linux version from from Lily web site and got a tar.gz version instead of the .sh version I expected. Is this a change or a mistake? Thank you, Paul > On Mar 26, 2022, at 2:36 PM, Jonas Hahnfeld via LilyPond user discussion > wrote: > > We are happy to announce the release of LilyPond 2.23.7. This is termed > a development release, but these are usually reliable. If you want to > use the current stable version of LilyPond, we recommend using the > 2.22.2 version. > > Starting with this release, LilyPond requires Guile 2.2 and the > official binaries were created with the new infrastructure developed > over the past months. Issues reported for the previous release have > been addressed, in particular regarding performance (by integrating > compiled bytecode) and on Windows, where it is now possible to extract > the provided zip archive with the Windows Explorer and use special > characters in filenames. Please test this release and let us know about > problems that you encounter.
Re: Need to remove links to lilypondblog.org
On 11/13/21 2:53 AM, Federico Bruni wrote: Paul, do you have a backup of lilypondblog.org? I might try converting it to a static site generator and host it on some free platform. Hi Federico, Thanks for your message. I'd like to help with this. Unfortunately, I don't have an up-to-date backup on my local machine. I tried logging into my shared hosting account and I can still access the WordPress database for the site. (I could export the database to something like JSON or other options, but I'm not sure that raw data is very useful.) I haven't confirmed but it looks like the domain has expired but the WordPress installation is still there. So what I'd like to try (when I can find time) is setting up a temporary subdomain somewhere and pointing it at the WordPress installation. If that works to let me log into the WP site, then I could use a plugin to do an "export to static html and css files" which could then be hosted somewhere or converted to a static site generator, etc. -Paul
\fixed and \relative
Would it be reasonable to have \fixed optionally take it's starting point from its first pitch like \relative does? I jumped on this when this feature was added to \relative. \fixed was the important reason I have now switched completely from \relative to \absolute. Am I missing anything that \absolute does that \fixed doesn't? Thank you for commenting on this, Paul
Re: Charles Winston's GSoC code: Chord Semantics (issue 337870043 by chazwi...@gmail.com)
Hi Carl, On 4/2/19 12:14 AM, carl.d.soren...@gmail.com wrote: https://codereview.appspot.com/337870043/diff/40001/input/regression/chord-name-exceptions.ly#newcode29 input/regression/chord-name-exceptions.ly:29: chExceptions = #(append (chordmode->exception-entry chordVar markupVar) chExceptions) Hmm, chExceptions is used in its own definition here? Does that work? This is not making sense to me. chExceptions is previously defined to be a couple of new chords prepended to ignatzekExceptions, so it can be used this way. Ah, right, okay. https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode238 scm/chord-entry.scm:238: 'chord-semantics chord-semantics)) Hmm, so there's a single 'chord-semantics property under a 'ChordSemanticsEvent ? Seems like we could avoid that extra step of nesting and just have the subproperties of 'chord-semantics under 'ChordSemanticsEvent ? And that would be more like NoteEvent and other events. Or maybe I'm missing something? We could do that, but it would pollute the global namespace with all the properties that are part of 'chord-semantics and are only used for chord semantics. By putting them in a single property, we avoid polluting the namespace. Similar to the way we do fret-diagram-details. Okay, I see. https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode243 scm/chord-entry.scm:243: (ly:pitch-octave (entry-pitch original-inv-pitch Would be more clear and consistent if original-inv-pitch were renamed to original-inv-entry or similar. Why? Not to be argumentative, but I wonder what about this name is more clear and consistent, in your opinion? Should have said more at the time. Here's what I think I was thinking. Having 'pitch' in the name conveys that it is a LilyPond 'pitch' data structure, but that isn't the case. Here you have to call `entry-pitch` on it to get a pitch out of it to pass to `ly:pitch-octave`. `entry-pitch` works on `chord-entry` type things: ;; Return pitch of a chord-entry (define (entry-pitch chord-entry) (car chord-entry)) So it seems to be more like a type of 'entry' structure, and avoiding using 'pitch' in the name (like with original-inv-entry or similar) makes it easier to understand what it is and what you can and can't do with it. https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode399 scm/chord-entry.scm:399: ((= alteration FLAT) (set! quality 'dim) Instead of all of these (set! quality ...) why not just let the result of this cond be assigned to 'quality' and add an 'else' 'maj at the end? Basically: (quality (cond ((= alteration SHARP) 'aug) ...)) I think it's because for some intervals, you set a zero alteration as perfect, while for others, the zero alteration is 'maj. So it doesn't drop easily into an else, I think. Ah, right, so we still need to take step-number into account. But there's still refactoring that can be done along the lines I suggested, as there are basically two cases, the major/minor and the perfect. Here's an untested refactor: (define (get-quality step-number alteration) (cond ;; major/minor ;; note from Paul: I added 7 and 14 which weren't in the original ((member step-number '(2 9 3 10 6 13 7 14)) (case alteration ((SHARP) 'aug) ((0) 'maj) ((FLAT) 'min) ((DOUBLE-FLAT) 'dim))) ;; perfect ;; TODO: will 11 have the same qualities as 4? ((member step-number '(1 8 4 11 5 12)) (case alteration ((SHARP) 'aug) ((0) 'perfect) ((FLAT) 'dim))) ;; default fallback (else 'maj))) (define (make-chord-entry-from-pitch pitch) (let* ((step-number (pitch-step pitch)) (alteration (ly:pitch-alteration pitch)) (quality (get-quality step-number alteration))) (make-chord-entry pitch (make-chord-step step-number quality https://codereview.appspot.com/337870043/diff/40001/scm/chord-entry.scm#newcode411 scm/chord-entry.scm:411: (if (= step-number 7) (set! quality 'min)) Defining quality using cond or case would be a more idiomatic Scheme-ish way to do it, avoiding the mutation of set!. I totally agree with you; I'll try to work this out for a future patch. For now, I want to just get it into review. Okay, makes sense. Thanks for working on this. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Please test new lilypond installers
On 1/29/19 1:24 PM, David Kastrup wrote: Paul Morris writes: On 1/29/19 4:19 AM, Knut Petersen wrote: lilypond-2.21.0-1.linux-64.sh Installed on Ubuntu 18.04.1 LTS and tested with a couple of pieces. Everything appears to be working fine. Thanks to all for the work on GUB and the next stable LilyPond release! Well, 21.0 is the next unstable release... Ah, yes, I didn't intend to imply otherwise, but I see how what I wrote could have been misleading. (I was just thinking along the lines of 'work on GUB contributes to the release of the next stable', but I may not be fully aware of all the details there.) Thanks for the clarification. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Please test new lilypond installers
On 1/29/19 4:19 AM, Knut Petersen wrote: lilypond-2.21.0-1.linux-64.sh Installed on Ubuntu 18.04.1 LTS and tested with a couple of pieces. Everything appears to be working fine. Thanks to all for the work on GUB and the next stable LilyPond release! -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guilev1/2 musing
Hi Jan-Peter, On 1/26/19 1:36 PM, Jan-Peter Voigt wrote: sorry for missing to mention your contribs! And thank you for the XML port. Oh, no problem, and you're welcome! I didn't look into the gsoc code lately, but perhaps the two projects dont need to compete? Yeah, it would be nice to consolidate the two efforts somehow. If you have a chance, it might be worth taking a look at the gsoc code. Basically, the gsoc approach doesn't collect events with an engraver and then build up a data structure from them. It rather converts a music expression into an s-expression data structure, same/similar as what you see when you do \displayMusic. This is where its approach seems potentially simpler. Then it uses the pattern matching and SXML modules to transform the s-expression data into MusicXML. This part (transforming some data into MusicXML) seems fairly similar in both approaches (either using the pattern matching module or just vanilla Scheme). So the first part of how to get at the data seems like the key question. I'm not sure what the impact of these approaches is for how the user might ultimately use the feature. Maybe not much. Having export blocks like layout and midi, as you mentioned, seems like a nice consistent interface. The functions to build XML are copied from guile 2 so they can be easily adapted if they are included in a guile 1 fork or via guile 2. Some more detail on this: these copied functions are only a small part of the SXML module, just the ones to convert from sxml to XML. These were easy to copy. The gsoc code uses the pattern matching module and I think more of the SXML module, which didn't appear to be as easy to copy and use with guile1. Here are links for anyone curious: GSOC code: https://sourceforge.net/p/testlilyissues/issues/665/#6428 OpenLilyLib code: https://github.com/openlilylib/lilypond-export Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guilev1/2 musing
Hi Harm, On 1/25/19 3:17 PM, Thomas Morley wrote: If you do a regtest-comparison between builds with guile-1 and guile-2, nothing serious is visible in the images. So far one could say "well enough". Though, looking through the other results, some other flaws are noticeble. One I remember immediately is the not working 'procedure-source'. It's simply disabled in guile-2, see https://lists.gnu.org/archive/html/guile-user/2012-09/msg00020.html So with guile-2: \void \displayLilyMusic \applyContext #(lambda (ctx) (ly:context-set-property ctx 'fontSize 6)) -> \applyContext ##f I think there were more, but I would need to redo the regtest to be sure. Ah, okay, thanks for the info on what works and what doesn't with guile2. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guilev1/2 musing
On 1/25/19 10:43 AM, David Kastrup wrote: Paul Morris writes: One area where guile2 (and upcoming guile3) would be useful is for MusicXML export. David Garfinkle's summer of code project (mentored by David Kastrup) made a start on using guile2's sxml and pattern matching procedures (which aren't in guile1) They exist as Guile1 library, it's just that they are by default in Guile2. If we decided prepackaging Guile1 was the way to go, including the respective library version should be feasible as well. No guarantees, but that was my impression. Ah, good to know they exist as guile1 libraries. (I just assumed that since guile2 was used for the gsoc project, that they didn't exist for guile1.) Does anyone know where to locate them? I did some searching and came up short. They are "Pattern Matching (ice-9 match)" and "SXML" modules in the current guile2: https://www.gnu.org/software/guile/manual/html_node/Guile-Modules.html Since guile2 appears to work well enough at this point, aside from performance, would it be worth setting up a "guile2 and musicxml export" branch where we could land David Garfinkle's code and enable further work on MusicXML export? It seems like a guile2 branch already exists to some extent? Not really, and I don't think it makes sense to commit functionality to Guile2-only at this moment. Okay, and since the needed libraries exist for guile1, then work on (that approach to) musicxml export doesn't need to be blocked waiting on guile2. Then at some future point... either LilyPond moves to a future guile or we back-port the guile2 procedures to guile1. "some future point" is just going to cause additional work. We don't really have the personnel to do non-essential/non-trivial work on two separate implementations. Makes sense, and sounds like we don't need to wait for guile2 anyway. (Jan-Peter Voigt has also done separate work on MusicXML export, but my sense is that in the long run, the approach in the summer of code project would be preferable.) I haven't looked at Jan-Peter's approach. David Garfinkle's code is mostly in the state of a solid first sketch, so a distribution-viable production-ready code is still quite a bit of work away. Without anybody committed to take it considerably further, making decisions based on its existence would seem to be a bit premature. Like with many open ends, this is more or less the "who decides to invest significant work gets to decide on the approach". There is not much of a point in planning out in detail what nobody will pick up. Indeed, although, I've contributed a bit to Jan-Peter's code for this, and would like to contribute more (as time allows) to see this feature added to LilyPond. But I've wondered which approach would make more sense for eventual landing in LilyPond. More consensus about the approach, could encourage contributions by removing such questions. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guilev1/2 musing
On 1/24/19 3:08 PM, Thomas Morley wrote: From my point of view (and limited knowledge) other newly implemented guilev2-procedures are not _that_ important. One area where guile2 (and upcoming guile3) would be useful is for MusicXML export. David Garfinkle's summer of code project (mentored by David Kastrup) made a start on using guile2's sxml and pattern matching procedures (which aren't in guile1) to convert LilyPond's internal music data structures into MusicXML output. One option would be to 'back-port' those procedures to a guile1 implementation, then further work on MusicXML export could happen with guile1, and the code would also work with guile2. However, when I took a cursory look, rewriting those procedures looks non-trivial, and the effort would probably be better spent in other ways. Since guile2 appears to work well enough at this point, aside from performance, would it be worth setting up a "guile2 and musicxml export" branch where we could land David Garfinkle's code and enable further work on MusicXML export? It seems like a guile2 branch already exists to some extent? Then at some future point... either LilyPond moves to a future guile or we back-port the guile2 procedures to guile1. (Jan-Peter Voigt has also done separate work on MusicXML export, but my sense is that in the long run, the approach in the summer of code project would be preferable.) Thanks for the insights into the guile1/2 situation and what's causing the performance hit. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 0.3 sha256sum
On 12/13/18 8:47 PM, Paul Morris wrote: I also recommend the container approach. Here are the steps for the container setup: https://github.com/fedelibre/LilyDevOS/tree/v0.3/mkosi#container -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 0.3 sha256sum
Hi Andrew, On 12/13/18 6:17 PM, Andrew Bernard wrote: [I don't know anything about containers, but I am willing to learn. But it would be goodo to get the VM machine going alos.] I also recommend the container approach. I hadn't used them before Federico brought them to LilyDev. Basically after following the setup steps you end up with an open terminal and that is how you access and use the container environment (there's no GUI like with VirtualBox VM). In that container terminal you run make, make doc, etc., anything that needs the dependencies, and that's basically all you need to use the container for. You can access the source code files and edit them in your usual (host) OS using your usual tools. Also using git and pushing patches up to Reitveld can be done in the host environment (where you have access to a browser, etc.). It's nicer to use than a VM because you work in your familiar OS with familiar tools, and you basically get the full power of your machine (in terms of RAM, etc.) when compiling. I'd like to add details like this on how it works to the LilyDev documentation if I can find time. Thanks for working on the Python migration, BTW. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GSoC Proposal - SVG Export
On 12/3/18 10:07 AM, Richard Shann wrote: what seems strange is that there seems to be no concept of "backgound color" in SVG (logical in a way as SVG is about things you can draw) allowing for the possibility of drawing white on white. Easily setting a background color would be a nice option to have. There's this snippet, and it works for SVG (but there's room for improvement): http://lsr.di.unimi.it/LSR/Item?id=699 yes, you add stuff to the LilyPond input to color everything explicitly black. IIRC you can specify extra stuff to be included from the command line too. Ah, right, like this: http://lsr.di.unimi.it/LSR/Item?id=443 That wraps everything in tags with a color property, like so: Would probably be better if it did this instead: Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GSoC Proposal - SVG Export
Hi Carl and everyone, On 12/2/18 8:02 PM, Carl Sorensen wrote: We used to have black be the color of the glyphs. We made a very specific and intentional move from black to currentColor. And it was an improvement, IMO. That is why I feel strongly about moving away from currentColor. currentColor sounds like the right default. It also seems reasonable to allow the user to override that default and set it to black or another color, depending on their use case. Maybe that's already possible? Maybe it's even already possible from the command line? If not, giving users the option should address the concerns, and would make sense in this kind of GSOC proposal. Étienne, I really like your proposal. I'd love to see improvements to SVG, moving towards giving it first-class support in LilyPond. And kudos for planning ahead. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Export to MusicXML
On 10/17/18 2:55 AM, Jan-Peter Voigt wrote: 2. the MusicXML is created "manually" with simple string-concatenation. [...] It would be very helpful to have an XML-lib at hand for the export. Hi all, I've done some work on this. See this PR: https://github.com/jpvoigt/lilypond-export/pull/9 Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Export to MusicXML
On 10/16/2018 10:48 AM, Paul Morris wrote: I don't know if the code he wrote was ever checked in somewhere, on a branch or something. (It's not mentioned in the issue for this feature.) I've now added the GSOC 2015 code to the issue and put a link to Jan-Peter's work there as well. https://sourceforge.net/p/testlilyissues/issues/665/ -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Export to MusicXML
For Google Summer of Code 2015 David Garfinkle worked on MusicXML export. (See mailing list archives: https://lists.gnu.org/archive/cgi-bin/namazu.cgi?query=Garfinkle&submit=Search%21&idxname=lilypond-devel&max=20&result=normal&sort=score ) I don't know if the code he wrote was ever checked in somewhere, on a branch or something. (It's not mentioned in the issue for this feature.) I have a copy of it somewhere that he sent me, but I'd assume that Jan-Peter's work on this would be the better place to start / collaborate. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: #5355 Doc: document grob metadata in SVG output in Notation Reference
James, On 07/04/2018 09:41 AM, James Lowe wrote: On Sun, 1 Jul 2018 17:52:02 -0400, Paul Morris wrote: Thanks. It turned out I had a new SSH key that I hadn't added to Savannah yet. So I got it to work by following CG 3.4.9 http://lilypond.org/doc/v2.19/Documentation/contributor/commit-access I noticed that where the CG says: " SSH should issue the following warning: The authenticity of host 'git.sv.gnu.org (140.186.70.72)' can't be established. RSA key fingerprint is 80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5. Are you sure you want to continue connecting (yes/no)? Make sure the RSA key fingerprint displayed matches the one above. " This did not match what I saw in my terminal. (I saved what I saw if that's useful.) It may have been a bad move but I lived dangerously and went ahead anyway. But the CG may need an update? I checked and using the command ssh-keygen -E md5 -lf <(ssh-keyscan git.sv.gnu.org 2>/dev/null) I get this for MD5 hashes 1024 MD5:80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5 git.sv.gnu.org (RSA) and for SHA256 ... 1024 SHA256:FYkx0iik+iBeCLRzvUyUSTRT98TEBBJoYuQsTXbyGL8 git.sv.gnu.org (RSA) So the CG prints the MD5 hash - and it looks OK to me. If you didn't get either of those can you attach what you did get? James Below is what I got, which doesn't match what you have above. Looks like I have ECDSA instead of RSA, or something? $ git pull --verbose The authenticity of host 'git.sv.gnu.org (208.118.235.201)' can't be established. ECDSA key fingerprint is SHA256:qRLLJ4w/GAeiDyYnbx4yWJbZXwGiYYxgNty7lAfUyuM. Are you sure you want to continue connecting (yes/no)? My .git/config file has this in it (except with my actual savannah username): [remote "origin"] url = ssh://usern...@git.sv.gnu.org/srv/git/lilypond.git fetch = +refs/heads/*:refs/remotes/origin/* -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: #5355 Doc: document grob metadata in SVG output in Notation Reference
On 07/01/2018 02:43 AM, David Kastrup wrote: Edit your .git/config file and change the repository address according to the Git repository clone command given for developers on LilyPond's Savannah page. Thanks. It turned out I had a new SSH key that I hadn't added to Savannah yet. So I got it to work by following CG 3.4.9 http://lilypond.org/doc/v2.19/Documentation/contributor/commit-access I noticed that where the CG says: " SSH should issue the following warning: The authenticity of host 'git.sv.gnu.org (140.186.70.72)' can't be established. RSA key fingerprint is 80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5. Are you sure you want to continue connecting (yes/no)? Make sure the RSA key fingerprint displayed matches the one above. " This did not match what I saw in my terminal. (I saved what I saw if that's useful.) It may have been a bad move but I lived dangerously and went ahead anyway. But the CG may need an update? -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: #5355 Doc: document grob metadata in SVG output in Notation Reference
On 06/28/2018 03:35 AM, pkx166h wrote: * *Patch*: countdown --> push * *Comment*: Patch counted down - please push I tried pushing my patch to staging and got the following error: $ git push origin HEAD:staging fatal: remote error: access denied or repository not exported: /lilypond.git This worked for me before in years past, but it's possible I didn't set up my git credentials exactly the same when I moved to using the LilyDevOS container? How to proceed? Thanks, -Paul *[issues:#5355] <https://sourceforge.net/p/testlilyissues/issues/5355/> Doc: document grob metadata in SVG output in Notation Reference* *Status:* Started *Created:* Thu Jun 21, 2018 06:35 PM UTC by Paul Morris *Last Updated:* Mon Jun 25, 2018 09:41 AM UTC *Owner:* Paul Morris Doc: document grob metadata in SVG output in Notation Reference I.e. using the 'output-attributes' grob property to add id, class, and other attributes to the SVG output for a given grob. http://codereview.appspot.com/357720044 Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/testlilyissues/issues/5355/ To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: \class grob property
Huh, looks like I already created a changes entry and regtests for this output-attributes feature. https://codereview.appspot.com/308430043 https://sourceforge.net/p/testlilyissues/issues/4974/ I think I didn't do user documentation because the previous ID-only functionality didn't have any. So I can work on adding that somewhere. Looks like the infrastructure for really testing svg output is an open issue: https://sourceforge.net/p/testlilyissues/issues/5185/ (And since this functionality is not visible in the svg (by itself), tests would need to check the svg source code rather than its visual result.) Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: \class grob property
On 05/17/2018 09:00 AM, David Kastrup wrote: Man, I must have slept through this. "this is already supported in 2.19" is misleading if it's actually only supported _outside_ of 2.19, namely by chancing upon people in the know in the mailing lists. The problem with that kind of support is that it's unreliable. Stuff might get reimplemented because people cannot find what they are looking for, and the old code might get removed as bit rot at any point of time. To actually move it to "supported" state inside of LilyPond, there need to be regression tests (which also stop bit rot), user-level documentation and a Changes entry. That gives a new feature a reasonable chance of getting tested and consolidated in order to be useful for more than a single application (often by a single person) in its region of interest. Do you feel up to getting that kind of support into LilyPond? Hi David, I agree that this deserves to have regression tests, user-level docs, and a changes entry (to go with its current documentation in the internals reference). I'll try to find time to work on those things in the next weeks. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: \class grob property
Hi Urs, On 05/13/2018 02:02 PM, Urs Liska wrote: 1) for SVG output the objects would get the class assigned (along with an id). I don't have any idea yet how that is implemented, though. This will make it possible to work with CSS in a display environment. You'll be glad to know this is already supported in 2.19. Check out this grob property: |output-attributes| (list) An alist of attributes for the grob, to be included in output files. When the SVG typesetting backend is used, the attributes are assigned to a group () containing all of the stencils that comprise a given grob. For example, |'((id . 123) (class . foo) (data-whatever . “bar”))| will produce | … |. In the Postscript backend, where there is no way to group items, the setting of the output-attributes property will have no effect. It's only documented in the internals reference. I think it probably gives you what you need to do what you want? I added this functionality to LilyPond awhile back while working on 'lilypond-html-live-score'. (Would like to find more time to do more work with that, but...) This code might be of interest: https://gitlab.com/sigmate/lilypond-html-live-score/blob/master/grob-inspector.ily Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: new LilyDev, 0.2 release
Congrats and thanks Federico! Glad to know there's a Debian container now. -Paul On 11/03/2017 01:13 PM, Federico Bruni wrote: Hi all Few days ago I made a new release (version 0.2): https://github.com/fedelibre/LilyDevOS/releases/tag/v0.2 I chose to keep calling the final images LilyDev, even if the repository is called LilyDevOS. Next week I'll send a patch to update the link in the CG to point to this new repository. I had planned to make also a new release of the old LilyDev (hopefully the last one), but I ran out of time. I'll do it next week. New in this release: Added a Debian container, based on stretch. Fedora images upgraded to version 27. Added all dependencies needed to build LilyPond without any warning: extractpdfmark, URW-35 OpenType font files (thanks to @karlinhigh for his script). GUI apps can now be run from the container out of the box. This is based on a couple of assumptions, which should be correct most of the times (see the README). ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Enhance the -dpreview method for SVG output (issue 326960043 by pkx1...@gmail.com)
On 07/27/2017 03:21 AM, pkx1...@gmail.com wrote: This is a first attempt to merge the dump-page and dump-preview methods so that there is an option for cropping pages that are not just previews. I wonder... is the desired functionality already provided by one-page-breaking and/or one-line-auto-height-breaking? http://lilypond.org/doc/v2.19/Documentation/notation/page-breaking#one_002dpage-page-breaking http://lilypond.org/doc/v2.19/Documentation/notation/page-breaking#one_002dline_002dauto_002dheight-page-breaking I haven't had time to look at the patch, and I'm still not sure exactly what it's trying to do. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDevOS, a LilyDev container + full VM image
On 07/17/2017 04:58 AM, Federico Bruni wrote: $ sudo systemd-nspawn -bD lilydevos-0.1 sudo: unable to resolve host t440s This is not causing any problem, right? Anyway, here you can find some hints on how to fix it: https://askubuntu.com/questions/59458/error-message-when-i-run-sudo-unable-to-resolve-host-none Thanks, I've seen this for awhile, but everything has seemed to work fine. I've now fixed it with the info in that link. (My machine name in /etc/hosts was off.) Spawning container lilydevos-0.1 on /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1. Press ^] three times within 1s to kill container. Failed to create directory /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: Read-only file system Failed to create directory /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: Read-only file system I think you can safely ignore it. This may happen when selinux is disabled, according to this: https://github.com/systemd/systemd/issues/3711 But I have selinux disabled and I'm not getting those messages... # sestatus SELinux status: disabled Huh, odd. I'll just ignore it for now. [gitk] can work also from the guest if you use the correct DISPLAY environment variable. Find it in your host with this command: $ echo $DISPLAY :0 Then launch gitk from the container with: $ DISPLAY=:0 gitk You can use an alias and forget the special command. Add this line to ~/.bashrc: # Let gitk work on host display alias gitk="DISPLAY=:0 gitk" As .bashrc is the same for container and full VM, I won't add this configuration. I'll add only a suggestion in the README. Great! This is working for me now. Same display value of `:0` I've now updated the instructions about the container. I've also added instructions on setting up the virtual machine in libvirt (i.e. also GNOME Boxes and virt-manager) with a single command. Looks good. Nice additions about libvirt use. A suggestion: it might be worth clarifying the steps for first setup vs repeat use of the container? I think the main (only?) difference is that you don't need to run the setup script after you've already done it. Also, the authentication in git-cl opens a web page in a browser so I'm not sure how that will work from the container? w3m and elinks accept cookies by default, so login to google is easy and saved across different sessions. I just need to check if the redirect from /get-access-token?port=8001 works. I want to avoid installing a regular browser, as it would add some dependencies and increase the final size of the container. Cool, glad there's a good solution for this. BTW, let me know if the password is working. I'm not sure I've uploaded the correct version.. It wasn't working for me (e.g. when I tried to install guile-devel). If it doesn't, use this command as root: echo 'dev:lilypond'|chpasswd This fixed it for me. And I was able to install guile-devel. (GNU Guile 2.0.14) Thanks again. It's coming together well! -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Any objections to branching off a stable branch for 2.20?
On 07/17/2017 02:14 PM, David Kastrup wrote: Currently there is a bit of a lull (not entirely graceful due to me not keeping up with things all the best), so the time seems convenient. No objections here. What's the latest thinking/status for issue 3884? Anything I can / should do? Patch: Add on-page-greater-than, -less-than (on-the-fly) https://sourceforge.net/p/testlilyissues/issues/3884/ There are a few "critical" bugs outstanding, the "Changes" document should be reordered to be systematic rather than in reverse time order, and I'd want to add a bit of syntactic Scheme and LilyPond sugar of the \markup blabla = \markup \with-color #red \etc I like the goal of defining named markup functions via \etc but I find this syntax a bit odd, with the `=` to the right of `\markup` . I can't think of other cases in LilyPond like this: \onething another = where a '\' is to the left of an `=`. It's usually `a = b` or `\a b` but not `\a = b` or `\a b = c`. Are there other options that wouldn't introduce this new pattern? Would something like this work? \define-markup blabla \markup \with-color #red \etc variety in order to define named markup functions via \etc . Basically, this would split define-markup-command into a definition part called by \markup blabla = ... and a function part, say (markup-lambda (layout props arg) (markup?) #:properties ) that can be generated by a \markup ... \etc expression or other means. Basically, that's mainly for avoiding the current "ugh" of blabla-markup = \markup ... \etc I agree this is "ugh". -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Duplication of pages with slight changes to color of grobs?
Hi Knut, Nice work on the videos. Just a couple quick thoughts. On 07/17/2017 02:30 AM, Knut Petersen wrote: B) Is there a practical way to redefine color? within a .ly file in a way that it is recognized by lilyponds code? I take it you have tried this? #(define (color? ...) ...) In the after-line-breaking function I give color the objects ... well, not really: I abuse the color property to encode the moment and duration of the color change. Would it help to define your own custom properties (grob or context) to avoid overloading the color property. I have this in my include file for Clairnote: #(let* ;; translator-property-description function ;; from "scm/define-context-properties.scm" (modified) ((context-prop (lambda (symbol type?) (set-object-property! symbol 'translation-type? type?) (set-object-property! symbol 'translation-doc "custom context property") (set! all-translation-properties (cons symbol all-translation-properties)) symbol)) ;; define-grob-property function ;; from "scm/define-grob-properties.scm" (modified) (grob-prop (lambda (symbol type?) (set-object-property! symbol 'backend-type? type?) (set-object-property! symbol 'backend-doc "custom grob property") symbol))) (context-prop 'myfoo list?) (grob-prop 'mybar integer?) ;; etc... ) Then I can use my custom properties just like the built-in ones. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDevOS, a LilyDev container + full VM image
On 07/15/2017 02:43 PM, Paul wrote: Also, the authentication in git-cl opens a web page in a browser so I'm not sure how that will work from the container? I suppose one could just install git-cl in the host os and use it from there, (assuming the two uids match allowing access to the files). -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDevOS, a LilyDev container + full VM image
On 07/14/2017 05:52 AM, Federico Bruni wrote: https://github.com/fedelibre/LilyDevOS/releases/tag/v0.1 Hi Federico, This looks great! I downloaded the one for linux (I'm on Ubuntu 16.04 LTS) and gave it a try. I ran into a few things but got it working and successfully built LilyPond in the container. Details below. One issue was that I had systemd installed, but not systemd-container, so I had to install that. So maybe we should add that to the dependencies in the instructions? $ sudo systemd-nspawn -bD lilydevos-0.1 sudo: unable to resolve host t440s sudo: systemd-nspawn: command not found $ systemd-nspawn --help The program 'systemd-nspawn' is currently not installed. You can install it by typing: sudo apt install systemd-container After that, things worked, although I saw some "Failed to..." messages, not sure if they are a problem or not: $ sudo systemd-nspawn -bD lilydevos-0.1 sudo: unable to resolve host t440s Spawning container lilydevos-0.1 on /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1. Press ^] three times within 1s to kill container. Failed to create directory /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: Read-only file system Failed to create directory /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: Read-only file system systemd 233 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN default-hierarchy=hybrid) Detected virtualization systemd-nspawn. Detected architecture x86-64. Welcome to Fedora 26 (Twenty Six)! Set hostname to . Initializing machine ID from random generator. Failed to install release agent, ignoring: File exists [ OK ] Listening on /dev/initctl Compatibility Named Pipe. [ OK ] Listening on Journal Socket (/dev/log). [ OK ] Created slice User and Session Slice. [ OK ] Reached target Swap. [ OK ] Listening on Process Core Dump Socket. [ OK ] Created slice System Slice. [ OK ] Created slice system-getty.slice. Mounting Huge Pages File System... Mounting FUSE Control File System... [ OK ] Reached target Slices. Mounting POSIX Message Queue File System... [ OK ] Listening on Journal Socket. [ OK ] Reached target Local File Systems (Pre). [ OK ] Reached target Local File Systems. Starting Rebuild Journal Catalog... [ OK ] Started Forward Password Requests to Wall Directory Watch. Starting Rebuild Dynamic Linker Cache... [ OK ] Started Dispatch Password Requests to Console Directory Watch. [ OK ] Reached target Paths. [ OK ] Reached target Encrypted Volumes. Starting Create System Users... Starting Journal Service... [ OK ] Reached target Remote File Systems. [ OK ] Mounted FUSE Control File System. [ OK ] Mounted POSIX Message Queue File System. [ OK ] Mounted Huge Pages File System. [ OK ] Started Create System Users. [ OK ] Started Journal Service. Starting Flush Journal to Persistent Storage... [ OK ] Started Rebuild Journal Catalog. [ OK ] Started Flush Journal to Persistent Storage. Starting Create Volatile Files and Directories... [ OK ] Started Create Volatile Files and Directories. Starting Update UTMP about System Boot/Shutdown... [ OK ] Started Update UTMP about System Boot/Shutdown. [ OK ] Started Rebuild Dynamic Linker Cache. Starting Update is Completed... [ OK ] Started Update is Completed. [ OK ] Reached target System Initialization. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Reached target Sockets. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Started dnf makecache timer. [ OK ] Reached target Timers. [ OK ] Reached target Basic System. Starting Permit User Sessions... [ OK ] Started D-Bus System Message Bus. Starting Login Service... [ OK ] Started Permit User Sessions. [ OK ] Started Console Getty. [ OK ] Reached target Login Prompts. [ OK ] Started Login Service. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... [ OK ] Started Update UTMP about System Runlevel Changes. Fedora 26 (Twenty Six) Kernel 4.4.0-83-generic on an x86_64 (console) lilydev login: Next I found that the uid for the dev user in the container was not the same as my host user uid, so I wasn't able to access the files from the host user account. But I was able to use the instructions in this blog post to change the dev user uid and that fixed it: https://muffinresearch.co.uk/linux-changing-uids-and-gids-for-user/ And I was able to successfully build lilypond in the container. (Look mom, no VM!) So this is really nice. I can edit files using my usual desktop environment and text editor, then just do git and git-cl via the command line
Re: Using/requiring Cairo
On 06/26/2017 02:36 PM, David Kastrup wrote: Interestingly, "Cairo uses hardware acceleration when available." Well, to be fair this just concerns display backends. So it might be interesting for Denemo and Frescobaldi interfacing but will not otherwise affect output. I think it would be quite interesting for creating "live" output "rolls" for editing. Ah, good to know. That would indeed be cool if it could be used by front-ends like that. Yes. That is what suggests eventual retirement of the existing backends to be an option that could end up reducing the amount of ongoing developer effort for keeping the backends in uniformly coherent shape. Cairo doesn't do stuff like skylines and page layout, so finding good ways for fudging stuff together will still be necessary. I assume users would still be able to make their own stencils (or equivalent cairo data structures), via the guile-cairo wrapper or otherwise. Also it would be good to still be able to include ids or other metadata in svg output. Just to put those things on the radar. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
I can't speak to the technical questions, but I see the appeal of this idea. Cairo looks like a mature, well-supported, and widely-used library. https://en.wikipedia.org/wiki/Cairo_%28graphics%29 Interestingly, "Cairo uses hardware acceleration <https://en.wikipedia.org/wiki/Hardware_acceleration>^[3] <https://en.wikipedia.org/wiki/Cairo_%28graphics%29#cite_note-3> when available." I see that it can produce Postscript as well as PDF, among its various backends. "The vector graphics application Inkscape <https://en.wikipedia.org/wiki/Inkscape> uses the Cairo library for its outline mode display, as well as for PDF <https://en.wikipedia.org/wiki/Portable_Document_Format> and PostScript <https://en.wikipedia.org/wiki/PostScript> export..." -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: What is the point of \on-the-fly ?
On 06/13/2017 11:16 AM, David Kastrup wrote: (define-markup-command bla) does not define bla, but rather bla-markup, make-bla-markup and bits and pieces used for signatures and the markup macro. Even then, creating music functions on the fly _and_ using them requires use of $(define-music-function ...) since #(define-music-function ...) does not call the generated music function (would be hard assigning a music function if it got called right away...). Ah ok, thanks for the explanation. (I need to brush up on my $ vs #.) I actually just proposed an issue where you _can_ call markup functions on the fly when defined properly. Sounds good. This is the $ one. But the process of assigning a markup command with all that it entails cannot be done in the same manner. Since we can generate markup commands "on the fly" with \markup ... \etc, assigning them in a manner corresponding to define-markup-command might be nice. I suggested \markup bla = ... for it without being all too clear about whether this implied \markup mode, allowing for \markup bla = \bold \large \etc rather than \markup bla = \markup \bold \large \etc There were no real comments (and I am fuzzy on the details of the ensuing non-discussion as far as I remember it) so this proposal petered out. Hmm, I must have missed this, but sounds promising. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: What is the point of \on-the-fly ?
On 06/12/2017 01:00 AM, David Kastrup wrote: The use case is similar to that of lambda: creating a procedure on the fly without giving it a name. Ah, got it. Then makes sense to avoid having to use on-the-fly, by converting those named on-the-fly procedures into actual markup commands. Just thinking out loud, but if define-markup-command worked like define-music-function and friends (i.e. like lambda) so that they returned a procedure, like this: command-name = #(define-markup-command (layout props args...) ... (define command-name (define-markup-command (layout props args...) ... Rather than the current form: (define-markup-command (command-name layout props args...) ... Would that remove the need for on-the-fly or am I missing something? I'm sure that would not be a trivial change -- again just thinking out loud. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: lilypond-manuals.css: edit color scheme and some spacing (issue 322070043 by paulwmor...@gmail.com)
On 06/12/2017 06:24 AM, fedel...@gmail.com wrote: I like a lot the new color scheme! More elegant and easier for the eyes. Thanks, glad you like it! ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: lilypond-manuals.css: edit color scheme and some spacing
On 06/12/2017 03:02 PM, Flaming Hakama by Elaine wrote: CSS is happy with both properties set: width as a percentage and min-width as an absolute value. There is no conflict and they should work together well. Hi, yes, thanks, but... I glossed over the details. If you look at the css file you'll find that the main content div is positioned so that its "left" property is a percentage that corresponds with the sidebar's "right" property. There is actually no "width" property in use and I don't think there is a maximum left/right css property to use, thus... what I wrote in my previous email. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: lilypond-manuals.css: edit color scheme and some spacing (issue 322070043 by paulwmor...@gmail.com)
On 06/10/2017 07:30 PM, carl.d.soren...@gmail.com wrote: I don't feel strongly about the old design being bad. What got me motivated to work on it was the bright (fully saturated) colored borders around the code blocks, which I found distracting. The new design looks mostly fine to me. Glad to hear it. I feel like the table of contents bar at the left is too wide. I agree; it can get a bit wide especially on wider monitors/windows. (Note I have not changed its width in this patch.) Currently the size is a percentage of the window width. We could make that smaller, but at the risk that it gets too narrow on smaller screens/windows. Another way would involve a different approach in the css, allowing us to set a maximum and minimum width to it. But this would entail more work/changes to the css and maybe the html. (e.g. to use floats, flexbox, or grid positioning rather than the current "position: fixed;" approach.) Or... we could keep the "position: fixed;" approach and set the width to a constant amount rather than a percentage. And/or we could also set media query break points to change that constant for different window widths. This could even be combined with the percentages so it could effectively have a max and min width and be set by percent in between. In any case this would warrant its own issue. But I would be fine with it being like this. Glad to hear, and thanks for the feedback. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Releasing 2.20
On 06/08/2017 03:31 PM, David Kastrup wrote: Sounds good to me. I have a few things I'd like to get into the stable release, one way or another, if possible. - Some CSS edits for the docs that I started but havent finished/submitted for review yet. I'll try to get that done in the next few days if I can. Shouldn't matter a lot regarding stable/unstable but we should get the bikeshedding finished by release time. Sounds good. - Might be worth looking again at issue 3884, either to just go with the initial patch for now, or try for one of the other approaches in that discussion? https://sourceforge.net/p/testlilyissues/issues/3884/ Ugh, looks like another ball I dropped. I'll take to pencil and paper some time tomorrow. I see you already have a proposal/fix. That was fast! I'll try to take a look and reply in the other thread. - This doesn't really matter, but it might be worth renaming the "staffLineLayoutFunction" context property (which is not really about staff lines...) to something better, maybe "pitchToStaffPositionFunction" or pitchToStaffPositionProcedure"? (It takes a pitch and returns an integer indicating a vertical staff position. It's used in note-heads-engraver.cc) Well, discussion needs to have converged really well for changes to preexisting conventions to get into stable: we don't really want to do gratuitous changes that might get changed again or do not provide a definite payback for the hassle. OK, sounds like a discussion to have for 2.21 / 2.22 then. A few other possibilities, for later: pitchToStaffLayoutFunction pitchToStaffLayoutProcedure staffPitchLayoutFunction staffPitchLayoutProcedure Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Releasing 2.20
On 06/07/2017 04:34 PM, David Kastrup wrote: tomorrow I am leaving for physical therapy. Hope it goes well David! So how is it going to end up? Barring objections, I'll probably branch off a stable release branch early next week. I'll have to see what to cherry-pick into this branch as fixes proceed, and possibly what to revert when it is not clear that functionality provided by recent patches/changes can be considered stable in use and interface. I don't think that we should need much more than the 3-week maturing period corresponding to the expected physical therapy duration. The alternative of releasing 2.18.3 since 2.18.2 does not even compile using gcc-7 anymore is something I want to avoid. So I'd rather pitch for a timely release of 2.20. There have been a few critical bugs flagged, however. I'll take a look at them eventually but if someone else has a good idea... Sounds good to me. I have a few things I'd like to get into the stable release, one way or another, if possible. - Some CSS edits for the docs that I started but havent finished/submitted for review yet. I'll try to get that done in the next few days if I can. - Might be worth looking again at issue 3884, either to just go with the initial patch for now, or try for one of the other approaches in that discussion? https://sourceforge.net/p/testlilyissues/issues/3884/ - This doesn't really matter, but it might be worth renaming the "staffLineLayoutFunction" context property (which is not really about staff lines...) to something better, maybe "pitchToStaffPositionFunction" or pitchToStaffPositionProcedure"? (It takes a pitch and returns an integer indicating a vertical staff position. It's used in note-heads-engraver.cc) Let me know any thoughts on these things, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Scheme in LilyPond
On 06/01/2017 11:03 AM, Charles Winston wrote: And I get an error saying that make-note-ev is an unbound variable. I thought that we could call Scheme procedures from the source in lilypond files. What am I missing here? I'll just add that generally you can call scheme procedures defined in source files when they are defined with 'define-public'. If they are defined with 'define' then they probably won't be callable. In the latter case you can often just copy/paste them into your .ly file (adding # at the beginning of the opening paren(s)) and use them that way. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Calling in for sickness
Hi David, I'm really sorry to hear your news and I hope your health improves. All my best, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Help with building LilyPond
Welcome Charles! On 05/14/2017 03:02 PM, Thomas Morley wrote: Wait, you wrote about using LilyDev. Did you take LilyDev 5.2? This one is for the guile2-work. Choose LilyDev 4.1 from https://github.com/fedelibre/LilyDev/releases/tag/v4.1 and all should be fine. This must be the trouble. Looks like the contributor's guide needs to be updated to point to both LilyDev5 and LilyDev4 and explain why to use one or the other. Currently it just points to the latest (LilyDev5). Charles, once you get your dev environment set up, updating the contributor's guide would make a good "first bug" if you'd like to get familiar with the process. (Changes to the docs and website work the same way as patches to the source code.) Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev4 and Guile2.2 ?
On 04/13/2017 02:23 PM, Thomas Morley wrote: Hi Paul, meanwhile I do most on my host, not in the VB. I compiled guile-1.8 and guile-2.0.14 from the released tarball and 2.2.0 from the guile-repository. Once compiled it's pretty unexpensive to do 'make install' on the guile-version you wish. Also, I have three times the lilypond-repository, each compiled with a different guile-version. So I can check quickly whatever I need with different versions of lilypond/guile. Probably not the way for you, but very convenient in my eyes. Hi Harm, Thanks for the info. I thought there were problems with having guile1 and guile2.x installed at the same time? Or is that just if you're relying on package managers? I cloned my working LilyDev4 virtual machine and upgraded it to debian9. The upgrade went fine, but trying to boot into it... same black screen forever after grub screen and 'loading initial ramdisk'... But, using the advanced options on the grub screen I can select Linux 3.16... (instead of 4.9.0...) and it successfully boots. So that's progress. :-) Next step is to install guile2.2 Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev4 and Guile2.2 ?
Thanks Federico. I'm debating whether to learn libvirt or take the LilyDev4 upgrade to Debian9 / Guile2.2 path... When looking at this before I tried "Virtual Machine Manager" https://virt-manager.org/ but it didn't work for me (can't remember why now, I didn't go too far into it...). So maybe I should just learn to use libvirt directly. On the one hand VirtualBox is the path of least resistance and would minimize time spent on tooling (at least in short run). On the other hand since you use libvirt, switching to that is probably better over the long-term. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
LilyDev4 and Guile2.2 ?
Hi all, Having been unsuccessful at getting LilyDev5 running on my laptop using VirtualBox, I'm wondering how it would work to create a virtual machine with LilyDev4 (which is working for me) and then uninstalling guile1.8 and installing guile2.2. Is this a fool's errand? I'm new to this dependency hell business, would be a good induction, maybe too good? Thanks for any advice, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: checking grob type
cc'ing lilypond-devel to move discussion there. On 03/17/2017 09:38 AM, David Nalesnik wrote: You can get more info about public functions with the attached file. I was planning on getting documentation into the manuals somehow, but I got hung up with getting the parameters of curried functions. Hi David, Thanks for your work on this. Is there an easy way to just omit any curried functions in a first-pass at this? (I wonder what percentage are curried?) Also, of course, publicizing a number of these probably won't do anybody a bit of good. Maybe we could just have a list of functions to document publicly (or to not document)? In lieu of actual documentation, I could add a Scheme function? Seems like actual docs would be better in the long run, but I guess it depends on how much they would take to implement. Thanks again, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Website upload
On 03/07/2017 05:47 AM, Davide Liessi wrote: Maybe an HTTP permanent redirect (308) should be added instead of a symlink, see https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection +1 Best policy would be whenever a page changes its file name we should create a permanent redirect to the new page/file/name. Search engines can then follow these redirects and transfer their ranking data for the old page to the new page. (The old GSOC page is likely still at the top of the search results because there are links to it out on the web and the search engines use those to rank that page relative to others.) Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: nest GSOC project ideas under subsection/h3 (issue 314530043 by paulwmor...@gmail.com)
On 02/22/2017 02:07 PM, gra...@percival-music.ca wrote: On that note, I wrote a tool for my job that does regression testing for a website (very similar to our lilypond regression tests). I'll try to polish it and get my boss to OK open-sourcing it in the next few days. This will help future CSS development by giving us confidence that there's no unintended changes. Nice! That sounds great. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: nest GSOC project ideas under subsection/h3 (issue 314530043 by paulwmor...@gmail.com)
On 02/22/2017 02:32 PM, Urs Liska wrote: Am 22.02.2017 um 20:04 schrieb gra...@percival-music.ca: Sorry, I disagree. I think the boxes make it easier to skim the page; there horizontal gap makes it absolutely clear that each proposal is distinct. Myself, I don't find the skimmability or distinctness to be all that different. I think the point in Paul's suggestion is to make a clear separation between the project ideas and the last box with general information. Yep. Also I'd like to move what used to be the contents of the 'old news' to the attic page so that the news page doesn't have to load all of the news. (What with it being just one click from the home page. That's a task left over from working on the home page last fall.) So on the attic page as well it would be nice to be able to clearly group the GSOC entries somehow (and maybe the news entries too for that matter?). But I did forgot to check other uses of / @subsubheading on the site. I just searched the source code to see which pages have / @subsubheading, but the texinfo files contain more than one webpage each so that didn't really help. With HTML it would be easy to create a separate style to use for these kinds of subheadings (). But I don't think there's currently a way to assign a class to a @subsubheading. Anyway, in general it would be nice to have a way to do nested headings/sections for cases like this. I'm out of fresh ideas for how to do this, other than the way I did it. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Add lilypond version predicates/operators (issue 317270043 by g...@ursliska.de)
On 02/14/2017 10:48 AM, d...@gnu.org wrote: It's not a "version-compare" as much as a "lexicographic-compare". Indeed, even better, more multi-purpose. (Now I'm imagining version schemes like Ubuntu's animal names, but nested... Werewolf.Yak.Groundhog) -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Lily version operators documentation
On 02/15/2017 07:19 AM, Urs Liska wrote: Yes, these are the functions created by LY_DEFINE in C++ files. If I recall correctly there was discussion about auto-documenting "real" Scheme functions too, but I don't know where this went ... David Nalesnik wrote a script for this. http://lists.gnu.org/archive/html/lilypond-user/2015-04/msg00134.html -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Cleaning up GSoC project ideas
On 02/02/2017 04:10 PM, Urs Liska wrote: However, I suggest that we either remove such orphaned projects or at least compress and move them down to the bottom of the page. A concise page with actual and current projects is quite important for attracting students, I think. Sorry for the delay responding... I'd rather not lose them from the website entirely just because they don't currently have a mentor (as long as we think they are viable student projects). What if next year new/old mentors are available? But since you think it's important to remove or demote those projects... Why don't we move them to the "attic" page. Then next year we can easily look at them again to see if mentors are available and we want to promote them back up to the GSOC page? Might also be worth putting the grace note one there with a note that we decided it was too much for a GSOC project. Otherwise people may re-propose it in the future. The question is what will remain, and I *strongly* encourage all of you to consider the existing list and/or think about projects that could be suitable for a student to tackle in three months of full-time work, and where you could consider volunteering to be listed as a mentor. I haven't been able to think of any new projects. I'd consider being a mentor for something involving scheme, but I haven't had a chance to look at the list or think further about it. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: ly2musicxml / possible sponsoring
Hello Christoph, On 01/27/2017 08:14 AM, Christoph Hagemann wrote: thanks for your interest. Please excuse my delayed reply, busy with real life... No worries, same here on my side... Jan-Peter Voigt and Urs Liska replied off-list. They recommended enhancing frescobaldi's export (python-ly). Which way is more apt? I'd say in the long run, and maybe even in the shorter run, the LilyPond/Scheme approach is more promising. As I understand it python-ly works on LilyPond's text input format so you're basically rewriting a chunk of LilyPond to process that into the musical data "itself". Whereas the LilyPond/Scheme approach starts from LilyPond having already created that data from the input format. (Not sure what Urs has in mind with combining the two approaches.) Also, as I understand it the GSOC project got to a state that was starting to be useful. I believe it was in basic working order for non-polyphonic music, the big challenge facing it was how to handle polyphony / simultaneous music. And I understand your piece is not polyphonic, right? So that improves the prospects for a useful outcome. I'm cc'ing David Garfinkle, as it was his project. David, it would be great to hear your input on the state of things. One question is the release of LilyPond 2.20 and the level of guile2 support. (There are significant performance slow-downs with guile2 and some other issues...) If guile2 works well enough, albeit as a slower, likely optional thing, then that paves the way for musicxml output. There is no fixed deadline, but can't hold the publisher on standby forever. As a guideline: I'd like the export to be working within six month' time. Ok, good to know. I think that's at least within the realm of possibility, and worth further discussion. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
On 01/19/2017 08:16 PM, Paul wrote: Well, this is probably good and bad news, but I tried the netinst Debian testing iso (i386 with LXDE) and it's working fine. (Oddly enough it works both with and without PAE/NX enabled.) I spoke too soon. Although it worked at first, I'm now having the same problem with the vanilla debian VM that I have with LilyDev5... sigh... -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
Hi Federico, On 01/19/2017 06:35 AM, Federico Bruni wrote: If you have some time, can you try installing another Debian testing iso? Choose the netinst ISO for your architecture here: https://www.debian.org/devel/debian-installer/ This would help to understand if the problem is in LilyDev or in Debian. I guess it's the latter. Probably some hardware/kernel problem. I'm just guessing, I never experienced these problems. Well, this is probably good and bad news, but I tried the netinst Debian testing iso (i386 with LXDE) and it's working fine. (Oddly enough it works both with and without PAE/NX enabled.) Maybe I'll use this as an opportunity to try setting up all the dev dependencies from scratch? I tried installing LilyDev5 on my old mac laptop. It installs fine, and I can boot into LXQT, entering my password, but then there seems to be some problem with the mouse/keyboard integration as I can't get it to respond to clicks or key presses after I have logged in. This is a problem of Virtual Box. I'm afraid that you should ask for help on Virtual Box forums. I installed it on this old laptop just to see if it would work, but it is too old and slow to be of any real use. virt-manager logs: A. When installing virt-manager and dependencies via synaptic package manager: W: Can't drop privileges for downloading as file '/root/.synaptic/tmp//tmp_sh' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) https://bugs.launchpad.net/ubuntu/+source/aptitude/+bug/1543280 Ah, thanks. Unable to connect to libvirt. Verify that: - The 'libvirt-bin' package is installed $ aptitude show libvirt-bin Synaptic package manager shows that it's installed. (I tried that command but I don't have aptitude installed.) - The 'libvirtd' daemon has been started $ systemctl status libvirtd Looks like I did manage to get this started, as confirmed by this command. - You are member of the 'libvirtd' group $ groups Looks like there is no libvirtd group. So that's probably it. Have you verified these points? IIRC you are quite new to Linux and use Ubuntu in your host machine, right? Which version? Yes, still pretty new at it. Ubuntu 16.04 is my host machine. Read this guide: https://help.ubuntu.com/lts/serverguide/libvirt.html In later versions of libvirt the correct group is libvirt (instead of libvirtd). That's the case for Fedora25, libvirt version 2.2.0. Thanks for the tips and all your work on LilyDev! At this point I may just stick with VirtualBox rather than try to get up to speed with libvirt (assuming things go well with this new debian vm). Thanks again, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
Hi Federico, Thanks for the ideas: On 01/18/2017 12:36 AM, Federico Bruni wrote: Some ideas to help isolate the problem: - have you checked the integrity of LilyDev .iso file with md5sum? Yes, it's ok. - have you started the installation from scratch (i.e. not copied the .vdi file created with previous version of VirtualBox)? Yes, same result. - have you tried installing another Linux image on the same version of Virtualbox? My LilyDev4 VM is working fine (I haven't tried re-installing it from scratch). - please try also installing LilyDev with virt-manager: https://virt-manager.org/ I gave that a try but did not get far. Seems to be a dependency or permissions issue I couldn't figure out. Error messages below. I hope to make a new release of LilyDev this week. I'd be interested to know if making LilyDev work for you requires some change to LilyDev itself (I don't think so, but let's see..). I tried installing LilyDev5 on my old mac laptop. It installs fine, and I can boot into LXQT, entering my password, but then there seems to be some problem with the mouse/keyboard integration as I can't get it to respond to clicks or key presses after I have logged in. -Paul virt-manager logs: A. When installing virt-manager and dependencies via synaptic package manager: W: Can't drop privileges for downloading as file '/root/.synaptic/tmp//tmp_sh' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) B. When using virt-manager: Unable to connect to libvirt. Verify that: - The 'libvirt-bin' package is installed - The 'libvirtd' daemon has been started Libvirt URI is: lxc:/// Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/connection.py", line 903, in _do_open self._backend.open(self._do_creds_password) File "/usr/share/virt-manager/virtinst/connection.py", line 148, in open open_flags) File "/usr/lib/python2.7/dist-packages/libvirt.py", line 105, in openAuth if ret is None:raise libvirtError('virConnectOpenAuth() failed') libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied Unable to connect to libvirt. Verify that: - The 'libvirt-bin' package is installed - The 'libvirtd' daemon has been started - You are member of the 'libvirtd' group Libvirt URI is: qemu:///system Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/connection.py", line 903, in _do_open self._backend.open(self._do_creds_password) File "/usr/share/virt-manager/virtinst/connection.py", line 148, in open open_flags) File "/usr/lib/python2.7/dist-packages/libvirt.py", line 105, in openAuth if ret is None:raise libvirtError('virConnectOpenAuth() failed') libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
On 01/03/2017 03:42 PM, Federico Bruni wrote: Il giorno ven 23 dic 2016 alle 17:26, Paul ha scritto: Hi Federico, I double-checked and I do/did have the box checked to enable PAE. I tried un-checking it and Virtual Box complained about it right away upon starting up the VM. So when I get a chance I may try James' approach of using a newer version of Virtual Box, or else your approach with libvirt. (No time at the moment though...) Today I've installed Virtual Box 5.1.10 on Fedora from rpmfusion. When I started the machine the first time I got an error about the kernel and I followed VB advice to run two commands as root user: akmods systemctl restart systemd-modules-load.service Then it worked fine. But Ubuntu doesn't use systemd, right? Hi all, Following James' instructions I've upgraded to VirtualBox 5.1.13 r112787 (Qt5.6.1) And I tried creating and installing a new VM with LilyDev5 but I get the same problem. (Black screen after the 'loading initial ramdisk...') I also tried the commands Federico mentioned, but they did not help. (akmods seems to be a fedora thing, not found on ubuntu, and the other command worked, but did not change anything.) I tried opening in 'recovery mode' and got this far on the screen before it froze up: rtc_cmos rtc_cmos: setting system clock to [...] UTC Freeing unused kernel memory: 740K Write protecting the kernel text: 5744k Write protecting the kernel read-only data: 1704k Loading, please wait... In the Virtualbox log files it always gets to the same place shown below. I'm at a loss on what to try next. Any ideas? Thanks in advance for any pointers or suggestions. -Paul [omitting earlier parts...] 00:00:23.677316 GIM: KVM: VCPU 0: Enabled system-time struct. at 0x379fd000 - u32TscScale=0xcd47be37 i8TscShift=-1 uVersion=2 fFlags=0x1 uTsc=0x0 uVirtNanoTS=0x0 00:00:23.677344 TM: Host/VM is not suitable for using TSC mode 'RealTscOffset', request to change TSC mode ignored 00:00:23.922374 GIM: KVM: Enabled wall-clock struct. at 0x1a8c1108 - u32Sec=1484682583 u32Nano=222082000 uVersion=2 00:00:24.056792 PIT: mode=2 count=0x12a5 (4773) - 249.98 Hz (ch=0) 00:00:24.242835 PATM: Disabling IDT 80 patch handler da599460 00:00:24.243921 PATM: Disabling IDT fd patch handler da599bb8 00:00:24.244665 PATM: Disabling IDT fc patch handler da599c30 00:00:24.245348 PATM: Disabling IDT fb patch handler da599ca8 00:00:24.246134 PATM: Disabling IDT 20 patch handler da599d20 00:00:24.246496 PATM: Disabling IDT f8 patch handler da599d58 00:00:24.246850 PATM: Disabling IDT f7 patch handler da599d94 00:00:24.247536 PATM: Disabling IDT f2 patch handler da599e0c 00:00:24.247907 PATM: Disabling IDT f1 patch handler da599e48 00:00:24.248251 PATM: Disabling IDT ef patch handler da599e84 00:00:24.248799 PATM: Disabling IDT fe patch handler da599efc 00:00:24.249499 PATM: Disabling IDT f0 patch handler da599f74 00:00:24.250016 PATM: Disabling IDT f6 patch handler da599fec 00:00:24.250329 PATM: Disabling IDT fa patch handler da59a064 00:00:24.250424 PATM: Disabling IDT f9 patch handler da59a0dc 00:00:24.250526 PATM: Disabling IDT f4 patch handler da59a154 00:00:24.250625 PATM: Disabling IDT 10 patch handler da59a1cc 00:00:24.250678 PATM: Disabling IDT 13 patch handler da59a1dc 00:00:24.250724 PATM: Disabling IDT 7 patch handler da59a1ec 00:00:24.250771 PATM: Disabling IDT 4 patch handler da59a200 00:00:24.250815 PATM: Disabling IDT 5 patch handler da59a210 00:00:24.250861 PATM: Disabling IDT 6 patch handler da59a220 00:00:24.250904 PATM: Disabling IDT 9 patch handler da59a230 00:00:24.250944 PATM: Disabling IDT a patch handler da59a240 00:00:24.250984 PATM: Disabling IDT b patch handler da59a250 00:00:24.251025 PATM: Disabling IDT c patch handler da59a260 00:00:24.251063 PATM: Disabling IDT 11 patch handler da59a270 00:00:24.251097 PATM: Disabling IDT 0 patch handler da59a280 00:00:24.251133 PATM: Disabling IDT 12 patch handler da59a290 00:00:24.251166 PATM: Disabling IDT f patch handler da59a2a0 00:00:24.251250 PATM: Disabling IDT e patch handler da59a48c 00:00:24.251287 PATM: Disabling IDT 1 patch handler da59a500 00:00:24.251319 PATM: Disabling IDT 2 patch handler da59a564 00:00:24.251353 PATM: Disabling IDT 3 patch handler da59a640 00:00:24.832869 PATM: Disabling IDT 30 patch handler da599578 00:00:24.937255 PIT: mode=0 count=0x1 (65536) - 18.20 Hz (ch=0) 00:00:25.247422 OHCI: Software reset 00:00:26.403126 PATM: Disabling IDT 3c patch handler da5995d8 00:00:26.411515 PATM: Disabling IDT 31 patch handler da599580 00:00:26.508906 PATM: Disabling IDT 14 patch handler da7ed120 00:00:26.508952 PATM: Disabling IDT 15 patch handler da7ed129 00:00:26.508972 PATM: Disabling IDT 16 patch handler da7ed132 00:00:26.508989 PATM: Disabling IDT 17 patch handler da7ed13b 00:00:26.509006 PATM: Disabling IDT 18 patch handler da7ed144 00:00:26
Re: ly2musicxml / possible sponsoring
Hello Christoph, On 01/16/2017 04:24 AM, Christoph Hagemann wrote: I'm a music professional in Germany. A few years ago I set a large- scale orchestral project in lilypond (score around 200 pages). Now the publisher wants MusicXML data. I understand there was some work done on an export function during last year's GSoC. Is there any chance for completion? If it helps, I'm willing to put an resonable amount of money into this and fund the completion of this feature. I'd probably be interested in working on this, especially if you are willing and able to sponsor the work to some extent. (Maybe others would also be willing to contribute?) This was a GSOC 2015 project, and I have a copy of the code. Looking at it again, it seems that it should at least be possible to get it to where it could be used. As is, it should cover some of the needs you listed[0], and perhaps more could be added. (Now that guile2 support has reached a somewhat-usable state, that will help since guile2 is required for the musicxml conversion.) We should discuss details and expectations, as I wouldn't want to over-promise and under-deliver. I'm curious about your time frame. Are there deadlines? Kind regards, -Paul Morris [0] The README file says: "Currently limited to single-voice SequentialMusic contexts of notes, chords, articulations (not all are supported, such as early-music or instrument-specific examples), key signatures, time signatures, and clefs" ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: official GNU LilyPond maintainer
On Tue, Dec 27, 2016 at 05:25:08AM +, Graham Percival wrote: > With David stepping down, LilyPond is left without an official GNU > maintanier. Does anybody want to do fill this role? The relevant > documentation is: > https://www.gnu.org/prep/standards/html_node/index.html > https://www.gnu.org/prep/maintain/html_node/index.htm > > If nobody is interested in the position, I am willing to take it > up again. Great! Welcome back! Paul > > Cheers, > - Graham > > ___ > lilypond-devel mailing list > lilypond-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-devel > ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
On 12/23/2016 12:00 AM, Federico Bruni wrote: Il giorno gio 22 dic 2016 alle 18:48, Paul ha scritto: I gave it a try. Installation seemed to go fine, but then on booting it up I get past the GRUB screen and then it goes to a black unresponsive screen at "loading initial ramdisk..." Haven't had a chance to troubleshoot it further. I'm attaching the log file in case anyone wants to take a look. (I'm on Ubuntu 16.04 and Virtual Box version 5.0.24_Ubuntu r108355) (I'm using LilyDev on Ubuntu because I'm new to GNU/Linux and already familiar with LilyDev.) Hi Paul In the log I see this line: 00:00:00.447635 PAE - Physical Address Extension = 0 (0) which makes me think that you've not enabled PAE? There's a warning in the CG about this: Hi Federico, I double-checked and I do/did have the box checked to enable PAE. I tried un-checking it and Virtual Box complained about it right away upon starting up the VM. So when I get a chance I may try James' approach of using a newer version of Virtual Box, or else your approach with libvirt. (No time at the moment though...) Thanks, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
On 12/22/2016 01:37 PM, James wrote: I also tried to install LilyDev 5.0 last week - I use Ubuntu 16.0.4 with the latest 64 bit vBox 5.1.x test build (112223 w Ext pack 112433). Hi James, Thanks for the info and tips. I may try your approach with a newer version of Virtual Box when I get a chance. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyDev 5.0 released
Hi Federico, Thanks and congrats on the new release! I gave it a try. Installation seemed to go fine, but then on booting it up I get past the GRUB screen and then it goes to a black unresponsive screen at "loading initial ramdisk..." Haven't had a chance to troubleshoot it further. I'm attaching the log file in case anyone wants to take a look. (I'm on Ubuntu 16.04 and Virtual Box version 5.0.24_Ubuntu r108355) (I'm using LilyDev on Ubuntu because I'm new to GNU/Linux and already familiar with LilyDev.) Cheers, -Paul VirtualBox VM 5.0.24_Ubuntu r108355 linux.amd64 (Jul 5 2016 08:17:21) release log 00:00:00.255348 Log opened 2016-12-22T17:42:07.876411000Z 00:00:00.255350 Build Type: release 00:00:00.255352 OS Product: Linux 00:00:00.255353 OS Release: 4.4.0-57-generic 00:00:00.255354 OS Version: #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 00:00:00.255369 DMI Product Name: 20AQ005QUS 00:00:00.255373 DMI Product Version: ThinkPad T440s 00:00:00.255405 Host RAM: 7673MB total, 4419MB available 00:00:00.255408 Executable: /usr/lib/virtualbox/VirtualBox 00:00:00.255408 Process ID: 4534 00:00:00.255409 Package type: LINUX_64BITS_GENERIC (OSE) 00:00:00.259714 Installed Extension Packs: 00:00:00.259731 VNC (Version: 5.0.24 r108355; VRDE Module: VBoxVNC) 00:00:00.260408 Console: Machine state changed to 'Starting' 00:00:00.264780 GUI: UIMediumEnumerator: Medium-enumeration finished! 00:00:00.265173 Using XKB for keycode to scan code conversion 00:00:00.267600 SUP: Loaded VMMR0.r0 (/usr/lib/virtualbox/VMMR0.r0) at 0xc0b06020 - ModuleInit at c0b26d70 and ModuleTerm at c0b27260 00:00:00.267630 SUP: VMMR0EntryEx located at c0b2a940 and VMMR0EntryFast at c0b29fb0 00:00:00.295495 Guest OS type: 'Debian' 00:00:00.339378 File system of '/home/paul/VirtualBox VMs/LilyDev5Box/Snapshots' (snapshots) is unknown 00:00:00.339391 File system of '/home/paul/VirtualBox VMs/LilyDev5Box/LilyDev5Box.vdi' is ext4 00:00:00.355544 Shared clipboard service loaded 00:00:00.33 Shared clipboard mode: Off 00:00:00.356381 Drag and drop service loaded 00:00:00.356390 Drag and drop mode: Off 00:00:00.358443 Guest Control service loaded 00:00:00.359993 * CFGM dump * 00:00:00.360001 [/] (level 0) 00:00:00.360017 CSAMEnabled= 0x0001 (1) 00:00:00.360023 CpuExecutionCap= 0x0064 (100) 00:00:00.360025 EnablePAE = 0x0001 (1) 00:00:00.360027 HMEnabled = 0x0001 (1) 00:00:00.360029 MemBalloonSize = 0x (0) 00:00:00.360030 Name= "LilyDev5Box" (cb=12) 00:00:00.360033 NumCPUs= 0x0001 (1) 00:00:00.360034 PATMEnabled= 0x0001 (1) 00:00:00.360036 PageFusionAllowed = 0x (0) 00:00:00.360038 RamHoleSize= 0x2000 (536 870 912, 512 MB) 00:00:00.360040 RamSize= 0xbdb0 (3 182 428 160, 2 GB) 00:00:00.360043 RawR0Enabled = 0x0001 (1) 00:00:00.360044 RawR3Enabled = 0x0001 (1) 00:00:00.360046 TimerMillies = 0x000a (10) 00:00:00.360048 UUID = "de 48 55 bd 25 37 cf 4a b4 15 ca 1f 6f 40 c8 6f" (cb=16) 00:00:00.360054 00:00:00.360057 [/CPUM/] (level 1) 00:00:00.360060 PortableCpuIdLevel = 0x (0) 00:00:00.360061 00:00:00.360066 [/DBGF/] (level 1) 00:00:00.360068 Path = "/home/paul/VirtualBox VMs/LilyDev5Box/debug/;/home/paul/VirtualBox VMs/LilyDev5Box/;/home/paul/" (cb=96) 00:00:00.360070 00:00:00.360070 [/Devices/] (level 1) 00:00:00.360072 00:00:00.360072 [/Devices/8237A/] (level 2) 00:00:00.360074 00:00:00.360075 [/Devices/8237A/0/] (level 3) 00:00:00.360077 Trusted = 0x0001 (1) 00:00:00.360078 00:00:00.360079 [/Devices/GIMDev/] (level 2) 00:00:00.360080 00:00:00.360081 [/Devices/GIMDev/0/] (level 3) 00:00:00.360083 Trusted = 0x0001 (1) 00:00:00.360084 00:00:00.360085 [/Devices/VMMDev/] (level 2) 00:00:00.360086 00:00:00.360087 [/Devices/VMMDev/0/] (level 3) 00:00:00.360089 PCIBusNo = 0x (0) 00:00:00.360090 PCIDeviceNo= 0x0004 (4) 00:00:00.360091 PCIFunctionNo = 0x (0) 00:00:00.360093 Trusted= 0x0001 (1) 00:00:00.360094 00:00:00.360095 [/Devices/VMMDev/0/Config/] (level 4) 00:00:00.360097 GuestCoreDumpDir = "/home/paul/VirtualBox VMs/LilyDev5Box/Snapshots" (cb=48) 00:00:00.360098 RamSize = 0xbdb0 (3 182 428 160, 2 GB) 00:00:00.360100 00:00:00.360101 [/Devices/VMMDev/0/LUN#0/] (level 4) 00:00:00.360103 Driver = "HGCM" (cb=5) 00:00:00.360104 00:00:00.360105 [/Devices/VMMDev/0/LUN#0/Config/] (level 5) 00:00:00.360107 Object = 0x7fbb6c000910 (140 442
Re: music function to be included somewhere in scm/*
Hi Knut, Werner, Alexander, and everyone, On 12/20/2016 08:47 AM, Knut Petersen wrote: Hi Werner! (length-limit-or-forced-length ,ly:dimension? "An automatically generated lyric extender is suppressed if it would be shorter than this length. A forced lyric extender is given this length if possible.") Sorry, but I strongly dislike collapsing two properties into one, even if the values for the two properties are always the same. So please use `collapse-length' (`suppress-threshold', etc.) and `forced-length'. I'll implement whatever the majority agrees upon. Nevertheless: two parameters would obfuscate the fact that the internal logic would always decide to use only one of those lengths and to ignore the other. For the case of two parameters I like best: (forced-length ,ly:dimension? "A forced lyric extender is given this length if possible.") (collapse-length ,ly:dimension? "An automatically generated lyric extender is suppressed if it would be shorter than this length.") Paul? I'm fine with using two properties, as Werner prefers, and as in this suggestion from Knut. When I suggested using fewer properties I didn't fully understand all the details. (The music I typeset rarely involves lyric extenders.) Alexander's explanation and further discussions have helped me get it, but I hadn't had a chance to reply sooner. Thanks again for working on this, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: music function to be included somewhere in scm/*
Hi Knut and everyone, Great to see your work which seems like a nice improvement. I just have some thoughts on the implementation / use of properties. We are just talking about grob properties and not context properties right? In that case no need to also create context properties as you do in your patch, since the grob properties are sufficient. What about a way to do this with fewer than 3 separate grob properties? LyricExtender.minimum-length LyricExtender.no-extender LyricExtender.force-extender If I understand correctly, only 1 of 3 kinds of behavior can be in effect at a given point: 1. no extensions 2. forced extensions 3. automatically added extension depending on a 'minimum-length' number So why not one grob property (name to be determined) that can be a boolean or a number: LyricExtender.extenders = ##f % no extensions LyricExtender.extenders = ##t % forced extensions LyricExtender.extenders = 2% a number, auto extensions For example, it could be set to a number and then use \once to set it to ##t to force (or ##f to suppress) a given extender. Another possibility (2 properties) might be: LyricExtender.stencil = ##f% no extensions LyricExtender.force-extender = ##t % forced extensions LyricExtender.minimum-length = 2% auto extensions (if force-extender is not ##t and stencil is not ##f) Am I missing something? What do you think? Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: website: texinfo macros for both ID and classes
On 12/11/2016 01:32 AM, Graham Percival wrote: I'm still not convinced that a div with ID and class is actually needed. Can you remember the specific example? Well... I can't remember it at this point. Basically a case where there were a number of items that each shared a style (via a class) but needing to style one of them differently (via id). (I guess currently you could just use an additional class, as if it were an id, as a workaround.) I'm just trying to smooth out a point of friction that I encountered, but sure, there are probably other priorities. Right, and that's a great move! I'm just not convinced of the details in this case. Okay. Although I would support making these kinds of changes, to make working with texinfo for the website more like working with HTML, to make things easier for new contributors, it's not that important. We could always revisit it if/when the need arises from an actual case of working on the website. I don't want this to be advertized on lilypond-user yet since it's still too soon after the latest website fracas, but I've prepared a repository so that people can easily experiment with CSS. It has the normal index.html, the pictures used by that file, and the original CSS. Anybody interested is encouraged to copy the "orig" directory into a new one, then edit the new CSS as much as they want. https://github.com/gperciva/lilypond-web-css You can see the results here: http://percival-music.ca/lilypond-web-css/orig/ http://percival-music.ca/lilypond-web-css/simple/ (yes, I ran out of patience when I got to the point of choosing a color for the "Beautiful Sheet Music" header) Over the next few days / weeks, I'll continue to edit the "simple" CSS, and maybe make one or two other examples. None of this is intended to be merged with lilypond; I just want to demonstrate how easy it is to make huge changes with only the CSS. This way, the next time somebody expresses interest in the website, they'll have a much clearer idea of what's involved and what the limitations are. I think this is a good idea. Some (most?) may be thwarted by the overhead of setting up the LilyPond build environment, so this gives them a simpler way to go. If/when this gets used it might be nice to add other pages besides just the home page. (I still have a little bit of follow-up to do on the work I did on the home page last fall. I hope to get to that sooner than later.) Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Lilypond python upgrade
On 12/07/2016 08:28 PM, Andrew Bernard wrote: Moving a thread across from the user list, I just wanted to let people know that I will be starting on the work of upgrading lilypond to use Python 3 - yes, with all the complexity that entails. I am happy to have a serious shot at this task. Just voicing my support and appreciation for taking this on! Seems like auspicious timing now that Graham is available with his knowledge of GUB etc. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: website: texinfo macros for both ID and classes
On 12/05/2016 12:35 PM, Graham Percival wrote: On Mon, Dec 05, 2016 at 11:49:27AM -0500, Paul wrote: For the website I'm thinking about adding a macro that can create a div with both an ID and classes. Why? What problem would this solve? That there's no way to create a div that has both an Id *and* one or more classes. Currently you'd have to create two nested divs one with a class and one with an id (ugh). This would be good to have in general and more intuitive for those used to html. I'm not convinced. As someone who knew html and went through the process of figuring out how to contribute to the LilyPond website, I would have found it more intuitive and useful to have. There was a point where a div with both Id and class was needed and there was no way to do it even though this is the most basic and common thing in html. I'm just trying to smooth out a point of friction that I encountered, but sure, there are probably other priorities. Before changing the underlying texinfo macros, much less the build system or language used (which is not what Paul is suggesting, but I know that those ideas are out there), I'd like to see somebody make an honest effort at working on the CSS. Well, I have already been doing that and plan to continue to work on the website as my time allows. In particular, to make the website look acceptable on small screens. This would take 2-5 hours, depending on how familiar that person is with CSS and web browser testing. I don't think that's too much to ask. If nobody is prepared to even do that much, then we certainly don't want them to spend time and effort on larger redesigns that may never be completed. I'm available to mentor this task. I can't take this on at the moment given my other constraints and commitments. (I suspect it would take more than 2-5 hours and might involve more than changing the CSS, but maybe I'm overestimating it.) Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
website: texinfo macros for both ID and classes
For the website I'm thinking about adding a macro that can create a div with both an ID and classes. This would be good to have in general and more intuitive for those used to html. For example: @macro div {ID, CLASSES} @html @end html @end macro Used like so: @div {an-id,first-class second-class} Currently we have divId and divClass that could be replaced by such a macro. @div {an-id} --> @div {,first-class second-class} --> Unfortunately there seems to be no conditionals in texinfo macros so I don't see a way to avoid the empty id="" and class="" in that scenario. To avoid that we would have to keep divId and divClass and add divIdClass.[0] But I think having one macro for divs would be simpler and easier for contributors, which might be the best variable to optimize for. If we did this for divs it would make sense to do the same for spans and our current spanClass. Thoughts? [0] Maybe pluralize divIdClasses and divClasses to make it clear that you can have more than one. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Landing MusicXML export summer of code work into LilyPond?
Hello Davids Kastrup and Garfinkle, Since we will soon be losing David K. to more lucrative pursuits, I thought I'd ask about the status of David G.'s summer of code work on MusicXML export. I'd love to see that land in LilyPond (at least the part to generate an SXML file which could be manually post-processed to MusicXML with Guile 2 until LilyPond makes the transition to Guile 2). What needs to be done and can I help with making it happen? (Not just theoretical interest, as one of my bandmates uses MuseScore and would like MusicXML versions of my LilyPond files.) Cheers and thanks, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Stepping up, contributor mentoring
On Tue, Nov 29, 2016 at 03:11:42PM -0800, Graham Percival wrote: > Hi all, I'm back. Welcome back!! > (I was planning on waiting until the new year, but David's news > made me re-evaluate my health now, and I think I have the energy > to take on more stuff. To make a long story short: depression, > burnout, quit academia, moved back to Vancouver, recovery. Also, > started ballroom and swing dancing! Great fun, absolutely > recommended, *especially* for other shy, socially anxious computer > geeks. +1 It's my main recreation. It's country swing here in Tucson. > Despite that help, I'm still not 100% recovered, but I'm > content with my progress, and I think that doing more volunteer > work will help.) Great! Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Stepping up, contributor mentoring
Hi Graham, Glad to hear you're back! Cheers, -Paul On 11/29/2016 06:11 PM, Graham Percival wrote: Hi all, I'm back. So, are there any vacancies on the Bug Squad? I've signed up for sourceforge (username: gperciva). Other than that, my primary interest remains in organization / mentoring new contributors. Has anything changed in regards to that in the past four years? Or shall I jump straight in? I see that "Contributor 1.4 Mentors" hasn't changed. Anything else I should know? I've skimmed the past month of this mailing list. (I was planning on waiting until the new year, but David's news made me re-evaluate my health now, and I think I have the energy to take on more stuff. To make a long story short: depression, burnout, quit academia, moved back to Vancouver, recovery. Also, started ballroom and swing dancing! Great fun, absolutely recommended, *especially* for other shy, socially anxious computer geeks. Despite that help, I'm still not 100% recovered, but I'm content with my progress, and I think that doing more volunteer work will help.) Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guile-2.0 and debian
On 11/25/2016 06:13 PM, Thomas Morley wrote: - Investigate why lilypond is a lot slower when using guile-2.0 This is the current main problem, I'd say. From what I've read, the guile 2.0 interpreter is simply slower than the guile 1.8 interpreter (with the trade-off being that 2.0 has a compiler). For example, a quote from: https://wingolog.org/archives/2016/01/11/the-half-strap-self-hosting-and-guile -begin-quote Back in 2009 when we switched to the eval-in-Scheme, we knew that it would result in a slower interpreter. This is because instead of the interpreter being compiled to native code, it was compiled to bytecode. Also, Guile's Scheme compiler wasn't as good then, so we knew that we were leaving optimizations on the floor. Still, the switch to an evaluator in Scheme enabled integration of the compiler, and we thought that the interpreter speed would improve with time. I just took a look and with this silly loop: (let lp ((n 0)) (if (< n #e1e7) (lp (1+ n Guile 1.8's interpreter written in C manages to run this in 1.1 seconds. Guile 2.0's interpreter written in Scheme and compiled to the old virtual machine does it in 16.4 seconds. Guile 2.1.1's interpreter, with the closure-chaining optimization, a couple of peephole optimizations in the interpreter, and compiled using the better compiler and VM from Guile 2.2, manages to finish in 2.4 seconds. So we are definitely getting better, and by the time we compile eval.scm to native code I have no doubt that we will be as good as the old C implementation. (Of course, when compiled to Guile 2.2's VM, the loop finishes in 55 /milli/seconds, but comparing a compiler and an interpreter is no fair.) --end-quote So I assume (as a non-authority in this area) that the best way to address the slowdown is to start using guile 2.0's compiler to compile LilyPond's scheme code. And I suppose taking that step would make sense after the known bugs are fixed and things work using the interpreter, but are just slower. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guile-2.0 and debian
On 11/23/2016 06:09 PM, Thomas Morley wrote: Currently it seems I'm the only one being able to test Antonio's patches. This is not exactly optimal. [...] Having a LilyDev with guile 2.0.12/13 may help. I for one would be more likely to help with testing if there were a LilyDev with guile 2.0.12/13 Thanks Antonio, Harm, David, Federico, et al, for your work on this. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: PATCHES: Countdown for November 21st
Great thanks! -Paul On 11/21/2016 11:15 AM, James wrote: Paul, On 21/11/16 14:56, Paul wrote: I just pushed the patches for issue 4752 (Add ly:one-page-breaking) to staging. Hopefully they don't break staging this time, and if they do we can capture the logs to find out what's not working. Thanks, -Paul This merged just fine. Thanks James ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: PATCHES: Countdown for November 21st
I just pushed the patches for issue 4752 (Add ly:one-page-breaking) to staging. Hopefully they don't break staging this time, and if they do we can capture the logs to find out what's not working. Thanks, -Paul On 11/21/2016 07:58 AM, James wrote: Hello, Here is the current patch countdown list. The next countdown will be on November 24th. A quick synopsis of all patches currently in the review process can be found here: http://philholmes.net/lilypond/allura/ __ Push: 4752 Add ly:one-page-breaking - Paul Morris https://sourceforge.net/p/testlilyissues/issues/4752 http://codereview.appspot.com/288910043 Countdown: 5000 Add using Extract PDFmark for document building - Masamichi Hosoda https://sourceforge.net/p/testlilyissues/issues/5000 http://codereview.appspot.com/314130043 4999 Synchronize \layout and \midi definitions - David Kastrup https://sourceforge.net/p/testlilyissues/issues/4999 http://codereview.appspot.com/316910043 Review: No patches in review at this time. New: No New patches at this time. Regards James ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Back to work on Issue 4752: Add ly:one-page-breaking
Hi all, I have some time to work again on ly:one-page-breaking. Ideally I'd like to land it before 2.20 is released. I've just updated the patches so they apply to current master. James (or anyone), one possible complication was different gcc versions on different machines giving different results. If you have a chance, would you mind testing the patches to see if this is the case? Assuming there are still problems can you save and post the full log? For me make still succeeds on current LilyDev (gcc 4.9.2, g++ 4.9.2, Debian 4.9.2-10). https://sourceforge.net/p/testlilyissues/issues/4752/ https://codereview.appspot.com/288910043 http://lists.gnu.org/archive/html/lilypond-devel/2016-02/msg5.html Thanks, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Fixing "id.ly" regtest file
Or maybe it's best if I just push a new commit (to staging) that fixes the error. I'll do that later today unless I hear otherwise. -Paul On 10/04/2016 01:57 PM, Paul wrote: Hi all, I pushed my commits for issue 4974 to staging, and all went well, but then I noticed that the regtest "id.ly" was incorrect. The diff for it has: -{ \override NoteHead.id = #"foo" c } +{ \override NoteHead.output-attributes.id = #"foo" c } when this shouldn't have been changed. (Running the scripts/auxiliar/... convert-ly script made this change but I overlooked it because the header text in that file was also changed manually. So I didn't manually correct it.) To fix this, I'd propose reverting the last commit on master: http://git.savannah.gnu.org/cgit/lilypond.git/commit/?id=03d47798d39bd9ce2a87376ea1585f1f31c1b81b and then I can re-upload an amended version of that commit that fixes the "id.ly" file. Please let me know how best to proceed. Sorry for not catching this before, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Fixing "id.ly" regtest file
Hi all, I pushed my commits for issue 4974 to staging, and all went well, but then I noticed that the regtest "id.ly" was incorrect. The diff for it has: -{ \override NoteHead.id = #"foo" c } +{ \override NoteHead.output-attributes.id = #"foo" c } when this shouldn't have been changed. (Running the scripts/auxiliar/... convert-ly script made this change but I overlooked it because the header text in that file was also changed manually. So I didn't manually correct it.) To fix this, I'd propose reverting the last commit on master: http://git.savannah.gnu.org/cgit/lilypond.git/commit/?id=03d47798d39bd9ce2a87376ea1585f1f31c1b81b and then I can re-upload an amended version of that commit that fixes the "id.ly" file. Please let me know how best to proceed. Sorry for not catching this before, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Don't merge non-overlapping ledger lines (issue 308560043 by paulwmor...@gmail.com)
On 10/03/2016 06:10 AM, thomasmorle...@gmail.com wrote: I can't review C++, but I applied your patch and tested it with my code from http://lists.gnu.org/archive/html/lilypond-user/2012-07/msg00336.html (A far more extreme example than your regtest) Works nicely. So far: LGTM Now that's a good stress test! Thanks for trying it out, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Proposal: support for custom grob and context properties
On 09/27/2016 09:24 PM, David Kastrup wrote: Paul writes: 1. Make those two procedures "define-public" so users can just use them to define their own properties. This requires very minimal change to LilyPond code, and is convenient for users since existing functions will just work for accessing and setting their custom properties (e.g. ly:grob-property). The problem with the current implementation is that such additions are not limited in scope and will persist beyond the currently processed file. 2. Define a "custom-properties" grob property and a "customProperties" context property (or whatever name) that each holds an alist of user properties. This adds additional properties to LilyPond and is a little more complex for the user to work with, but it provides isolation from LilyPond's properties. (For example, users would only have to worry about conflicts with other user-defined properties, not conflicts with current or future LilyPond properties.) This will not work with current code checks working with object properties. I'm interested in implementing this one way or another. Using the same approach for grob and context properties would make sense. Thoughts? First you'd need to move is-grob? and its friends from the old "object properties" interface to the new, function-calling one. That's an incompatible change. Then you'd need to use a session-local defining function for defining those properties, one that restores the startup state after each session. Here is some stone-age patch where you can see how the first step would look in Scheme (the C++ part would no longer apply since lily_module_constant has been superseded by the lily-imports.{cc,hh} files). All previous such "extensions" dabbling in internals would stop working. So would previous checks for these properties (it's conceivable to redefine the old object property accessor functions as they are not likely to be used outside of LilyPond and a bit of performance impact for legacy use would be tolerable). Thanks for the explanation and details. Looks like this is more involved than I thought... I'll take a closer look, but I suspect this may be more than I want to take on right now, or at least there are some other things more within my reach that I'd like to work on first. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Proposal: support for custom grob and context properties
Hi all, It would be nice if LilyPond supported user-defined grob and context properties, for use in users' code -- in the spirit of practical software freedom and to further LilyPond's excellent extensibility. It would also be handy for prototyping code that might end up in LilyPond. Harm recently used custom properties in his BendSpanner-engraver, and I use them in my code for alternative notation systems. Currently this requires finding and copy/pasting the relevant scheme procedures so they can be used in your own files. Namely, define-grob-property from scm/define-grob-properties.scm and translator-property-description from scm/define-context-properties.scm. Here are two possibilities for making this easier: 1. Make those two procedures "define-public" so users can just use them to define their own properties. This requires very minimal change to LilyPond code, and is convenient for users since existing functions will just work for accessing and setting their custom properties (e.g. ly:grob-property). 2. Define a "custom-properties" grob property and a "customProperties" context property (or whatever name) that each holds an alist of user properties. This adds additional properties to LilyPond and is a little more complex for the user to work with, but it provides isolation from LilyPond's properties. (For example, users would only have to worry about conflicts with other user-defined properties, not conflicts with current or future LilyPond properties.) I'm interested in implementing this one way or another. Using the same approach for grob and context properties would make sense. Thoughts? -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Add output-attributes grob property to replace id (issue 308430043 by paulwmor...@gmail.com)
On 09/27/2016 02:49 PM, Urs Liska wrote: We will definitely want to have an 'id property to address elements from elsewhere in a document, be it spanners or be it edition-engraver mods or similar additions. Maybe in the context of partial recompilation features IDs may become handy. So it might be an option to leave a top-level 'id property in place right now instead of possibly adding it back at a later point? Ok, since there's hesitation about removing it, I'll leave it in. We can always remove it in a follow-up patch if that is desired. I will keep the convert-ly rule that rewrites ".id" to ".output-attributes.id" to help keep the svg functionality working for existing user files. For the doc string I'll just use "An id string for the grob." I'm open to suggestions if anyone thinks it should say more, like "not currently used by LilyPond". (This brings up some thoughts I've had about supporting custom properties. I'll send another email about that.) -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Updating news headline on home page
On 09/26/2016 03:51 AM, Phil Holmes wrote: Paul - I assume that these updates to the news system mean that different edits will be needed for each release? Could you confirm what will have to be done? Ta. Sure thing. First, add the news entry to news-front.itexi -- same as before. Second, update the news-headlines.itexi file with a headline for the new entry. For releases you can just update/edit the existing headline about the previous release. This will look like my patch from yesterday: http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blobdiff;f=Documentation/web/news-headlines.itexi;h=97689a68080a6a8679a22bc6c33278345bc96e4e;hp=e5154c6bde1ce35158de5f7eaae3146f41a49efc;hb=36e230cf09bf2755528d2252ee256f88f330e66d;hpb=c626c7105b3ae2ece4e4e678f9b9b495e4f8ffa6 There are two tricky parts: A. The headlines file has one version of the headlines for the website which includes the anchor links, and another version for other formats that does not. So you have to make the changes in both places. B. For the website version you have to update both the headline text and the link (URL). Both are inside the @uref{...}. The URL will have some encoded characters, for example "_002e" is "." and "_002c" is "," (Spaces in the headline text become "-" in the URL.) So to update the version part of the URL from 2.19.48 to 2.19.49 looks like 2_002e19_002e48 to 2_002e19_002e49 The release date would be like August-25_002c-2016 to September-13_002c-2016 For new entries, to get the exact URL you can "make website" and then open the resulting news.html file, then copy and paste the url from the name attribute of the tag for that news entry. It should look something like this: name="Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016">class="subheading">Two LilyPond projects in Google Summer of Code 2016 April 23, 2016We are happy to see two students... Probably this should go in the CG. (It would be nice to have automated headline generation... Maybe a script could be devised? It's unfortunate that the new setup adds some friction to the process of adding new entries... at least for releases it is pretty straightforward.) -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Updating news headline on home page
On 09/25/2016 11:17 AM, Phil Holmes wrote: Assuming it does what you want, straight to staging. No point in messing about getting the home page right. The website will update up to 2 hours after the patch arrives in master. Ok, I've pushed the fix to staging. Thanks again Phil. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Updating news headline on home page
The new home page is working now that the htaccess redirect is fixed. The news headline for the latest dev release needs updating. I made a patch (attached). Let me know if I should just push this directly to staging or go through review. Thanks, -Paul >From 3ebfdff1bcb2e1daaa5052dba87a41d8c0f5c842 Mon Sep 17 00:00:00 2001 From: Paul Morris Date: Sun, 25 Sep 2016 09:52:54 -0400 Subject: [PATCH] Web: add/update news headline for LilyPond 2.19.48 release --- Documentation/web/news-headlines.itexi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/web/news-headlines.itexi b/Documentation/web/news-headlines.itexi index e5154c6..97689a6 100644 --- a/Documentation/web/news-headlines.itexi +++ b/Documentation/web/news-headlines.itexi @@ -11,7 +11,7 @@ @ifclear web_version @c no anchor links, just link to News page -@ref{News, LilyPond 2.19.47 released - @emph{August 13, 2016}} +@ref{News, LilyPond 2.19.48 released - @emph{September 13, 2016}} @ref{News, Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}} @@ -23,8 +23,8 @@ @ifset web_version @c anchor links, link to individual news items by their tag -@uref{news.html#LilyPond-2_002e19_002e47-released-August-13_002c-2016, - LilyPond 2.19.47 released - @emph{August 13, 2016}} +@uref{news.html#LilyPond-2_002e19_002e48-released-September-13_002c-2016, + LilyPond 2.19.48 released - @emph{September 13, 2016}} @uref{news.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016, Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}} -- 2.1.4 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Staging not merging with master - make website fails
On 09/24/2016 12:55 PM, Phil Holmes wrote: And by the wonder that is the website build, you'll see that lilypond.org is already showing the new front page. Indeed! Very nice. One problem... the news page is redirecting to the home page because the htaccess file here: Documentation/web/server/lilypond.org.htaccess has these lines (46-47): # the new website has news on the main page RedirectMatch ^/news/ (Of course this didn't show up in local testing, and I didn't think to check the htaccess rewrite rules. Sorry about that.) So we should remove those lines to fix it. How to proceed? Let me know what I can do. I'm can prepare a separate commit to remove those lines, or we can back out the current commit and I can make a new commit that has the htaccess changes. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Staging not merging with master - make website fails
On 09/24/2016 09:56 AM, Phil Holmes wrote: I think you will definitely have to back out the current commit, add the images and repush to staging. My notes on how to do this: Thanks Phil! That worked. My new patch is now pushed to staging with the images added (commit message is the same as before). -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Staging not merging with master - make website fails
Hello James, Thanks for your message. I was wondering what had gone wrong... What's the best way to fix things from here? Should I back out my commit on staging and redo the push with a new patch with images included? I'm not sure how to back out a commit on a remote branch... Locally I would just do: git checkout staging git reset --hard HEAD~ Would it work to just do: git checkout origin/staging git reset --hard HEAD~ I'll wait until I hear back before doing anything. Thanks again, -Paul On 09/24/2016 06:48 AM, James Lowe wrote: Hello, commit29941d96aa9942cfe914440b90b49ff7e015742e From Paul is missing its image files - they have been uploaded into LilyPond Extra but need to be included in this commit in staging. Regards ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Proposal: change Grob.id to Grob.output-properties
On 09/16/2016 09:43 AM, Paul wrote: % is \procE a string or a procedure? No way to tell in convert-ly % and calling a string as if it were a procedure doesn't work % \override NoteHead.id = #(lambda (grob `((id . ,(procE grob) On second thought, I guess the following rewrite would work for this issue, but I'm not sure it's doing users much of a favor... \override NoteHead.id = #(lambda (grob) `((id . ,(if (procedure? procE) (procE grob) procE and there's still the issue of how to regex a lambda expression... Carl's plan makes sense to me, so I'll go with that. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Proposal: change Grob.id to Grob.output-properties
On 09/16/2016 01:10 AM, Urs Liska wrote: Doesn't a conversion to #`(id . ,(existing-function)) suffice? Otherwise just follow Carl's suggestion. Hi Urs, Almost, but you have to add a lambda wrapper to pass along the implicit grob argument, and then there are other more challenging complications if the user has supplied a lambda expression or a variable that may be a string or a procedure. So most of the possibilities are non-trivial to impossible to handle well. See below. Cheers, -Paul \version "2.19.42" #(define procA (lambda (grob) (display "a ") "myid")) #(define (procB grob) (display "b ") "myid") procC = #(lambda (grob) (display "c ") "myid") procE = "myid" { % ORIGINALS \override NoteHead.id = #procA c1 \override NoteHead.id = #procB c1 \override NoteHead.id = \procC c1 \override NoteHead.id = #(lambda (grob) (display "d ") "myid") c1 \override NoteHead.id = \procE c1 % RE-WRITES % these are fine (as long as the variable is a procedure): \override NoteHead.id = #(lambda (grob) `(id . ,(procA grob))) c1 \override NoteHead.id = #(lambda (grob) `(id . ,(procB grob))) c1 \override NoteHead.id = #(lambda (grob) `(id . ,(procC grob))) c1 % to regex a lambda expression, I think you'd have to count matching % parens to arbitrary depth. Not sure that is possible with regex... \override NoteHead.id = #(lambda (grob) `(id . ,((lambda (grob) (display "d ") "myid") grob))) c1 % is \procE a string or a procedure? No way to tell in convert-ly % and calling a string as if it were a procedure doesn't work % \override NoteHead.id = #(lambda (grob `(id . ,(procE grob c1 } ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Proposal: change Grob.id to Grob.output-properties
Hi all, I'd like to improve on the "id" grob property but I wanted to ask about the best way to migrate users if/when we made the change I'm thinking of. The "id" property was introduced [0] in January 2012 by commit: ad3a9e6531e32c4403f1bdc6d203d3c94c6d411e Adds an ID property to grobs. This property is intended to group visual elements of a grob in a given backend into a container that has `id' as its id. Currently, it is only implemented for svg, where grobs are wrapped in a tag with its `id' attribute set to `id.' As far as I can tell that's still all it does. I'd like to change its type from a string to an alist (well, "list?") and change its name to something like "output-properties". And make it so users could do things like: \override NoteHead.output-properties = #'((id . 324) (class . "bar") (data-custom-prop . "foo")) Which would produce in the SVG output: ... (The SVG spec allows arbitrary custom properties that start with "data-".) Looking at the code, the changes seem pretty straightforward to do. Assuming we agree this is a good improvement to make, the question I have is about migrating existing user files to the new property. Literal strings are easy enough to handle with convert-ly: = "abc" converts to = #'((id . "abc")) The problem is when users have assigned a procedure (that returns a string) to this property, which is surely a common use case. I don't see a reasonable way to handle that with convert-ly. Maybe it is possible but seems like it would get ugly. So we could make the new property's type be "string-or-list?". (We'd have to define that predicate.) Then for strings, output a deprecation warning, but go ahead and handle the string as the user expects. That would give users time to rewrite their code and then at some future point we change the type to just "list?" and only support alist values. Is anyone opposed to this migration strategy? Any better options I'm missing? The motivation for the change is that lilypond-html-live-score[1] is overloading the id string with multiple properties and then post-processing that string (in the SVG output file) with python to expand it into different properties. But I see no reason why LilyPond shouldn't be able to do this directly, saving the post-processing step. And it would generally increase the possible uses for SVG output. (I considered introducing a separate property, but especially after looking at the code, it seems best to redefine the current one.) (I suppose another option would be to just allow string values (which would be output as the id) in addition to alist values, but I'm not sure whether that would be best in the long run.) Thanks, -Paul [0] http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=ad3a9e6531e32c4403f1bdc6d203d3c94c6d411e [1] https://gitlab.com/sigmate/lilypond-html-live-score ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)
On 09/13/2016 09:52 AM, Phil Holmes wrote: At this point it would probably be simplest to just inline the lilypond code for this example on the home page, like it is done in the essay. (Probably putting it in an include file to avoid duplication.) We wouldn't get "click to enlarge" that way (which was the point of using the examples mechanisms) but maybe that's not needed on the home page and/or could be a future enhancement. I don't think you can do that. The reason for all the odd stuff with the image files is that the server we host lilypond on does not use lilypond to make the website - so all images must be pre-created to allow the website itself to be remade. Note that much of the website it really made using make doc during a Gub run, but some of it (the homepage and the \web stuff) is made with make website and requires no upload. The server has cron jobs that pull git and run make website. Ah, ok... hmm... so it sounds like we would need to do this home page example like the other website images then. (Assuming we're not using the examples scripts because of the -dpreview issue.) -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)
On 09/13/2016 10:02 AM, Phil Holmes wrote: Just thinking about this bit some more - are you running make doc to create the images and make website after that? Yes, at first after reading those docs you linked to, I thought maybe I'd run: make make website make doc (out of order) but then I ran make website got same result, and then make doc make website and same result. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)
On 09/13/2016 04:28 AM, Phil Holmes wrote: I know understanding how images are used is a bit of a problem - which I might have understood once, but have now forgotten. Is the information at http://lilypond.org/doc/v2.19/Documentation/contributor/other-repositories and http://lilypond.org/doc/v2.19/Documentation/contributor/website-build any help? Thanks, those are helpful. I'll have to remember that those build system notes are down there. I see now that LilyPond is being run on the new file and the pdf and png files do end up in: build/Documentation/ly-examples/out-www but for some reason those files are not being copied into build/out-website/website/ly-examples Where they need to be for the website. Also, there's another issue. The scripts to create these example images (at two sizes to allow "click to enlarge") use -dpreview so only the first system of this bwv861 example makes it into the image. (sigh) So maybe trying to use this examples machinery is not helpful. (Unless we want to edit all of the examples ly files so that they only output the content that should be in the images and then drop the -dpreview.) At this point it would probably be simplest to just inline the lilypond code for this example on the home page, like it is done in the essay. (Probably putting it in an include file to avoid duplication.) We wouldn't get "click to enlarge" that way (which was the point of using the examples mechanisms) but maybe that's not needed on the home page and/or could be a future enhancement. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)
On 09/08/2016 12:53 PM, carl.d.soren...@gmail.com wrote: How about the BWV 861 example from the essay? http://lilypond.org/doc/v2.18/Documentation/essay/engraved-examples-_0028bwv-861_0029 It shows fewer features (e.g. instrument names, score title) but shows a beautiful and complex score. That seems fine to me. Carl, would you like me to hold off on pushing my patch until we sort out the example image, or is it ok with you to go ahead and push now and do a different example in a follow-up patch? Last night I tried to get the BWV 861 example to work, without any luck. I made a ly file for it in the Documentation/ly-examples directory, but I couldn't get the build scripts to make the images from it. With the ly file in that directory and putting references to the example/image into the home page and the examples page, I would just get broken links to a non-existing image, even after running a fresh make, make website, and make doc. Does anyone know what's needed? How to get the build scripts to see my file and create the example image? Thanks, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Web: home page: add examples/images, reduce news to headlines (issue 306350043 by paulwmor...@gmail.com)
On 08/30/2016 06:05 PM, carl.d.soren...@gmail.com wrote: I'm not comfortable with the really long, scrolling, home page. Ok, given these concerns that Carl and David raised, let me think some more and see what I can come up with. Maybe just a single example, followed by a list of the other kinds of examples, to show the range of what LilyPond can do, with a link to the full example page. (This is another place where @anchor would come in handy -- we could link the list items directly to the examples, "Tablature" to the tablature example etc.) Later, if we wanted, we could turn that single example into a CSS slider / slide show type thing where the user could click through some of the examples in-place on the home page, as Federico suggests. Anyway, just some thoughts. It may be some days before I get back to working on this. -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GSoC spanners project
Hi Nathan and Jeffrey, Great to have you on board for LilyPond GSoC! I'll be working on a GSoC project for Mozilla Calendar, so won't be as active with LilyPond, but I'll try to help with development questions if I can. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Requesting write access to the LilyPond repository
> On May 3, 2016, at 4:48 PM, John Gourlay wrote: > > Is there a more detailed description somewhere of how to go about this? For > example, how do I connect to the Savannah server and get a developer account > on it? How do I request membership in the LilyPond project there? What tool > should I use to get the public/private key pair, etc.? This section of the contributor’s guide should spell it out in enough detail: http://lilypond.org/doc/v2.19/Documentation/contributor/advanced-git-procedures BTW, I took a quick look at your patch and wow, it's a lot of changes! More than I realized. So thanks again for taking this on. Cheers, -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Rewriting the Translator definition framework
> On Apr 22, 2016, at 8:07 AM, David Kastrup wrote: > > I am currently doing pitch 2 at first-class Scheme engravers and am > sorely tempted to scratch the whole macro-based mess and do it via > inheritance and templates. I can’t comment on the implementation questions, but it will be great to have first-class scheme engravers. So thanks for working on this! (Also, while I’m at it, your recent dotted list work, allowing "violin.1” etc, is also really nice.) -Paul ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel