Re: Vaticana ligatures / spacing / other...
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...
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
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...
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
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
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
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
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
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.
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