MIDI Mixer Changelog

What's new in MIDI Mixer 2.3.0

May 24, 2021
  • New:
  • MIDI Mixer Plus
  • Better automatic updates
  • Fix:
  • Removed some useless dev tools from being installed in production builds
  • Fixed some issues around MIDI Mixer not being able to recover after the machine goes to sleep
  • 48 small bug fixes from anonymous error reports; mostly handled errors that needed some attention
  • Improvement:
  • Better performance of peak meter updates when more than 4 faders are actively reporting
  • Updated many internal dependencies to ensure we're on the latest, safest tech
  • Crash reports sent are now compressed
  • Faster and safer log rotation with overall smaller logs
  • Show targeted .exe when assigning groups
  • 001-860ab36d6d026bfa62c8da2d7067484052ed866b
  • Added a "Restart" button to the tray menu to circumvent some sporadic issues requiring a restart of the app - this is a monkey-patch and isn't intended to be a long-lived option. Famous last words, eh?
  • A few micro performance improvements from anonymous error reports

New in MIDI Mixer 2.2.4 (Feb 13, 2021)

  • Fixes:
  • Fixed errors sometimes being thrown when a profile is loaded or unloaded
  • Reduced focus window cache from a max of 60 seconds down to 20 seconds
  • MIDI Mixer's Core will now survive if a process dies between identifying it and retrieving its name
  • Fixed an issue for some users where internally listing possible file paths of a sound source could crash MIDI Mixer's Core
  • Fixed . in profile names breaking internal config

New in MIDI Mixer 2.2.3 (Feb 6, 2021)

  • Fixes:
  • Fixed high CPU usage when focusing on a Microsoft Store (UWP) app (thanks, Lucius)
  • Rename Akai LDP8 profile to the correct Akai LPD8
  • Fixed Akai LPD8 profile not using Velocity Sensitive mode for its pads
  • Fixed nanoKONTROL Studio preset using the incorrect input/output
  • Add the knobs in to groups for the nanoKONTROL2 preset

New in MIDI Mixer 2.2.2 (Feb 1, 2021)

  • Features:
  • Profiles no longer require an output:
  • This seems an odd feature, but previously profiles required an output in order to function. For some devices (mainly homebrew Arduinos) this caused some issues with the MIDI driver hanging if there was nothing set up to listen to the output messages. Even worse, the workaround was to define the MS WaveTable Synth as the output! Eek!
  • There's now no output ever required, so homebrew users rejoice!
  • Fixes:
  • Fixed being able to open multiple copies of the MIDI Mixer UI
  • Fixed tracking some extraneous or short-lived processes which was causing some churn
  • Removed output from LaunchPad preset to resolve occasional hang
  • Fixed change throttling sometimes stumbling over itself, firing contrary updates to a device
  • Fixed OSD easing volume changes, resulting in a stumbly view of the volume
  • Fixed incorrect handling of PolyAftertouch messages across input, output, and test values (thanks, @wildcat37)
  • Fixed control learning not taking in to account velocity/pressure; it will now set the velocity and the "Velocity Sensitive" option if applicable
  • Fixed being unable to use F13-F24 keys as key binds

New in MIDI Mixer 2.2.1 (Jan 12, 2021)

  • Fixes:
  • Fixed profile names with # in being misinterpreted as a preset and not being removeable.

New in MIDI Mixer 2.2.0 (Jan 10, 2021)

  • Features:
  • Peak meters added:
  • The introduction of peak meters means that you can now have a live representation of the group's output audio! This works great for the more feature-rich boards like the X-Touch Extender and QCon Pro, but can also be used for some smaller boards with LEDs, like the X-Touch Mini's ring lights.
  • UNGØDLY.DESIGN Launch Pad preset:
  • Huge thanks to @UNGODLY#1526 in Discord (owner of UNGØDLY.DESIGN) for contributing a profile for their beautiful Launch Pad. Anyone who grabs this wonderful device can now enjoy plug'n'play behaviour when installing MIDI Mixer!
  • Behringer X-Touch Extender preset:
  • The bloody brilliant @Giaco#0178 in Discord (check him out on YouTube and Twitch) worked very closely (and patiently) with me to create a profile for the Behringer X-Touch Extender, an exceedingly feature-rich device and a great testing ground for lots of exciting features like peak meters and motorised faders!
  • After finding many small niggles and bugs, this preset is a prime example of a Mackie Control interface and should be easily applicable to many other such devices! Thank you so much to @Giaco#0178 for his time and effort on this preset. It's awesome!
  • Fixes:
  • MIDI Mixer is now much better at updating a "Focus" group's volume and mute status in realtime
  • Removed "Show OSD" button type until we have an extended OSD
  • Fixed MIDI Mixer panicking in Windows 10 version 20H2 when shutting down, sometimes causing needless errors being thrown to the log
  • Fixed MIDI Mixer's core sometimes not rebooting if intentionally killed by a user
  • Fixed crash for some users if they didn't have some C++ tools installed
  • Fixed devices sometimes not being listed when choosing input or output devices to switch to in the "Buttons" tab
  • Fixed crash if an audio device wasn't ready to be accessed when fetching initial volume / mute status
  • Fixed "System Sounds" (and other Windows services) not appearing as being assigned in the Groups tab
  • Fixed a very small memory leak (approx. 2KB/hour in my usage) when an application or device deregistered itself with Windows
  • Optimised many paths around changing the volume of slower audio devices which is expected to fix "lag" for some users when changing volumes
  • Fixed crash when changing a default device if that device can be used as both an input and an output

New in MIDI Mixer 2.1.2 (Dec 3, 2020)

  • Fixes:
  • Handle initial core boot failing sometimes if a device is mid-boot
  • Attempt basic override of some board-controlled LEDs by updating values when a push value isn't given
  • Fix app-wide support of "Position" messages
  • Fix volume indicators not supporting all MIDI message types
  • Fixed indicator defaults being wildly off sometimes
  • Fixed channel numbers being off when sharing a profile
  • Fixed channel numbers being off when learning a control
  • Fixed channel numbers being off when sending test outputs to an indicator
  • Fixed default values being off when sending test outputs to an indicator

New in MIDI Mixer 2.1.1 (Nov 22, 2020)

  • More reliable handling of key combinations
  • Ask before removing a profile (sorry, @Zatore!)

New in MIDI Mixer 2.1.0 (Nov 21, 2020)

  • FEATURES:
  • Key Combinations have been added as a generic button type!
  • This means you can now trigger an arbitrary combination of keys to be sent when a button in pressed on your MIDI board. You can find the "Send key combination..." option in the drop-down menu when assigning a button.
  • Customisable infinite rotary sensitivity:
  • Different rotaries have different feels, so you can now adjust the number of "steps" an infinite rotary has from 0% to 100% volume.
  • Restructured Group editor page:
  • The page has been simplified a little bit, with the addition of some small buttons to get more information about the various inputs and how they can be used. This is hopefully one of many passes to try and improve and simplify the UI.
  • Korg nanoKONTROL Studio profile:
  • Huge thanks to @Fuerchtenichts#9826 in Discord who has been doing incredible work creating a profile for the Korg nanoKONTROL Studio. They've even contributed this wonderful walkthrough PDF to get started with the preset.
  • This has also introduced the idea of "notes" for profiles and presets for some of the more complex MIDI controllers which require some set-up before being able to use.
  • Customisable logarithmic curve:
  • The logarithmic curve is hugely helpful, but even I've wanted to tweak it a little bit here and there to better fit my needs. Now you can!
  • There's now a slider in the Settings page that allows you to adjust the steepness of the curve so you can tweak to your heart's desire.
  • FIXES:
  • Channel numbers when editing a Control now correctly show channels 1 - 16 instead of 0 - 15.
  • Fixed another crash for pre-1804 Windows 10 builds that didn't have access to some .NET libraries
  • Fixed indicators sometimes flashing to min/max values when profile initially loaded

New in MIDI Mixer 2.0.9 (Nov 8, 2020)

  • Fixes:
  • Fixed LED indicators not obeying min/max values
  • Only show profiles in tray menu selection if they have a valid input and output
  • Fixed crash when a fader was moved before the UI had bootstrapped
  • Fixed crash when a device is having internal issues and a volume change is attempted
  • Misc:
  • Switched the OSD border to black (#7)

New in MIDI Mixer 2.0.8 (Nov 5, 2020)

  • Features:
  • Added deeper support for infinite rotaries (thanks, @killyungkim#5920)
  • Another board appeared demonstrating yet another way for manufacturers to utilise infinite rotaries, so some more options have been added to the UI to account for this. In addition to setting a "down value" and an "up value", you can also now specify which direction the value will move the faster you move the rotary.
  • Image:
  • Added new profile for Akai Professional Fire (thanks, @killyungkim#5920)
  • We've had a wonderful profile contribution from @killyungkim#5920 after they checked out one of the Getting Started videos and went hunting for LED info online! An awesome new device to have as a preset with a tonne more future functionality it can support!
  • Fixes:
  • Fixed unassigned groups sometimes triggering OSD to display
  • Some small security updates
  • #7 - Added a small blue border to the OSD so it's clearer on light backgrounds

New in MIDI Mixer 2.0.7 (Oct 29, 2020)

  • Fixes:
  • Fixed MIDI Mixer Core dying when encountering a hanging audio device (thanks, @Soepketel#0001)
  • Other:
  • Some security updates for the UI

New in MIDI Mixer 2.0.6 (Oct 25, 2020)

  • Fixed crash when attempting to change the volume of an app running from a temporary external drive
  • Fixed crash when selected profile is inadvertently also being used as a passthru device
  • Fixed core crashing when attempting to boot on an x86 version of Windows without .NET 2.0 explicitly installed

New in MIDI Mixer 2.0.5 (Oct 21, 2020)

  • Fixed rare crash when using Windows 10 v1804 triggered when changing device volume
  • Fixed errors sometimes causing crashes on initial boot when the desired MIDI device is in use by something else

New in MIDI Mixer 2.0.4 (Oct 18, 2020)

  • Fixed app incorrectly logging an expected error when closing a MIDI device
  • Added better logging for in-app crash reports
  • Fix mishandling of SYSEX MIDI messages when using a passthru device
  • Fix OSD crashing when triggered incorrectly while setting initial values

New in MIDI Mixer 2.0.3 (Oct 8, 2020)

  • Ensure that the app doesn't try to run on Windows versions below Windows 10. Only Windows 10 and above is supported.
  • Remove ability to accidentally assign multiple apps to a Group when using the tray menu.
  • Don't throw errors when MIDI Mixer's Core closes successfully when the app is closed.
  • Handle a process dying while being created within MIDI Mixer.
  • This was an issue when a short-lived process would make a sound and immediately exit. If it happened, MIDI Mixer's Core would die. This no longer happens.
  • Fixed MIDI Mixer's Core becoming out of sync with Windows audio state.
  • MIDI Mixer's Core expected Windows to be all stable and lovely, but had no idea how to react when Windows did something unexpected. Upon being met with a catastrophic de-sync (indicating that something has mismanaged audio resources), MIDI Mixer's Core now just silently resynchronises itself.

New in MIDI Mixer 2.0.2 (Sep 27, 2020)

  • Ignore Clock messages from devices when learning controls

New in MIDI Mixer 2.0.1 (Sep 26, 2020)

  • Fixes:
  • No longer errors when turning off start-on-boot when it's been turned off recently
  • Fixed not being able to switch to a single audio device using a generic button

New in MIDI Mixer 2.0.0 (Sep 26, 2020)

  • Breaking changes:
  • MIDI Mixer v1.x.x should be uninstalled when using v2.x.x.
  • Because the shape of the app has changed so much, it's seen as an entirely new one. There aren't any expected issues if you keep both versions installed, but for safety and simplicity I'd recommend uninstalling v1.
  • Custom configurations will need to be rebuilt
  • One of the biggest changes is the way the app manages custom profiles. Some new presets have been added in an effort to reduce the impact of this. More on this below (it's a huge improvement).
  • Notable features:
  • Brand new profile builder:
  • Setting up custom profiles was perfectly functional but it was still a huge pain in the ass.
  • You'd have to find MIDI maps online or another program to get the MIDI numbers to input in to the boxes. The worst part, however, was that remapping a button to have a different function (mute instead of assign, for example) required you to go back to basics and do the exact same MIDI investigations all over again.
  • With the new system, you set up all of the controls on your board (faders, buttons, lights, indicators), then add them in to groups that you can assign applications to.
  • Wanna make every button light up when you mute Discord? Easy.
  • Want your fader to use some LEDs elsewhere on the board to show its current volume? Sorted.
  • Creating the controls in the first place is all supported by big ol' "Learn" buttons everywhere too, meaning no more scrawling through PDFs trying to find what mad messages your board outputs: you just hit "Learn" and hit the button.
  • Because of this new system, you only ever have to set your board up once. If you ever want to change anything around after that, it's an easy as selecting the controls you've made from a drop-down list!
  • Button assignment in the UI:
  • Assigning buttons from the tray menu was a pretty nasty experience. Even worse, because of the limitations a single drop-down menu imposes, extra functionality was essentially hidden inside the damned thing.
  • How many people knew you could assign a button that switched between multiple default output devices? Not many of you, eh?
  • Button assignments:
  • There's now a lovely UI for assigning these buttons, including more in-depth actions like setting default audio devices.
  • Even better, it provides a list of buttons that are currently in use by groups to make you aware of keys you can pull out to use as generic buttons instead.
  • Stability
  • It's a boring word, but for an application that will likely run for the entire time your PC is on, it's kind of important.
  • A huge effort has been made both for the new UI and the existing backend to ensure that the app doesn't fall over on you. This has only been a problem for a subset of users, but the main difficulty in those cases was that the errors were silent meaning debugging was hard for me and the experience was frustrating for you.
  • Auto-updating:
  • It's back, baby.
  • v1.x.x had a lot of issues with auto-updates. Not only did they seldom work for users, but they required a huge effort on my part to orchestrate and maintain. One of the biggest problems, too, was that there was still no consideration for updating MIDI Mixer's Core: the part that actually integrates with Windows and does the heavy lifting.
  • With v2.x.x, updates are back and going strong. For the most part the updates and automatic and are tiny, differential downloads. You'll be notified when they're available, but it's intended that the program will stay up-to-date even if you just let MIDI Mixer boot up with your PC in the morning and shut down at night.
  • OBS integration
  • This isn't a part of the app yet, but hold up. Let me explain.
  • I used to stream on and off and like many a streamer wanted to be able to control various pieces of audio and be able to change scenes with a hardware device. I mean, you know this; you're here reading MIDI Mixer patch notes.
  • The point is, I ended up with some insane solution utilising a tonne of custom scripts and about five different bits of software, but it was awesome to use. The problem was that I wanted to be able to use that same system while I wasn't streaming, but routing everything from all of these third-party pieces of software was just ughh.
  • So fast-forward to this release and MIDI Mixer provides everything I need. I use it when I am streaming and I use it when I'm not, seamlessly between the two states. That's bloody awesome, but I still either miss out on deeper OBS integration to change scenes or start installing all of those pieces of software again.
  • Lots of folks are in the same boat and I think it's pertinent to try and address that as part of the overall package. OBS integration is very real and very close, but is planned to come in patch v2.1.0. There's a lot of work going in to ensure that it actually delivers what people want. It's coming. Soon.
  • Other features:
  • The massive UI rework and the restructure of how MIDI devices are configured constitute the majority of the features in this release. Aside from the above, however, there are a few more pieces that have been added.
  • Now watches for MIDI devices connecting/disconnecting and will load/unload your MIDI devices accordingly.
  • Added "MIDI Passthru" option, allowing you to pass MIDI messages through to another device. This can be used with something like loopMIDI to control multiple pieces of software with the same board.
  • New presets for the Akai LDP8 (thanks, Wujno) and the Akai MPK Mini mkII (thanks, 𝐓𝐋)
  • Added "Velocity Sensitive" option for buttons. This means you can set a button to perform its assigned action when the velocity passes a certain threshold rather than when it's an exact value.
  • Added ability to send a test output when configuring an Indicator Control. This means you can experiment with LED states much faster. Incidentally, I found out I can make my button LEDs flash whilst testing this feature!
  • MIDI Mixer's Core joins the main app and is now code signed.
  • Split profiles list in to two separate lists to be clearer about which profiles are custom and which are presets.
  • Fixes:
  • A few bugs had accumulated around the old pieces of UI in v1.x.x. With the rework these are no longer relevant. Still, there are some fixes that are relevant.
  • The "Run" button for a group should now be able to recognise and successfully start Microsoft Store apps
  • Fixed OSD flickering and being pushed behind windows when a full-screen app was present
  • Fixed being unable to unmute an app until you changed the volume if it loaded muted
  • Performance improvements when using very precise faders
  • Fixed MIDI Mixer Core dying and failing to recover
  • Fixed the first knob not working for the Behringer X-TOUCH MINI preset
  • Fixed start-on-boot setting sometimes not enabling (or disabling, for that matter)

New in MIDI Mixer 2.0.0 Beta 14 (Sep 24, 2020)

  • Features:
  • Split profiles list in to two separate lists to be clearer about which profiles are custom and which are presets
  • Fixes:
  • Fixed start-on-boot only enabling in very specific circumstances

New in MIDI Mixer 2.0.0 Beta 13 (Sep 24, 2020)

  • Features:
  • Added a "Create Indicator Control" button to create a custom indicator from a button without having to manually copy across certain values
  • MIDI Mixer's Core joins the main app and is now code signed
  • Added Akai MPK Mini mkII preset (thanks to @𝐓𝐋#0395 on Discord!)
  • Fixes:
  • Controls list will scroll to view a new control when it's created

New in MIDI Mixer 2.0.0 Beta 12 (Sep 23, 2020)

  • Features:
  • Add ability to send a test output when configuring an Indicator Control. This means you can experiment with LED states much faster.

New in MIDI Mixer 2.0.0 Beta 11 (Sep 23, 2020)

  • Features:
  • Add velocity-sensitive option for buttons. This means you can set a button to perform its action when the velocity passes a certain threshold rather than when it's an exact value.
  • Fixes:
  • Fixed Behringer X-TOUCH MINI preset's first knob not working

New in MIDI Mixer 2.0.0 Beta 10 (Sep 21, 2020)

  • Added Akai LDP8 preset

New in MIDI Mixer 2.0.0 Beta 9 (Sep 21, 2020)

  • Features:
  • Now watches for MIDI devices connecting/disconnecting and will load/unload your MIDI devices accordingly.
  • Add "MIDI Passthru" option, allowing you to pass MIDI messages through to another device. This can be used with something like loopMIDI to control multiple pieces of software with the same board.
  • Fixes:
  • Some performance improvements around precise sliders
  • Stopped a rare bug where the core logic gets in a muddle and constantly tries to connect to itself

New in MIDI Mixer 2.0.0 Beta 8 (Sep 21, 2020)

  • Fixed error when trying to manually download an update while it's automatically downloading in the background
  • Fixed copied profile not loading properly when initially copied (you had to leave and come back for it to load properly)
  • Fixed being unable to unmute an app until you changed the volume if it was loaded muted

New in MIDI Mixer 1.3.4 (Sep 21, 2020)

  • Adds much better logging for errors so I don't have to go chasing log files from affected users