BUILD: Moved tests specific fix into tests specific part

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
BUILD: Newer Cmake versions now allow to append compile flags

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MISC: removing a few useless assignment operators

Some classes cannot have any assignment operators - this is now explicit.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
BUILD: Fixed a known issue when building WIN32 applications

The linker flag /SUBSYSTEM:WINDOWS needs to be set when building a win32
application. This is done by adding a parameter to the "add_executable"
command.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
GENERATORS: Minor syntax change in triangle generator

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
GENERATORS: Triangle generator now fit for inheritance

This generator may be derived from, but it needs:
- a virtual destructor
- some of its members no longer being private but only protected

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
GENERATORS: Added a new signal generator, "Sawtooth"

Based on Triangle as it rely on the same DPW algorithm.
Added its tests too.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MISC: Added the new available waveform "Sawtooth"

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
VCO: Changed the way VCO manages their generator

Generator are now handled at VCO level (they have access to the factory).
Moreover, they manage their own volume instead of it being done
in the mixer.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MIXER: Added an utilitary VCOIterator class

This allows easier browsing through all managed VCOs.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
MIXER: Now doing an "actual" note on/off management

This is very crude for now - to be refined later.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Added volume and waveform parameters interface

Getters have been added.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Added a parameter "metadata" class

This is a descriptor class for parameters.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Added a parameter manager

It is responsible for parameters assignation and retrieval.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Added a list of all available parameters

This is the reference that can be used by the user.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: The synthesizer now derives from the parameter manager

This is done in order to make the synthesizer a parameter manager as well,
and the proper dispatch of parameters where they are needed.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
TESTS: In the synthesizer tests, now using random block sizes.

This prevents a too smart compiler to make unwanted optimizations
based on block size guess.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
VCO: VCO are now conscious of the waveform they're carrying

This is a temporary fix in order to prevent endless deletion
and reinstantiation of the generators they're carrying.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
SYNTHESIZER: Fixed default volume value of Osc1

Since we want to have some kind of soudn by default,
the volume of the first oscillator is set to "1" at startup.

Signed-off-by: Gama <misept.dieseneuf@gmail.com>
GENERATORS: Updated the factory

The factory now returns pointers to newly created generators.
Moreover it is now able to create the new Sawtooth waveform.

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