Channel names, Channel enables, Coreaudio buffers – Metric Halo Mobile I/O User Manual
Page 330: Setting the coreaudio buffer size, Sample size, 330 channel enables, 330 coreaudio buffers, 330 setting the coreaudio buffer size, 330 sample size
CoreAudio
330
support a small number of sample rates and may not support all of the sample rates that are available with
the Mobile I/O hardware.
Channel Names
CoreAudio provides a mechanism for the driver to tell the host the names of the channels. Some hosts do
not use this information and “make up” their own names for the channels. This mechanism is not dynamic,
so the Mobile I/O driver cannot update the host’s names as you adjust the Output Patchbay router or mixer
channel assignments.
In v.5 the driver reports stream names to the CoreAudio host for both input and output. Since all I/O in the
Mobile I/O is routed by you, you can refer to the names in your application and in MIO Console — they will
match. Inputs are called FW 01, FW 02, …, FW 18, and outputs are called DAW 01, DAW 02, …, DAW 18.
Channel Enables
CoreAudio supports enabling and disabling audio streams. This is a relatively new feature of CoreAudio, and
many hosts do not yet support it. It is not clear exactly how the user would control this functionality at this
time. For applications that provide manual control over enabled channels, you will get the best performance
if you only enable the channels you need. For applications that automatically maintain the enabled channels,
you will get the best performance if you only assign channels to outputs you really want to use, and only record
enable channels that you intend to record on.
CoreAudio Buffers
Audio channels are transported individually to the host in buffer sized chunks. The size of the audio buffers
has an effect on the CPU load of the audio application, as well as the round-trip latency from input to output
when the audio is routed through the host application for monitoring or processing.
Generally, the CPU load increases as the buffer size decreases. On the other hand, the latency decreases as
the buffer size decreases.
Since, in general, you want the lowest CPU load and the lowest latency, you will have to make trade-offs.
The mixer engine in Mobile I/O helps substantially with this issue, because for the common critical monitoring
configuration (monitoring while tracking external sources), the Mobile I/O mixer removes all of the computer
transport latency from the monitor path and allows you to decouple the latency from the buffer size.
In the case that you are trying to perform with a softsynth running in your host, Mobile I/O’s mixer does not help
decrease the latency since the signal is being generated on the computer. In this case you’ll want to minimize
the output latency by selecting the smallest CoreAudio buffer size possible. This will depend on your computer
hardware, the amount of processing you are doing, and the CoreAudio host you use. The MIO CoreAudio
driver has been optimized to support extremely small buffer sizes (down to 32 samples on Intel-based HW)
and best-in-industry safety offsets.
Setting The CoreAudio Buffer Size
The methods used to set the CoreAudio buffer size will vary from host to host. Some CoreAudio hosts provide
direct controls for adjusting the buffer size and others do not. If your host does not support setting the buffer
size directly, you will have to use the host’s default buffer size.
Sample Size
The Mobile I/O CoreAudio driver provides the CoreAudio host with 24-bit samples in 32-bit floating point
streams. It is the responsibility of the host to dither the incoming audio to 16-bit samples before recording
them, if you record 16-bit. If the host does not dither the samples to 16-bit, they will be truncated by the host
when they are recorded. For best recording quality, use your host’s 24-bit recording option.