What do you use LilyPond for?

I know quite well what makes LilyPond stand apart and the perfect choice – from my point of view. But when following (or participating in) discussions in the community one notices that there are many different point of views, that use cases vary widely. People love LilyPond for very different reasons, and people struggle with LilyPond for very different reasons, maybe even because it isn’t the perfect choice for what they need to achieve.

While I have some ideas about what others could like about LilyPond these are actually just guesses – probably not even educated ones. So here is the opportunity to shape the picture a little bit:

What do you use LilyPond for?

View Results

Loading ... Loading ...

In which fields could Lilypond be improved in your opinion?

View Results

Loading ... Loading ...

2 thoughts on “What do you use LilyPond for?

  1. Ralph Palmer

    There are a few places where I think LilyPond’s defaults are not the most attractive. Specifically, I think the stems on beamed 8ths and 16ths are sometimes a bit short. Also, if you look at a three octave scale, the spacing looks a bit off – cramped on one side.

    Reply
  2. Matthew Probst

    I said “programmability” but I’m not so concerned with Scheme the language being used over some other language. What bugs me is that there doesn’t seem to be proper separation between the raw Scheme datatypes and the abstract ideas they represent.

    The situation has improved in 2.16 and 2.17, but I’ll give an example–If one wants to walk over a music expression and extract the note events and their durations and process them, one has to recurse/loop over raw items in a list. Yes, we can assume that will always be just a Scheme list, but really there should be _abstract data types_–a function/generator should be supplied that does this kind of walking through the structure, and utilities for extracting these little parts of objects through functions instead of peeking into raw data structures.

    I’m quite a decent programmer _with_ knowledge of Scheme, and the last time I tried doing these kinds of manipulations in 2.16 I felt like pulling my hair out. I asked a few questions on the list, but the answers I got were somewhere between “Read the manual, newb” and “Why would you need that?”. I’m willing to admit I’m a newb, but it seemed like they didn’t understand my question–I wasn’t asking how a loop works, or asking what was possible to do. I’d already read the manual pages. I was asking whether there was a defined programmatic interface to access that information, because other well-designed software I use has that kind of structure. The documentation talks a lot more about _what_ the data structures are, than best practice in manipulating them.

    That said, the changes being made in 2.17 are promising; the interface between Scheme functions and music expressions is being made more consistent, and documentation of these things in turn is getting easier.

    I use Lilypond extensively to produce scores/parts of about 7 systems, to capture little snippets of ideas using a cellphone (just Email myself some Lilypond of a melody, faster than trying to write it some other way), and during the arranging process, sometimes with a paper musical notepad by my side to make a first try at structuring things. I don’t worry too much about fine-tuning output for typesetting reasons, because the default output of naive attempts is still tons better than with the major score-writer programs.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *