It is really annoying and tedious and slow. Are people using it to compose from scratch? Is it meant for composing from scratch, or as a music engraver ie. COPYING or TRANSPOSING etc. and NOT write directly onto a notepad.

I tried it and the notation for multivoices is really annoying and complex sometimes that all attention is spent on the code part and making sure it will compile

Additionally, I am wondering what is the best practice for composing in the sense of by line or beat for example, if you had a melody with accompany planned out, would you write the melody all out then accomp all out, or would you do it at the SAME time but bar by bar? How did the great composers do it?

  • 1
    When you ask about "best practice for composing" I'm not sure if you mean the mechanical task of notating it, or how to creatively make up musical ideas. Mar 8, 2023 at 22:39
  • 2
    "How did the great composers do it" is a separate question and should be asked as such, and of course they didn't all do it the same way, but mostly they either worked it out at the keyboard and then wrote it down or they sketched it out, melody and bass line first, probably not measure by measure, and then filled in the inner voices. It's much faster to do this on paper than with any notation software I've ever used.
    – phoog
    Mar 8, 2023 at 22:43
  • 1
    Welcome! Please take a second to read about the topics covered here and how to avoid subjective answers. You might want to edit this question to make it a bit more "narrow"; right now the "do you compose bar by bar or one voice at a time" question is really its own, not really integral to the Lilypond question; you can split that off and ask it separately. I'm voting to close as too broad, but will happily retract my vote if it's edited. Mar 8, 2023 at 23:47
  • 2
    (Also, spoiler alert, the answer to that one is probably "no two composers do everything the same." Personally, not that I do much composing, but I do a combo of both: First I sketch out ideas very minimally—maybe just a melody line, maybe just a bass line, some chord names. When I'm later in the process, putting down the "for real" version, I might get a bar fully realized before moving on to the next bar. If the genre is very contrapuntal I might work more with one line at a time.) Mar 8, 2023 at 23:49
  • 1
    There are a few users active on the r/composer subreddit who claim to compose in Lilypond, and some even go as far as to recommend it to other people for composition. It's rare. Mar 9, 2023 at 8:15

5 Answers 5


Lilypond is really meant to be a tool that engraves nice scores and that's it -- it conforms to the "Unix Philosophy" in the sense that it tries to do one thing (albeit very complex), do it well, and interoperate easily with other programs (its text-based input is well-suited for that).

I can't speak for the Lilypond developers, but I'd say it's pretty obvious they had these things in mind, as opposed to any kind of "WYSIWYG" or "on-the-fly" writing. I guess it's partly because of the fact that there already are several other tools that do notation in this way (MuseScore seems to be a good free one, but I don't use it) and there wouldn't be need for another.

So I must agree that trying to compose with Lilypond is mostly annoying (I tried it and I came to the same conclusion as you, although in some corner cases it can be useful, e. g. writing canons and having the parts automatically shifted is easy in Lilypond).

When it comes to my personal composing experience: I managed to evolve an old-fashioned style of composing where I just scribble the scores in pen into paper music notebooks, and only after the score is scribbled, I transcribe it using Lilypond to get a nice PDF. It's probably not the most efficient workflow under the sun, and probably not the method you wanted to hear about. If you want to compose "on the fly" on your computer, it will be better to use a tool that is better suited for that.

  • What other programs does Lilypond interoperate with? Can it ingest MIDI or MusicXML? Mar 9, 2023 at 2:33
  • 1
    @ToddWilcox: An example would be the DAW Rosegarden, which can be set up to export directly to LilyPond.
    – Schmuddi
    Mar 9, 2023 at 10:03
  • 1
    @ToddWilcox: Another example would be TuxGuitar. As for MIDI and MusicXML, it cannot ingest them directly, but there are scripts midi2ly and musicxml2ly that come bundled with Lilypond and convert these things into Lilypond sources. By "interoperability", I just meant that anyone who writes an app that needs to show scores can just generate a simple text file and turn it into a score with Lilypond.
    – Ramillies
    Mar 9, 2023 at 11:02
  • 4
    @ToddWilcox: Indeed, that is the fundamental design philosophy behind Unix. A lot of it has been lost in modern Linux Desktop distributions, but fundamentally, the idea is to have small utilities that "Do One Thing And Do It Well" and consume and produce plain text (this is sometimes expressed as "The Power Of Plain Text"). The Unix OS then has tools like pipelines and shell substitutions that allow the user to easily plug multiple utilities together and use one utility's output as the input of the next. Mar 9, 2023 at 13:26
  • 1
    Checkout Frescobaldi. I've been using it to compose short pieces for piano. It has a MIDI extension for listening. As others have mentioned, having a sketch first helps with the creative process.
    – justinpage
    Mar 11, 2023 at 1:37

Does anyone actually write mathematics using LaTeX? LaTeX is not a tool for doing mathematics but for expressing it. Similarly, LilyPond is a tool not for composing music but for expressing it. How closely someone's creative workflow will align with an expressive tool is individual and will very much depend on personal habits and with how much attention working with the tool will consume over working with and on the material.

Musical notation, like mathematical notation, has been developed and evolved for a reason. It tends to make a better mapping through the visual pathways to the mind. So to some degree it also depends on how directly the transcription will appear in a visual form.

Check out https://lilypond.org/easier-editing.html for an overview of tools known to the LilyPond project. The most popular at the moment may be Frescobaldi.

  • 3
    "writ[ing] mathematics" is exactly what LaTeX is for. Maybe "solve mathematical questions"...?
    – Aaron
    Mar 8, 2023 at 22:44
  • thank you, this was exactly what i was looking for. Nice analogy. I was doing it wrong then...
    – user91930
    Mar 8, 2023 at 23:08
  • 2
    I write math using LaTeX, and I know I’m not the only one. So the answer to your question is yes. That said, I would never compose directly into Lilypond. @Aaron When I started using LaTeX I was way beyond "solving" things, but I did formulate my proofs entirely in LaTeX. I suppose I sometimes jotted notes down on an iPad, but between 80% and 95% of my work was right into LaTeX. I think the markup is much more readable for math than Lilypond is for music. Mar 9, 2023 at 2:21
  • @ToddWilcox "...there's way too much information to decode the Matrix. You get used to it, though. Your brain does the translating. I don't even see the code. All I see is blonde, brunette, redhead. Hey uh, you want a drink?" - Todd Wilcox, probably
    – Blackhawk
    Mar 11, 2023 at 0:42

all attention is spent on the code part and making sure it will compile

That is precisely the opposite of the goal of a non-WYSiWYG system like LaTeX or Lilypond. The advantage is (at least supposedly!) that you can just write content without having to worry how it compiles / renders at first. Then in the end when all the content is there, you polish it up for actually obtaining a document.

Does that really play out in practice? Well, it depends. For LaTeX it definitely can work, once you've gathered a bit of experience. Yet many people use it very similar to how one would use a WYSiWYG editor like MS Word, particularly with tools like Overleaf: they mostly look at the rendered output, and only when making a concrete change switch to the code view. This is in some ways counterproductive (in particular when it comes to premature bikeshedding like exact placement of floating figures), however there is a point to be made that particularly for maths formulas, it's just way easier to navigate the neat rendered form and decide what still needs to be done.

With music that's perhaps even more extreme: many composers nowadays rely not only on having a sheet with rendered notes in front of them rather than weird symbols, but also on the various playback functionalities offered by software like MuseScore or Sibelius. If you're approaching it from the perspective that editing a score is performing incremental modifications to a piece of sound, then Lilypond can't work well. But while these sorts of modifications are certainly helpful at some level, I would argue that it is not good to use them as the primary creative tool. It tends to lead to quite superficial music, where every individual snippet sounds good but there is little cohesion, overarching themes etc..

Most composers before the digital age worked very differently: when your medium is just paper and pencil, plus an instrument you can play yourself, you're forced to start out from ideas, motifs, and you also need to plan out the larger structure before actually writing a symphonic score, else it'll take forever moving the parts around. I won't say this sort of constraint is necessary to create great works, but I do think it helps. And that, I'd say, could also be a great advantage of a system like Lilypond: separating the meaning of the different components of a compositions from the actual appeareance/sound of the final result.

So that would mean you should neither compose-by-line or compose-by-beat or whatever, but instead by logical unit.

But again: so goes the theory. Yet, unlike for LaTeX, which is the de-factor standard in scientific publishing at least in some discipline, Lilypond is very much a niche tool (though also not so niche that not many composers aren't aware of it). But they evidently do not find it to be better than e.g. Sibelius in practice. And even I, although I'm very much an advocate of command-line terminals, coding in lightweight text editors, do not consider Lilypond a pleasant tool for creating musical scores, whether newly-composed ones or transscriptions of existing material. Music is actually the only thing I prefer writing on paper rather than any digital form.

Not sure whether it is a fundamental property of music that makes it worse suited for writing-from-code (perhaps the inherent, and desired ambiguity and multitude of possible interpretations), or just that Lilypond hasn't found the best way to go about it.

Of course, a lot of it also has simply to do with what you're acquainted to: Lilypond is complex and you should expect to need at least several months of regular use before you can unlock its full potential. The syntax is in a kind of weird no man's land between Lisp syntax (which was probably natural to the developers, but hardly to most other people) and ad-hoc shorthands to make it concise, but neither is carried out consequently. Leaving aside how good or bad that is in principle, it definitely doesn't help the learning curve.


You may want to check out arranger.ly. It's originally intended at arranging, though probably suitable for composing as well. It implements a workflow that is totally different than the usual LilyPond workflow and more like the workflow in a graphical editor: you cut&paste fragments of music, replace measure 5 beat 3 with note X, etc. As opposed to editing a linear representation of the score, you add conceptual editing operations like this that are easier to do. I know several people who are using it for arranging and happy about it.


I've had a similar experience over the past few months.

Musecore is fantastic for prototyping and generating parts. It really can't be beat for those purposes. If your goals are to create scores and generate parts, then use Musecore.

As others said: musecore is a WYSIWYG (what you see is what you get) piece of software. It is an all-in-one suite that makes it easy to manipulate and see instant results.

However, lilypond is just two things:

  1. A file format: *.ly files abide by a well-defined set of rules to describe music.
  2. A program which converts *.ly files to something useful like *.pdf

Because Lilypond is a file format and not a GUI, it is much more difficult to learn and use. (it is possible for someone to develop a GUI for lilypond to mitigate that drawback).

Musecore and lilypond both produce beautiful engravings so why would someone ever choose lilypond?

Here are several reasons:

  1. VCS: Because *.ly files are ascii encoded, they can easily be managed by "version control systems" like git (e.g. github), svn, or hg. That lets you merge changes from contributers and inspect the history of your scores to figure out when, why, and by whom each line was touched. This is how software source code is managed and is essential for big projects with lots of contributers.

  2. Intrgration: if you are only producing full-page, stand-alone PDFs, then musecore is still a better option, but if you want to produce SVGs or miniature PDFs that can be integrated into web pages, or other documents, especially if you would prefer to rely on scripts to do the conversion instead of opening the GUI each time, the lilypond is better.

Here's a workflow that demonstrates the power of lilypond:

  1. A user looks at my Web page/document and sees a deficiency.
  2. They checkout the repository using "git clone", retrieving my *.ly files.
  3. They edit the lilypond file and "git push" to send the improvements back to me.
  4. I get a merge request containing only changes (I don't need to look at the whole file).
  5. I look at the difference (it is a text file showing which lines were added/changed/deleted). If I like the suggestion, I choose "accept".
  6. I have a build machine that detects the change and automatically runs a script to re-compile the *.ly file. This generates new SVG or PDF files which are immediately uploaded to my living document or website.

Here is a simpler example:

I'm writing a PhD dissertation that contains many orchestral excerpts. The books will have several chapters of text, chapter headers, page numbers, bibliography, and the music.

Musecore can handle the music, but it won't easily make a good bibliography, add figures, hyperlinks, table of contents, cross references, or even paragraphs. Fortunately, lilypond integrates nicely with LaTeX which does all of that nicely.

To write the dissertation, I write it in a .lytex file using latex, then use \lilypondfile{} to include the excerpts (.ly files). It doesn't matter if my document is Letter with 1in margins, A4 with 1cm margins, or something else. Latex passes the geometry to lilypond so the lines are always the appropriate length and still readable. Latex also forwards things like font and fontsize so text in the music matches the rest of the document. If I want to change to a sans-serif font, I just change my lytex file in one place and recompile the full project. If my music was in musecore, I'd have to open each file, manually change settings and re-export every excerpt by hand.

While musecore is easier for most users, lilypond saves a lot of manual labour in some cases despite the learning curve.

As to whether I write bar-by-bar or beat-by-beat in lilypond. I tend to do 20-30 measures at a time, then compile and look for errors.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.