Node for mapping input channels to output channels.

ChannelRouterNode allows one to route the channels of connected inputs to specific output channels, which can be useful for, among other things:

combining x number of Node 's into an n-channel output signal that can be consumed by a multichannel output-device via OutputDeviceNode .

splitting a stereo Node into multiple outputs

The class is designed to be connected using the overloaded operator>> , similar to how typical Node 's are connected but via one of the route() variants. The first variant takes an input channel index and an output channel index, and routes either all of the input's channels or as many as many channels are available based on the ChannelRouterNode 's specified channel count (via its Node::Format() at construction). For example,

samplePlayer >> router->route( 0, 3 );    // routes channel 0 of samplePlayer to router's channel 3, taking as many channels from samplePlayer as possible.
samplePlayer >> router->route( 1, 0, 1 ); // routes channel 1 of samplePlayer to router's channel 0, taking only one channel.


Public Member Functions

Protected Member Functions

  • disconnectInput (const NodeRef &input) override
  • disconnectOutput (const NodeRef &output)
  • configureConnections ()
  • setupProcessWithSumming ()
  • notifyConnectionsDidChange ()
  • bool
    inputChannelsAreUnequal () const
  • initializeImpl ()
  • uninitializeImpl ()
  • getSummingBuffer ()
  • getSummingBuffer () const

Protected Attributes

  • std::list< Route >