Greetings everybody, and welcome to this twenty-first issue of the LilyPond Report!
Autumnal and microtonal: that’s how one could describe this Report’s issue. Microtonal notation support has indeed been at the center of a number of discussions recently: bug reports, feature requests, frogs contributions: read on to know all about it. On other news, we have been digging through the mailing lists archive to bring you some nice tricks (LilyPond made portable, anyone?) and overlooked announcements.
As always, you can post your comments at the bottom of the page, or even register and contribute to the LilyPond Report’s next issues.
As a beautiful Autumn is beginning here in Paris, France, it looks like the year 2010 will not end without some interesting events in the LilyPond community. Firstly, the upcoming stable 2.14 release is in good shape, as Graham will elaborate on below; our new website is now online at last, and even more interesting things are coming down the road: the Grand LilyPond Input Syntax Stabilization project, which we’ll talk about extensively in months to come, our online AJAX-powered documentation (of which Reinhold already maintains a preview on his personal website), etc.
As far as the LilyNet.net community website is concerned, we’ll be migrating to a more powerful server this fall, that will allow us to do quite a bunch of cool things (a lot of ideas are already floating around). Due to increasing spam, we may also be applying stronger rules to our Wiki. Your fluffy editor is also eagerly waiting to introduce some geeky pet projects of his... Anyways , stay tuned!
The big news is that we’ve released the alpha milestone for 2.14 stable! So far we’ve had two "alpha test version", and users have been helpfully discovering odd cases where the test version produces questionable output. The latest such release is 2.13.35, which has 5 known regressions against the previous stable version.
Speaking of which, the current stable release is still 2.12.3-2. Despite all the excitement over the nearing end of 2.13 and the new stable version, all normal users should be engraving with 2.12.3 for any serious work.
The Frogs are ordinary LilyPond users who have chosen to get involved in their favorite software’s development. Fixing bugs, implementing new features, documenting the source code: there’s a lot to be done, but most importantly: this is a chance for everyone to learn more about LilyPond, about Free Software, about programming… and to have fun. If you’re curious about any of it, then the word is: Join the Frogs!
Most of the "frog pond" work this month has focused on guile 2.0 compatibility issues, but one very interesting possibility arose in the middle of a discussion of microtonal music: Wol announced that he had written a "sample ’starting’ engraver", which could be very valuable for other people if it was added to the Contributor’s Guide. Hopefully we’ll gave a patch that adds this soon, so that any future Frogs will have an easier time understanding lilypond internals!
What exactly do people mean when they’re talking about microtonal notation? The LilyPond Report has asked some of our most specialized contributors (namely Graham Breed, Joe Wakeling and Hans Åberg) if they could elaborate on this topic. Hans was patient enough to answer our question thoroughly, and here is his contribution that we proudly publish below.
Sometime after World War II, a common misconception starts to take hold: the basis of Western music is E12, the 12-equal temperament. In fact, it has never been, and despite the widespread use of E12 in popular music, jazz, and some, but certainly not all, fixed pitch instruments, CPP (Common Practice Period) orchestras have not shifted away from the adaptive Just intonation that they always have used. And if the music is not written with CPP harmonic rules, variable pitched instruments are likely to switch to something like Pythagorean tuning, even if the music is specifically called for being written in E12 (like some atonal music).
So even if one decides to stay within the realms of Western CPP derived music, there are good reasons for using at least some microtonality. If one wants to do some limited microtonality, what is required?
The to the modern mind surprising answer is: really nothing, because the staff system that LilyPond focuses on is perfectly capable of expressing different tunings. Our ancestors though, that devised this staff system at the end of the Renaissance, experimenting heavily with different tunings, might have been rather surprised to learn that we have forgotten about it.
If you want your music score to be retunable into say extended quarter-comma meantone tuning, which sets the major thirds exactly to the interval ratio 5/4, or Pythagorean tuning, all you have to do is making sure to not apply E12 enharmonic equivalence in ways that make the shift in pitch too obvious. So if used at all, only apply it at some sections in whole as a part of notational simplification. The overall pitch will shift, but typically only by a tonestep of E31, which is close to meantone, or E53, which is close to Pythagorean tuning, or between 20 to 40 cents.
And then you need a program that can translate this into correct pitches. And it is here where microtonality capabilities in LilyPond may play an important role. If implemented in full, writing complex microtonality should be no more difficult than any other type of music.
Beware, though, would you decide to walk down this road, that you may soon start to loath all those synth orchestras that only play in E12. And you may start to appreciate the adaptive pitch-work of real musicians a lot more. But those are side effect you probably can live with.
Let us now move beyond the simple retuning of a standard music score, to see why that might be needed. But first a bit of background:
During Medieval times, the Pythagorean tuning was common, built up by solely the octave interval ratio 2 and the pure fifth 3/2. This involves only the prime numbers 2 and 3, which is called the 3-limit. This tuning works perfectly fine if one not emphasizes the thirds harmonically strongly, and is still a good bet in for example Balkan music. Towards the Renaissance one wanted in West to add the interval major third 5/4, decreasing the beat rates of the Pythagorean major third (the difference between these two major thirds is the syntonic comma 81/80), and in the near East: Arab, Persia, and Turkey, one instead added an intermediate pitch, and in some descriptions these intervals involve the prime number 5. So all this is 5-limit music, though one should note that in the quarter-comma meantone tuning, the augmented 6th is very close to the interval 7/4, and if included, this is the 7-limit.
Above, the word "adaptive" was thrown in before Just intonation. If one adheres to CPP pivoting on the chords, then some chord sequences, for example I IV ii V I, will drift in pitch a small amount, called "comma pumps". So Just intonation may be impossible to play without some kind pitch adaptation. One can even out the small adaptation needed between all pitches played, which is called tempering, but a real musician playing a variable pitch instrument can do a little better; exactly what is needed is not known.
In addition, on variable pitched instruments, there is other pitch adaptation going on. This is well known in for example Arab music, where the tendency of moving some pitches together for musical expression is called the "principle of gravity". The exact description of this adaptation process is not well known, but probably helps giving the music life.
Here, we have so far stayed within the 5-limit. One might want to experiment with interval ratios involving more primes: the 7, 11 and perhaps the 13-limit. And we also implicitly assumed that it is better to be close to a rational interval. Being close helps up the harmonic flexibility, but in for example gamelan music, the beat rates typically around 8 Hz but up to 20 Hz, seem to be built into the tuning. In some music, the full scale, the diapason, may not have seven scale degrees, and one may also drop the requirement that the diapason is the interval ratio 2, the latter which happens in for example Georgian music and the Bohlen-Pierce scale.
Overall, the topic of different tunings may seem difficult and elusive, but with a way to easy produce these pitches accurately, it is more like choosing different stops on a pipe organ. The choice of tuning helps giving the music character, and different types of music and music styles will require different tunings. The feedback from being able to produce these tunings combined with the experience of the result will make the choice no more difficult than any other musical feature.
Speaking of microtonality, I think the most interesting exchange this month was precisely about microtonal notation issue. We have an old issue 694 about microtonal accidentals, but the whole thing began with somebody who didn’t know about the microtonal notation that was already present in lilypond. Discussion then veered off into transposition, year-old patches, and the result was a confusing mess. It wasn’t obvious what, if anything, people were requesting (in terms of code, documentation, fonts, or what).
After almost deleting this issue, we had some discussion about what was actually sought, and came up with a new issue 1278. The new issue is great — there’s a clear description of what’s required, backed up by a strong reference in music notation (Kurt Stone’s "Music Notation in the Twentieth Century"), and a two-line lilypond input segment (not counting braces and comments).
"Brevity is the soul of wit."
Remember folks, we have over 400 open issues, so if it takes longer than 30 seconds to understand what your pet issue is requesting, then chances are that nobody will look at it. Once you think you’ve finished writing a feature request, spend another 10 minutes staring at your request and try to figure out how it could be simplified.
It is with great pleasure that I’m opening this new regular section of the LilyPond Report. The principle behind it is simple: our community is large and vibrant, with numerous mailing lists (even more so if you count the unofficial lilynet.net mailing lists, and many intelligent people producing many interesting discussions. Over time, some clever proposals or remarks are bound to get lost in the flow; this section aims to salvage some posts that might otherwise go unnoticed or get forgotten.
A good example is this announcement from our Brazilian contributor Alberto Simões, in March 2009:
I am working on a new Portuguese web-site. It is available at http://musica-liturgica.net/, and includes Portuguese liturgical music.
Probably it will not be that useful for most of the readers of this list, but I think I owe Lilypond a lot
Do you, too, know of a good LilyPond website we might not have heard of? Has one of your own posts or announcements gone unnoticed? Is there any project that our readers might be interested in discovering? Then there’s a good chance the Report can help you; please let us know!
Running LilyPond run from a USB key on Windows
This question is frequently raised (and addressed) on the French-speaking list. Earlier this month, a user named Jean-Christophe D. posted a complete howto in French, that might interest other users as well.
As was requested, here are some instructions to make LilyPond portable, to whomever may find it useful.
Reminder: being written in DOS shell, these scripts will only work with Microsoft Windows®. [Note from the editor: GNU/Linux users may have quite a few other ways to make this work on their end, although this specific feature might be more needed amongst MS Winsows users...]
It works in a very simple way.
1 - Install LilyPond on your computer (if not already done ;o))
2 - Copy the LilyPond directory (typically located in C:\Program Files\) on your USB key
There you go, it’s installed!
Note: you may alternatively want to install LilyPond *directly* on your USB key. I haven’t tried it, and therefore do not know if it’s possible [Editor’s note: It is, but not recommended — as it will make your computer, in the future, look for libraries that will not be on your main hard drive partitions.]
1 - Download the latest version of the following small script (written by Eluze on the French list, or below by myself). It can be either a .exe or a .bat file; in the latter case, you may open it with the notepad if you want to read or modify the code.[Editor’s note: this can be achieved easily through right-click>"modify".]
2 - Copy this script in the directory where your .ly files are located: it can be either on your Desktop, in a folder, on your USB key,...
3 - Instead of double-clicking on your .ly file to generate a PDF score, just drag-and-drop it on the script’s icon. That’s all!
The small script file is going to look for any file named LilyPond.exe on any drive (E:, F:, etc.). Whenever it has found one, it uses it to generate the requested PDF.
Below is the latest version of my script.
For advanced users: it can even recover BOTH log files (%1 and %2), and will delete the first one ONLY if empty!
Well, thanks a lot to Jean-Christophe, Eluze, and all our users who helped establish and improve this method! As you can see, it is still a little hackish and involves moving/copying files around, but with a bit of luck the community will come up with more proper solutions in the future. In the meantime this will do the trick!
Graham Percival & Valentin Villenave