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

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

Protected Attributes

  • std::list< Route >