-
Notifications
You must be signed in to change notification settings - Fork 23
Description
It would be great to be able to convert Kontakt's velocity volume modulators to SFZ. For velocity, SFZ uses the opcode amp_velcurve_N for this.
In Kontakt, the velocity volume modulator ranges from 0-100% for X (the modulation source, e.g. velocity) as well as for Y (the modulation target, e.g. Amplifier's volume) in the UI. I'll assume it's being stored as normalized float internally (but I have no idea if that's true, it's just very common).
The formular for converting Kontakt's normalized float volume values to dB is really just the basic 60*log10(y) with y being the normalized float representing the value evaluated at x=velocity.
Since SFZ's opcode "amp_velcurve_N" uses linear scale values, we can simply convert Kontat's normalized float volume values using y^3 (again, y is a normalized float here). Or, if you want a more generalized approach by converting every source format's volume curve to dB first, then you could use 60*log10(y) to convert Kontakt's raw value to dB and then use 10^(dB/20) to convert any dB value to SFZ's linear scale value.