LinuxSampler::FxSend Class Reference

Engine Channel Effect Send. More...

#include <FxSend.h>

List of all members.

Public Member Functions

 FxSend (EngineChannel *pEngineChannel, uint8_t MidiCtrl, String Name="") throw (Exception)
 Constructor.
int DestinationMasterEffectChain () const
 Index of the master effect chain this FX send is routed to or -1 if FX send is not routed to a master effect.
int DestinationMasterEffect () const
 Index of the master effect of the master effect chain given by DestinationMasterEffectChain(), in case FX send is routed to a master effect or -1 otherwise.
void SetDestinationMasterEffect (int iChain, int iEffect) throw (Exception)
 Route this FX send to the given master effect given by index iEffect of the master effect chain given by iChain .
int DestinationChannel (int SrcChan)
 Returns the audio output device's audio channel to which effect send's channel SrcChan is currently routed to.
void SetDestinationChannel (int SrcChan, int DstChan) throw (Exception)
 Alters the routing of an audio channel.
void UpdateChannels ()
 Should be called by the engine channel whenever the amount of audio channel has changed, so the FxSend object can adjust the amount of channels to that new number and establish default routings for new channels if needed.
float Level ()
 The effect send's current send level ( usually a value between 0.0f and 1.0f ).
void SetLevel (float f)
 Alter the effect send's send level ( usually a value between 0.0f and 1.0f ).
void SetLevel (uint8_t iMidiValue)
 Alter the effect send's send level by supplying the MIDI controller's MIDI value.
void Reset ()
 Reset send level to the default send level (i.e.
uint8_t MidiController ()
 Returns the MIDI controller number which can alter the effect send's send level.
void SetMidiController (uint8_t MidiCtrl) throw (Exception)
 Alter the MIDI controller number which should alter the effect send's send level.
String Name ()
 Returns the (optional) name of this effect send entity.
void SetName (String Name)
 Sets the name of this effect send entity.
uint Id ()
 Returns the (at least sampler-channel-) unique ID of the effect send instance.
bool IsInfoChanged ()
 Determines whether the effect send's settings are changed.
void SetInfoChanged (bool b)
 Sets whether the effect send's settings are changed.

Protected Attributes

EngineChannelpEngineChannel
int iMasterEffectChain
int iMasterEffect
std::vector< int > Routing
uint8_t MidiFxSendController
String sName
uint iId
float fLevel
bool bInfoChanged


Detailed Description

Engine Channel Effect Send.

This class is used to manage effect sends on Engine Channels. An effect send is used to route sampler channel's audio signals to either sampler external effect processors or to sampler internal effect processors. Each effect send entity can define an arbitrary MIDI controller number which can alter the effect send's send level.

Regarding sampler internal effects: only master effects are supported ATM, no insert effects yet. See AudioOutputDevice regarding management of master effects, since master effects only live in the context of exactly ONE AudioOutputDevice.

Note: effect sends cannot be routed to a different AudioOutputDevice than assigned to the FxSend's EngineChannel. Also note that an effect send always has as much audio channels as its EngineChannel.

Definition at line 55 of file FxSend.h.


Constructor & Destructor Documentation

LinuxSampler::FxSend::FxSend ( EngineChannel pEngineChannel,
uint8_t  MidiCtrl,
String  Name = "" 
) throw (Exception)

Constructor.

By default all effect send channels are routed to the last available audio channels on the EngineChannel's AudioOutputDevice.

Parameters:
pEngineChannel - engine channel on which the effect send is added to
MidiCtrl - MIDI controller number which can alter the effect send level
Name - (optional) name for the effect send entity
Exceptions:
Exception - in case no free ID could be found on given EngineChannel or MidiCtrl is invalid


Member Function Documentation

int LinuxSampler::FxSend::DestinationChannel ( int  SrcChan  ) 

Returns the audio output device's audio channel to which effect send's channel SrcChan is currently routed to.

int LinuxSampler::FxSend::DestinationMasterEffect (  )  const

Index of the master effect of the master effect chain given by DestinationMasterEffectChain(), in case FX send is routed to a master effect or -1 otherwise.

int LinuxSampler::FxSend::DestinationMasterEffectChain (  )  const

Index of the master effect chain this FX send is routed to or -1 if FX send is not routed to a master effect.

uint LinuxSampler::FxSend::Id (  ) 

Returns the (at least sampler-channel-) unique ID of the effect send instance.

This is actually not used by the engine at all. It is at the moment only used by the LSCP server to associate an unique numerical ID with each effect send entity.

bool LinuxSampler::FxSend::IsInfoChanged (  ) 

Determines whether the effect send's settings are changed.

float LinuxSampler::FxSend::Level (  ) 

The effect send's current send level ( usually a value between 0.0f and 1.0f ).

uint8_t LinuxSampler::FxSend::MidiController (  ) 

Returns the MIDI controller number which can alter the effect send's send level.

String LinuxSampler::FxSend::Name (  ) 

Returns the (optional) name of this effect send entity.

void LinuxSampler::FxSend::Reset (  ) 

Reset send level to the default send level (i.e.

due to a MIDI "reset all controllers" message).

void LinuxSampler::FxSend::SetDestinationChannel ( int  SrcChan,
int  DstChan 
) throw (Exception)

Alters the routing of an audio channel.

Parameters:
SrcChan - the effect send's source channel
DstChan - the audio output device's destination channel
Exceptions:
Exception - in case arguments out of range

void LinuxSampler::FxSend::SetDestinationMasterEffect ( int  iChain,
int  iEffect 
) throw (Exception)

Route this FX send to the given master effect given by index iEffect of the master effect chain given by iChain .

If you want to remove the routing of an FX send, currently directed to a master effect processor, and want to route it directly to an audio output device channel instead, then set both arguments to -1 .

Exceptions:
Exception - if given effect / effect chain doesn't exist
See also:
AudioOutputDevice::MasterEffectChain()

void LinuxSampler::FxSend::SetInfoChanged ( bool  b  ) 

Sets whether the effect send's settings are changed.

void LinuxSampler::FxSend::SetLevel ( uint8_t  iMidiValue  ) 

Alter the effect send's send level by supplying the MIDI controller's MIDI value.

This method is usually only called by the engine channel.

void LinuxSampler::FxSend::SetLevel ( float  f  ) 

Alter the effect send's send level ( usually a value between 0.0f and 1.0f ).

void LinuxSampler::FxSend::SetMidiController ( uint8_t  MidiCtrl  )  throw (Exception)

Alter the MIDI controller number which should alter the effect send's send level.

Parameters:
MidiCtrl - MIDI controller number
Exceptions:
Exception - if MIDI controller number is invalid

void LinuxSampler::FxSend::SetName ( String  Name  ) 

Sets the name of this effect send entity.

Parameters:
Name The new name of this effect send entity.

void LinuxSampler::FxSend::UpdateChannels (  ) 

Should be called by the engine channel whenever the amount of audio channel has changed, so the FxSend object can adjust the amount of channels to that new number and establish default routings for new channels if needed.


Member Data Documentation

Definition at line 202 of file FxSend.h.

float LinuxSampler::FxSend::fLevel [protected]

Definition at line 201 of file FxSend.h.

uint LinuxSampler::FxSend::iId [protected]

Definition at line 200 of file FxSend.h.

Definition at line 196 of file FxSend.h.

Definition at line 195 of file FxSend.h.

Definition at line 198 of file FxSend.h.

Definition at line 194 of file FxSend.h.

std::vector<int> LinuxSampler::FxSend::Routing [protected]

Definition at line 197 of file FxSend.h.

Definition at line 199 of file FxSend.h.


The documentation for this class was generated from the following file:

doxygen