Apple's habit of breaking plugins

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

masterhiggins wrote:How can you account for developers that rarely have problems with Mac releases? Like u-he, Valhalla, madrona, applied acoustics, slate, etc? They must be damn lucky.
Apparently my AUs aren't validating for some El Capitan users. I've heard 2 reports of this. So I guess my luck ran out. :hihi:

I have a fix in the works. Not really a complicated fix. Just rebuilding on my Yosemite MBP in Xcode 6, versus my older builds which were done in Snow Leopard / Xcode 3.2. Same Juce code revision, same revision of my code, just different compiler (& probably somewhat different Core Audio SDK) on the Apple side. It seems to solve the issue on El Capitan, and any Valhalla customers on El Capitan are welcome to send me an email to request the beta links. I will push the betas into the user accounts next week.

The quickness of the fix is due to my builds being up-to-date, in order to deal with all that AAX bull**** last year. If I hadn't updated things for AAX, I would have to do a LOT of work in order to get builds that were compatible with El Capitan. This is mainly due to changes in the Juce framework, which aren't backwards compatible, and I needed to use a fairly fresh Juce revision in order to support AAX.

My main beef with the Apple changes, is that they don't seem to be due to any fundamental changes in the operating system. Audio Units appear to be working just fine for all non-Apple AU hosts. It is just Logic and Mainstage that are creating the issues, and these seem to be due to changes in what auval accepts. Meanwhile, auval is notorious for being undocumented, and for spitting out errors that are near impossible to decipher (I invite people to PROVE ME WRONG on this).

Subtle changes to auval, that cause Audio Units that were compiled a few years ago to fail validation, make it seem like Apple is taking a lot of liberties with the term "standard." Audio Units are a plugin standard, but if you make changes to this standard without calling it a different name, it kinda stops being a standard. Imagine if Switchcraft decided that 1/4" phono jacks should have some weird star thing added to them. It would BREAK THE STANDARD.

Sean Costello

Post

machinesworking wrote:The gist of every conversation I've ever seen about this is simple really, if you started out coding for Microsoft, Apple and AU will be a PITA, if you started out on Apple, Microsoft and VST will be. Same as the end user experience, same as it ever was.
If you code for a cross-platform framework like Juce, I'd recommend starting on the OSX side and moving over to Windows when all your work is done. The Windows side is WAY easier to deal with from a code+compiler perspective, so might as well get the hard part out of the way. It's worth supporting both, but I'd rather front load my efforts on the more difficult platform.

Post

t3toooo wrote:Sean (Valhalla) works on a Mac and and is developing for Windows on a Mac too.
Well, I develop for Windows on a Mac running Bootcamp and/or Parallels. So it is essentially a Windows machine at that point. I don't compile the Windows stuff on the OSX side.

Mac Minis make for nice and compact Windows machines, and they were a fairly good deal up until the latest hardware revision. I have used a 2010 Mini in the past for my Windows builds, and am setting up a late 2012 quad-core i7 Mini as a new build machine in the next few weeks.

Sean Costello

Post

valhallasound wrote:
masterhiggins wrote:How can you account for developers that rarely have problems with Mac releases? Like u-he, Valhalla, madrona, applied acoustics, slate, etc? They must be damn lucky.
Apparently my AUs aren't validating for some El Capitan users. I've heard 2 reports of this. So I guess my luck ran out. :hihi:

I have a fix in the works. Not really a complicated fix. Just rebuilding on my Yosemite MBP in Xcode 6, versus my older builds which were done in Snow Leopard / Xcode 3.2. Same Juce code revision, same revision of my code, just different compiler (& probably somewhat different Core Audio SDK) on the Apple side. It seems to solve the issue on El Capitan, and any Valhalla customers on El Capitan are welcome to send me an email to request the beta links. I will push the betas into the user accounts next week.

The quickness of the fix is due to my builds being up-to-date, in order to deal with all that AAX bull**** last year. If I hadn't updated things for AAX, I would have to do a LOT of work in order to get builds that were compatible with El Capitan. This is mainly due to changes in the Juce framework, which aren't backwards compatible, and I needed to use a fairly fresh Juce revision in order to support AAX.

My main beef with the Apple changes, is that they don't seem to be due to any fundamental changes in the operating system. Audio Units appear to be working just fine for all non-Apple AU hosts. It is just Logic and Mainstage that are creating the issues, and these seem to be due to changes in what auval accepts. Meanwhile, auval is notorious for being undocumented, and for spitting out errors that are near impossible to decipher (I invite people to PROVE ME WRONG on this).

Subtle changes to auval, that cause Audio Units that were compiled a few years ago to fail validation, make it seem like Apple is taking a lot of liberties with the term "standard." Audio Units are a plugin standard, but if you make changes to this standard without calling it a different name, it kinda stops being a standard. Imagine if Switchcraft decided that 1/4" phono jacks should have some weird star thing added to them. It would BREAK THE STANDARD.

Sean Costello
Agreed each single word. We are now using juce too, and this is the reason why things (for us) are better than before. It happens because someone else is maintaining the code and is constantly working on this apple mess.
Juce, a couple of virtual machines and you can compile everything from a single computer: au, vst, aax

If everybody moves to juce for an easier life, the whole au format becomes a waste of time. Simply developers, using the same framework, are supporting it exactly like they were releasing vst, without taking advantages of the new or different features. The same goes for aax or vst3. Making things difficult all you get is a super wrapper of vst plugin for all developers. Breaking things continuously forces to fix them in a bad way. A lesson to learn.

Post

This is old and I'm sure every developer has read it but it comes to mind:

Joel Spolsky: Fire And Motion

OS releases and new devices are the fire.
The increasing scope of Apple's market control is the motion.

Post

Funny

Post


Post

Yes, there is a new update, also with an update to Xcode.
Unfortunately, these dumbasses removed a (deprecated) API in this minaor release! It is still usable, as the old plugins that used it are still working, but you can't compile new plugins without changing this API, and as there is no equivalent, doing just what's advertised online is not enough, the GUI is not fully redrawn, it just draws on top of what was there before (removed CMGetSystemProfile, can't be just replaced with ::CGDisplayCopyColorSpace(::CGMainDisplayID())).
At least if they provided with examples with how to use the new APIs...

Post

Apple mess
Currently they're releasing a new OS every year.

Nothing against that, except for the fact that they keep changing and breaking their API's.

No wonder Macs are so "fast and stable".

I think they should take a step further and from now on release every next OS X version with ZERO backward compatibility, then it would always be the fastest and most stable OS ever released! :party:

I now understand why they named the kernel "Darwin".
Free MIDI plugins and other stuff:
https://jstuff.wordpress.com
"MIDI 2.0 is an extension of MIDI 1.0. It does not replace MIDI 1.0(...)"

Post

Microsoft development is like working with an obedient giant workhorse that just get's the job done and it will have good go at all the previous jobs.
Apple development is like working with a snobbish little white pony, with it's smug nose up in the air, prancing about doing dressage!
:) :P
(Macs also have abysmal keyboards (UK versions))

Post

It is fun looking up mac api documentation. Depending on google's mood, you can find documentation on a dozen historical obsolete ways to do it, every version explained in "not quite sufficient detail" for an ordinary guy to easily implement. :)

Post Reply

Return to “DSP and Plugin Development”