
Main Page |
Namespaces |
Classes |
Compounds |
Files |
Compound Members |
Related
SynthCore Namespace ReferenceThe main part of the synth framework.
More...
Detailed Description
The main part of the synth framework.
The design is centered around the Synth class. This class is a container for:
- A number (determined by the polyphony) of SynthVoices, which again host various Modules.
- A number of pre-processing Modules.
A simple synth design would be:
A primary SynthVoice (AKA firstVoice) consisting of: A Sampler (A voltage controlled oscillator component) connected to an envelope, which again would be connected to an filter (controlled by another envelope).
This SynthVoice would be duplicated to the desired number of polyphonic voices. Notice that the duplication is not entirely trivial since the Modules need to share ressources (IE only the Sampler in firstVoice would contain the actual wavedata).
The pre-processing modules in the Synth unit would consist of a 'Polyphony' Module, mixing together the SynthVoice, and typically an reverb or delay effect (as for now, the tube Module would be a good substitute).
The following rules must be followed if new Modules are added.
- All modules must be derived from the Module base class.
- They must implement methods for serializing themselves: IE getXML() and loadXML()
- You must use the Input and Output class for connecting to other Modules.
- They must implement a second static 'constructor', taking a SynthVoice as argument! Notice that I cannot enforce this requirement through a purely virtual method, since there is no such thing as a virtual static class in C++. Example: static Module * newInstance(SynthVoice * S) { return new BiQuad(S); }
- They must register themselves by having something like this called at run-time: moduleRegistry::getInstance()->add(typeid(BiQuad).name(),BiQuad::newInstance);
Typedef Documentation
| typedef std::list< Module * > SynthCore::ModuleMap
|
|
|
|
- Todo:
-
Why do I have to define these two times: Why can't the compiler use the definitions in "Synth.h"? I dont get it.
Definition at line 93 of file Synth.h. |
Syntopia Project. Visit the web page,
or the SourceForge page.
Docs made by Doxygen.
Email: Mikael Christensen
|