Re: Question: Cross compilation
Chris Yatewrites: > On Mon, 26 Sep 2016 at 19:34 David Kastrup wrote: > >> >> That's pretty good, actually. Not being able to do native/online >> compilations by anybody wanting to is bad. Yes. Fixes to GUB (possibly >> even just to its information/documentation, maybe it _can_ do it >> already) are of course welcome: > > > David, > > At a brief look over GUB, the really big question in my mind is why on > earth it seems to want to build *everything*. It wants to be _able_ to build everything, like autoconf. > A Lilypond build tool for all platforms = a great idea. > A Lilypond build tool for all platforms to which someone's added half a > dozen extra unrelated targets (possibly very large ones such as OpenOffice) > = a terrible idea. You don't need to touch or maintain or use the OpenOffice rules. > If I did anything to "fix" it, it would be to strip it right back to a > tool that does _one_ job well. And I don't know whether that's likely > to be popular thing (although correct me if I'm wrong there)... I don't see the point. It won't build OpenOffice unless you ask it to. > ... because IMHO a build tool that takes 24+ hours to rebuild after > making tweaks to it --and that's on a high spec machine-- is not a > very useful tool. You'll find that none of the 24+ hours are spent in relation to OpenOffice. The OpenOffice configuration affects the download size of GUB, but that's a one-time cost and rather small. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
On Mon, 26 Sep 2016 at 23:05 Chris Yatewrote: > On Mon, 26 Sep 2016 at 19:34 David Kastrup wrote: > >> >> That's pretty good, actually. Not being able to do native/online >> compilations by anybody wanting to is bad. Yes. Fixes to GUB (possibly >> even just to its information/documentation, maybe it _can_ do it >> already) are of course welcome: > > > David, > > At a brief look over GUB, the really big question in my mind is why on > earth it seems to want to build *everything*. ... > All this said, it looks like the task of slimming it down for one's own preferred build configurations (in my case, mingw builds, and with a custom lilypond git repo) is simply a case of changing some definitions in the Makefile(s). That probably is not too troublesome for anyone that's confident to start hacking something like Lilypond in the first place... Chris ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
On Mon, 26 Sep 2016 at 19:34 David Kastrupwrote: > > That's pretty good, actually. Not being able to do native/online > compilations by anybody wanting to is bad. Yes. Fixes to GUB (possibly > even just to its information/documentation, maybe it _can_ do it > already) are of course welcome: David, At a brief look over GUB, the really big question in my mind is why on earth it seems to want to build *everything*. A Lilypond build tool for all platforms = a great idea. A Lilypond build tool for all platforms to which someone's added half a dozen extra unrelated targets (possibly very large ones such as OpenOffice) = a terrible idea. If I did anything to "fix" it, it would be to strip it right back to a tool that does _one_ job well. And I don't know whether that's likely to be popular thing (although correct me if I'm wrong there)... ... because IMHO a build tool that takes 24+ hours to rebuild after making tweaks to it --and that's on a high spec machine-- is not a very useful tool. Chris ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
On 26 Sep 2016 20:16, "Phil Holmes"wrote: > > TBH, you'd probably find it far easier to install a Linux VM on your Windows host, and compile the problematic score on that. I've done both, and what I suggest here is what I would do. That's exactly what I've done - I do a lot of my day job with Virtual Machines. But... ... I generally use Frescobaldi as an IDE for Lilypond work - and that works very much better in Windows (better integration with midi, pdf viewer as well as printers etc.), and there's available installers for the latest versions. Ubuntu's packaged version is ancient, and the one I built has all sorts of problems. That said, it is almost certainly the path of least resistance to fix Frescobaldi on Linux than fix Lilypond in Windows!! > I also used Sibelius - for my college course. I always now use LilyPond in preference. IMO, Lilypond produces somewhat better looking output (with at least a little care), and as a software engineer I really rate being able to source-control my files properly. Everything's in git... Chris ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tuplet stats
On 26.09.2016 04:55, David Kastrup wrote: Carl Sorensenwrites: On 9/25/16, 2:46 PM, "Simon Albrecht" wrote: On 25.09.2016 22:06, Trevor Daniels wrote: When needed, isn't this adequate? \version "2.19.48" triplet = \tuplet 3/2 \etc \triplet { a'4 a' a' } That¹s what I meant by ‘implementation is a no-brainer’ :-) Best, Simon I¹m generally opposed to syntactic sugar. It tends to hide behavior that is important to know to move beyond the basics. I also proposed the change because I think this is easy to grasp and document: At the _end_ of the section on \tuplet, one can add a remark that \tuplet 3/2 may be written as \triplet. So everybody will be well aware that \triplet is \tuplet 3/2 and cannot be used for anything like 3/5. \triplet saves very little input, it does not actually cover all triplets (like the rare 3/5 triplets) and it does not generalize well to things like quintuplets which can really be 5/4 or 5/3 depending on metre. It’s just that \tuplet 3/2 is the most common form by magnitudes. I daresay 3/5 might be like 1000 times less common, but that may be due to the repertoire I’m working on. At any rate I don’t think it’s going to cause any confusion. So I'm a bit meh on it even though I don't consider it GLISSful. Its cost is small but I don't see it as overly helpful either. But then I am writing on a US keyboard layout where 3/2 can be typed with 3 key strokes and no modifiers (Shift, AltGr or whatever). For me (German neo2 layout) it’s 6 key strokes (Mod4+. Mod3+i Mod4+,) [1], but whether it’s 3, 4 or 6 key strokes doesn’t really matter so much. Let me give an example: In my current project I have a section where many bars look like this: b \tuplet 3/2 { a'4 g8 } And with many instances of \tuplet 3/2 it does reduce typing and visual clutter to just have \triplet instead (which can also be autocompleted). Now I might just write triplet = \tuplet 3/2 \etc in a library file of mine, but for once I like to keep such private syntax at minimum level to simplify sharing code, and I thought that it might help others as well. Best, Simon [1] That sounds terrible, but normally the layout is extremely handy (well, for German text more so than for English…), especially for Lilypond code, since all the \/{}[]<> and numbers are very easy to type. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
TBH, you'd probably find it far easier to install a Linux VM on your Windows host, and compile the problematic score on that. I've done both, and what I suggest here is what I would do. I also used Sibelius - for my college course. I always now use LilyPond in preference. -- Phil Holmes - Original Message - From: Chris Yate To: David Kastrup Cc: Phil Holmes ; Lilypond-User Mailing List Sent: Monday, September 26, 2016 7:48 PM Subject: Re: Question: Cross compilation On Mon, 26 Sep 2016 at 19:34 David Kastrupwrote: Chris Yate writes: > Hi Phil, > > Sigh... Yes, that's basically the conclusion I'd already come to, but that > it seemed such a ludicrous state of affairs that _somebody_ must have a > better solution. If you can find _any_ free software project requiring a number of free software compile- and runtime dependencies that does not invest a really big amount of time into maintaining a separate Windows port, you might want to look how they are doing it. Thanks David. If the answer to my question is "no, there's no other way", that's still a useful answer! :) To be fair, I think the projects that do work across many systems are usually not using C++, but some other language that's more portable. Probably something interpreted, or running on a VM. And of course, Lilypond has a bunch of dependencies, TexMf, Guile and the like, which may be more of a portability problem than /our/ code. In contrast, the LilyPond Windows releases appear at the same time as other releases and require no extra manual effort (until things go wrong, of course). That's pretty good, actually. Agreed! Not being able to do native/online compilations by anybody wanting to is bad. Yes. Fixes to GUB (possibly even just to its information/documentation, maybe it _can_ do it already) are of course welcome GUB is a really good idea. But obviously it's not great having to compile the whole thing to change a source repository... If its authors followed the mentality of Gnu autoconf tools, you'd expect to be able to pass some arguments in. I'll look into it a little. Chris ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
Chris Yatewrites: > On Mon, 26 Sep 2016 at 19:34 David Kastrup wrote: > >> Chris Yate writes: >> >> > Hi Phil, >> > >> > Sigh... Yes, that's basically the conclusion I'd already come to, but >> that >> > it seemed such a ludicrous state of affairs that _somebody_ must have a >> > better solution. >> >> If you can find _any_ free software project requiring a number of free >> software compile- and runtime dependencies that does not invest a really >> big amount of time into maintaining a separate Windows port, you might >> want to look how they are doing it. >> > > Thanks David. If the answer to my question is "no, there's no other way", > that's still a useful answer! :) > > To be fair, I think the projects that do work across many systems are > usually not using C++, but some other language that's more portable. LilyPond and its utilities use C++, Guile (both as standalone executable and as one of _many_ libraries), Ghostscript, Python, Shell scripts and probably a few other things. C++ alone is not all that hard, except that it does not buy you an installer. > Probably something interpreted, or running on a VM. And of course, > Lilypond has a bunch of dependencies, TexMf, Guile and the like, which > may be more of a portability problem than /our/ code. Maybe, maybe not, but it adds up. That's what I meant with "a number of free software compile- and runtime dependencies". > GUB is a really good idea. But obviously it's not great having to > compile the whole thing to change a source repository... If its > authors followed the mentality of Gnu autoconf tools, you'd expect to > be able to pass some arguments in. I'll look into it a little. It may well be possible, but I don't really know myself where to get a good roadmap. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
On Mon, 26 Sep 2016 at 19:34 David Kastrupwrote: > Chris Yate writes: > > > Hi Phil, > > > > Sigh... Yes, that's basically the conclusion I'd already come to, but > that > > it seemed such a ludicrous state of affairs that _somebody_ must have a > > better solution. > > If you can find _any_ free software project requiring a number of free > software compile- and runtime dependencies that does not invest a really > big amount of time into maintaining a separate Windows port, you might > want to look how they are doing it. > Thanks David. If the answer to my question is "no, there's no other way", that's still a useful answer! :) To be fair, I think the projects that do work across many systems are usually not using C++, but some other language that's more portable. Probably something interpreted, or running on a VM. And of course, Lilypond has a bunch of dependencies, TexMf, Guile and the like, which may be more of a portability problem than /our/ code. In contrast, the LilyPond Windows releases appear at the same time as > other releases and require no extra manual effort (until things go > wrong, of course). That's pretty good, actually. Agreed! Not being able to do native/online compilations by anybody wanting to is > bad. Yes. Fixes to GUB (possibly even just to its > information/documentation, maybe it _can_ do it already) are of course > welcome GUB is a really good idea. But obviously it's not great having to compile the whole thing to change a source repository... If its authors followed the mentality of Gnu autoconf tools, you'd expect to be able to pass some arguments in. I'll look into it a little. Chris ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
Chris Yatewrites: > Hi Phil, > > Sigh... Yes, that's basically the conclusion I'd already come to, but that > it seemed such a ludicrous state of affairs that _somebody_ must have a > better solution. If you can find _any_ free software project requiring a number of free software compile- and runtime dependencies that does not invest a really big amount of time into maintaining a separate Windows port, you might want to look how they are doing it. But in my experience, stuff like Git are typical: the Windows port lags several versions behind, is separately maintained with a lot of effort by separate volunteers (who get rather gruff over time), and is of mixed quality. In contrast, the LilyPond Windows releases appear at the same time as other releases and require no extra manual effort (until things go wrong, of course). That's pretty good, actually. Not being able to do native/online compilations by anybody wanting to is bad. Yes. Fixes to GUB (possibly even just to its information/documentation, maybe it _can_ do it already) are of course welcome: we have pretty low active expertise on its innards on the list, and those who use it for building releases mostly drive on autopilot. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
Hi Phil, Sigh... Yes, that's basically the conclusion I'd already come to, but that it seemed such a ludicrous state of affairs that _somebody_ must have a better solution. I've just installed mingw on Ubuntu, which might possibly do the job... At the moment my scores have a habit of crashing at line 1180 in page-breaking.cc when an assertion is thrown; that only happens under Windows. And I reckon I can now see why it hasn't been investigated seriously by anyone!! (although it's possible it could be an issue with one of Lilypond's library dependencies.). It should not be so difficult to work on open source stuff on any platform. And it's not Microsoft's fault, presumably a lack of demand... (I'm not blaming anybody here, by the way.) In terms of the time I've wasted, I'm fairly seriously considering that I might buy Sibelius and be done with it. Given that most of my colleagues in music expect me to be able to send them .sib files to share, it's probably inevitable. Shame. Chris On Mon, 26 Sep 2016 at 19:10 Phil Holmeswrote: > Gub uses http://git.savannah.gnu.org/cgit/lilypond.git as its source. I > know of no way of changing that without a lot of effort changing its > codebase. I personally know of no simple way of cross-compiling LilyPond > for Windows without using Gub as the tool. However, you can (in principle) > create your own branch on Savannah and use Gub to compile against that (see > http://git.savannah.gnu.org/cgit/lilypond.git/log/?h=dev/philh for an > example of something I'm trying to debug at present). You'll need a big > old machine or a lot of patience to get it working - I occasionally have > compile time of the order of 24 hours on a Core i7 quad core system. > > HTH > > -- > Phil Holmes > > > > - Original Message - > *From:* Chris Yate > *To:* Lilypond-User Mailing List > *Sent:* Monday, September 26, 2016 6:54 PM > *Subject:* Question: Cross compilation > > Hi all, > > Apologies for the potentially "blindingly obvious" question, bu't having > read the devel webpages about compiling Lilypond for mingw/Windows, I'm > none the wiser. > > I can compile for native linux using the gnu make (via the > smart-autoconf.sh script). However, I'm trying to track down a crash in > Windows, and according to the website/docs it's impossible to compile > natively* -- so need a cross-compile. > > I note the existance of "GUB", but this appears to use the main repository > as source**. But obviously, I need to compile from my working copy after > I've put a bunch of tracing code in. > > This document > http://www.gnu.org/software/lilypond/src/Developers/Packaging/windows.html > appears > to be out of date. I found "janneke"'s patches at > http://lilypond.org/people/janneke/software/cygwin/mknetrel/ but it's not > clear from where mknetrel itself should be obtained. > > My dev environment is Ubuntu 16 (or 14). Any hints or tips or redirection > towards the relevant instructions would be welcome! > > Chris > > --- > > * assuming the statement about compiling natively under Windows _does_not_ > refer to using mingw gnu make, rather than some other compiler...?? > > ** I'm not sure about that; but in any case it fails at configuring > mingw::fontconfig so that may be the first problem to solve. Error below > --- > . > configure: error: Package requirements (freetype2) were not met: > > Package zlib was not found in the pkg-config search path. > Perhaps you should add the directory containing `zlib.pc' > to the PKG_CONFIG_PATH environment variable > Package 'zlib', required by 'FreeType 2', not found > > > > > -- > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user > > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extracting symbol location
Hi Lukas, On Fri, Sep 23, 2016 at 5:06 AM, Lukas Tuggenerwrote: > Dear All > > To create labeled training data for a machine learning project, I need to > extract the location at which symbols are printed. Is it possible to extract > coordinates for every symbol? Methods which reveal the position of one > symbol at a time would also already help a lot (e.g. control which symbol > will be printed at the exact center) > > I am aware that similar questions have been asked have been asked in the > past. But those are pretty old, so I am hoping that there has been some > development in this area. > (http://lists.gnu.org/archive/html/lilypond-user/2007-05/msg00142.html) > The link you cite mentions looking at SVG output, and I suppose that would be the best way. I can't think of another method to get the actual print positions of objects. I can't help with processing the SVG output to get the information you want (a bounding box for each element?), but the attached file might help with preparing an interpretable file. Objects aren't assigned a unique id by default. The attached tries to do this. Hopefully, the information included (grob name, moment, horizontal and vertical coordinates) is sufficient. The coordinates used in the ID aren't the print position -- they are relative to the system on which the grob is found, for one thing. I include them to distinguish between the note heads in a chord, which obviously occur at the same time (moment). There's a patch being reviewed which replaces the 'id property with 'output-properties and this will need to be updated accordingly (https://sourceforge.net/p/testlilyissues/issues/4974/). Hope this helps, David \version "2.19.46" % angle brackets cause SVG error so reformat: % # becomes [Mom 1] #(define (reformat-moment mom) (let* ((mom (format #f "~a" mom)) (mom (string-drop mom 2)) (mom (string-drop-right mom 1))) (string-concatenate (list "[" mom "]" % grob name + absolute moment + (system) coordinates should be enough for a unique id... #(define (get-unique-id grob) (let ((sys (ly:grob-system grob))) (format #f "~a/~a,(~a,~a)" (grob::name grob) (reformat-moment (grob::when grob)) (ly:grob-relative-coordinate grob sys X) (ly:grob-relative-coordinate grob sys Y assignIDs = #(let ((grob-names (map car all-grob-descriptions))) #{ #@(map (lambda (x)#{ \override #(list 'Score x 'id) = #get-unique-id #}) grob-names) #}) { \assignIDs a1 \break a \break a } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question: Cross compilation
Gub uses http://git.savannah.gnu.org/cgit/lilypond.git as its source. I know of no way of changing that without a lot of effort changing its codebase. I personally know of no simple way of cross-compiling LilyPond for Windows without using Gub as the tool. However, you can (in principle) create your own branch on Savannah and use Gub to compile against that (see http://git.savannah.gnu.org/cgit/lilypond.git/log/?h=dev/philh for an example of something I'm trying to debug at present). You'll need a big old machine or a lot of patience to get it working - I occasionally have compile time of the order of 24 hours on a Core i7 quad core system. HTH -- Phil Holmes - Original Message - From: Chris Yate To: Lilypond-User Mailing List Sent: Monday, September 26, 2016 6:54 PM Subject: Question: Cross compilation Hi all, Apologies for the potentially "blindingly obvious" question, bu't having read the devel webpages about compiling Lilypond for mingw/Windows, I'm none the wiser. I can compile for native linux using the gnu make (via the smart-autoconf.sh script). However, I'm trying to track down a crash in Windows, and according to the website/docs it's impossible to compile natively* -- so need a cross-compile. I note the existance of "GUB", but this appears to use the main repository as source**. But obviously, I need to compile from my working copy after I've put a bunch of tracing code in. This document http://www.gnu.org/software/lilypond/src/Developers/Packaging/windows.html appears to be out of date. I found "janneke"'s patches at http://lilypond.org/people/janneke/software/cygwin/mknetrel/ but it's not clear from where mknetrel itself should be obtained. My dev environment is Ubuntu 16 (or 14). Any hints or tips or redirection towards the relevant instructions would be welcome! Chris --- * assuming the statement about compiling natively under Windows _does_not_ refer to using mingw gnu make, rather than some other compiler...?? ** I'm not sure about that; but in any case it fails at configuring mingw::fontconfig so that may be the first problem to solve. Error below --- . configure: error: Package requirements (freetype2) were not met: Package zlib was not found in the pkg-config search path. Perhaps you should add the directory containing `zlib.pc' to the PKG_CONFIG_PATH environment variable Package 'zlib', required by 'FreeType 2', not found -- ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Question: Cross compilation
Hi all, Apologies for the potentially "blindingly obvious" question, bu't having read the devel webpages about compiling Lilypond for mingw/Windows, I'm none the wiser. I can compile for native linux using the gnu make (via the smart-autoconf.sh script). However, I'm trying to track down a crash in Windows, and according to the website/docs it's impossible to compile natively* -- so need a cross-compile. I note the existance of "GUB", but this appears to use the main repository as source**. But obviously, I need to compile from my working copy after I've put a bunch of tracing code in. This document http://www.gnu.org/software/lilypond/src/Developers/Packaging/windows.html appears to be out of date. I found "janneke"'s patches at http://lilypond.org/people/janneke/software/cygwin/mknetrel/ but it's not clear from where mknetrel itself should be obtained. My dev environment is Ubuntu 16 (or 14). Any hints or tips or redirection towards the relevant instructions would be welcome! Chris --- * assuming the statement about compiling natively under Windows _does_not_ refer to using mingw gnu make, rather than some other compiler...?? ** I'm not sure about that; but in any case it fails at configuring mingw::fontconfig so that may be the first problem to solve. Error below --- . configure: error: Package requirements (freetype2) were not met: Package zlib was not found in the pkg-config search path. Perhaps you should add the directory containing `zlib.pc' to the PKG_CONFIG_PATH environment variable Package 'zlib', required by 'FreeType 2', not found ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Access/address arbitrary grobs' coordinates from event function
Hi all, in order to improve the multi-segment slurs I would like to know if it is possible to get information about arbitrary grobs from within an event function. Concretely I would like to know if there's a way to get hold of the coordinates (anchor points) of an arbitrary other grob from within a function defined as "define-event-function". I would like to somehow "tag" the other grob in the input file in order to get and keep some kind of "handle" to it and then access its coordinates in an event function. The idea is to be able to define the inflection point of a multi-segment slur relative to one or more other items on the page. For example between two notes. Anchoring such complex slurs on other items like notes or stems or beams will significantly increase the chance that changes in layout may keep the slur intact. My question is: is there a way to get the necessary information at the right processing stage. I see that when saving some values in a music- or scheme-function this is available in the event-function of the compound slur. But probably it's not possible to retrieve the positioning data at that point yet. Any pointers? TIA Urs ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: 2.19.48 on Mac OS 10.11
Original-Nachricht From an unsecured network, out of town… Had hopes for 2.19.48 but if anything, it is even slower on Mac OS 10.11.6 than was 2.19.47. Have to revert (again) to 2.19.46. From what I’ve read, my experience is not unique. Shouldn’t this be noted on the web page? I’ll help any way I can when I return home. Stan 2.19.48 is also slow here (didn't test 2.19.47) - reverted to 2.19.46! Thomas ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user