Hi Andrew

I'm a professional software engineer, and I recently asked myself most of
the questions you're asking here when evaluating Lilypond, and ultimately,
I decided that for my usecases, it made more sense to use Lilypond, because
I would make a lot of use of the musical modeling/abstractions that do, as
you intuited, result in highly indirect control of the formatting that's
ultimately drawn.

Based on what you've written, my feeling is that you *could* choose to take
your existing programs/scripts together with a reasonable font, and
generate SVG and/or postscript files, et al., on your own. It's obviously a
lot of effort to make that work, and takes a different skillset, but you
could, eg, easily pipe output from a C program to the stdin of a python
script (or any general purpose language that has good library support for
the image/document format you're targeting). This will allow you to create
a much more manuscript-like experience and thought process than Lilypond
provides as its sort of "happy path," which I think of as more like a
declarative markup language (.ly) with an optional scripting language
(guile scheme) and APIs, a lot like what we have in a web browser with
HTML/JS.

That said, everything you can imagine doing with a general purpose
programming language is (probably) possible with Lilypond, but depending on
how unconventional your scores will need to look, or how precisely you need
the notation to be laid out, it might require more effort to learn how the
Lilypond architecture, lifecycles, interfaces, etc., work, which is not
trivial. But the community is great and your questions will be answered
promptly and thoughtfully. It does take time to learn, though; there's no
getting around that.

Tom


On Fri, Apr 9, 2021, 14:20 Shane Brandes <shane.bran...@gmail.com> wrote:

> 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
>>
>>
>>
>>

Reply via email to