Quickstart Guide

Updated for pb6


Your 3d Upgrade may have shipped with firmware that is slightly out of date. The firmware included in this package is v.6.0.73. The firmware that was preloaded on your board is compatible with the current beta software. v.6.0.73 provides features required for this version of MIOConsole3d.

If your board has older firmware you should update the firmware using MIOConsole3d at your leisure after you get your system set up.

First make sure that no audio is running to the box. Then select the "Utilities > Update Firmware…" menu command in MIOConsole3d.

You will be prompted to select a firmware file (the 6.0.73 firmware is included in the download package) and once you select the firmware file MIOConsole3d will attempt to update the firmware on all connected boxes.

It should not take more than about 30-40 seconds to update the firmware per box.

After the firmware update window disappears, you will need to cycle to the power on your boxes for the new firmware to take effect. MIO Console does not reboot the boxes automatically.


The 3d Upgrade provides two different ways for you to connect the hardware to the computer.

USB Connection

With the current software, USB is only appropriate for connecting one box to the computer. USB utilizes the UAC2 class driver integrated in macOS. It supports 12 channels of I/O (12 in and 12 out) at all sample rates. While additional boxes connected to the USB connected box via MHLink may show up in the Console, the firmware does not yet provide a communication path between the Console and boxes chained via MHLink. If you will be using more than one box, you must use the MHLink driver and connection.

Note: A custom USB driver with greater capabilities and support for MHLink aggregation will be provided in a future beta release.

USB does support connection to other platforms (Win10, iOS, Linux); the device will show up as a class device and will have direct routes between USB and Analog I/O. These configurations have not received substantial testing at this time.

MHLink Connection

3d supports direct connection between your computer and MHLink. In order to connect via MHLink you need:

You may connect through a modern Gigabit Ethernet switch if you want to share the Ethernet port with general networking functions. While using the switch is supported, it is possible that a given configuration or network usage pattern may not be 100% reliable. If you find the shared connection to be unreliable, dedicate an Ethernet port to MHLink.

When using MHLink as the connection to the computer, you can chain multiple boxes via the included short Cat 5e patch cables. The system will automatically recognize the chained boxes and aggregate their resources.

The MHLink Audio driver supports up to 128 I/O (128 in and 128 out) at up to 192k. You may need to use large host buffers for 128 channels of I/O especially at higher sample rates. The driver defaults to 32 I/O. MIO Console provides a menu to control the number of channels provided by the driver; currently you must have MIO Console in order for your I/O channel preference to be re-asserted if you disconnect and reconnect your hardware.

MHLink Driver

The MHLink driver provides control of the Monitor Control gain of the directly-connected ULN-8/LIO-8 box via CoreAudio properties. This allows you to adjust the gain of the MC on the directly connected box via the media keys on the computer keyboard (even if MIO Console is not running).

Note: Steinberg products have a setting that causes them to reset the gain control to 0 dB on launch. This may cause your monitor gain to jump. If you do not want this behavior, you need to disable this preference in Cubase/Nuendo. The setting is “Set Device Attenuation to 0 dB” inside the “Control Panel” of the audio device. This needs to be off.

The Driver will discover devices connected to the computer over Ethernet. Currently the driver, console and firmware do not provide any support for arbitrating or sharing the hardware between multiple computers. Only run one copy of MIO Console at a time if multiple computers can see the same 3d hardware via the network.

If you connect multiple 3d units to the network, each will appear in its own MHLink clock domain (MHLink cannot heal the clock across a switch). To have an aggregated system, the hardware must be daisy chained via the MHLink ports, with one end of the chain connected to the computer or the network. Do not create Ethernet loops.

MIOConsole3d and Routing

The main control software for 3d is MIOConsole3d. With the current firmware, you will need to launch MIOConsole3d to establish the routing within the system. If you will not need to make changes to the routing, you can quit MIOConsole3d after the routing is established. Alternatively, you can close MIOConsole3d’s windows; this will reduce the CPU load of MIOConsole3d to almost 0.

MIOConsole3d does not implement ConsoleSync yet, so re-launching MIOConsole3d will cause an audio dropout as the hardware configuration is re-asserted.

When you launch MIOConsole3d for the first time, it will discover the hardware that is attached. If you do not have any hardware attached, there will not be much to see. The software does not currently support creating hardware “virtually” so you will need to have hardware attached to work with the software. Once you have attached hardware, MIOConsole3d will save its state to your hard drive, and then you can load and modify saved configurations without any hardware attached.

MHLink Domains

MIOConsole3d and MHLink organizes your hardware into “MHLink Domains”.

An MHLink Domain is a set of boxes that is connected together via an MHLink daisy chain. The MHLink daisy chain provides a clock and routing backbone that is managed by MIOConsole3d.

If you have more than one domain (either connected or via saved states), they are managed as separate domains in MIOConsole3d; the UI for MIOConsole3d allows you to control one domain at a time; the currently active domain is selected from the System Status panel in the Mixer window.

Each MHLink Domain has a Root box. This is the box that has the direct connection with the computer running the MIOConsole3d. If you reconnect the boxes in a different order, and the directly connected box changes, it will be recognized as a different domain. So, be consistent; choose the box that you will use as the root box of the system and stick with it.

MIOConsole3d will re-route automatically if you change the order of the boxes that follow the Root box.

Note: MIOConsole3d does not currently support mapping the configuration between different boxes or different domains. We will be providing a complete remapping solution in a future beta.

Main Console Window


The Main Console window has two primary areas; the System Status pane on the left and the Mixer pane on the right. You can hide the System Status pane if you like.

System Status pane

The System Status pane is further divided into the Domains pane (top) and the Link Group pane (bottom).

The Domains pane lists the MHLink domains known to MIOConsole3d (either due to a current connection or from being restored from a file). Each domain has a domain header which indicates the domain root box, the domain clock source and sample rate, and if the domain is the currently selected domain. The clocks source, sample rate and selection indicator are also controls; you can change those parameters by clicking on the controls.

Below the domain header are listed each of the units in the domain, and the unit configuration and status is include in each unit pane. The units are listed in daisy chain order.

The Link Group pane lists all the link groups in your mixer; you can enable or disable them, rename them, or change the link mode from the link group pane.

Mixer pane

There are actually 3 Mixer panes in the window; two are collapsed by default. Each Mixer pane can provide an independent view of the mixer. You can choose the types of strips and strip elements that are shown in each pane independently. If you choose to show no strips in the pane it will collapse.

By default the leftmost mixer pane is configured to show all strip types, and all strip elements. The master strips for the busses are created first and will be displayed leftmost in the pane. You can click and drag the strips to reorder them. The strip order set in the mixer pane will also be used for the control surface if you use one.

The hamburger menu for each pane allows you to control the configuration of the pane.

Most of the elements of the mixer are self evident, but there are a couple of items that are worth pointing out:

The Mixer Menu provides global commands for the mixer; in particular, there is the "Configure Mixer" command which is a bit different than what was in 2d. This command allows you to set the Main bus width, enable or disable Hard Mutes, control the number and configuration of the Auxes, Groups, DCA's and Mute Groups.

Routing and clocking

MIOConsole3d utilizes the abundant routing resources provided by the 3d hardware and MHLink to automatically manage the internal and box-to-box routing for you. Similarly, clocking is also automatically managed via MHLink; all boxes in the domain are automatically synced to each other and the entire domain is synced to the clock source you select for the domain.

Rather than worrying about how audio gets from one box to the other, you just deal with audio ports and busses.

MIOConsole3d automatically configures the mixer and routing when new hardware is discovered using the following rules to make it so that you don't need to configure things for simple use cases.

When a new domain is created:

The Main bus is selected as the source for the Monitor Controller, and the Monitor Controller has output paths for Analog 1+2 out on the root box and the headphones on the root box. The sources and output paths can be edited or removed entirely if you don't want to use the monitor controller.

When additional new hardware is connected to an existing domain:

If you want to add digital inputs you can do that manually. You can also add more inputs from the computer to the mixer (e.g. for using the 3d Mixer to mix the outputs of your DAW) or adjust the routing to the computer from the box.

Monitor Control Window


By default, MIOConsole3d will create a Monitor Controller for your domain. If you don't want to use the monitor controller, you will need to delete the output paths in order to return Analog 1+2 and the headphone outputs to manual control.

MIOConsole3d automatically adds all the busses as sources for the MC. You can also manually add other sources (e.g. from the computer or from physical inputs). You can also add more output paths.

The controls in the MC are relatively self evident; the speaker icons will mute the associated output channel when toggled on. The "Monitor > Speakers Toggle Solo" menu item allows you to switch the speakers to act as solos rather than mutes.

The Monitor Controller in MIOConsole3d also supports attaching a +DSP graph to each output path (use the Monitor > Edit Current Monitor Output Graph menu command to add output processing). This can include EQ, Bass Management, etc.

Cue Controls (added in pb4)

The Output Cue section provides you with an arbitrary number of output controls.

Each cue can be driven from any of the busses in the system, or it can be set to derive its input from the currently selected source in the Monitor Controller (MC).

Each cue has an independent output path which can be set to any of the MC supported output types. Each cue controller uses the MC engine for its control of routing, gain, delay and output graph processing, so it can do all the things the MC can do.

With the introduction of the Cue section, the default monitor configuration for a newly discovered MHLink Domain has changed (a new domain is discovered when you connect a box to the computer for the first time, or after you trash your preferences and then connect a box).

Rather than assigning the Headphone output for the directly connected box to a MC output path, it is assigned to a Cue controller. When it was assigned to an output path, you had to choose between Monitors and Headphones. As a Cue, the headphones are automatically multed from the Monitors and have their own independent gain control.

The Cue Controls are in their own window which is resizable.


There is a menu item in the Monitor Menu to add a new Cue “ Monitor > Add Cue Controller”. By default, Cue Controllers are setup with the following parameters:

To configure a new Cue (or an existing one) click the "Output" Path selector control in the bottom left of the Cue; you can configure the Cue Output just like you would configure a MC Destination. The Name of the Cue Output is used as the name of the Cue.

Each Cue has a Hamburger Menu; you can use the Hamburger Menu to control the following items:


Please note that Cues are not Mixes. Cues are output points with gain and routing controls that can be fed by specific mixes, the current monitor controller source, or a mix of a source and the talkback signal. They serve as named output mults with direct access to associated output gain controls.

Cues form the basis of the routing points for Talkback and Listenback.

There is a menu command in the “Monitor” menu (along with an associated key command) to add a new Cue controller

There are two new key commands for triggering talkback and listen back:

By default, newly created Cues are not slaved to either talkback or listen back (currently you need to enable either or both of these per cue).

Talkback provides the ability to route a specific input to any sub-set of the cues in the system; it also allows you to control the amount that the Cue source signal is dimmed when talkback is active (from -6 dB down to -60 dB [which is effectively mute]). The Talkback signal is mixed with the selected source.

When talkback is enabled, the following happens:

When talkback is disabled, the following happens:

Listenback provides the ability to route the source that the engineer is currently monitoring through the MC to any sub-set of the cues in the system. This allows playing back a mix of the take to any or all of the monitoring cues in the system without having to re-patch.

When listenback is enabled, the following happens:

When listenback is disabled, the following happens:

Solo Modes: PFL/AFL/SIP (added in pb4)

This build also adds PFL/AFL support for non-destructive soloing. If PFL/AFL functionality is not something you need, you don’t need to change anything, and it will all keep working as it always has with solo-in-place mode.

Let’s start by describing what the different modes are, and why you might want to use each one:

SIP - Solo-in-place is the solo that everyone is used to in DAWs. It is “destructive” in the sense that the solo is done on the bus itself, and the active mix is replaced with the submix of the currently soloed channels.

It is simple to describe and understand. It is completely appropriate for normal studio mix/production work where the current mix is only being used for monitoring and making mixing decisions.

In the context of MIO Console, solo-in-place mode is applied per-bus, so, for example, you can solo channels in your main mix without having any effect on your aux busses (so monitor mixes will continue to run untouched).

Again, this is the default, and if you are happy with it you don’t need to change anything.

The other two modes (PFL & AFL) utilize a dedicated bus for soloing, and leave all the other busses in the system untouched when channels are soloed.

These are a bit more complex because they involve routing as well as soloing. So why would you want to use either of these modes?

Well, these solo modes are appropriate for operations where you need your mix to be unaffected by any soloing you need to do for your own transient monitoring needs.

For example, if you are mixing a live show, your main mix is sent to the PA. If you want to solo a specific channel to be able to make, say, an EQ decision, you certainly don’t want the main mix (which is going to the PA) to only have the soloed channel; rather you would want it to go to a dedicated monitoring system that you are using for your solo’ed channels (whether a set of headphones or the studio monitors or something else), while the primary mix is undisturbed.

Even if you are doing live recording that doesn’t involve sound reinforcement, you may be sending a two-bus mix to a backup recorder or have a rough mix being recorded on the computer along with the individual channels of the multitrack (e.g. a production mix). In this case, you still would want to be able solo channels without affecting your production mix.

For these sorts of scenarios, we have PFL and AFL.

When one or more channel is soloed when either PFL or AFL mode is selected, the solo’ed channels are routed to a dedicated solo bus. The solo bus is routed as the source to any of the Monitor or Cue controllers that have been set to listen to PFL/AFL; that source routing overrides the selected source for the relevant controller while the solo is active. When there are no solos active, then the controller switches back to getting its source from the source that is selected in the controller.

The solo bus input routing is as follows, depending on the solo mode:

Choose the solo mode that works best for you in the Mixer Config dialog. You choose between SIP, PFL or AFL (using the popup menu). This is currently stored as part of the .cnsl file, per domain.

The Solo Bus gets a master strip in the mixer. You can use this for a number of different functions:

  1. You can route it to the host. This would allow you to, for example, send the solo bus to ‘Foo and be able to always have ‘Foo analysis for whatever you are currently soloing.
  2. You can route it to some physical output; this could be for a dedicated solo output path (this is probably not that important because of the Cues).
  3. You can insert processing on the solo bus if you so desire via the insert on the Solo Bus Master.
  4. You can adjust the output level of the Solo bus; you can use this to adjust the padding that is applied to the PFL signal before it is sent to the MC/Cues.

Now, the flexibility of this system is based upon your ability to determine what signals will source your MC and Cues, and whether or not the MC and/or Cues slave to the solo bus when PFL/AFL is active.

If the MC/Cue is set to Listen to PFL/AFL, then soloing will override its source signal, and source it from the solo bus. This allows you to choose which output get the solo signal, and which ones don’t get overridden.

For example, you might want your Control Room monitors to NOT get the solo signal, so that anyone sitting in your control room continues to hear the complete mix, even when you are soloing onto your headphones. Alternatively, (and this is the default), the solo is reflected on your control room monitors as that’s the primary monitoring setup for your mixing work.

Now, your MC and Cues also have support for source selection, and one of the sources is the solo bus. So you could, for example, have your headphones sourced by the Solo bus; if that’s the case, the cue would be muted until you enable a solo; this would allow you to have HP set up specifically for soloing that did not make any sound until you hit the solo.

For recording, you would probably have your HP getting your production mix, and listen to PFL/AFL so that if you hit solo, you get the solo in your cans, and when you release the solo, you go back to the production mix.

If you solo a master strip, that will cue the master through the solo bus. Note that PFL and AFL are the same in this case; the bus outputs are routed post fader in all cases.

Note that by default, solo is latching and cumulative (so clicking additional channel solos adds them to the solo set). If you hold the command key when clicking a solo button it functions as exclusive solo — it will clear the solo on all other channels.

Character (added in pb4)

In 3d we have implemented Character as an instantiable plugin, so you can insert it anywhere in the signal chain (not just at the input of a strip). You can also use it in a graph.

There are two flavors of Character that have been added:

Character is very similar to the Character that was in 2d. It does, however add the following:

These additional features were inspired by the Production Bundle version of Character.

MHCharacter has the the same internal processing, but it wraps the processing in an oversampling block, which can make a difference for heavier distortion (especially with higher drive). MHCharacter does use more DSP power than Character (2x to 3x).

Digital Port Status and Control UI (added in pb5)

You can access the Digital Port Status and Control UI from the system status pane. Each box has a "Digital Port Status and Control UI" button (which looks like "01010..." in the upper right corner of the pane, circled in red below) in its status pane:


Click the "01010..." to pop up the Digital Port Status and Control UI for that box:


The UI has 3 columns:

The UI will list all the installed ports for the device (so it will also show any digital ports that are installed via EdgeCard).

For most digital port types (AES/SPDIF/MADI) the input can either be locked or not, and there is no configurable mode for the output.

For the ADAT Optical ports each input port can be locked to either ADAT or TOSLINK (Optical SPDIF) or unlocked (if there is no valid input signal of either type on the port). The output ports can either send ADAT (8 channels) or TOSLINK (e.g. Optical SPDIF - 2 Channels). You can select what signal type you want to send on a per port basis with the associated popup menu.


Optical Routing (added in pb5)

The 3d Card has a SPDIF transmitter and an ADAT transmitter for each Optical Output Port. When you select between the output port mode, you are selecting which transmitter is physically connected to the port. Each transmitter has its own output routing in the system. As a result, when an output port is set to TOSLINK mode, you must route to the associated TOSLINK channels in order to get output. When it is set to ADAT mode, you must route to the associated ADAT channels to get output.

When an input port is receiving TOSLINK the hardware automatically determines the incoming format. The first two channels of each receiver block will carry either the first two ADAT inputs for the port or the SPDIF inputs for the port, depending on the received signal. So you can route from the TOSLINK input channels or from the first two channels of the associated ADAT block. When it is receiving ADAT, you should use the associated ADAT inputs to have access to all of the ADAT channels.

Delete Offline Unit/Domain (added in pb5)

When you use multiple boxes and systems it is possible to get an offline Unit or Domain in your console setup that is now redundant and unneeded. pb5 provides support to allow you to remove these offline items from your setup.

To remove an offline Unit from your setup:

To remove an offline Domain from your setup:

Polarity Invert (added in pb6)

Polarity Invert

This version of the software and firmware provides support for hardware Polarity Invert for all input strips. This applies to all inputs (Analog, Digital, Host, Bus). Since this is done in hardware, the firmware must be updated for it to function, and it does not consume any additional DSP.

The UI control for this appears in the headamp section of the input strip.

When Polarity Invert is enabled, the input signal to the strip will have its polarity flipped at the router; as a result the polarity flip will be applied to all destinations of the signal including any pre-insert To Host or pre-insert direct out routings.

The Polarity Invert is per-strip; as a result, you can have two different strips with the same input source with independent Polarity Invert settings.

Multichannel input strips (added in pb6)

MIOConsole3d now supports setting input strips to Multichannel mode in addition to mono (pannable) and stereo modes.


To make a strip multichannel, just select the "Multi" setting in the source selector when choosing the source for the strip; this will automatically make the source match the width of the first bus that the strip is assigned to. As with stereo strips, multichannel strips are direct-routed to the bus(es) they are assigned to.

Support for Side Chain (added in pb6)

A number of the plugins included with 3d have internal support for routing an external side chain source to their internal detectors (MIOComp, MIOLimit, MIOStrip). This release of MIOConsole3d exposes the UI required to allow you to choose an external source and route it to the sidechain inputs of these plugins. Comp with SC Input

When you display the UI of a plugin that has support for an external sidechain input, the header bar in the plugin window will change to provide a routing control to allow you to select an input or bus as the source for the sidechain input. The sidechain inputs for MIO Plugins are mono, so if you select a bus as the source, the first channel of the bus (generally L) will be routed to the sidechain input, and the remaining channels in the bus will not have any affect on the signal.

The header bar Sidechain In control only selects and routes the source for the sidechain input; this does not automatically select the sidechain input as the signal source for the detector in the processor. Each plugin has controls within the plugin UI to allow you to choose between the sidechain input and the primary signal input as the source to the detector.

In MIOComp and MIOLimit the detector source selector control is in the same place, at the top of the UI labelled "Detector Source".

For MIOStrip, each of the integrated dynamics processors (the Gate and the Compressor) have their own independent detector source selector controls labelled "Src:" and positioned above their integrated pre-detector EQ block controls.

Additional PFL and AFL modes (added in pb6)

The previous release of MIOConsole3d (pb5) added support for PFL and AFL. Due to an oversight, PFL and AFL always sent mono source signals to the Solo bus as panned center. While this was not original designed behavior, it is a useful mode in some circumstances. This release of MIOConsole3d causes PFL and AFL to send mono source signals to the solo bus with same panning as set for mixing on the strip. It also adds two new modes as options for the solo logic "PFL (mono)" and "AFL (mono)". If either of these modes are selected, soloing will PFL or AFL with mono sources *and* multichannel sources folded down to mono on the solo bus.

Decoupling of Strip Width and Strip Scale (added in pb6)

The previous release of MIOConsole3d (pb5) had one control over the entire scale of the mixer UI - Strip Width. This control set the width of all the strips, and also adjusted the scale of all the controls within the strips to fit.

This release of MIOConsole3d decouples these controls; it adds a new "Set Mixer UI Scale" command to the Mixer menu, which globally sets the vertical scale of most of the controls in the mixer strip; this makes the inserts, buttons and readouts smaller, and reduces the size of the font used in the strips; it does not have any effect on the width of the strips or the scaling of the fader or meters.

The "Set Mixer Strips Width" command now sets the width of the strips on a per-strip basis; it is applied to the currently selected strips in the mixer UI. The Fader control width and scale is unaffected by the width of the strip. The meters will be automatically scaled to fit in the available space remaining in the strip (which is determined by the width of the strip and the number of meters in the strip).

Strip meter updates (added in pb6)

The default width of each meter in the strip is larger than before, and when the width of the strip is reduced enough, the space between the meters will be removed to preserve the display of the active elements and to ensure that all of the channels are visible on the strip regardless of the width and channel count (e.g. all 8 meters of a 7.1 strip are visible at the narrowest strip setting).

The meters now have the same calibration as the channel faders and the layout has been adjusted so that the dB calibration is shared between the meters and the fader. The visible clip indicator has been enlarged to make it easy to see at all vertical strip scales.

Basic Dolby Atmos® support (added in pb6)

The Monitor Controller now has support for Atmos 5.1.4 and 7.1.4 channel layouts for I/O, including speaker solo/mute support for the overhead channels. There is no special processing implemented to support this and the mixer does not provide support for these bus widths.

These new I/O paths add support for designated overhead speakers and the MC UI has support for Solo/Mute control for the 4 overhead speakers. As with all output paths in the MC you can configure the output graph. The output graph for these new configurations has all the input and output channels, including the overhead channels, available.

Monitor Controller 7.1.4

These output paths (Atmos 5.1.4 and 7.1.4) have more than 8 channels in them (10 and 12 channels respectively); you can route the outputs to multiple boxes in your MHLink'ed system, and the monitor controller will automatically handle the system routing and gain control to use multiple boxes as a consolidated monitor controller.

If you have need for additional large channel count output configurations, please get in touch with us to let us know what your needs are, and we will work to add these configurations to the system.

That's the basics

This guide covers the basics. Many of the items not explicitly covered are very similar to 2d or are relatively self evident. We'll be updating the documentation over the coming weeks to include more items and to address things in more depth.