Alastair’s Place

Software development, Cocoa, Objective-C, life. Stuff like that.

Aura

Having just written rather a sad piece on my company’s blog, I thought I’d cheer myself up a bit — and explain a few things that have been hugely frustrating me over the past few years.

As you’ll know if you read the post I linked to above, iDefrag and iPartition are very much in decline; they have been for some time, actually, and I’ve been scratching around trying to work out what I’m going to do instead. Well, back in 2013, I thought I’d found a great new product that didn’t exist and that I thought I had the skills to develop.

I was sat upstairs in the study in my old house, and my elderly Harmon-Kardon SoundSticks (the original USB kind, not the newer analogue variety) died. This made me sad - the SoundSticks sounded great, and although the built-in speakers in my iMac weren’t bad, they don’t sound half as good as decent external speakers with a subwoofer.

It then occurred to me that I had a spare A/V receiver in the attic, along with a full 5.1 speaker set that I wasn’t using. It also occurred to me that the headphone socket on my iMac was actually a mini-TOSLINK port, and since the A/V receiver had optical inputs, I could hook my Mac up to it using an optical fibre and — maybe — get surround sound!

Excited, I got all the hardware together, rearranged my workspace to fit everything in, and turned it all on. And got stereo. Very nice sounding stereo — way better than the SoundSticks, never mind the iMac’s built-in speakers — but stereo nonetheless.

I was, of course, being naïve. It isn’t possible to send 5.1 channel raw PCM over a standard S/PDIF interface, so my Mac was doing the best it could and sending two channel stereo.

That was when I had my bright idea — I could write a Dolby Digital (aka AC-3) encoder, that took 5.1 channel audio from Core Audio in my Mac, compressed it in real time, and squirted it out over the optical interface. I managed to find the necessary specifications (not too hard, because AC-3 is part of various other published standards), and started work.

I was, of course, aware that I’d have to license the AC-3 codec from Dolby Laboratories, so I also started talking to them about that while I worked on my encoder.

Well…

The folks from Dolby were very nice, and quite helpful, though it was clear that they weren’t really set up for license applications for the kind of product I wanted to make. Months passed, and we were still talking to each other; meanwhile I had the software side of things pretty much working. Eventually, I was given a license agreement to look through, and that’s where things really unravelled.

To explain: AC-3, like the competing DTS standard, is a non-optional part of various other standards, including ATSC, the DVD and Blu-Ray standards and so on. As a result, it is licensed under terms described as “Reasonable and Non-Discriminatory” (aka RAND).

Now, that sounds great, right? It means, surely, that the terms are reasonable and that I, as a small software developer, will get the same terms as (say) Sony. Well, no, not quite.

What it actually means is that for the set of people who were expected to want to license it when the license agreement was written, the terms are reasonable, and that everyone gets the same license agreement (it doesn’t mean that the same terms in that agreement necessarily apply).

There were two problems; the first was that the license agreement tried to distinguish between “professional” use (i.e. content creation software and hardware, which is typically very expensive) and “mass market” use (i.e. people who make DVD players and the like), by charging different amounts per unit depending on the volume of units shipped. Sounds reasonable, right? Well, yes, until some upstart comes along with the idea I’d had, expecting to ship relatively small numbers at a relatively low cost. I can’t be specific about the licensing costs (they’re under NDA), but the numbers didn’t work.

The second problem was that the license fees increase every year with U.S. inflation. So even if I could just about stomach the initial per unit fee (and to do that I’d have had to have charged a lot more than the $20 per unit I had envisaged), in a few years’ time I’d simply have to stop selling the product because it wouldn’t make economic sense. And in the meantime, Dolby Laboratories would see almost all of the profit from my work.

At this point, I had a functioning piece of software, which worked really nicely for me in my study, but I couldn’t even give it away because it infringed Dolby’s patents, and I couldn’t license those patents because the cost was prohibitive. I asked Dolby if there was any way they could vary the terms to make it work, and, to their credit, they did go away and think about it, but eventually came back with the answer that they were unable to do so because of their “Non-Discriminatory” obligation — they could only offer me the same license they offered everyone else.

I managed to salvage some of the work I’d done — notably the new image-based licensing system, which was included in newer versions of iDefrag and iPartition — but most of it languished on my disk. It had taken me about a year’s work to get to this point.

I was upset. Now, I’d made a mistake in that I’d worked on the product before finalising the licensing — but then if it had worked out, that would absolutely have been the right choice, as I’d have been in a position to release it the moment the license was signed.

In retrospect, I should perhaps have realised that this problem existed; I had heard that some PC sound card vendors had AC-3 encoding support in their hardware, and that they had started trying to charge their customers extra to enable it.

Anyway, fast-forward to 2018. Sales of iDefrag and iPartition are falling away, and it’s getting to the point where I can’t pare my company back much more without actually shutting it down. And that’s what I was considering doing, as recently as two weeks ago; I’d intended to get to the end of this financial year (31st March) and then close down. It was looking like the end of my 14 year run at working for myself — as I have a family to support now, not to mention a wife doing a Master’s degree, there didn’t seem much option.

And then I saw a tweet. Just a small thing, noting that AC-3 was no longer “patent encumbered”. My heart leapt. Sure enough, I found evidence that the core AC-3 patents expired on the 20th of March 2017. I could ship!

And so, finally, Aura was released, today, some four years after I had something I could have shipped, but was stopped by “Reasonable and Non-Discriminatory” licensing from doing so.

It’s been quite a journey, this one.

Update

Hah. Apparently Apple has quietly phased out the optical outputs on its newer models (anything made in 2016 and later, by the look of things). Figures.