lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Appreciation / Financial support


From: Tim McNamara
Subject: Re: Appreciation / Financial support
Date: Tue, 12 Jun 2012 00:22:55 -0500

On Jun 11, 2012, at 9:21 PM, Ivan Kuznetsov wrote:
> Music notation is complex.  Any ASCII representation of
> music notation likewise has to be complex.

Hmm, it would be more accurate to say "music notation *can* be complex."  It 
can also be very simple.  I use Lilypond for creating jazz lead sheets; 
simplicity of presentation is very important.

Music notation does two essential and necessary things.  It specifies pitch 
information and time information:  what note is played and how long it is held. 
 Lilypond's syntax makes that pretty easy to express in text: c1 d2 e4 f8 g16, 
etc.  Indeed, it is as simple a way to express musical notation as possible in 
a text format.  Brilliant!

This is not the problem.

IMHO at least part of the problem is how the structure of scores is specified 
in Lilypond's syntax.  The placement of every structural item (bar lines, 
repeats, alternate endings, sections, etc.) is specified by being tied to time 
values rather than the structure being a set of values that can be described 
independently of the notes.  Instead of a 32 bar form being specified as a 32 
bar form, it is specified as being 128 beats and the barlines are placed by 
Lilypond counting beats.  

Now, because computer programs do not operate like human brains there may be no 
practical alternative.  I think I'd like to see the structure of the score 
(number of bars in the form, bars per line, placement of repeats, section 
marks, etc.) be specified in its own block, which would then allow the block(s) 
for musical information to be devoted only to that information (pitch, duration 
and expression such as accents, falls, doits, bends, slurs, 
crescendo/decrescendo, etc.).

I think that this could simplify the syntax by creating a standard skeleton for 
.ly files going from most global to most specific:

\version information

\paper information

\form information (number of bars, repeat locations, bars-per-line, rehearsal 
mark locations, number of staves, instruments/voices, \clef, \key, \time, etc.)

\music information (could be \notes (including percussion), \chordnames or 
\lyrics)

I think that the \score block could possibly be eliminated if the required 
information was specified in the other blocks; much of that information would 
be under \form (e.g., how many staves and what information is assigned to those 
staves).  There could be one method for engraving chord names and lyrics 
instead of multiple methods.  But it may be that there would be no practical 
way to separate form information into its own block separate from note/chord 
information.

> Any simplification of lilypond syntax must mean a removal
> of features.

With all due respect, that is IMHO incorrect.  Lilypond's syntax could be 
simplified through pursuing elegance while retaining power.  In short, harder 
to use != more power.  I can see no reason to be opposed to making Lilypond's 
input as attractive as its output- that is in many ways a more difficult task, 
however, because it's squishier than coding the processes that take the text 
and produce the score.  Squishy stuff is difficult for a lot of reasons.  One 
goal would be to remove redundant features, which reduces the complexity of the 
application code and improves its maintainability, and to make input 
streamlined.  For example, do we need multiple ways to put in lyrics?  (Maybe 
we do for reasons I don't understand).

IMHO an economical syntax is easier to learn, is easier to type without errors, 
and probably easier to compile although I wouldn't know about that part.  It 
seems self-defeating to say that we can't simplify and make the input method 
more elegant and even intuitive.  It seems silly to me that we need hundreds of 
pages of documentation plus an online snippet repository.

In terms of power, BTW, there would be no reason to remove Lilypond's Scheme 
interpreter which would allow for extending Lilypond as needed.

Of course, I could be all wet.

> The only other alternative is to use a WYSIWYG
> editor where you "draw" the musical notation you
> want, and good luck waiting for an flexible open-source
> version of such a program with quality output.

The closest is Musescore.

http://musescore.org/

It has drawbacks in the quality of the output, to my eye, although it is 
generally better than many Finale things I have suffered through.  I've tried 
Musescore, it's easy to use and it may be possible that the output can be 
tweaked to look really nice.  I haven't felt like messing around with it 
because I've got so much time invested in learning Lilypond.

> Or maybe Frescobaldi will someday evolve to something
> like this, I have yet to investigate the interface.
> 
> P.S.  Perl was a bad example, but the latex comparison
> was valid.

The LaTeX comparison is apt, given that it has the same goal as Lilypond:  the 
rendering of a page of well-formatted and fluently shaped information.  I've 
never bothered with it, a word processor is a much more practical proposition 
for me.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]