Monday, June 17, 2013

Orchestrating with Musescore v1.3 and LinuxSampler

For the past few months, I’ve been exploring Musescore as an all-in-one solution to composing, orchestrating, and engraving original compositions. I’ve already written a tutorial at Musescore on extending Musescore (v1.3) with LinuxSampler, but I’d like to share my thoughts on the more musical side of things, specifically achieving a satisfactory Musescore-generated performance of music written for full orchestra.

If you’re a Musescore user, and interested in this article, have a look at the LinuxSampler tutorial located here. My commentary is based on the setup described.

I started using Musescore simply to engrave pencilled manuscripts that were in danger of fading. The more I worked with it, the more I became intrigued with the idea of using it for prototyping audio versions of my work. Starting off small, just songs scored for a solo instrument with piano accompaniment, I progressed to adding strings, and finally worked up to a small orchestra.

I wanted to go bigger, trying my hand at a full orchestra, but was finding some limitations in Musescore’s reliance on GM soundbanks. No soundbank I could find was perfect. If the strings were good, the oboe would be awful. Or the oboe would be great and the French horns terrible. Since Musescore is JACK smart, I wondered if connecting Musescore’s midi output to a sampler would solve my problem. It did. Using LinuxSampler, I could load any soundfont I wanted and have it correspond to the appropriate Musescore staff.

There’s no dearth of free soundfonts out there, most in .sf2 format, some in .sfz and .gig, all three of which can be loaded into LinuxSampler. The problem is that where quantity reigns, quality does not. Part of that is personal preference, but generally, quality soundfonts that work well as part of an orchestra are hard to find. For anyone interested in midi orchestration, I suggest downloading as many soundfonts as you can find for any particular instrument, then auditioning them, just as you’d do with real players. LinuxSampler has a handy virtual keyboard that makes trying out individual soundfonts easy.

No soundfont is perfect, top to bottom, so what you’re looking for is as close to a “typical” sound in the low, medium, and high registers as possible. A flute that’s acceptable above C5 but sounds oddly metallic between C4 and C5 is no good, whereas one that sounds realistic up to C6 but then gets shrill may, in fact, be usable, since the flute is naturally a little shrill up there.

It’s a good idea to have several soundfonts available for each instrument. Depending on the overall orchestration, you may find that that trumpet that sounded dreadful with one combination of instruments works perfectly with another. You will also want a choice between “solo” instrument samples and samples that fit well into an orchestral fabric.

In the woodwinds, stay away from samples with overly noticeable vibrato. A little vibrato can offset the fact that you aren’t working with instrument sections—essentially, you’re scoring one instrument per part—but too much stands out and usually sounds cheap. The only exception to the rule is the oboe, which in midi scoring seems to blend more naturally when there’s a distinctive vibrato. This is true not only of, say, oboe+flute in octaves, but also when the oboe is reinforcing a section of strings.

Usable brass is hard to find, particularly the all-important French horns. The problem is that most of the soundfonts I came across have far too much character, suitable for solos but too distinctive for orchestral work. Nearly all of them have too much bite, so I’d advise looking for soundfonts that minimize it; otherwise, balance with other instruments becomes next to impossible.

The string section presents the hardest challenge. Plenty of soundfonts exist, but none can hope to be completely satisfactory. Such is the nature of strings, where expressivity in both timbre and articulation are all important. I learned a few tricks in Musescore that help with the problem, which I’ll get to further on. While you’re auditioning soundfonts, you should be listening for string sections that display a good medium legato (not too slow on the attack) as well as timbrally similar sections of strings détaché. Marcato, too, depending on your needs.

Pay particular attention to the timbre of the soundfonts in all the registers from contrabass to stratosphere. There are a number out there specifically for violin, viola, cello, and bass sections, but I didn’t find them as useful as the more generalized “strings” soundfonts. A few make excellent first and second violins; others make great cellos. Miraculously, some even sound like violas.

For pizzicato, a general “pizz. strings” soundfont is usually sufficient for all sections of strings. An “acoustic bass” soundfont, ie a single plucked contrabass, makes a helpful stand-in for pizzicato basses when the scoring is light.

Harp, percussion, and piano are usually intended to stand out from the surrounding orchestration, so the choice of soundfonts is very much a question of personal preference.

Don’t overlook the large GM banks (like FluidGM or Merlin) when hunting around for samples. You can load individual instruments from them in LinuxSampler, and there are a few gems.

Once you’ve got a library of soundfonts, you can start setting up “orchestras” in LinuxSampler that correspond to your scoring needs.

Balance is everything, and one thing that’s certain is that your soundfonts won’t all be of equal volume. My way of dealing with the problem is to create a test score in Musescore composed of long whole notes, one per instrument in succession in their middle range: the flute plays a whole note A5, then the oboe an A4, then the clarinet an A4, etc. By default, Musescore sets note velocity to 80, which I use as a mezzo-forte benchmark. I adjust the levels with Musescore’s mixer until all the instruments are producing a satisfactory mezzo-forte at a velocity of 80. (An alternative is to leave Musescore’s levels alone, and adjust them in LinuxSampler. Six of one, half a dozen of the other.)

Using 80 as the note velocity for mezzo-forte lets you to divide dynamics into useful increments of 20: 20=pp; 40=p; 60=mp; 80=mf; 100=f; 120=ff. The 20 provides room for expressive phrasing within a particular dynamic, and to compensate for the dynamic differences between high and low registers. Allocating dynamic levels this way gives a fairly reliable approximation of the balance of instrumental forces you would hear from a live orchestra—essential when prototyping a score. It also allows you to improve the sonority when parts are doubled—say, two trombones playing unison. If you increase the velocity by 10, the sonority increases while staying within the same dynamic range.

Be careful of horns, though. You may want to decrease their levels in the Musescore mixer, since horns do not have the same carrying power as other instruments and often have to be marked one level louder in the score than the prevailing dynamic. If the trumpets and trombones are playing mezzo-forte, it’s certain the horns will have to be marked forte if you’re after an even balance. However, if the horns’ mezzo-forte velocity is identical to all the other instruments, marking them forte and setting their velocity to 100 results in horns that are too loud.

Achieving a reasonably close correspondence between the dynamic markings in the score and the assigned note velocities is essential. If a bassoon phrase is marked piano, you don’t want to have to tinker around with note velocities (in the Note properties dialogue) until it “sounds right”. It’s much easier to mark the passage piano and set all the notes to a velocity of 40, assured that the bassoon is then playing a good, uniform piano.

There’s still an awful lot of tweaking to be done, but for a “first pass” at your score, achieving a good, overall balance of dynamics between parts makes fine-tuning much easier.

Strings, as I’ve mentioned, present particular challenges. There are some very expensive commercial VSTs out there that offer good strings with a wide choice of articulations and dynamics, but when scoring with Musescore, your options are limited.

The problem with string soundfonts is articulation. Legato, or “slow”, strings have a very gentle, long attack and are unsuitable for even medium-fast passages. Conversely, most “marcato strings” (usually détaché, not marcato) have an aggressive attack, almost like a series of downbows, making them unsuitable for legato phrasing.

I deal with the problem by assigning a legato-strings soundfont to the Musescore’s “normal” string channel, and a marcato-strings soundfont to the “tremolo” channel. (Real tremolos I write out in full and make invisible, generally on Voice 4 of the staff.) To switch between articulations, I create staff text saying which I want, then go into the “Staff text properties” dialogue and select the appropriate channel. Afterwards, I set the text invisible.

It isn’t possible to get marcato strings to approach legato, but there is some leeway going the other direction. This is fortunate because repeated notes in a legato strings soundfont tend to blur together owing to the very slow attack and decay. The problem is fixable in the Note Properties dialogue, where it’s possible to change the “offtime” of a note to a negative value, effectively shortening its sounded length without altering its written length. Depending on the tempo and note-length, I find setting the offtime between -5% and -10% is usually enough to make repeated notes heard as such.

Upbeats, especially short ones, can be a real headache with legato strings unless some other instrument is sharing the upbeat and can mask the slow attack. The solution to this problem is to set the ontime to a negative value, which starts the note a little sooner than normal. Adjusted carefully, you can get the sustain phase of the note’s envelope to fall directly on the upbeat; the early attack is scarcely audible. Another solution I sometimes use is to increase the velocity of the upbeat drastically. If the upbeat’s short enough, the note never gets a chance to reach peak velocity and may sound weak simply because it’s too soft.

Unfortunately, there is no quick or easy solution to crescendi and diminuendi, which must be worked out “by hand”, making progressive adjustments to the velocity of every note in all parts of the passage. The “mf=80” system I use does help a bit, in that I can reliably in/decrease the velocities in all the affected parts by the same amount, say by 3, then 5, then 7, and so on. However, it’s worth noting that crescendi and diminuendi, like rit., rall., and other rubato, are rarely executed according to mathematical principles and sensitive ears are required to make them properly musical.

The one place where all bets are off is orchestral tutti. Balancing tutti passages requires knowing the art of orchestration well, scoring accordingly, then simply using your ears to get the synthetic output to sound like what you know the real deal sounds like. Owing to acoustic oddities that pile up the more sampled instruments you have playing together, you may have to in/decrease note velocities radically in certain parts, in despite of orchestral common sense. My song, North, (on YouTube here) has a two-bar tutti that took a day or more to get right.

Reverb is an essential part of orchestration, so I always attach my sampler, the software that’s actually “playing” the music from Musescore, to a reverb app. All things being equal, and my soundfonts having been carefully selected, this provides enough timbral and dynamic realism to let me tinker with the orchestration while I’m composing.

The final step in preparing synthesized audio prototypes of orchestral scores is to apply equalization and compression. This is where deficiencies and eccentricities inherent in the soundfonts can be erased, balance further adjusted, character imparted to various instruments and sections, and the semblance of life infused into what is, after all, canned music.

No comments:

Post a Comment