[SIMULINK] Sound interface, multiple inputs and outputs
4 views (last 30 days)
José M. Requena Plens on 3 Aug 2020
I am using Simulink to emit and receive signals with a sound interface with multiple inputs and outputs (8 inputs / 20 outputs).
The "Audio Device Reader" block only has one signal, how can I get the signals from all the inputs?
Carlos Sanchis on 24 Aug 2020
Edited: Carlos Sanchis on 25 Aug 2020
The "Audio Device Reader" block can output all channels through the same port as an m by n matrix where m is the number of samples per frame and n is the number of channels: https://www.mathworks.com/help/audio/ref/audiodevicereader.html#bu_1463-1-A.
Below are the steps to enable this along with screenshots from an example with my laptop's 2-channel microphone array as the audio device.
First double-check the dimmensions of each signal by going to “DEBUG” > “Information Overlays” > “Signal Dimensions”.
Now double click on the "Audio Device Reader" block to setup the "Number of channels" (also the number of "Samples per frame" if needed).
You can check the number of available channels in your audio device by clicking on "Info".
If you need to split each channel into its own signal, you can accomplish it in different ways.
Option A: use "Selector" blocks (https://www.mathworks.com/help/simulink/slref/selector.html)
Option B: use the "Multiport Selector" block in DSP System Toolbox (https://www.mathworks.com/help/dsp/ref/multiportselector.html). Prof Requena introduced me to this and indeed it looks much cleaner.
Option A is illustrated below...
More Answers (1)
Walter Roberson on 3 Aug 2020
Edited: Walter Roberson on 5 Aug 2020
The block will read all of the channels unless you choose the channel mapping and give a vector that does not include all the channel numbers.