hi Derek,
I'm not experienced piano player and so here's only my hearing and a little knowledge
First: even less than 30MB piano voice can sound perfect! But it will not sound perfect in all circumstances. That is, depending on player's skill (and his hearing), it can happen that it will sound perfect all the time or only at certain conditions.. or almost never.
Let me try to explain what I mean...
So we have a perfect C sample, but it can only represent certain key dynamic. There exist eight of them (see
Wiki) and so to have a perfect C, we would need eight samples for single note. The thing is, key dynamic (=velocity in keyboard language) is not only about loudness: on real piano, C note sounds differently at different velocities. So, eight samples per note, multiplied by 88 keys (or at least 76) is.. a lot.
And so we make first compromise: less samples per note... how many is still perfect enough? The more we take away, the less perfect it will be. My personal opinion is, four samples per note (=four layers in voice) is good enough even for piano lover -but it's not
perfect anymore.
There one thing in this regard that I need to mention... In YEM we can make fake layers, which imitate lower velocity of orginal tone. For example, we can imitate mp dynamic if we have mf dynamic sample. Because YEM is very limited in that, this is only usable for quieter tones. Why am I telling that? Because that way we can add 5th layer without increasing voice size.
Ok, keyboard has 76 notes.. but we really don't need separate sample for each note. Keyboard electronics is quite powerful and can easily transpose a note (in real time) up/down by one octave and so theoretically, we only need a single note per octave. But something tells us, that this wouldn't sound
right... and indeed, it doesn't -at least not for piano (and some other multi-tone instruments).
The thing is, on real piano, two notes (C and G for example) don't only have different pitch.. they also have different sound (because different strings are used). However, if we transpose C to G on keyboard, then G will have the same characteristics (sound) as C, only pitch will differ.
And so we need to make compromise again: to what extent will we transpose notes.. or put differently, how many samples per octave is good enough. Again, the less samples we use, the less perfect piano sound will be.
And here "depending on circumstances" comes in when we decide. How do we usually play piano? In most cases, no matter how many keys we hit at once, the minimal number of semitones between two neighboring keys, is three. That is, if we have four notes per octave and play a chord, then each note will actually sound differently (as on real piano). Ok, for Beethoven fans (playing some complicated arpeggios) three semitones difference is probably too much, but it's sufficient for average piano lover.
So far two
perfect quality sacrifices have been made: number of layers and number of samples per octave -both of these greatly influence the total size of the voice. They decide if voice size will be 30MB or 300+MB.
The final optimizing is determining the length of samples. I didn't measure, but I guess that on real piano, C0 note can sound up to one minute (or even more). That's a luxury we can't afford on our keyboard, because each second increases sample size by 172kbytes. And honestly, we don't need such lengths at actual playing.
Summary: even if samples from the same package are used, the less of them we use in voice (to make voice size smaller), the less perfect voice will be. The only thing that we need to answer is, at what minimum of samples the voice is good enough.
Darn... I need to learn how to shorten my posts...
Bogdan