Schemellis Gesangbuch

This month, March 2015, marks J.S.Bachs 330th birthday. For the occasion, the Pirate-Fugues team has published a new edition of 4-voiced transcriptions of the songs from Schemellis Musicalisches Gesang-Buch, BWV 439–507. LilyPond is among the tools in our production pipeline.

Some of the arias in Georg Christian Schemellis song book are fairly well known, for instance: Ich steh an deiner Krippe hier, BWV 469, and Komm süsser Tod, BWV 478.

Each original score from the collection consists of 2 voices:

  • a soprano voice with lyrics, and
  • a bass voice with Generalbass notation.

Here is an example: The first few measures of Mein Jesu, was für Seelenweh, BWV 487


In order to create a 4-voiced transcription, we add 2 voices in between the 2 existing ones. The resulting score could look something like


Transcriptions of these songs already exist. So what is special about our edition? Our goal was to create the 4-voiced transcriptions as faithful as possible to J.S.Bach’s own musical style. And, we want the computer to help us do it. Our composition approach is data-driven: Our custom made software harvests patterns from over 1700+ digitized scores by J.S.Bach.

The process is not fully automated, and we don’t think this is desirable anyways. Instead, the software computes between 10–30000 suggestions of up to 3 measures in duration. The suggestions are readily sorted according to intuitive mathematical criteria such as

  • voice coverage,
  • number of notes,
  • frequency of note constellations in database.

These and other categories allow the user to filter and narrow down the numerous possible insertions in a convenient and meaningful way.

The creative process usually takes 15–45 minutes for an entire song and requires a lot of user interaction. The video is only a summary to illustrate what the computed suggestions look like for the song BWV 487 already introduced above:

Note that, the sequential start-to-finish fashion is only to make the video align with the music. During the composition phase, the user can choose to edit the score in any order.

Before we elaborate on the role of LilyPond in our publication, we wrap up the description of the project:

Our software has a unique set of requirements:

  • the music notation (as shown in the video) requires precise control over the note placement in order to prevent jerkiness when browsing the suggestions;
  • extra information is drawn into the score: selected pitch range for computation, available pitches in the suggestions;
  • user interaction with the mouse filters and narrows down the suggestions.

No prior API was available to perform these tasks. So instead, we developed our own and called it The Pirate Fugues.

The audio for the collection of 69 songs is synthesized using 3rd party software Pianoteq, Ivory II, and Hauptwerk (all trademarked!, and to none of which we are affiliated). For each song, we provide an animation that visualizes the suggestions by our software and indicate the local correlation of the final score to the database. The website of our project is where you can listen to the results, download the sheet music, and find additional information on the technique.

Disclaimer: Faithful to J.S.Bach’s style is a bold claim and one that invariably sparks controversy. Although we have taken great care in compiling each score in the collection, there is room for improvement. Apart from creating the music, another objective of the project was to learn about the strengths and weaknesses of the software. Independent of your background in music, feel free to let us know what you think. Thank you!

Now, back to LilyPond:

We have introduced LilyPond to our workflow about 2 years ago. From Lilypond, we have adapted

  • the chord notation,
  • the ornament labelling and graphics, as well as
  • the Mensur note apparel.

Since then, all scores from our projects are algorithmically exported LilyPond for on-screen preview, and ready-to-print pdfs. We are not aware of any alternative to LilyPond that is as convenient and yields results of the same visual quality.

In the future, we hope that notation software like LilyPond will be able to imitate the handwriting of famous composers such as J.S.Bach.

Introducing ScholarLY

It has become a kind of a habit that more involved edition projects that I’m doing with (or as) beautifulScores not only produce beautiful printed results but also improve or extend LilyPond’s capabilities along the way. Take our award-winning edition of the songs of Oskar Fried for example. More or less direct by-products were Janek’s enhancements to shaping curves, Frescobaldi’s new Layout Control Mode and my lilyglyphs LaTeX package. Publicly shared insights about the usefulness of version control for musical work may be considered a surplus in this respect …

Now it seems our crowd engraving project on “Das trunkne Lied” by the very same composer yields even more important results. With ScholarLY I just created a spin-off from our orchestral score’s project directory that may soon become a serious editorial toolkit and make LilyPond an even more indispensable tool for scholarly work.
Continue reading

Partially Compiling a LilyPond Score

Partially recompiling a score has been a major LilyPond feature request for quite some time. I hope I have now found a promising path towards that goal, and today I’m going to present a first working version of that function. For this I’m heavily relying on Jan-Peter Voigt’s work on lalily and his Music Tree ideas. But fortunately what I’m proposing is very simple to use, without having to dive into the (still) complex world of the edition-engraver. Continue reading

Can you shift pitches to a different mode in Frescobaldi?

It all started with a thread on the Frescobaldi mailing list with the basic underlying question: Can the modal transpose (in Frescobaldi) be used to shift from one mode to another? After some discussion the answer turned out to be both yes and no.

Below I’ll elaborate on this apparent inconsistency and also introduce a new feature to accommodate the request for a tool to shift between modes. Continue reading

Catching up with the Mutopia Project

One of the truly impressive parts of the broader LilyPond “ecosystem” is the Mutopia Project. It currently offers an astounding 1888 pieces of music for free download in LilyPond, PDF, and MIDI formats. Every single piece is in the public domain or licensed under a Creative Commons license. What’s even more amazing is that they were all typeset by volunteers. In this post I will discuss some recent progress in the Mutopia Project, and acknowledge the valuable work of the volunteers who contribute to it. Continue reading

Restoring Deleted LilyPond Files

There are plenty of opportunities to delete important files, and even cases where you deliberately do it and only some time later notice that it was a stupid mistake. However, if you are using version control you’re lucky because that doesn’t make you worry at all. No need to hope that some undelete tool can be applied in time before something else irreversibly overwrites the bytes on disk etc.

Well, this is neither new nor specific to music editing, but I thought it a good idea to write a short post about it anyway. It will increase the chance that someone involved in music stumbles over the information, and it is yet another spotlight on the potential of versioned workflows for music editing. Continue reading

Annotating scores

(This is a post in a series about the “Crowd engraving” project “Oskar Fried: Das trunkne Lied”)

For quite some time I had been thinking (and to some extent writing) about the potential LilyPond’s plain text approach offers for implementing in-score annotations. The idea got stuck in a state of initial drafts because it requires Scheme skills that I don’t really have, but our crowd engraving project with the huge score was an incentive for me to implement at least a “working draft”, and as it turned out this was a priceless addition already in this initial state. Continue reading

“Segmented Workflows”

OK, the title of this post seems to be a cheap pun because it refers to the previous post about the “Segment Grid” approach. But in a way it is quite appropriate because that approach allows us to split our workflow into similarly arbitrary segments as the segment grid in the score suggests. Continue reading

The “Segment Grid” Approach

This is a post in a series about the “Crowd engraving” project “Oskar Fried: Das trunkne Lied”

Ever since I started using version control for working with scores I mused about the potential this might have on a “community” approach to editing musical scores. In our edition of Oskar Fried’s songs I already enjoyed the positive impact on collaboration, but basically we had a team of only two people with more or less fixed roles: I was responsible for producing the content, Janek had to beautify the output. However, along the way I learned to enjoy the freedom and comfort LilyPond and Git offered as a reliable safety net when our roles started to blur to a small extent. I could make suggestions regarding LilyPond coding, and Janek reported issues with the content more than once. This triggered ideas about making musical editing team-ready the same way as software development works. The task of creating a huge orchestral score was a welcome opportunity to develop new tools and workflows. Today I will give you an idea about the fundamental concept of slicing the score into a “segment grid”. Continue reading

Approaching a Big Score (Oskar Fried Again)

Last time I introduced you to our crowd engraving project “Das trunkne Lied.” In this we will prepare performance material for Oskar Fried’s large cantata after a text from Friedrich Nietzsche’s “Also sprach Zarathustra”. Today I will give you some more background on the project from the musical and historical perspective. Continue reading