Docs
Reference
el.tapOut

el.tapOut(props, xn)

The tapOut node pairs with the tapIn node to provide special case behavior for implementing feedback around arbitrary parts of your signal graph. A tapOut node is identified by name, and its signal can be fed back into any part of your signal graph using a tapIn node by the same name.

It's important to note that in the digital domain, feedback requires at least a single sample delay. For efficiency, the tapOut node implements an implicit block-size delay before the signal is propagated onwards and to any corresponding tapIn nodes.

Example

This example implements a simple feedback loop with no other delay time other than the implicit block-size delay. Depending on the block size then, this example may exhibit characteristics of a comb filter or perhaps more of a feedback delay.

let input = el.in({channel: 0});
let output = el.add(
  // Propagate the input signal and insert a tap out
  el.tapOut({name: 'a'}, input),
  // Feed the tap back in here with a 0.5 gain in the loop
  el.mul(
    0.5,
    el.tapIn({name: 'a'})
  ),
);
 
core.render(output);

Props

NameDefaultTypeDescription
name''StringNames the output tap
  • Note: the implicit delay is always exactly one block long. You therefore have some level of flexibility in your use case by configuring the engine with a block size that suits your needs.