Hi all, personally, I think, it is as always in software development that addresses a wide audience: the challenge to find an appropriate level of abstraction. If you want to support *any* kind of notation, then just use a painting or CAD software. Obviously, you do not want to do that, because you will loose any musical semantics, including the possibility of reformatting, transposing, or whatever else musicologically editing you would like to apply.
On the other extreme, you would focus on a specialized notation system that addresses a selected audience only and is of little or no value for other users. A common approach is solve this dilemma is to: * (1) Focus on a selected set of specialized features that you expect to be useful for many users. Then you can add specialized automation. For example, the abstraction of having objects called "notes" that have a particular property called "pitch" enables you to group a selection of notes into a "music expression" and "transpose" the whole expression by altering the pitch of each note in that group. * (2) For exceptional cases, provide more lower-level features, that provide less automation due to an increasing lack of musical semantics, but are more flexible. For example, LilyPonds feature to embed postscript snippets is extremely flexible. But it is just graphics, without any musicological sementics. And as such, you can not impose any musical operation on it. Having this approach in mind, I implemented the cluster engraver roughly 15 years ago. Urs, you mentioned creating "notation that behaves like a glissando, i.e. any drawn connection between two notes." With the cluster engraver, you (sort of) can do such a thing. The idea was to provide graphical notation that builds upon musical expressions by transforming that musical information into a corresponding graphical shape. This way, the cluster engraver fills the gap between non-graphical (and therefore specialized) standard notation on the one hand and generic, but non-musical low-level graphics on the other. Maybe the cluster engraver would be a proper starting point for more music expression based graphical notation? Another thing, I guess, is making it easy for musicians without programming knowledge to smoothly embed their own articulation signs, note heads, clefs, and other font symbols into LilyPond at runtime: Just define a new articulation sign or note head shape or clef at the top of your .ly file with a single short line of scheme code that references some, say, .eps file. I think, this is still not that easily possible, right? (Please correct me, if I am wrong.) Personally, I am even not sure of how to properly notate contemporary music. Yes, I have seen e.g. excerpts of Stockhausen's score of his Studie II, and Wehinger's aural score of Ligeti's Artikulation, as well as a score of Kagel. (LilyPond's short, long and very long fermata signs were actually inspired by this score of Kagel.) Still, I am not satisfied with such notation: At least to my perception, it typically does not represent well essential nuances of e.g. electronic sounds. Probably most important, I think you first of all need lots of examples to get a sense for what might classify as candidate for an appropriate abstraction: Is it all about graphical notation? Or rather use of individual / personalized font symbols? What else is useful? In fact, classification by having seen lots of examples is one of our brain's fundamental approaches for recognition... Best wishes, Jürgen _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel