Re: Post Install Bug
This probably doesn't answer your question, because I don't know whether you wrote this line or the system did: /usr/local//lilypond/usr/bin/lilypond but there are 2 slashes (//) after local, and there should be just one, or else maybe there should be a bin between the slashes -- /usr/local/bin/lilypond/usr/bin/lilypond -- Tom * Gregg Mazel wrote: Error: /usr/local/bin/lilypond: line 4: /usr/local//lilypond/usr/bin/lilypond: No suchfile or directory /usr/local/bin/lilypond: line 4: exec: /usr/local//lilypond/usr/bin/lilypond: cannot execute: No such file or directory ??? Any ideas what may be happening here? I am using RHEL WS 4 Thanks, Gregg ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: producing archival scores
. . . if convert-ly doesn't work, most of the note-entry should be straightforward to reuse, leaving organization and tweaking to be done (for me, that usually takes about half of the time of preparing a score, so that's not so bad). I use LilyPond for cases that have intractable layout problems, either because of complicated text requirements or because of the the necessity of squeezing a score into 3 pages. Note entry goes extremely fast, and I spend 80 to 90% of my time on fixing the layout. So for me, preservation of layout is the prime requirement as regards archiving. I wonder what the typical note-entry-time/layout-tweak-time ratio is amongst LilyPond users. -- Tom ** Josiah Boothby wrote: Just to clarify one small thing: I think that it would be nearly impossible -- or at least extraordinarily difficult -- to compile on a modern distribution of Linux a sufficiently old version of Lilypond so that ancient .ly files can be used directly. The nice thing about the old ly files is that the syntax is usually similar enough that if convert-ly doesn't work, most of the note-entry should be straightforward to reuse, leaving organization and tweaking to be done (for me, that usually takes about half of the time of preparing a score, so that's not so bad). --Josiah ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: producing archival scores
Hi -- I think you're right that LilyPond (.ly) files aren't good for long-term archival, since LilyPond syntax changes so rapidly. Myriad (in France) has released a program called PDFtoMusic Pro that purportedly will convert a PDF file to MusicXML or to MIDI. Presumably the PDF file cannot be a scanned image; I think it has to be laid out in a music font. You can read about it at http://www.myriadonline.com/en/products/pdftomusicpro.htm Caveats: -- It's very expensive (U.S. $199). -- Does it really work? -- It is probable that in extracting the musical information, it might not extract the note-spacing information, in which case you would not really be extracting the *layout*, which I am sure is what you want to do. So this program is probably not what you want, but I mention it because you may not have heard of it and you still might want to look at all available options. Probably there are other LilyPond users that will have better suggestions. -- Tom ** Jason Merrill wrote: I'm wondering to what extent lilypond files can be considered archival, and if there is a good workflow for producing archival documents using lilypond. By this, I mean that now that I've taken the effort of copying a score into the computer, I'd like to save everyone in the future from making the same effort, and also allow them easiest access to a form of the score that provides them the greatest possible utility. PDF files are certainly good for looking at and printing, and practically everyone is set up to use them. However, you can't really edit them directly. Providing access to the .ly file also seems pretty good. It's easy to edit, and open source so there's no vendor lock in and all that. The problem is that I'm not sure I could convince some of my less technically oriented friends to use lilypond. Even after I tell them how much faster it is for me to type stuff in than it is to mess around with a mouse and finale, and how it's free and how I love it, I have a feeling the first time they see a compiler error because of a misplaced comma they are going to give up. This isn't a criticism of lilypond exactly--lilypond is aimed at a particular group of users and I think it serves them extremely well. Nonetheless, its steep learning curve makes me wary of considering it archival. So what other choices are there? Proprietary formats are out of the question because they're, well, proprietary. That pretty much leaves MusicXML, as far as I know, which benefits from being readable by any program my less technically oriented friends are likely to use. As far as I can tell, however, there's no way to get lilypond files into MusicXML format. Say in a few years some program that is vastly superior to lilypond comes along, and it's so good that no one wants to use lilypond anymore. Unless I can get my lilypond files into that new program, they're not so useful anymore. It seems more likely that this hypothetical new system will allow me to import MusicXML than to import .ly files. Is there any work being done on a system that allows lilypond to compile to MusicXML (or some other good technology I don't know about) instead of PDF ? From what I understand, the makers of Lilypond don't think very highly of MusicXML. I'd appreciate any thoughts on this problem. Am I wrong in thinking that lilypond files aren't really archival? Is there some solution I haven't thought of? Regards, Jason Merrill ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Copyrights (was Re: No time/no bars)
Copyright question: I can find folk (or traditional) songs (or dances) from many countries in Eastern Western Europe a) in printed publications (from Kammen, Mel Bay, others); b) in midi files available on the Internet. In many cases, actually verifying the composition date is not easy. I extract only the melody (often, multiple versions with different melodies exist). The specified chords are often wrong (IMHO), so I change them. I write a new 2nd line (harmony or counterpoint). Can you point me to any source of information on copyright that might help in clarifying the copyright status of a melody I have lifted from some (supposed) folk/traditional song or dance? And for 3rds-or-6ths harmonies, which are (to a certain extent) obvious, are published harmonies to folk songs effectively copyrighted? (I don't expect an answer to that question, but maybe you know somewhere I could find information on that issue.) The situation with Renaissance/Baroque/Classical/Romantic music is bad enough, but it is possible that the issues with (nominal) folk music are even messier. Thank you for your advice. -- Tom * Kevin Dalley wrote: You probably know about Mutopia's page on copyright. Their rule of thumb is: 1. The composer, lyricist, arranger and editor all must have been dead for more than seventy years. 2. The work must have been published prior to 1923. http://www.mutopiaproject.org/contribute.html Individual countries have different limits. I would wonder whether your score has enough contact by recent people to still be under copyright. If you contact Mutopia or Gutenberg, they can advise you further. http://www.gutenberg.org/wiki/Gutenberg:The_Sheet_Music_Project ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Italic Greek and nonroman Unicode?
Hi, For getting italic Greek characters -- 1) Do you have a font with italic Greek characters installed on your computer? (I don't on mine.) 2) If so, is that italic Greek font file included amongst the fonts that your installation of LilyPond knows about? If an italic Greek font is not available to Lily, it probably chooses a best-fit font, which would be a Greek font with upright characters. In addition, if the only italic Greek font you had installed were a sans-serif font, then \markup { \italic \roman G-r-e-e-k-c-h-a-r-s } would almost certainly *still* pick upright roman Greek as the best fit. -- Tom Trevor Baca wrote: Hi, ? The output of \markup \italic { θ } is upright instead of italic. (Compare with \markup \italic { th } which is, in fact, italic.) Is there a way to get italic Greek (and other nonroman) Unicode markup? -- Trevor BaÄ^Ía [EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \flageolet too big
Hi -- You said \tweak only accepts `-' due to its definition. Is there a definition of \tweak given somewhere in some .scm file? Or is it defined in C++ code? -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Fixed Vertical Spacing
\override VerticalAxisGroup #'minimum-Y-extent = ##f } I wouldn't have imagined that a spacing value could be set to false Me neither. Are there any guidelines on what properties can be set to ##f, or should we just always try that when we are trying to make something have a null effect? -- Tom *** You can indeed set the vertical height of a Lyrics context to zero: \new Lyrics \with { \override VerticalAxisGroup #'Y-extent = #'(0 . 0) \override VerticalAxisGroup #'minimum-Y-extent = ##f } \lyricmode{ Here is some text } /Mats Thank you very much! I wouldn't have imagined that a spacing value could be set to false :-) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: text markup underlining
Hi, Is there a simple way to underline text in markups . . . This is not simple, but it will give you underlined markup: foo = \markup { \combine abc ___ } (In between the 2nd set of quote signs are three underline characters.) You may have some trouble getting the exact spacing you would like before and after underlined text. -- Tom * Jean-Marc LeGrand wrote: XP + lily 2.10 Hi list ! Coming from the french list where we are several to seeking a simple way of underlining text : Is there a simple way to underline text in markups (and everywhere else, such as headers) ? I've seen in the list something like \\underline, but it doesn't work at all. I'd be very surprised to learn that something as simple as \bold or \italic doesn't exist for underlining... Best regards ! JMarc ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: 2 problems
Hi, Your .ly file contains the line \key = { \key a \major } I don't think there are any legal LilyPond expressions of the form \foo = anythingatall Did you mean to write something like mykey = { \key a \major } ? However, I don't understand the error message the system gave you. -- Tom rpalmer wrote: I also am having problems with the file structure, so I decided to start simply, and from scratch, but I'm having problems with that, too. I can't figure out what's wrong with this file, but I suspect the problem may be related to the missing version problem. % Begin Snippet %%% %% A Major Scale \version 2.10.10 \include english.ly \header {} \key = { \key a \major } \time 4/4 scale = { A1 } % Score \score { \scale } %% End Snippet % And here's the log: % Start % # -*-compilation-*- Changing working directory to `C:/Documents and Settings/rpalmer/My Documents/Ralph/Sheet Music/LilyPond/Classical/Scales' Processing `C:/Documents and Settings/rpalmer/My Documents/Ralph/Sheet Music/LilyPond/Classical/Scales/A Scale.ly' Parsing... C:/Documents and Settings/rpalmer/My Documents/Ralph/Sheet Music/LilyPond/Classical/Scales/A Scale.ly:1:2: error: syntax error, unexpected $undefined, expecting '=' ^?þ %C:/Documents and Settings/rpalmer/My Documents/Ralph/Sheet Music/LilyPond/Classical/Scales/A Scale.ly: 0: warning: no \version statement found, please add \version 2.10.16 for future compatibility error: failed files: C:\\Documents and Settings\\rpalmer\\My Documents\\Ralph\\Sheet Music\\LilyPond\\Classical\\Scales\\A Scale.ly %%% End %% ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: New argument types (Was: Constructive Criticism and a Question)
. . . I'd always prefer extensions that do not change the syntax. I can't argue with that preference. But in \foo c \nul 4. % \nul would be a sort of syntactic breath mark the \nul would not constitute a change in syntax -- \nul would simply be another LilyPond keyword. \nul means this: the preceding following elements are separate items. E.g., here, c \nul 4. is prevented from meaning c4. Most programming languages make whitespace a symbol separator and therefore do need a construct like \nul. But LilyPond accepts c 4. as meaning c4. so LilyPond will sometimes need a separator like \nul. Such a keyword obviously would not need to be called \nul; it could be called \idem and be thought of as an identity operator: \idem c means c \idem {c8 d e} means {c8 d e} \idem 1*5/8 means 1*5/8 And \foo c \idem 4. means \foo has 2 args: c and 4. -- Tom On Mon, 8 Jan 2007, Bertalan Fodor wrote: When I was writing the Antlr version of the parser I realized that extending the grammar in dozens of ways makes much more complicatons and unreadability than you gain in compactness. Actually I don't like that I almost have to reimplement LilyPond just to be able to decide if an input is syntactically correct. :-) So I'd always prefer extensions that do not change the syntax. But I may be not right. Bert --- Original Message --- From: [EMAIL PROTECTED] To: Erik Sandberg [EMAIL PROTECTED] Sent: 07. 01. 08., 5:54:21 Subject: New argument types (Was: Constructive Criticism and a Question) On Sun, 7 Jan 2007, Erik Sandberg wrote: BTW, one of the biggest problems (IMHO) in the lilypond language is that we can't extend the parser to accept durations as parameters to music functions: \foo c 4. is ambiguous; it's unclear whether the 4. is the c's duration, or if it's a separate argument. It's probably unfortunate that the choice was made to tolerate spaces in things like c 4. ~ but I'm sure that that cannot be undone at this point. Increasing the number of different argument types for music functions would almost certainly be extremely useful for users, who, judging from this mailing list, seem to have an unlimited imagination when it comes to wanting to be able to extend LP syntax. Since recognizing a duration expression is purely a notational problem (in the sense that a notation has to be found that will be unambiguous for the parser), it might be worth asking for people's ideas. The things I can think of offhand are the following -- \foo c (4.) % no good -- confusion with slurs \foo c \nul 4. % \nul would be a sort of syntactic breath mark \foo c \ 4. % \ -- same idea as \nul (short, but maybe risky?) \foo c \\ 4.% \\ -- same as \nul \foo c =4. % = prefixed to any expression: this is separate item -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: New argument types (Was: Constructive Criticism and a Question)
\foo c \nul 4. % \nul would be a sort of syntactic breath mark \foo c \ 4. % \ -- same idea as \nul (short, but maybe risky?) \foo c \\ 4.% \\ -- same as \nul \foo c =4. % = prefixed to any expression: this is separate item . . . If we should add a new syntactical element for durations, then we should look for some symbol on the keyboard that isn't already used in the current syntax. I wasn't proposing a symbol to indicate a duration, but rather a spacing symbol that would indicate that two elements *such as* c and 4. were separate items, i.e., not equivalent to c4. As regards a symbol on the keyboard that isn't already used, that's pretty hard to find. . . . I definitely don't like the idea of reusing symbols like \ or \\ or = to have several different meanings in different syntactical constructs. For example, I think this is one of the big problems with the C++ programming language. OK; using \nul to indicate separation of two elements would not involve adding a new meaning to the symbol \; it would involve adding a new keyword. I don't disagree with your desire to avoid situations where a given symbol has different meanings in different contexts, but LilyPond does already have a certain amount of this kind of thing -- -- c4.-. -- ( used in Scheme expressions and for slurs -- * used in durations and in expressions to override autobeaming -- the two # in ##t do not signify the same thing Your point might be that all this is already bad enough, let's not make it any worse -- and I guess I would have to agree that you have a point. Increasing the number of different argument types for music functions would almost certainly be extremely useful for users . . . I doubt that the number of argument types is any major problem. Maybe I misunderstood Erik's statement that There are three types of arguments to music functions: Music, Markup, and Scheme. I realize that Scheme arguments are a catch-all for many kinds of arguments, but Scheme expressions are cumbersome, and having types for more of certain common things (for example, Fraction for 2/3 and 3:2) is something that users might find helpful. -- Tom On Mon, 8 Jan 2007, Mats Bengtsson wrote: [EMAIL PROTECTED] wrote: Increasing the number of different argument types for music functions would almost certainly be extremely useful for users, who, judging from this mailing list, seem to have an unlimited imagination when it comes to wanting to be able to extend LP syntax. I doubt that the number of argument types is any major problem. The first big hurdle is the Scheme language itself and even if you know Scheme, the next big hurdle is to figure out the connection between LilyPond and Scheme. Since recognizing a duration expression is purely a notational problem (in the sense that a notation has to be found that will be unambiguous for the parser), it might be worth asking for people's ideas. The things I can think of offhand are the following -- \foo c (4.) % no good -- confusion with slurs \foo c \nul 4. % \nul would be a sort of syntactic breath mark \foo c \ 4. % \ -- same idea as \nul (short, but maybe risky?) \foo c \\ 4.% \\ -- same as \nul \foo c =4. % = prefixed to any expression: this is separate item Sorry to sound so negative, but I definitely don't like the idea of reusing symbols like \ or \\ or = to have several different meanings in different syntactical constructs. For example, I think this is one of the big problems with the C++ programming language. If we should add a new syntactical element for durations, then we should look for some symbol on the keyboard that isn't already used in the current syntax. If you currently want a duration as the input to a music function and don't like to use (ly:make-duration 2 0) as the argument value, then you can simply use a note value (even a spacing note like s2) as the argument and copy the duration of that one within the music function. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
New argument types (Was: Constructive Criticism and a Question)
On Sun, 7 Jan 2007, Erik Sandberg wrote: BTW, one of the biggest problems (IMHO) in the lilypond language is that we can't extend the parser to accept durations as parameters to music functions: \foo c 4. is ambiguous; it's unclear whether the 4. is the c's duration, or if it's a separate argument. It's probably unfortunate that the choice was made to tolerate spaces in things like c 4. ~ but I'm sure that that cannot be undone at this point. Increasing the number of different argument types for music functions would almost certainly be extremely useful for users, who, judging from this mailing list, seem to have an unlimited imagination when it comes to wanting to be able to extend LP syntax. Since recognizing a duration expression is purely a notational problem (in the sense that a notation has to be found that will be unambiguous for the parser), it might be worth asking for people's ideas. The things I can think of offhand are the following -- \foo c (4.) % no good -- confusion with slurs \foo c \nul 4. % \nul would be a sort of syntactic breath mark \foo c \ 4. % \ -- same idea as \nul (short, but maybe risky?) \foo c \\ 4.% \\ -- same as \nul \foo c =4. % = prefixed to any expression: this is separate item -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
. . . Note also that the tupletSequence function would be implemented entirely in Scheme . . . I'm not very fluent in Scheme, so this is a naive question. I presume that ratios like 3:2 (or 2/3) could be made into some kind of object type (possibly a moment). So I could imagine that it would be possible to write a Scheme function definition to cover a syntax like \tupletSequence m:n #'( {...} {...} ... ) where the first argument is a moment and the second is a list of literal music expressions. (And I suppose I'm too optimistic about that syntax; probably those {...} would have to be sprinkled with # or $ or other spices.) But there are some questions: 1) I don't see how this could accommodate the case where one of the music expressions *were* a variable reference (\var) or *contained* a variable reference. 2) Because the syntax \tupletSequence m:n { {...} {...} } is nicer, it would be good if it could be written that way, but then the second argument would not be a standard Scheme entity, so I don't see how Scheme could handle it at all. I don't really want you to explain to me how the tupletSequence function would be written in Scheme, as I think that that would wind up being an exceedingly long answer. My question is only this: with your knowledge of Scheme, is it clear to you that difficulties (1) (2) are handleable? Can tupletSequence really be defined in pure Scheme, as long as the parser is modified to recognize the object m:n or n/m (so that there would exist a type-verification-name for the object m:n for use in defining Scheme functions)? -- Tom * On Sat, 6 Jan 2007, Erik Sandberg wrote: On Friday 05 January 2007 22:53, [EMAIL PROTECTED] wrote: . . . The { m1 m2 m3 } syntax is used for repeat alternatives already, and the meaning is very clear: Each music expression between the outer { } is a separate argument. Note also that the tupletSequence function would be implemented entirely in Scheme . . . { {g8 f e} \seq {b8 a g} } \tuplet {g f e} \tuplet \seq \tuplet {b a g} {{c d e} {{f g} a} b c} \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c OK. Thank you for clarifying that. I understand, from your original remarks, that (here) you have written just \tuplet in the interest of brevity, and that the full form would be \tupletSequence 3:2 {{c d e} {{f g} a} b c} meaning \tuplet 3:2 {c d e} \tuplet 3:2 {{f g} a} \tuplet 3:2 b \tuplet 3:2 c yes, that's right. which implies the following things: a) tupletSequence is a Scheme function which just breaks up its subexpressions naively, without any semantic analysis. b) \tuplet is a real LilyPond function; it is identical to \times, except that the notation 3:2 (meaning 2/3) would be allowed. c) People would have to write \tupletSequence m:n { {...} {...} }, not \tuplet m:n { {...} {...} }. yep, this is right (thanks for expressing it clearly). d) Any semantic errors in the subexpressions would be reported by the \tuplet function, not by the \tupletSequence Scheme function. technically this is not correct (the \tuplet function doesn't detect semantic errors), but in principle you're right (\tuplet and \tupletSequence actually only create Music data structures, without performing semantic analysis; most 'semantic errors' are detected either when these data structures are further processed into typeset scores, or by the parser before the function applications) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
Trevor -- Thank you for your very clear explanation. I learned a lot from that. I am nevertheless amazed that a performer would be able to keep track of 15/56ths of a whole note(!). Note, importantly, that, with the present tuplet syntax, lily handles all tuplets -- *including broken ones* -- correctly out of the box. This sort of thing brings Finale and Sibelius screaming to their knees. (This seems to be an extension of the fact that lily gets one thing *exceedingly* correct: the duration model of musical time. Well, isn't that a good argument for just leaving the whole thing alone? I think changing \times to \tuplet is a great idea for the reason that started the thread: \times is too close to \time. That I really don't get. LilyPond is written in *English*. There is a word time and there is another word times; they don't mean the same thing, that's all. To write LilyPond code, we have to distinguish between \override \set, Script TextScript, \addlyrics \lyricsto, (not to mention foo bar). People who speak a Romance language have to learn the difference between \clef \key. And we have to write things like #(override-auto-beam-setting '(end * * 5 8) 3 8) and \override Score.RehursalMarc #'brake-visibility = #begin-of-align-invisibile and \acciaccatura { c16[ d] } e4 % 4 c's, not 2 or 3, no ch's or k's correctly. But people are confused by \time vs. \times ? Hmmm. Well then, I'm confused about \with-color, \center-align, and \lyricmode (I've never seen a lyric). Could we please get these changed to \with-colour, \centre-align, and \lyricsmode? -- Tom On Tue, 2 Jan 2007, [UTF-8] Trevor BaÄa wrote: On 1/2/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: ... in irregular, tuplet-intensive music it may be sensible to create a music function for sequences of tuplets. In addition, it's IMHO a more lilypondesque solution than tupletSpannerDuration, once we support fractions as music function arguments. If I understand you correctly, this would involve specifying, one way or another, the duration of each actual tuplet. Explicit specification of a duration (other than by an external tupletSpannerDuration declaration) has been suggested by another user, and IMO it would be a good idea, although I gather that Han-Wen is not in favour of the idea. But I have a question about how one would specify a duration. Specifying durations in the way we usually think about them allows actual durations that look like this: 1== 1 2... == 15/16 2.. == 7/8 2. == 3/4 4... == 15/32 4.. == 7/16 4. == 3/8 4== 1/4 (etc.) so that only durations of the form 2^(p-1) / 2^q (where p q) can be specified this way. But given the extravagancies of contemporary music, wouldn't it be possible, for example, to have a tuplet where 4 eighth notes would be played over a time interval of 5 eighths -- \times 5/4 {c8 d e f} Or does such a thing never happen? It most certainly does. All the time, in fact. Not only that, but an increasing amount of modern music considers the following valid: \times 5/7 { c'16 c'16 c'16 c'16 c'16 c'16 } % note six sixteenths only (not seven) What's going on here are 7 sixteenths in the time of 5 sixteenths BUT only the first 6 of those 7 sixteenths actually appear. You could call this sort of thing a broken tuplet, and the overall duration of the figure here is then 6/7 of 5 sixteenths or 15/56 of a whole note (which lily would express as #(ly:make-moment 15 56)). These broken tuplets would then pose a much, much greater difficulty of expressing were we to move to a duration-based syntax for tuplets. Broken tuplets may look insane, but take a look at the devestatingly beatiful Sciarrino flute pieces -- plenty of examples, and all completely idiomatic. Note, importantly, that, with the present tuplet syntax, lily handles all tuplets -- *including broken ones* -- correctly out of the box. This sort of thing brings Finale and Sibelius screaming to their knees. (This seems to be an extension of the fact that lily gets one thing *exceedingly* correct: the duration model of musical time. Out of the box you can also specify time signatures like 6/15, 5/28, 3/10 and so on, all of which bring other musical notation programs -- with the the notable exception of SCORE -- to a crashing standstill. Or at least the last time I bothered to check.) I've been watching the tuplet discussion with some hesitation. I think chaning \times to \tuplet is a great idea for the reason that started the thread: \times is too close to \time. But it seems to me that most of the suggestions following that initial suggestion begin to confuse the essential time-scaling function of tuplet brackets (which is their absolutely core purpose, both in the common practice and now) and
Re: Constructive Criticism and a Question
. . . \tupletSequence 2/3 {{c d e} {f g a} {b c d}} would just be a shorthand for \tuplet 2/3 {c d e} \tuplet 2/3 {f g a} \tuplet 2/3 {b c d} That would add a big semantic burden to the meaning of { and }. Currently {{c d e} {f g a} {b c d}} means the same thing as {c d e f g a b c d}. I would hate to have to write the parser that would figure out (reliably) what {{c d e} {f g} {a b c}} or {{c d e} {{f g} a} b c} or {{c8 d e} {f4 g a}} mean (as arguments to \tupletSequence). And if \seq = {{a8 b c} {d8 e f}} then, since LP macros are *not* string macros, what will the parser do with the argument { {g8 f e} \seq {b8 a g} } ??? I think the parsing problem would be wildly intractable. -- Tom *** On Wed, 3 Jan 2007, Erik Sandberg wrote: On Tuesday 02 January 2007 22:29, [EMAIL PROTECTED] wrote: ... in irregular, tuplet-intensive music it may be sensible to create a music function for sequences of tuplets. In addition, it's IMHO a more lilypondesque solution than tupletSpannerDuration, once we support fractions as music function arguments. If I understand you correctly, this would involve specifying, one way or another, the duration of each actual tuplet. Explicit specification of a duration (other than by an external tupletSpannerDuration declaration) has been suggested by another user, and IMO it would be a good idea, although I gather that Han-Wen is not in favour of the idea. No, \tupletSequence 2/3 {{c d e} {f g a} {b c d}} would just be a shorthand for \tuplet 2/3 {c d e} \tuplet 2/3 {f g a} \tuplet 2/3 {b c d} It is problematic to use durations to decide the scaling of a tuplet; this has been discussed previously in this thread. E.g., if you scale 3 8th notes to duration 4, then it is unclear whether it corresponds to factor 2/3 or 4/6. But I have a question about how one would specify a duration. Specifying durations in the way we usually think about them allows actual durations that look like this: 1== 1 2... == 15/16 2.. == 7/8 2. == 3/4 4... == 15/32 4.. == 7/16 4. == 3/8 4== 1/4 (etc.) so that only durations of the form 2^(p-1) / 2^q (where p q) can be specified this way. But given the extravagancies of contemporary music, wouldn't it be possible, for example, to have a tuplet where 4 eighth notes would be played over a time interval of 5 eighths -- \times 5/4 {c8 d e f} Or does such a thing never happen? If it does, then the tuplet's duration, equal to 5/8 here, cannot be expressed simply by a dotted-note notation such as in the preceding list. you could always write 1*5/8, which is a valid duration. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
There is a word time and there is another word times; they don't mean the same thing, that's all. Only a native speaker can say that :-) Honestly, it's very easy to intermix them during fast typing. I don't say that the difference between those two words is problematic, just that it unnecessarily increases the probability of a typo. I respectfully disagree. I've never mistyped either word in a LilyPond file. Typing / for \, yes, I've done that; does that mean that I should be asking for the elimination of the \ symbol? And how many times have I seen the query . . . Score.RehersalMark . . . doesn't work. Should we change that to R-mark to avoid typos? Apostrophes (') are a problem too: it's hard to see them when you're looking for errors; let's replace them with something clear like *. Hehe. :-) That's heehee on this side of the pond. Be glad it's not a LilyPond keyword. (Although I have frequently felt the need for a \hoho What the [EMAIL PROTECTED] construct when I'm trying to position markup.) -- Tom ** On Fri, 5 Jan 2007, Werner LEMBERG wrote: I think changing \times to \tuplet is a great idea for the reason that started the thread: \times is too close to \time. That I really don't get. LilyPond is written in *English*. US English or British English? This makes a difference... There is a word time and there is another word times; they don't mean the same thing, that's all. Only a native speaker can say that :-) Honestly, it's very easy to intermix them during fast typing. I don't say that the difference between those two words is problematic, just that it unnecessarily increases the probability of a typo. To write LilyPond code, we have to distinguish between \override \set, Script TextScript, \addlyrics \lyricsto, (not to mention foo bar). you are missing the point here. People who speak a Romance language have to learn the difference between \clef \key. Hehe. :-) Hmmm. Well then, I'm confused about \with-color, \center-align, and \lyricmode (I've never seen a lyric). Could we please get these changed to \with-colour, \centre-align, and \lyricsmode? Regarding \lyricsmode I agree. The other two, well, could be handled easily with aliases. Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
. . . The { m1 m2 m3 } syntax is used for repeat alternatives already, and the meaning is very clear: Each music expression between the outer { } is a separate argument. Note also that the tupletSequence function would be implemented entirely in Scheme . . . { {g8 f e} \seq {b8 a g} } \tuplet {g f e} \tuplet \seq \tuplet {b a g} {{c d e} {{f g} a} b c} \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c OK. Thank you for clarifying that. I understand, from your original remarks, that (here) you have written just \tuplet in the interest of brevity, and that the full form would be \tupletSequence 3:2 {{c d e} {{f g} a} b c} meaning \tuplet 3:2 {c d e} \tuplet 3:2 {{f g} a} \tuplet 3:2 b \tuplet 3:2 c which implies the following things: a) tupletSequence is a Scheme function which just breaks up its subexpressions naively, without any semantic analysis. b) \tuplet is a real LilyPond function; it is identical to \times, except that the notation 3:2 (meaning 2/3) would be allowed. c) People would have to write \tupletSequence m:n { {...} {...} }, not \tuplet m:n { {...} {...} }. d) Any semantic errors in the subexpressions would be reported by the \tuplet function, not by the \tupletSequence Scheme function. I know this was all clear to you before; I am just summarizing what I got out of your explanation. I think I have to withdraw my objections; your reminder that the \alternative construct already uses {...} to indicate subexpressions is a good point. -- Tom On Fri, 5 Jan 2007, Erik Sandberg wrote: On Friday 05 January 2007 09:22, [EMAIL PROTECTED] wrote: . . . \tupletSequence 2/3 {{c d e} {f g a} {b c d}} would just be a shorthand for \tuplet 2/3 {c d e} \tuplet 2/3 {f g a} \tuplet 2/3 {b c d} That would add a big semantic burden to the meaning of { and }. Currently {{c d e} {f g a} {b c d}} means the same thing as {c d e f g a b c d}. It's not a problem. The { m1 m2 m3 } syntax is used for repeat alternatives already, and the meaning is very clear: Each music expression between the outer { } is a separate argument. Note also that the tupletSequence function would be implemented entirely in Scheme, the parser would not be modified. Examples: I would hate to have to write the parser that would figure out (reliably) what {{c d e} {f g} {a b c}} \tuplet {c d e} \tuplet {f g} \tuplet {a b c} or {{c d e} {{f g} a} b c} \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c or {{c8 d e} {f4 g a}} \tuplet {c d e} \tuplet {f4 g a} mean (as arguments to \tupletSequence). And if \seq = {{a8 b c} {d8 e f}} then, since LP macros are *not* string macros, what will the parser do with the argument { {g8 f e} \seq {b8 a g} } \tuplet {g f e} \tuplet \seq \tuplet {b a g} -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
On Fri, 5 Jan 2007, Han-Wen Nienhuys wrote: the other, perhaps more valid reason, is that \tuplet more closely matches the purpose than \times. OK, I'm clearly in the minority here; I think of \times 2/3 {c8 d e} as a series of 12th notes. I would be delighted if LilyPond let me write c12 d e -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
To be serious: Do you see a necessity for a basic LilyPond command to be an abbreviation of another? Just think of editors which are able to complete a command with the tab key as soon as you type the first few letters (Emacs, for example). In case of \time vs. \times, you always have to add a final `s' or select between two choices. OK, I use Visual Basic's IDE with auto-completion, so I'm familiar with what you're talking about. (Yes, I hate Microsoft, but I don't have much choice.) But I can see this boils down to broad cultural differences -- -- I touch type, so I could care less how easy something is to type: it's all easy (I use NotePad in Windows). -- 99% of my time is spent arranging ( re-arranging); the minuscule amount of time I spend creating a .ly file is negligible. -- I have skeleton .ly files; I load one of them into NotePad and make some minor changes in the boilerplate. Virtually everything I type is notes, not keywords. So we've got different needs. De gustibus... -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
I would be delighted if LilyPond let me write c12 d e Then it would need to know what kind of note head and how many flags it should use for the note. However, you can write c8*2/3 d e to get the duration you want (even though LilyPond won't add any tuplet marker). You're right. There are no 12th-note noteheads; a tuplet function is a necessity. My remark was flippant. I've never used the c8*m/n notation, as I can't figure out why it would be useful. But I appreciate your reminding me of it; maybe someday I'll see the light. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
For the syntax topic, I would also suggest to standardize the tweak entries. At this moment, we can have for example : \override Voice.Textscript #'padding = #3 (a number) \override Voice.Stem #'stencil = #ly:stem::print (a function) #(set-global-staff-size 13) \set fontSize = #2 This diversity of syntax is hard to understand and very hard to remember for a non-programmer. Maybe we could replace them by \ functions?? Ho ho. So the hue and cry for replacing \times by \tuplet has now led to a request to overhaul all of LilyPond's syntax. *That* will be a big job! -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
... in irregular, tuplet-intensive music it may be sensible to create a music function for sequences of tuplets. In addition, it's IMHO a more lilypondesque solution than tupletSpannerDuration, once we support fractions as music function arguments. If I understand you correctly, this would involve specifying, one way or another, the duration of each actual tuplet. Explicit specification of a duration (other than by an external tupletSpannerDuration declaration) has been suggested by another user, and IMO it would be a good idea, although I gather that Han-Wen is not in favour of the idea. But I have a question about how one would specify a duration. Specifying durations in the way we usually think about them allows actual durations that look like this: 1== 1 2... == 15/16 2.. == 7/8 2. == 3/4 4... == 15/32 4.. == 7/16 4. == 3/8 4== 1/4 (etc.) so that only durations of the form 2^(p-1) / 2^q (where p q) can be specified this way. But given the extravagancies of contemporary music, wouldn't it be possible, for example, to have a tuplet where 4 eighth notes would be played over a time interval of 5 eighths -- \times 5/4 {c8 d e f} Or does such a thing never happen? If it does, then the tuplet's duration, equal to 5/8 here, cannot be expressed simply by a dotted-note notation such as in the preceding list. A duration of 5/8 would have to be expressed by something similar to a make-moment fraction. (Even with this complication, I would still find it desirable to be able to express the duration of a tuplet within the [hypothetical] \tuplet construct; it's the only thing that would make \tuplet functionally different from \times anyway.) -- Tom ** On Tue, 2 Jan 2007, Erik Sandberg wrote: On Monday 01 January 2007 20:57, Mats Bengtsson wrote: Frédéric Chiasson wrote: Might it be possible to use \tuplet 3:2 {x x x} for the usual operation, and if we want to have many tuplets of the same kind, to use \tuplet 3:2 { {x x x} {y y y} {z z z} } Might resolve the clarity problems. Since it's easy to define your own function \triplet which does the equivalent of \tuplet 3:2 ..., and since you could give it a short name like \t, your proposal wouldn't save much typing or increase the clarity compared to \t {x x x} \t {y y y} \t {z z z} In these situations with repetitive triplet patterns, I definitely prefer the current kind of solution with \set tupletSpannerDuration = #(ly:make-moment 1 4) There is one problem with this: If the 'most common' tuplet duration is 1/4, but you occasionally have a different tuplet with _longer_ duration, then tupletSpannerDuration will break the long tuplet into several shorter durations, unless you always remember to \unset tupletSpannerDuration all the time. So, in irregular, tuplet-intensive music it may be sensible to create a music function for sequences of tuplets. In addition, it's IMHO a more lilypondesque solution than tupletSpannerDuration, once we support fractions as music function arguments. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Numbers in variable names Re: thoughts
I would expect that \myvar1 refers to the variable myvar1 \myvar 1 refers to the var myvar followed by 1 As regards the expression \myvar 1 in what context do you use that? -- Tom Andrew Black wrote: I would really like to see numbers in name of variables. I am not expert on parsers so apologies if this is hard but... If you have myvar = something myvar1 = something else I would expect that \myvar1 refers to the variable myvar1 \myvar 1 refers to the var myvar followed by 1 ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: thoughts
As regards allowing numbers in identifier-names: It might be possible to enable numbers, though. I would welcome an analysis. For lyrics, I rely on the fact that identifier-names cannot contain numbers: I = \markup { C } Vs = \markup { G7 } and later, in lyricmode, things like | \Vs2 \I2 | I know this is very unconventional. Does anybody else use identifiers in any situation where he/she relies on the fact that identifier-names cannot contain numbers? (I use lyrics for typesetting chords because I want to have the use of completely arbitrary symbols and underlining to express, succinctly, what I mean. Obviously, the resulting music is not for external distribution.) -- Tom ** Orm Finnendahl escreveu: P.S.: Maybe one thing: Apart from suggesting to rewrite lilyponds parser from scratch it would be a tremendous thing if lilypond could get rid of some TeX related restrictions, especially the limitation to alphabetic characters in definitions. It would make things so much easier being able to use underscores and numbers in definitions! Is it really that hard to do (is lilypond really still using the TeX parser and does that actually mean you have to write the parser from scratch)? numbers and underscores do make things easier to read, but it makes things hard to parse. Consider: c4_\staccato_\markup { bla } does this reference \staccato or \staccato_ ? It might be possible to enable numbers, though. I would welcome an analysis. And no, lilypond is not in any way related to TeX -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Constructive Criticism and a Question
I don't mind changing \times to \tuplet, and agree that the confusion with \time is a bad thing. We could make \tuplet accept 3:2 2/3 and 3. Opinion -- (1) If you reduce this to a single keyword, then don't allow the bare argument 3: \times 3 looks like \times 3/1 to me; so of course, I'm a dodo, but I predict that Mats Erik several others would wind up spending a lot of time explaining what \times 7 (or \tuplet 7) means. (2) \times 2/3 and \tuplet 3:2 don't mean the same thing: \times 2/3 {c8 d e d e f} makes sense, but I don't think that \tuplet 3:2 {c8 d e d e f} does. The least messy option would be the status quo. The keyword \times is perfectly clear. You *could* keep \times and *add* the keyword \tuplet with the syntax \tuplet m:n {sequence-of-notes}, but then when the \tuplet expression is parsed, checks should be performed that would accept \tuplet 3:2 {c8 d e} and probably accept \tuplet 3:2 {g4 b8} but would reject \tuplet 3:2 {c8 d e d e f} You would be opening up a big can of worms by adding a *genuine* \tuplet construct. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Scheme question on strict substitution
Hello, As regards the issue of context-free equivalence -- I can say foo = \markup { \bold Zanzibar } bar = \markup { Stand on \foo } but I can't say bar = \markup { Stand on \markup { \bold Zanzibar } } [so] \foo is not equivalent to \markup { \bold Zanzibar } despite the = sign in the macro definition The reason for this is that foo is not a macro; it's a variable. Similarly, in C you can write int i = 5+9; foo(i); which is _not_ the same as the (invalid) expression foo((5+9)); (this example is not exactly analogous to what you're trying, but it illustrates that variables and macros are different things). No, it illustrates that variables and literals are different things. In C, means contents of an address, and i is an address, but (5+9) is not, so you can't write in front of (5+9). But in LilyPond, \ in \foo means eval(foo), where foo is a variable, but \ in \markup is not an eval operator, or any other kind of operator, it is just a character used lexically to indicate a keyword. There will inevitably arise cases where users are confused about acceptable syntax because of the various different uses of \ (consider also 2\cm). The special thing about 'markup' is that it isn't a function; it's rather a special token that marks that the following code should be interpreted as markups. If that's all there were to it, then bar = \markup { Stand on \markup { \bold Zanzibar } } would work. The special thing about \markup is that it is analyzed strictly lexically: it can have only certain lexical items in it, like \bold, \raise, \column,... Given that as a starting point, it must have been very difficult to write the additional code to allow it to contain also constructs like \foo (where foo is a defined variable). If it had been analyzed dynamically, then *both* the above expression and bar = \markup { Stand on \foo } would work, since \foo and \markup { \bold Zanzibar } both produce exactly the same stencil as a result. Maybe I'm griping too much, maybe that's what you meant by saying that \markup isn't a function. I must sound ungrateful, nitpicking about syntactical inconsistencies. To be more reasonable, what I have learned by using *any* typesetting program is that music layout is wildly difficult. It is almost unbelievable that Han-Wen, Jan, and others (I'm sorry I don't know all the names) managed to create a working system to produce such beautiful results. Certain parts of LP syntax are hard to be sure of when you're writing a .ly file, but the gorgeous printed output never ceases to amaze me. -- Tom *** On Fri, 1 Dec 2006, Erik Sandberg wrote: On Thursday 30 November 2006 21:32, [EMAIL PROTECTED] wrote: Hello, . . . one problem is that this [giving the syntax of each keyword] would still just tell a small part of the full syntax. I think it would give a big part of the full syntax, even if not the whole picture. It would enable a user to know (1) what type of arguments have to follow the keyword; (2) whether (s)he has accidentally omitted one of the required arguments (when debugging); (3) whether (s)he should write a macro definition or a function definition to specify a \whatever construct involving the keyword; (4) what the types should be in the event that (s)he winds up writing a function definition. Full or not, that's a lot of useful information. And I'm talking about just a list of the syntax for each keyword, *not* the semantics. A syntax specification can be short but still tremendously useful. Specification of the semantics takes a lot of blah-blah, and nobody would have the time to write up all the semantics. Another problem is that the rule I gave really was too simple. For example, you cannot say ^some text in a .ly file without having a note in front of it, still you can define a macro mytext = ^some text and then use it as c \mytext That's a general problem in LilyPond, knowing what kind of expression constitutes a valid right-hand side of a macro definition. (I'm amazed that the above definition works.) A different but related problem concerns something I don't know the right term for, something like context-free equivalence maybe: for example, I can say foo = \markup { \bold Zanzibar } bar = \markup { Stand on \foo } but I can't say bar = \markup { Stand on \markup { \bold Zanzibar } } You will object that I would have no *reason* to say that anyway, but it nevertheless constitutes a toy example of non-transferability: \foo is not equivalent to \markup { \bold Zanzibar } despite the = sign in the macro definition, and that's surprising. The reason for this is that foo is not a macro; it's a variable. Similarly, in C you can write int i = 5+9; foo(i);
Re: Scheme question on strict substitution
Hello, It may help your understanding to know that \tweak itself is implemented as a music function taking 3 arguments. The syntax of \tweak is \tweak symbol value music_expression OK, thank you, that's very clear. That fact, for any given keyword, would tell a user immediately whether (s)he could just write a macro or would be forced to define a function for some expression involving the keyword. Is the information (1) number of arguments or preferably (2) the syntax documented explicitly anywhere for all keywords? I don't write to this list much, but I would like to thank you for the concise and clear answers you have provided to so many questions. -- Tom On Thu, 30 Nov 2006, Mats Bengtsson wrote: [EMAIL PROTECTED] wrote: Hello, Does it work just to define this macro at the top level fraction = \tweak #'text #tuplet-number::calc-fraction-text No, this doesn't work. OK, but I have a question. It is common to write such things as push = \once \override NoteColumn #'extra-X-extent = #'(0 . 2) and then later to use \push before a note in the music. However the above definition of fraction doesn't yield a valid \fraction macro call, as you pointed out. Is there any clear criterion for knowing in advance whether a given expression for a macro definition will actually work? The syntax of \tweak is \tweak symbol value music_expression where music_expression is the music expression you want the tweak to apply to. You can only define a macro for a complete syntactical expression (I know that this is a somewhat vague definition), whereas you tried to define a macro for only half of it. It may help your understanding to know that \tweak itself is implemented as a music function taking 3 arguments. What I get out of your function definition of fraction (below) is that \fraction is intrinsically a function that has to be followed by a music argument. But even though \once \override NoteColumn #'extra-X-extent = #'(0 . 2) would have to be followed by a note to make any sense, that doesn't seem to make it a function-with-one-argument. I accept the fact that \tweak #'text #tuplet-number::calc-fraction-text *is* a function-with-one-argument, but in general how is one supposed to know whether a given expression is just a state-creator or it's a function-with-one-or-more-arguments? The only strict definition of the input syntax is the source code of the parser lily/parser.yy in the source code tree. Also, more and more features of the syntax are implemented as music functions instead of being hard coded into the parser, so it's not entirely easy to figure out, apart from using trial and error. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Scheme question on strict substitution
Hello, . . . one problem is that this [giving the syntax of each keyword] would still just tell a small part of the full syntax. I think it would give a big part of the full syntax, even if not the whole picture. It would enable a user to know (1) what type of arguments have to follow the keyword; (2) whether (s)he has accidentally omitted one of the required arguments (when debugging); (3) whether (s)he should write a macro definition or a function definition to specify a \whatever construct involving the keyword; (4) what the types should be in the event that (s)he winds up writing a function definition. Full or not, that's a lot of useful information. And I'm talking about just a list of the syntax for each keyword, *not* the semantics. A syntax specification can be short but still tremendously useful. Specification of the semantics takes a lot of blah-blah, and nobody would have the time to write up all the semantics. Another problem is that the rule I gave really was too simple. For example, you cannot say ^some text in a .ly file without having a note in front of it, still you can define a macro mytext = ^some text and then use it as c \mytext That's a general problem in LilyPond, knowing what kind of expression constitutes a valid right-hand side of a macro definition. (I'm amazed that the above definition works.) A different but related problem concerns something I don't know the right term for, something like context-free equivalence maybe: for example, I can say foo = \markup { \bold Zanzibar } bar = \markup { Stand on \foo } but I can't say bar = \markup { Stand on \markup { \bold Zanzibar } } You will object that I would have no *reason* to say that anyway, but it nevertheless constitutes a toy example of non-transferability: \foo is not equivalent to \markup { \bold Zanzibar } despite the = sign in the macro definition, and that's surprising. -- Tom --- On Thu, 30 Nov 2006, Mats Bengtsson wrote: [EMAIL PROTECTED] wrote: Hello, It may help your understanding to know that \tweak itself is implemented as a music function taking 3 arguments. The syntax of \tweak is \tweak symbol value music_expression OK, thank you, that's very clear. That fact, for any given keyword, would tell a user immediately whether (s)he could just write a macro or would be forced to define a function for some expression involving the keyword. Is the information (1) number of arguments or preferably (2) the syntax documented explicitly anywhere for all keywords? As already said, this is not available in the current manual and one problem is that this would still just tell a small part of the full syntax. Another problem is that the rule I gave really was too simple. For example, you cannot say ^some text in a .ly file without having a not in front of it, still you can define a macro mytext = ^some text and then use it as c \mytext /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Scheme question on strict substitution
Hello, Does it work just to define this macro at the top level fraction = \tweak #'text #tuplet-number::calc-fraction-text No, this doesn't work. OK, but I have a question. It is common to write such things as push = \once \override NoteColumn #'extra-X-extent = #'(0 . 2) and then later to use \push before a note in the music. However the above definition of fraction doesn't yield a valid \fraction macro call, as you pointed out. Is there any clear criterion for knowing in advance whether a given expression for a macro definition will actually work? What I get out of your function definition of fraction (below) is that \fraction is intrinsically a function that has to be followed by a music argument. But even though \once \override NoteColumn #'extra-X-extent = #'(0 . 2) would have to be followed by a note to make any sense, that doesn't seem to make it a function-with-one-argument. I accept the fact that \tweak #'text #tuplet-number::calc-fraction-text *is* a function-with-one-argument, but in general how is one supposed to know whether a given expression is just a state-creator or it's a function-with-one-or-more-arguments? -- Tom ** On Wed, 29 Nov 2006, Mats Bengtsson wrote: No, this doesn't work. What does work is \version 2.10.0 fraction = #(define-music-function (parser location music) (ly:music?) #{ \tweak #'text #tuplet-number::calc-fraction-text $music #}) \relative c'{ \fraction \times 2/3 { c'8 c'8 c'8 } } However, what is the reason to use \tweak at all? Why not simply do an ordinary \once \override: \version 2.10.0 fraction = \override TupletNumber #'text = #tuplet-number::calc-fraction-text \relative c'{ \fraction \times 2/3 { c'8 c'8 c'8 } } /Mats [EMAIL PROTECTED] wrote: Hello, Does it work just to define this macro at the top level fraction = \tweak #'text #tuplet-number::calc-fraction-text and then later in the music to write \fraction \times 2/3 { c'8 c'8 c'8 } Does LilyPond swallow that? -- Tom - Trevor Baca wrote: Hi, I frequently write \tweak #'text #tuplet-number::calc-fraction-text before tuplets, like this: \tweak #'text #tuplet-number::calc-fraction-text \times 2/3 { c'8 c'8 c'8 } What's the best way to abbreviate to something like this? \fraction \times 2/3 { c'8 c'8 c'8 } I've tried this music function ... fraction = #(define-music-function (parser location) () #{ \tweak #'text #tuplet-number::calc-fraction-text #}) ... but get this parse error: Parsing... string:3:9: error: syntax error, unexpected '}' }361.ly:5:0: error: errors found, ignoring music expression Any suggestions for a good abbreviation? -- = Mats Bengtsson Signal Processing Signals, Sensors and Systems Royal Institute of Technology SE-100 44 STOCKHOLM Sweden Phone: (+46) 8 790 8463 Fax: (+46) 8 790 7260 Email: [EMAIL PROTECTED] WWW: http://www.s3.kth.se/~mabe = ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Simple substitution for oddFooterMarkup?
Hi -- Your macro definition: boldPageNumber = \markup { \fill-line { \bold \fontsize #3 \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string } } Question: if print-page-number-check-first is a defined function, does it have to be referenced as a literal symbol (by adding an apostrophe after the #)? -- #'print-page-number-check-first -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Using lyrics
I've also made one more change: a very new language feature allows \new Foo = bar instead of \context Foo = bar for the first time you're instantiating a Foo. Thank you! Syntax is important for readability, and \new Foo = bar is _much_ clearer. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Note for manual
Thank you for opting for the wordy explanation. I've never played a transposing instrument, so the explanation would be directed towards people like me. The concrete statement an A is notated as a C tells me quickly and unmistakably what the instrument _does_. Consider a part written for violin (a C instrument). If this part is to be played on the A clarinet (for which an A is notated as a C, and which sounds a minor third lower than notated), the following transposition will produce the appropriate part \transpose a c ... It's a trifle wordy, but I think that's ok in that spot. If somebody already knows how transposition works, they'll skim the paragraph and move on. If they aren't familiar with transposition, then a clear explanation is better, even if it's a bit wordy. Some readers may not be so comfortable with terms like a minor third, and might prefer ... an A is notated as a C A few years ago, I would have much more preferred to see the A/C explanation. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: small notes without small key?
Felix Hammer wrote: I have tried \key c \major \time 19/1 \set Staff.fontSize = #-5 \override KeySignature #'font-size = #+1 g1 a b \set Staff.fontSize = #+1 c1 d e f g a b c d e f g a b c \bar |. but it doesnt work. I didn't get a bigger key. I'm not sure, but it might be illegal to write #+1 Maybe you need to write #1 -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: lilypond-user Digest, Vol 38, Issue 17
Paul Scott wrote: Besides the several editors commonly used by LilyPond people mentioned on this list there are several nice shareware editors which really are text editors like EditPad. Several nice text editors for Windows? Can you name some of the others? Thanks. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: lilypond-user Digest, Vol 38, Issue 17
Hans Forbrich wrote: I see value in the discussion, but also a serious distraction for the primary developers. Is it worth taking this offline? Graham Percival wrote: You want to have an offline private email discussion group? Count me in! :) Offline ? If this means turning off my computer and muttering to myself, count me in too. I love it. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Inputting special symbols
With the word-space override you suggest (below), that means that your comment of a few weeks ago that it _might_ be desirable to redefine \char #unicode-number to produce a utf-8 byte string is true: this would in fact be useful for people who need, infrequently, to insert various odd special characters in their Lilypond text, such as an em-dash, a capital Greek delta, or a 1/2-sign, or who need to print titles in languages, such as Portuguese or Romanian, that have, in addition to the usual panoply of European characters, just a few oddball characters. Even for a text editor that can _save_ in utf-8, _inputting_ the required character directly presumably requires a character map, and at this point I don't know that any really extensive character maps exist. I realize that implementing a new \char is not trivial, since the utf-8 coding algorithm is such a mess. -- Tom On Thu, 5 Jan 2006, Han-Wen Nienhuys wrote: [EMAIL PROTECTED] wrote: The problem I've had with that is that when I define eaigu = the utf-8 double byte for é and then (later) say \markup sym \eaigu trique what I get in the PDF file is sym é trique because Lilypond inserts a space between any two markup components. try \override #'(word-space . 0) { sym \eaigu trique } -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Inputting special symbols
Gilles wrote: And . . . also . . . : Blank spaces at the beginning or end of double-quoted strings are trimmed. That's true. To get spaces between non-space \markup items you can write things like \markup { foo \hspace #10 bar } That trick doesn't work for getting spaces at the end (I think I recall that some people wanted such a thing for instrument names to be placed to the left of the staff). I don't know whether the following would work -- \markup {foo \hspace #10 utf-8 byte codes for an invisible char} -- because I haven't tried it. By an invisible character I mean something like a non-break space or an extra-thin or extra-wide space; I know that such things exist in Unicode. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Inputting special symbols
Hi, does this mean that I cannot input these special characters using Windows 98 platform and using Notepad? Are there other alternatives? I think there are hardly any people on this list who use W98 and Notepad. However, I do, and there is a work-around. I will e-mail you directly a file with a table showing the pair of characters you have to insert in your Notepad file in order to get any specific Latin-1 character. Disadvantages: -- the table covers only Latin-1 characters (French, Spanish, Italian, German -- but not Greek, Russian, Czech, Romanian,...); -- the characters will look OK in the final PDF file, but in the Notepad file *itself* you will see, for every desired accented character, a weird-looking pair of symbols; -- this is a slow way to insert utf-8 characters, so it would be suitable only if you need to insert just a *few* utf-8 characters here and there. I won't attach the conversion table to this message, as I think the list administrators don't want big attachments, and I think there is nearly zero interest in this problem anyway, as almost all other users are using utf-8-capable text editors. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Inputting special symbols
-- this is a slow way to insert utf-8 characters, so it would be suitable only if you need to insert just a *few* utf-8 characters here and there One way around that is to give each symbol an ascii name like grave or whatever is meaningful to you. Then you just insert \your-name-here when you want that symbol. The problem I've had with that is that when I define eaigu = the utf-8 double byte for é and then (later) say \markup sym \eaigu trique what I get in the PDF file is sym é trique because Lilypond inserts a space between any two markup components. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Inputting special symbols
. . . If you don't mind, can I ask what code or language is this workaround based on? (Like why does one need to input two pairs of number combinations to obtain a symbol) This is based on Unicode, but that doesn't really answer your question, as Unicode is nothing but a catalogue of thousands of symbols, with each symbol assigned a Unicode number, which is just the catalogue-number of the symbol. Starting from a symbol's Unicode number, one can use an encoding algorithm to produce a sequence of bytes that represents the symbol in a real text file. The problem is that, historically, there have been invented several *different* encoding algorithms, and you have to know which encoding algorithm you are using. The two currently dominant encoding algorithms are called UTF-16 and UTF-8. Lilypond uses UTF-8. (To some extent, Microsoft products use Unicode, but they use UTF-16. At least that is the case in the old Microsoft software I use, but my guess is that Microsoft will stick with UTF-16, because if it switched to UTF-8, then that would invalidate a huge existing repository of Visual Basic programs.) A UTF-8 character takes up either 1 or 2 or 3 or 4 or 5 or 6 bytes. That fact alone will tell you that understanding UTF-8 is not easy. If you really want to know the story, I recommend the following two Web sites for starters: http://www.tenminutetutor.com On this site, the Articles box on the left of the page contains 9 links. Click on and read the following 3: Unicode UTF-8 UTF-16 http://en.wikipedia.org/wiki/UTF-8 This gives more information on UTF-8 and also presents an illuminating comparison of UTF-8 to UTF-16. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: 2 conversion problems 2.4.6-2.6.3
Graham Percival wrote: Insert the symbol directly into the lilypond file, just like accents and non-latin characters. See the docs for utf-8. The docs for utf-8? Are there documents that specify how to enter a specific symbol in a text file if I have neither a built-in software character map nor the unicode number for the symbol? Because of other discussions on this list, I know how to enter Latin-1 accented characters in utf-8 form, but I don't know how to enter an em-dash or an en-dash, amongst other things. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: bars and clefs
. . . however, with a :|: bar, when inverting the order, the clef is almost stuck to it... You might try \once \override Staff.Clef #'extra-X-extent = #'(-2 . 1) \clef tenor which would give you 2 more units of space to the left of the clef symbol and 1 more unit of space to the right of the clef. (tenor: sorry, I deleted so much e-mail that I've lost track of what clef you actually wanted.) I'm sitting at a non-LilyPond machine at the moment, so I can't test that to verify it, but I've used similar commands to provide extra space to the left or right of various musical graphic objects (grobs). -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Displaying the first bar number
in scm/output-lib.scm we see this: (define-public (default-bar-number-visibility barnum) ( barnum 1)) . . . . . I also tried this: #(define-public (default-bar-number-visibility barnum) (#t)) but, as expected, it didn't work either. Being lazy, I would have tried #(define-public (default-bar-number-visibility barnum) (= barnum 1)) with thereplaced by = I didn't try that out, as I'm sitting at a non-Lily machine at the moment. But that would solve your specific problem *only* if barnum is some kind of internal *absolute* bar number counter (independent of currentBarNumber, which can be set to anything). Out of sheer paranoia, I would also try #(define-public (default-bar-number-visibility barnum) (= barnum 0)) since C programmers are notorious for just using zero as the starting value of any counter. As a side remark, your attempt #(define-public (default-bar-number-visibility barnum) (#t)) failed because, just as (= barnum 1) means apply the function = to the arguments barnum and 1, the definition (#t) would mean apply the function #t to no arguments; but #t is not a function. I know Lisp 1.5 syntax, but I'm still shaky on Scheme; however, the definition #(define-public (default-bar-number-visibility barnum) #t) with the bare #t looks to me like it would make sense, so it might be worth a try if the lazy approach suggested above offends your sense of elegance. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Still \char # problem..
Mehmet Okonsar wrote: This one gives only an empty ps file no pdf.. I can't understand? - \version 2.7.10 { \relative c' c1^\markup {\char #65 } } - Mats Bengtsson wrote: why do you want to specify the character code? Why not insert whatever symbol you want directly with your text editor? People using SToccata.TTF or other non-unicode symbol fonts would find it helpful to be able to specify the character they want using \char #137 for example. Beyond that, \char is an existing feature; if its behaviour were consistent with LilyPond's switch to utf-8, then people who needed only a few accented letters from time to time could write \char #50089 to get e-acute, or the corresponding number to get some character from the Czech, Romanian, etc. alphabet. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: calculating durations
. . . I am currently writing a program that transforms scores expressed in a piano-roll-like format into LilyPond scores . . . I'm especially thinking of how to resolve a note like c3 (where 3 means 3 quarter note beats) into Lilypond's c2. . . . in this case, the input data is mostly clean . . . If the data isn't _all_ clean, then that will be your biggest headache. You have received some suggestions that you write your program to convert your source files into MIDI format; that's presumably a good idea if you already know the syntax semantics of MIDI files. Is the unit of measurement of note durations in the source _always_ a quarter note? If it is, that'll save you some trouble. If you don't go the MIDI route and you decide to write a program to convert directly to LilyPond, then I have one suggestion. If you choose to write a (calculational) algorithm to convert your source c3 to LilyPond c2., then you will spend a long time writing and debugging the algorithm. But if you look over your source files and find that the actual number of different note-durations is small (less than a dozen different durations, say), then it will be much easier to just construct, by brute force, two string vectors -- S(1)=1LP(1)=4 S(2)=2LP(2)=2 S(3)=3LP(3)=2. S(4)=4LP(4)=1 S(5)=1/2 LP(5)=8% I don't know source notation for short notes S(6)=3/4 LP(6)=8. % ditto etc. so you could search the S( ) vector for each source-note duration; if S(3) matched the source duration, then LP(3) would give the LilyPond duration. This of course does not solve the problem that probably some of your source notes will have durations exceeding 4 (i.e., will represent notes longer than a whole note). If the source duration SD of a note is greater than 4, you will need to calculate SD div 4 = the number of whole notes you will need to tie together SD mod 4 = the source-duration of the additional note you will have to tie onto the preceding string of tied whole notes; you will have to find n such that S(n)=SD mod 4 to obtain LP(n), where LP(n) is the LilyPond duration of this final tied note. And as others have pointed out, you will have to use the Completion_Heads_Engraver (user manual section 6.2.6). There are other complications: (a) Tuplets: modifying the procedure I sketched above to handle tuplets would be very hard. *And* the Completion_Head_Engraver apparently (?) is not able to handle tuplets anyway. (b) The Completion_Head_Engraver can't split rests at all, according to the user manual; that may be a fatal problem. Now that I look at it, that's all pretty awful, isn't it? Probably you would be better off learning how to construct MIDI files (something I've never done...). -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \char #
On Wed, 14 Sep 2005, Han-Wen Nienhuys wrote: [EMAIL PROTECTED] wrote: ... \huge is not supposed to work when a font-name is explicitly selected ... this is an oversight in the manual. Starting from 2.6, it should work. Oh yes, good; since \huge gave only a 12% increase in size, I didn't see the difference when I looked at the minuscule SToccata symbol in the PDF output. But when I wrote \markup { \override #'(font-name . SToccata) \fontsize #18 XX } that made the resulting symbol big enough to be seen without a microscope. I'm glad to see that \fontsize works with external fonts. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: defaul action for lilypond files in windows version
Because the behaviour of Windows is so wildly inconsistent under different conditions, and because there exist physically different ways of transmitting input-filename information to LilyPond, it would be helpful to have the following information also: -- the full filename of the .LY file, including drive and full pathname; -- whether you dragged and dropped the .LY file onto a LilyPond icon? or you right-clicked on the .LY file and chose the Generate PDF option on the context menu? or you brought up a command line and typed in a command to run LilyPond -- if so, what was the complete text of the command you typed? -- Tom Mats Bengtsson wrote: Strange! I haven't seen this problem mentioned earlier on the mailing list and there are certainly a large number of people who use Lily 2.6.3 in Windows. What Windows version do you use by the way? (Please keep followups on the mailing list). nirly (sent by Nabble.com) wrote: i'm using the lilypond 2.6.3 for windows... the default action for lilypond files (generate pdf)... creates: filename.log BUT .ps .pdf (both files with an empty filename) is this how it's supposed to behave? how can i make it create the pdf according to the filename of the original lilypond file? ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \char #
Mehmet Okonsar wrote: I wasn't able to get this working.. \version 2.7.8 \markup \huge { \override #'(font-name . Toccata) \char #65 } (under wXP) I think \char is busted, at least under Windows-native LP. This top-level command \markup { \char #65 } is OK with LilyPond, but gs.exe fails. The Windows filename is SToccata.TTF; if you say \markup { \override #'(font-name . SToccata) XX } where XX is *not* two X's but rather a single (double-byte) utf-8 character (entered however you do it on your system) where the utf-8 character chosen is one of the *accented* European characters, then you will get one of the SToccata music symbols in the final PDF output, but it will be excruciatingly tiny. Since \huge is not supposed to work when a font-name is explicitly selected, I tried \markup { \override #'(font-name . SToccata) \magnify #20 XX } but the \magnify had no effect, so I'm doing something wrong. And you're using 2.7.8, but I'm still with Windows-native 2.6.0, so that could give rise to some differences. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: compiling times?
Han-Wen Nienhuys wrote: #(set-global-staff-sice 20) it's size not sice. It's strange that you don't get anything in the logfile, though. Windows-native users don't get any error messages in the logfile when a Scheme error occurs. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1?
On Sun, 4 Sep 2005, Werner LEMBERG wrote: You are mixing up Unicode with one of its possible representations, UTF-8. A Unicode character is a number between 0x0 and 0x10; UTF-8 represents such code points as multi-byte sequences of varying length, where the range 0x00-0x7F is identical to ASCII. Thank you. I didn't know unicode was broader than UTF-8. The 3-byte value 10 (rather than FF) seems like a rather strange upper limit, but that only points up the fact that I'm going to have to learn about unicode once I get through my current arranging binge. Today, Windows uses Unicode exclusively -- even in North America. You won't have big success with latin1 files. I routinely switch files between Latin1 text and MS-Word docs with no problem whatsoever. When one saves a file in Word selecting the type Text or Text With Line Breaks, one gets a Latin1 file -- and I have verified these text files (put out by Word) directly with a hex editor: e-acute, a-grave, etc. are all represented by a single byte, and it is the standard Latin1 byte. As far back as Word 97, Microsoft claimed that Word and its Visual Basic (VBA) used unicode internally. But if one looks at a Word .doc file with a hex editor, one sees that, in the file, all the French accented characters are stored as single-byte standard Latin1 codes. Microsoft's unicode claims are a marketing ploy; Latin1 still rules. Well, it is straightforward to use a converter like `iconv' within a script which automatically transforms your latin1 file into UTF-8. Yet another converter. Well, it's good to know that. But for the moment I encounter accented letters only in song titles (I use no lyrics), so typing in the UTF-8 double-byte for the rare accented character here and there takes about 3 seconds, which is easy. Thank you for taking the trouble to send me the information on unicode UTF-8. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
On Sun, 4 Sep 2005, Han-Wen Nienhuys wrote: [EMAIL PROTECTED] wrote: Unicode only provides a way of specifying character codes for a wide variety of symbols in the interior of a text file. But without font files containing the order of 64K symbols, the current fragmented font-file situation will continue to limit what can easily be output to a screen or a printer. It is difficult for me to share your optimism. That's not a problem, at least, not on Linux. Pango does a wonderful job of inspecting the coverage of each font. It substitutes whichever font has the glyphs that are required to print the text. Well, that's impressive. For Windows users -- suppose that the right environment variable has been set to signal to LilyPond the presence of various Windows font directories. Then is Pango actually able to do that sort of font substitution if the specified font name in a .LY file is that of a TTF font located in a Windows directory? -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: syntax error
Fr. Gordon Gilbert wrote: I'm using 2.5.29 . . . I need letter instead of A4 . . . Parsing... warning: Must use #(set-paper-size .. ) within \paper { ... } . . . my #(set-paper-size) was withing \layout . . . So I moved that to the top of the file within a \paper block. The first time I compiled that, it did just fine, but did not change the paper size. I use 2.6.0, and putting the following two lines at the very top of the file works for me: \version 2.6.0 #(set-default-paper-size letter) Of course 2.5.29 might be different, but it might be worth trying to set the default paper size at the top level just to see if it works. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
On Mon, 5 Sep 2005, Han-Wen Nienhuys wrote: [EMAIL PROTECTED] wrote: For Windows users . . . is Pango actually able to do that sort of font substitution if the specified font name in a .LY file is that of a TTF font located in a Windows directory? Yes. !!! I yield. You just made a convert. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
On Sat, 3 Sep 2005, Han-Wen Nienhuys wrote: A. LilyPond actually _does_ support the Latin1 character set, as Latin1 and Unicode coincide on the first 256 codepoints. I don't quite see that. If I put an e-acute (a byte of decimal value #233) in a LilyPond file, it is skipped -- it does not appear in the PDF output. I have to put in the unicode equivalent, which is the two bytes #195 #169 (where 169 = 233 - 64) in order for LilyPond to give me an e-acute. USASCII and unicode coincide on the first 128 codepoints, but from what I can see, Latin1 and unicode do not correspond on byte values #128 to #255. B. LilyPond does not support Latin1 encoding. This is because 1. It's not possible to detect the encoding of a file. Supporting alternate encodings implies that users have to specify the encoding via the command line. This is error-prone, and leads to confusion for newbies. Not via the command line. Via a command at the top of the LilyPond file such as \unicode or \latin1, or some Scheme command (or even #!latin1 or %!latin1 in a time-honoured tradition). Having to insert a command for including english.ly and for setting paper size to letter is error-prone and confusing to newbies -- I know, I'm a newbie. A command for identifying a file's character-encoding type is no worse. 2. If we do latin1, why should we not do latin2. And if we do latin1 and 2, why not Big5? EBCDIC? UTF-16? tibetan-iso-8bit? Where does it stop? Well, I have to admit it's hard to argue with that. Despite the fact that I think that a lot of North Americans would like to have the direct Latin1 availability to which they have become accustomed, I know that at the least, Eastern Europeans would also want Latin2 and Latin4. Unicode only provides a way of specifying character codes for a wide variety of symbols in the interior of a text file. But without font files containing the order of 64K symbols, the current fragmented font-file situation will continue to limit what can easily be output to a screen or a printer. It is difficult for me to share your optimism. C. Unicode, not Latin1, is the future. Maybe, but not in my lifetime. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1?
On Sat, 3 Sep 2005, Jan Nieuwenhuizen wrote: I can't afford a C compiler for Windows The GNU compiler has been available for Microsoft systems since the DOS era. Have a look at www.mingw.org, www.cygwin.org !!! I've been living in the wrong world, haven't I? Thank you. , and I can't switch to Linux or to a Mac for work reasons. There are several live-cd distributions, that will allow you to run Linux without installing it. Maybe I haven't looked hard enough. The live CD Linux distributions I have seen offered require the download of about a 700 MB CD image, which I can't do because I use a dial-up connection; I don't know anyone who has a broadband connection. The only Linux distribution I have seen in computer stores is Fedora. Maybe I can find a place that will sell me a CD which it can then mail to me. Thank you for your help. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: no pdf file generated (windows version 2.7.8)
Katrien de Vos wrote: I have made a batch-file: gswin32.exe -q -dCompatibilityLevel#1.4 -sPAPERSIZE#a4 -dNOPAUSE -dBATCH -r1200 -sDEVICE#pdfwrite -sOutputFile#%1.pdf -c .setpdfwrite -f %1.ps Then I made a run and generated a pdf-file. Using gs or gs.exe instead of gswin32.exe didn't work. I'm a Windows user, but I shouldn't stick my nose in, as I'm very new at this, however... It is odd that using gs.exe didn't work. In the same directory where gswin32.exe is, there should be a file gs.exe whose content is identical to that of gswin32.exe (a) if the file gs.exe doesn't exist, then do copy gswin32.exe gs.exe and try running LilyPond again. (b) if gs.exe exists but isn't identical, that would be surprising, but you could rename gs.exe to gsORIG.exe so as not to lose it, and then try (a) above. (c) if gs.exe exists and is identical to gswin32.exe, then I am really mystified. But now point-and-click doesn't work. I disable point-and-click, so I don't know anything about that, but I think there was some discussion on this list recently about setting some environment variable to specify the editor that point-and-click should respond to (?). -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
My original question was Or what trick, however laborious, will enable me to use Latin1 characters in markup? I only need them occasionally in titles. I would like to thank Daniel Johnson and Hans de Rijck, who both posted the algorithm for converting Latin1 to unicode, thus supplying me the trick I requested. In fact I used this algorithm to generate a table (which I printed) indicating the two bytes I have to insert to get any one of the 64 Latin1 accented letters. For example, to get an e-acute, I have to type alt-num-0195 and then alt-num-0169 (I'm running under Windows). It puts an A-tilde and a copyright-symbol in my Latin1 text editor of course, but this is the right unicode double byte for an e-acute, and LilyPond's PDF result is correct. Obviously this procedure would be terrible for entering extensive lyrics, but for the occasional accented character in a song title, it's easy. Thanks again. -- Tom *** Daniel Johnson wrote: I offer the following with NO WARRANTY. ' begin VBScript code Option Explicit Dim sInFileName, sOutFileName sInFileName = ' Filename you wish to convert (with full path) sOutFileName = ' Filename you want for the output Dim oFSO Dim oInFile, sInString Dim oOutFile, sOutString Dim i, s Dim sTransArray(255) 'Populate the translation table For i = 128 To 191 sTransArray(i) = chr(HC2) chr(i) Next For i = 192 To 255 sTransArray(i) = chr(HC3) chr(i - 64) Next 'Read the input file as a single string Set oFSO = CreateObject(Scripting.FileSystemObject) Set oInFile = oFSO.OpenTextFile(sInFileName, 1, False, 0) sInString = oInFile.ReadAll oInFile.Close Set oInFile = Nothing 'Perform char-by-char translation sOutString = For i = 0 To Len(sInString) s = Mid(sInString, i, 1) If Asc(s) 128 Then sOutString = sOutString s Else sOutString = sOutString sTransArray(Asc(s)) End If Next 'Write the resulting file to the output file Set oOutFile = oFSO.OpenTextFile(sOutFileName, 2, True, 0) oOutFile.Write(sOutString) oOutFile.Close 'Perform final housekeeping Set oOutFile = Nothing Set oFSO = Nothing End ' end VBScript code *** Hans de Rijck wrote: Or, for someone with a C compiler, the poor-man's algorithm is: for ( unsigned int i = 0; i length; i++ ) { if ( (unsigned char)line1[i] 127 ) { *line2++ = (char)(192 + (((unsigned char)line1[ i ]) / 64)); *line2++ = (char)(128 + (((unsigned char)line1[ i ]) % 64)); } else { *line2++ = line[ i ]; } } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
On Fri, 2 Sep 2005, Mats Bengtsson wrote: What you have found in the source code files are some left-overs from version 2.4 and earlier, where LilyPond only knew about Latin1. If you browse through the mailing list archives, you can also find out why this was not a satisfactory solution if you want to promote the program outside western Europe. (1) That's certainly one huge mass of left-overs. For a language that allows coloured labelled noteheads, Gregorian notation, tenor clef, and Lord knows what else, it is amazing that the developers would choose to *remove* an existing capability. (2) Deleting a capability is not promotion. Making unicode an available *option* would be promotion, but deleting the existing ability to use Latin-1 is not going to help you recruit users amongst the half billion people in Western Europe and North America whose other software all understands Latin-1. (As a side remark, when I communicate with people in Romania or other Eastern European locations, I have to use Latin-2; software [mainly dictionaries] downloadable from those locations uses Latin-2, *not* unicode. Unicode may or may not become predominant someday, but it certainly is not now.) -- Tom - [EMAIL PROTECTED] wrote: The file ...\usr\share\lilypond\2.6.0\ly\paper-defaults.ly sanctions Latin1 in the statement inputencoding = #latin1 and later under #(define text-font defaults... ...) The file ...\usr\share\lilypond\2.6.0\scm\encoding.scm, in the long definition (define-public latin1-coding-vector... ...), laboriously lists all 256 Latin1 characters, with .notdef for the control characters and with a full list of the Western European accented characters (agrave, aacute, acircumflex, etc.). There is considerable coding to enable Latin1 in the .ly and .scm files in the LilyPond distribution; how can this coding be made to actually function? Thank you for your help. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
On Fri, 2 Sep 2005, Daniel Johnson wrote: I offer the following with NO WARRANTY. Offer accepted. That's always acceptable. . . . . . . . . . . . . . . . . .. . . I am enclosing a VBScript file that should perform conversion from Latin-1 to UTF-8. I haven't tested this. Also, I never did figure out how to use command-line args with VBS, so you'll have to hardcode the input and output filenames each time The VBScript can be modified to be work when called from an entry on the right-click (context) menu associated with the input file. However, that requires messing with the Windows Registry, and most noncommercial people are leery (as I am) of distributing material that requires Registry changes, so in fact your script as it stands is a very safe solution. Being somewhat unicode-resistant, I was not familiar with the details of conversion. I may or may not wind up using your routine, but it makes it very clear what the characters in a unicoded file look like, and I was unaware of that. Thank you for such concrete and clear help. -- Tom * ' begin VBScript code Option Explicit Dim sInFileName, sOutFileName sInFileName = ' Filename you wish to convert (with full path) sOutFileName = ' Filename you want for the output Dim oFSO Dim oInFile, sInString Dim oOutFile, sOutString Dim i, s Dim sTransArray(255) 'Populate the translation table For i = 128 To 191 sTransArray(i) = chr(HC2) chr(i) Next For i = 192 To 255 sTransArray(i) = chr(HC3) chr(i - 64) Next 'Read the input file as a single string Set oFSO = CreateObject(Scripting.FileSystemObject) Set oInFile = oFSO.OpenTextFile(sInFileName, 1, False, 0) sInString = oInFile.ReadAll oInFile.Close Set oInFile = Nothing 'Perform char-by-char translation sOutString = For i = 0 To Len(sInString) s = Mid(sInString, i, 1) If Asc(s) 128 Then sOutString = sOutString s Else sOutString = sOutString sTransArray(Asc(s)) End If Next 'Write the resulting file to the output file Set oOutFile = oFSO.OpenTextFile(sOutFileName, 2, True, 0) oOutFile.Write(sOutString) oOutFile.Close 'Perform final housekeeping Set oOutFile = Nothing Set oFSO = Nothing End ' end VBScript code ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How can I avoid unicode and use Latin1? (Was: Wrong characterswith jEdit)
On Fri, 2 Sep 2005, Hans de Rijck wrote: Or, for someone with a C compiler, the poor-man's algorithm is: for ( unsigned int i = 0; i length; i++ ) { if ( (unsigned char)line1[i] 127 ) { *line2++ = (char)(192 + (((unsigned char)line1[ i ]) / 64)); *line2++ = (char)(128 + (((unsigned char)line1[ i ]) % 64)); } else { *line2++ = line[ i ]; } } I can't afford a C compiler for Windows, and I can't switch to Linux or to a Mac for work reasons. But I know C, and the code (above) is very clear. Thank you for the very specific information. I have to admit that I didn't know what unicode coding looked like. I suppose I should break down and download the unicode specs from somewhere. But I still think LilyPond should allow the option of putting a command at the top of a *.LY file marking it as either Latin-1 or unicode. All the code for allowing Latin-1 exists; it was used in LP 2.4 according to Mats. There are plenty of computer users in North America who take it for granted that all Windows software can understand Latin-1. But in general, the quickest solution is to load the file in Notepad, and save as UTF-8. I have the world's oldest Notepad, and it won't save as unicode text, which frankly I view as an advantage, as I want to have at least one text editor that can be absolutely counted to save in Latin-1 no matter what. But I could open the text file with WordPad, if I wanted, as WordPad will allow saving as unicode text. And now that I think about it, I could fake the unicode myself in a Latin-1 text editor using the information inherent in your conversion routine. (I only need Latin-1 [or unicode] rarely, in some song titles.) The situation is clearer now. Thank you for your help. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
How can I avoid unicode and use Latin1? (Was: Wrong characters with jEdit)
I have used Latin1 character encoding for the last 15 years for handling text in English, French, Spanish, and German. My (Unix) e-mail client uses Latin1 (ISO-8859-1). I use a Latin1 text editor for LilyPond and thus avoid the cursed false-single-quote problem, and I do not want to incur the hazards of unicode character-encoding. If LilyPond can't give me Latin1 characters (é à ç ö etc.) then I will handwrite them in on the printout, but it would be look cleaner if LilyPond could handle Latin1 text characters, as is the case with every other piece of software I use. I'm running LilyPond 2.6.0 under Windows. The file ...\usr\share\lilypond\2.6.0\ly\paper-defaults.ly sanctions Latin1 in the statement inputencoding = #latin1 and later under #(define text-font defaults... ...) The file ...\usr\share\lilypond\2.6.0\scm\encoding.scm, in the long definition (define-public latin1-coding-vector... ...), laboriously lists all 256 Latin1 characters, with .notdef for the control characters and with a full list of the Western European accented characters (agrave, aacute, acircumflex, etc.). The clear implication is that the coding for LilyPond to recognize Latin1 characters is there. But something somewhere is blocking their recognition (à, é, etc. in markup are just ignored). What can I change in which file to get LilyPond to accept Latin1 characters? Or what trick, however laborious, will enable me to use Latin1 characters in markup? I only need them occasionally in titles. There is considerable coding to enable Latin1 in the .ly and .scm files in the LilyPond distribution; how can this coding be made to actually function? Thank you for your help. -- Tom *** On Thu, 1 Sep 2005, Mats Bengtsson wrote: [EMAIL PROTECTED] wrote: The only unicode characters I ever need are in fact, on rare occasions, some Latin-1 character (à é è ç ö ü etc.) in a song title. The ASCII editor I use accepts these characters, but then LilyPond \markup just skips them. I would rather not switch to a utf-8 editor. What editor do you use, then, an what character encoding does it use when savinf the files? Most text editors nowadays can be configured to save the file using UTF-8. Is there any way to incorporate Latin-1 (or unicode) characters into an ASCII LilyPond file, using HTML notation or some other trick? It wouldn't have to be convenient if it would just work. I have used only LP's built-in roman and sans fonts; would using an external TTF (TrueType) font give me access to Latin-1 characters that LilyPond would recognize? It doesn't matter what font you use. In fact, the text font used in Lilypond are not built into the program but taken from what you already have on your machine. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Wrong characters with jEdit
Mats Bengtsson wrote: However, I recommend to upgrade to LilyPond version 2.6, which uses UTF-8 encoding and can handle all such special characters without any problems. The only unicode characters I ever need are in fact, on rare occasions, some Latin-1 character (à é è ç ö ü etc.) in a song title. The ASCII editor I use accepts these characters, but then LilyPond \markup just skips them. I would rather not switch to a utf-8 editor. Is there any way to incorporate Latin-1 (or unicode) characters into an ASCII LilyPond file, using HTML notation or some other trick? It wouldn't have to be convenient if it would just work. I have used only LP's built-in roman and sans fonts; would using an external TTF (TrueType) font give me access to Latin-1 characters that LilyPond would recognize? I'm running LilyPond 2.6.0 under Windows. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Yet another font problem
Han-Wen Nienhuys wrote: Maybe lilypond should come with its own version of fc-list, so everyone can check out the names for the fonts installed. This feature is eligible for sponsoring. Well, for what it's worth, in Windows 98 you can find font files -- click Start -- Find -- Files or Folders... and you get a dialog box with 3 tabs. In the drop-down list for Look In, select (C:) but leave the Named box and the Containing Text box blank. Then click the Advanced tab, and in the drop-down list for Of Type, select Font File and then click Find Now and the results will show a list of so-called font files present anywhere on the C: drive. However, you have to do this again, but this time in the drop-down list for Of Type, select True Type Font File and then click Find Now, and the new results will show a list of all TrueType font files on C: This is the list that most people will find useful. Windows XP must have an equivalent procedure. However, since Windows is such a disorganized mess, I can't be sure whether doing the above will really find all the fonts on the system. I also realize that a user who (hypothetically) finds font files installed in some nonstandard directory on the C: drive will have to find a way to tell LilyPond where that directory is. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Yet another font problem
\override #'(font-name . binnerd ) works fine, but \override #'(font-name . minion regular ) comes out with the default(?) font. Under Windows, I think you have to use the filename of the font (without the .TTF suffix), not the friendly-fontname. In my Windows/FONTS directory I have FontName FileName . . BinnerDBINNERN.TTF . . . . which means I would have to use \override #'(font-name . binnern) on my system. I don't have a font named minion regular; you do, of course, so look for its FileName in your Windows/FONTS directory, or in whatever directory your minion regular font is stored. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: stretchable systems
Section 10.1.6 Vertical Spacing of the user manual says that the default padding of every staff is specified by \set Staff.minimumVerticalExtent = #'(-4 . 4) so you could force the staves further apart by doing that \set for each staff (but using a bigger value than 4, like #'(-7 . 7) And section 9.1.2 Changing Context Properties on the Fly has an example that says that \set autoBeaming = ##f is equivalent to \set Voice.autoBeaming = ##f because autoBeaming is a Voice property, but that one *could* say \set Staff.autoBeaming = ##f to get this to apply to all the voices in a staff. From this, I conclude that you could probably (?) say \set Score.minimumVerticalExtent = #'(-7 . 7) to get it to apply to all the staves in a Score. There's a piece I'm going to have to apply this to in some form, but I'm still working on the actual music and haven't gotten down to the layout problems yet. If I'm wrong about the \set Score.-- conjecture for a Staff property, I'm sure someone will post a corrective message :) -- Tom Nicolas Sceaux wrote: Hi, Considering a piece with N-staff systems, with no room on a page for 3 systems, only for two, but with lot of space left, I can't find if it is possible to automatically enlarge (I hope that this word won't make this message marked as spam) the space between staves in a system, up to a certain distance, so that there should be less space between the two systems. Before: - page - /== |== \== /== |== \== - page - After: - page - /== | |== | \== /== | |== | \== - page - If this does not exist yet, but is sponsorable, I'm interested. nicolas PS: is there a problem with the mailing list search page? Searching on staff gives 0 results: http://lists.gnu.org/archive/cgi-bin /namazu.cgi?query=staffidxname=lilypond-user max=10result=normalsort=score ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: text below staff ouch!
but now why can't I use word wrap and justify? I don't usually read this list on the Web, I just read the mail that the list sends me -- and at this point I have lost track of your original post to the list. My mail client is plain-text only (Latin-1). Can you post a message containing a \markup command *without* word-wrap justify which gets the character-order right, and then, secondly, the \markup command *with* word-wrap justify, so that I can look at it? You don't have to use the actual characters in the two \markup examples. You could just use ascii characters ABC...; it would still show me the structure of the command you're using. Thanks for your patience... -- Tom ** On Mon, 22 Aug 2005, Aaron Mehl wrote: --- [EMAIL PROTECTED] wrote: Aaron Mehl wrote: but actually for each word the letters are in the correct order but the words themselves go left to right instead of right to left. With automatic text reversal, I would expect \markup { ONE TWO THREE } to produce ENO OWT EERHT exactly which is what it does once I removed the justification and wordwrapping But, with a pair of quote-marks added, I would expect \markup { ONE TWO THREE } to produce EERHT OWT ENO bravo! In the first case, \markup handles 3 arguments, one after the other. In the second case, \markup handles one single argument. but now why can't I use word wrap and justify? maybe I need some escape charactor? Thanks so far, Aaron -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: text below staff ouch!
Well, from your four examples, and from Han-Wen's remarks, it looks like you will have to give up on using wordwrap: I think you will have to produce each line of the text individually, given LilyPond's current limitations. If you define the lines in variables, La = this string is the first line of text Lb = this string is the second line of text Lc = this string is the third line of text and so on, guessing as well as you can how to break up the text into lines, then you can write \markup { La } \markup { Lb } \markup { Lc } or instead, the following might work: \markup { \column { La Lb Lc } } I haven't been using LilyPond for very long, but I think you could write something like \markup { \override #'(baseline-skip . 1.2) \column { La Lb Lc } } or maybe \markup { \column { \override #'(baseline-skip . 1.2) La Lb Lc } } to control the vertical spacing of the lines. But at least one of those two possibilities is not correct syntax. I'm pressed for time tonight, so I can't try these things out at the moment. As to whether you could throw in a \justify before or inside the \column {...} construct, I don't know, but it would be worth a try. -- Tom * On Wed, 24 Aug 2005, Aaron Mehl wrote: Well I have to admit I only tried two of the examples \markup { this is normal text \override #'(linewidth . 60) \wordwrap { ABC cde } works and gives me edc CBA but for a long lines it keeps going off the page (no word wrap?)I gather the override linewidth should be set to something different for this to work?... } \markup { this is normal text \override #'(linewidth . 40) \justify { ABC def ABC def ABC def } if I make separate lines they come out as a mess one on top of the other. } \markup { \override #'(linewidth . 40) { \wordwrap-string # ABC def Here the word wrap does work but the word order for hebrew comes out: CBA fed (left to right word order right to left letter order) \justify-string # ABC def ABC def ABC def } Here the justify works but on the english side not the hebrew. The hebrew word order is also wrong: CBA fed CBA fed CBA fed (left to right word order right to left letter order) I am sorry I didn't test this better previously. So I can get the correct word order it is just the justify and wordwrap that are acting flakey. Thanks Aaron ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: LilyPond dies on hairpin override
Trevor Baca wrote: Change ... \override Voice.Hairpin #'extra-offset = #( 0 . -1.8 ) to \override Voice.Hairpin #'extra-offset = #'(0 . -1.8) So you committed a Scheme error. Side remark: a Scheme error always seems to result in a log file ending in a wistful Parsing... with no further information, like a message scratched on a wall by the last human at the world's end. But at least you can be pretty sure that a Scheme error is the problem, so you can use a fine-tooth comb on your Scheme expressions looking for the error. I've taken to keeping a separate file with a handwritten list of all the Scheme expressions that *do* work, as a help in finding my coding faults. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: color every note-head by its note-name
Erik Sandberg wrote: It requires some Scheme hacking though, and you need to know about the internal representation of Music Expressions. It's probably doable in less than 20 lines of code, including colour codes. Where does there exist a systematic explanation of the details of -- LilyPond's internal representations in general -- all of the Scheme functions used in LilyPond I admit I shouldn't be asking this question yet, as at this point I have worked my way through only about a quarter of one of the online Scheme tutorials. Years ago I did some programming in Lisp 1.5; it isn't the kind of thing you forget. Looking at *.SCM files and seeing function definitions with parameters that aren't even used in the body of the function (parser, location,...) made me realize I had to learn Scheme. But I have a suspicion that learning Scheme isn't going to get me very far without an explanatory reference on the data structures and functions peculiar to LilyPond. Searching for stuff in the Program Reference manual by itself doesn't suffice. I can find possibly relevant terms that way, but if I can't find a usage example in one of the *.SCM files in the distribution, LOL. Or is it just felt that it would be better if new users weren't distracted by trying to acquire a knowledge of the details of LilyPond Scheme? -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: text below staff ouch!
Aaron Mehl wrote: but actually for each word the letters are in the correct order but the words themselves go left to right instead of right to left. With automatic text reversal, I would expect \markup { ONE TWO THREE } to produce ENO OWT EERHT But, with a pair of quote-marks added, I would expect \markup { ONE TWO THREE } to produce EERHT OWT ENO In the first case, \markup handles 3 arguments, one after the other. In the second case, \markup handles one single argument. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: triplet problem in multi-staff score 2.7 and 2.6 versions
I hate to make a simple-minded suggestion, but the triplet in question \times 2/3{a c e} is written differently from all your other triplets. If you put a space after the 2/3 and an 8 after the a, does the problem persist? \times 2/3 {a8 c e} Conceivably, the \times operator blows a cork while it's trying to figure out what 2/3{a c e} is. That guess is pretty far out, so probably I'm wrong, but it would be easy to fix just to see. Also, your fourth part (and staff) stops abruptly at measure 33. Could that somehow cause a problem with staff spacing because of space being left for the ghost of the 4th staff? What happens if you (temporarily) add another half-dozen measures to the fourth part? -- Tom Jay Hamilton wrote: I'm having a problem that I can't see to fix. Here's the file. The problem is pdf output at measure 36 third staff. The triplet or something has made the staff spacing huge. Since it's the only place that this is happening and there is nothing that I can see in the file that makes it this way. I'm stumped. This was a problem in 2.6x too but I thought maybe it was me. Jay oh yeah running this on xp \version 2.7.4 \header { title = Jat 9 composer = Jay Hamilton subtitle = suite for five instruments copyright = CC some rights reserved Jay Hamilton 2005 } one = \relative c' { \clef treble \key a \minor \time 6/8 #(set-global-staff-size 20) \tempo 8=112 r8 b'4 r8 b r | r8. b r b |r8 b4 r8 c r | r \times 2/3 {e16 d c } r8 c r a| \times 2/3 {e'16 d c} r8 b r4 a8| r8 b r r d r | r \times 2/3 {e16 d b} r8 d r g,| fis8 a c r4.| fis,8 r4 r8 b16 c8. | a4. r| a16 a8. r8 \times 2/3 {c16 b a} r8 g16 g| fis 16 fis r8 fis'8 e4. | d8 b g c a fis| b16 c b a g b g fis e4| c'16 d c b a b a g f8 r| b16 a g8 r c16 b a8 r| e'4. (d4) r8| %17 r2. | r8 b a r a16 fis a8| r8 b-. a-. r a16 fis a8| r8 c-. b-. r8 a16 g e8| d16 e fis g a c b8 a4 | r8 b (a) g fis16 g a8 | e'8 (d) r b a16 b d8| c8 b16 a g8 a fis16 fis a8| r b16 b8. r8 fis'16 fis8. | c2. | d8 c b a g fis | g2. | e'8 d c b a g | c8. b a4.| fis'8 a,4 e'8. c | g'8 b,4 fis'8. d | e8 d16 c b a c8 g'16 fis g8| %34 a4 g fis | d c b | a8 a4 a8 a16 a a8| g4 fis e | b'2.| r8 a r r g r r8 c r g16 fis8. r8 r e r r e'16 d8.| r8 d, r r f'16 e8. | g8 fis 16 e d c b a8. r8| b8 d fis a4 g8| e16 e8. r8 c16 b a b c e| e g a8 d, c16 b b c g8 | c16 b b c b g ~ g e g8 ~ g16 g | \acciaccatura fis8 fis'4 r8 \acciaccatura g8 c,4 r8| \acciaccatura b8 fis'4 r8 e16 d c b a8 %page 5 \acciaccatura g8 a'4. a16 a g4| \times 2/3 {g16 g g} fis4 r8 e16 e d8 | c16 c a'4 \times 2/3 { a16 a a} g8. fis16| e4 r8 c4 b8| c8 a4 g4. ~ | g8 g16 fis e g fis8. e16 d8| \times 2/3 { e8 b' b} e,8 a a e| \times 2/3 { a8 e' e} a,8 b a c| b8 a c c16 c c8 c| b16 a g a b8 b16 b b8 b| %page 6 measure 61 a16 g fis e fis8 g b d| a2. \bar || } two = \relative c' { \clef treble \key a \minor \time 6/8 r2. | r8 b r r b r| c4. c| b'8 c,4 c4.| d16 e fis g a b c8 c,4| c4. r| a' r| fis4 a c| c,4. c| g'8 g16 fis g8 b4.| b16 a g fis g8 ~ g4 r8| fis4. e16 d e8 r| g16 g8 g16 f8 r e16 e8. | d4. r| d16 e fis4 r8 \times 2/3 {a16 a g} g8| %16 page 3 \times 2/3 {d16 d e} fis4 g16 g8 fis16 fis8| e16 d c b c4. r8| a'4. a16 g fis g c8| d16 c b a b4. r8| a4. r| g r| fis r| e16 d e fis e d c b a4| b16 c8. r8 b' c fis| e2. ~| e| c16 a8 fis16 g8 a g e| r2.| g8. [fis16] g8. [a16] g a8.| e8 fis g a b c| a2.| % 32 page 4 c8 c4 c8 c16 c c8| b8 a4 g8 fis16 g b8| a2.| e8 e4 fis8 a16 c a8| e'32 d16. r8 b32 a16. r8 g32 d'16. r8| a16 g a b c b a g a4| e'16 d c b c4 r| d16 c b a b4 r| g16 a b g fis4 r| d'16 d d8 d16 d c8 [b32 a g fis e8]| r2.| fis|g| a16 g a b c4 r| b16 a b d c4 r| b16 a g a fis4 r| a2.| %49 page 5 g16 fis e8 e16 fis g e a4 | a16 b c8 c16 b c d b4| a16 g fis8 g16 fis e8 fis16 g d8| c4 b2| r2.| c'4 b c | e d c | b2 r4| a8 fis a c b a | g2 r4| fis16 g a8 r g16 d e8 r| fis16 g fis d e2| r2.| b'8 e,4 ~ e4. \bar || } three = \relative c' { \clef treble \key a \minor \time 6/8 a'4 c8 b b16 a a8 | c4 a8 fis g16 fis a8 | %3 a4 b8 c c16 b c8 | b4 a8 g g16 a g8 | a4 \times 2/3 {g16 fis a} g8 g16 fis g8 | a4 \times 2/3 { g16 fis a} g8 a16 b a8| a4 d8 d c16 b a8 | a4 d8 e fis16 e d8 | a4 d8 e d16 c b a | g a g8 a16 g fis4.| %11 a4 e8 d d16 e d8 | e16 fis g a g fis b8 b16 c b8 | e4 e8 d16 c d e c8 | d4 d8 c c16 b a8 | g4 c8 a16 b c b a fis | g4 c8 a4. | a4 d8 b4. | e,4 a8 a a16 a a8 | g16 fis8. c'8 a a16 a a8 | fis16 e8. b'8 a g16 b a8 | fis8.e16 a8 a g16 b d8 | %22 e4 fis8 e e16 d c8 | d4 e8 d d16 c b8 | c4. r| a4 fis'8 e d16 c b8 | a4 fis'8 g16 fis e d e8| a,4 g'8 g16 fis g a e8| fis16 e fis g d8 e16 d e fis c8| d8 a4 ~ a4.| r2.| a8 fis'4 e16 d e g fis8| e16 d e fis b,8 ~ b16 b a4| a8 g4 \times 2/3 {a8 [b c]} d8| %34 e4. r| g4 e8 a4.| fis4 c32 b16. r8 \times 2/3{a c e} | fis d b e a, c| g16 a8. r8 a4. | e'8 a,4 a8 a16 g a8| e'8 b4 a8 a16 b c8 | d a4 d8 g,4| a8 b16 c d8 a g16 b a8| a8 g16 b a8 \times 2/3 { a8
Re: Suddenly no \break (lilypond-book)
Mats Bengtsson wrote: the workaround is to add \newcommand{\betweenLilyPondSystem}[1]{\linebreak} in the preamble of your document (?) I read the message you referred to (and its whole thread), and I looked for these terms in the index of the user manual, and I am still mystified. Where are the following terms or constructs defined: \newcommand ? \betweenLilyPondSystem ? [1] ? Thanks for any light you can shed on this. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
\relative
Stephan Moss wrote: \relative c { block of music } { 2nd block of music } Probably you know this; if so, I apologize for sticking my nose in. The sequence \relative c { block1 } { block2 } is two sequential music expressions. Virtually anyplace in LilyPond that allows a music expression requires exactly one; so in practice the foregoing would have to be { \relative c { block1 } { block2 } } so that it would be just a single expression. And in fact { \relative c { block1 }block2 } would also be syntactically correct. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Markup over last barline
Hans Aberg wrote: . . . The lines \once \override Score.RehearsalMark #'self-alignment-X = #right \mark D.S. al Fine generate the error: Processing `/Users/foo/Music/LilyPond/RachenitsaB.ly' Parsing...unnamed port: In expression ^Òself-alignment-X: unnamed port: Unbound variable: ^Òself-alignment-X My plaintext mail client is set for ISO-8859-1 (Latin 1), so spurious apostrophes (') show up as the sequence ^ ò (but without the spaces I inserted for clarity). The tail end of the above error message looks like this: ^ ò s e l f - a l i g n m e n t - X which may indicate that the LilyPond parser does not see an apostrophe (a single-quote), but rather a long unbound (i.e., undefined) variable name beginning with the two characters ^ ò You might want to look at your actual source file in an ASCII-only text editor to see whether the apostrophe (') is a real ASCII apostrophe or if it's some unicode character. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: page break in markup
Graham Percival wrote on 2005 July 29 -- I'd like to insert a page break in the middle of a long \markup section (or between two separate \markup sections). This is for a large \book; I'd like to have two or three pages of text before beginning the music. One would think that just inserting PostScript page-ejects would work -- \version 2.6.0 % #(set-default-paper-size a4) \book { \markup { Page 1 stuff } \markup { \postscript #showpage } \markup { Page 2 stuff } \markup { \postscript #showpage } \markup { Page 3 stuff } \score { \new Staff { c c c c } } } But it isn't good enough: the page breaks do indeed occur, but each successive page has more more wasted white space at the top. I don't know if this is caused by PostScript or by something having to do with LilyPond margins or page-headers. Possibly, fiddling with the settings in a \paper block might help, but I haven't tried that yet. Or there might be a vertical back-up command in PostScript, but my knowledge of the PS language is woefully limited. Uncommenting the % #(set-default-paper-size a4) had no effect, and changing the choice (to letter for example) did not change the appearance of the resulting PDF file either. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
etf2ly.exe doesn't work on Win98
Hello, I downloaded and unzipped lilypond-tools-2.6.0.zip. I then ran abc2ly.exe on a .abc file; this gave me a correct .ly file, which I fed to LilyPond, and that gave me both a correct PDF file and a correct midi file. But when I ran etf2ly.exe on a Finale Notepad file 2005test.mus, I got a 2005test.mus.ly file that contained only one single line: % lily was here -- automatically converted by etf2ly from 2005test.mus That .mus file was produced directly with Finale Notepad 2005; it contained a 2-bar scale. I also ran etf2ly.exe on a .mus file produced directly with Finale Notepad 2001 (whose binary output format differs from the 2005 version) -- and I got the same result from etf2ly. If this is specifically a Win98 problem, I don't want to bother you; but are there users who have gotten etf2ly.exe to work on WinXP ? Thanks. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: pdf files
Running under Windows 98, LilyPond generates .PS, not .PDF, files for two independent reasons: (A) Ghostscript can't find its initialization files. (B) Once (A) has been cleared up, the long gs... command invoked by LilyPond.exe fails. = Regarding (A) = On 2 July 2005 Paul Scott quoted the Ghostscript error message GPL Ghostscript 8.15: Can't find initialization file gs_init.ps Jan subsequently recommended setting environment variables to cure this. But it would not be surprising for a user to have, independent of LilyPond, Ghostscript 8.51 also installed (which is true in my case), and so handling this problem through the Windows registry would be safer than setting global DOS environment variables that would affect all Ghostscripts. I created the registry key HKEY_LOCAL_MACHINE\Software\GPL Ghostscript\8.15 and into this key I inserted the two value-data pairs GS_DLL C:/PROGRA~1/LilyPond/usr/bin/gsdll32.dll GS_LIB C:/PROGRA~1/LilyPond/usr/share/gs/lib The first of these ensures that gs.exe will find its application extension. The second ensures that gs.exe will find its various initialization files. gs did find this information and now stops complaining that it can't find gs_init.ps [Remark 1: Windows uses backslashes \ but gs wants to see the forward slashes / indicated above.] [Remark 2: For the reader not familiar with DLLs, that filename above contains L's, not 1's: GSDLL32.DLL ] [Remark 3: Since LilyPond's (huge) .PS files have the fonts embedded, it doesn't seem likely that it would be necessary to add a third value-data pair to cover GS_FONTPATH. And in any case, C:\WINDOWS\FONTS is probably not needed in gs's fontpath, since this Windows 98 directory contains only TrueType fonts (about 300 .TTF files). It would be very helpful to me to be told what external fonts gs needs, and *why*. I don't see why it needs any at all.] = Regarding (B) = On 1 July 2005 Paul Scott sent the screen-output generated by lilypond.exe --verbose and the final line was Invoking `gs-dCompatibilityLevel#1.4 -sPAPERSIZE#a4 -dNOPAUSE -dBATCH -r1200 -sDEVICE#pdfwrite -sOutputFile#simple.pdf -c .setpdfwrite -f simple.ps'... This fails (lilypond does not generate a .PDF file). My best guess at this point is that since the maximum length of an individual DOS command is 127 characters, the above gs invocation gets truncated. In particular, gs doesn't get the information -f simple.ps so when gs asks (probably) to open a file whose name is (probably) the empty string, Windows 98 will complain File Not Found. Windows NT and Windows XP presumably allow a longer command line and don't have this problem. Fixing this for Windows 98 would involve changing the part of the source code of lilypond.exe which generates the above gs invocation. In the directory C:\PROGRA~1\LilyPond\usr\share\gs\lib the two DOS batch files ps2pdf14.bat ps2pdfxx.bat demonstrate a technique using @files to avoid overflowing the command line. You would think that a temporary work-around would be easy: I should be able to write a DOS batch file that uses the @files technique to generate the equivalent of the above gs command with much fewer actual characters. I could then apply this batch file to a .PS file generated by LilyPond. The catch is that in the pure DOS batch language, there is no mechanism at all for changing a substring of a string, so that given only the input filename simple.ps, I cannot (in DOS batch) create the name simple.pdf. [Useless side remark: Windows NT and XP do have a limited substring-replacement mechanism.] I have never used Windows 98 VBScript for anything very intelligent, and my VBScript is very rusty. However, I will have to scratch around and see if I can write a script that works. So why am I saying all this to lilypond-user and not to bug-lilypond? Because if I'm right, Windows 98 users should know that a quick fix is unlikely. Messing with the registry and applying a (hypothetical) VBScript script may not appeal to a casual user. With the massive amount of work LilyPond developers must have (and let it be said, they have my most sincere admiration), it is not likely that fixes will be made (A) to do automatic registry entries and (B) to modify the gs invocation just so that W98 users can get .PDF output. [I use W98 rather than WXP because I don't need *more* security problems than I already have, and I also dislike the notion of running an OS that is deliberately programmed to fail under certain circumstances (such as when I add a couple of pieces of hardware).] -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
LP 2.6 on Win98 -- question on Ghostview on PS file size
Since the problem I encountered involves using Ghostview, which I don't think was intended in the native Windows distribution of LilyPond 2.6, I don't think this qualifies as a LilyPond bug. If I'm wrong about that assumption, please tell me; I'm new to this list and I welcome your guidance on the way I try to use it. As noted in two previous posts, LilyPond 2.6 for Windows produces a .PS file, not a .PDF file. This seems advantageous, as .PS files are human-readable (to some extent), and they can be converted anyway. I installed LilyPond 2.6 running directly under Windows 98SE. I ran LilyPad, which came up with the Welcome to LilyPond .ly file. I saved the file, dragged and dropped its icon onto the LilyPond icon; this produced an (extremely large -- 684 K) .PS file. I opened this .PS file with one of the two Ghostviews I have installed: Ghostview 4.7 using Ghostscript 8.51 and accessing a bunch of fonts that do not include any music fonts (AFAIK). Ghostview balked and produced only the error message reproduced below (between the rows of asterisks). I then opened the same .PS file with a different Ghostview: Ghostview 2.7 using Ghostscript 5.50 and accessing fonts that include a limited number of music fonts supplied by ABCedit. This time Ghostview displayed the title and C-major scale that one would expect from looking at the contents of the .ly file; it printed correctly. It looked OK, but I have no way of knowing if the fonts or font sizes were correct, and I doubt very much that the music fonts supplied by ABCedit will have all the fonts I need in the long run (for viewing the .PS-file LilyPond output). So I have two questions: A) To use Ghostview 4.7 plus Ghostscript 8.51, should I try to find all the font files scattered throughout the LilyPond distribution and copy them to a subdirectory which I will then add to Ghostview's Include List for Ghostscript? This way I would wind up having two Fontmap files, one Fontmap that came with the Ghostview 4.7 distribution (from the WISC.EDU Ghostscript mirror), and another Fontmap that came with LilyPond; can I merge these two, manually eliminating duplications and conflicts? B) The .PS file produced by LilyPond is very large (684K), and perusing the .PS file with a text processor shows the presence of three very long %%BeginFont: %%EndFont: blocks. Why should these fonts have to be embedded in the .PS file, since the 3 font-files in question exist (in LilyPond subdirectories) and therefore could be referenced (one way or another). Thank you for your help. -- Tom *** GSview 4.7 2005-03-26 Unknown in Comments section at line 7: %%DocumentSuppliedResources: font CenturySchL-Bold Unknown in Comments section at line 8: %%DocumentSuppliedResources: font CenturySchL-Roma Unknown in Comments section at line 9: %%DocumentSuppliedResources: font PFAEmmentaler-20 Unknown in Prolog section at line 14: %%Title: CenturySchL-Bold Unknown in Prolog section at line 15: %%CreationDate: Fri Nov 22 10:58:25 2002 Unknown in Prolog section at line 16: %%Creator: frob Unknown in Prolog section at line 17: %%DocumentSuppliedResources: font CenturySchL-Bold Unknown in Prolog section at line 27: %%EndComments Unknown in Prolog section at line 3699: %%Title: CenturySchL-Roma Unknown in Prolog section at line 3700: %%CreationDate: Fri Nov 22 10:58:15 2002 Unknown in Prolog section at line 3701: %%Creator: frob Unknown in Prolog section at line 3702: %%DocumentSuppliedResources: font CenturySchL-Roma Unknown in Prolog section at line 3712: %%EndComments Unknown in Prolog section at line 7319: %%DocumentSuppliedResources: font PFAEmmentaler-20 Unknown in Prolog section at line 7320: %%Title: PFAEmmentaler-20 Unknown in Prolog section at line 7321: %%Version: @TOPLEVEL_VERSION@ Unknown in Prolog section at line 7322: %%CreationDate: Mon Jun 27 13:53:39 2005 Unknown in Prolog section at line 7323: %%Creator: Jan Nieuwenhuizen,,, Unknown in Prolog section at line 7332: %%EndComments DSC Information At line 7347: /Notice (This font is distributed under the GNU General Public License. As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause th Lines in DSC documents must be shorter than 255 characters. AFPL Ghostscript 8.51 (2005-04-18) Copyright (C) 2005 artofcode LLC, Benicia, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Displaying DSC file C:/WINDOWS/Desktop/WEL2LP.ps Displaying page 1 %GSVIEW_PDF_MARK: /ANN /Subtype /Link /Action -dict- /Border Error: /typecheck in --length-- Operand stack: --nostringval-- Rect --nostringval-- --nostringval-- 0.0 0.0 0.0 4.98132 0 0 Execution stack: %interp_exit .runexec2
RE: Languages other than English on the mailing list
David Bobroff wrote: Já, þetta er góð hugmynd, er það ekki? Mér finnst það væri mjög praktíst í raununni, að því það er satt að sumt fólk getur ekki skrifað vel á ensku og mun frekar skrifa á móðurmálinu sínu. [Rough translation: Yes, that's a good idea, isn't it? It seems to me that it would be practical and realistic, since for some people it's true that they can't write English well, they could, in addition, write in their mother tongue.] Icelandic. Well, why not? We all know that the current dominance of English is just a historical accident. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Languages other than English on the mailing list
Nicolas Sceaux wrote on 2005 June 25: How curious may it seem to you, not every body on this planet can write in English. I've seen fontconfig and pango in LilyPond's dependencies/requirements, not English language read and written. Yes, well put. When I recently became interested in this clearly international mailing list, I assumed that users adventurous enough to tackle the complexities of Lilypond would of necessity be flexible, certainly the sort of people who have figured out that if you want to have any hope of extracting maximal information from the Web, you'd better be able to at least read straightforward French, Spanish, Italian, German and Dutch. I see I was mistaken. I have witnessed, hundreds of times, conversations with person A speaking one language and person B replying in a different language. Encouraging such a procedure here would seem better than driving away those who are not comfortable presenting a question in English. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Languages other than English on the mailing list
On Sun, 26 Jun 2005, Jan Nieuwenhuizen wrote: I think we have an unwritten policy here of replying in English as well as the original language on non-English posts, with a summary of the question in English. That sounds reasonable. Maybe it deserves to be a written policy. In fact, an English-only reply to a question in French (etc.) would probably satisfy most people who are asking for technical advice. But I still don't see anything wrong with two francophones communicating in French on this list. Die-hard unilingual readers are no more deprived of information than they would be if the francophones just didn't bother to use the list in the first place, which would be a likely reaction to a linguistic rebuff. -- Tom ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: LilyPond 2.4.2 for Windows 98
Thank you for the amazingly quick reply! I will wait for version 2.6; a 10 MB download is feasible, even with dialup, and I can probably use Lynx on Unix to get a fast broadband download to my University's computer downtown (so that your site will not be tied up for an hour), and then do a 1-hour download from the University site to my home computer. I replied to All, as you indicated, but the initial response (from [EMAIL PROTECTED]) to my initial query indicated that I shouldn't be mailing to [EMAIL PROTECTED] because I am not a member. I had better re-read the fine print on the site to see if I can qualify for membership. Thank you for your help. -- Tom Kovats On Sun, 12 Jun 2005, Bertalan Fodor wrote: A new version for Windows (only cca. 10MB) will come out next week. Keep an eye on the website. This new version is called 'native', because the older Windows versions depended on a unix emulation layer called cygwin. The newer version doesn't need all those emulation staff, so the download is smaller. The lilypond-user@gnu.org email-address is the best place to ask questions. If you reply to emails you get from list members, always Reply All, because keeping discussions (also) on the list helps getting better answers. Bert [EMAIL PROTECTED] írta: Hello, The information at sca.uwaterloo.ca/lilypond/lilypond.org/ indicates that the size of the download for LilyPond 2.4.2 for Windows is 66 megabytes. A direct download would take me 6.5 hours, which is not feasible for either me or you. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: LilyPond 2.4.2 for Windows 98
Thank you for the information! The 2.5.29-2 package . . . I don't know if it works with win98 According to the web site, there are 3 things that don't work, but I can live with them all. I'll wait for 2.6.0 -- Tom Kovats On Sun, 12 Jun 2005, Graham Percival wrote: On 12-Jun-05, at 1:34 AM, [EMAIL PROTECTED] wrote: The information at sca.uwaterloo.ca/lilypond/lilypond.org/ indicates that the size of the download for LilyPond 2.4.2 for Windows is 66 megabytes. The 2.5.29-2 package is only 7.3 megs, though. I don't know if it works with win98, though -- there were some issues with 2.4 (and python, IIRC). My recommendation is to wait a little while for 2.6.0 to come out, then try that. - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
LilyPond 2.4.2 for Windows 98
Hello, The information at sca.uwaterloo.ca/lilypond/lilypond.org/ indicates that the size of the download for LilyPond 2.4.2 for Windows is 66 megabytes. A direct download would take me 6.5 hours, which is not feasible for either me or you. If the file is really at http://cygwin.com/setup.exe then I could get it via a broadband connection that Concordia University has to the Internet. (I would be operating through a telnet connection to a Unix-based computer at Concordia.) But off hand I don't know of a filesplitter operating under Unix that would then let me break this big binary up into chunks that I could download one by one from Concordia to my home computer. So: is LilyPond 2.4.2 for Windows 98 available on CD? If so, obviously I will pay for this; I'm the one causing the problems. Thank you for your help. If I am contacting the wrong people, can you steer me to the correct e-mail address? Thank you for your help. -- Tom Kovats [EMAIL PROTECTED] ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user