Document toolboxDocument toolbox

(8.D.2.1) Multiplexor

Overview

Selects one of N inputs

Discussion

This module has a variable number of input pins and routes (or copies) one of these pins to the output. Each input pin must have the same number of channels and block size. The parameter, index specifies which of the input pins to route to the output. index is zero based and must lie in the range of [0 NUMINPIN-1] where NUMINPIN is the number of input pins. If index is outside of the allowable range, it is clipped so that it lies in the proper range.

Note that this module is not smoothed and audible clicks may occur when changing the index at run time. If you need smoothed clickless operation, use the multiplexor_smoothed.m module instead.

The module has an optional control pin when the argument INDEXFROMPIN = 1. The module then has NUMINPIN+1 input pins and the last one is a control pin of size 1x1 which specifies which input signal to use. The control signal is zero based and in the range [0 NUMINPINS-1].

Type Definition

typedef struct _ModuleMultiplexor { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 indexPinFlag; // Specifies index pin available or not. INT32 index; // Specifies which input pin to route to the output. The index is zero based. } ModuleMultiplexorClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

indexPinFlag

int

const

0

1

Unrestricted

 

index

int

parameter

0

0

0:2

 

Pins

Input Pins

Name: in1

Description: Input signal

Data type: {float, int, fract32}

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real and Complex

 

Name: in2

Description: Input signal

Data type: {float, int, fract32}

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real and Complex

 

Name: in3

Description: Input signal

Data type: {float, int, fract32}

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real and Complex

 

Name: in0

Description: Index value read from pin

Data type: {float, int, fract32}

Channel range: 1:1:1

Block size range: 1:1:1

Sample rate range: Unrestricted

Complex support: Real and Complex

Output Pins

Name: out

Description: Output signal

Data type: {float, int, fract32}

MATLAB Usage

File Name: multiplexor_module.m

M=multiplexor_module(NAME, NUMINPIN, INDEXFROMPIN) Creates a multiplexor module for use in the Audio Weaver environment. The module has multiple input pins and routes 1 of the inputs to the output. Note, this module performs no smoothing and you may get an audible discontinuity when changing the index variable. Use the one of the smoothed multiplexor modules (in BasicAudioFloat32 or BasicAudioFract32) to avoid this. Arguments: NAME - name of the module. NUMINPIN - number of input pins (default = 2). INDEXFROMPIN - 1 takes input from INPUT pin (default = 0). All input pins must have the same block size and number of channels. M=multiplexor_module(NAME, NUMINPIN, INDEXFROMPIN) An optional third input argument specifies that the module uses a control signal. When INDEXFROMPIN = 1, then the module has an additional input pin (the last one) of size 1x1 (one channel and a block size of 1). The control signal is integer data and is used based. Values are clipped to the range [0 NUMINPIN-1].

Â