Normalized Samples

Moderators: MattKingUSA, khz, muldjord, deva

Post Reply
User avatar
w_line
Established Member
Posts: 9
Joined: Sun Jan 20, 2019 12:13 am

Normalized Samples

Post by w_line »

So I have been experimenting with building a kit from the Analogue Drums "The Boxer" kit. It is designed for Kontakt - and uses 1-6 velocity groups per instrument with 6 repeat hits/round robins per velocity layer. The new sample selection features in DG version 0.9.17 enable stepping through the round robins. Getting past that hurdle landed me at another. All the samples are normalized. After looking into it, it seems that Kontakt can set the playback volume of each hit based on the velocity.

As far as I know this is not a feature currently implemented in DrumGizmo - correct?

Want to mention that I know I am using both the samples and DG in ways that they weren't intended. I can happily use the available DG kits - and am not dead-set on forcing this Kontakt kit to work, just experimenting. I DO think it could be cool to get a bunch of community mappings for commercial kits built - even if they do miss out on some of the aspects that make kits built specifically for DG awesome/hardcore/intimidating.

Anyway, assuming that handling normalized samples isn't already a DG feature - couple questions...

Is it something that may potentially be added as a feature? Definitely understand if that is not a route that developers want to go.

Is there some clever way that others would handle this? Manually de-normalizing the wavs doesn't seem like it would be very effective - since the normalization really just seems like an artifact of the choice to use few velocity groups with round-robins. If the velocity groups were de-normalized you would have a pretty big jump in volume baked in from group to group.

Perhaps some clever DAW automation to have the MIDI velocity value for hits on a given MIDI note set the volume of the bus/channel for that particular DG instrument?

Maybe I just stop trying to shove a square peg in a round hole? :wink:
User avatar
deva
Established Member
Posts: 285
Joined: Sun Oct 23, 2016 10:15 am
Has thanked: 3 times
Been thanked: 31 times
Contact:

Re: Normalized Samples

Post by deva »

Setting volume modifier based on velocity could relatively easily be introduced as a feature.
I'll add it to the backlog and we can discuss how we could implement it when we get to it :-)
chaot4
Established Member
Posts: 61
Joined: Sat Apr 16, 2016 9:59 am
Been thanked: 1 time

Re: Normalized Samples

Post by chaot4 »

I agree with deva and just quickly want to write down my thoughts for them to be available when we again think about this.

It seems like the simplest way to add this to DG would be to have some "normalized=true/false" value in the XML of the drumkit. The current kits would of course be "normalized=false". If "normalized=true", then when playing a sample in the engine we would check its actual power value and then multiply the sample values according to that.

I guess that this is also what you had in mind, deva? This indeed would be quite simple to implement, and it wouldn't hurt DG at all to have this. It's just the question of urgency which is debatable I'd say.
User avatar
w_line
Established Member
Posts: 9
Joined: Sun Jan 20, 2019 12:13 am

Re: Normalized Samples

Post by w_line »

Awesome!
Thanks for the replies and considering adding a feature to support kits using normalized samples! Ya'll are awesome.
chaot4
Established Member
Posts: 61
Joined: Sat Apr 16, 2016 9:59 am
Been thanked: 1 time

Re: Normalized Samples

Post by chaot4 »

Hey :)

This feature made it into the 0.9.18 release! Check how to use it here (under "Sample Normalization"): https://drumgizmo.org/wiki/doku.php?id= ... zmo-0.9.18

It would be great if you could test it and give constructive feedback. Have fun!
User avatar
w_line
Established Member
Posts: 9
Joined: Sun Jan 20, 2019 12:13 am

Re: Normalized Samples

Post by w_line »

You all are the best! Will definitely test this out and report back!
corrados
Established Member
Posts: 39
Joined: Sat Jan 02, 2021 4:01 pm

Re: Normalized Samples

Post by corrados »

I think I have not fully understand the concept of the normalization feature. If I have just one sample for one instrument, like the snare, defined in the XML, if the normalization feature is not used, I get the same volume for all my MIDI note velocity, i.e., no matter how hard I hit the pad, the snare sound always has the same volume. When I now use the normalized=true feature for that single sample, I now can hear different volumes of the same snare waveform if I hit the pad with different velocity. So it seems without the normlized feature, the snare sample is played as is and with the normalization, the MIDI velocity parameter is used as an amplification factor for the waveform. Is that correct?

Now I have a question. If I now use two samples for the snare (a very loud and a very low level sample e.g.), then in case normalization is not used, Drumgizmo selects either one of the samples depending on the MIDI velocity parameter. So we get a noticable jump im volume depending on what sample is selected. But what happens if normalized=true for both samples? Is then the low level snare sample amplified by a factor until the MIDI velocity reaches the threshold of the loud sample and from that point the loud sample is played but also amplified depending on the corresponding MIDI velocity parameter? If that is the case, we would get a much smoother loudness of the final snare waveform which is played depending on the MIDI velocity parameter. Is my understanding correct?
User avatar
deva
Established Member
Posts: 285
Joined: Sun Oct 23, 2016 10:15 am
Has thanked: 3 times
Been thanked: 31 times
Contact:

Re: Normalized Samples

Post by deva »

corrados wrote: Sun Feb 07, 2021 8:15 pm I think I have not fully understand the concept of the normalization feature. If I have just one sample for one instrument, like the snare, defined in the XML, if the normalization feature is not used, I get the same volume for all my MIDI note velocity, i.e., no matter how hard I hit the pad, the snare sound always has the same volume. When I now use the normalized=true feature for that single sample, I now can hear different volumes of the same snare waveform if I hit the pad with different velocity. So it seems without the normlized feature, the snare sample is played as is and with the normalization, the MIDI velocity parameter is used as an amplification factor for the waveform. Is that correct?
That is exactly right.
corrados wrote: Sun Feb 07, 2021 8:15 pm Now I have a question. If I now use two samples for the snare (a very loud and a very low level sample e.g.), then in case normalization is not used, Drumgizmo selects either one of the samples depending on the MIDI velocity parameter. So we get a noticable jump im volume depending on what sample is selected. But what happens if normalized=true for both samples? Is then the low level snare sample amplified by a factor until the MIDI velocity reaches the threshold of the loud sample and from that point the loud sample is played but also amplified depending on the corresponding MIDI velocity parameter? If that is the case, we would get a much smoother loudness of the final snare waveform which is played depending on the MIDI velocity parameter. Is my understanding correct?
If normalized is true the sample is being scaled according to velocity. The samples in the set should then all have the same volume in the file as well - or in other words, they should be normalized ;)
The normalized feature is a way to indicate to the engine that the samples themselves do not contain the "power" information in the form of audio levels, so the engine instead takes over that part of the job by applying the velocity as a volume scalar.

I think I understand what you are suggesting, but this is not the way it currently works, and I think it needs a lot of consideration for it to make sense in a generalized way...
corrados
Established Member
Posts: 39
Joined: Sat Jan 02, 2021 4:01 pm

Re: Normalized Samples

Post by corrados »

I think it needs a lot of consideration for it to make sense in a generalized way...
I thought this is just an additional step after the sample selection. If a decision for a specific sample was made, you simply adjust the power of the sample by a factor which is derived from the difference between the MIDI velocity and the power specified in the XML.
Post Reply