Greetings Andrew Culver, You have posted a pretty broad swathe of questions to the LilyPond Community. I suspect people will likely give a few responses. My personal use case is limited in comparison to things you might be undertaking. The Thalberg piano concerto is the largest thing I ever have typeset with Lilypond, and it ate that for breakfast. I would not describe myself as a power user and therefore don't have answers to many of the questions. However, to this point I have never seen someone show up on the list and find out something can't be done. It might take the extensibility provided by the magic of Scheme, which is a programming language, used to extend lilyponds abilities. As far as future proofing, Lilypond has an automated code updating program, which does very well with making sure the old code is compliant with the current version's standards. The only time that might break is if something very kludgy was done. Personally, I have only broken something once, but that was because many years ago I was using something absolutely not in the way it was intended to achieve some end. In terms of fussiness of laying out objects in a correct way, Lilypond does these things out of the box in a way that other programs I have used just don't approach. So for a very great percentage of things tweaking items (manually moving) is not necessary. And there are ways for working around tweaking bits of code without having to compile a whole vast document. So in any event, it is likely LilyPond is an excellent candidate for your needs, unfortunately I can't give all the answers, and really am looking forward to whatever discussion your missive generates. It is always interesting to learn what this program is capable of.
kind regards, Shane Brandes On Fri, Apr 9, 2021 at 12:18 PM AHF <cul...@anarchicharmony.org> wrote: > Hello LilyPeople, > > I am looking into using LilyPond for future works. What I like about it is > the text input, which makes it very easy to integrate with the collection > of C programs and PostgreSQL functions I use to generate and manage music > for large-scale pieces. (I’m on a Mac.) > > I have been doing this since the late 1980’s, for John Cage's operas, > installations, and films, and for my own large-scale orchestral works, such > as “Ocean 1-133” for 150 musician soloists over 90 minutes — see the Merce > Cunningham work “Ocean" if you are interested. > > The parts for Ocean 1-133 (more than 3000 pages) were pulled from the > database and formatted using C code into the P-field file format of the > wonderful old Score program by Leland Smith. Like LilyPond, this format is > expressed with simple text files. Given the abandonment of Score and the > vibrancy of LilyPond, I want to know if I should be using LilyPond. > > The example below is from one of Cage’s Number pieces, demonstrating Time > Bracket notation. The important challenges for a notation program are: > - Each time bracket is centered on the page, and the system is only as > long as necessary. > - No barlines. > - Notes within the time bracket are distributed evenly horizontally. There > is no notion of tempo or meter. > - Whole note noteheads - or any notehead I want, free of any metric > constraints. > - Ample vertical spacing between time bracket systems. > - Horizontally centered headers and footers (not shown). > - Sometimes one piece runs over several pages (a “piece” is a set of time > brackets for one player). > > > Score had no problem doing this because fundamentally it was a CAD program > augmented by musical knowledge. With the P-field format, you essentially > cut out the musical knowledge layer. You got to put beautiful-looking music > symbols wherever you wanted them. From what I can tell, the musical > knowledge part of the equation is too deeply baked in to most notation > programs, such that if you don’t need it, or want to invent new rules, you > are stuck trying to trick the program into not doing what it “helpfully” > insists on doing. > > I need to be able to generate 100% of the .ly files from C, taking as a > source the composition in the database (which was also generated, using > chance operations, with C code). Because of the volume of pages, hand > tweaking the parts is not an option. > > So: > 1. Is LilyPond up to the job? > 2. What commands are used to do the time bracket centering, meter-free > notehead selection, bar-less notehead equidistant spacing, etc.? > 3. Is LilyPond going to gracefully let me set music symbols where I want > them, or will I be constantly having to fool it into compliance at every > turn? A follow-up question: If I do have to work around LilyPond’s > “knowledgeable” music formatting “conveniences”, will these work-arounds > end up being “corrected” in future versions, thus breaking my existing code? > > BTW, I am open to hiring a knowledgeable LilyPerson as a time-saving and > inspirational resource. Reply to this email if you are interested. > > Regards, > > Andrew Culver > > > >