You are here

Qtractor Normalize

Hi Rui, Having worked with a Pianist on a few songs, that plays in the order of 1500 notes per track. I would like your thoughts on changes to the Midi Normalize function. I have written (crudely) a Python tool to normalize the track with less edit steps.

The program steps are: User sets the desired Max velocity point. Say 95 (95 / 127 possible values). User sets the compression ratio, say 2:1 ratio.

The program: Gets Max Velocity from the track. Apples the formula newVelocity = (velocity / compression) + gain.

I have attached a hacked down version of my python code.

I thank you, for all the great work you have put into qTractor :-)

Regards Dave M. from New Zealand

AttachmentSize
Plain text icon Normalize_Example.txt1.13 KB
Forums: 
rncbc's picture

hi, thanks for your contribution

you know there's already a tool in qtractor for the very same: MIDI Clip > Tools > Normalize

if yes, than what do you think it is lacking or wrong if it is worse than your solution?

cheers

Hi Rui,

I do use your MIDI Clip > Tools > Normalize (many times), however it does not produce the same result.

Your Normalize tool either, sets the notes to an absolute value or a percentage of the original value. When both options are set its seems to do: new_Velocity = (absolute_value * (percentage/100) ).

The net result is different to: new_Velocity = (original_Velocity / compression_ratio) + re_gain.

This is not a criticism, just an observation and discussion.

Regards Dave M.

rncbc's picture

the correct formula is:

normalized_value = value * (param_percent * param_value) / (100 * max_value)

where:
- param_percent, param_value are the respective parameter values entered in the dialog (default 100 and 128 resp. for 7bit note velocities).
- max_value is the maximum value (note velocity) of the whole set (selection) to which the normalization is to apply.

Hi Rui, I took your formula and built an Python script comparing the velocity data against Qtractors normalizer and my alternative normalizer.

What is quickly obvious is Qtractor does not compress the data range, just re-scales velocity data.

My alternative normalizer does compress and normalizes in on step. This in my opinion is more musically desirable. When you find a spare minute, have a play with the attached python script. Please check my maths :-)

PS I had to change the script to a .txt to upload it :-)

Thanks for your time. I have used Rosegarden and Muse. Qtractor is my favourite :-)

Regards Dave M.

File attachments: 

Add new comment