Quickstart Guide

Updated for pb4


Your 3d Upgrade may have shipped with firmware that is slightly out of date. The firmware included in this package is v.6.0.62. The firmware that was preloaded on your board is compatible with the current beta software. v.6.0.62 fixes some small bugs that may or may not impact you depending on how you use 3d, including working around a bug in macOS 10.12.x that prevents the use of USB Audio.

If your board has older firmware you can 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.62 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 there 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 so 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).

That's the basics

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