Practically FM (Part 2)
Part 2 of our new series for FM synth owners, in which Martin Russ attempts to give away the secrets of FM programming!
Synthesizing a piano sound is difficult. This month Martin Russ provides some valuable programming tips to point you in the right direction.
I remember once hearing a rumour about a man who planned to produce a piano called a 'Bechway', because it would have the best of a Steinway and a Bechstein. Apart from the lack of the best parts of several other pianos I can think of, such a project is probably doomed to failure because what people want when they buy a Bosendorfer or a Young Chang is exactly that - they want a piano whose tone, feel and overall presence is right for them. A bit like buying a hat, really. It is the very individuality of pianos that makes them special.
Programming piano sounds on any synth is very difficult. There are several obstacles in the way of a successful synthesis that you rarely encounter when trying to programme the sound of any other instrument. Firstly, everyone knows intuitively what a piano sounds like. Secondly, everyone knows instinctively what a good piano sound is! Finally, everyone knows that only a 'real' piano sounds like a piano, so there is no point in trying to synthesize one.
The only consolation I can find for us programmers is that the situation seems to be worse for producers of sample libraries. If a synthesis of a piano sounds nothing like the real thing, then surely a sample will sound right? Wrong! I have seen reports where reviewers have taken samplers as sophisticated as the Kurzweil 250, and spent days picking faults with the sound. Each tiny nuance of velocity scaling, the variation of sound across the keyboard, was subjected to the closest scrutiny.
And so, whereas last month I was quite happy to call the sound I produced a 'Washy String' sound, this time I am more careful in my wording...
This is a rough approximation of part of the sound of an acoustic grand piano, but with a touch too much of the characteristics that tell us it is a piano type sound. After all, what is the point of imitating a sound which is usually readily available in most studios, unless we need a slightly different sound? Here's how to assemble one 'larger than life' piano sound.
Let us start off with last month's 'Vanilla' sound as our basic voice. Even a cursory peck at the keyboard will tell you that 'Vanilla' does not sound like a piano, real or otherwise. The envelope is the first problem area: we need decay, rate scaling and some velocity sensitivity. Since I used a very general fast attack, middle value release type sustained envelope in 'Vanilla', I now present another general purpose envelope designed for percussive applications.
R1 R2 R3 R4 L1 L2 L3 L4
95 25 25 40 99 90 00 00
Before we copy this envelope, we should choose an algorithm. 'Vanilla' makes use of Algorithm 2, but this is not a very good choice for piano sounds because it has a simple pair of operators. So I will choose Algorithm 3 for no other reason than because it has two three-operator stacks more suited to the complex tone we need. Do not despair if I seem to be choosing arbitrarily, because the whole point of this series is to try and destroy the mystique of FM programming! I have successfully programmed piano voices using a variety of algorithms and it is the application of the principles that matters, not choosing the 'best' algorithm!
OK, enter the percussive envelope values from above and copy it to Operators 1 and 4, the two Carriers in Algorithm 3's two parallel stacks. Because we have changed algorithm, we now need to adjust the Output Levels of the Operators to compensate. It would have been nice if Yamaha had thought to rearrange the levels automatically and intelligently as you change algorithm! Right. Operator 3 is now at the top of the left-hand stack of three, and has an Output Level of 99. Our standard value for a Modulator is 75, so adjust it to 75. Similarly, Op 4 was a Modulator but is now a Carrier, and so needs its Output Level adjusting to 99. The sound we now obtain has more of the right sort of envelope, but entirely the wrong sound!
Next, copy the envelope from Op 1 to Ops 3 and 6. Leave Ops 2 and 5 well alone - in stacks, it often pays to work from the top and bottom towards the middle. But the sound is still too bright, and so far we have done nothing about rate scaling or velocity. OK, change the rate scaling on each Operator to 4 and set the velocity sensitivity of Ops 1, 2, 4 and 5 to a value of 1, and Ops 3 and 6 to a value of 3. Now the envelope should be approximately correct, but the sound lacks any character.
On an analogue synth, piano sounds are normally synthesized by using a pulse waveform and filtering it to cut off most of the high harmonics. In other words, it would appear that a piano sound has a few odd order harmonics above the fundamental frequency. To change the tone of our sound we alter the Frequency Ratio of the Modulators. In this case, working down from the top of our stack, the Modulators are Operators 3 and 6. I tried a few values of odd order ratio like 3.00, 5.00, 7.00 and 9.00, and decided upon 5.00 and 9.00 for Ops 3 and 6 respectively. At this point I decided to Transpose the keyboard down to C2, and then tried the sound so far. To my ears, the piano sound in the middle of the keyboard is passable, but at the low end it lacks bite and is far too bright and synthetic at the high end.
The tuning is also a little too perfect for my ears. An 'over the top' piano should be slightly detuned, shouldn't it? Detuning Op 2 to +4 sounds fine to my ears, and setting Op 4 to -3 and Op 6 to +2 rounds it out very nicely. As always, detuning is 'across' the stacks, rather than just detuning the two Carriers (Ops 1 and 4), and if you try detuning Op 4 to +4, say, you will find that it detracts from the sound rather than improving it!
If you thought that piano sounds were difficult to programme, you may well be surprised at our progress so far - remember, I have not adjusted the Operator Output Levels from their starting point of 75, and have really only altered an envelope and two frequencies. Can FM really be as easy as this? The answer, of course, is yes!
We now turn our attention to the lower end of the keyboard. We need to selectively improve the bass piano sound without altering the sound in the centre of the keyboard. Listen to one half stack on its own and try altering the Output Level of the top Operator and see how much we need to alter it by.
I decided that a value of 10 was the right sort of figure. To apply this to just the low part of the keyboard, we use Keyboard Level Scaling. To keep a value of 10 in the bass area we need to apply slightly more correction, say 15. So set the Left Depth of Operators 3 and 6 to 15, and the Left Curves to +LIN. This will now increase the effective Output Level of the two tops of the stacks at the lower end of the keyboard. Set the break point for Ops 3 and 6 to C3, to set the note below which the scaling will start to happen. When I played the resultant sound I decided to increase the Velocity Sensitivity of Ops 3 and 6 to 4, to make the overall sound less bright for soft playing.
And so to the final hurdle, and the most difficult bit: the top end of the keyboard. The current sound is too bright at the top of the keyboard, and so we need to reduce the Output Level of the Operators at the top of the stack. This is the opposite to the process we have just carried out at the bass end. Again, investigate the amount of change that is likely to be needed by altering the Output Level and listening. I found that much more adjustment was needed to Operator 6, mainly because it has more high frequencies present due to the higher Frequency Ratio used. Eventually I settled on a value of 25 for Op 3, with the -LIN Curve, and 50 for Op 6, again with the -LIN Curve. Note that the positive (+) Curves add to the Output Level whilst the negative (-) Curves subtract.
That is about as far as I want to take this sound this time. The top end is still not very realistic, but what we have created is undeniably a 'usable' sound, and quite suggestive of a piano. Showing my normal great imagination, I have named this sound 'SOSpiano'!
For those readers with 4-Operator FM synths, the 4 Op version is slightly different in a couple of details. We need a stack of three Operators, and so once again Algorithm 3 fulfills our purpose. Op 4 is now used much as the second stack is used in the previously described 6-Operator sound - ie. for doubling-up the sound with a smidgeon of detune, although we lose the 9.00 Ratio in this case as well.
Simple piano sounds are really just a combination of three elements: the correct envelope, the correct tone, and the velocity sensitivity. The envelope is just a straightforward percussive decaying shape, whilst the tone depends upon the correct Frequency Ratio between the Carrier and the Modulator to produce the right harmonic content. The velocity sensitivity is very important to the playability and the impression that the sound creates. Try removing the velocity sensitivity and compensating for the change by adjusting the Operator Output Levels, and then try and play a piece of classical piano music. You will almost certainly find that not only is it difficult, but the piece seems to lack any interest or drive. Velocity sensitivity is more important than you may have imagined, especially to piano sounds.
The procedure I employed above needs further explanation. Why did I virtually ignore Operators 2 and 5? The answer is that by using the sustaining envelope and leaving their Output Level at 75, it was possible to treat Ops 1 and 2, as well as 4 and 5, as a single unit. There is no point in over-complicating things unnecessarily in FM. The slight detuning in these two Carriers was all that was needed to round out the sound, and so that is all I did. In other situations, all three Operators in the stack might be needed; and in this case the method of programming might be to work upwards from the bottom to the top of the stack. In this example, I knew from experience that the important area to concentrate on was the Operators acting as Modulators at the top of the two stacks (Ops 3 and 6). In fact, most of the editing was performed on these two Operators.
But what of the tone we used? Stacks can produce very complex blends of harmonics if used unwisely. By grouping together the Carrier and the Modulator above it as a single unit, with the same Ratio and a fixed Output Level from the Modulator, we are in effect creating a fixed tone-producing unit which replaces the more simple Carrier. A Carrier only produces sine waves, whereas our grouped pair of Operators produces a fixed spectrum of harmonics, each of which can interact with the Modulator at the top of the stack, producing a much more complex sound than would be possible with only a pair of Operators. By grouping two Operators, the number of possibilities is limited and, therefore, there is less to go wrong! It is also easier to understand a system if there are less component parts, and with FM synthesis, the less you have to worry about, the better.
The Level Scaling is always an important element in the synthesis of real world sounds. Synthetic sounds can generally get away with almost anything, because there is no reference point for the listener. This is definitely not the case when imitation is our goal. Level Scaling is really just a means of enabling us to make fine adjustments to the Output Level of particular Operators, at specific locations on the keyboard. Unless we already have the basic sound right, altering the Level Scaling is futile. As in all programming, one of the most important essentials is to have a clear idea of what you are trying to achieve. This is why our examples seem to develop so easily and simply - the difficult task of sorting out which of the many possibilities to choose has been removed and we can proceed directly to the required sound.
Over the coming months, I will try to make you concentrate more and more on the analysis of sounds, because this is the key to programming FM synthesizers. Without a good idea of what is required to construct a sound, you will not synthesize it! In the case of the basic piano described here, the elements are quite simple: the percussive envelope, the velocity sensitivity, and the basic tone. But what would you do to synthesize the 'plink' sound you really get at the top end of a piano? If that made you think then we really are making progress!
Finally, some fun ideas to try on your own. The 'SOSpiano' sound we have developed here can serve as a useful starting point for other sounds. You could try editing the Ratios in Operators 3 and 6 to create some very thin and buzzy piano-type sounds. Replacing the percussive envelope with the one used in last month's 'SOStrings' sound produces an organesque piano. Explore and enjoy!
The VoiceMaster DX21/27/100 editor for the Atari ST is available from Soundbits Software UK, (Contact Details).
A shareware version of Lawrence Wilkes' DXpert editor for the Atari is available for £7 from SOS Shareware, (Contact Details).