Optical Spacing (The Swan, Part 2)

Last week I wrote about a new edition of Saint-Saëns’ famous “Swan” for which I prepared a new piano arrangement. In the closing of the article I showed the exception to the rule, namely an issue where LilyPond did not serve me well right from the start, with this example of particularly ugly horizontal spacing:

Surprisingly irregular default spacing (click to enlarge)

Surprisingly irregular default spacing (click to enlarge)

Of course there is a piano part in addition to that cello line, but nevertheless it seemed more than strange that LilyPond should be doing that badly, and I had to find a solution (and more urgently, a cause) for the issue. As it turned out, my spacing issue is an ugly side-effect of a major LilyPond strength: optical spacing. Today I will show you in some detail what this is about – and why it is a limitation in this special case. Continue reading

Optical Spacing, Tweaks, And A Swan (Part 1)

Those of you who are also reading the lilypond-user mailing list may have noticed from my recent activity that I’ve been dealing with a certain score lately. Actually this is an edition that is right now being printed, and while it is far from being as exciting a project as some other edition projects discussed before on Scores of Beauty I think it’ still a nice one. And I hope it’s acceptable to use this platform for a shameless plug, especially as I will (of course) spice it up with some serious LilyPond discussion.

Today’s post starts a set of two articles that is a little bit of everything: it’s admittedly an advertisment but also a report about LilyPond’s strengths and weaknesses, and it gives insights in some useful techniques. Continue reading

Just Intonation – Semantic Encoding with LilyPond

Recently we have discussed LilyPond’s capabilities for engraving contemporary music. It seems many composers consider extended notation with the computer a daunting task and prefer using graphical approaches for it, like drawing tools in graphical programs or even post-processing scores in graphics programs like Inkscape or Illustrator. However, while this may seem straightforward, I’ve always felt it’s conceptually inferior, mostly because this approach is a one-way street: once you have edited the resulting PDF in a drawing program you can’t ever go back to editing the content of the score. LilyPond gives you the option of encoding what you mean, and while it is admittedly a complex task to create extended notation with it, I definitely think this feature alone makes it worth the trouble. Of course you have to consider that a composer doesn’t necessarily have to do the programming himself, there will usually be generous help from the community. And developing a library specifically addressing contemporary notation needs will (hopefully) be an extremely powerful asset for the LilyPond toolkit.

In two posts I’m going to demonstrate you one example that clearly makes this point – encoding and displaying Just Intonation.
Continue reading

The Future of openLilyLib

Some time ago Matteo Ceccarello appeared on the LilyPond stage and announced a new library that merged several ideas from this blog. My own posts about a grid approach and two posts by Jan-Peter Voigt had inspired him to develop a library where the “cells” of the grid can be directly stored in a tree-like Scheme object. I helped him integrating this library in openLilyLib where it now lives as GridLY. This process and collaboration produced some significant by-products, for example an automated testing infrastructure for openLilyLib. And now Matteo presented a new tool that opens up some important perspectives for openLilyLib. Continue reading

LilyPond and the World of Digital Music Edition

Ever heard of MEI? As a LilyPond user and regular reader of our blog you may have not, but let me assure you that MEI is one of the most exciting prospects LilyPond has had in recent years. Embracing the Music Encoding Iinitiative and interfacing with its data format will open up new horizons for us. LilyPond can be incorporated into Digital Music Edition, a realm where Finale and Sibelius fail by design. This post goes into some length introducing aspects of digital music edition and how LilyPond may (and will) fit into that system. As a surplus there’s a PDF essay attached that gives even more examples and thoughts on the subject, although more directed towards MEI-related readers.
Continue reading

Toggle Multi-line Comments in LilyPond Files

While I’m happy with having so many posts on Scores of Beauty carrying quite some weight I realized that we should think about adding more lightweight posts, offering “Tips & Tricks” every now and then. So here is a short post about a minor issue I often struggled with until I stumbled over a simple and obvious solution. This may be trivial but I can very well imagine I’m not the only one who had overlooked it … Continue reading

Glyph comparison of alternative music fonts

Abraham Lee has designed a rich collection of alternative LilyPond music fonts. Urs Liska has provided instructions on how to include them in the LilyPond score layout.

Although I have already used the fonts in LilyPond scores, my main use of the fonts is the display in ThePirateFugues software. The following video browses through the design themes for scores:

In this post, we provide a per-glyph graphical comparison of the most common glyphs in modern notation. Continue reading

Agile Music Edition?

Throughout the lifetime of this blog we have been propagating a certain perspective on music engraving and music editing. Its idea is to take advantage of methods, tools and workflows from software development and computer science. Agile software development is one of today’s strong tendencies in software development, sharing important parts of our endeavors and ideas. So why not give it a shot and draw from it, working towards agile music edition? Continue reading

„Der Rosenkavalier“ – Chamber Version with Berlin Philharmonic Orchestra

This post is partly an advertisment and partly a success story of creating Beautiful Scores with LilyPond which I had the opportunity to experience recently.

2015, April 26th, 3pm and 5pm we will play a children’s version of Richard Strauss’ „Der Rosenkavalier“ in the Philharmonie of Berlin, commissioned and played by the Berlin Philharmonic Orchestra. I made the arrangement, the engraving, and I will conduct these performances. Continue reading

“Defining a Music Function”

It’s been about a year since I started a category with Scheme tutorials, and back then I declared them as a “documentation of my own thorny learning path”. By now I’ve experienced a significant boost in Scheme “fluency” which was triggered by (and at the same time enabled) a number of projects and enhancements, for example the ScholarLY package and the jump into a fundamental redesign of openLilyLib. I thought it would be a good idea to pick up the tradition of these tutorials before I forget too much about the difficulties of finding my way around LilyPond’s Scheme. This is of course not a carefully crafted “curriculum” but it will always be a random collection of (hopefully) useful snippets of information, each one written with the goal of explaining a single topic in more depth and at the same time more casually than the LilyPond reference can do.

Today I’m writing a tutorial that I would have needed a year ago 😉 about one thing that always vaguely confused me. I usually managed to just get around it by either routinely “doing it as always” or by getting some ready-to-use code snippets from a friendly soul on lilypond-user. This is the topic of defining music-/scheme- and void-functions in Scheme. I will analyze a music function I introduced in last years’ posts and explain what is going on there. Understanding this gave me surprising insights, and I think knowing this kind of stuff is really helpful when trying to get more familiar with using Scheme in LilyPond. Continue reading