AU MIDI out on Mac

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Haven’t had much luck finding out if there are plans to implement MIDI out with a Google search, so wondered if anyone here has any insight into this?

Obviously it’s working on iOS with AUv3, so it seems like AU on Macs is lagging behind.

Do any developers here know the status of this, or if Apple has plans to implement it?

Post

It has actually been implemented for years on Mac, but not many hosts support it, and Logic's implementation is a bit awkward (it is supported only in some specific cases, such as MIDI effects).

Post

I know Logic doesn’t support it, but wasn’t aware of other hosts that do. Is there any source of information that might show whether it is supported?

Post

Forgotten wrote: Thu Feb 06, 2020 3:59 pm I know Logic doesn’t support it, but wasn’t aware of other hosts that do. Is there any source of information that might show whether it is supported?
Logic actually supports it for MIDI Audio Units, it;s just a bit if a mess for other types of effects. I am not sure which other hosts support it, as they are usually also VST-compatible, so there is always a workaround.

But our own plug-in host applications (and plug-ins) do support it. :-)

Post

I’m pretty sure I saw that yours support when I was Googling, but I didn’t find much at all for other hosts.

I’ll check your link - thanks!

Post

Blue Cat Audio wrote: Thu Feb 06, 2020 4:07 pm
Forgotten wrote: Thu Feb 06, 2020 3:59 pm I know Logic doesn’t support it, but wasn’t aware of other hosts that do. Is there any source of information that might show whether it is supported?
Logic actually supports it for MIDI Audio Units, it;s just a bit if a mess for other types of effects. I am not sure which other hosts support it, as they are usually also VST-compatible, so there is always a workaround.

But our own plug-in host applications (and plug-ins) do support it. :-)
So to clarify...

If I load an AU plugin that supports MIDI out into PatchWork in Logic, I could send its MIDI output to an instrument plugin in PatchWork then route the audio output of PatchWork back to Logic?

Post

Yes. Just use a virtual Midi port (A to P) to route the events inside Patchwork.

Post

Blue Cat Audio wrote: Thu Feb 06, 2020 4:07 pm
Forgotten wrote: Thu Feb 06, 2020 3:59 pm I know Logic doesn’t support it, but wasn’t aware of other hosts that do. Is there any source of information that might show whether it is supported?
Logic actually supports it for MIDI Audio Units, it;s just a bit if a mess for other types of effects. I am not sure which other hosts support it, as they are usually also VST-compatible, so there is always a workaround.

But our own plug-in host applications (and plug-ins) do support it. :-)
This isn’t secret stuff, but do you have links to sample code or documentation that shows how to do this, either Apple links or other links.
Thanks for any info on this :D

Post

Blue Cat Audio wrote: Wed Feb 19, 2020 7:26 am Yes. Just use a virtual Midi port (A to P) to route the events inside Patchwork.
Looked like more value in getting the Axe Pack, so just got that - will try it out a little tonight!

Post

ValliSoftware wrote: Wed Feb 19, 2020 7:58 pm This isn’t secret stuff, but do you have links to sample code or documentation that shows how to do this, either Apple links or other links.
Thanks for any info on this :D
It's definitely not a secret... The more plug-ins and hosts support it the better for the community!

If I remember well, the plug-in has to implement both the kAudioUnitProperty_MIDIOutputCallbackInfo and kAudioUnitProperty_MIDIOutputCallback properties (you can google them to get more info).

If the plug-in responds to the first with a non-empty list of ports, the host should set the callback pointer using the other property. The plug-in can then use the callback to send MIDI messages.

Hope this helps!

Post

Blue Cat Audio wrote: Thu Feb 20, 2020 10:56 am
ValliSoftware wrote: Wed Feb 19, 2020 7:58 pm This isn’t secret stuff, but do you have links to sample code or documentation that shows how to do this, either Apple links or other links.
Thanks for any info on this :D
It's definitely not a secret... The more plug-ins and hosts support it the better for the community!

If I remember well, the plug-in has to implement both the kAudioUnitProperty_MIDIOutputCallbackInfo and kAudioUnitProperty_MIDIOutputCallback properties (you can google them to get more info).

If the plug-in responds to the first with a non-empty list of ports, the host should set the callback pointer using the other property. The plug-in can then use the callback to send MIDI messages.

Hope this helps!
Sorry for the late reply.
MIDI-FX plug-in, this works but in the Mixer, cabling out of the instrument doesn't show the changes, it shows what was MIDI received, not MIDI modified.

For a AU Instrument, again, the cabling out of the instrument doesn't reflect the MIDI modified as well.

After some testing, I actually figured out a way how to do this without going thru IAC.

One of the reasons I don't want to use IAC is because in Clicks&Ports, majority of the time if you create a virtual MIDI, the cabling you do is gone every time you start the Logic Project. This makes sense because the virtual MIDI that I have was created in a AU Instrument I wrote, so if the AU Instrument gets created slightly later, that explains why the cabling is gone.

Post

Logic's implementation is indeed awkward. It used to work at some point to get MIDI out of plug-ins but required to use the environment, and it stopped working properly at some point. I am not 100% sure what the exact status is today, but it is probably still a mess!

Post

The latest Logic version does support MIDI FX plugins. There is a dedicated section in a bus for them (see the attachment with my plugin example), only plugins from that section can send MIDI out. Make sure you set the right audio component type in Info.plist.

Code: Select all

<key>type</key>
<string>aumi</string>
You do not have the required permissions to view the files attached to this post.

Post

Hey guys ! I think I have some interesting cues for you to solve the MIDI out of Audio Units. As I understand AU may now support it but most AU plugins on the market do not have the function written inside them. So yes Blue Cat's Patchbay is great to help solve some part of the dilemma (reinstalling all AU with their VST version). What I wanted is to use plugins that generated MIDI rhythms out of them to feed virtual instruments. The first choice was to tell my DAW to no longer use AU but VST instead and reinstall all my virtual instruments and effects (I use Digital Performer). So before this hard and long task I did this test in Blue Cat's Patchbay. On the first row I put Kontakt (VST), inside Kontakt I loaded Riff Generation (an audio plugin that generates MIDI out); on the next slot I loaded Ni-Battery. I told Blue cat's to send MIDI OUT of Kontakt to virtual port A and to Ni-Battery to receive MIDI IN from virtual port A. It works. But here is the thick. Kontakt or any other MIDI OUT stream generator in the first slot has to send MIDI out data for real. I tried the same setup but instead, loaded a AU version of Kontakt and nothing happened. So even as recent version of AU may be able to handle MIDI out of audio instruments, even if I checked in Kontakt " send MIDI to outside world" as long as I was using the AU version of Kontakt I worked for nothing. As soon as I used the VST version of Kontakt and load a generator inside it, then voila ! I think the same is true with any other similar plugins, Scaler, Instachord, etc. Then what I did is to load more than on virtuel instrument within Blue Cat's Patchwork each one receiving from the same MIDI port and for a better control, I sent each of them to separated audio outputs 1-2, 3-4, 5-6 and in my DAW, created 3 AUX tracks with inputs on 1-2, 3-4 and 5-6. There I have an easier control of each instrument volume and I can add effects or inserts with greater flexibility. All in all, I think AU is not convenient for now with MIDI OUT virtual instruments and pattern generators. And instead of reinstalling all your plugins, use Blue Cat's Patchwork inside which you must use the VST version of your MIDI Out generator.

Post

stereotrope wrote: Sat Apr 10, 2021 9:01 pm Hey guys ! I think I have some interesting cues for you to solve the MIDI out of Audio Units. As I understand AU may now support it but most AU plugins on the market do not have the function written inside them. So yes Blue Cat's Patchbay is great to help solve some part of the dilemma (reinstalling all AU with their VST version). What I wanted is to use plugins that generated MIDI rhythms out of them to feed virtual instruments. The first choice was to tell my DAW to no longer use AU but VST instead and reinstall all my virtual instruments and effects (I use Digital Performer). So before this hard and long task I did this test in Blue Cat's Patchbay. On the first row I put Kontakt (VST), inside Kontakt I loaded Riff Generation (an audio plugin that generates MIDI out); on the next slot I loaded Ni-Battery. I told Blue cat's to send MIDI OUT of Kontakt to virtual port A and to Ni-Battery to receive MIDI IN from virtual port A. It works. But here is the thick. Kontakt or any other MIDI OUT stream generator in the first slot has to send MIDI out data for real. I tried the same setup but instead, loaded a AU version of Kontakt and nothing happened. So even as recent version of AU may be able to handle MIDI out of audio instruments, even if I checked in Kontakt " send MIDI to outside world" as long as I was using the AU version of Kontakt I worked for nothing. As soon as I used the VST version of Kontakt and load a generator inside it, then voila ! I think the same is true with any other similar plugins, Scaler, Instachord, etc. Then what I did is to load more than on virtuel instrument within Blue Cat's Patchwork each one receiving from the same MIDI port and for a better control, I sent each of them to separated audio outputs 1-2, 3-4, 5-6 and in my DAW, created 3 AUX tracks with inputs on 1-2, 3-4 and 5-6. There I have an easier control of each instrument volume and I can add effects or inserts with greater flexibility. All in all, I think AU is not convenient for now with MIDI OUT virtual instruments and pattern generators. And instead of reinstalling all your plugins, use Blue Cat's Patchwork inside which you must use the VST version of your MIDI Out generator.
MIDI out for Audio Units is actually a feature that has been available for years. However many host applications and plug-ins still do not support this, that's right (it's poorly documented). Using VSTs is indeed the right solution in this case!

Post Reply

Return to “DSP and Plugin Development”