PDA

View Full Version : More about volume/velocity modulation in samplers (+ focus on K2 piano lib)


Laurent
03-21-2006, 10:55 AM
Ok, this gonna be a long post... (don't worry, it's gararanted 100% free of sympathetic resonance : only basic stuff)

Where everything begins :
Who have ever experienced some kind of deception when moving their favorite piano library from their native giga format to kontakt ?
You know, not the same touch and feel ?

The explanation :
SOS has published an interesting study in their second DVD about midi velocity sampling accuracy. You know what ? samplers behave VERY unevenly. Bottom line is : only EXS provide the most natural response (ie linear decibel curve in the 40dB range) needed to reproduce acurate acoustic performance (according SOS).

The biggest discrepancies are in the lower velocities.
(*table removed* see SOS study for more information)


Focus on GS and Kontakt :
- Default GS curve (H dyn. non linear) is slightly convex and provide only 30dB total dynamic.
- Default Kontakt curve is very concave and very steep in the lowest velocities (drop to -85dB for velocity=5, assuming velocity 127 is 0dB)

So, it's quite obvious know why my favorites pianos (sampletekk...) don't behave the same in Giga and Kontakt.
This discrepancy can partialy be corrected by reducing the percentage of global volume modulation in Kontakt, but at the expense of over-compressing the f-fff zone (which is already compressed on some sampletekk patches, you know, the ones where top layers are stacked at the very top)


The cure is a curve :

Yes ! A custom curve to load in Kontakt2 volume/velocity modulator : download here >> CURVE (http://www.jetlagmusic.com/velocity/CorrectVelo.nkp) <<

Store it in : preset/tables/velocity curves

Load it here :

http://www.jetlagmusic.com/velocity/modulator.png


This curve works very well with all sampletekk piano : it gives an almost linear volume/velocity response. It may work also very well with other libraries, translated from Giga to Kontakt.

Look at the result with TBO (Db x velocity) :

http://www.jetlagmusic.com/velocity/TBOresult.png

TBO 35 dB linear response in achieved by loading the curve and setting the global modulation slider at 92%. You can play with this slider to adjust the global dynamic you want, still keeping the linear behavior.
85% = 30dB dynamic
92% = 35dB dynamic

Oh, yeah, by the way, VI like Ivory provide also such a perfect linear Db response to velocity you can adjust with the dynamic range knob... ;)


Well, using this curve with sampletekk pianos (and I'm sure other, I had some good result with vintaudio ones for instance), you can enjoy a more accurate timbre x volume relationship.


Some additionnal thought about tweaking velocity :

Keyboard velocity :
Starting with a correct timbre x volume behavior is a first step. Don't forget you have also to adjust your keyboard velocity response, which is a totally different thing. If you have already done that before applying the correction I have described, you may have to make some slight adjustment.

Samples mapping :
Still working on sampletekk piano, with my correction curve, I have the feeling that patches where layers are evently spread are the most accurate from a timbre/volume accuracy point of view. Assuming you can tweak your keyboard response to control well this mapping, then it's the more true to the real thing.
(remember : this deserve a very hard keyboard strengh setting ! TBO latest layers should only be reached when playing one strong note with the strongest finger, with no chance to trigger it when playing a 3 notes chord for instance)
That's not means that other mappings are without interest ! Stacking highest layers at the very top have some good effect, like making the piano warmer while compressing the highest velocities (and then making the perceived timbre evolution stronger in this zone). I encourage everybody to make their own mapping, you can really tweak you piano from an old shy classical moonlight serenade piano to a ragtime-able killer.


Well, I hope this help,
Enjoy and share your comments !
:|:

Len
03-21-2006, 11:57 AM
Holy cow, this is brilliant Laurent - I just spent some time last night on getting the velocity right for my playing and this will certainly help me further.

Thanks for taking the time!!

Len

Pingu
03-21-2006, 11:58 AM
Why would you want a linear reponse of dB to velocity? There certainly isn't one on a real piano. Nor would this correspond to a linear volume/velocity relationship, since volume has little to do with level, except that they generally go in the same direction (i.e. an increase of level usually corresponds to an increase of perceived volume)

A generalisation often used is that an increase of 6dB corresponds to a doubling of volume, but this is extremely rough and ready. It also varies massively with frequency. Perceived loudness also varies with frequency (have a look at these loudness curves http://hyperphysics.phy-astr.gsu.edu/HBASE/sound/eqloud.html ). According to these curves a sound at 50Hz and 60dB is only perceived as being as loud as a 1000Hz at 20dB. So why would you want all your 60dB samples assigned to the same velocity?

I think a great way to organise piano samples would be to use one of those Yamaha boxes that clips underneath a normal piano keyboard and uses infrared to detect the velocity with which notes are pressed. You could record the velocity of key depression next to the name of each sample, and then assign that sample to a similar velocity in the soft-sampler. At least this would ensure behaviour close to the real piano.

Laurent
03-21-2006, 01:33 PM
This curve has absolutely no effect on relative loudness across keyboard or frequency spectrum. The TBO output graph exemple is made with middle C note.

Please note : It's only a trick to rectify the velocity modulation bias due to giga to kontakt conversion.

The "linear" reference is more a sampler thing to facilitate the mapping of normalized samples. It's not directly correlated to actual piano response.

Beside theory, my observation is that my sampletekk pianos react better with this tweak, which is the only important thing to me... :|:

Pingu
03-21-2006, 02:11 PM
OK, sorry, I misread your original post.

Sr_Velasco
03-21-2006, 06:57 PM
Hi Laurent and thank you so much for all this info. I do appreciate your support.

Cheers!

Ernest
03-21-2006, 09:44 PM
Laurent did you notice the (c) SOS Publications Ltd. 2005. All Rights Reserved on the back of this CD Rom ??? You need to obtain permission before reprinting any portion of an article.

FYI I wrote that article.


Ernest Cholakis
Numerical Sound
www.numericalsound.com

Laurent
03-22-2006, 02:18 AM
Laurent did you notice the (c) SOS Publications Ltd. 2005. All Rights Reserved on the back of this CD Rom ??? You need to obtain permission before reprinting any portion of an article.

FYI I wrote that article.


Ernest Cholakis
Numerical Sound
www.numericalsound.com (http://www.numericalsound.com)
I apologize for that. Only the sampler dB comparison table was taken from SOS.
It was only illustrative for my point : I have removed it.

BTW : great article.

Len
03-22-2006, 06:27 AM
I apologize for that. Only the sampler dB comparison table was taken from SOS.
It was only illustrative for my point : I have removed it.

BTW : great article.

Oh come now, that is no different from a newspaper printing a graph showing price movements and attributing its source. I would be extremely surprised if SOS mag, of all people, got angry about it (so long as you mentioned it was from SOS). They are nice folks.

And thanks again for this - I tried it last night and it seems to work well. Only question is, I can't really tell the difference between this velocity curve and the one you suggested previously by using the Script Editor/Utilities/Comp-Exp route?

Cheers

Len

kotori
03-22-2006, 07:02 AM
Hi Laurent,
thanks for all your work on this.
Right now I'm a little bit confused though, since Worra just released an update of TBO for K2.
Would it still be benefical to use your volume rescaling with the updated TBO do you think?

Bruce A. Richardson
03-22-2006, 12:48 PM
I would be extremely surprised if SOS mag, of all people, got angry about it (so long as you mentioned it was from SOS). They are nice folks.

Nice folks or not, the article belongs to Mr. Cholakis. These things happen, no on seems angry. Mr. Cholakis just wishes to (correctly) point out that we have responsibilities when dealing with intellectual property.

Regarding the post, yes, samplers do treat velocity quite differently according to what one would expect.

The first person who really banged this gong was Warren Trachtman. He did probably some of the same research that I'm assuming Ernest did, mapping simple test tones into the samplers and feeding them a progression of MIDI notes to test the response.

The thing to keep in mind is that all developers have some "host" platform on which they develop, and when their work is translated to other platforms, it is desirable to know how these things interact, so that you get the best possible translation.

It would be interesting to know if Garth has built any of this into the Chicken Systems product. It seems that this would be a good thing.

Laurent
03-22-2006, 04:41 PM
And thanks again for this - I tried it last night and it seems to work well. Only question is, I can't really tell the difference between this velocity curve and the one you suggested previously by using the Script Editor/Utilities/Comp-Exp route?
Well it's 2 differents complementary things :
- the script you are talking about is velocity translation curve, to adapt your keyboard response to the instrument. (eg keyboard send 80 => sampler receive 75)
- The modulation curve described in this post is used to adapt the way Kontakt manage volume/velocity modulation. Same samples have know different relative output level setting. This modify instrument dynamic (difference between lowest and highest output volume) and the timbre response.

Laurent
03-23-2006, 07:42 AM
Hi Laurent,
thanks for all your work on this.
Right now I'm a little bit confused though, since Worra just released an update of TBO for K2.
Would it still be benefical to use your volume rescaling with the updated TBO do you think?
Yes it's not related.
Also I encourage to try this rescaling for every library developed under GS, and translated to Kontakt.

Len
03-23-2006, 10:24 AM
Well it's 2 differents complementary things :
- the script you are talking about is velocity translation curve, to adapt your keyboard response to the instrument. (eg keyboard send 80 => sampler receive 75)
- The modulation curve described in this post is used to adapt the way Kontakt manage volume/velocity modulation. Same samples have know different relative output level setting. This modify instrument dynamic (difference between lowest and highest output volume) and the timbre response.

Thanks for clarifying Laurent - you're the best!! I think I now have an optimal set up thanks to you. I (and others) really appreciate your help.

Cheers

Len

vic_france
03-23-2006, 11:35 AM
Thanks enormously for this, Laurent!
Since the updated presets from Worra, and this K2 velocity correction, I feel like I'm now discovering TBO for the very first time!.. always a good sign when I find I can't stop playing! :)

vic_france
03-23-2006, 12:04 PM
Actually, this brings up two questions...
2) How to know whether or not a Kontakt preset is in fact a conversion from Giga (and therefore prone to these velocity discrepancies), and
1) Does this happen in K1 as well (e.g. are there any pianos out there for the dedicated Kontakt Player, that were converted from Giga?), or just K2 (and, unfortunately, if so, the Velocity tables are not backward compatible, so this great preset could not be used in a dedicated Kontakt Player)?
Am I correct in thinking that all the SampleTekk piano libraries are Giga conversions?

Laurent
03-23-2006, 05:50 PM
Hi Vic, I'm happy you like it !

Regarding your questions, here is some answers :

- I think K1 and K2 behave the same regarding this issue (well, it's empirical, but libraries "sound" the same)

- I have edited this curve manually in K2. K1 has the same modulation curve editor, but the curve created in K2 doesn't load in K1. However "K1 only" users could probably recreate the same curve.

- To my knowledge, Sampletekk piano has been created under GS. I have tested my curve on all of them, and it's working great (assuming you also correct some groups volume discrepancies, but I assume it's precisely what worra is doing right know)

- Vintaudio pianos also has been translated from GS : this tuning works great on them too.

- Pianos coming with a Kontakt or kompakt player has been developped to work on kontakt, for them the curve is useless (eg Virtual grand, Galaxy)

- Post Piano : Well, it's more complicated, I think they have been originally developed under GS, but kontakt patches has been extensively edited over time, and the result is not obvious (depends the patch you are using).

vic_france
03-23-2006, 06:28 PM
So it looks like I'll try your velocity curve on most of my K2 piano libraries.. a bit like having a tie (une cravate) and seeing which jacket it goes best with! :D

Laurent
03-25-2006, 05:58 AM
As you said : "always a good sign when I find I can't stop playing!"

This is the final assessment to know if a piano is well cooked...

It's also how I do myself, trying every kind of salt and spices, to get the right taste (or "good looking", your metaphor was more the visual type). :D

obiwan
03-26-2006, 07:17 PM
If I understand this thread correctly, you are talking about the relative 'loudness' that a given sample plays at a given velocity?

In other words, because the piano samples have been normalised in order to record them at the best possible quality, they utilise the full bit-depth that they have been recorded at, therefore their relative volume needs to be adjusted (or reset) by the sampler, to what it was originally when first recorded?

If I'm with you so far, I'm assuming you don't mean that different samplers interpret velocity differently. - I've always thought that if I play a note on my MIDI keyboard at a velocity value of say '100', this velocity value of '100' gets sent via MIDI to my sampler (in my case HALion 2), and thus triggers the sample assigned to the velocity value of '100' for that note. - This should be the same for ALL samplers and ALL MIDI keyboards irrespective of which model/make etc.

If the above is true, I can't see how any of this would change the 'timbre' of the instrument. - On all samplers - HALion, Giga, EXS24, Kontakt etc.. providing the program being used has been translated between each format, i.e. exactly the same sample mappings for each key/velocity range - the same samples should always be triggered irrespective of the sampler.

The only thing that would change the 'perceived' change in timbre is the different decibel levels that samples are set to, not the fact that different samples are being triggered. - I am assuming that this is creating the difference in sound using the same library between each sampling format.

If this is the case, I've always wondered how Piano sample library makers determine which samples get assigned to which velocities. If all the different sampling formats have a different velocity/volume ratio, it must make this process incredibly difficult. - Surely their is a more scientific way to do it, rather than trial and error. There should be a way of some how measuring the velocity/volume relationship of the piano being sampled, so when it is turned into a piano library, this relationship can be recreated exactly. - Maybe by providing a velocity/volume graph or something with the library, so it can be set accurately for each sampler/keyboard combination.

Olivier
03-26-2006, 07:45 PM
Ok, this gonna be a long post... (don't worry, it's gararanted 100% free of sympathetic resonance : only basic stuff)



?????????

:(

Laurent
03-27-2006, 02:50 AM
?????????

:(
Come on, it's a joke :D
It's just to relax those who are afraid of frenchie posts.
:)

Laurent
03-27-2006, 02:52 AM
The only thing that would change the 'perceived' change in timbre is the different decibel levels that samples are set to, not the fact that different samples are being triggered.
Yes exactly. That's what I mean by "timbre" change. Just like compression alter perceived timbre.

Sr_Velasco
03-27-2006, 08:14 AM
...this relationship can be recreated exactly. - Maybe by providing a velocity/volume graph or something with the library, so it can be set accurately for each sampler/keyboard combination.

Yes, I completely agree with you. One can spend a lot of time tweaking patches for getting a decent volume/velocity balance.

obiwan
03-27-2006, 04:33 PM
The other thing that would also help in terms of recreating the playability/timbre of the real piano as near as possible, would be knowing what kind of force was used to strike the keys in the first place. - For instance, if I were to trigger a piano sample at a velocity of say '100', I don't actually know whether I am striking my MIDI keyboard with the same force as was used to record the sample in the first place.

- It would be good if keyboard manufactures supplied some kind of velocity/force chart that gave buyers an idea of how hard keys have to be struck, to reach certain velocity points. (I know velocity curves would change this - but they only alter the bias between 0 and 127, not the force needed to strike maximum velocity). This way, matching the force struck on the original piano with the force needed on a MIDI keyboard would provide a way to map samples exactly to a particular keyboard, so every keyboard/sampler combination should give uniform results.

I suspect however, that keyboard manufacturers would never agree to this, as is would show up the inadequacies of certain 'hammer action' keyboard actions. - I have no data to backup my theory, but I'm sure that if I struck my MIDI keyboard with maximum velocity (127), this would only be the equivalent of striking a real piano at half or possible three-quarters of the full force that could be achieved. - This would leave us with a problem of mapping hard-hit sampled notes (in the case of level 31 on TBO), to a keyboard action that isn't capable of registering notes that hard.