Multi-velocity sound design (w/ K-metering)

Have an urge to learn, or a calling to teach? Want to share some useful Youtube videos? Do it here!
Post Reply
RobC
Posts: 1832
Joined: 10 Mar 2018

27 Sep 2019

K-metering in a nutshell: get a calibration pink noise with a fixed RMS level, set your system to 85 dBC SPL.

Think a synth drum. I'd set "velocities" for hard, medium, and soft hit (that means, I'll work with 3 samples). The base sample would probably be leveled to the calibration pink noise. I wouldn't just leave it at 0 dB, -6 dB, -12 dB and call it a day, but design dynamics for each, uniquely, making use of the extra headroom. In theory, in case of the -6 dB sample for example, I'd increase my system out with +6 dB, so I hear the same volume as the base sample, but there will be 6 dB extra headroom.
After that, I'd design to taste, and let the dynamics spike up that extra headroom. Of course, in the end, I'd align (i.e. mix/set) the sample's volume to the calibration pink noise (which still has the extra 6 dB headroom). Finally, I'd reset the system to the original setting. The result would be that the -6 dB quieter "medium" synth drum hit would sound indeed half as loud as the base sample, but it would make use of the extra headroom. Thus it would have a nice little extra to it, compared to the original. Meanwhile it would also solve what I don't really like in case of plain volume or filtering based velocity changes - that the sample only gets quieter, and weak / flat sounding.

Thoughts? (Genius, or "genius", or 'congratulations for once again re-inventing the wheel!' ? Putting the silliness away, double checking with the community can't hurt, to prevent myself from doing something stupid.)

RobC
Posts: 1832
Joined: 10 Mar 2018

29 Sep 2019

Too much voodoo, or should I create some examples for once? : )

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

29 Sep 2019

I don't get the connection between monitor level and sample level.
First question, What level is your pink noise in the DAW? You didn't mention what level the pink noise was set in the DAW, only that it's a "fixed level" (which would be assumed, no?).
From there you mention setting the highest level sample to the pink noise level, which we still don't know. I'd suggest it doesn't matter what level the sample is, but I'd simply normalize it because you want full control over the playback level, right?
But lets back up - are we using NNXT for these three samples? If so, how are you smoothly transitioning between the samples with velocity? The first decision you'll need to make is how to map velocity to decibels, which is done with the Velocity to Level control (defaults to 60%).
If each sample is already set (recorded) to the different levels, you cannot use velocity to set the level, only to switch between them. But this means there will be a "crossfade" when you're halfway between the two sample, playing 50% of each sample at the same time - is that what you want? It won't sound like a natural transition, it will sound like a crossfade - and depending on the crossfade curve there will possibly be some uneven level changes. The test would be to play repeating notes with increasing velocity, and check the levels you get. There should be an even increase in levels.
Next issue: what velocity do you use to select the -6dB and -12dB sample? That will depend on which setting you use for Velocity to Level, and THAT will depending on what you want your overall dynamic range to be across the velocity range.

I just happen to have all of these values calculated for different Velocity to Level settings, allowing you to calibrate velocity to decibels for any selected samples. But first, you'll need to normalize each sample so it's default level is 0dBFS. This allows you to use velocity to set the final level, and to base the velocity on the original recorded level.
Here's how I do it:

Let's say you record three samples from a real snare drum. The loudest one hits at -8dBFS, the middle one at -15dBFS, and the softest at -21dBFS. How to I map these in the NNXT so they play back "correctly"? That partly depends on how you want to map the overall dynamics, and partly on their original relationship to each other. If we wanted to map velocity so that 127 results in an actual output level of -8dBFS, that's easy. Assuming I left the Velocity to Level at the default, I'd normalize the sample, load it into NNXT, and set it's level to hit at -8dBFS - Done! Now what about the -15dBFS sample, where do I map it's velocity switch? Next I'd consulate my chart for 60% setting (which I don't have access to on my laptop, so I'll make up a number for now), and let's say that a velocity of 88 gives me a level that is 7dB below 127 (15-8=7), and that means I need my second sample to play when velocity is 88 and below, thus making it play 7dB below the louder sample - exactly as they were originally played! I actually have the option to move the velocity switch level higher, I only need to ensure that "88" plays the middle sample. Assuming the lowest sample (-21dB, or 6dB below the middle sample) plays 6dB lower and assuming that value was related to a velocity of 73 (making up the number for now), I can switch samples anywhere between velocity 73 and 88 and 127 - let's choose a value between these for the actual switch, so the lowest sample plays from velocity 1-80, the middle sample from 81-110, and the highest level sample from 111-127. Now if you play a series of notes increasing in velocity, you will hear a smooth dynamic increase exactly as it would have been with the original. Of course in this example you will hear the samples switch because there are not enough samples to make a smooth transition. But if you increase the number of samples you can re-create the original dynamics simply by choosing the correct velocity switch values - and then, if you adjust the Velocity to Level knob, you can expand or contract (compress) the dynamic range evenly so that the pads or keys you're using give you a natural response, and the samples will all scale accordingly!

Or "too much voodoo"? ;)
Selig Audio, LLC

RobC
Posts: 1832
Joined: 10 Mar 2018

29 Sep 2019

selig wrote:
29 Sep 2019
I don't get the connection between monitor level and sample level.
First question, What level is your pink noise in the DAW? You didn't mention what level the pink noise was set in the DAW, only that it's a "fixed level" (which would be assumed, no?).
From there you mention setting the highest level sample to the pink noise level, which we still don't know. I'd suggest it doesn't matter what level the sample is, but I'd simply normalize it because you want full control over the playback level, right?
But lets back up - are we using NNXT for these three samples? If so, how are you smoothly transitioning between the samples with velocity? The first decision you'll need to make is how to map velocity to decibels, which is done with the Velocity to Level control (defaults to 60%).
If each sample is already set (recorded) to the different levels, you cannot use velocity to set the level, only to switch between them. But this means there will be a "crossfade" when you're halfway between the two sample, playing 50% of each sample at the same time - is that what you want? It won't sound like a natural transition, it will sound like a crossfade - and depending on the crossfade curve there will possibly be some uneven level changes. The test would be to play repeating notes with increasing velocity, and check the levels you get. There should be an even increase in levels.
Next issue: what velocity do you use to select the -6dB and -12dB sample? That will depend on which setting you use for Velocity to Level, and THAT will depending on what you want your overall dynamic range to be across the velocity range.

I just happen to have all of these values calculated for different Velocity to Level settings, allowing you to calibrate velocity to decibels for any selected samples. But first, you'll need to normalize each sample so it's default level is 0dBFS. This allows you to use velocity to set the final level, and to base the velocity on the original recorded level.
Here's how I do it:

Let's say you record three samples from a real snare drum. The loudest one hits at -8dBFS, the middle one at -15dBFS, and the softest at -21dBFS. How to I map these in the NNXT so they play back "correctly"? That partly depends on how you want to map the overall dynamics, and partly on their original relationship to each other. If we wanted to map velocity so that 127 results in an actual output level of -8dBFS, that's easy. Assuming I left the Velocity to Level at the default, I'd normalize the sample, load it into NNXT, and set it's level to hit at -8dBFS - Done! Now what about the -15dBFS sample, where do I map it's velocity switch? Next I'd consulate my chart for 60% setting (which I don't have access to on my laptop, so I'll make up a number for now), and let's say that a velocity of 88 gives me a level that is 7dB below 127 (15-8=7), and that means I need my second sample to play when velocity is 88 and below, thus making it play 7dB below the louder sample - exactly as they were originally played! I actually have the option to move the velocity switch level higher, I only need to ensure that "88" plays the middle sample. Assuming the lowest sample (-21dB, or 6dB below the middle sample) plays 6dB lower and assuming that value was related to a velocity of 73 (making up the number for now), I can switch samples anywhere between velocity 73 and 88 and 127 - let's choose a value between these for the actual switch, so the lowest sample plays from velocity 1-80, the middle sample from 81-110, and the highest level sample from 111-127. Now if you play a series of notes increasing in velocity, you will hear a smooth dynamic increase exactly as it would have been with the original. Of course in this example you will hear the samples switch because there are not enough samples to make a smooth transition. But if you increase the number of samples you can re-create the original dynamics simply by choosing the correct velocity switch values - and then, if you adjust the Velocity to Level knob, you can expand or contract (compress) the dynamic range evenly so that the pads or keys you're using give you a natural response, and the samples will all scale accordingly!

Or "too much voodoo"? ;)
K-metering suggests that for popular music genres, a pink noise is set to -14 dBFS (RMS). So a fader at 0 dB, would output the pink noise exactly at -14 dBFS (RMS). Then one calibrates their speakers to 85 dBC SPL.
That, in theory, leaves about 14 dB headroom.

I'd mix the loudest sample to the pink noise's level, so that any sample I create, is more or less heard equally loud. The pink noise is just a guide. So if I start setting the level of a kick drum while soloing the pink noise, then soloing the kick drum - going back and forth; then on their own, they will sound equally loud to me, even if they have completely different tones. If I also repeat this with a snare sample, then listen to the kick and the snare individually, I again hear the kick and the snare equally loud.

All in all, the peak of the loudest sample doesn't matter, cause I set it manually to a consistent level (where the pink noise helps a lot). The K-metering system by Bob Katz - to my understanding - has this purpose too, that songs have a more consistent loudness, and plenty headroom.

Remember that what I do, is way more simplified. At the moment, imagine just a really dumb sampler, that has 3 buttons for drum hits. Hard, medium, and soft. That's it.
3 Fixed velocity possibilities are not a lot, but they are multiple, and more importantly unique ones non the less.
I wouldn't want to crossfade because of all the phasing effects that we discussed in other topics.

Again, this would be rather simple, cause I just create a snare sound for example. Then I sculpt the dynamics for each hit individually, the way I explained. In the end, I would have 3 samples, where the quieter ones sound 6 dB and 12 dB quieter respectively - but making use of that extra 6 and 12 dB headroom (on top of the K-14). Let's not forget that momentary peaks won't exactly be heard 12 dB louder - that's why the soft sample could spike up to 0 dBFS, but we still could hear it 1/4th as loud as the hard sample.

P.S. Not sure, but I probably wouldn't create a 25% quieter sample, cause that ~ -2.5 dB is just too subtle of a difference. Even between -6 dB and -12 dB, the difference seems more clear.

This idea came from that I originally wanted to force simplicity on, and challenge myself, and make only like 0 dB, -2.5 dB, -6 dB, -12 dB, etc. fixed levels possible. But then I thought, if I already do that, then why not sculpt those levels properly?

I understand that if I create a sampler or rompler in the future, people would want probably that 0-127 velocity range. For that, I'd primarily just make samples instantly switch when they reach the next sample's level. OR maybe enable the possibility of crossfaded velocity. So pretty much the way you described. But like I said, this is really simplified to 3 fixed hit levels and uniquely sculpting them.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 6 guests