Rss

Begun, The Codec War Has

I just got back last night from WWDC 2017 week — I was speaking at CocoaConf Next Door — and here’s an obligatory selfie to prove it.

Selfie outside WWDC 2017

Continue Reading >>

Brain Dump: v3 Audio Units

Thanks to the power of unemployment freeing up my daily schedule, I was able to put a lot of work into my talk about Media Frameworks and Swift. The first version of this debuted at Forward Swift in March and was limited to 30 minutes. With an hour to fill at CocoaConf Chicago last weekend, I needed a second demo. And the obvious place for it was to stop talking about v3 Audio Units and actually write one.

Audio Units logo

Background info: audio units are self-contained modules that do something with audio. There are several distinct types: generators that produce sound (like by synthesis or playing from a file), effects that take incoming sound and change it in some way, mixers that combine multiple sources, etc. These units are available in any application that supports the audio unit standard, so they’re seen in things like Logic and GarageBand. Prior to El Capitan and iOS 9, audio units were a Mac-only technology: the closest approximation on iOS was to have some other audio unit set up a “render callback”, meaning you’d provide a pointer to your own function, to be called whenever the downstream unit wanted to pull some samples, and you’d put your audio processing code in there.

We covered using audio units in chapters 7 and 8 of the Learning Core Audio book, but didn’t actually cover creating them. We didn’t do that for a number of reasons: the documentation and base C++ class from Apple was outdated and appeared to be broken, making your own AU was Mac-only, we’d already spent two chapters on audio units, and our editor was leaving and we decided to go pencils-down and ship the damn thing. So, wouldn’t you know it, the first review on iBooks basically ripped us for not covering how to create audio units and dismissed the rest of the book as one-star garbage (and in my own defense, that’s an opinion not shared by any of the other reviews on iBooks and Amazon).

But still, it has bugged me for years that I had never actually written an audio unit of my own. So if one good thing comes from my current flirtations with insolvency, it’s that goddammit, I’m finally writing a working audio unit.

So, iBooks reviewer whichdokta, this one’s for you. And in the immortal words of Elvis Costello, I Hope You’re Happy Now

Continue Reading >>

Seven Percent of Nothing Equals Nothing

Participants in Apple’s affiliate advertising program got an email yesterday announcing that the commission for apps and in-app purchases is being cut from 7% to 2.5%, effective next week. As usual, Michael Tsai’s blog has the most convenient roundup of reporting and reaction. There’s quite a bit of head-scratching, along with some hope the move presages a change in Apple’s 30% cut of App Store revenues (given the relative sizes of the affil program and the App Store as a whole, I suspect that’s wishful thinking).

I’m in the affiliate program myself. The iBooks link in the right nav on this blog is from the affil program. And over on Invalidstream, the show notes for every episode are rife with iTunes links to videos referenced in the preshow, games from the App Store that I demo, and there’s even an iTunes banner in the sidebar with music from the pre-show waiting room (which I’m attempting to reproduce here, wish me luck, and reload if it doesn’t work:)

I’m not going to play Devil’s Advocate or mindlessly defend Apple, but I think if you wargame this from Apple’s POV, this move actually makes some sense. Let’s put ourselves in their shoes and play this out.

Continue Reading >>

The 2013 That Never Ended

So, about that Mac Pro…

As a reminder, I’d been agonizing about a replacement for my Early 2008 Mac Pro for a while (particularly because it couldn’t run Sierra, and thus Xcode 8.3), finally gave in and bought the Late 2013 Mac Pro in late 2016, and posted a few weeks back that despite obviously over-paying for it, I’m quite happy with it so far.

Yesterday’s news really doesn’t change any of that.

Continue Reading >>

Next Door

So, we’ve had to keep this under our hats for a little while, but yesterday Apple posted their Beyond WWDC page, revealing the co-located conferences Layers, AltConf, and CocoaConf Next Door. The first two of these have taken place the same week as WWDC for a few years now, but CocoaConf making an appearance that week is new.

As a CocoaConf regular, they asked me to participate in CocoaConf Next Door, and so I’ll be doing three sessions (and likely some other events). We’re still working out what those will be, as it’s a little tricky to strategize a conference talk the week of WWDC and minimize the chance of it being rendered obsolete by changes to iOS and macOS revealed at WWDC. I mean, it’s not like you’d want to build a talk around view controller rotation-handling for that week, since the “right way” to do that seems to change every couple years. But you also don’t want to do something that’s so evergreen that it’s boring either.

Chris Adamson - Stupid Video Tricks

I will probably reprise my talk about media frameworks and Swift from Forward Swift and CocoaConf Chicago, because it’s the best one I’ve done in years, and it does get into some pretty interesting areas about the Swift language itself and where it struggles to live up to its ambitions (I blogged about some of this in Render Unto C-sar). I’ll be putting more work into the talk — maybe by June, I can actually get my custom AUAudioUnit working (I’m pretty stuck at the moment, and a DTS support incident did not unblock me).

It’s possible that for the last day of the conference, I’ll have a new talk based on things that get revealed on Monday. That would be a great way to keep things fresh, though I want to avoid Janie Clayton’s “First to pee on Mount Everest” syndrome, i.e., being the first to try out some new feature or API, but not enlighten or bring away anything from it except to basically yell “first post!” So, still thinking about how to make sure that’ll still be valuable to attendees.

CocoaConf’s blog has details about how they’ll schedule their time around the WWDC keynotes so we don’t miss out on the good stuff (or, god forbid, another 30-minute Apple Music presentation). Early Bird registration is open. It’s $999, which seems pretty reasonable for a four-day conference (CocoaConf is usually like $600 for two days, and across the street, Layers’ early bird price is $850 for three days, to say nothing of WWDC costing $1600). Maybe we’re going to be somebody’s Plan B if they don’t win the WWDC ticket lottery but still want to be in town that week; we’ll make it a pretty damn worthwhile Plan B. Plus, CocoaConf registration includes tickets to the James Dempsey and the Breakpoints concert on Wednesday night.

The other thing that’s exciting about this week is the degree to which it represents a real, ongoing change in Apple’s openness and its attitude towards the larger iOS/macOS/tvOS/watchOS developer ecosystem. As Daniel Jalkut reminded us yesterday:

So, I’m looking forward to doing some new talks at CocoaConf Next Door, meeting up with friends in the evening, and certainly hoping that App Camp for Girls’ Jean McDonald finds a suitable karaoke place for her “Core Audio” group of developer-singers (if they have it, I’m calling dibs on “History Maker”).

Render Unto C-sar

A few weeks back, I did a presentation at Forward Swift, the idea of which to explore how the media frameworks reveal some really interesting pain points in using Swift, and what this tells us about the language.

Slides are already up on Slideshare, and can be viewed here:



I’ll be doing this talk again at CocoaConf Chicago and an NDA event that will probably be announced next week. Forward Swift usually posts its videos eventually, and I’ll blog here once mine is available.

But I want to dig into one of the key points of the talk, because it came up again earlier this week…

Continue Reading >>

So, How’s That Mac Pro Working Out For You?

It’s been a little over two months since I became that guy who actually bought a three-years-old-out-of-the-box Mac Pro. My reasoning and agony over the purchase has already been detailed on this blog, but now that I’ve used it for two months, let’s take a look back at how it’s working out.

The thing that surprises most people when they see the trashcan Mac Pro is how small it is. Remember, the computer is not even a foot tall (um, 30 cm for those of you in civilized parts of the world), so on my desk, it is barely taller than my speakers, and is actually kind of dwarfed by my microphone and pop filter.

Mac Pro on desk

Continue Reading >>

RxNot

A few weeks back, I tweeted:


The stealth message here was that there’d been a mass layoff, and as such, I’m no longer at MathElf. (Aside: which means, for the moment at least, I’m available for contract work: cadamson@subfurther.com).

While I’m not about to slam my ex-employer, I do want to get in a word about a key technology we used that left me cold. As the tweet indicates, this is gonna be about RxSwift.

Continue Reading >>

Two Cents (and not a penny more) on iPad and the Future of Computing

Topic du jour is the continuing slow decline of the iPad, and Apple’s priorities with regard to it and the steady-if-boring Mac. Background: Marco Arment’s blog The future of computing, the last two episodes (207 and 208) of Accidental Tech Podcast, and some of the reactions quoted in Michael Tsai’s Apple’s Q1 2017 results roundup.

So here’s my two cents, and I’ll keep it short. The ATP discussion considers the fact that even in its diminished state, the iPad sells twice what the Mac does, so why shouldn’t it command more attention?

Here’s a counter-argument that is being overlooked: the iPad represents effectively all of the “productivity tablet” market, which is a completely fanciful market I have pulled out of my ass because in the era of alternative facts we are apparently now allowed to do that. But seriously, the iPad is the only device where there’s any story or any expectation that it can or will be used to do more than read mail/web/ebooks and watch streaming video. Nobody is talking about doing creative work or managing documents with an Amazon Fire, for example, or the $75 piece of crap Android tablet at Big Lots. As far as using this sort of device for computing goes, the iPad is the only game in town.

And it’s shrinking.

Now even if the Mac sells less than the iPad, the PC market as a whole is massive… much larger than tablets, and larger still than my contrived “productivity tablet” market. And Mac’s not even 10% of this giant PC market.

So, in terms of growth opportunities, which is more realistic: finding non-tablet-users to adopt the iPad for their productivity or work needs (and making the iPad more suitable for that), or flipping more of the 90% of people already using PCs to a better version of the same thing?

Sure, Apple’s spent its whole life trying to woo switchers, and I’m not saying we need to pull in Justin Long and John Hodgman for a new series of “I’m a Mac” ads. But if I’m looking for growth, the ostensibly-boring personal computer might still be a better bet than turning around the iPad’s decline. At the very least, it’s a lot easier to identify who my potential new customers are.

Brain Dump: Capturing from an iOS Device in Wirecast

So, with the book nearly done (currently undergoing copy-editing and indexing), I’m using some of my time to get my livestreaming plans together. What I’m likely to so is give the “build” section of the show over to working through examples from the book, so those will be archived as video lessons. Then, along with the interstitials of conference updates, fun videos from the anime fan community, and and a read-through of the Muv-Luv visual novels, I’ll be doing a bunch of Let’s Plays of mostly iOS games.

I did this with the first two test episodes: Tanto Cuore in Test Episode 1 and Love Live! School Idol Project in Test Episode 2. To do this, I need to be able to capture video from an iOS device and ingest it into Wirecast, so I can stream it.

Over the years, I’ve used different techniques for this, and decided to take some time today to figure out which works best on Wirecast for Mac. So, after the jump, behold the results of this project, plus instructions on how to configure each approach.

Continue Reading >>