Re: Post Install Bug

2007-04-21 Thread stk

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

2007-04-07 Thread stk

 . . . 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

2007-04-05 Thread stk

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)

2007-03-21 Thread stk

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?

2007-03-10 Thread stk

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

2007-03-01 Thread stk

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

2007-02-24 Thread stk

   \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

2007-02-17 Thread stk

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

2007-02-11 Thread stk

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)

2007-01-09 Thread stk

 . . . 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)

2007-01-08 Thread stk

 \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)

2007-01-07 Thread stk

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

2007-01-06 Thread stk

   . . . 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

2007-01-05 Thread stk

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

2007-01-05 Thread stk

 . . . \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

2007-01-05 Thread stk

  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

2007-01-05 Thread stk

 . . . 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

2007-01-05 Thread stk

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

2007-01-05 Thread stk

 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

2007-01-05 Thread stk

  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

2007-01-05 Thread stk

 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

2007-01-02 Thread stk

 ... 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

2007-01-01 Thread stk

 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

2006-12-30 Thread stk

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

2006-12-19 Thread stk

 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

2006-12-03 Thread stk

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

2006-11-30 Thread stk

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

2006-11-30 Thread stk

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

2006-11-29 Thread stk

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?

2006-11-02 Thread stk

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

2006-02-24 Thread stk
 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

2006-02-24 Thread stk
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?

2006-01-24 Thread stk
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

2006-01-15 Thread stk
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

2006-01-06 Thread stk
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

2006-01-05 Thread stk

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

2006-01-05 Thread stk
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

2006-01-04 Thread stk
 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

2006-01-04 Thread stk
      -- 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

2006-01-04 Thread stk
 . . . 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

2005-11-03 Thread stk
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

2005-11-03 Thread stk
 . . . 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

2005-10-01 Thread stk
 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..

2005-09-18 Thread stk
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

2005-09-17 Thread stk
 . . . 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 #

2005-09-15 Thread stk


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

2005-09-15 Thread stk
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 #

2005-09-14 Thread stk
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?

2005-09-14 Thread stk
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?

2005-09-05 Thread stk

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)

2005-09-05 Thread stk
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

2005-09-05 Thread stk
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)

2005-09-05 Thread stk
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)

2005-09-03 Thread stk

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?

2005-09-03 Thread stk
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)

2005-09-03 Thread stk
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)

2005-09-03 Thread stk

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)

2005-09-02 Thread stk
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)

2005-09-02 Thread stk
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)

2005-09-02 Thread stk
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)

2005-09-01 Thread stk

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

2005-08-31 Thread stk
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

2005-08-28 Thread stk
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

2005-08-27 Thread stk
\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

2005-08-25 Thread stk
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!

2005-08-24 Thread stk

 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!

2005-08-24 Thread stk

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

2005-08-24 Thread stk

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

2005-08-23 Thread stk
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!

2005-08-22 Thread stk
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

2005-08-21 Thread stk
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)

2005-08-19 Thread stk
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

2005-08-19 Thread stk
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

2005-08-14 Thread stk
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

2005-08-01 Thread stk

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

2005-07-30 Thread stk
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

2005-07-06 Thread stk

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

2005-07-01 Thread stk
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

2005-06-27 Thread stk

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

2005-06-26 Thread stk

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

2005-06-26 Thread stk

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

2005-06-13 Thread stk

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

2005-06-13 Thread stk

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

2005-06-12 Thread stk

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