Re: Using/requiring Cairo
David Kastrup: ... > The main question mark would concern font handling > but I think it integrates with FreeType as well as Pango. ... cairo has support for freetype https://cairographics.org/manual/cairo-FreeType-Fonts.html pango has support for cairo: https://developer.gnome.org/pango/stable/pango-Cairo-Rendering.html /// Citating https://www.cairographics.org/manual/cairo-text.html Description The functions with text in their name form cairo's toy text API. The toy API takes UTF-8 encoded text and is limited in its functionality to rendering simple left-to-right text with no advanced features. That means for example that most complex scripts like Hebrew, Arabic, and Indic scripts are out of question. No kerning or correct positioning of diacritical marks either. The font selection is pretty limited too and doesn't handle the case that the selected font does not cover the characters in the text. This set of functions are really that, a toy text API, for testing and demonstration purposes. Any serious application should avoid them. The functions with glyphs in their name form cairo's low-level text API. The low-level API relies on the user to convert text to a set of glyph indexes and positions. This is a very hard problem and is best handled by external libraries, like the pangocairo that is part of the Pango text layout and rendering library. Pango is available from http://www.pango.org/. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
Han-Wen Nienhuys: > On Sat, Jun 24, 2017 at 12:43 PM, David Kastrup wrote: > > What does that mean? Mainly a viable migration strategy where we might > > be able to drop catering for a whole lot of graphics programming > > ourselves by introducing a dependency on Cairo. I am not overly > > what "catering for graphic programming" mean? There is graphical > programming, but a lot of it is done already. Moving towards a new > library will be a big undertaking, so it could use more justification. ... > > It would be a large amount of work to bring LilyPond's graphics > > programming up to scratch. Moving to Cairo's data structures alone > > would be quite advantageous and would likely speed up backend operations > > significantly. > > which ones? In terms of graphics, the backend just does interval > unions and offsets (floating point comparisions and additions) through > the Stencil object. Unless you also restructure how objects are > grouped, it's going to be similar. If no one else like to care for postscript, I can step in to handle it. > > We might also be able to forego creating PostScript as an intermediate > > stage to creating PDF and create bitmap formats without using PostScript > > as well (again, this should really speed up things). I use PS as the final format. Cairo can export to postscript but it's PS is not nice to read, lilypond PS is much better in that respect. ... > > Drawbacks? Like other things, being on Guile-2.x would make for > > synergies with existing projects (not least of all guile-cairo though I > > haven't checked its suitability in general, with the new PDF-level > > features, and possible compatibility with Guile-1: I think it supported > > Guile-1 at some point of time). http://git.savannah.nongnu.org/cgit/guile-cairo.git/tree/README Build dependencies == * Guile 1.8.0 or newer http://www.gnu.org/software/guile/ * Cairo 1.2.0 or newer http://cairographics.org/ ... > I would suggest trying make a GUILE binding of sorts for Cairo, adding > that in parallel to existing GS support, and hacking untili you have > feature parity. Then drop the GS support, and migrate the cairo data > structures more towards the core of the program as needed. There already are guile bindings for cairo: https://savannah.nongnu.org/projects/guile-cairo Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
David Kastrup: > k...@aspodata.se writes: > > > Han-Wen Nienhuys: > >> On Sat, Jun 24, 2017 at 12:43 PM, David Kastrup wrote: ... > > If no one else like to care for postscript, I can step in to handle it. > > I don't know what that means. It's like english, I am willing to take care of something related to the programming language PostScript, so we don't need to convert to cairo. > My proposed migration plan would not have > changed the PostScript backend at first, but it certainly would have > been slated for eventual retirement. And I more or less said that I didn't like the retirement thing. If you already decided to switch to cairo, then fine, tell us so we can stop this discussion. > >> > We might also be able to forego creating PostScript as an > >> > intermediate stage to creating PDF and create bitmap formats > >> > without using PostScript as well (again, this should really speed > >> > up things). > > > > I use PS as the final format. Cairo can export to postscript but it's > > PS is not nice to read, lilypond PS is much better in that respect. > > PostScript is not intended to be human-readable rather than > human-writable and streamable, PostScript is a programming language suited for printing and other things. Why youldn't I like to have that readable and understandable like any other code ? > two characteristics PDF no longer cares > about in return for better computer-readability and processability. PDFReference16.pdf is 1236 pages long and is no easy read. The first version of the green/blue/red book was good at getting you started at postscript, do you have any similar doc to get you started at pdf ? Yes, they say that pdf it is for better computer-readability and processability, but it isn't a stable interface, things are being added which breaks some viewers, and fonts are still missing in some cases, which was a point going from ps to pdf. In contrast to ps which has a stable interface/reference, PLRM3 is first printed 1999 and still in effect. I have tried to find some free lib to use to read pdf's, if you know of one please tell me, preferable for perl. Currently I'm using "pdftohtml --xml", but there is a few things missing with that solution. I know about poppler, citing: https://freedesktop.org/wiki/Software/poppler/ // Documentation There is currently very little documentation. // Soo, the computer-readability is a nice goal, but not so much attained. ... > That makes it a lot less likely to be > suitable for mechanical processing (like using "Tailor") than PostScript > generated from a general-purpose representation with commonly used > toolkits. ... Ok, stop bullshitting. Both ps and pdf are a "general-purpose representaion", both have "commonly used toolkits", and both are suitable for "mechanical processing" (by e.g. a printer). What is "Tailor" in this context, I don't understand what you mean by that ? Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
David Kastrup: > k...@aspodata.se writes: > > David Kastrup: ... > "taking care of PostScript" is not related to converting LilyPond's > graphics internals to Cairo since LilyPond's graphics internals are not > written in PostScript. Ok, forget it then, you are not listening. ... > When processing in general will get moved to Cairo, ... You make it sound like it is already decided. ... > > PostScript is a programming language suited for printing and other > > things. Why youldn't I like to have that readable and understandable > > like any other code ? > > Because it is employed as an intermediate format not intended for human > consumption and manipulation? It's similar to the role of LilyPond in a > Denemo workflow. It's nice for debugging when it's somewhat readable, > but the files created in it are ephemeral. ... Fine, I also want them to be easy to debug. PS is not ephemeral for me. ... > You are not supposed to get started at writing PDF. Instead the PDF > gets written by programs. You are fine with letting your PDF be written > by Ghostscript rather than LilyPond and not looking at it. What is the > difference with PostScript in your workflow that makes it different? You don't listen, I use the PS as is, not doing any conversion to pdf unless someone else wants them. And my interest was in reading pdf's, so I can write programs to extract the info I want from pdf's. I took up the subject to show that the goal of computer-readability and processability is not reached. > > I have tried to find some free lib to use to read pdf's, if you know > > of one please tell me, preferable for perl. > > libpoppler? Yes, but it is barely documented, makes it hard to use. > > Currently I'm using "pdftohtml --xml", but there is a few things > > missing with that solution. > > > > I know about poppler, citing: > > https://freedesktop.org/wiki/Software/poppler/ > > // > > Documentation > > > > There is currently very little documentation. > > // > > > > Soo, the computer-readability is a nice goal, but not so much > > attained. > > Well, there isn't a free lib for reading PostScript, is there? I do have an editor. > I mean, how much is ps2pdf documented? ... Ok, you don't know then, so much for computer-readability and processability. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
Werner: > >> "taking care of PostScript" is not related to converting LilyPond's > >> graphics internals to Cairo since LilyPond's graphics internals are > >> not written in PostScript. > > > > Ok, forget it then, you are not listening. [...] > > Why such a hostile tone, Karl? There is no reason for this. No, that is not a hostile tone, it's a tired tone. > I have to agree with David: While having well readable PS is nice, > this is just a by-product of the conversion process from a .ly to a > .pdf file. Essentially, the formatting of the PS stuff is of *no > importance* to a vast majority of users. I don't argue about that, save if you just want the ps file. > > I use the PS as is, [...] > > So tell us what you are doing with the PS stuff. Mostly the same thing you do with your pdf's, I guess, like psnup, psselect, pstops, a patched version of psbook (so the paper curves the right way when I fold them out of the printer), includegraphics from latex, and probably some more. And my printers doesn't take pdf. > > And my interest was in reading pdf's, so I can write programs to > > extract the info I want from pdf's. > > Have you tried `pdftk' to uncompress a PDF file? It's then almost as > readable as a plain PS file (see attachments). No, it looks promising, thanks, now I have to find out how it does that. Though, my conclusion was that pdf is not better than ps regarding postprocessing, and yes I know that pdf (depending on pdf version) has some features that ps don't have. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
David > k...@aspodata.se writes: > > Werner: ... > >> > And my interest was in reading pdf's, so I can write programs to > >> > extract the info I want from pdf's. > >> > >> Have you tried `pdftk' to uncompress a PDF file? It's then almost as > >> readable as a plain PS file (see attachments). > > > > No, it looks promising, thanks, now I have to find out how it does > > that. Found out that there is no public source: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ it is based in iText lib, which (or OpenPDF) I could use if I want to use java. I could possible use svn co http://svn.code.sf.net/p/podofo/code/podofo/trunk podofo or try to desciffre libpoppler. > Depending on what "Extract the info you want from PDFs" means, pdf2dsc > can be quite handy. Thanks, but it is not helping. I want to find lines and text in pdfs, to basically identify tables. Since pdf is not much more structered than ps I have to use clever thinking. If you really want to help have a look at: http://aspodata.se/git/openhw/pdftosym/pdfextr.pl My point was: > > Though, my conclusion was that pdf is not better than ps regarding > > postprocessing, and yes I know that pdf (depending on pdf version) has > > some features that ps don't have. > > But nobody is talking about PDF. You seem to have a short memory, from your initial message: last time I looked at Cairo, its PDF generation was not really suitable ... We might also be able to forego creating PostScript as an intermediate stage to creating PDF and create bitmap formats without using PostScript as well (again, this should really speed up things). > The difference in question is > Cairo-generated PostScript vs the PostScript generated by Scheme > programming and LilyPond's music-drawing-routines.ps and encodingdefs.ps > . The Cairo-generated ps is much less readable than lilyponds. If you wanted to get rid of the lilyponds own generation of PS, I offered my help to get it up to speed instead, but you didn't understand that since: > >> "taking care of PostScript" is not related to converting LilyPond's > >> graphics internals to Cairo since LilyPond's graphics internals are > >> not written in PostScript. You are obviously not understanding my offer and your mind is set on using cairo instead. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GUB Ghostscript 9.21
Phil Holmes: ... > /usr/bin/ld: cannot find -lfreetype ... ld cannot find libfreetype.so Do you have it installed ? Try this: $ locate libfreetype.so ... /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/i386-linux-gnu/libfreetype.so.6.8.1 ... Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
David Kastrup: ... > Han-Wen Nienhuys writes: ... > > I would be much more supportive if you could show some numbers where > > memory/CPU is used right now, and could show some data how much Cairo > > would improve on things. It's quite possible that you are right, but > > then it should be easy to come up with some supporting data. > > I'm at a loss here how to arrive at such data without doing the actual > work. ... There is a project that did a similar switch in nov. 2013, and they use c + guile, so there are some similarities: http://git.geda-project.org/geda-gaf/ in commit be4ed1c509e9cd808222f7e32e6ee2e602f58662 Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Using/requiring Cairo
David Kastrup: ... > I don't see myself able to deal with all potential icky graphics code in > LilyPond, and I don't see anybody else stepping up either. ... Just for the record, I'm interested in icky graphics code. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Guile 2 support
David Kastrup: > Sven Axelsson writes: ... > > I know that there have been plans of bumping to Guile 2 for a long > > time now. Is this something that is planned for the next release? > > Oh, definitely. It's not like it wasn't planned for 2.16 and 2.14. But > somebody has to do the heavy lifting. There don't seem to be many guides how to do the upgrade 1.8 -> 2.0, the only thing I found was the 1990 first lines of: http://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob;f=NEWS;h=b53386a0bcfa3e67acf5f63e501ccf84c8242557;hb=958a28e9fec33ebb4673294308a82ccd18cc6071 and the problems reported by: http://code.google.com/p/lilypond/issues/list?can=2&q=guile+2.0&colspec=ID+Type+Status+Stars+Owner+Patch+Needs+Summary&cells=tiles from which I get the picture that 1.8 and 2.0 is basically the "same" but 2.0 have a stricter adherence to R5RS and it also have a byte compiler which makes lazy binding troublesome. /// Peter Brett has a guide how to work with mult. guile versions: http://blog.peter-b.co.uk/2011/06/geda-and-guile-compiling-against.html Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Building Lilypond documentation
Sven Axelsson: > It appears as if texi2html needs word-writeable folders to work. Thus I > took the simple route of running make doc (and make test) under sudo. Is > that how others does it too? Nope, git clone, pull, ./autogen.sh, make all, make doc all as the same user, no problems like the one you state. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
midi control done twice
Using tt.ly: \version "2.19.0" \score { \new Staff { \set Staff.midiInstrument = #"electric bass (finger)" % 34 \set Staff.midiPanPosition = #0 a'1 } \midi { } } and midi.pl: #!/usr/bin/perl -w use strict; use MIDI; my $file; foreach $file (@ARGV) { my $opus = MIDI::Opus->new({ 'from_file' => $file }); $opus->dump({ "dump_tracks" => 1 }); } gives me: $ lilypond tt.ly $ midi.pl tt.midi MIDI::Opus->new({ 'format' => 1, 'ticks' => 384, 'tracks' => [ # 2 tracks... # Track #0 ... MIDI::Track->new({ 'type' => 'MTrk', 'events' => [ # 5 events. ['track_name', 0, 'control track'], ['text_event', 0, 'creator: '], ['text_event', 0, 'GNU LilyPond 2.19.0 '], ['time_signature', 0, 4, 2, 18, 8], ['set_tempo', 0, 100], ] }), # Track #1 ... MIDI::Track->new({ 'type' => 'MTrk', 'events' => [ # 10 events. ['patch_change', 0, 0, 33], ['control_change', 0, 0, 10, 64], ['control_change', 0, 0, 42, 0], ['patch_change', 0, 0, 33], ['instrument_name', 0, 'electric bass (finger)'], ['control_change', 0, 0, 10, 64], ['control_change', 0, 0, 42, 0], ['control_change', 0, 0, 7, 100], ['note_on', 0, 0, 69, 90], ['note_on', 1536, 0, 69, 0], ] }), ] }); $ As seen by the output, patch_change and control messages for panning (10 is pan MSB, 42 is LSB pan) are done twice. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: 3.0?
Carl Peterson: ... > Now, consider an IDE/GUI setup > (perhaps an extension of Frescobaldi) that would allow me to define a > variable for a voice, then pop up a musical staff to enter and play > back the notes for that variable without dealing with the whole > compilation process. No manual tweaking of notes, just the entry of > the entry and playback of the notes, and I don't have to insert the > notes into the music itself yet or deal with whatever may or may not > be wrong with the rest of my file. I realize that this would not > necessarily work for all use cases, but I think for a large number of > them, this could be beneficial. It would reduce a number of my > transcription errors without me having to compile, scan for errors, > potentially figure out where the errors are (depending on workflow), > correct, recompile, etc. Sounds like a performance problem, you want to hear (quickly) how the things you entered sounds. That can be done with lilypond as is, just skip the ps/pdf generation, us a test file like: ma = { your_music } targetpitch = c midi_tempo = { \tempo 2 = 100 } \score { \unfoldRepeats \transpose c \targetpitch << \new Staff \ma >> \midi { \midi_tempo } } /// As an example take: http://turkos.aspodata.se/git/musik/ALotti/missa_a3_la_minore/ Compiling it takes 15s on my box. $ time lilypond 01_kyrie.ly GNU LilyPond 2.19.0 Processing `01_kyrie.ly' real0m14.844s user0m10.914s sys 0m0.291s Skipping the to-pdf conversion saves me 2s $ time lilypond --ps 01_kyrie.ly ... real0m12.674s user0m9.368s sys 0m0.220s And doing only midi is fast, 2.5s: $ time lilypond 01_kyrie.ly GNU LilyPond 2.19.0 Processing `01_kyrie.ly' Parsing... Interpreting music... MIDI output to `01_kyrie.midi'... Success: compilation successfully completed real0m2.437s user0m1.652s sys 0m0.140s So running $ lilypond file.ly && timidity file.midi would probably solve your stated need. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: 3.0?
Carl Peterson: ... > I know someone suggested just turning off the PDF conversion to speed > things up, but it's not just a matter of instantaneous aural feedback. Ok. > There's a visual component and a matter of input error reduction, because I > have been known to enter incorrect octaves or durations and not realize it > until I've finished typing and have compiled the entire score. A quick-n-dirty test mode would probably solve your need, just to check for typing errors and such (as you write above). What should such a mode need/disregard, what speedups are possible for such a test mode ? Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: 3.0?
Carl Peterson: ... > Retyping by far. I pretty much write exclusively a cappella SATB, and I > have developed a very specific template/workflow for the part combining and > layout. I've tried a few different ways of getting the music from these > formats into LP, and in each case, I found myself spending longer in > cleaning up the resulting LilyPond code than if I had just transcribed it > manually from the other program. ... What if the midi->lilypond conversion could be made better? I'm currently looking into that. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: 3.0?
Urs Liska: > Am 10.01.2014 22:23, schrieb k...@aspodata.se: > > Carl Peterson: ... > >> There's a visual component and a matter of input error reduction, because I > >> have been known to enter incorrect octaves or durations and not realize it > >> until I've finished typing and have compiled the entire score. > > > > A quick-n-dirty test mode would probably solve your need, just to > > check for typing errors and such (as you write above). > > > > What should such a mode need/disregard, what speedups are possible for > > such a test mode ? > > > > Well, > compiling a few measures of a single staff feels nearly instantaneous, > and when you're editing an orchestral score this makes a huge difference. Denpends on the computer you are using, http://turkos.aspodata.se/git/musik/ALotti/missa_a3_la_minore/04_agnus.ly is 17bars, 3voices with lyrics, and it still takes 5s on my box, > Generally I'd think it would be a good idea to have such an interface in > Frescobaldi. UI-wise it wouldn't be too hard to add that. However, there > is one thing I've thought about several times and that doesn't make the > issue so easy: > If you have a short segment of a score, say in a variable, how can you > guarantee that LilyPond has the right context for that (I'm not talking > of \context, but of things like key, time signature, transposition etc.)? If you are only interested in checking octaves and durations, the context doesn't matter too much. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyPond-mode in Emacs
Laura Conrad: > >>>>> "David" == David Kastrup writes: > > David> That means that without additional care, XEmacs+LilyPond will fall > David> victim to bitrot. > > David> However, that's preferable to LilyPond-mode falling victim to > David> bitrot on all platforms. > > David> Is that ok with people? > > Fine with me. ... Fine with me too. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Musicians prefer LilyPond scores, study finds
Francisco Vila: > I just gained my PhD. My humble thesis tells the design and results of > an experiment with a number of musicians, comparing lilypond scores > with the originals which those scores were copied from. ... > A 20Mb PDF (in Spanish) is privately available for those who ask for it. ... Isn't that a good reason to learn spanish ? But maybe this on is to heavy for a beginner. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: text-replacements: add ä and the like (issue 281470043 by simon.albre...@mail.de)
Simon Albrecht: > On 22.01.2016 13:00, Simon Albrecht wrote: > > On 22.01.2016 11:12, David Kastrup wrote: > >> Simon Albrecht writes: > >>> On 22.01.2016 02:13, Dan Eble wrote: > >>>>> text-replacements: add ä and the like > >>>>> Provides aliases auml,Auml,ouml,Ouml,uuml,Uuml > >>>>> They were wanted by a user, so why not provide them? > >>>> I don’t want my observation to hold back this change if everyone > >>>> else likes it, but this looks like a slippery slope. > >>> What’s the danger that you see? > >> There is a whole lot of character entities in Unicode. Several hundreds > >> of thousands I think. > > Of course, but 99,9% of them are much less common than äöü. The > > current set provided seems somewhat arbitrary anyway. > >>> The alternative would be to deprecate using this input method. > >> Why? > > Well, if a user wants to use ä in his lyrics, but there is no > > text-replacements alias, then text-replacements won’t be an option > > anymore. Currently, it’s in no usable state for languages like > > Swedish and German. And if somebody without ü on their keyboard wants > > to type in German lyrics, then ü is probably the easiest way to > > get it, unless they use an IDE like Frescobaldi, with a ‘Special > > characters’ panel, where it might only require one click. But then > > they wouldn’t need text-replacements anyway. > > How should I (and James) interpret the silence here? Any more opinions? I'd welcome this smallish addition. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: guile-2.0 and debian
Jan-Peter Voigt: > Am 24.11.2016 um 16:10 schrieb Antonio Ospite: > > And about the choice between guile 1.8 or 2.0.12/13, it should be > > possible to have both guile-1.8 and guile-2.0 packages installed in the > > same image and then let lilypond choose which one to pick up at > > configure-time, shoudln't it? > I doubt that. You can install guile 1.8 and 2.0 in one system, but not > guile-dev 1.8 and 2.0 AFAICS. So one needs to separate systems for each > version of guile. > > Or am I wrong? I get this on a gentoo system: # emerge lilypond [...] checking for guile-config... ./configure: line 7604: 11151 Aborted $exe --version > /dev/null 2>&1 no checking guile compile flags... ;;; note: source file /usr/share/guile/1.8/ice-9/boot-9.scm ;;; newer than compiled /usr/local/lib/guile/2.0/ccache/ice-9/boot-9.go Throw without catch before boot: Throw to key syntax-error with args ("memoization" "In file ~S, line ~S: ~A ~S." ("/usr/share/guile/1.8/ice-9/boot-9.scm" 101 "Bad define placement" (define (toplevel-env? env) (or (not (pair? env)) (not (pair? (car env)) #f)Aborting. checking guile link flags... ;;; note: source file /usr/share/guile/1.8/ice-9/boot-9.scm ;;; newer than compiled /usr/local/lib/guile/2.0/ccache/ice-9/boot-9.go Throw without catch before boot: Throw to key syntax-error with args ("memoization" "In file ~S, line ~S: ~A ~S." ("/usr/share/guile/1.8/ice-9/boot-9.scm" 101 "Bad define placement" (define (toplevel-env? env) (or (not (pair? env)) (not (pair? (car env)) #f)Aborting. [...] # /usr/bin/guile-config --version guile-config - Guile version 1.8.8 # /usr/local/bin/guile-config --version guile-config - Guile version 2.0.9 and putting v1.8.8 before v2.0.9 in the search patch doesn't help. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Offer to help development: Convert MIDI to Lilypond
Joe Austin: > I am offering to help with the project of converting midi2ly from > C to Python, or more generally converting MIDI to Lilypond. ... midi2ly is part python and part c, you can find them in git repo.: scripts/midi2ly.py python/midi.c midi2ly has been in the repository since 2001 according to logs. If external dependances are ok, you can find midi support for python below the header "MIDI Mania" in https://wiki.python.org/moin/PythonInMusic https://github.com/vishnubob/python-midi can possible be of help. /// Midi file spec. are available at: http://www.music.mcgill.ca/~ich/classes/mumt306/midiformat.pdf https://www.midi.org/specifications/item/standard-midi-files-smf The midi-file spec. and RP-017 could be of help. /// If you are interested, I'm working on a similar tool, in perl though: http://turkos.aspodata.se/git/musik/bin/miditoly.pl I'm using perls midi module https://metacpan.org/pod/MIDI, a simple midi dump program is available at http://turkos.aspodata.se/git/musik/bin/midi.pl /// I have just started writing a paper to discuss implementions and huristics in the conversion: http://turkos.aspodata.se/git/musik/bin/midi_to_lilypond.tex I'd be happy if you want to contribute to that paper and any possible developments around midi -> lilypond in any programming language. From the top of my head, on my wishful agenda is: collect midi files generated from different notation programs together with pdf outputs from same programs examine and establish huristics how to identify lyrics character encodings try to reserach and define a few conventions on how the lilypond code should be written and structured and write a output module/function for each convention e.g. relative and absolute pich output, names of music variables to match the users preferences research how polyfonic settings are written to midi file, how do you identify voices from a track with multiple voices research and define huristics to guess voice and instrument names support note scaling, i.e. duble, half note values and such among other things. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Offer to help development: Convert MIDI to Lilypond
Graham: > On Mon, Dec 26, 2016 at 11:44:15AM -0500, Joseph Austin wrote: > > I am offering to help with the project of converting midi2ly > > from C to Python, or more generally converting MIDI to Lilypond. > > Excellent! I'd be delighted to serve as your mentor. > > > I'm not sure if this is a good place for someone new to Lilypond > > internals to start, but it seems this should be a relatively > > independent utility so I shouldn't need a significant background > > in the internals. > > That is correct; the python midi2ly conversion is quite > independent of the rest of LilyPond. As a result, it is an > excellent place to begin! :) If you want it as an exercise, that's fine, but if you want a better midi to lilypond converter you better start looking at what kind of output you want since the output that midi2ly produces could be much better than what it is today. So I propose that a better course of action would be to research . what kind of lilypond code output you want to produce . the net for a suitable lowlevel midi lib . the net for alternative converters that are presently availble and let that steer your direction. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Offer to help development: Convert MIDI to Lilypond
Graham: ... > At that point, an interested person -- perhaps yourself? -- could > offer further patches which improved the quality of the lilypond > code. Well, I'm working on theese: http://turkos.aspodata.se/git/musik/bin/miditoly.pl http://turkos.aspodata.se/git/musik/bin/midi_to_lilypond.tex Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Offer to help development: Convert MIDI to Lilypond
Graham: > On Wed, Dec 28, 2016 at 08:21:58PM +0100, k...@aspodata.se wrote: > > > At that point, an interested person -- perhaps yourself? -- could > > > offer further patches which improved the quality of the lilypond > > > code. > > > > Well, I'm working on theese: > > http://turkos.aspodata.se/git/musik/bin/miditoly.pl > > http://turkos.aspodata.se/git/musik/bin/midi_to_lilypond.tex > > Hmm. At the moment, there is no perl used in user scripts in > lilypond, and thus we do not distribute a perl interpreter as part > of our application bundle. Adding perl would be a significant > complication. Yes, I know, that is why I haven't offered it for inclusion. > That said, I'm quite willing to believe that your experience with > miditoly.pl could help inform the conversion process in midi2ly.py > -- what types of quantization work best, or how to decide which > accidental to use, etc. Once we have the basics working, Joe may > want to investigate more advanced techniques. That is why I started on the tex file, so that someone else could grasp the issues and implementation choises. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: help with bash script to translate @ref{} items in translated manuals
Frederico Bruni: ... > Enter Documentation/it/notation and run this: > > #!/bin/bash > LIST="$(grep -oh -e @ref{.*} *.itely | sort -u)" > for i in $LIST; do > echo $i > #echo -n "Replace" $i "with the translated node: " > #read NODE > #if $NODE=""; then exit > #else > #sed "s|$i|$NODE|g" *.itely > #fi > done This doesn't work: $ LIST="$(grep -oh -e @ref{.*} *.itely | sort -u)" $ echo $LIST This is better but messes with newlines: $ LIST=$(grep -oh -e "@ref{.*}" *.itely | sort -u) $ echo $LIST @ref{Accidentals} @ref{Align} @ref{Aligning lyrics to a melody [...] The "for i in $LIST" also messes with newlines. This will rid you of the newline problem: $ grep -oh -e "@ref{.*}" *.itely | sort -u | while read i; do echo $i; done @ref{Accidentals} @ref{Align} ... but now "read NODE" won't read from script stdin. Trying with /dev/stdin doesn't help since stdin is from the pipe, not the script stdin. $ grep -oh -e "@ref{.*}" *.itely | sort -u | > while read i; do echo $i; read NODE < /dev/stdin; echo $b; break; done @ref{Accidentals} @ref{Align} you culd solve that with arrays: $ cat tt #!/bin/sh # for some reason mapfile doesnt work on pipes, hence the tmpfile grep -oh -e "@ref{.*}" *.itely | sort -u > tmpfile mapfile -t org < tmpfile len=${#org[@]} for (( ix=0; ix < $len; ix++ )) do read NODE printf "%4d: %s %s\n" $ix "${org[ix]}" "$NODE" done $ ./tt | head -5 a d 0: @ref{Accidentals} a d cd g 1: @ref{Align} cd g gv 2: @ref{Aligning lyrics to a melody} gv xcvb rge 3: @ref{Aligning objects} xcvb rge rtdfg gr 4: @ref{Ambitus} rtdfg gr 2 $ you could also do the for loop like: for i in "${org[@]}" do read NODE echo $i $NODE done Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: help with bash script to translate @ref{} items in translated manuals
Frederico Bruni: > Il giorno gio 20 apr 2017 alle 11:22, k...@aspodata.se ha scritto: > > Frederico Bruni: > > ... > >> Enter Documentation/it/notation and run this: > >> > >> #!/bin/bash > >> LIST="$(grep -oh -e @ref{.*} *.itely | sort -u)" > >> for i in $LIST; do > >> echo $i > >> #echo -n "Replace" $i "with the translated node: " > >> #read NODE > >> #if $NODE=""; then exit > >> #else > >> #sed "s|$i|$NODE|g" *.itely > >> #fi > >> done ... > > $ cat tt > > #!/bin/sh > > > > # for some reason mapfile doesnt work on pipes, hence the tmpfile > > grep -oh -e "@ref{.*}" *.itely | sort -u > tmpfile > > mapfile -t org < tmpfile > > > > len=${#org[@]} > > for (( ix=0; ix < $len; ix++ )) > > do > > read NODE > > printf "%4d: %s %s\n" $ix "${org[ix]}" "$NODE" > > done > > Unfortunately this script hangs forever. ... It is expecting something from stdin. You didn't tell us where the replacement data comes from, so I guessed you run your script as cat repl.txt | your_script Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: help with bash script to translate @ref{} items in translated manuals
Federico Bruni: > Il giorno ven 21 apr 2017 alle 7:08, Federico Bruni > ha scritto: > > I guess I'll have to revert to my almost manual replacement I've used > > so far. > > Or I may try a different approach and script a replacement from a file > like: > > @ref{Different editions from one source},@ref{Edizioni diverse da un > unico sorgente} > @ref{Dimensions},@ref{Dimensioni} > @ref{Direction and placement},@ref{Direzione e posizionamento} > > that replace first instance of @ref with the second instance (after the > comma) You already have such an replacement file in Documentation/po/it.po: $ fgrep -C2 'Different editions from one source' Documentation/po/it.po #. @node in Documentation/notation/input.itely #. @subsection in Documentation/notation/input.itely msgid "Different editions from one source" msgstr "" Maybe that could be put to use. I don't know if it is up to speed yet, but have a look at http://po4a.alioth.debian.org/man/man7/po4a.7.php There is some talk about texinfo and gettext in: https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Internationalization-of-Document-Strings.html Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: help with bash script to translate @ref{} items in translated manuals
Federico Bruni: > Il giorno ven 21 apr 2017 alle 7:08, Federico Bruni > ha scritto: > > I guess I'll have to revert to my almost manual replacement I've used > > so far. > > Or I may try a different approach and script a replacement from a file > like: > > @ref{Different editions from one source},@ref{Edizioni diverse da un > unico sorgente} > @ref{Dimensions},@ref{Dimensioni} > @ref{Direction and placement},@ref{Direzione e posizionamento} > > that replace first instance of @ref with the second instance (after the > comma) Well, that is about the same as putting the translation in the po file and running the attached script. Then if and when gettext is working again for doc., as someone said it has been, then you don't have to convert your replacement file to po style. $ read_po.pl Documentation/po/it.po .itely | head File: Documentation/essay/engraving.itely @ref{Music engraving} -> @ref{} @ref{The LilyPond story} -> @ref{} @ref{Engraving details} -> @ref{} @ref{Music fonts} -> @ref{} @ref{Optical spacing} -> @ref{} @ref{Ledger lines} -> @ref{} @ref{Optical sizing} -> @ref{} @ref{Why work so hard?} -> @ref{} @ref{Automated engraving} -> @ref{} $ Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 #!/usr/bin/perl -w use strict; use Data::Dumper; my %file_list; sub read_po() { my $po_file = $ARGV[0]; my @arr; open(FH, $po_file) || die("cannot open $po_file"); my $nxt = [ [], "", "" ]; while () { chomp; s/^\s*//; s/\s*$//; if (m/^$/) { my %file; my @lst; for my $r (@{$$nxt[0]}) { next if ($r =~ m|Documentation/cs/|); if ($r =~ m| in (Documentation/.*\.itely)$|) { $file{$1} = 1; } push @lst, $r; } my @Keys = sort keys %file; if (@Keys) { $$nxt[0] = [ @lst ]; push @arr, $nxt; for my $f (@Keys) { if (!defined($file_list{$f})) { $file_list{$f} = []; } my $r = [ $$nxt[1], $$nxt[2] ]; push @{$file_list{$f}}, $r; } } $nxt = [ [], "", "" ]; next; } if (m/^\#/) { push @{$$nxt[0]}, $_; next; } if (m/^msgid\s*\"(.*)\"$/) { my $str = $1; $$nxt[1] = $str; next; } if (m/^msgstr\s*\"(.*)\"$/) { my $str = $1; $$nxt[2] = $str; next; } if (m/^\"(.*)\"$/) { my $str = $1; if ($$nxt[2] eq "") { $$nxt[1] .= $str; } else { $$nxt[2] .= $str; } next; } warn("unhandled data: <$_>"); } close(FH); @arr; } sub print_arr(@) { my @arr = @_; for my $r (@arr) { print join("\n", @{$$r[0]}), "\n"; print "msgid \"$$r[1]\"\n"; print "msgstr \"$$r[2]\"\n"; print "\n"; } } sub mk_subst(@) { my @arr = @_; #print Dumper(\%file_list); my @k = sort keys %file_list; for my $k (@k) { my @val = @{$file_list{$k}}; print "File: $k\n"; for my $r (@val) { print " \@ref{$$r[0]} -> \@ref{$$r[1]}\n"; } print "\n"; } } sub main() { my @arr = read_po(); #print_arr(@arr); mk_subst(); } main();___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: The \\ construct for simultaneous voices
... > > or when there are lyrics to assign. > What do you mean here? > Do you mean lyrics to assign to the *second voice* (since the first > voice assignment would be automagic)? Try: \version "2.13.0" \score { \new Staff { \time 4/4 \relative g' { g4 << g \\ d >> g2 } } \addlyrics{ a b c } } No voice in the << \\ >> section gets any lyrics here. Regards, /Karl --- Karl HammarAspö Data k...@aspodata.se Lilla Aspö 148 Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: unsafe caching of .fmt files
Hi Han-Wen - neither fmt generation nor any other runtime generation has ever been parallel-safe. Even if I added locking to mktexfmt (I guess you are making use of the dynamic fmt creation), something I am not at all anxious to do, the failed simultaneous runs that would result doesn't sound like a good outcome for you. Instead, I think you need to generate the formats you need before starting the parallelism, either with multiple mktexfmt foo.fmt calls or fmtutil-user (or fmtutil-sys, but if you want ~/.texlive2019 to be used instead of /usr/local/texlive/... or whatever, that sounds like fmtutil-user), depending on your needs. Indeed, in this situation, I also suggest that you explicitly disable any mktex* creation. MKTEXFMT=0; export MKTEXFMT; MKTEXTFM=0; export MKTEXTFM; MKTEXMF=0; export MKTEXMF; MKTEXPK=0; export MKTEXPK Alternative: you could set TEXMFVAR or TEXMFSYSVAR to a per-process directory. But then every TeX run will need to create its own .fmt, which sounds like an awful waste of time. --best, karl.
Re: Solution for including a file only once
Reinhold Kainhofer: ... > In my view there are two different kinds of include uses: > 1) To include package-like .ily files, which define additional functionality. > There many utility functions really might/should be in their own namespace, > but many definitions (and in particular all \header, \paper or \layout > blocks) > need to be at toplevel. I would be interested in conditionally including files with \paper and \header blocks, so can with a command line flag get output for "choirbook" booklets or plain a4 sheets. The common thing with this thread would be the ability to \include thoose blocks. > 2) ... ... > I think it should be as easy and straightforward to use to a non-programmer > as > possible, while allowing more complex use without making easy things harder > than necessary for easy things. Ack. Regards, /Karl --- Karl HammarAspö Data k...@aspodata.se Lilla Aspö 148 Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Why don't we get rid of \chordmode?
David Kastrup: > Graham Percival writes: ... > And what if you see \chordmode { c,4:1/c c g,:1/g c } in the input > (which is basically how you put bass notes in now if you really must)? ... For the simple chords c\maj c\dim c\maj7 etc. could suffice. For more complex chords one could extend the syntax to . Regards, /Karl Hammar - Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Why don't we get rid of \chordmode?
Graham: ... > OTOH, what about doing something like this: > c\maj > c\dim > c\chord #'(1 4 5) > c\chord #'(1 3 5 7 11) I like this. Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Why don't we get rid of \chordmode?
Kieren: > > It's not obvious to me whether > > c\chord #'(1 7) > > should produce "c b" or "c bes". Musically speaking, I'd look at > > the key signature; if it were c major, I would assume it meant > > "c b" since "b" is the seventh note of the scale. > > > > This may be a problem for the numeric syntax. I suppose we could > > define each number as being a perfect, major, or minor interval; > > users can adjust those intervals with + or - as required. > > Or... we could use dodecaphonic intervals, i.e. > > c\chord #'(1 11) is a minor seventh > c\chord #'(1 12) is a major seventh > > Of course, none of these ideas support systems with > other-than-12-tones-per-octave =( I propose we skip the "number" things and go for a local translate, see below last in mail. One could misuse floating poing values: c\chord_float #'(1 6.5) % minor seventh c\chord_float #'(1 7.0) % major seventh To explain that eis == f is doable, but how would one explain that 3.5 == 4 ?? (That flaw was present in my inital proposal ) Rationals: c\chord_rational #'(1 5/4 3/2) % "perfect" 3rd and 5th % replace 5/4 etc. with the proper scheme expression Cents: c\chord_cent #'(0 386 702) % just intonation Or other variants. One could also define a shorthand translating thing, something like (though I'm not shure what syntax to use): "cis\chord_barre " -> // If we are discussing shortcuts to notate music (chordal notation are shortcuts, is it not?), consider the similarity of: <-> d\chord #'(1 3 5) % "parallell" music {d fis a} <-> d\seq #'(1 3 5) % "sequential" music There are two things here: . replacing a note name with a number, eg. "e" -> 3 . naively replacing 3 for the interval third, gives use the enharmonic problem of 3.5 == 4, and what does 7 mean, a minor or major 7th? . using dodecaphonic, cents, retionals or the like somehow misses the "shortcut"-idéa . a local transposition, eg. d\chord... == \translate c d { c\chord... } this would be a "better" \translate, since it would put the music in the "current" octave The chords are easily defined, we don't need any special syntax for that (like \chordmode): chord_major = \relative c { } \translate below does not work since the "d" is not relative the previous music: ... music ... \translate c d \chord_major ... music ... Could something like this (or some other syntax) be useful: ... music ... d\tr\chord_major % --> in the current octave ... music ... Going this route, one could define whatever complex chord expressable in an ordinary <...> Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Aligning single systems?
David: > Hi, for theoretical work it often is necessary to write several short > systems in one line, interspersed with text. > > I don't manage to have > a) new systems continue aligned to the previous system in a line, like > when doing ... > b) to have interspersed text appear at useful height with relation to > the surrounding score. > > An additional problem is when using lilypond-book: there is no baseline > info for the included images, leading to additional nuisances when > images are to be placed in-line. With latex, I've done (see [1], for my tries): \newcommand{\INL}[1]{\raisebox{-0.8ex}{\includegraphics[height=3ex]{#1}}} ... The limit of the \emph{Medium} register in all female voices varies from \INL{op31_fig4.eps}; as a general rule, however, \INL{op31_fig5.eps} should be looked as the highest note. ... But I have to hand-tune the \raisebox and the height. > Would it be possible to have some Staff property, say, baseline-height > that specifies a Staff line to be aligned with the baseline of > surrounding constructs? If it were #f, we'd get the old behavior, and > of course only one Staff's baseline-height could be heeded within a > StaffGroup. This might not be easy to make work in lilypond-book, but > at least for interspersed text and staffs all within Lilypond, it might > help. Good idéa! What I would need is the total height, and the amount of space below the staff, The values are available in some form, since the notation manual (for v2.13), sec. "4.6.1 Displaying spacing" demonstrates \paper { annotate-spacing = ##t }, where one can find numbers for bottom-of-extent and extent-estimate. As a workaround one could, if possible, set thoose two heights (with margins) to fixed values, then you'd only have to hand-tune it once. Regards, /Karl Hammar [1] git://turkos.aspodata.se/musik.git ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Aligning single systems?
James Bailey: > On 07.05.2010, at 21:53, David Kastrup wrote: > > "Boris Shingarov" writes: > >>> for theoretical work it often is necessary to write several short > >>> systems in one line, interspersed with text. ... > > \markuplines { > > \justified-lines { > > some text > > \score { e''' \layout {} } > > more text > > \score { c \layout {} } > > } > > } > > Nothing lines up. Text is in the sky, music systems are skewed. > While not completely ideal, frequently, markup has to be aligned. So > the original snippet: [Bailey: attachment, above with \vcenter added] One can add "placeholders" to define vertical extent (how do one make it zero length?): \version "2.13.0" \paper { indent = 0\mm } range = { \hideNotes 4 \unHideNotes } \markuplines { \justified-lines { "some text" \vcenter \score { { \range e''' } \layout { } } "more text" \vcenter \score { { \range c } \layout { } } } } Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Critical issues
Graham complaind about 10 critical issues in the last lilypond report. *** Issue 815: Enhancement: AJAX-powered search auto-completion for the online documentation Why is this a critical issue for the lilypond release? *** Issue 1080: Regression: bar lines in double bar are positioned too close together "pnorcks" mentions commit 27a4d9354effb09c696925881ec4df007da8a0db as a possible cause. Reverting part of that commit: diff --git a/lily/bar-line.cc b/lily/bar-line.cc index d3f21e5..85b2e52 100644 --- a/lily/bar-line.cc +++ b/lily/bar-line.cc @@ -196,11 +196,9 @@ Bar_line::compound_barline (Grob *me, string str, Real h, /* should align to other side? this never appears on the system-start? + */ m.add_at_edge (X_AXIS, RIGHT, thin, 0); m.add_at_edge (X_AXIS, RIGHT, thin, thinkern); - */ - m.add_at_edge (X_AXIS, LEFT, thin, thinkern / 2); - m.add_at_edge (X_AXIS, RIGHT, thin, thinkern / 2); } else if (str.find ("S") != NPOS || str == "|._.|") { gives me the attached grace-start result which resembles the 2.13.17 result presented in the bug tracker. What should we do about it? *** Issue 989: ensure that no information is only in the regtests Though Graham complain about this issue in the "report", this seems to be taken by Valentin. He has a list at http://wiki.lilynet.net/index.php/Regtests What to do about it? Shall we discuss individual items on the list? *** Issue 915: Multi-measure rests dependent on prefatory matter in other staves There seems to be a fix: http://codereview.appspot.com/931041/show Do you need help testing the fix? *** Issue 1031: constantly-changing input/regression/rest-collision-beam-note.ly If it is changes every time, what is the correct output? grace-start.pdf Description: grace-start.pdf ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Where is the bug tracker?
Wouldn't it be nice to have a link to the bug tracker from http://lilypond.org/devel/ Regards /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Critical issues
Issue 881: Arpeggios may collide with laissezVibrer ties According to the bug tracker, v2.11.19's output is what to aim for. Neil gave the fix: (define-public (laissez-vibrer::print grob) (ly:tie::print grob)) (then add laissez-vibrer::print to pure-print-callbacks) But he has not done a regtest check. /// How do one do a regtest? I remember there were discussion about this a while ago, but doing a quick search (regtest check lilypond) did not turn up anything useful, except [1] and [2]. [1] http://lilypond.org/doc/v2.13/Documentation/contributor/checking-and-verifying-issues [2] http://lilypond.org/test/ Perhaps it should be documented, maybe it already are. Doing "info ./Documentation/out/lilypond-contributor.info-1" I find: 8.1 Introduction to regression tests The regression tests are automatically compiled using special `make' targets. The output of the regression tests is also automatically So, what targets? The targets test* seems to have something with the regression directory to do, but I don't understand how to do a comparision to a known good set. . Do we have a known good set? . If so, how do I compare current output with it? Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Critical issues
Issue 815: Enhancement: AJAX-powered search auto-completion for the online documentation Issue 1038: more technical website items Theese two seem to be related to the web site, not to the released software. I can understand that it can be critical for the official site, but how can that be critical for the release ? Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Critical issues
Graham: > On Thu, May 13, 2010 at 10:06:45AM +0200, Karl Hammar wrote: > > How do one do a regtest? > > Regression check; by compiling stuff. > > > 8.1 Introduction to regression tests > > > > The regression tests are automatically compiled using special `make' > > targets. The output of the regression tests is also automatically > > > > So, what targets? > > They might be "make baseline-test", followed by applying a patch, > followed by "make check", but I'm not certain. It's explained > somewhere in Contributing 2. Ok, found something in "3.6.3 Testing LilyPond" (though nothing in the chapter on regression tests). * Initial test: make [-jX] make test-baseline make [-jX CPU_COUNT=X] check * Edit/compile/test cycle: _## edit source files, then..._ make clean_## only if needed (see below)_ make [-jX]_## only if needed (see below)_ make test-redo_## redo files differing from baseline_ make [-jX CPU_COUNT=X] check _## CPU_COUNT here?_ Hmm, the make check seems redundant since test-redo already does it: $ find . -name GNUmakefile | xargs grep -A 10 test-redo ... ./GNUmakefile:test-redo: ./GNUmakefile- for a in `cat $(RESULT_DIR)/changed.txt` ; do \ ./GNUmakefile- echo removing $$a* ; \ ./GNUmakefile- rm -f $$a* ;\ ./GNUmakefile- done ./GNUmakefile- $(MAKE) check ... ./scripts/build/out/output-distance seems to be the workhorse of the regression tests. I cannot find any useful documentation of it with: find . -type f | xargs grep output-distance except the source code itself. But if I already have a known good result from the code tracker, how do I compare it with the new result? Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Critical issues
Carl Sorensen: > On 5/13/10 1:11 PM, "Karl Hammar" wrote: ... > > But if I already have a known good result from the code tracker, > > how do I compare it with the new result? > > What do you mean by "if I already have a known good result from the code > tracker"? In http://code.google.com/p/lilypond/issues/detail?id=1080 there is a grace-start-good.png . > make test-baseline > > followed by > > make check ... I understand that I could possible go back to 2.13.17, do the make's, jump to current git and make test-redo. But if the "old good" png is already available, then I see the possibility to skip the "go back to..." step. Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Critical issues
Carl Sorensen: > On 5/13/10 2:08 PM, "Karl Hammar" wrote: ... > > In http://code.google.com/p/lilypond/issues/detail?id=1080 there is a > > grace-start-good.png . ... > IIUC, Neil's patch was already demonstrated to meet issue 1. But issue 2 > was not yet checked. Are you mixing this up with http://code.google.com/p/lilypond/issues/detail?id=881 Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Critical issues
Carl Sorensen: > On 5/13/10 1:11 PM, "Karl Hammar" wrote: ... > make test-baseline ... > make check ... Ok, done that. With the guidance from http://code.google.com/p/lilypond/issues/detail?id=881: I can't explain why, but making the print function pure by redefining ly:tie::print just for LaissezVibrerTie seems to fix this (I haven't done a regtest check, so it might end up breaking something else): (define-public (laissez-vibrer::print grob) (ly:tie::print grob)) (then add laissez-vibrer::print to pure-print-callbacks) I tried this: diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 176debd..35186f8 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -2345,8 +2345,12 @@ (interval-union '(0 . 0) (cons smaller larger))) '(0 . 0 +(define-public (laissez-vibrer::print grob) + (ly:tie::print grob)) + (define pure-print-callbacks (list + laissez-vibrer::print fret-board::calc-stencil note-head::brew-ez-stencil print-circled-text-callback $ make test-redo > out/test-results/index.html > > that shows the results of the regression tests. ... I got (except the test-output-distance.ly) an distance of 0300030 and "HEAD is: 22d889f4d27469864c31db81445e9de49774ae23" to the right and left plus the git-diff to the rigth. So I assume it was the wrong patch try. Does anybody have Neil's proposed fix available ? Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Issue 881 Arpeggios may collide with laissezVibrer ties (was Re: Critical issues)
Carl Sorensen: > On 5/14/10 7:01 AM, "Karl Hammar" wrote: > > Carl Sorensen: ... > You also need to redefine the 'stencil for laissez-vibrez tie in > scm/define-grobs.scm. ... I can help with doning the regression test. Second-guessing what Niels patch was about was not included in that offer. Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Issue 881 Arpeggios may collide with laissezVibrer ties (was Re: Critical issues)
Carl Sorensen: ... > I've posted a patch on Rietveld. Can you do the > regression test? > http://codereview.appspot.com/1195044 After a make test-redo I get: . the "mandatory" output-distance. . a diff of tree.gittext, showing Carls patch . 314 below threshold . 2062 unchanged >From this I assume Carls patch does not affect any present regression test. *** But I also notice that there are no test for the present problem. Perhaps one should be added? The one presented in the report[1] could be a candidate, comments? \version "2.12.1" % regression: 2.10.33 and 2.8.8 are ok { \laissezVibrer \arpeggio \laissezVibrer \arpeggio \mark "never" \laissezVibrer \arpeggio \laissezVibrer \arpeggio \bar "||" \laissezVibrer \arpeggio \laissezVibrer \arpeggio \mark "sometimes" \laissezVibrer \arpeggio \laissezVibrer \arpeggio \bar "||" \laissezVibrer \arpeggio \laissezVibrer \arpeggio \mark "always" \laissezVibrer \arpeggio \laissezVibrer \arpeggio } *** I also note that input/regression/laissez-vibrer-ties.ly has a bar check failure: \relative c' { \laissezVibrer r4 \laissezVibrer r \laissezVibrer r 4.\laissezVibrer r % here we get a bar check failure In Documentation/snippets/laissez-vibrer-ties.ly we have a r8 at that point, otherwise thoose two are basically the same. What was the point of having a bar check failure in the regression test? Regards, /Karl Hammar [1] http://code.google.com/p/lilypond/issues/detail?id=881 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Issue 915 Multi-measure rests dependent on prefatory matter in other staves
Patching with [3] (see [2]) still gives something (see attachment) more like rest-2.12.png in [1], i.e. it was not fixed. The comment for the fix: Allow user override of left/right spacing of full-bar rests relative to barlines or prefatory material. implies that one has to do an override. The comment gives no help for what override to use. Since this regression is considered "critical", should not the default be for 2.11.27 behaviour instead of 2.11.28 or later ? Regards, /Karl Hammar [1] http://code.google.com/p/lilypond/issues/detail?id=915 [2] http://codereview.appspot.com/931041/show [3] http://codereview.appspot.com/download/issue931041_1.diff 3.pdf Description: 3.pdf ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Issue 915 Multi-measure rests dependent on prefatory matter in other staves
Neil Puttock: > On 15 May 2010 09:58, Karl Hammar wrote: > > Patching with [3] (see [2]) still gives something (see attachment) > > more like rest-2.12.png in [1], i.e. it was not fixed. > > You must've done something wrong when applying the patch/rebuilding. > > I wouldn't post a patch on Rietveld without first confirming the > regression is fixed. I don't think so either, you are more than welcome to point out what I did wrong: git-pull wget http://codereview.appspot.com/download/issue931041_1.diff patch -p1 < issue931041_1.diff --dry-run patch -p1 < issue931041_1.diff make > log 2>&1; make test-redo >> log 2>&1 > > Â Allow user override of left/right spacing of full-bar rests relative > > Â to barlines or prefatory material. > > > > implies that one has to do an override. The comment gives no help for > > what override to use. > > The patched files should make it clear: > > + (spacing-pair ,pair? "A pair of booleans which set the spacing for a > +multi-measure rest relative to its left and right @code{BreakAlignment}s. > +If true, the rest is spaced to the bar line, ignoring prefatory items such > +as clefs and time signatures; if false, it is spaced relative to the > +BreakAlignment, which includes prefatory items. ") > > + (spacing-pair . (#f . #t)) > > ^ default value for MultiMeasureRest Yes, I can see the lines (last in the patch) when you point the out for me. But, nevertheless I got the result I got. Also, it would be much easier to look throuht the patch if it did not contain so many whitespace changes. In the first 100lines, I see: +bool +Bar_line::non_empty_barline (Grob *me) +{ + return has_interface (me) && !me->extent (me, X_AXIS).is_empty (); +} + and the rest is whitespace changes. That makes the reader tired. Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Issue 915 Multi-measure rests dependent on prefatory matter in other staves
Neil Puttock: > On 15 May 2010 14:37, Karl Hammar wrote: > > git-pull > > wget http://codereview.appspot.com/download/issue931041_1.diff > > patch -p1 < issue931041_1.diff --dry-run > > patch -p1 < issue931041_1.diff > > make > log 2>&1; make test-redo >> log 2>&1 > > I very rarely use `make test-redo'. The difference between test-redo and check is small: $ grep -A 6 ^test-redo: GNUmakefile test-redo: for a in `cat $(RESULT_DIR)/changed.txt` ; do \ echo removing $$a* ; \ rm -f $$a* ;\ done $(MAKE) check $ grep RESULT_DIR GNUmakefile | head -1 RESULT_DIR=$(top-build-dir)/out/test-results $ cat out/test-results/changed.txt; echo # missing final newline input/regression/out-test//test-output-distance input/regression/out-test//rest-collision-beam-note input/regression/out-test//tree $ Does it matter, if not, why is in the contributor manual ? > I basically do what Carl outlined in the other thread: > > make test-baseline > > git apply issue931041_1.diff > > make check The contributor manual says (3.6.3.1): * Initial test: make [-jX] make test-baseline make [-jX CPU_COUNT=X] check * Edit/compile/test cycle: _## edit source files, then..._ make clean_## only if needed (see below)_ make [-jX]_## only if needed (see below)_ make test-redo_## redo files differing from baseline_ make [-jX CPU_COUNT=X] check _## CPU_COUNT here?_ * Reset: make test-clean It has an "make check" after the test-baseline which you don't have, is it redundant? git-apply and patch -p1 produces the same result, so that is not the cause of our different output: $ cd .. $ cp -a lilypond/ lilypond.b $ cd lilypond.b/ $ git-apply -v issue931041_1.diff Applied patch lily/bar-line.cc cleanly. Applied patch lily/include/bar-line.hh cleanly. Applied patch lily/include/note-spacing.hh cleanly. Applied patch lily/include/paper-column.hh cleanly. Applied patch lily/multi-measure-rest.cc cleanly. Applied patch lily/note-spacing.cc cleanly. Applied patch lily/paper-column.cc cleanly. Applied patch scm/define-grob-properties.scm cleanly. Applied patch scm/define-grobs.scm cleanly. $ cd ../lilypond $ patch -p1 < issue931041_1.diff patching file lily/bar-line.cc patching file lily/include/bar-line.hh patching file lily/include/note-spacing.hh patching file lily/include/paper-column.hh patching file lily/multi-measure-rest.cc patching file lily/note-spacing.cc patching file lily/paper-column.cc patching file scm/define-grob-properties.scm patching file scm/define-grobs.scm $ cd .. $ diff -Naur lilypond* $ > > Also, it would be much easier to look throuht the patch if it did not > > contain so many whitespace changes. In the first 100lines, I see: > > Why would you want to look at the bare diff? Isn't the diff a complete statement of what you want to change? Also you *did* cite the diff. > The whole point of > uploading the patchset to Rietveld is to make it easier to see the > changes in each file. Well, it might help someone else, but not me -- I have mail and git. Putting things on web sites and getting things from them makes it take more time. *** If I take it from the beginning: $ git-log | head -1 commit 22d889f4d27469864c31db81445e9de49774ae23 $ git-status # On branch master # Untracked files: # (use "git add ..." to include in what will be committed) # # issue1195044_1_2.diff # issue1195044_1_3.diff # issue931041_1.diff # log nothing added to commit but untracked files present (use "git add" to track) $ make clean > /dev/null 2>/dev/null $ make > log 2>&1 $ make test-baseline > log1 2>&1 Processing ./snippet-map-1678077630 ... Processing 41/lily-67666737 Failed files: () $ make check > log2 2>&1 Processing ./snippet-map-1678077630 ... Processing 90/lily-015675ea Failed files: () $ patch -p1 < issue931041_1.diff $ make > log3 2>&1 $ make test-redo > log4 2>&1 Processing ./snippet-map--1837524129 ... Failed files: () $ fgrep ' $ # above file attached $ make check > log5 2>&1 Processing ./snippet-map-170730255 ... Failed files: () $ # the same output is produced $ ls -1 input/regression/out-test/multi-measure-rest-multi-staff-center* input/regression/out-test/multi-measure-rest-multi-staff-center-1.eps input/regression/out-test/multi-measure-rest-multi-staff-center-1.signature input/regression/out-test/multi-measure-rest-multi-staff-center-systems.count input/regression/out-test/multi-measure-rest-multi-staff-center-systems.tex input/regression/out-test/multi-measure-rest-multi-staff-center-systems.texi input/regression/out-
Re: Issue 915 Multi-measure rests dependent on prefatory matter in other staves
Karl Hammar: > Neil Puttock: ... > > I basically do what Carl outlined in the other thread: > > > > make test-baseline > > > > git apply issue931041_1.diff > > > > make check > > The contributor manual says (3.6.3.1): > >* Initial test: > > make [-jX] > make test-baseline > make [-jX CPU_COUNT=X] check > >* Edit/compile/test cycle: > > _## edit source files, then..._ > > make clean_## only if needed (see below)_ > make [-jX]_## only if needed (see below)_ > make test-redo_## redo files differing from > baseline_ > make [-jX CPU_COUNT=X] check _## CPU_COUNT here?_ > >* Reset: > > make test-clean After yet another run: make clean > /dev/null patch -p1 < issue931041_1.diff make > log 2>&1 make check > log 2>&1 I get the "expected" output (i.e. Neil's output). Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
contributors manual
>From the debacle with "Issue 915" I have learned that . "make test-redo" does not catch regression due to program changes . rest-collision-beam-note.ly changes is more or less expected . section 8 "Regression tests" is related to section 3.6.3.1 Does "make check" after test-baseline serve any purpose ? What is the purpose for "test-redo", is it there to test changes in the regression test files themselves, and only that ? Regards, /Karl Hammar ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Issue 881 Arpeggios may collide with laissezVibrer ties (was Re: Critical issues)
- This is a multipart MIME message. Karl Hammar: > Carl Sorensen: > ... > > I've posted a patch on Rietveld. Can you do the > > regression test? > > http://codereview.appspot.com/1195044 > > After a make test-redo I get: > > . the "mandatory" output-distance. > . a diff of tree.gittext, showing Carls patch > . 314 below threshold > . 2062 unchanged > > From this I assume Carls patch does not affect any present regression > test. Sorry to bring this up again, but this conclusion is still unproven, since the test was done with "test-redo". As I have found out in the thread for the issue 915, "test-redo" does not test the things we wanted to test. *** $ git-status # On branch master # Untracked files: # (use "git add ..." to include in what will be committed) # # issue1195044_1_2.diff # issue1195044_1_3.diff # issue931041_1.diff nothing added to commit but untracked files present (use "git add" to track) $ git-log | head -1 commit 22d889f4d27469864c31db81445e9de49774ae23 $ cat issue1195044_1_[23].diff | patch -p1 patching file scm/define-grobs.scm patching file scm/output-lib.scm $ make check > log 2>&1 ... And I get a distance of 18.406667 in the attached output. The difference seems to be because the c and the b are horizontally closer to each other. Regards, /Karl Hammar <><>___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Issue 881 Arpeggios may collide with laissezVibrer ties (was Re: Critical issues)
And here comes the test-baseline file. Regards, /Karl Hammar <>___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: sustainable development in LilyPond
Graham: ... > http://percival-music.ca/blog/2010-08-01-sustainable-development.html ... Thank you for the slides, I liked them. Regards, /Karl Hammar - Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: critical issues
Graham: > On Sat, Jan 01, 2011 at 09:10:49AM +0100, Werner LEMBERG wrote: ... > > But maybe there is a group of LilyPond philanthropists who can afford > > this and are willing to do so... > I'm not optimistic about that; I think a more realistic > opportunity would be to get some grant money from some artistic > organization. ... > > Of course, writing artistic and research grants is a non-trivial > amount of work, and it's hardly guaranteed to have any results. > But I think that with the right angle -- be that "collaborative > folk music archival", or "high-quality, specialized music > notation", or "educational software for cheap 3rd-world donated > computers", I could imagine getting a grant. In Uppsala there is one person at the music institution who is interested in Schenker analysis. Could that be a lead? Regards, /Karl Hammar - Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Suggestions for participating institutions?
Trevor Daniels: > Han-Wen Nienhuys wrote Tuesday, March 26, 2013 10:52 AM > > On Tue, Mar 26, 2013 at 9:52 AM, David Kastrup wrote: > > > >> I met a former colleague in the bus to Chemnitz, and he is at least > >> knowledgeable about EU research programmes. Do people here have ideas > >> about possible institutions who could be made to participate? I think > > > > Take in mind that EU research programmes come with an incredible > > amount of burocracy and require both academic and industry partners, > > the more the merrier. The projects that get funded are buzzword > > compliant, but often nobody knows what they set out to do, except > > divert EU money into the partnering institutions. Have a look at > > Indeed. When I was involved in bidding for EU research funding in > what now seems to be a previous life the process involved many meetings > with potential and later actual partners, who have to come from, I believe > at least 3 separate countries, plus presentations in Brussels, all involving > lots of international travel. And at the end of that expense of time, effort > and money we were unsuccessful. This is not like bidding for an Arts > grant. I think we can meet the 3 seperate countries requirement. I would like to try to set up something here with possible the University in Uppsala and/or the Church. I don't know if I qualify as an "industry" (note. eu defines an industry as something that manuf. phycical goods, no I don't have the ref. handy) partner, tought I have a company that have been involved in typesetting for pay. And I don't know if I can get any interest from the Univ. (they used Sibelius a few years ago) or the Church. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Moving away from make
David Kastrup: ... > The main problem I see is that dependencies don't work out, and that > presumably is mostly because the temporary/work files of lilypond-book > are not in the rules and get stomped over by parallel make. ... I have given up on lilypond-book and make. Instead I've made two scripts depend_ly and depen_tex [1] which finds out what depends on what (think gcc -M), and make [2] takes care of the rest. Would it be good to make lilypond print out a files dependancies like gcc? Regards, /Karl Hammar [1] http://turkos.aspodata.se/git/musik/bin/ [2] http://turkos.aspodata.se/git/musik/include/Makefile --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
ice-9/psyntax.scm:1417:32: Syntax error:
Do anyone have a clue what to do about this error: $ git describe release/2.15.33-1-4-gb04051d $ ./autogen.sh > http://turkos.aspodata.se/tmp/log.autogen.sh $ make all > http://turkos.aspodata.se/tmp/log.make 2>&1 $ tail log.make ;;; compiling /var/home/karl/Net/git/lilypond/out/share/lilypond/current/scm/part-combiner.scm ;;; WARNING: compilation of /var/home/karl/Net/git/lilypond/out/share/lilypond/current/scm/part-combiner.scm failed: ;;; ERROR: Syntax error: ;;; unknown location: source expression failed to match any pattern in form when ice-9/psyntax.scm:1417:32: In procedure expand-macro: ice-9/psyntax.scm:1417:32: Syntax error: unknown location: source expression failed to match any pattern in form when make[1]: *** [out/internals.texi] Error 1 make[1]: Leaving directory `/var/home/karl/Net/git/lilypond/Documentation' make: *** [all] Error 2 $ Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: ice-9/psyntax.scm:1417:32: Syntax error:
David: > k...@aspodata.se (Karl Hammar) writes: > > Do anyone have a clue what to do about this error: ... > > $ ./autogen.sh > http://turkos.aspodata.se/tmp/log.autogen.sh ... > Guilev2 is not supported yet. What does autoconf tell? $ grep -iC2 guile log.autogen.sh checking for working metafont mode... ljfour checking for kpsewhich... kpsewhich checking for guile-config... guile-config checking guile-config version... 2.0.5 checking guile compile flags... -pthread -I/usr/include/guile/2.0 checking guile link flags... -lguile-2.0 -lgc checking libguile.h usability... yes checking libguile.h presence... yes checking for libguile.h... yes checking for scm_boot_guile in -lguile... no checking for scm_boot_guile... yes checking for scm_t_hash_fold_fn... yes checking for scm_t_hash_handle_fn... yes checking for scm_t_subr... yes checking for usable C++ demangler... yes checking GUILE rational bugfix... ok checking for python-config... python-config checking Python.h usability... yes -- checking for -windres... no checking for windres... no checking for guile... guile checking for guile... /usr/bin/guile checking for perl... perl checking for perl... /usr/local/bin/perl $ Ok, I'll try to downgrade guile then, thanks. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Black mensural notation
Lukas: > Hi, I'm quite new to Lilypond programming, but I thought I'd jump in at what > seemed to me to be pretty much the deep end, and try if I could get black > mensural notation implemented. Here's what I've come up with so far: > http://lukas-pietsch.de/Music/blackmensural.ly (source file) > http://lukas-pietsch.de/Music/blackmensural.pdf (doc) > > It's all just scheme functions and embedded postscript, and works for me under > the current stable 2.12.3. > > The biggest stumbling block turned out to be black ligatures, which I found no > other way of doing than rewriting from scratch in a rather hackish way, > sidestepping the normal ligature engraver completely; and horizontal spacing, > for which I had to figure out some rather ugly workarounds (probably far from > optimal). > > If anybody finds it useful, please feel free to use or modify. On line 22 in the ly-file: %% Accidentals are valid only once (same as Shouldn't the accidental be valid for the next note and any same repeted note, this has bothered me with the current white mesural support. E.g. if you say "bes bes bes", it should be only one b-flat sign? And the b-flat sign could be displaced horisontally to the left as in gregorian chant? The rests looks a little thick in section 1.4 in the pdf. Wery nice, I'm very happy to see this!!! Regards, /Karl Hammar - Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Black mensural notation
James Lowe: ... > Lukas (although for some reason I am getting bounces from your email address > so I hope you are reading this on the lists)! Lukas cannot do anything about this except changing mail provider. The mailing list should be fine. You can do something by making sure the sending mailserver ip-number and dns name points back to each other, ask your mail- and dnsadmin. > Is anyone else getting > > > 10.mx.freenet.de rejected your message to the following e-mail addresses: > > Lukas Pietsch (lukas.piet...@freenet.de)<mailto:lukas.piet...@freenet.de> > > 10.mx.freenet.de gave this error: > inconsistent or no DNS PTR record for 173.221.96.141 (see RFC 1912 2.1) Yes, freenet.de only accepts mail from mail-servers with a valid reverse pointer. If I like to find out who 172.221.96.141 is, I can do: $ host -t ptr 173.221.96.141 141.96.221.173.in-addr.arpa domain name pointer cas-ftl1.datacore.com. $ But cas-ftl1.datacore.com doesn't poin back to the same number: $ host cas-ftl1.datacore.com. cas-ftl1.datacore.com has address 205.237.192.88 $ Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Openoffice import?
David: > Offlist http://www.haumacher.de/svg-import/> has been suggested to > me. The JAR file mentioned in there works for converting lilypond-book > images placed into PDF, extracted with preview.sty, converted with > pdf2svg to SVG to .odg files (OpenOffice Draw Graphics?) as OLE links > into an OpenOffice document from where they will export to scalable PDF > again. So there is a reasonable hope they might also export to scalable > DOC contents. ... I found http://sk1project.org/modules.php?name=Products&product=uniconvertor which claims to be able to do eps -> svg, can that be of any help... Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GOP-PROP 1: python formatting
Graham: > (this proposal will be rushed because nobody will argue against > it. Initial discussion 6 June, summary and tentative decision 8 > June, implementation 10 June) Having set a policy about policy discussions and then breaking it the first thing you do is not a good policy. If there is no rush, don't break the rules. On the contrary, how can I feel confidence in the rules if they are beeing broken. > Proposal: letâs follow PEP-8. > http://www.python.org/dev/peps/pep-0008/ > > * use 4 spaces per indentation level > * never max tabs and spaces In the code I presume, in strings this wouldn't apply. > * Code indented with a mixture of tabs and spaces should be > converted to using spaces exclusively Presenting rules without rationales, gives no ground for decisions. One could the feeling that this is pure nonsense. If you really care about this, provide a pretty printer instead, and stipulate that all code should go through that. I propose instead: . Don't ever provide patches whith white space changes (in the code) unless the patch is only about white space changes Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GOP-PROP 1: python formatting
Graham: > On Mon, Jun 06, 2011 at 10:58:11AM +0200, Karl Hammar wrote: > > Graham: > > > (this proposal will be rushed because nobody will argue against > > > it. Initial discussion 6 June, summary and tentative decision 8 > > > June, implementation 10 June) > > Having set a policy about policy discussions and then breaking it > > the first thing you do is not a good policy. ... > I felt a bit of a rush because the mix of indentation is delaying > some much-needed improvements to our build system, but I agree ... Well then, say so. I wouldn't argue against that. ... > > Presenting rules without rationales, gives no ground for decisions. > > One could the feeling that this is pure nonsense. If you really > > care about this, provide a pretty printer instead, and stipulate > > that all code should go through that. > I am not aware of any pretty printers for python code -- remember A quick search did not turn up anything useful either, well, sorry for that then. For the simple case of removing tabs, "col -b -x" could be one. Manually finding/expanding tabs is a pain. > that unlike C++ or scheme, indentation in python is the way that > one indicates code blocks. (this makes mixing tabs and spaces > particularly horrible!) ... There is your rationale. There is a check the python code should pass "python -tt", maybe it could be run as part of some make process... Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: No more releases: savannah sometimes does not like git fetch --depth
Graham: ... > mkdir new-lilypond-dir > cd new-lilypond-dir > git init > git config core.bare false > git remote add -t master origin git://git.sv.gnu.org/lilypond.git > git fetch --depth 1 > > fails every time. Until this is fixed, > *** I CANNOT MAKE ANY MORE LILYPOND RELEASES. *** ... Works here (turkos.aspodata.se): $ mkdir new-lilypond-dir $ cd new-lilypond-dir $ git init Initialized empty Git repository in /var/home/karl/new-lilypond-dir/.git/ $ git config core.bare false $ git remote add -t master origin git://git.sv.gnu.org/lilypond.git $ git fetch --depth 1 remote: Counting objects: 4236, done. remote: Compressing objects: 100% (4031/4031), done. remote: Total 4236 (delta 643), reused 1669 (delta 191) Receiving objects: 100% (4236/4236), 15.06 MiB | 206 KiB/s, done. Resolving deltas: 100% (643/643), done. >From git://git.sv.gnu.org/lilypond * [new branch] master -> origin/master $ Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: No more releases: savannah sometimes does not like git fetch --depth
Trevor: > I've attached an email which explains a similar problem ... Path-mtu-discovery is described in rfc-1191 and some problems with it in rfc-2923. The symtoms described in is matches "black hole" in rfc-2923. It should be wholly agnostic to the "git fetch --depth 1" vs. "git clone" choise. The "black hole" problem happens only for large packets. ** If it is the "black hole": The best fix is to correct your router, setting the mtu in the router might be a solution for that, but your router should return a proper icmp error response (ICMP Destination Unreachable messages with a code meaning "fragmentation needed and DF set") if the packet is too large. Make sure the router and your host don't filter out thoose icmp packets. /// The second best is to send smaller packets from your host going through that route. This can be set with route del default gw route add default gw mss where mss = maximum segment size. A good first try is MTU - 80, see rfc-879 for details. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GOP-PROP 3 - C++ formatting (probable decision)
Graham: ... > ** Eliminate tabs > > I'm going to make the bold step of assuming that we will eliminate > tabs in all C++ files. ... That implies that tabs in strings should be replaced with \t, is that what you want? Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Postscript printer errors with rounded barlines?
Han-Wen Nienhuys: ... > Werner, can you have a look at http://codereview.appspot.com/4819041 ? /draw_round_box % width height x y blot { - setlinewidth % w h x y - 0 setlinecap - 1 setlinejoin +dup + 0.0 gt { + setlinewidth % w h x y + 0 setlinecap + 1 setlinejoin + There is no blot on the stack below (as indicated by the comment), it was swallowed by setlinewidth. + rmoveto % b w h + currentpoint % b w h x1 y1 + 4 2 roll % b x1 y1 w h + 4 copy + rectfill + rectstroke + } { + pop % w h x y + rmoveto % w h + currentpoint % w h x1 y1 + 4 2 roll % x1 y1 w h + rectfill + } ifelse +} bind def You don't seem to use this, why defining it? +/draw_box % width height x y +{ rmoveto % w h currentpoint % w h x1 y1 4 2 roll % x1 y1 w h 4 copy rectfill - rectstroke } bind def Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Postscript printer errors with rounded barlines?
Han-Wen Nienhuys: > On Thu, Jul 21, 2011 at 8:11 AM, Karl Hammar wrote: > > Han-Wen Nienhuys: > >> Werner, can you have a look at http://codereview.appspot.com/4819041 ? > > There is no blot on the stack below (as indicated by the comment), > there is; the dup puts it on the stack. The comment indicate the > state after the call. /draw_round_box % width height x y blot { w h x y b dup w h x y b b 0.0 gt w h x y b a_bool % the a_bool it consumed by the ifelse below { w h x y b setlinewidth % w h x y w h x y 0 setlinecap 1 setlinejoin w h x y rmoveto % b w h w h currentpoint % b w h x1 y1 4 2 roll % b x1 y1 w h 4 copy rectfill rectstroke } { pop % w h x y rmoveto % w h currentpoint % w h x1 y1 4 2 roll % x1 y1 w h rectfill } ifelse } bind def After "dup" there is two "blot"s, "gt" consumes one and "setlinewidth" the other. /// Also if there were a "blot" at "rmoveto" time due to a "dup", it would be at top of stack, not below "w h" as indicated by the comment. /// If it would behave as the comment indicate, then w h x y 0draw_round_box => - w h x y blot draw_round_box => blot e.i. it would leave a lone "blot" at the top of the stack if it's > 0. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Postscript printer errors with rounded barlines?
Han-Wen Nienhuys: > On Thu, Jul 21, 2011 at 12:31 PM, Karl Hammar wrote: ... > > After "dup" there is two "blot"s, "gt" consumes one and "setlinewidth" > > the other. > > I'm sorry - I misunderstood; I thought you saw a problem with the code > rather than the comments. No problem. I see no problem with the code, it was just the comment that didn't match the code. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Comand token too long?
Francisco Vila: > 2011/8/13 Francisco Vila : > > Hello, does anybody what this error means? > > > > cd Documentation/ > > cd ./out-www; texi2pdf -I ./out-www -I ../out -I .. -I .. --quiet > > notation.texi > > egrep: Invalid range end > > This is caused by line 1713 of /usr/bin/texi2dvi (GNU Texinfo 4.13) > 1.135 in my system, > > # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), > # prepend `./' in order to avoid that the tools take it as an option. > echo "$command_line_filename" | $EGREP '^(/|[A-z]:/)' >&6 \ > || command_line_filename="./$command_line_filename" > > and [A-z] is an invalid range. Works here: $ echo '/usr/' | egrep '^(/|[A-z]:/)' /usr/ $ echo 'B:/' | egrep '^(/|[A-z]:/)' B:/ $ echo 'z:/' | egrep '^(/|[A-z]:/)' z:/ $ echo 'bin/' | egrep '^(/|[A-z]:/)' $ egrep --version | head -1 GNU grep 2.6.3 $ echo $LANG C $ [A-z] is a valid range in the C locale. Maybe you have a locale with a sorting order where z comes before A. Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Comand token too long?
Reinhold Kainhofer: > Am Sunday, 14. August 2011, 03:36:05 schrieb Karl Hammar: > > Works here: > Doesn't work here on a German Kubuntu system: ... > > $ echo $LANG > > C > $ echo $LANG > de_AT.UTF-8 $ LANG=de_AT.UTF-8 $ echo 'z:/' | egrep '^(/|[A-z]:/)' egrep: Das Ende des angegebenen Intervalls ist nicht gültig $ echo 'z:/' | egrep '^(/|[A-Za-z]:/)' z:/ $ export LC_ALL=C $ echo 'z:/' | egrep '^(/|[A-z]:/)' z:/ $ So that means that this bug is due to collation order, and as you wrote yesterday the interval should be changed to A-Za-z. The egrep thing is there to detect if a filename is absolute, i.e. starting with "/" as in "/usr/bin/true" (unix style), or "C:/" (or another device letter) as in "C:/WINDOWS/SYSTEM32/FILE.DLL" (Dos/Windows style). As written in "man grep": To obtain the traditional interpretation of bracket expressions, you can use the C locale by setting the LC_ALL environment variable to the value C. we can go around this bug by setting LC_ALL to C. This bug is fixed in [1]: - echo "$command_line_filename" | $EGREP '^(/|[A-z]:/)' >&6 \ + echo "$command_line_filename" | LC_ALL=C $EGREP '^(/|[A-Za-z]:/)' >&6 \ We might go around the bug with the attaced patch (texi2dvi is called from texi2pdf), but I have not had time to test it. Regards, /Karl Hammar [1] http://ftp.gnu.org/gnu/texinfo/texi2dvi --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 diff --git a/make/doc-i18n-root-rules.make b/make/doc-i18n-root-rules.make index f510ded..83f2ee6 100644 --- a/make/doc-i18n-root-rules.make +++ b/make/doc-i18n-root-rules.make @@ -18,7 +18,7 @@ $(top-build-dir)/Documentation/$(outdir)/%.$(ISOLANG).html: $(outdir)/%.texi $(X $(top-build-dir)/Documentation/$(outdir)/%.$(ISOLANG).pdf: $(outdir)/%.texi cd $(outdir) && \ - texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $*.texi && \ + LC_ALL=C texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $*.texi && \ mkdir -p $(dir $@) && mv $*.pdf $@ $(outdir)/version.%: $(top-src-dir)/VERSION___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: What's the deal with String_convert::reverse?
Reinhold: > Am Tuesday, 23. August 2011, 22:30:24 schrieb David Kastrup: ... > > Is this used anywhere? > A git grep didn't show any usage, but maybe I'm missing something. Make does not complain about this patch (on my box). $ git diff |cat diff --git a/flower/include/string-convert.hh b/flower/include/string-convert.hh index 55c1486..0675384 100644 --- a/flower/include/string-convert.hh +++ b/flower/include/string-convert.hh @@ -49,7 +49,7 @@ public: static string i64_string (I64, char const *fmt = 0); static string to_lower (string s); static string to_upper (string s); - static string reverse (string s); + static string reverseX (string s); }; #endif // __STRING_CONVERT_HH // diff --git a/flower/string-convert.cc b/flower/string-convert.cc index d46426e..01cf3e5 100644 --- a/flower/string-convert.cc +++ b/flower/string-convert.cc @@ -362,7 +362,7 @@ String_convert::to_lower (string s) } string -String_convert::reverse (string s) +String_convert::reverseX (string s) { return (char *) memrev ((unsigned char *)s.data (), s.length ()); } Regards, /Karl Hammar --- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: [OT] How do you configure your keyboard for programming?
> On Sunday 29 January 2006 23.46, Pedro Kröger wrote: > > > > 2. don't use deadkeys (but how do you write accents in your language?) > > > > 3. switch keyboard maps > > I usually use US keyboard, but where one key (the "menu" key) is bound to > switch layouts between Swedish and US. > > Before I bound that layout swithc key, I used to leave out all accents and > extra dots when writing informal email etc. in Swedish. > > -- > Erik Interesting, how do you do it in the xmodmap file? I usually have an xmodmap [1] file that lets me press alt or alt-gr to set the 8th bit. That gives me all latin1 characters. Regards, Karl 1: http://aspodata.se/aspo/xmodmap.us ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
configure does not check for python version >=2.4
Running whith e.g python 2.3.5 gives me: $ make ... make[1]: Entering directory `/home/karl/most/music/lilypond/head/scripts' cat convert-ly.py | sed -e '#' -e '[EMAIL PROTECTED]@!/bin/sh!g' -e '[EMAIL PROTECTED] chmod 755 out/convert-ly /usr/bin/perl /home/karl/most/music/lilypond/head/buildscripts/out/help2man out/convert-ly > out/convert-ly.1 help2man: can't get `--help' info from out/convert-ly make[1]: *** [out/convert-ly.1] Error 1 make[1]: Leaving directory `/home/karl/most/music/lilypond/head/scripts' make: *** [all] Error 2 Which fails due to missing module subprocess. It was introduced recently: $ grep -B7 -A1 subprocess ChangeLog 2006-03-12 Han-Wen Nienhuys <[EMAIL PROTECTED]> * scripts/lilypond-book.py (get_latex_textwidth): explicitly close tmphandle. * python/lilylib.py (system): rewrite system() using subprocess. Remove >& redirection trickery. Which makes python ver. 2.4 a requirement: http://www.python.org/doc/2.4.2/lib/module-subprocess.html Attached patch seems to solve that, though it gives strange error message: $./configure ... config.status: creating config.hh ERROR: Please install required programs: python2.3 >= 2.4 (installed: 2.3) Python.h (python-devel, python-dev or libpython-dev package) See INSTALL.txt for more information on how to build LilyPond Regards, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- Index: ChangeLog === RCS file: /sources/lilypond/lilypond/ChangeLog,v retrieving revision 1.4948 diff -u -r1.4948 ChangeLog --- ChangeLog 11 May 2006 13:00:10 - 1.4948 +++ ChangeLog 11 May 2006 22:58:37 - @@ -1,3 +1,7 @@ +2006-05-12 Karl Hammar <[EMAIL PROTECTED]> + + * stepmake/aclocal.m4: bump python requirement to version 2.4 + 2006-05-11 Graham Percival <[EMAIL PROTECTED]> * Documentation/user/programming-interface.itely: first round of Index: stepmake/aclocal.m4 === RCS file: /sources/lilypond/lilypond/stepmake/aclocal.m4,v retrieving revision 1.168 diff -u -r1.168 aclocal.m4 --- stepmake/aclocal.m4 3 May 2006 20:30:59 - 1.168 +++ stepmake/aclocal.m4 11 May 2006 22:58:37 - @@ -752,7 +752,7 @@ fi AC_SUBST(SHELL) -STEPMAKE_PYTHON(REQUIRED, 1.5) +STEPMAKE_PYTHON(REQUIRED, 2.4) if expr "$MAKE" : '.*\(echo\)' >/dev/null; then $MAKE -v 2> /dev/null | grep GNU > /dev/null ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: configure does not check for python version >=2.4
> > Running whith e.g python 2.3.5 gives me: > > $ make > ... > make[1]: Entering directory `/home/karl/most/music/lilypond/head/scripts' > cat convert-ly.py | sed -e '#' -e '[EMAIL PROTECTED]@!/bin/sh!g' -e > '[EMAIL PROTECTED] > chmod 755 out/convert-ly > /usr/bin/perl /home/karl/most/music/lilypond/head/buildscripts/out/help2man > out/convert-ly > out/convert-ly.1 > help2man: can't get `--help' info from out/convert-ly > make[1]: *** [out/convert-ly.1] Error 1 > make[1]: Leaving directory `/home/karl/most/music/lilypond/head/scripts' > make: *** [all] Error 2 > > Which fails due to missing module subprocess. > It was introduced recently: > > $ grep -B7 -A1 subprocess ChangeLog > > 2006-03-12 Han-Wen Nienhuys <[EMAIL PROTECTED]> > > * scripts/lilypond-book.py (get_latex_textwidth): explicitly close > tmphandle. > > * python/lilylib.py (system): rewrite system() using > subprocess. Remove >& redirection trickery. > > Which makes python ver. 2.4 a requirement: > http://www.python.org/doc/2.4.2/lib/module-subprocess.html > > Attached patch seems to solve that, though it gives strange error message: > > $./configure > ... > config.status: creating config.hh > > ERROR: Please install required programs: python2.3 >= 2.4 (installed: 2.3) > Python.h (python-devel, python-dev or libpython-dev package) > > See INSTALL.txt for more information on how to build LilyPond Hm, configure.in seems better suited for that change than stepmake/aclocal.m4. Changelog: 2006-05-12 Karl Hammar <[EMAIL PROTECTED]> * configure.in: bump python requirement to version 2.4 Regards, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- Index: configure.in === RCS file: /sources/lilypond/lilypond/configure.in,v retrieving revision 1.191 diff -u -r1.191 configure.in --- configure.in9 May 2006 08:21:17 - 1.191 +++ configure.in12 May 2006 00:01:44 - @@ -83,7 +83,7 @@ -STEPMAKE_PYTHON(REQUIRED, 2.3) +STEPMAKE_PYTHON(REQUIRED, 2.4) STEPMAKE_GCC(REQUIRED, 4.0) STEPMAKE_CXX(REQUIRED) STEPMAKE_GXX(REQUIRED, 4.0) ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
MergeKern: Failed to find kern info in file
(Current cvs) $ make ... make[1]: Entering directory `/home/karl/most/music/lilypond/head/mf' /usr/bin/fontforge -script ../buildscripts/pfx2ttf.fontforge /usr/X11R6/l... Copyright (c) 2000-2005 by George Williams. Executable based on sources from 12:08 5-Dec-2005. MergeKern: Failed to find kern info in file Called from... ../buildscripts/pfx2ttf.fontforge: line 5 make[1]: *** [out/CenturySchL-Ital.otf] Error 1 make[1]: Leaving directory `/home/karl/most/music/lilypond/head/mf' make: *** [all] Error 2 configure checks where the pfb files for Century Schoolbook are, and assumes that the afm files are in the same directory. Which fails if the given file is a link the real pfb file (in some other direcotory): $ fc-match --verbose 'Century Schoolbook L:style=Italic' | grep file: file: "/usr/X11R6/lib/X11/fonts/Type1/c059033l.pfb"(s) $ ls -l /usr/X11R6/lib/X11/fonts/Type1/c059033l.* lrwxrwxrwx 1 root root 53 Nov 29 12:20 /usr/X11R6/lib/X11/fonts/Type1/c059033l.pfb -> ../../../../../share/fonts/type1/gsfonts/c059033l.pfb $ ls -l /usr/share/fonts/type1/gsfonts/c059033* -rw-r--r-- 1 root root 43546 Apr 3 2005 /usr/share/fonts/type1/gsfonts/c059033l.afm -rw-r--r-- 1 root root 113732 Apr 3 2005 /usr/share/fonts/type1/gsfonts/c059033l.pfb Attached patch solves that (still assuming that the afm is in the same directory as the "real" pfb file). One could possible do the same for the "./configure --with-ncsb-dir=..." case. 2006-05-12 Karl Hammar <[EMAIL PROTECTED]> * configure.in: resolve symlinks for pfb-files, to be able to find its afm file. Regards, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- Index: configure.in === RCS file: /sources/lilypond/lilypond/configure.in,v retrieving revision 1.191 diff -u -r1.191 configure.in --- configure.in9 May 2006 08:21:17 - 1.191 +++ configure.in12 May 2006 00:41:35 - @@ -71,6 +71,7 @@ NCSB_FILE=`$FCMATCH --verbose 'Century Schoolbook L:style=$style' | grep 'file:'` NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` + NCSB_FILE=`readlink -f $NCSB_FILE` NCSB_SOURCE_FILES="$NCSB_FILE $NCSB_SOURCE_FILES" done else ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: configure does not check for python version >=2.4
> Hi, > > On Fri, 12 May 2006, Karl Hammar wrote: > > > > make: *** [all] Error 2 > > > > > > Which fails due to missing module subprocess. > > > It was introduced recently: > > And it was discussed recently: > > http://article.gmane.org/gmane.comp.gnu.lilypond.devel/8996 Yes, but without any resolution or action. > > Hm, configure.in seems better suited for that change than > > stepmake/aclocal.m4. > > And distributing subprocess.py even better! Why not. > Ciao, > Dscho Now you have two choises, choose one. Regards, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
lilypond 2.8 make fails
Patch in attachment. Building lilypond 2.8 (from todays cvs), make fails: $ ./configure checking build system type... i686-pc-linux-gnu checking Package... LILYPOND ... checking for mftrace... mftrace checking mftrace version... 1.2.4 ... $ make cd /home/karl/most/music/lilypond/2.8/out && rm -rf bin lib share mkdir -p ./out/bin ... make[1]: Entering directory `/home/karl/most/music/lilypond/2.8/mf' ERROR: mftrace not found For obtaining PFA/SVG fonts, either install mftrace (see http://www.xs4all.nl/~hanwen/mftrace/ ), or try one of the following commands in this directory: make get-fonts make get-rpm-fonts make get-deb-fonts These commands will try to download the files from internet. make[1]: Leaving directory `/home/karl/most/music/lilypond/2.8/mf' $ Error is in mf/GNUmakefile: $ grep -B1 -A3 '(MFTRACE)' mf/GNUmakefile pfa_warning: ifneq ($(shell $(MFTRACE) --version | sed 's/ .*//'),mftrace) @echo "" @echo "ERROR: mftrace not found" @echo "" $ Running the shell line: $ mftrace --version | sed 's/ .*//' mftrace This License under information. Copyright $ It becomes "mftrace This License under information. Copyright " in make, which is not eq to "mftrace". It worked fine with older mftrace since they produced one line versions: $ /usr/bin/mftrace --version mftrace 1.1.17 $ Regards /Karl Index: mf/GNUmakefile === RCS file: /sources/lilypond/lilypond/mf/GNUmakefile,v retrieving revision 1.193.2.1 diff -u -r1.193.2.1 GNUmakefile --- mf/GNUmakefile 29 Mar 2006 16:19:38 - 1.193.2.1 +++ mf/GNUmakefile 22 May 2006 14:22:08 - @@ -138,7 +138,7 @@ ${MAKE} -C $(top-build-dir) link-mf-tree pfa_warning: -ifneq ($(shell $(MFTRACE) --version | sed 's/ .*//'),mftrace) +ifneq ($(shell $(MFTRACE) --version | sed 's/ .*//;1q'),mftrace) @echo "" @echo "ERROR: mftrace not found" @echo "" ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: lilypond 2.8 make fails
> Karl Hammar schreef: > > Patch in attachment. > > Building lilypond 2.8 (from todays cvs), make fails: > > > > > Index: mf/GNUmakefile > > === > > RCS file: /sources/lilypond/lilypond/mf/GNUmakefile,v > > retrieving revision 1.193.2.1 > > diff -u -r1.193.2.1 GNUmakefile > > --- mf/GNUmakefile 29 Mar 2006 16:19:38 - 1.193.2.1 > > +++ mf/GNUmakefile 22 May 2006 14:22:08 - > > @@ -138,7 +138,7 @@ > > ${MAKE} -C $(top-build-dir) link-mf-tree > > > > pfa_warning: > > -ifneq ($(shell $(MFTRACE) --version | sed 's/ .*//'),mftrace) > > +ifneq ($(shell $(MFTRACE) --version | sed 's/ .*//;1q'),mftrace) > > I don't have this in todays CVS of lilypond 2.8. ... Oops, wrong tag, sorry for the noise. Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
lilypond 2.8, make fails, NCSB_SOURCE_FILES
$ ./configure; make ... make[1]: Entering directory `/home/karl/most/music/lilypond/2.8/mf' make[1]: *** No rule to make target [EMAIL PROTECTED]@', needed by `out/CenturySchL-Ital.otf'. Stop. make[1]: Leaving directory `/home/karl/most/music/lilypond/2.8/mf' make: *** [all] Error 2 $ Does not resolve symlinks when looking for gs fonts. Patch 'cvs diff -u -r lilypond_2_8 configure.in' attached. Regards /Karl Index: configure.in === RCS file: /sources/lilypond/lilypond/configure.in,v retrieving revision 1.184.2.2 diff -u -r1.184.2.2 configure.in --- configure.in9 May 2006 08:21:57 - 1.184.2.2 +++ configure.in22 May 2006 16:15:11 - @@ -75,6 +75,7 @@ NCSB_FILE=`$FCMATCH --verbose 'Century Schoolbook L:style=$style' | grep 'file:'` NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` + NCSB_FILE=`readlink -f $NCSB_FILE` NCSB_SOURCE_FILES="$NCSB_FILE $NCSB_SOURCE_FILES" done else ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
out/bin/*.ly ?
What is the meaning of *.ly which point to nothing below ? $ ls -l out/bin/ total 0 lrwxrwxrwx 1 karl users 22 May 22 17:57 *.ly -> ../../scripts/out/*.ly lrwxrwxrwx 1 karl users 28 May 22 17:57 convert-ly -> ../../scripts/out/convert-ly lrwxrwxrwx 1 karl users 23 May 22 17:57 lilypond -> ../../lily/out/lilypond lrwxrwxrwx 1 karl users 31 May 22 17:57 lilypond-book -> ../../scripts/out/lilypond-book $ Maybe it should read ln -s .../*2ly . instead of *.ly ? If so, use attached patch. Also note that target $(tree-share-prefix)/lilypond-force in toplevel GNUmakefile is run before the generation of the files in scripts/out/ so any wildcard are useless in the line above, and will generate the file *.ly instead of expanding to future files. * GNUmakefile.in: wildcard in ln -s .../*.ly . don't work when newly checkout'ed Regards, /Karl Index: GNUmakefile.in === RCS file: /sources/lilypond/lilypond/GNUmakefile.in,v retrieving revision 1.188 diff -u -r1.188 GNUmakefile.in --- GNUmakefile.in 25 Feb 2006 00:20:51 - 1.188 +++ GNUmakefile.in 24 May 2006 12:09:13 - @@ -132,9 +132,8 @@ mkdir -p $(tree-share-prefix)/tex cd $(tree-bin) && \ ln -sf ../../lily/$(outconfbase)/lilypond . && \ - ln -sf ../../scripts/$(outconfbase)/convert-ly . && \ - ln -sf ../../scripts/$(outconfbase)/lilypond-book . && \ - ln -sf ../../scripts/$(outconfbase)/*.ly . + for i in abc2ly convert-ly etf2ly lilypond-book lilypond-invoke-editor midi2ly musicxml2ly; \ + do ln -sf ../../scripts/$(outconfbase)/$$i . ; done cd $(tree-lib-prefix) && \ ln -s ../../../../python/$(outconfbase) python cd $(tree-share-prefix) && \ ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
configure find wrong python path
Given: $ ls -l /usr/bin/python* lrwxrwxrwx 1 root root 9 May 24 15:51 /usr/bin/python -> python2.3 -rwxr-xr-x 1 root root 958764 Mar 6 11:32 /usr/bin/python2.3 -rwxr-xr-x 1 root root 1024460 Apr 23 01:34 /usr/bin/python2.4 configure will report wrong path of python: $ ./configure ... checking for bash... /bin/sh checking for python... python checking python version... 2.3.5 checking for python... /usr/bin/python checking for gcc... gcc ... checking New Century Schoolbook PFB files... /usr/share/fonts/type... checking for python... /usr/bin/python checking /usr/bin/python version... 2.3.5 python checking python version... 2.3.5 python2 python2.4 checking python2.4 version... 2.4 checking for python2.4... (cached) /usr/bin/python checking gcc version... 4.0.3 ... $ make ... import subprocess ImportError: No module named subprocess make[2]: *** [out/lilypond.nexi] Error 1 make[2]: Leaving directory `/home/karl/most/music/lilypond/head/Documentation/user' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/karl/most/music/lilypond/head/Documentation' make: *** [all] Error 2 $ STEPMAKE_PYTHON is run twice during configure: STEPMAKE_PYTHON(REQUIRED, 1.5) configure.in line 15: STEPMAKE_INIT() -> stepmake/aclocal.m4 line 755 and STEPMAKE_PYTHON(REQUIRED, 2.4) configure.in line 87. STEPMAKE_PYTHON() calls AC_PATH_PROG() which calls AC_CACHE_VAL([ac_cv_path_$1], ... ) The second time AC_PATH_PROG() takes path from cache as seen in configure trace above. Since STEPMAKE_PYTHON() have a second argument (req. version) and the cache don't know of versions, one should clear the cache when seraching for a new python path. Attached patch corrects the error above. * stepmake/aclocal.m4: STEPMAKE_PYTHON(): clear cached value since arg 2 might point us to a new binary Regards /Karl Index: stepmake/aclocal.m4 === RCS file: /sources/lilypond/lilypond/stepmake/aclocal.m4,v retrieving revision 1.168 diff -u -r1.168 aclocal.m4 --- stepmake/aclocal.m4 3 May 2006 20:30:59 - 1.168 +++ stepmake/aclocal.m4 24 May 2006 21:18:50 - @@ -994,6 +994,8 @@ if test -n "$pv"; then STEPMAKE_ADD_ENTRY($1, $pv) fi +# clear cached value since arg 2 might point us to a new binary +unset ac_cv_path_PYTHON AC_PATH_PROG(PYTHON, $PYTHON) AC_SUBST(PYTHON) ]) ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: configure: readlink problem
> Hi, > > I'm trying to build lilypond on freebsd 6.1, mostly on a whim. > ./configure complains that > ... > readlink: illegal option -- f > usage: readlink [-n] [file ...] > ... > > This is called in only one place, > >if test "$FCMATCH" != ""; then > for style in Roman Italic "Bold Italic" Bold; do >NCSB_FILE=`$iiFCMATCH --verbose "Century Schoolbook L:style=$style" > | grep 'file:'` > >NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` >NCSB_FILE=`readlink -f $NCSB_FILE` >NCSB_SOURCE_FILES="$NCSB_FILE $NCSB_SOURCE_FILES" > done > > I'm not certain what it does, so I can't suggest an alternative. If > it's a big deal to fix, don't bother -- especially since GUB is > available for freebsd. I've actually already downloaded GUB; I'm > running ./configure so that I get the makefiles so I can make web. > > Cheers, > - Graham The -f option tells readlink to rekursively resolv all links and find the file which the link finally points to. Without the -f readlink just just gives you what this link points to. On my system the file pointed to by fc-match is a link to the real file, so for me it would suffice to use readlink without the -f. Also we don't need the readlink at all for finding the pfb file, the problem comes later, somewhere else when we want the afm file. Currently lilypond assumes it is in the same directory as the pfb file. Since configure does not test for readlink it is perhaps a bad choise, the alternative would be to use a shell or python script or if someone comes up with a good way to find the afm files. Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: configure: readlink problem
> Karl Hammar schreef: > > > > Since configure does not test for readlink it is perhaps a bad choise, > > the alternative would be to use a shell or python script or if someone > > comes up with a good way to find the afm files. > > we rely on python anyway, so I'm all for a Python based solution. > Patch? > > > -- > > Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen > > LilyPond Software Design > -- Code for Music Notation > http://www.lilypond-design.com > Ack, later this week. Regards, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: configure: readlink problem
[EMAIL PROTECTED]: > > Karl Hammar schreef: > > > > > > Since configure does not test for readlink it is perhaps a bad choise, > > > the alternative would be to use a shell or python script or if someone > > > comes up with a good way to find the afm files. > > > > we rely on python anyway, so I'm all for a Python based solution. > > Patch? ... > > Ack, later this week. ... Attached (diff) is a possible patch: * configure.in: readlink -f is system dependent, replaced with python version 1. One could maybe write it as an one-liner: $ ls -l /usr/bin/emacs lrwxrwxrwx 1 root root 23 Nov 12 2005 /usr/bin/emacs -> /etc/alternatives/emacs $ ls -l /etc/alternatives/emacs lrwxrwxrwx 1 root root 18 Nov 24 2005 /etc/alternatives/emacs -> /usr/bin/emacs21-x $ python -c 'import os.path, sys; print os.path.realpath(sys.argv.pop(1))' /usr/bin/emacs /usr/bin/emacs21-x $ 2. It requires python >= 2.2. One could put the python version check elsewhere. 3. the manual doesn't indicate wheter sys.argv is ro or rw --- so sys.argv.pop(1) could fail for others, the alternative is to use changeqoute's and sys.argv[1] instead, as in diff2 4. one could put the python code in a seperate file, as in diff3, and put readlink.py in python/ or elsewhere Regards, /Karl import os import sys for i in sys.argv[1:]: print os.path.realpath(i) Index: configure.in === RCS file: /sources/lilypond/lilypond/configure.in,v retrieving revision 1.194 diff -u -r1.194 configure.in --- configure.in24 May 2006 09:11:18 - 1.194 +++ configure.in5 Jun 2006 21:33:30 - @@ -53,6 +53,8 @@ # must come before any header checks STEPMAKE_COMPILE +# os.path.realpath() requires python 2.2 and unix +STEPMAKE_PYTHON(REQUIRED, 2.2) AC_CHECK_PROG(FCMATCH, fc-match, fc-match) AC_MSG_CHECKING([New Century Schoolbook PFB files]) AC_SUBST(NCSB_SOURCE_FILES) @@ -71,7 +73,7 @@ NCSB_FILE=`$FCMATCH --verbose "Century Schoolbook L:style=$style" | grep 'file:'` NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` - NCSB_FILE=`readlink -f $NCSB_FILE` + NCSB_FILE=`$PYTHON python/readlink.py $NCSB_FILE` NCSB_SOURCE_FILES="$NCSB_FILE $NCSB_SOURCE_FILES" done elseIndex: configure.in === RCS file: /sources/lilypond/lilypond/configure.in,v retrieving revision 1.194 diff -u -r1.194 configure.in --- configure.in24 May 2006 09:11:18 - 1.194 +++ configure.in5 Jun 2006 21:19:05 - @@ -53,6 +53,8 @@ # must come before any header checks STEPMAKE_COMPILE +# os.path.realpath() requires python 2.2 and unix +STEPMAKE_PYTHON(REQUIRED, 2.2) AC_CHECK_PROG(FCMATCH, fc-match, fc-match) AC_MSG_CHECKING([New Century Schoolbook PFB files]) AC_SUBST(NCSB_SOURCE_FILES) @@ -71,7 +73,13 @@ NCSB_FILE=`$FCMATCH --verbose "Century Schoolbook L:style=$style" | grep 'file:'` NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` - NCSB_FILE=`readlink -f $NCSB_FILE` + # resolv symbolic links + changequote(<<<, >>>)#dnl + NCSB_FILE=`cat <Index: configure.in === RCS file: /sources/lilypond/lilypond/configure.in,v retrieving revision 1.194 diff -u -r1.194 configure.in --- configure.in24 May 2006 09:11:18 - 1.194 +++ configure.in5 Jun 2006 20:53:18 - @@ -53,6 +53,8 @@ # must come before any header checks STEPMAKE_COMPILE +# os.path.realpath() requires python 2.2 and unix +STEPMAKE_PYTHON(REQUIRED, 2.2) AC_CHECK_PROG(FCMATCH, fc-match, fc-match) AC_MSG_CHECKING([New Century Schoolbook PFB files]) AC_SUBST(NCSB_SOURCE_FILES) @@ -71,7 +73,11 @@ NCSB_FILE=`$FCMATCH --verbose "Century Schoolbook L:style=$style" | grep 'file:'` NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` - NCSB_FILE=`readlink -f $NCSB_FILE` + # resolv symbolic links + NCSB_FILE=`cat <___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: configure find wrong python path
[EMAIL PROTECTED]: ... > Unfortunately, configure completely bails out then using something like > > $ PYTHON=/usr/local/bin/python2.4 ./configure ... > > The problem is in STEPMAKE_GETVERSION, since it takes the first > line that looks like it contains a version number of the output > from [Path stripped to take the line shorter]: > > $ python2.4 --version 2>&1 || python2.4 -V 2>&1 > > which is > > Unknown option: -- > usage: python2.4 [option] ... [-c cmd | -m mod | file | -] [arg] ... > Try `python -h' for more information. > Python 2.4.3 > > The net result is that, for whatever reason, configure first detects > 2.4.3, but later 2.3.5. > > I think the attached patch fixes this. (Works at least when configuring > on OpenBSD). Seen same problem, your patch fixes this for me also. > Note that the patch contains another quick hack to let the version > check work on OpenBSD and other systems where the shell has 32 bit > integer arithmetic (without it, you'll get too large version numbers > for fontforge, letting configure think that 20060413 is smaller > than the requested version). > > Ciao, > Kili > > ps: do we really still have to use backticks instead of $(...)? > Anyone running LilyPond on old systems with rotten shells? configure is about portability, why not keep the backticks? The same goes for shells with 32bit int arith. > pps: I *only* tested the configure step yet. No idea wether it will > actually build and run. ... It builds and runs ok (using debian v3.1). Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Some fixes to musicxml2ly
[EMAIL PROTECTED]: > On Fri, 2006-09-15 at 19:33 +0200, Han-Wen Nienhuys wrote: > > > > > else: > > > - return 0 > > > + tolerance_exp = -4 # means that notes that are 1/32 or less > > > shorter > > > than 1/4 are quarter notes etc. > > > + return int (math.ceil (-math.log(self._duration) / > > > math.log(2) - > > > 2**tolerance_exp)) > > > > Since music notation uses exact rational numbers, using math.log () is > > usually forbidden, and it's better to use exact arithmetic. Can you > > doublecheck whether or not exact arithmetic applies to your case, please > > add an explanation comment why you're using floating point numbers? > > In this case inexactness doesn't matter. The term 2**tolerance_exp makes > sure that notes that are slightly shorter than the next whole duration > are rounded to the whole duration instead of somethin like "c8.". In > some cases floating point arithmetic can cause some randomness regarding > whether the note becomes c8... or c4 (if the duration is exactly 1/32 > from the next whole duration), but I don't think that matters -- such > note length are weird enough to start with. > > When determining the number of dots the use of floating point arithmetic > doesn't obviously harm, because the result is rounded anyway. > > I can't think of any simple way to achieve the same result without using > math.log(). > > The attached diff for musicxml.py now has an explanatory comment. > I don't understand this: tolerance_exp = -4 a = - math.log(self._duration) / math.log(2) b = 2**tolerance_exp c = a - b 1: if tolerance_exp is a constant, why don't you simply say b = 1/16 (another constant), which is clearly a duration(?) value. 2: why are you taking the difference between the log of a duration and a duration? In physics there is something which is called a dimension test: you simply cannot do 1 meter - 1 second. In math, you don't easily agree to do log(entity) - entity. And in this case I read your code as -2log( seconds ) - seconds which is clearly wrong. Now b seems to be an implementation detail caused by using floating point values, the same with math.ceil, is it so? If you simply want to map a duration to its -2log, why don't you use something like arr = [ 1, 2, 4, ...]; f(x) = arr[x]; which is a clear statement about what you are doing (although incomplete, I sense that self._duration is a rational number). 3: I don't understand what you are trying to do and your comment does not match the code 4: using floating point values for exact things usually open up enough nasty bugs and is very hard to verify due to rounding errors. Unless you have VERY good reason, just don't do it, it is not worth the trouble. === Later in your patch: +factor = self._duration / 2**(-self.get_duration_log()) +return int (round (-math.log(2 - factor) / math.log(2))) If: a = 1/2**(-self.get_duration_log()) then: a = 2**self.get_duration_log() assuming that get_duration_log() returns a 2log and that get_duration() exists, then a = self.get_duration() get_duration() look suspiciously like _duration(), so my guess is that factor = self._duration ** 2 by quickly reading the code as a math guy. Now, if duration usually is less than 1 (we don't see many breves and longas today), then -math.log(2 - factor) / math.log(2) more or less reduces to a near constant -1. Is that your intention, or am I reading your code false? I assume that duration is the lenght of a note, like whole note is 1, a quater note is 1/4, ... Regards, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting --- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: `Vera Bold' replaced by `AlbanyAMT-Bold'
Werner: > > > Hmm. What do you get with fc-match? Just for comparison purposes. > > [EMAIL PROTECTED] lilypond]$ fc-match Vera > > DejaVuLGCSans.ttf: "DejaVu LGC Sans" "Book" > Ah, ok, so you also don't get `Vera'. This is good to know. ... Don't be too happy: $ fc-match Vera Bitstream-Vera-Sans.ttf: "Bitstream Vera Sans" "Roman" $ fc-match Albany Bitstream-Vera-Sans.ttf: "Bitstream Vera Sans" "Roman" $ fc-match DejaVu Bitstream-Vera-Sans.ttf: "Bitstream Vera Sans" "Roman" $ fc-match courie Bitstream-Vera-Sans.ttf: "Bitstream Vera Sans" "Roman" $ fc-match courier cour.pfa: "Courier" "Regular" $ fc-match --version fontconfig version 2.4.1 Seems that vera is something of a default over here. Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GUILE-with-rational-bugfix
[EMAIL PROTECTED]: > Rune Zedeler escreveu: > > Where can the famous patch be found? > > (Unable to compile latest guile-cvs). > > see install.txt There is no install.txt, and the INSTALL.txt I found does not mention it: $ git-pull remote: Generating pack... ... rename input/{no-notation/parse5.ly => regression/warn-conflicting-key-signatures.ly} (100%) $ find . -name install.txt $ find . | grep -i install.txt ./Documentation/topdocs/out/INSTALL.txt $ grep -C2 -i guile Documentation/topdocs/out/INSTALL.txt work. * GUILE (http://www.gnu.org/software/guile/guile.html) (version 1.6.7 or newer). If you are installing binary packages, you may need to install guile-devel or guile-dev or libguile-dev too. * Texinfo (ftp://ftp.gnu.org/gnu/texinfo/) (version 4.8 or newer). -- * Pango (http://www.pango.org/) (version 1.12 or newer). * GUILE (http://www.gnu.org/software/guile/guile.html) (version 1.8.0 or newer). -- export GUILE=guile-1.6 export GUILE_CONFIG=guile-1.6-config export PKG_CONFIG_PATH=/sw/lib/freetype219/lib/pkgconfig/:/sw/lib/fontconfig2/lib/pkgconfig/ ./configure $ Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GUILE-with-rational-bugfix
> Rune Zedeler <[EMAIL PROTECTED]> writes: > > Where can the famous patch be found? ... > http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch ... Got the patch and build debian guile debs for i386. If anybody would need them, they are available at: http://kalle.csb.ki.se/pub/lilypond/ You need debian unstable to use them. To build them do: # apt-get install -t unstable debhelper ... # apt-get build-dep guile-1.8 ... $ wget http://lilypond.org/vc/gub.darcs/patches/guile-1.8-rational.patch $ apt-get source guile-1.8 Reading package lists... Done Building dependency tree... Done Need to get 0B/2829kB of source archives. dpkg-source: extracting guile-1.8 in guile-1.8-1.8.1+1 $ cd guile-1.8-1.8.1+1/libguile $ patch -p1 < ../../guile-1.8-rational.patch patching file libguile/numbers.c patching file libguile/numbers.h $ cd .. $ fakeroot ./debian/rules # this goes first so we clean using patched code rm -f debian/stamp/build ... dh_builddeb dpkg-deb: building package `guile-1.8' in `../guile-1.8_1.8.1+1-4_i386.deb'. dpkg-deb: building package `guile-1.8-dev' in `../guile-1.8-dev_1.8.1+1-4_i386.deb'. dpkg-deb: building package `guile-1.8-libs' in `../guile-1.8-libs_1.8.1+1-4_i386.deb'. make[1]: Leaving directory `/home/karl/most/music/lilypond/guile-1.8-1.8.1+1' $ ./autogen.sh works for me now. Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: GUILE-with-rational-bugfix
> Karl Hammar wrote: > > >[EMAIL PROTECTED]: > > > > > >>Rune Zedeler escreveu: > >> > >> > >>>Where can the famous patch be found? > >>>(Unable to compile latest guile-cvs). > >>> > >>> > >>see install.txt > >> > >> > > > >There is no install.txt, and the INSTALL.txt I found does not mention it: > > > > > > At www.lilypond.org, click on the documentation link > for version 2.11 and then on INSTALL. > >/Mats Ohh, I see, a catch-22 situation. I could have seen it if I peeked inside Documentation/topdocs/INSTALL.texi, but was mislead by the configure.in text. Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
makeinfo with utf-8 support
Hmm, when building I get: out/lilypond.nexi:62: warning: unrecognized encoding name `utf-8'. out/lilypond-internals.nexi:10: warning: unrecognized encoding name `utf-8'. out/music-glossary.nexi:6: warning: unrecognized encoding name `utf-8'. out/INSTALL.texi:6: warning: unrecognized encoding name `utf-8'. out/README.texi:6: warning: unrecognized encoding name `utf-8'. I've got: $ makeinfo --version makeinfo (GNU texinfo) 4.8 The latest texinfo at http://ftp.gnu.org/gnu/texinfo/ seems to be too old. Does anybody know where the makeinfo with utf-8 support is, a patch ? Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: makeinfo with utf-8 support
[EMAIL PROTECTED]: > Le jeudi 04 janvier 2007 à 00:33 +0100, Karl Hammar a écrit : > > Hmm, when building I get: > > > > out/lilypond.nexi:62: warning: unrecognized encoding name `utf-8'. ... > > Does anybody know where the makeinfo with utf-8 support is, a patch ? > > AFAIK Texinfo does no character encoding conversion for the Info and > HTML output, so the LilyPond devels have decided to use the modern > character set UTF-8, not Latin1. This will really become a problem for > the PDF (outputted by Texinfo/TeX) when we decide to make PDF of Lily > docs translation. > > Well, you can safely ignore these warnings. > > See also > http://lists.gnu.org/archive/html/lilypond-devel/2007-01/msg00047.html Tried cvs version [1] of texinfo/makeinfo $ makeinfo --version makeinfo (GNU texinfo) 4.8.90 But the warning persist. Well, never mind. Regards /Karl [1] http://savannah.gnu.org/cvs/?group=texinfo ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: makeinfo with utf-8 support
[EMAIL PROTECTED]: > > Tried cvs version [1] of texinfo/makeinfo > > > > $ makeinfo --version > > makeinfo (GNU texinfo) 4.8.90 > > > > But the warning persist. Well, never mind. > > Please report this to bug-texinfo, together with a small example (if > possible). Done. Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LilyPond suggestions
[EMAIL PROTECTED]: > Jesse Engle wrote: > > > > 4.) There is no way to create an entire page of exercises (a feature > > that would be incredibly useful for music teachers such as myself) > > like this: > > > > http://jengle.waferbaby.com/tmp/lp/exercises.png > Actually, you could do this too within LilyPond, since you can use > \markup commands to create several columns and you can embed scores > into a \markup command. Here's a simple example: ... Whu not use \startStaff and \stopStaff, like: \score { << \new Staff { \relative c' { \clef alto c1 c \stopStaff s1 \startStaff b1 b \stopStaff s1 \startStaff a1 a \stopStaff } } \new Staff { \relative c' { \clef alto c1 c \stopStaff s1 \startStaff b1 b \stopStaff s1 \startStaff a1 a \stopStaff } } \new Staff { \relative c' { \clef alto c1 c \stopStaff s1 \startStaff b1 b \stopStaff s1 \startStaff a1 a \stopStaff } } >> } See staff-halfway.ly [1] in the regression tests. [1] http://lilypond.org/doc/v2.11/input/regression/lily-1a72868935.ly Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: makeinfo with utf-8 support
> [EMAIL PROTECTED]: > > Le jeudi 04 janvier 2007 à 00:33 +0100, Karl Hammar a écrit : > > > Hmm, when building I get: > > > > > > out/lilypond.nexi:62: warning: unrecognized encoding name `utf-8'. > ... > > > Does anybody know where the makeinfo with utf-8 support is, a patch ? > > > > AFAIK Texinfo does no character encoding conversion for the Info and > > HTML output, so the LilyPond devels have decided to use the modern > > character set UTF-8, not Latin1. This will really become a problem for > > the PDF (outputted by Texinfo/TeX) when we decide to make PDF of Lily > > docs translation. > > > > Well, you can safely ignore these warnings. > > > > See also > > http://lists.gnu.org/archive/html/lilypond-devel/2007-01/msg00047.html > > Tried cvs version [1] of texinfo/makeinfo > > $ makeinfo --version > makeinfo (GNU texinfo) 4.8.90 > > But the warning persist. Well, never mind. > > Regards > /Karl > > [1] http://savannah.gnu.org/cvs/?group=texinfo This is fixed in latest texinfo cvs: Karl Berry: > I just added UTF-8 to the list of encoding names recognized by makeinfo > (from CVS). It just passes through the bytes as they are received, > which hopefully will be better than nothing. I can't undertake to > actually parse UTF-8 at this point (I added it to the TODO file :). > > Thanks, > Karl Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Styles [Was Re: Barline scans]
[moving this from bug-lilypond] [EMAIL PROTECTED]: > Karl Hammar wrote: > > Maybe we should have a "my style" section in the doc. > > Like section 4.3 Style sheets ? There you tell us how to do it. But perhaps more like the snippet respository, examples of different styles. Right now we "only" have one style, the default one. Plus "tweaks", where the tweaks are more something you do when lilypond don't cope with it, not a different style. Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Styles [Was Re: Barline scans]
[EMAIL PROTECTED]: > Karl Hammar wrote: > > [moving this from bug-lilypond] > > > > [EMAIL PROTECTED]: > >> Karl Hammar wrote: > >>> Maybe we should have a "my style" section in the doc. > >> Like section 4.3 Style sheets ? > > > > There you tell us how to do it. But perhaps more like the snippet > > respository, examples of different styles. Right now we "only" have > > one style, the default one. Plus "tweaks", where the tweaks are more > > something you do when lilypond don't cope with it, not a different > > style. > > I have no objection to this; see > http://lilypond.org/web/devel/participating/documentation-adding I guess it would go to 9.4 Style examples. Before I can present any "new" style I have to make one though. Regards /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Lilypond font design
[EMAIL PROTECTED]: > I was wondering if I could start some contribution to the medieval > notation support via redesigning the fonts that in my opinion don't look > very good. Especially referring to the mensural notehead style (I think ... Great! Is your goal, like Guthenburg, to make a few e's etc, to simulate the variability of handwriting also? Would that be possible within lilypond? == Btw, I have found an antiqua font: http://moorstation.org/typoasis/designers/lab/lab_dayroman.htm which could be useful. The copyright seems to be Hope the ghost of Guyot looks good enough for your designs. Have a blast with it. If you use it commercially, give something to your favourite charity, will ya? I will try to make it usable within lilypond, though I don't know how to handle the diftongs or the cases where there is two variant of the same letter. Is any who knows how to include tex's yfrak frakture fonts? Regards, /Karl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel