Hello,
I have read this very interesting article, so it looks like Logic is ready for AU3 since 10.3.1:
I have been having some difficulty nailing clear (non-confusing) developer info. Which seems odd, because I could swear i read something that was relatively straight forward.
However, first take a look at these release notes from Apple...
"Logic Pro X 10.3.1
New Features/Enhancements
Logic now supports the Audio Unit v3 specification for virtual MIDI ports...."
https://support.apple.com/en-au/HT203718
It's about half way down.
This was released around a year after they made the offical announcement for changes to the Audio Unit spec at WWDC 2015. I remember because i was watching online at the time. To be honest, a year seems such along time to wait for this kind of update!!
https://developer.apple.com/videos/play/wwdc2015/507/
https://developer.apple.com/videos/play/wwdc2015/508/
In my search I came across this thread at VSL, it was dated a month or 2 after the release of 10.3.1
(In relation to the AU3 spec...)
"Hi,
This needs implementation on our side, and we are on it. It will need a little more time, however (sorry that I can't provide you with a release date right now).
Thanks for your patience!
Best,
Paul
Paul Kopf
Product Manager - Vienna Symphonic Library"
https://www.vsl.co.at/.../posts/t42820-Logic-10-3-1--AU3...
Logic has seen a few updates since then. So if there were a few teething issues I imagine the problem would have been solved by now.
Incidentally, in the developer framework i can confirm this...
MIDIPortConnectSource
"Establishes a connection from a source to a client's input port."
func MIDIPortConnectSource(_ port: MIDIPortRef,
_ source: MIDIEndpointRef,
_ connRefCon: UnsafeMutableRawPointer?) -> OSStatus
MIDIPortRef...
"A MIDIPortRef, which may be an input port or output port, is an object through which a client may communicate with any number of MIDI sources or destinations."
MIDIEndpointRef...
"Entities have any number of MIDIEndpointRef's, sources and destinations of 16-channel MIDI streams."
https://developer.apple.com/docume.../coremidi/midi_services
https://developer.apple.com/.../1495278...
https://developer.apple.com/document.../coremidi/midiportref
https://developer.apple.com/docu.../coremidi/midiendpointref
So basically what I read in this, which seems to be inline with the AU3 spec...
Via the Midi Services, which would be available to any plugin using midi, you can connect to "any number" of ports that consist of up to 16 MIDI streams (channels). This is where the multi-port kind of behaviour is attributed.
Incidentally MIDIPortRef works out to be an Unsigned 32-bit number. So that works out to be a hell of a lot of potential Ports.
So, it all appears to be there. Even VSL's acknowledgment of the situation. They seem to be aware of it for at least 11 mths or so. It's quite possible that adopting it may have been harder for them than expected or they are simply dragging their feet on the subject.