Leopold Mozart: Violin School — (2) LilyPond Structure and Organization

In the previous post I presented the project of a digital edition of Leopold Mozart’s Violin School of 1756, for which I was allowed to create the music examples with LilyPond. Also, I mentioned that I faced many challenges along the way and promised to write about the LilyPond implementation in more detail in another post. Today I will describe some aspects of the overall project organization, along with some additions I applied to openLilyLib. A third post will describe a few selected engraving challenges the project faced, and a final part will deal with some of the additions I implemented for Frescobaldi along the way, which offer potential for further development of that editor. Continue reading

Leopold Mozart: Violin School — (1) The Project

It has been ages since I wrote my last post in this blog – which feels strange given the more-than-weekly activity of the first years. It’s just that I couldn’t spend enough time working on and with LilyPond itself anymore, let alone writing about it. However, right now the publication of a significant work serves as a trigger to finally get to blogging again: A new digital edition of Leopold Mozart’s famous violin school of 1756 which has just been published by the Digital Mozart Edition at https://dme.mozarteum.at/digital-editions/violinschule. I was commissioned to create the music examples for the edition with LilyPond, which is a great acknowledgment of LilyPond’s capabilities and of course something I’m also pretty proud of personally. Besides, it had a few welcome spin-offs in the form of improvements to openLilyLib packages and the Frescobaldi editor, notably a brand-new Extension API and a multi-process job queue. I will split the report about this project into four posts, and this first issue is dedicated to the overall outline of the project. Continue reading

OOoLilyPond: Part 2 – Optimizing

In my previous post I introduced OOoLilyPond (OLy), a relaunched LibreOffice extension to integrate LilyPond music fragments in text documents, drawings and presentations. It covered rather basic topics: downloading, installing and first steps, while today’s post will discuss the more advanced topics of customization for include files and vector graphics. Continue reading

OOoLilyPond: Creating musical snippets in LibreOffice documents

Combining text and music

If you want to create a document with lots of text and some small musical snippets, e.g. an exercise sheet or a musical analysis, what software can you use?

Of course it’s possible to do the entire project in LilyPond or another notation program, inserting passages of text between multiple scores – in LilyPond by combining \markup and \score sections:

\markup { "A first motif:" }
			\score \relative c' { c4 d e f  g2 g }
			\markup { "A second motif:" }
			\score \relative c'' { a4 a a a  g1 }

OLy01

However, it is clear that notation programs are not originally designed for that task, so many people prefer WYSIWYG word processors like LibreOffice Writer or Microsoft Word that instantly show what the final document will look like. In these text documents music fragments can be inserted as image files that can for example be generated with LilyPond from .ly input files. Of course these images are then static, and to be able to modify the music examples one has to manage the additional files with some care. That’s when things might get a little more complicated…

Wouldn’t it be a killer feature to be able to edit the scores directly from within the word processor document, without having to keep track of and worry about additional files? Well, you may be surprised to learn that this has already been possible for quite some time, and I take the relaunch of OOoLilyPond as an opportunity to show it to you. Continue reading

Supporting Multiple LilyPond Versions

LilyPond’s input language occasionally evolves to accomodate new features or to simplify how things can be expressed. Sometimes these syntax changes can break compatibility of existing documents with newer versions of LilyPond, but upgrading is generally a painless process thanks to the convert-ly script that in most cases can automatically update input files. However, sometimes it is necessary to write LilyPond files that are compatible with multiple LilyPond versions, for example when creating libraries like openLilyLib. The key to this is writing conditional code that depends on the currently executed LilyPond version, and in this post I will describe how this has just become easier with LilyPond. Continue reading

The story of “string bending” in LilyPond

Guitar bending

String bending is a playing technique for fretted string instruments — typical of blues and rock music — where fretting fingers pull the strings in a direction perpendicular to their vibrating length. This will increase the pitch of a note by any amount, allowing the exploration of microtonality. The animated image on the left shows how a string bending is performed on a guitar.

It requires a specific notation: the bending is usually represented on tablature by an arrowed line and a number showing the pitch alteration step (1/4 for a quarter, 1/2 for a half, 1 for a full bend, etc.). It’s a long standing feature request in LilyPond: issue 1196 was created on July 2010, almost 7 years ago, and collected more than €400 in bounty offers. During these years we’ve been able to draw bendings with the help of an external file written in 2009 by a LilyPond user, Marc Hohl. It worked quite well, but it was a kind of hack and therefore had some important limitations. When I happened to promote LilyPond, especially to tablature users, this missing feature was the “skeleton in the closet”. But something interesting is on the way. Last September Thomas Morley aka Harm, a LilyPond user and contributor, announced that he’s working on a new bending engraver, which overcomes those limitations and will hopefully be included in LilyPond in the near future. Let me tell you the whole story…
Continue reading

LilyPond at the Google Summer of Code 2017

LilyPond has been mentoring students’ projects several times in the “Google Summer of Code” program in previous years, and this year we intend to take that to a new level: both the LilyPond and Frescobaldi projects will be able to accept students. (Frescobaldi is one of the two major LilyPond editing environments, the other being Denemo.) Students can now consider suitable projects to apply for, from March 20 to April 03 2017. Continue reading

Dead notes in tablature now work with any font

The current stable version of LilyPond (2.18.2) has a pretty annoying limitation for tablature users. If you change the TabStaff font to something different from the default (Feta) and your score contains dead notes, you won’t see any symbol on the TabStaff, because the font you chose probably does not have a cross glyph. So, at least in these scores, you are forced to use Feta (a serif font) also for tablature. This implies that you may not be able to write a tablature book in sans serif font or you’ll have to sacrifice consistency. This was the case for a project of mine, where all the pieces without dead notes used a sans serif font, but I had to use serif in those pieces where dead notes were present. Fortunately this has been fixed in development version 2.19.55, released this week. Now my book project will have consistent font settings! Let’s see a simple example.

Continue reading

Working With Word

I have regularly described the advantages of working with LilyPond and version control on this blog (for example in an ironic piece on things one would “miss” most with version control), but this has always been from the perspective of not having to use tools like Finale or MS Word. Now I have been hit by such a traditional workflow and feel the urge to comment on it from that perspective … Continue reading

LilyPond’s Freedom

Oops, I have to plead guilty for some vanity-Googling my name in combination with “LilyPond”. OK, this is embarassing, but on the bright side it revealed some blog posts I didn’t know yet. And there’s one in particular that I want to recommend today because it’s a post that actually should have appeared here a long time ago (and my mention is actually very minor). Joshua Nichols wrote a very interesting piece on software freedom, which I suggest to read here: https://joshdnichols.com/2015/11/16/why-i-love-lilypond-freedom/