wet-only output for delay
parent
31b13ad3f1
commit
f7212a222d
2
notes
2
notes
|
@ -33,7 +33,7 @@ parameters {
|
|||
TODO {
|
||||
immediate frontburner {
|
||||
examine commandreader (nextsub w/ default for ,XX?)
|
||||
wet-only output for delay (be smart about it)
|
||||
- wet-only output for delay (be smart about it)
|
||||
|
||||
revert action
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ Delay::Delay() { }
|
|||
void Delay::init() {
|
||||
addPort(Port::Input, Port::Audio, 0);
|
||||
addPort(Port::Output, Port::Audio, 0);
|
||||
addPort(Port::Output, Port::Audio, 1)->name = "wet only";
|
||||
}
|
||||
|
||||
void Delay::reset() {
|
||||
|
@ -69,8 +70,12 @@ void Delay::process() {
|
|||
|
||||
auto in = std::static_pointer_cast<AudioPort>(port(Port::Input, Port::Audio, 0));
|
||||
auto out = std::static_pointer_cast<AudioPort>(port(Port::Output, Port::Audio, 0));
|
||||
auto wout = std::static_pointer_cast<AudioPort>(port(Port::Output, Port::Audio, 1));
|
||||
in->pull();
|
||||
out->pull();
|
||||
bool oc = out->isConnected();
|
||||
bool wc = wout->isConnected();
|
||||
if (oc) out->pull();
|
||||
if (wc) wout->pull();
|
||||
|
||||
size_t ts = audioEngine->curTickSize();
|
||||
for (size_t f = 0; f < ts; f++) {
|
||||
|
@ -80,7 +85,8 @@ void Delay::process() {
|
|||
int i = frames + buf.firstIndex();
|
||||
buf[i] += (fCurrent * delayMult) + (fOut * fbMult);
|
||||
|
||||
(*out)[f] = fCurrent + fOut;
|
||||
if (oc) (*out)[f] = fCurrent + fOut;
|
||||
if (wc) (*wout)[f] = fOut;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue