Development diary, part 16

We are preparing to release the next Dorico update, version 1.0.30, which focuses on improving playback, fixing bugs, provides new tools for working with rests, and adds a few other small features. At the same time, we are also working on the next update, which is still a little way off, but which will include some features that are larger in scope. I thought it would be fun to write a new instalment in my fabled development diary series giving you a bit of insight into what we're working on.

Piano pedalling

As Anton Rubinstein famously said, "the pedal is the soul of the piano." Pedals have always existed in pianos, since the instrument's development in the middle of the eighteenth century (though the initial damper mechanism required the use of the hand rather than the foot), and it took many decades before instrument makers settled on the standard three (or on most upright pianos, two) pedals that we are familiar with today.

Mirroring the development of the pedals themselves, the notations used for indicating pedalling have likewise changed over the centuries. The simplest notation for piano pedalling that entered into common usage in the nineteenth century looks like this:

Excerpt from Breitkopf & Härtel's 1888 edition of Beethoven's Für Elise.

Gradually, pedalling notation became more explicit, with the star-like symbol used to indicate the release of the pedal replaced with a kind of bracket, showing more precisely when the pedal should be released:

Excerpt from Chopin's Mazurka, Op. 63, No.3, as reproduced in Kurt Stone's Music Notation in the Twentieth Century.

Through the twentieth century, as composers became ever more precise in their pedalling instructions to performers, there were many experiments in more explicit notations, but to the extent that there has emerged any true standardisation in pedal notation, the following snippet from Stockhausen's Klavierstück IX is representative:

Excerpt from Klavierstück IX by Karlheinz Stockhausen, published in 1967 by Universal Edition.

This notation denotes depressing the right pedal (variously called the damper or sustain pedal) halfway, then depressing it fully, before releasing it back to halfway for a moment – Elaine Gould calls this a retake, which I find an agreeable term – and then keeping it depressed until it is finally released.

Despite being perhaps the most common idiomatic keyboard notation, piano pedalling can be awkward to integrate into a score clearly, and this task is not made any easier by the awkward way it is handled by existing scoring software.

Product A has five preset line styles, which most simply accommodate the Beethoven example above, but which can also be employed to produce the Chopin example, though to insert a retake in the middle of an indication requires the use of a separate line, which is both awkward to input and can lead to difficulties in positioning them precisely to ensure the horizontal line abuts the retake "notch" correctly. Product B also defines a few preset Smart Shapes for both the Beethoven and Chopin examples, as does Product E, which takes a slightly different approach to the handling of retakes, with half of the notch on the right-hand end of one line, and the other half on the left-hand end of the next. In all three of these products it is awkward to position the lines relative to one another with precision, and it can be time-consuming to produce a publication-quality result. These markings are also not imbued with any semantic meaning, beyond perhaps triggering an appropriate MIDI message, with no real connection between, say, the retake and the rhythmic position at which it occurs, and if you should decide after inserting a lot of pedalling instructions that you would like to switch from using the Ped./* style to using the horizontal line/notch style, you more or less have to delete all of the markings and start again. Furthermore, none of Product A, B, or E provide any support for the other two pedals. Of the existing scoring programs, Product C has the richest support for piano pedalling, with a neat way of producing notches for retakes within the span of a single pedal indication, and support for both the una corda and sostenuto pedals.

None of the existing programs, however, support the more precise and detailed notations for pedalling used by composers like Stockhausen and detailed by both Kurt Stone in his book Music Notation in the Twentieth Century and Elaine Gould in Behind Bars. What we are aiming to achieve with Dorico's support for piano pedalling is to handle not only the simpler cases like the Beethoven and Chopin examples, and do so more efficiently and more elegantly than existing software, but also support the more complex cases too.

An imperfect Dorico rendering of the Stockhausen excerpt.

The picture above shows an example of what is achievable with Dorico with regard to pedal markings at this point in their development. As of right now I cannot move the initial change of pedal level to the right so that it appears in the same position as in the Stockhausen score, but this will be possible by the time the feature is ready for you to use.

We are trying to be somewhat comprehensive with the options provided – for example, for the sign indicating the start of pedalling, you can choose between the ornate Ped. as shown above, either with or without terminating dot, just the ornate P on its own, Ped. written in a standard text font, a pictogram depicting the sustain pedal, or just a plain hook (and if you choose a hook, you can choose, for example, between a vertical or angled hook, denoting the difference between an immediate or gradual depression).

Pedal lines are input using the playing techniques popover (Shift+P) by typing e.g. "ped." for the sustain or damper pedal, "sost." for the sostenuto pedal, and "una corda" for (unsurprisingly) the una corda pedal (which appears as text by default, with a restorative tre corde instruction at the end). Retakes are added by selecting the note at which the retake occurs, or positioning the caret at the right position if it doesn't coincide with a specific note, and typing "^" (circumflex) into the Shift+P popover.

Some of the properties available for pedal lines in Dorico.

Changes of pedal level like those in the Stockhausen example are produced by adding notches, and then adjusting their properties. Notches are normally shown as retakes, i.e. completely lifting the pedal and then depressing it again, but they can also be shown as a change of level. The level of the pedal line is described as a rational value between 0 and 1, where 0 is fully released, and 1 is fully depressed. You can specify a global level for the pedal line, i.e. a value against which all other values are considered relative, or you can adjust the absolute level of the line at any notch position, specifying the end value at that notch (i.e. the value to the left of the notch) and the start value (i.e. the value to the right). By careful manipulation of these values, quite sophisticated and precise pedal instructions can be communicated to the player.

There are still some aspects of the feature to be completed, including adjusting the horizontal position of the start and end of the line, and the positions of the retakes or changes in level along the length of the line, plus important things like playback, but we're making good progress, and we expect Dorico's support for piano pedalling to be second to none when it's completed.

Spelling during step input from a MIDI keyboard

When inputting music from a MIDI keyboard, one of the challenges facing scoring software is choosing the correct pitch. Depending on the prevailing key signature and the current musical context, it's by no means obvious whether software should choose to notate the black key between C and D as C sharp, D flat, or even B double sharp. This choice of equivalent pitches is often known as enharmonic spelling, and different scoring programs take different approaches.

Product A, for example, uses criteria based on relative sharpness or flatness on the circle of fifths to determine whether to spell notes using flats or sharps. This works pretty well on the whole, and in general it's not practical for any software to be able to choose the same enharmonic spelling as every user in every circumstance, but its approach does have one big drawback: if you make an adjustment to a note's pitch because you prefer a different spelling, Product A will not take any notice of that adjustment, and will continue to spell notes of that pitch according to its rules, rather than using your preferred spelling for the remainder of the bar. Product B, on the other hand, provides a means to define specific tables of preferred enharmonic spellings for every key, and also provides generic choices to prefer sharps or flats. This approach offers a lot of control, but it does not respond to changes of musical context, and nor does it take notice of any local adjustments that you might make to the spelling of individual notes.

The current version of Dorico has a pretty rudimentary set of rules for enharmonic spelling that does not go much beyond knowing which diatonic pitches are modified by the key signature, and this means that you are currently quite likely to encounter situations in which you need to adjust the spelling of notes input via your MIDI keyboard. The good news, however, is that we have been working on some pretty neat algorithms for enharmonic spelling that not only produce sensible results within a given key signature without requiring you to specify a table of preferred spellings, and that not only respect any local adjustments you make to enharmonic spelling for future notes you input, but that also takes note of the current musical context — even to the point that Dorico will go back and modify the pitches of earlier notes.

When we introduced Dorico in October last year at Bush Hall in London, I entered Chopin's Prelude in A major, Op. 28, No. 47, as part of my demonstration. This Prelude has an accented passing note in the third bar that is harmonically strongly inflected: in the key of A major, Chopin writes B# and D# as leading to C# and E. In the key of A major, B# is pretty remote: C natural would normally be a much better default choice than B#. And, indeed, in the demonstration I had to stop and respell several notes, including this chord. But take a look at how Dorico spells this passage now:

When the dyad at the start of the third full bar is first input, Dorico wisely assumes that C natural and E flat would be the preferred spelling, but as soon as I enter the dyad of C# and E natural, Dorico works out from the musical context what to do, and corrects the spelling automatically.

Here's another simple example, just entering a few notes in C major:

Notice how the A flat at the end of the first bar is automatically respelled as a G sharp when the following note turns out to be an A, and how the E flat following the A is automatically respelled as a D sharp when the following note turns out to be an E.

Try entering these figures into your other scoring software to see how many edits you would need to get to these results. Hopefully you will find that Dorico's new and improved spelling during MIDI step input will save you a huge amount of time.

Chord symbols

Development work on chord symbols is progressing. After the team all got back into the office at the beginning of January, we had a couple of big meetings to both plan the scope of the 1.0.30 update and the following, larger update, which we knew would have a few areas of focus, with the most important one being the development of chord symbols.

First, we reviewed the requirements for the chord symbols feature, and made some early decisions about what would and would not be in scope for this release. For example, we decided that, unfortunately, showing guitar chord boxes alongside text chord symbols was beyond the scope of what we could achieve in a reasonable timeframe, though of course we will return to add support for these in future, when we are working more generally on support for guitar notations.

Next, we surveyed the various different conventions for how chords are described and how chord symbols look, to the extent that it is possible to divine this. Because chord symbols are a relatively recent addition to common music notation, and because their purpose is very much to communicate a particular harmony in a practical, shorthand fashion, there are an innumerable number of variations in how they are written. We have identified at least six distinct conventions that seem to be in at least somewhat common use (including the Brandt-Roemer style set out in Standardized Chord Symbol Notation, the style used in Jamey Aebersold's publications, the style used in the Real Book, the style taught at Berklee, and so on), and our goal is to provide easy ways to achieve any of these looks, with plenty of options for customisation so that you can mix and match different elements of each.

Having mapped out the territory of what sorts of chord symbols it will be necessary for Dorico to support, work has begun on implementing the low-level data types that will represent the chords in Dorico projects, and on building the means of representing all of these different kinds of chord symbols graphically, using a mixture of text and music fonts.

There is still a lot more work to do on the chord symbols feature, so I'll try to provide another update as development progresses.

Signing off

That's it for this instalment of the diary. I'll be back again very soon with details of the Dorico 1.0.30 update and the improvements it contains.

In the meantime, if you're still on the fence about giving Dorico a try, perhaps the incredible 10-page preview in the February 2017 issue of Sound on Sound magazine will persuade you to take a look. Author Mark Wherry writes that "Steinberg are clearly onto something special with Dorico." Likewise, Mark Sealey of MyMac.com recently awarded Dorico a 9/10 rating, and calls it "a revolutionary product." You can try all of the features of Dorico out for 30 days by downloading the trial from the Steinberg web site.

Furthermore, my colleague Anthony Hughes has been doing amazing work putting together a series of short tutorial videos taking you through many of Dorico's key features in concise, bite-sized chunks. Setup mode is explained in a series of seven videos, while Write mode is detailed in ten videos. Anthony is hard at work on the next series, which will cover Engrave mode. Be sure to check all of these tutorials out on the Dorico YouTube channel, and please subscribe to get notified about new videos as they appear.

Finally, another of my colleagues, John Barron, has started running a monthly live video stream to help you get started with Dorico, called Discover Dorico. The first session took place at the end of January and covered Dorico's page layout features in some detail. You can catch up with the first session on YouTube, and keep an eye on the Dorico forum for details of upcoming sessions.

As always, we're eager for your feedback, so please leave us a comment here, or contact us via the forum.