I've been working on a MIDI piece, and I've been using the Violin instrument. It seems to me that string instruments seem to lack variation or expression. What are some techniques to make them sound realistic?
First some nomenclature pendantery: there is no such thing as a "MIDI sound". That's only a controller format. So really, you should always refer to some particular virtual instrument sound. Obviously, the standard General-MIDI (GM) engines only use a very simple "one sample per keyboard note" approach; you can't expect to get good quality here. But there are of course dedicated sample libraries for almost all kinds of instruments, and a well-done violin one will already sound better when you're only playing as if it were organ.
Yet, as you say, the main problem is that string instruments have plenty of expression possibilities that you simply can't control with an ordinary keyboard.
- Foremostly though much-neglected, string instruments being fretless means you can fine-control intonation. A good performance will not use the pitch classes you find on a piano (12-edo tuning); that's originally just an approximation to 5-limit just intonation. And because sustained string notes are rather more dissonance-sensitive than piano or organ sounds, it will IMO always sound out of tune if you use 12-edo. (Which can actually be quite a nice effect sometimes, like the Mellotron sounds found if early 70's progressive rock; but that should really be seen as an instrument on its own right rather than strings.)
Intonation can in principle be controlled quite well by adding pitch-shift information to the MIDI track, though it's a heck lot of work to get that right.
- A bow gives you much more different possibilities to articulate a note than just initial dynamic velocity. Spiccato, legato, accents, détaché etc. all make up a multi-dimensional field; a single velocity number is way to little information to classify them. If you could control just pressure and bow speed, over time, you'd be fine. Better string sample libraries actually have those as independent parameters; in more simplistic implementation you should at least be able to control the attack (~ short for fast staccato, long for slow legato).
- Again aided by the absence of frets, you can extensively use vibrato on string instruments. That's the parameter you'd usually control with a keyboard's "mod wheel". The problem is that vibrato also has more than one parameter: of course speed and width, but it also plays heavily into intonation. The only way to properly take care of this is to completely make the pitch-shifting intonation control time-dependent. This can't really be done practically as post-production in the MIDI tracks anymore, you need a proper continuous control for it.
Summing up, you need a controller with multiple continuous parameters to properly play strings via MIDI. One reasonable idea nowadays is to use tablet computers' touchsceens. That's supported by plugins like those from Embertone, and seems to work quite nicely indeed (though they fail to properly take care for intonation). The most natural thing is of course to control pitch right where you define it in the first place: by position on the keyboard! A couple of controllers allow this, to note the Haken Continuum, the Seaboard, and TouchKeys. Of course, all these are in some sense more difficult to play than an ordinary keyboard, but there's no free lunch. The ideal controller for string sounds remains, well, string instruments, where you have all parameters!
If you have to make do with a 'standard' synthesizer, you can try the following:
Use the expression controller. This is typically implemented as affecting only the volume, but real string notes do vary their volume over time, even if no (de)crescendo is explicitly called for.
Your sequencer might allow you to 'draw' curves to change controller values. Real volume changes are not perfectly linear.
- Use the vibrato controllers. Like expression, this must vary over time.
If you want to emulate an orchestra, you can use a 'string section' patch, or use multiple instruments in parallel, or combine both. When combining multiple sounds, don't simply use the same note, but transpose some one octave up or down.
In a real orchestra, strings are never completely synchronized, so the notes of a chord should be staggered slightly, and legato notes should overlap a little bit.