Re: Vaticana ligatures / spacing / other...

2005-11-16 Thread Juergen Reuter

On Thu, 17 Nov 2005, Han-Wen Nienhuys wrote:


...

Ligature spacing: as has been mentioned before, coherent ligatures (at
least of the vaticana variety) should act like a single un-breakable
paper column, but should not receive extra spacing based on the number
of notes within the ligature.  I am interested in getting this
working.  I can start with the TODO notes in
coherent-ligature-engraver.cc.


You should create a new ligature engraver. It should acknowledge all the 
relevant notes/neume item grobs.  The engraver creates an Item at the start 
of  the ligature. The Item is an X axis-group, and all neumes/notes are added 
to the Item as children. The item determines the positioning of its 
X-children  (see eg. Dot_column::calc_positioning_done). In a first version, 
it can put the children in a row.




I tried a similar approach long time ago around 1.9.x, but I failed, since 
I would have needed to duplicate much code around the note head engraver 
(e.g. handling of articulation scripts, ...).  However, lily has changed a 
lot since then; hence, it may be worth trying again.


For engravers, code reuse through shared super classes has always had bad 
results. So, derive the engraver directly from the Engraver class.




Well, the original idea was to have not only a vaticana engraver, but also 
a medicea engraver, a gothic neumes (hufnagel) engraver, maybe even an 
adiastematic neumes engraver, etc.  In that case, the amount of code reuse 
would have been rather tremendously.


Please notice the idea of stacked abstraction layers.  Gregorian chant 
notation exists in a plethora of notational styles.  If you write down the 
same piece once in Vaticana style and once in gothic neumes, the 
non-professional reader possibly would not even recognize that it is the 
same piece of music.  However, the syntax was designed to be the same for 
all common notational styles, such that you e.g. can switch between them 
by just adding/removing a proper engraver to/from the voice context 
(though this has not been proven so far since the gothic neumes engraver 
has not yet been implemented).  This goal is achieved by internally 
breaking down complex neumes into primitive ones, e.g. porrectus into 
flexa+pes, or epiphonus into pes+deminutum.  The intention is to share 
this approach between all Gregorian chant notation flavours.  The shared 
super classes reflect this intention of hierarchical abstraction.


Btw. (off-topic), I also intended to implement the Gregorian square neumes 
ligatures table (cp. lily v2.7.16 manual Sect. 7.7.10.2) slilghtly 
generalized as scheme functions, such that you e.g. can say "\porrectus { 
a b c }" which will translate to "\[ a \flexa g \pes b \]".  A "\ligature" 
command that internally produces "\[" and "\]" is already defined in 
ly/gregorian-init.ly.


I think this is the major task that you should focus on. The rest of your 
items are comparatively simple.


What about the spacing *between* ligature items?  Even with packed and 
raggedright options, lily's spacing engine heavily depends on note 
durations, while neumes per se do not have any fixed duration.


Michael Welsh Duggan wrote:


...
Breaking: when typesetting chant notation, we should be allowed to
break after any note or ligature,


This should already work (assuming it's not currently broken): 
"get_score_engraver ()->forbid_breaks ()" in 
Ligature_engraver::process_music () forbids breaks within ligatures 
(although Coherent_ligature_engraver may be a more apropriate place for 
it); and "Score.timing = ##f" and "Score.barAlways = ##t" allows breaks 
anywhere else.



but with preference on the breath
marks. (Actually, ideal would be to try to only break on word
boundaries, but there's no simple representation for that right now.
Something to think about later, I guess...)



This requires far more work, afaics.  Btw., interaction between lyrics and 
breath marks is also required for correct aligning of directive signs like 
versus, responsio, etc.  Maybe the stanza number engraver can be 
generalized to handle such things; conceptually, stanza numbers are 
strongly related.



Ligature melismata: the ligature should act as automatic melismata for
purposes of setting text.



In general, this is difficult to accomplish: usually, there may be at 
most one syllable per ligature; however, there may be multiple ligatures 
per syllable.  Hence, you would still have to tell which ligatures belong 
to a single syllable.



Punctum-mora stacking: Punctum-mora (dots) should stack nicely.



Right.  This task is similar to the accidental engraving: you have to 
collect all dots and put them behind the ligature aligned in a column.
For mensural music, however, you often find the dots printed above the 
ligature.  So, in general, you should be able to easily switch between 
these two modes plus the conventional mode of dot engraving.



Accidental engraving: Should act as mentioned in the TODO in
coherent-ligature-engraver.cc

Re: Vaticana ligatures / spacing / other...

2005-11-16 Thread Han-Wen Nienhuys

Michael Welsh Duggan wrote:

I am coming up to a point where I am going to be needing to use
LilyPond to typeset a great deal of Editio Vaticana-style chant
notation.  I have been reading the associated code in preperation for
delving in and making some fixes, but I wanted to see what work
Juergen might already have on this outside of CVS before I started
reinventing the wheel.  Some of these may already be working; I have
not tested all of them in the current version.  Also note: my interest
in typesetting chant notation is in the nature of a hobby -- I should
not be considered an expert.  As a result, any suggestions below may
be the result of my misunderstanding of "the way things are really
supposed to be".  I certainly do not mind being corrected.


The current ligature code has not been reviewed by Jan and me at all, 
and it's ancient.  It's not a good guide for implementing more 
functionality. I think it will be quicker to restart from scratch, and 
simply borrow the code bits that you might need.



Ligature spacing: as has been mentioned before, coherent ligatures (at
least of the vaticana variety) should act like a single un-breakable
paper column, but should not receive extra spacing based on the number
of notes within the ligature.  I am interested in getting this
working.  I can start with the TODO notes in
coherent-ligature-engraver.cc.


You should create a new ligature engraver. It should acknowledge all the 
relevant notes/neume item grobs.  The engraver creates an Item at the 
start of  the ligature. The Item is an X axis-group, and all 
neumes/notes are added to the Item as children. The item determines the 
positioning of its X-children  (see eg. 
Dot_column::calc_positioning_done). In a first version, it can put the 
children in a row.


For engravers, code reuse through shared super classes has always had 
bad results. So, derive the engraver directly from the Engraver class.


I think this is the major task that you should focus on. The rest of 
your items are comparatively simple. If you want, I can also implement 
the above as a sponsored feature, or lay-out a framework for you to put 
complex positioning rules in.


--
 Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Compiling CVS 2.7.16 with g++ 3.3.4

2005-11-16 Thread Andreas Scherer
Am Mittwoch, 9. November 2005 10:36 schrieb Han-Wen Nienhuys:
> I don't understand this patch. Why doesn't str need a cast? What's the
> difference between reinterpret_cast and (const char*)
After updating to OpenSUSE 10.0 with g++ 4.0.2 the problem is gone. The CVS 
code compiles without the patch. Case closed.

Cheers


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Vaticana ligatures / spacing / other...

2005-11-16 Thread Michael Welsh Duggan
I am coming up to a point where I am going to be needing to use
LilyPond to typeset a great deal of Editio Vaticana-style chant
notation.  I have been reading the associated code in preperation for
delving in and making some fixes, but I wanted to see what work
Juergen might already have on this outside of CVS before I started
reinventing the wheel.  Some of these may already be working; I have
not tested all of them in the current version.  Also note: my interest
in typesetting chant notation is in the nature of a hobby -- I should
not be considered an expert.  As a result, any suggestions below may
be the result of my misunderstanding of "the way things are really
supposed to be".  I certainly do not mind being corrected.

Ligature spacing: as has been mentioned before, coherent ligatures (at
least of the vaticana variety) should act like a single un-breakable
paper column, but should not receive extra spacing based on the number
of notes within the ligature.  I am interested in getting this
working.  I can start with the TODO notes in
coherent-ligature-engraver.cc.

Breaking: when typesetting chant notation, we should be allowed to
break after any note or ligature, but with preference on the breath
marks. (Actually, ideal would be to try to only break on word
boundaries, but there's no simple representation for that right now.
Something to think about later, I guess...)

Ligature melismata: the ligature should act as automatic melismata for
purposes of setting text.

Punctum-mora stacking: Punctum-mora (dots) should stack nicely.

Accidental engraving: Should act as mentioned in the TODO in
coherent-ligature-engraver.cc.

-- 
Michael Welsh Duggan
([EMAIL PROTECTED])


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Stemless music with slurs

2005-11-16 Thread Michael Welsh Duggan
Han-Wen Nienhuys <[EMAIL PROTECTED]> writes:

> Michael Welsh Duggan wrote:
>> Better and better.  But the shorter slurs now look very odd.  See, for
>> example, the first two instances.  Note: I am not specifically
>> requesting support to make this better.  In the best case, I will
>> achieve enough understanding of the code to make this work in a truely
>> stemless manner.
>
> Come to think of it: why are you using 8th notes at all?

Hmm...  Historical (hysterical?) reasons.  I am converting from music
which has been written out using 8th notes.  I am using this as an
intermediate notation on our way to having people read Vaticana square
neume notation.  There's no good reason for it anymore, so I will
switch to stemless quarter notes, in order to fool the slurs.

-- 
Michael Welsh Duggan
([EMAIL PROTECTED])


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Build error on Gentoo for 2.7.15

2005-11-16 Thread Han-Wen Nienhuys

Ralph Little wrote:

install-info: menu item `musedata2ly' already exists, for file

fixed.

--
 Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Shaped notes

2005-11-16 Thread Han-Wen Nienhuys

Eduardo Vieira wrote:

Hello developers,
 
I have some remarks about the shaped notes feature in Lilypond:
It would be nice if the black shaped noteheads would have the same width as the 
round "so". The round note is noticebly smaller than the other shaped 
noteheads, which doesn't look nice. The withe notes (whole, and half notes) 
doesn't seem to have this imperfection, looks like that the round note has the 
same width as the other ones.
My suggestion is to make the other black shaped notes with the same length as 
the normal round ones. That is what other programs that feature shaped notes 
have. It also helps with the tight spacing that we many times have to apply in 
making hymns.
 
With best regards,


Hi, I've tuned down the width for solfa notes in 2.7 CVS.

--
 Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Stemless music with slurs

2005-11-16 Thread Han-Wen Nienhuys

Michael Welsh Duggan wrote:

Better and better.  But the shorter slurs now look very odd.  See, for
example, the first two instances.  Note: I am not specifically
requesting support to make this better.  In the best case, I will
achieve enough understanding of the code to make this work in a truely
stemless manner.


Come to think of it: why are you using 8th notes at all?

--
 Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Stemless music with slurs

2005-11-16 Thread Han-Wen Nienhuys

Michael Welsh Duggan wrote:

Better and better.  But the shorter slurs now look very odd.  See, for
example, the first two instances.  Note: I am not specifically
requesting support to make this better.  In the best case, I will
achieve enough understanding of the code to make this work in a truely
stemless manner.


The slur code tries to avoid flags which aren't there. Try using c4*1/2 
iso. c8



--
 Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Uniform spacing throughout scores.

2005-11-16 Thread Mats Bengtsson
The new line is trivial, just insert a  \break. However, the extra 
indent is

hard to do that way. I guess what you really are saying is that for scores
that only have a single line, the spacing will often be more tight than that
of scores with multiple lines, right? In a way, this is natural since 
the only
option is to split the single line into two, which will double the 
spacing and

may result in too wide spacing instead.

You can always insert a manual line break at appropriate places in the 
scores
that look too tight. An alternative is to try to fiddle with the 
parameters that

determine the default spacing, see "10.1.8 Horizontal Spacing".

 /Mats

Basil Crow wrote:


I'm wondering what the best way to do this is:

I'm typesetting some liturgical music which consists of 40 or 50 psalm 
verses set to music. I put each verse in a \score block so that it 
gets a new line and indent. But the spacing for the whole score is 
then very, very tight and not consistent between verses. If I put them 
all in the same \score block, the spacing would be looser (since it's 
based on more notes) as well as consistent. But then I would not get 
the new line and indent. How can I reconcile these two different needs?


--Basil


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel



--
=
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-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel