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. _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user