Download:
The direct download link for the software is:
3d Early Access Documentation
There a preliminary manual available for the 3d Hardware and Software; it has been updated for release 12:
The manual is also viewable from the MIConsole3d > Help > Open MIO Manual… menu command. This command checks for updated versions of the manual and will download it from the MH server for you if there is a new version available. If your local version is up-to-date, it will simply open the PDF for you. If you plan of accessing the manual offline, you should use this command to download it while you are online, so that it will be available offline.
Component Versions
The component versions in this release are:
Package Version: |
pb12-50 |
Updated |
MIO Console Version: |
6.0.0 [6687] |
Updated |
Firmware Version: |
6.0.168 |
Updated |
Driver Version (Intel): |
2.1.03 |
Unchanged |
Driver Version (M1): |
2.1.02 |
Unchanged |
Note: MIOConsole will install driver 2.1.03 on Catalina and older; it will install 2.1.02 on Big Sur and newer. The next driver release will use the same version number on all platforms.
All changes since Release 12
Bugfixes
This release primarily addresses some bugs that crept into Release 12, including fixes for the command-key and associated control surface issues.
Update Avaiable Window
It also adds a new feature for future updates; once you are running pb12-50 or newer, when an update is detected, the Update Available window will also include release notes to tell you what has changed in the software since
the last release.
OS Sleep related issue
This release also attempts to address a widely reported, but very difficult to reproduce issue. Some users have found that when they wake their computer from sleep, if they left MIOConsole3d running, there was a good chance to that their attached boxes would be crashed and would require a power cycle to bring them back online. This does not happen for everyone, and has been very difficult for us to reproduce under controlled conditions at the factory. That being said, we believe that we have identified the root cause and have implemented a solution.
In testing, it appear that the issue no longer occurs, but we don't have a wide enough user base testing this to say that the bug has definitely been fixed.
If you have encountered this issue with your boxes in the past, please let us know if pb12-50 resolves that problem for you, or if you are continuing to experience this problem.
Firmware Update
NOTE: The included firmware (6.0.168) includes a new runtime for the DSP
environment; this new runtime has a different memory layout as compared to
earlier versions of the firmware, and as a result is incompatible with
previously created bootstates or hardware snapshots; this version of the
firmware will not recall bootstates or snapshots created on previous versions of
the firmware; you will need to reload the .cnsl3d file you used to create the
bootstate or snapshot and re-save the snapshot to the hardware.
New Features
- Update Available window: Add Release Notes display
- Update Available window: Add integrated downloader
- Update Available window: Add support for resizing window, and make it float so that the MC and plugins don't cover it up
- Detect if another copy of MIOConsole3d is running and alert the user
- Potential fix for box crash when system sleeps: Track system sleep/wake state and delay processing box attach notifications until 5 seconds after system is fully awake
- Update Available window: Support macOS Dark Mode
- About Box Window: Support macOS Dark Mode
- Graphs: Refine graph layout
- Graphs: Add support for curved wires in the graph
- Add Support for sorting in the channel mapping list
Bugfixes
- Prevent multiple copies of MIOConsole3d from running at one time
- Fix potential box crash with large mixer when box is connected to running console
- Fix layout of Record & Input monitor buttons under different control visibility and vertical sizing conditions
- Fix key command related issues:
- Correctly connect listenback control to toggle+momentary behavior
- Mark Hotkey command invocations as coming from a keypress
- Fix MC commands from control surface: remove unneeded and incorrect guards from command handlers after updating hotkey manager to respect up & down requested flag
- Ensure Hotkeys respect wantsKeyUpDownCallbacks flag on mapped commands
- Ensure crashlogs for newer OSes are included in bug reports
- Change DSP runtime version to avoid crash on state recall
- Update Available window: Fix window layout
- Update Available window: Ensure window title bar is not under menu bar
- Update Available window: Fix Release Notes view turning black when interacting with other elements in the window
- Fix dark mode support on 10.13.x and older
- Ensure notifications run on main thread to avoid crash on Monterery
All changes since Release 11
Release 12 of Metric Halo’s 3d software includes over 70 features, performance enhancements, and bug fixes. We strongly recommend everyone update to this version of the software and firmware.
Updates
The bulk of the changes for Release 12 are bug fixes and performance enhancements.
That said, there is a short list of new features:
- EuCon is now supported when MIOConsole3d is running natively on Apple Silicon
- Talkback key commands now support tap to toggle and press-for-momentary operation
- mkIV is fully supported and Release 12 enhances automatic mapping when switching between box types
- MBEq now has a separate Drive and Attenuation control; Drive reciprocally links to Attenuation
Bug fixes and performance enhancements include:
- Reduced CPU load for some UI drawing
- Fix for jumping headphone level when changing HP gain from front panel
- Fix for incorrect muting of inputs when session playback is started with no audio in tracks
- Fix for MC confusion when solo mode is enabled
- Fix for incorrect use of stale Session overview cache files
- Fix uninitialized variables in MBEq and GoodMath that could lead to full-scale whines or corrupt audio
- Fix for instantiation click in MBEq
- Fix for incorrect initialization in HaloVerb (which lead to stereo imbalance)
- Reduced DSP load when multiple output paths have graphs associated with them and different output sizes
- Fixes for a wide variety of corner-case crashers
Changes for Big Sur (macOS 11), Monterey (macOS 12) and newer
The MHLinkDriver is still a Kernel Extension as Apple has not replaced the Kernel Programming Interfaces required for MHLink with DriverKit interfaces. Updating the driver still requires User Consent, and will require a reboot.
After installing the driver:
- Open the Security & Privacy System Preferences.
- Authenticate to make changes.
- Allow the system to load your kext.
- Wait for the system to load the kext and rebuild the auxiliary kext collection.
- Reboot to load the new auxiliary kext collection.
Changes for Apple Silicon
This build of MIOConsole is Apple Silicon Native. It also includes the Apple Silicon Native version of the MHLink driver, and will automatically choose the correct version when installing the driver.
The software is at full-parity between Intel and Apple Silicon.
On Apple Silicon (M1), you need to ensure that your Secure Boot settings are configured to allow third-party drivers. Big Sur will warn you of this if your Secure Boot settings do not allow third-party drivers, but the instructions may be confusing.
You need to reboot into recovery and set the Secure Boot mode to Reduced Security, and check the check box allowing “Kernel Extensions from Identified Developers”.
Apple’s instructions for this are:
- Reboot your Mac with Apple silicon into Recovery mode.
- Set the security level to Reduced security.
- Allow the loading of third-party kexts.
- Reboot back to macOS.
After the Secure Boot settings have been changed, you can install the driver, and follow these steps to authorize it being loaded:
- Open the Security & Privacy System Preferences.
- Authenticate to make changes.
- Allow the system to load your kext.
- Wait for the system to load the kext and rebuild the auxiliary kext collection.
- Reboot to load the new auxiliary kext collection.
If you encounter problems getting the driver to load please read and follow the steps in this FAQ:
MIOConsole3d - New Features and Enhancements (since pb11)
- Rebuild internal hw routes when consolidating channels for a domain
- Make talkback key command gesture sensitive
- SuperGate: Update UI
- Make plugin preset readout more obviously a clickable control
- Enable EuCon Support on Apple Silicon with EuCon 2021.6 or newer
- Add support to remap internal hw routes to match current HW
- Add support for reciprocal output gain when changing drive in MBEQ
- Add support for mouse over highlighting of split bar handles
- Add support for masked drawing in MHNumericGlyphCache to support multi colored drawing
- Add output attenuation control and parameter to MBEq
- Add API to validate MHLink routing destination
- Plugins: Add support for tracking per-parameter touch in widgets
- Plugins: Add support for indexing to next/previous generic preset in flat preset list
- Plugins: Add support for resetting an analysis buffer
- Plugins: Add output attenuation control and parameter to MBEq
MIOConsole3d - Bug Fixes (since pb11)
- [ mhbug://0010230 ] Send DCA removed notification and clean up DCA indicies to allow for deletion from middle of the list
- [ mhbug://0010213 ] Adapt Monitor Key Commands to handle delivery of keyup messages (so that the commands dont toggle instantly)
- [ mhbug://0010036 ] Properly handle error when loading a corrupt file so we dont leave dangling UI elements to crash the console
- [ mhbug://0009960 ] Fix crash when “New Session” command is run with no domain
- [ mhbug://0009908 ] Handle all Metronome routing corner cases, such that the metronome always has a strip and is routed if you have enabled it and playback is active
- [ mhbug://0009861 ] Ensure auto mode doesn’t mute input sources when empty tracks playback in MIOConsole
- [ mhbug://0009170 ] Ensure MC Solo state is restored correctly so that Solo works after launch
- [ mhbug://0004995 ] Ensure that inactive MHMonitorDestinations are disconnected from DSP outputs so that they dont consume DSP resources unnecessarily
- [ mhbug://0010241 ] Fix crash when cancelling out of mapping window (or closing with close button)
- [ mhbug://0008092 ] Fix glitch that makes buttons non responsive in box map window after switching panes
- Improve Input Monitor button layout in mixer
- refrain from broadcasting parameter update to widget that has the parameter touched (to avoid UI jitter)
- force match by index and EP before doing EP and channel search (to avoid mapping problems between 8 chanel boxes and mkIV boxes)
- add guards against null root unit when accessing from Monitor Controler
- add check block for wrong API being called for parameter update due to incorrect overload
- Validate parameter object before using it
- Validate overview cache file before using it, and discard and recreate if it doesn’t match underlying file
- Bandsplit: Use correct Coefficient type
- Use the generic presets for MBEQ
- SuperGate: fix QueryManufacturerName when buffer is null
- Prompts are UTF-8: make sure the strings are constructed as UTF-8
- Performance: cache analysis buffer block to avoid reallocation overhead
- Only report parameter changes that actually happen
- Only push valid HW routes to the HW (resolves USB routing problem)
- MBEQ Fix normalization issue with hidden band flags
- HaloVerb: Properly label output ports for instances in graph
- Fix parameter type for hidden bands in MBEQ
- Fix incorrectly undrawn background in cue control window
- Fix destructor order
- Fix corrupted subgroup names in DynamicGroupTable builder
- Ensure trim gain locks are balanced even if we have multiple paths targeting the same channel
- Ensure bus output is updated even if bus is not assigned to a graph or unit yet
- Ensure block is written before it is pushed
- Avoid generating an incorrect drag image when segment is dragged out of the overviews area of the session window
- Always recompute bus soloed status rather than using cached value as bus to bus routes can yield false positive when solo is being cleared
- Allow new unit domain notifications to propagate so that the mixer is auto populated
- Add range check
- Add guard to avoid crash when preset server is not present
- Add explicit timeout to USB control transactions rather than using the default
- EQs: Fix “Freq Finder mode” in EQs other than MBEQ - where it already worked correctly
- EQs: Fix issue that could couple Plugin Bypass to EQ TF
- TransferFunction: Group touches in ad-hoc link
- TransferFunction: Improve redraw performance
- Plugins: improve safety checks for DSP analysis buffer
- Plugins: add missing reset routine
- Plugins: Protect against buffer overrun if process buffer size is larger than analysis buffer size
- Plugins: MBGoodMath Ensure gain state variables are initialized
- Plugins: MBEQ Fix typo, ensure PYE model is correctly initialized
- Plugins: HaloVerb: Fix incorrect number of Allpass passes that unbalanced the stereo reverb field (and made the reverb not sound correct)
- Plugins: Fix initialization code for GoodMath DSP
- Plugins: Fix compiler bug that generates NaNs on the host IR calc when code is optimized
- Plugins: Fix coefficient calc routine for RIAA decode
- Plugins: Explicitly remove DC component from offset in PYE model to avoid click on insert
- Plugins: Automatically adjust meter crawlback to match block size
Firmware Changes (since 6.0.160)
- Firmware: Fix jumping HP gain
- Firmware: Add support for mkIV