Solved: Axiom/PatchWork MIDI PC/controller synchronization issues

Official support for: bluecataudio.com
Post Reply New Topic
RELATED
PRODUCTS

Post

"Plug-in and App can now send Bank Select and Program Change messages upon changes in the user interface to keep in sync with external controller."
I have tried to use this PC message feature in Axiom 2 (and PatchWork) to sync a MIDI foot controller with the software and vice versa. The controller has 384 preset containers. Sending CC#0 (values 0, 1, 2) + PC#0-127 triggers the preset containers. It does not use CC#32 at all.

Unfortunately, I'm having some serious problems with it and I'm not sure if it's me or the software, though I suspect the latter since I have successfully set up a similar thing with a Gig Performer 5/Helix Native/controller combo.

In Axiom 2 (standalone), the first issue I see is that there is no independent MIDI input and output channels for PCs. My controller receives MIDI on channel 16 but sends PCs on channel 1 or 3.

I worked around this issue with channel remapping in my MIDI interface. But, I would have expected using "All channels" in Axiom 2 to solve any channel problems.

Also, sometimes PC/bank messages are getting sent to the MIDI output, sometimes not. I've watched it all with a MIDI monitor and I can't figure out why it's behaving this way.

But there's something else going on. It's rather unpredictable. Both Axiom 2 and PatchWork are occasionally missing PCs when I trigger them. I have not observed this behaviour in other applications.

I wonder, might any users have any deeper insights into this? I have a strong sense that something is broken in this MIDI PC system but I would love to be proved wrong.

EDIT: Never mind...as soon as I posted here, I figured it out. There was a CC#69 (value 0) message being transmitted with each MIDI PC (a Helix Native thing to handle a snapshot problem). As soon as I removed it, Axiom 2 and the controller started syncing perfectly. Sorry for the confusion. It still think it would be nice to be able to configure the MIDI in/out channels.

Post

Glad that that you worked it out. Some devices indeed have some extra messages sent and it does not always behave as expected.

Our software is already quite powerful regarding MIDI configuration, and I have tried to keep it as simple as possible. That's why you can either choose a single MIDI channel for I/O (that can be different for each control and/or program change), or "All channels". When using "all channels", it lets you synchronize multiple devices, as when it received a MIDI message it is configured for on a channel, it will send MIDI messages to the other channels but not the original channel (to avoid feedback loops).

Post

Blue Cat Audio wrote: Mon Nov 24, 2025 6:54 am Glad that that you worked it out. Some devices indeed have some extra messages sent and it does not always behave as expected.

Our software is already quite powerful regarding MIDI configuration, and I have tried to keep it as simple as possible. That's why you can either choose a single MIDI channel for I/O (that can be different for each control and/or program change), or "All channels". When using "all channels", it lets you synchronize multiple devices, as when it received a MIDI message it is configured for on a channel, it will send MIDI messages to the other channels but not the original channel (to avoid feedback loops).
Thanks for your reply. I'll keep in mind the way "all channels" works going forward.

Yes, it's very powerful and it's really exciting to have such a feature available. I asked sometime ago in another thread about syncing effects states with a foot controller and the script you shared was a bit beyond me. But with minimal effort and no scripting, I could get presets to sync with either Axiom or the MIDI controller making preset selections -- once I killed the offending CC!

Post

Back to this again. I've been testing this MIDI PC syncing function pretty vigorously in an attempt to set up a bulletproof MIDI switching system.

I've found a few things that may be intentional/by design, but maybe they're not. FWIW, I'm on macOS 26.1. I've tested Axiom 2 Standalone and the various plugin versions in Live 12.3 and Gig Performer 5. So, while this is not extensive data, the results are the same in each case.

1) When sending MIDI Out PC/bank change data from Axiom 2, VST3 and AUv2 do not pass MIDI. Thankfully, VST2 does pass data correctly.

2) Standalone requires the default preset to be saved with the MIDI channel/PC/bank message settings. I had a lot of trouble with this. At least in standalone, when Axiom doesn't like the default preset, it will crash and not reopen until you delete the problem preset. It's working now, but only after a lot of trial and error and a few jettisoned presets.

3) Removing/blocking/ignoring the factory presets is not a simple operation. My user presets are always allocated to the second folder in terms of hierarchy. I want them at the top, so I don't have to reprogram all the commands in my MIDI controller. I tested moving user presets into the factory presets and alphabetizing the folder to make it first. This was a disaster. I also tried deleting the factory presets (first all except the default preset, and also all presets but this messed with the default settings). Anyway, user preset changes are saved as user presets, which live in the Documents folder, not the application package where factory content exists.

In the end, I can make Axiom/presets/controller PCs sync with standalone and VST2, though they're not the actual presets that I want to synchronize.

I'm wondering now, is there an "easy" way to get the factory presets out of the way, or even just make them not the default first bank? I suspect I'm just going to have to reprogram my controller.

Post

Thanks for the follow up with the details.

The VST3 and AU do send MIDI too. However many hosts have never implement MIDI out for AUs (I now this is the case for Live), and VST3 has a few limitations regarding MIDI (as it is NOT natively implemented as part of the format), and not all hosts implement the "hacks" required for program change to be supported. VST is indeed the only "safe" format for MIDI... :?

What do you exactly mean for (2)? Regarding crashes, the only crash I am aware of is if you save a default preset with Axiom inside Axiom. I have not found (yet) a reliable way to detect this and avoid crashes. Have you experienced other issues?

I am afraid the factory presets cannot be removed, indeed. Maybe i could think about adding an offset for banks so that it starts at whatever number you wish, but I'd have to check the potential impact first. It's probably not as easy as it may seem.

Post

Add to the list of DAW‘s that don’t support total MIDI output for VST3 or AUv2: Bitwig, Reaper and Logic Pro. I’m going to retest Gig Performer 5… I can’t understand why it wouldn’t support sending MIDI output.

Regarding point 2, this is a little murky. I could not get the standalone version to remember the program change settings for some reason. Ultimately, the answer was to save the settings with the default preset. I was trying to set the first preset of my user bank as default. But due to a clash with my controller (sending/receiving MIDI relevant to bank 1, it would only trigger presets from the first bank (factory). I was going around in circles to figure out how just to get the settings to stick and experimenting with transplanting my presets to the factory presets. I tried to save various presets as the default from various locations, and for whatever reason some of those presets caused crashes. I’m afraid I can’t even tell you what the specifics of those presets were now because I was so frustrated that I just started deleting things that seemed to be causing problems. Sometimes it’s just easier to start from scratch. I even uninstalled/reinstalled Axiom 2 to make sure I had a clean slate. However, none of the Axiom presets had Axiom loaded within themselves.

FWIW, I attempted to add both a symlink and an alias for the user folder inside the factory presets -- my user folder is named "Axiom User" so it would precede the Bass and Guitar folders. But neither method results in correct folder registration at Axiom startup. It seems like it is possible to add my own folder inside the factory presets, but that restricts editing my own presets. I'd have to save them back to the user folder and then move them after each new iteration is saved.

I realize that any modification to this system would be a very large change and probably only help a very few fringe-case users so I don’t expect it to get too much attention — but it’s still an interesting thought exercise. Thanks for the info you provided and the excellent tools you make for musicians.

Post Reply

Return to “Blue Cat Audio”