... And in some places where a library uses signed types, assert that
the reported number is not negative.
What led me to this, is that there are many places where a size_t value for
an allocation is the product of a number of channels and some other number.
... This makes much code agnostic about how other things (functions and
arguments) are typed.
Many of these neeed to become size_t instead of sampleCount.
Bug 958 is due to rounding that is not visible to the user.
By providing one extra decimal place to the New Peak Amplitude (dB)
the user can see if they have exceeded 0 dB by a small amount.
When using FloatingPointValidator and calculating the min / max
range as floats or doubles, the validated control value has been
rounded to 'n' decimal places, but the min / max range have not
been rounded. It is therefore a matter of chance whether the
rounded control value, when at the extreme limit of the range,
is within the higher precision range or not.
Calculate with doubles rather than float.
Simplify calculation of max/min peak.
Slight hack to work around limitation in FloatingPointValidator.
Allow 'close equality' in CheckClip().
Tested on Debian 8 and Release build on Ubuntu 14.10.
Non-linear effects now process tracks before mixing.
This will be slower when multiple tracks are selected
but the preview should now match the applied effect.
SetLinearEffectFlag(true) allows linear effects to
preview more quickly when multiple tracks selected, by
pre-mixing selected tracks.
Simple generators like Tone and Noise may be marked as
'linear' so that they only preview a few seconds.
Generators that vary over time (such as Chirp) must use
the full duration that is set. As this currently
requires calculating the full duration, preview for
'non-linear' generators are not limited to the preview
length.
Fix for a rounding bug that causes the OK button to be sometimes greyed out. The bug may be Linux only (not tested on other platforms) but should not adversely affect other OS's.
This brings the builtin, LV2, and VAMP effects inline with the
Audio Units, LADSPA, and VST effects. All effects now share
a common UI.
This gives all effects (though not implemented for all):
User and factory preset capability
Preset import/export capability
Shared or private configuration options
Builtin effects can now be migrated to RTP, depending on algorithm.
LV2 effects now support graphical interfaces if the plugin supplies one.
Nyquist prompt enhanced to provide some features of the Nyquist Workbench.
It may not look like it, but this was a LOT of work, so trust me, there
WILL be problems and everything effect related should be suspect. Keep
a sharp eye (or two) open.