Development diary, part 14

When we finally announced Dorico's name last month, and let you know when you will finally be able to use it for yourself, we were inundated with responses on Facebook, Twitter, on the new dedicated Dorico forum on our web site, and by email. Knowing that there are so many musicians out there waiting for Dorico and looking forward to adding it to their toolboxes is great motivation for us as we work hard to ready the application for release.

In the meantime, it's time for another development update. I know that many of you are waiting for details about playback, and I will share some in (I hope) the next instalment of this diary. Our team in London and our colleagues in Hamburg continue to work very hard on the integration of Cubase's audio engine with Dorico, but there is still much to be done. In this instalment, then, I'm going to tell you about Dorico's page layout features, and also talk a little bit about lyrics.

Page layout

One of the areas in which we are trying to make Dorico offer unique and powerful functionality not found in other scoring programs is in page layout. Being able to quickly produce a stable and consistent page layout can be a challenge that tests the skills of even the most experienced users of scoring software. For example, page furniture (such as page numbers, headers consisting of movement titles or instrument names, plate numbers, and so on) must not interfere with the music, and the music must start and end in defined places on the page, whilst still allowing the flexibility that’s needed to handle exceptional circumstances (such as footnotes or critical commentary). We’re taking a new approach that has more in common with desktop publishing applications than it does with the existing mainstream scorewriters.

As I wrote in part 12 of this diary, Dorico projects can contain multiple independent pieces of music, known as flows, which can even be for completely different combinations of instruments, assigned to players, which represent the human beings who will ultimately perform your music in the real world. To actually bring your music into concrete, notated form that can be printed out onto paper or displayed on a device for a live performer to read, you bring together some combination of flows and players into layouts.

In a typical project, you will have a full score layout, which by default contains the music for all players from all flows, and you will also have a number of part layouts, which by default contain the music for a single player from all flows. You can edit which flows and which players are included in any layout, of course, if you need to. How each layout actually appears is controlled by a combination of the basic layout options, such as page size and margins, page orientation, and stave size (all of which are set in the Layout Options dialog, accessed from Setup mode), and the set of master pages in use.

Master pages

If you’re familiar with desktop publishing software, then you’ll most likely be familiar with the term master page, from where we’ve borrowed the concept. As the help pages for Adobe InDesign put it:

A master is like a background that you can quickly apply to many pages. Objects on a master appear on all pages with that master applied... Changes you make to a master are automatically applied to associated pages. Masters commonly contain repeating logos, page numbers, headers, and footers. They can also contain empty text or graphic frames that serve as placeholders on document pages.

In Dorico, a master page actually consists of a pair of pages, one to be used if the page using that master page falls on the left-hand side of a spread, and one to be used if it falls on the right-hand side. The default master page set consists of two master page pairs: the default page pair, which is used for each successive left and right-hand page after the first page of the layout; and the first page pair, which is used for the first page of music in the layout. You can designate a particular page pair within a set as the special first page pair, but if no page pair has this special status, the normal page pair will be used instead.

A master page definition itself typically consists of a number of frames. Frames are rectangular boxes that can be positioned on a page, and then filled with content. In Dorico, there are three types of frame: music frames, into which the music chosen for your layout is flowed; text frames, into which you can either type arbitrary text, or choose from a number of tokens (sometimes called “wildcards” or “text inserts” in other programs), which are automatically replaced with preset information from elsewhere in your project; and graphics frames, into which you can load images in a variety of formats.

Frames can be positioned anywhere on the page inside the margins defined for the specific page size in use by the layout. All pages in a layout use the same page size, orientation, and margins, but frames can be laid out within those margins differently on every page, if necessary. Frames are defined in a manner that allows the page layout to adapt to changes in page size, orientation, or margins, so that the same master page definitions can be used for e.g. both A4 pages (as typically used in Europe) and Letter pages (as typically used in the United States), or even for A4/Letter and A3/Tabloid. In the language of the modern web, this is known as responsive design, and the behaviour of how a frame’s size and/or position changes when the page size or orientation change is defined in terms of constraints.

Constraint-based layout

The frame constraints editor

You can think of a constraint as defining the relationship between one of the four sides of a frame, and the corresponding page margin. For example, a music frame that fills the entire height and width of a page, and which will grow or shrink as the page size or area defined by the margin is changed, has constraints on all four sides, all of which have an inset of zero, i.e. the edges of the frames should abut the margins.

A frame intended to contain a header, by contrast, would typically span the whole width of a page, so the left and right sides of the frames would be constrained to the left and right margins, with zero inset, and the header would also typically abut the top margin, so it would also have a constraint on its top side with an inset of zero. However, the header should have a fixed height, so it does not have a constraint on its bottom side. This means that as the page size changes, the top of the header frame will remain locked to the top margin, and likewise the left and right sides will remain locked to the left and right margins, but the height of the header frame itself will not change.

Once you have understood the basic concepts of a constraint-based layout, you can start to imagine the powerful possibilities this affords, particularly with a view to how music might be dynamically laid out when viewed on a device such as a tablet in place of a traditional paperbased music stand.

Overrides

The Pages panel shows different kinds of overrides.

By default, each page in a layout inherits from one of the master pages in the set used by that layout: the first page inherits the special first page pair, if present in the set, and subsequent pages inherit the normal page pair. If you edit these master page pairs, then the pages that inherit them will instantly update to reflect those edits, but you can also edit individual pages in the layout in a variety of ways, which creates overrides. Once a page is overridden, it will no longer automatically inherit changes made to its parent master page, until you explicitly clear the overrides, or specify that it should inherit from a different master page.

Why would you want to override the layout of a given page? Imagine that you are preparing for publication a critical edition of a new work, and it is your house style to include commentary in the form of footnotes at the bottom of some of the pages, as is the practice of publishers such as G. Henle Verlag. Most pages will likely have no footnotes at all, but some pages may require more than a sentence or two, and perhaps in more than one language (most of Henle’s editions today provide footnotes in three languages: German, English, and French). Those footnotes may need to include small excerpts of music, to show how a passage was reproduced in another source, or to suggest a possible realisation of an ornament, or similar.

Producing such a layout in one of the existing mainstream scoring programs can be time-consuming and awkward – to the point that many publishers prefer doing this kind of work either in a page-based illustration program, or in a desktop publishing program – but it is designed to be as efficient as possible in Dorico. Our goal is to eventually obviate the need for completing this kind of complex layout with the use of additional software.

Creating a master page pair that accommodates titles and footnotes in multiple languages.

To produce a layout like the first page of Beethoven’s C major piano sonata, Op. 53, as shown on Henle’s blog, in Dorico, you would simply drag the bottom of the main music frame on the page upwards to make room for the footnotes, then add two text frames of the same height, each occupying half the width of the page, and enter the text in the appropriate language into each box. To add the small musical excerpt, you could choose either to create a graphic frame and import the music in the form of a graphic (perhaps in a vector format like SVG), but much more fun and dynamic than that, you can add a new music frame and set its contents to an entirely different flow within your project: you could create a new flow for each footnote, edit it as if it were itself an independent piece of music, and then bring it into its own music frame, adjusting its stave size and spacing as needed to make it fit the appropriate space.

The possibilities afforded by having multiple independent music frames on the same page are practically endless: not only can you easily create footnotes, but you can create complex layouts of text and music for e.g. exam papers or exercise sheets, or create “fill boxes” that show how a guitarist or drummer might handle a particular solo or break. You can even produce, almost entirely automatically, the four-hands piano layout where Secondo’s music is shown on the left-hand page of a spread, and Primo’s music is shown on the right.

There’s so much more power and flexibility behind Dorico’s page layout engine. I’ve barely mentioned text tokens that can dynamically substitute information from elsewhere in your project, such as page numbers and movement titles; or the fact that text can be saved in text flows and shared between different layouts in your project (so you can use e.g. the same performance instructions in the full conductor’s score and a smaller rehearsal score); or the fact that you can easily insert blank pages anywhere in your layout; or import graphics onto a master page so that your company’s logo will appear automatically on the first page; or many other things besides.

Hopefully this brief introduction to Dorico's page layout capabilities has sparked some ideas about how you might be able to use them in your own projects. Of course, if you just want your music to be laid out clearly, simply, and automatically, and you don’t ever want to edit a master page definition, the good news is that the program’s defaults are sensible enough that you never need to, but the power is there, hidden away behind a switch in Engrave mode, just waiting to be unlocked.

Lyrics

In vocal and choral music, we use the term "lyrics" to represent generically all text that is sung by singers – though in Behind Bars, Elaine Gould seems to studiously avoid the use of the word, instead referring to it as "the text," which may well be a more accurate approach, since not all sung words in musical works would accurately be described as lyrics, as in either the modern usage of the lyrics to a pop song, or in the literary sense of referring to lyric poetry.

Despite its inaccuracy, it's useful to be able to differentiate sung text from other forms of text that often appears in musical scores – such as performance instructions, tempos, dynamics, and the like – not only in discussions like this diary entry, but also in Dorico's user interface, so we're going to stick with it.

Inputting lyrics

Dorico's approach to inputting and editing lyrics is hardly revolutionary, but it is efficient and hopefully comfortable. To get started, simply select the note or chord from which you want to start adding lyrics, and type Shift-L. In common with inputting other notations, a pop-over appears, with a read-out of the line number of the lyric you're about to input. Simply type the word and hit Space to advance to the next note or chord, or if you are typing only one syllable of a longer word, hit - (hyphen) to advance. If you skip over a note or chord without providing a new lyric, hitting Space or - repeatedly will cause either a lyric extender line or one or more hyphens to appear, indicating that the word or syllable is to be sung over multiple notes. So far, so familiar, no doubt.

One nice advantage to using the pop-over to input lyrics rather than typing them directly onto the page is that the pop-over always appears at a legible size, independent of the zoom level of the score itself. You can always see what you're typing, even if you have zoomed out to get more of the system or page in view.

You can have as many lines, or verses, of lyrics below (and indeed above) the staff as necessary, simply by hitting the down arrow key in the lyric input pop-over: the line number updates, and as soon as you start typing, the new lyrics are added to the new line. The distance between lines of lyrics, and indeed the distance between the staff and the first line of lyrics, can be controlled via the Engraving Options dialog in Engrave mode, and indeed there is a variety of other options relating to lyrics there, too, including the minimum distance between adjacent lyrics, the gap before or after, and between, hyphens, the thickness of the lyric extender line, and so on.

When a line of lyrics is missing across the width of a whole system, no additional gap is left between the remaining lines of lyrics: for example, if you typically have three lines of lyrics, but on one system the second line of lyrics is completely absent, then the third line of lyrics will be moved upwards, closer to the first line of lyrics; if on a subsequent system the second and third lines of lyrics are present but the first line is completely absent, the second and third lines of lyrics will be moved upwards such that the second line of lyrics is positioned vertically where the first line would normally be. Dorico can optionally print line or verse numbers automatically, too, immediately before the first lyric in a given line in a given flow.

One further neat trick up Dorico's sleeve is that you can also designate either a whole line or just a selection of lyrics as being a chorus, which means that those lyrics are automatically written in another font style (by default, using the same font family and size as normal lines of lyrics, only italicised) and centred vertically relative to the existing lines of lyrics on the system where the transition between regular and chorus lyrics takes place. (No, Dorico doesn't automatically show a curly brace or similar to denote the transition point between regular and chorus lyrics at the moment, but it may in future.)

Alignment and spacing

Although lyrics put pressure on the vertical spacing of the music, generally forcing staves further apart, they put much more pressure on the horizontal or rhythmic spacing of the music.

Firstly, there are the conventions for how lyrics are aligned relative to notes and chords. Single syllables (whether whole words or parts of longer words) that are sung on only one note are centred on that note; melismas, that is to say syllables or words that are sung on more than one note, are left-aligned with the left-hand side of the first note, to draw the singer's eye rightwards towards the remaining notes to be sung to that sound.

Secondly, because lyrics are very often wider than the notes to which they are sung, there can be a significant impact on rhythmic spacing: a lyric on one note cannot be allowed to collide with a lyric on another note, so it is often necessary to widen the spacing, sometimes by a considerable amount, to accommodate lyrics, and if you happen to be unfortunate enough to have very wide lyrics (e.g. "screeched", "strengths", "straights", etc.) on very short note values, you will most likely find that the rhythmic spacing is significantly distorted.

Gould allows that very long syllables do not have to be centred precisely under the note: she recommends that they are offset to the right, such that more of the word's width is found to the right of the note to which it is sung than to the left. In practice, engravers prior to the age of computer engraving seem to have taken a less rigid approach to this problem, essentially allowing lyrics to shuffle either to the left or to the right if this allows a reduction in the amount of rhythmic distortion caused by using precise centre- and left-alignment strictly abiding by the letter of the law.

To date, no scorewriting software (to my knowledge) has attempted to make automatically the kinds of adjustments that human engravers used to make when typesetting lyrics – until now. Dorico is the first scoring software to automatically adjust the horizontal position of individual lyrics relative to the notes to which they belong, to minimise the distortion of rhythmic spacing.

The mechanism by which this is achieved is a general one that allows items outside the staff to contribute towards rhythmic spacing: this means that, for example, hairpins are never drawn so short that they look more like accents than gradual changes of dynamic; a tempo change followed in quick succession by a gradual increase or reduction in tempo in the form of a rit. or accel. will not collide with each other. In these kinds of situations, the rhythmic space is expanded to accommodate the minimum legal length for the item in question (such as the hairpin) or its actual minimum size (such as the text of the tempo change), over the rhythmic duration of the item.

Lyrics are nevertheless unusual in that they can typically influence the space allotted only to a single note at a single rhythmic position: if the same word or syllable is sung over multiple notes, it is typically left-aligned with the first note (opening up more space for a longer lyric to its left), and because there is at least one more note to come, there is typically enough space to the right to avoid increasing the rhythmic spacing in any case. But for a troublesome word like "strength" on a single note, it must be positioned relative to the note such that it neither collides with other words to its immediate left or right, nor does it stray too far under another adjacent note or rest that doesn't have a lyric of its own for fear of introducing ambiguity over the true home for that word. At the same time, if possible, we want to avoid simply always adding rhythmic space for wide words and syllables: but if we move one lyric left or right in order to avoid adding space, we may introduce a new collision with an adjacent lyric, and end up in a vicious cycle of shuffling lyrics left and right in futility.

We are choosing to keep the exact details of how these concerns are balanced under our hats, at least for now, but the result is that lyrics are able to move subtly to the left and to the right to reduce the amount of additional rhythmic space that needs to be added to accommodate them, without introducing ambiguities in the underlay, and without causing collisions elsewhere on the system. The effect is subtle, but this is as it should be, in common with dozens of the other tiny details to which we have paid great attention as we have built Dorico, and in common with the similarly subtle and clever gambits employed by skilled human engravers over the past two centuries.

Keep control

In contrast to the subtleties of how Dorico adjusts the alignment and spacing of lyrics to produce a pleasing result, the way that it handles edits to the lyrics themselves is decidedly unsubtle, and usefully direct.

In other scoring programs, one of the annoyances of working with lyrics is that you cannot easily change the way the application thinks about a given lyric once it has been created – for example, if it turns out that a lyric ends up left-aligned when it should be centred under the note, because it has been copied and pasted from one staff to another. In Product A, for example, there is no option but to delete and re-enter the lyric to change how it's aligned. In Dorico, by contrast, you can simply select the lyric, open the Properties panel, and change its syllable type, which will not only change its alignment as needed, but also fix up any extender lines or hyphens that are affected by the change.

It's also easy to make larger scale edits, such as changing the order of verses: simply select a lyric in the line you want to move elsewhere, right-click, and choose the new line number. Any existing lyrics in that line number will be swapped with the lyrics you're moving. You can also easily move lyrics from below to above the staff in the same fashion.

More to come

With that, it's time to wrap up this instalment of the diary. Lots of other excellent work is going on in beaming, tremolos, ornaments, bar numbering, localisation, user interface, and, of course, playback, and I'll touch on some of these areas in the next development update. In the meantime, we look forward to continuing to discuss Dorico with you both in the comments here and in the already pretty lively Dorico forum. Come and join us!