linuxsampler 2.3.1
LinuxSampler::FxSend Class Reference

Engine Channel Effect Send. More...

#include <FxSend.h>

Public Member Functions

 FxSend (EngineChannel *pEngineChannel, uint8_t MidiCtrl, String Name="") throw (Exception)
 Constructor.
 
int DestinationEffectChain () const
 Index of the send effect chain this FX send is routed to or -1 if FX send is not routed to a send effect.
 
int DestinationEffectChainPosition () const
 Index of the send effect of the send effect chain given by DestinationEffectChain(), in case FX send is routed to a send effect or -1 otherwise.
 
void SetDestinationEffect (int iChain, int iChainPos) throw (Exception)
 Route this FX send to the given send effect given by index iChainPos of the send effect chain given by iChain .
 
int DestinationMasterEffectChain () const DEPRECATED_API
 
int DestinationMasterEffect () const DEPRECATED_API
 
void SetDestinationMasterEffect (int iChain, int iChainPos) DEPRECATED_API throw (Exception)
 
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 iDestinationEffectChain
 
int iDestinationEffectChainPos
 
std::vector< intRouting
 
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 (by routing the effect send to dedicated audio output channels of the sampler channel's audio output device) or to sampler internal effect processors (send effects). Each effect send entity can define an arbitrary MIDI controller number which can alter the effect send's send level.

Regarding sampler internal effects: See AudioOutputDevice regarding management of send effects, since send 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 56 of file FxSend.h.

Constructor & Destructor Documentation

◆ FxSend()

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

◆ DestinationChannel()

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.

◆ DestinationEffectChain()

int LinuxSampler::FxSend::DestinationEffectChain ( ) const

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

◆ DestinationEffectChainPosition()

int LinuxSampler::FxSend::DestinationEffectChainPosition ( ) const

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

This is the effect chain position, not the effect ID!

◆ DestinationMasterEffect()

int LinuxSampler::FxSend::DestinationMasterEffect ( ) const
Deprecated:
This method will be removed, use DestinationEffectChainPosition() instead!

◆ DestinationMasterEffectChain()

int LinuxSampler::FxSend::DestinationMasterEffectChain ( ) const
Deprecated:
This method will be removed, use DestinationEffectChain() instead!

◆ Id()

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.

◆ IsInfoChanged()

bool LinuxSampler::FxSend::IsInfoChanged ( )

Determines whether the effect send's settings are changed.

◆ Level()

float LinuxSampler::FxSend::Level ( )

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

◆ MidiController()

uint8_t LinuxSampler::FxSend::MidiController ( )

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

◆ Name()

String LinuxSampler::FxSend::Name ( )

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

◆ Reset()

void LinuxSampler::FxSend::Reset ( )

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

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

◆ SetDestinationChannel()

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

Alters the routing of an audio channel.

By default all audio channels of an effect send are routed in consecutive same order to its destination. You can use this method to change this default routing. If this effect send is routed to an internel effect, then DstChan is the input channel of that destination effect. Otherwise, if this effect send is not routed to an internal effect, then DstChan is the output channel of the sampler channel's audio output device.

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

◆ SetDestinationEffect()

void LinuxSampler::FxSend::SetDestinationEffect ( int  iChain,
int  iChainPos 
)
throw (Exception
)

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

If you want to remove the routing of an FX send, currently directed to a send 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 chain or effect chain position doesn't exist
See also
AudioOutputDevice::SendEffectChain()

◆ SetDestinationMasterEffect()

void LinuxSampler::FxSend::SetDestinationMasterEffect ( int  iChain,
int  iChainPos 
)
throw (Exception
)
Deprecated:
This method will be removed, use SetDestinationEffect() instead!

◆ SetInfoChanged()

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

Sets whether the effect send's settings are changed.

◆ SetLevel() [1/2]

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

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

◆ SetLevel() [2/2]

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.

◆ SetMidiController()

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

◆ SetName()

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

Sets the name of this effect send entity.

Parameters
NameThe new name of this effect send entity.

◆ UpdateChannels()

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

◆ bInfoChanged

bool LinuxSampler::FxSend::bInfoChanged
protected

Definition at line 229 of file FxSend.h.

◆ fLevel

float LinuxSampler::FxSend::fLevel
protected

Definition at line 228 of file FxSend.h.

◆ iDestinationEffectChain

int LinuxSampler::FxSend::iDestinationEffectChain
protected

Definition at line 222 of file FxSend.h.

◆ iDestinationEffectChainPos

int LinuxSampler::FxSend::iDestinationEffectChainPos
protected

Definition at line 223 of file FxSend.h.

◆ iId

uint LinuxSampler::FxSend::iId
protected

Definition at line 227 of file FxSend.h.

◆ MidiFxSendController

uint8_t LinuxSampler::FxSend::MidiFxSendController
protected

Definition at line 225 of file FxSend.h.

◆ pEngineChannel

EngineChannel* LinuxSampler::FxSend::pEngineChannel
protected

Definition at line 221 of file FxSend.h.

◆ Routing

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

Definition at line 224 of file FxSend.h.

◆ sName

String LinuxSampler::FxSend::sName
protected

Definition at line 226 of file FxSend.h.


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