#include <iso_synth.h>
Collaboration diagram for iso::synth::Synth:
Public Member Functions | ||||
void | saveWaveTables (const String &pFileName) throw (SynthException) | |||
save wavetables to file | ||||
void | readWaveTables (const String &pFileName) throw (SynthException) | |||
save wavetables to file | ||||
unsigned int | defaultFrameCount () const | |||
get default framecount | ||||
unsigned int | defaultChannelCount () const | |||
get default channel count | ||||
sample | defaultRate () const | |||
get default rate | ||||
unsigned int | defaultOverlap () const | |||
get default overlap | ||||
long | time () | |||
returns elpased synth time in microseconds | ||||
bool | checkPatch (const String &pName) const | |||
check if patch with corresponding name exists | ||||
Patch * | patch (const String &pName) throw (SynthException) | |||
returns patch with corresponding name | ||||
bool | checkUnit (const String &pName) const | |||
check if unit with corresponding name exists | ||||
Unit * | unit (const String &pName) throw (SynthException) | |||
returns unit with corresponding name | ||||
bool | checkAudioPort (const String &pName) const | |||
check if audio port with corresponding name exists | ||||
AudioPort * | audioPort (const String &pName) throw (SynthException) | |||
returns audio port with corresponding name | ||||
bool | checkSwitchPort (const String &pName) const | |||
check if switch port with corresponding name exists | ||||
SwitchPort * | switchPort (const String &pName) throw (SynthException) | |||
returns switch port with corresponding name | ||||
EventManager & | event () | |||
return event manager | ||||
void | schedule (double pTime, Unit *pUnit, const base::String &pPortName, sample pValue, double pDuration=-1, event::EventTime pTimeMode=event::EVENT_RELATIVE) throw (SynthException) | |||
create event | ||||
void | schedule (double pTime, Unit *pUnit, const base::String &pPortName, const math::Vector< sample > &pValues, double pDuration=-1, event::EventTime pTimeMode=event::EVENT_RELATIVE) throw (SynthException) | |||
create event | ||||
SynthCom & | com () | |||
return communcation manager | ||||
void | registerPatch (Patch *pPatch) | |||
register patch | ||||
void | deregisterPatch (const base::String &pPatchName) | |||
deregister patch | ||||
bool | unitAutoRegister () const | |||
return unit auto register flag | ||||
void | setUnitAutoRegister (bool pUnitAutoRegister) | |||
set unit auto register flag | ||||
void | registerUnit (Unit *pUnit) | |||
register unit | ||||
void | deregisterUnit (const base::String &pUnitName) | |||
deregister unit | ||||
void | autoRegisterUnit (Unit *pUnit) throw (SynthException) | |||
queue unit for registration when synth starts | ||||
void | registerUnits () | |||
register queued units | ||||
void | process () | |||
initiates one signal processing cycle | ||||
void | start () throw (SynthException) | |||
start signal processing and communication
| ||||
void | stop () | |||
stop signal processing | ||||
void | exceptionReport (const base::Exception &pException) | |||
report exception | ||||
String | info (bool pPropagate=false) const | |||
obtain textual unit information | ||||
Static Public Member Functions | ||||
static Synth & | get () throw (SynthException) | |||
get singleton instance | ||||
static void | destroy () | |||
destroy singleton instance | ||||
Protected Member Functions | ||||
Synth () throw (SynthException) | ||||
default constructor | ||||
~Synth () | ||||
destructor | ||||
void | addPatch (const String &pName, Patch *pPatch) throw (SynthException) | |||
register patch | ||||
void | addUnit (const String &pName, Unit *pUnit) throw (SynthException) | |||
register unit | ||||
void | addOutputUnit (OutputUnit *pOutputUnit) | |||
add output unit | ||||
void | addAudioPort (const String &pName, AudioPort *pAudioPort) throw (SynthException) | |||
register audio port | ||||
void | addSwitchPort (const String &pName, SwitchPort *pSwitchPort) throw (SynthException) | |||
register switch port | ||||
void | removePatch (const String &pName) throw (SynthException) | |||
remove patch | ||||
void | removeUnit (const String &pName) throw (SynthException) | |||
remove unit | ||||
void | removeOutputUnit (const String &pName) throw (SynthException) | |||
remove output unit | ||||
void | removeAudioPort (const String &pName) throw (SynthException) | |||
remove audio port | ||||
void | removeSwitchPort (const String &pName) throw (SynthException) | |||
remove switch port | ||||
Protected Attributes | ||||
JackClient * | mJackClient | |||
jack client | ||||
QHash< String, Patch * > | mPatches | |||
patch registry | ||||
QHash< String, Unit * > | mUnits | |||
unit registry | ||||
QHash< String, AudioPort * > | mAudioPorts | |||
control port registry | ||||
QHash< String, SwitchPort * > | mSwitchPorts | |||
switch port registry | ||||
QVector< OutputUnit * > | mOutputUnits | |||
vector of all output units | ||||
EventManager | mEventManager | |||
new event manager | ||||
bool | mRunning | |||
synth running | ||||
Time | mStartTime | |||
synth start time | ||||
long | mStartMicroSecs | |||
synth start time in micro secs | ||||
Time | mCurrentTime | |||
current time | ||||
TimeZone | mTimeZone | |||
time zone | ||||
unsigned int | mOverlap | |||
number of window overlaps for fft | ||||
bool | mUnitAutoRegister | |||
flag that tells units whether they should autoregister or not | ||||
QVector< Unit * > | mAutoRegisterUnits | |||
vector of units that will be automatically registered when synth starts | ||||
Static Protected Attributes | ||||
static Synth * | sSynth | |||
singleton instance | ||||
Friends | ||||
class | RemoveUnitEvent | |||
class | Patch |
for creating, storing and controlling units
Created by Daniel Bisig on 5/17/06. Copyright 2006 Daniel Bisig All rights reserved.
Synth::Synth | ( | ) | throw (SynthException) [protected] |
default constructor
Synth::~Synth | ( | ) | [protected] |
destructor
Synth & Synth::get | ( | ) | throw (SynthException) [static] |
get singleton instance
failed | to get synth instance |
void Synth::destroy | ( | ) | [static] |
destroy singleton instance
void Synth::saveWaveTables | ( | const String & | pFileName | ) | throw (SynthException) |
save wavetables to file
pFileName | file name |
SynthException | failed to save wavetables |
void Synth::readWaveTables | ( | const String & | pFileName | ) | throw (SynthException) |
save wavetables to file
pFileName | file name |
SynthException | failed to save wavetables |
unsigned int Synth::defaultFrameCount | ( | ) | const |
get default framecount
unsigned int Synth::defaultChannelCount | ( | ) | const |
get default channel count
sample Synth::defaultRate | ( | ) | const |
get default rate
unsigned int Synth::defaultOverlap | ( | ) | const |
get default overlap
long Synth::time | ( | ) |
returns elpased synth time in microseconds
time since the synth has been started
bool Synth::checkPatch | ( | const String & | pName | ) | const |
check if patch with corresponding name exists
Patch * Synth::patch | ( | const String & | pName | ) | throw (SynthException) |
returns patch with corresponding name
pName | name of patch |
SynthException | no patch with corresponding name found |
bool Synth::checkUnit | ( | const String & | pName | ) | const |
check if unit with corresponding name exists
Unit * Synth::unit | ( | const String & | pName | ) | throw (SynthException) |
returns unit with corresponding name
pName | name of unit |
SynthException | no unit with corresponding name found |
bool Synth::checkAudioPort | ( | const String & | pName | ) | const |
check if audio port with corresponding name exists
AudioPort * Synth::audioPort | ( | const String & | pName | ) | throw (SynthException) |
returns audio port with corresponding name
pName | name of audio port |
SynthException | no audio port with corresponding name found |
bool Synth::checkSwitchPort | ( | const String & | pName | ) | const |
check if switch port with corresponding name exists
SwitchPort * Synth::switchPort | ( | const String & | pName | ) | throw (SynthException) |
returns switch port with corresponding name
pName | name of switch port |
SynthException | no switch port with corresponding name found |
EventManager & Synth::event | ( | ) |
return event manager
void Synth::schedule | ( | double | pTime, | |
Unit * | pUnit, | |||
const base::String & | pPortName, | |||
sample | pValue, | |||
double | pDuration = -1 , |
|||
event::EventTime | pTimeMode = event::EVENT_RELATIVE | |||
) | throw (SynthException) |
create event
pTime | time in milisecs when event will take place | |
pUnit | unit name | |
pPortName | port name | |
pValue | value for event target | |
pDuration | duration over which the parameter changes it's values (-1: ignore duration parameter) | |
pTimeMode | whether pTime is relative to current time or absolute (with regard to start of program) |
SynthException | port name not found |
void Synth::schedule | ( | double | pTime, | |
Unit * | pUnit, | |||
const base::String & | pPortName, | |||
const math::Vector< sample > & | pValues, | |||
double | pDuration = -1 , |
|||
event::EventTime | pTimeMode = event::EVENT_RELATIVE | |||
) | throw (SynthException) |
create event
pTime | time in milisecs when event will take place | |
pUnit | unit name | |
pPortName | port name | |
pValues | values for event target | |
pDuration | duration over which the parameter changes it's values (-1: ignore duration parameter) | |
pTimeMode | whether pTime is relative to current time or absolute (with regard to start of program) |
SynthException | port name not found |
SynthCom & Synth::com | ( | ) |
return communcation manager
void Synth::registerPatch | ( | Patch * | pPatch | ) |
register patch
pPatch | patch |
void Synth::deregisterPatch | ( | const base::String & | pPatchName | ) |
deregister patch
pPatchName | patch name |
bool Synth::unitAutoRegister | ( | ) | const |
return unit auto register flag
void Synth::setUnitAutoRegister | ( | bool | pUnitAutoRegister | ) |
set unit auto register flag
pUnitAutoRegister | unit auto register flag |
void Synth::registerUnit | ( | Unit * | pUnit | ) |
register unit
pUnit | unit |
void Synth::deregisterUnit | ( | const base::String & | pUnitName | ) |
deregister unit
pUnitName | unit name |
void Synth::autoRegisterUnit | ( | Unit * | pUnit | ) | throw (SynthException) |
queue unit for registration when synth starts
pUnit | unit |
unit | already queued for registration |
void Synth::registerUnits | ( | ) |
register queued units
void Synth::process | ( | ) |
initiates one signal processing cycle
calls the process function of all the registered output units
void Synth::start | ( | ) | throw (SynthException) |
void Synth::stop | ( | ) |
stop signal processing
void Synth::exceptionReport | ( | const base::Exception & | pException | ) |
report exception
pException | exception |
base::String Synth::info | ( | bool | pPropagate = false |
) | const |
obtain textual unit information
pPropagate | if true, the unit calls the info methods of its input ports |
void Synth::addPatch | ( | const String & | pName, | |
Patch * | pPatch | |||
) | throw (SynthException) [protected] |
register patch
pName | name of patch | |
pPatch | patch |
SynthException | patch name already exists |
void Synth::addUnit | ( | const String & | pName, | |
Unit * | pUnit | |||
) | throw (SynthException) [protected] |
register unit
pName | name of unit | |
pUnit | unit |
SynthException | unit name already exists |
void Synth::addOutputUnit | ( | OutputUnit * | pOutputUnit | ) | [protected] |
add output unit
pOutputUnit | output unit |
void Synth::addAudioPort | ( | const String & | pName, | |
AudioPort * | pAudioPort | |||
) | throw (SynthException) [protected] |
register audio port
pName | name of audio port | |
pAudioPort | audio port |
SynthException | name already exists |
void Synth::addSwitchPort | ( | const String & | pName, | |
SwitchPort * | pSwitchPort | |||
) | throw (SynthException) [protected] |
register switch port
pName | name of switch port | |
pSwitchPort | switch port |
SynthException | name already exists |
void Synth::removePatch | ( | const String & | pName | ) | throw (SynthException) [protected] |
void Synth::removeUnit | ( | const String & | pName | ) | throw (SynthException) [protected] |
void Synth::removeOutputUnit | ( | const String & | pName | ) | throw (SynthException) [protected] |
remove output unit
pName | name of output unit |
SynthException | output unit not found |
void Synth::removeAudioPort | ( | const String & | pName | ) | throw (SynthException) [protected] |
remove audio port
pName | name of audio port |
SynthException | audio port not found |
void Synth::removeSwitchPort | ( | const String & | pName | ) | throw (SynthException) [protected] |
remove switch port
pName | name of switch port |
SynthException | switch port not found |
friend class RemoveUnitEvent [friend] |
friend class Patch [friend] |
Synth * Synth::sSynth [static, protected] |
singleton instance
JackClient* iso::synth::Synth::mJackClient [protected] |
jack client
QHash<String, Patch*> iso::synth::Synth::mPatches [protected] |
patch registry
QHash<String, Unit*> iso::synth::Synth::mUnits [protected] |
unit registry
QHash<String, AudioPort*> iso::synth::Synth::mAudioPorts [protected] |
control port registry
QHash<String, SwitchPort*> iso::synth::Synth::mSwitchPorts [protected] |
switch port registry
QVector<OutputUnit*> iso::synth::Synth::mOutputUnits [protected] |
vector of all output units
EventManager iso::synth::Synth::mEventManager [protected] |
new event manager
bool iso::synth::Synth::mRunning [protected] |
synth running
Time iso::synth::Synth::mStartTime [protected] |
synth start time
the time the synth has been started
long iso::synth::Synth::mStartMicroSecs [protected] |
synth start time in micro secs
the time the synth has been started in micro secs
Time iso::synth::Synth::mCurrentTime [protected] |
current time
TimeZone iso::synth::Synth::mTimeZone [protected] |
time zone
unsigned int iso::synth::Synth::mOverlap [protected] |
number of window overlaps for fft
bool iso::synth::Synth::mUnitAutoRegister [protected] |
flag that tells units whether they should autoregister or not
QVector<Unit*> iso::synth::Synth::mAutoRegisterUnits [protected] |
vector of units that will be automatically registered when synth starts