# +DSP

### From MH Wiki

## +DSP

The +DSP license unlocks many options of the Mobile I/O suite of interfaces (2882, ULN2, ULN8, LIO). This is a page to share and discuss their uses.

** +DSP Notch Filter **

The parametric EQs in MIOStrip can be narrowed to 1/10 octave, and the MIO EQ (included in the +DSP package) goes as narrow as 1/100 octave.

However there is a mathematical difference between a real notch filter and a very narrow and deep parametric cut filter.

To create a true notch instead of a deep cut filter

Set up a graph and choose the SVF control element and select the notch option. (This requires a +DSP license, and the deep-and-narrow parametric might be good enough for many purposes).

The Sonic EQ also provides a true notch-filter without needing a SVF graph.

** Multi-Mono +DSP **

When inserting a mono +DSP effect on a stereo (or multi-channel bus), the single set of GUI controls will control a instance of that effect on every channel of audio in the bus.

ex. a mono EQ inserted on a quad channel, will result in 4 identical EQ’s all mirroring the settings for each channel in that bus.

*MIO Console and Sonic Console automatically make multiple instances of the mono plugin when you instantiate a mono process on a multichannel bus. Each instance is connected to a channel of the bus, and all the parameters of all the instances are controlled by the UI of the first instance.*

The UI of the first instance is what is displayed when you bring the UI up for the insert.So you have a stereo (or higher) version of Sonic EQ inserted and it performs as a multichannel plugin with the exception that it only displays metering for the first channel of the bus (effectively the left channel since all the multichannel layouts in the Console start with the left channel).BTW, this works with all the mono plugs — so you can always do multichannel with any of the mono plugs.

For things like EQ and delay, the multi-mono works like multichannel (minus the metering). For things like dynamics, multi-mono is different than multichannel because the multi-mono uses an independent detector per channel (e.g. a multi-mono limiter applies a different gain to each channel even when the settings are the same for each channel). Sometimes this is what you want, but often it is not what you would want.

Thanks BJ

** Divide Math Block **

*all you get from divide is attenuation, like a -9.5 dB pad for x/3.*

Brian Willoughby Sound Consulting

** RMS side-chain in +DSP **

BJ and Kurt comment on how to create a RMS averaged signal for side-chain dynamics purposes. (among others)

________[How]________

If you multiply a signal by itself, using MIO Channel Multiplier, you get the “Square”. If you put that result through a lowpass, you get a kind of “Mean Square” (an exponential moving average). If you take the square root of that (using Square Root under Math), you get the Root Mean Square.You get to choose the time constant for your averaging by tuning the lowpass. This is essentially an RMS-based envelope extractor.

To do the “square” part, you use a Channel Multiplier with both inputs feed by the same signal.

To do stereo, you use the Max primitive, which will pass through the larger signal.

To do the mean part, you can use a Low Pass filter.

_______[Why]________

the standard definition of mean is

mean = sum (x0, x1, x2 … xn)/n

That yields the mean, but that would not be useful for a continuously applied process, so the mean used in an RMS detector could be a moving window mean

mean_n = sum(x(n-m), x(n-m+1), … x(n))/m

This is a FIR filter, with equal coefficients of 1/m and m taps. This is a type of low-pass filter. This sort of FIR is generally inefficient to simply compute a moving average. You can build an IIR filter that has similar pass-band and stop band characteristics as the FIR, but the phase characteristics will be very different, and the transition band will be very different. But that doesn’t matter that much for a detector filter.

So when you use an IIR low pass filter, you are basically measuring the mean value. (The mean value is the DC component of a signal. The lower you set the cutoff of the filter, the closer the output of the filter will be to the mean value). For an RMS detector, you don’t really want the the RMS of the signal for all time. You want an new signal that approximates the “instantaneous” RMS level of the signal.

Square -> LPF -> Square-root gives you that.

** +DSP Saves Directory **

+DSP Presets are saved into your Users Preferences folder.

~/Library/Preferences/MIOPlugInPresets/Graphs/yourcustomfolder

** +DSP Latency **

All +DSP and routing is programmed on a SHARC DSP chip.

The routing from the master (routing) DSP to secondary (graph) DSP on legacy boxes is the source of the constant 16 samples of latency through the +DSP processing. The 16 samples is only for the legacy +DSP graph and it is from the source side to the process bus side

The 2d Card actually reduces the total latency of the hardware by about 32 samples (48 samples if you were running through +DSP).

In 2D there is an additional two sample buffer (one to buffer the input from the ADC/AES/ADAT/Firewire and one to buffer the processing before it is sent to the DAC/AES/ADAT/FireWire) — so that the DMA is not using the same side of each double buffer as the processing loop is.

So it is not zero, but it is really close (approximately 40-50 uSec at 1x rates and 20-30 uSec at 2x rates).

And it doesn’t increase no matter how much processing you throw on, except for:

The delays add latency.

The Pitch Shifter adds latency.

The Reverb (non-direct sound) adds latency.

on ULN8 the latency from A/D -> Mixer -> D/A is ~67 samples. Adding character or EQ will not increase the latency

** 2D DSP Usage Meter **

The DSP meter in the Box Info Pane is sort of an oversight for legacy boxes. What it is showing on legacy boxes is the DSP load of the primary transport and mix engine DSP. You have no control over that number — it is a characteristic of the Firmware and the sample rate (as well as the state of firewire transport — it goes up when audio is being streamed to and from the box). Basically, if you are on a legacy box, you should just ignore that number in the current version of MIO Console. (5.2)

The DSP meter in the +DSP pane is the one that gives you the actual DSP load due to the plugins you have instantiated. On 2d Expanded boxes, the DSP load for the 2d Card is displayed in the Box Info Pane — and that is reflective of the mixer and plugin configuration that you have created.