[Top][All Lists]

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

Re: Plan for discussions

From: David Kastrup
Subject: Re: Plan for discussions
Date: Mon, 14 May 2012 14:36:35 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux)

Joseph Rushton Wakeling <address@hidden> writes:

> On 14/05/12 11:47, address@hidden wrote:
>> This is very hard because of the butterfly effect - an A-flat in an
>> already-crammed line could lead to new line breaking, which means
>> new vertical spacing etc..
> I don't assume it would be easy!  But enabling GUI/IDE developers to
> build functionality like that in the video seems like an exciting
> possibility which it might be good to take into account when taking
> the LilyPond compiler forward.

First, you have to be aware that LilyPond does a _global_ optimization
process for making its decisions.  Any change can lead to differences
_later_ in the score as well as _earlier_ in the score.  A change on the
last page can change the layout of the first page.  Contrast this with
TeX which does global optimization on each paragraph (a change at the
end of paragraph may cause differences for the layout at the beginning
of the paragraph) for the line breaking, but only local optimization for
the page breaking (changes on page n+2 will not percolate back to page n
as long as they are not in the same paragraph).

There is a WYSIWYG editor using TeX's line/page breaking algorithms that
is called TeXmacs <URL:> (incidentally, one of the
poster childs for Guile integration along with LilyPond).  Try editing
texts in a paragraph with it.  The global paragraph optimization makes
this sometimes somewhat non-linear and surprising in the editing
experience.  And that is doing only the line breaking globally.  It
basically had to reimplement TeX to work in this manner.  Completely.

In contrast, LyX <URL:> uses a simple greedy line
breaking algorithm in its GUI, and TeX in its backend.  This is no
longer WYSIWYG, but the editing experience is more straightforward.
There are programs like Denemo <URL:> working in
that manner in connection with LilyPond.

It is not like the graphical frontends are not mentioned in LilyPond's
documentation.  Have you checked

As you may have noticed, making demands is easy.  But "somebody should
really" does not get anything accomplished.  And I can't avoid the
impression that you have invested a _lot_ less time in doing your
research before suggesting we are doing everything all wrong than I have
in answering you.

David Kastrup

reply via email to

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