3 |
* LinuxSampler - modular, streaming capable sampler * |
* LinuxSampler - modular, streaming capable sampler * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005 - 2007 Christian Schoenebeck * |
* Copyright (C) 2005 - 2008 Christian Schoenebeck * |
7 |
* * |
* * |
8 |
* This library is free software; you can redistribute it and/or modify * |
* This library is free software; you can redistribute it and/or modify * |
9 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
38 |
/** @brief Engine Channel Effect Send |
/** @brief Engine Channel Effect Send |
39 |
* |
* |
40 |
* This class is used to manage effect sends on Engine Channels. An effect |
* This class is used to manage effect sends on Engine Channels. An effect |
41 |
* send is used to route sampler channel's audio signals to sampler |
* send is used to route sampler channel's audio signals to either sampler |
42 |
* external effect processors. Each effect send entity can define an |
* external effect processors or to sampler internal effect processors. |
43 |
* arbitrary MIDI controller number which can alter the effect send's |
* Each effect send entity can define an arbitrary MIDI controller number |
44 |
* send level. |
* which can alter the effect send's send level. |
45 |
|
* |
46 |
|
* Regarding sampler internal effects: only master effects are supported |
47 |
|
* ATM, no insert effects yet. See AudioOutputDevice regarding management |
48 |
|
* of master effects, since master effects only live in the context of |
49 |
|
* exactly @e ONE AudioOutputDevice. |
50 |
* |
* |
51 |
* Note: effect sends cannot be routed to a different AudioOutputDevice |
* Note: effect sends cannot be routed to a different AudioOutputDevice |
52 |
* than assigned to the FxSend's EngineChannel. Also note that an effect |
* than assigned to the FxSend's EngineChannel. Also note that an effect |
72 |
FxSend(EngineChannel* pEngineChannel, uint8_t MidiCtrl, String Name = "") throw (Exception); |
FxSend(EngineChannel* pEngineChannel, uint8_t MidiCtrl, String Name = "") throw (Exception); |
73 |
|
|
74 |
/** |
/** |
75 |
|
* Index of the master effect chain this FX send is routed to or |
76 |
|
* -1 if FX send is not routed to a master effect. |
77 |
|
*/ |
78 |
|
int DestinationMasterEffectChain() const; |
79 |
|
|
80 |
|
/** |
81 |
|
* Index of the master effect of the master effect chain given by |
82 |
|
* DestinationMasterEffectChain(), in case FX send is routed to |
83 |
|
* a master effect or -1 otherwise. |
84 |
|
*/ |
85 |
|
int DestinationMasterEffect() const; |
86 |
|
|
87 |
|
/** |
88 |
|
* Route this FX send to the given master effect given by index |
89 |
|
* @a iEffect of the master effect chain given by @a iChain . |
90 |
|
* |
91 |
|
* If you want to remove the routing of an FX send, currently |
92 |
|
* directed to a master effect processor, and want to route it |
93 |
|
* directly to an audio output device channel instead, then set |
94 |
|
* both arguments to @c -1 . |
95 |
|
* |
96 |
|
* @throw Exception - if given effect / effect chain doesn't exist |
97 |
|
* @see AudioOutputDevice::MasterEffectChain() |
98 |
|
*/ |
99 |
|
void SetDestinationMasterEffect(int iChain, int iEffect) throw (Exception); |
100 |
|
|
101 |
|
/** |
102 |
* Returns the audio output device's audio channel to which effect |
* Returns the audio output device's audio channel to which effect |
103 |
* send's channel \a SrcChan is currently routed to. |
* send's channel \a SrcChan is currently routed to. |
104 |
*/ |
*/ |
192 |
|
|
193 |
protected: |
protected: |
194 |
EngineChannel* pEngineChannel; |
EngineChannel* pEngineChannel; |
195 |
|
int iMasterEffectChain; |
196 |
|
int iMasterEffect; |
197 |
std::vector<int> Routing; |
std::vector<int> Routing; |
198 |
uint8_t MidiFxSendController; |
uint8_t MidiFxSendController; |
199 |
String sName; |
String sName; |