GENERATORS: In Triangle DPW, no longer initializing differentiator to zero

This is a minor step toward oscillators phase control (see #65).

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Renamed FillWithGenerator() helper

This has to be renamed to something more explicit: this funciton only
works with float (e.g. not vectorized) generators.
This is to be removed later when only vectorized generators are used.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SCRIPTS: Added a helpful function for differentiating signal

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MATHS: Cleaned a bit SIMD preprocessor directives

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MATHS: Added vectorized min(), max(), round() functions

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MIXER: Minor comment fix
VCA: Renamed function for filling Sample with a (float) generator

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Renamed tests

This makes them easier to organize - otherwise they would all have been
prefixed with "Synthesizer".

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Fixed comparison functions

Up to now the comparison operator returned false only when all samples
were false, which is not the expected behaviour.
This has revealed a few issues: #66, #67.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTH: Added a lmitier to the synthesizer output

For testing purpose, it is parameterizable.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Added a test for synthesizer output range

See #64.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Block size is no longer required to be a multiple of 4

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Fix paramters in order to pass test

In order to have instantaneous stop when triggering off, the decay ADSD
setting must be null, or we may have a tail.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MIXER: Fixed #64 (limited output range)

This is done by normalizing all oscillators output
(themselves are supposedly limited).

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MIXER: Removing temporary note off

This "note off" was required when no ADSD was done:
this is no longer useful.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Exposing various internal openmini utility to tests

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Not testing full frequency range due to #67

Since there is a huge DC output, the max fundamentalfor now is around C6.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Cleaner zero crossing detection

This new version acts like a generator, easily allowing
actual zero crossing indexes retrieval at almost no memory cost.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: Added a simple utility for rouding to any increment

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MODULATORS: Fixed ADSD issue with some null values

Fixed #66.
Although the "click" envelop is not perfect, it will be finely tuned later.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>