Stay in touch…

Blog

Read the latest Bitstream

RSS Feed

LinkedIn

Look for us at LinkedIn

Twitter

Follow us on Twitter

Mix Magazine

This installment of The Bitstream column appeared in the November 2002 issue of Mix Magazine.

The Bitstream

This column discusses the audio aspects of Apple’s 10.2 version of their OS…

How The Leopard Got His Spots

In Rudyard Kipling’s Jungle Book, his Black Panther chides Mowgli, saying “How can his little head carry all thy long talk?” Well, my TiBook’s little head is carrying around a bunch of long talk these day, namely Mac OS 10.2, also known as Jaguar, and that’s what I’m covering this month. Whether you call ‘em panthers, leopards or jaguars, Apple’s point two version of X has over one hundred improvements and many of them translate into more joy for the audio practitioner.

Let’s start with an underlying philosophy of OS 10 and that is Apple’s historic, ongoing assumption of responsibility for “services” that, on other platforms, are yet another burden to application developers. By services, I mean OS support for stuff that we often take for granted. 10.2 has built–in support, via flexible global APIs or Application Programming Interfaces for protocols like plug-ins, PCM processing, audio “rendering” and pass–through that can be a real bear for programmers to home brew.

Mac OS 10.2 Plug-ins Directory

Remember that APIs are documented “hooks” for programmers to communicate with someone’s hardware or software. Having a built–in framework on which to construct stuff makes for faster development of simpler, more stable software.

We all know that plug–ins are like other techy gear, you can never have enough. I can’t help you scam new plug–ins but I can tell you about Apple’s comprehensive take on the subject…Along with support for VST and TDM in OS X, Apple debuts a new, native plugin architecture called Audio Units. Audio Units build in native support for hardware and software, which takes care of timing, buffering and real-time control. In OS 10, Apple has provided a new set of multi-tiered API services, “so that applications and MIDI hardware can communicate in a single unified way.” These services “range from low-level access to particular audio devices, to sequencing and software-synthesis.”

I’ll get into MIDI madness in a moment but first, a word about real–time vs not really real–time. Even though OS 10 is a multithreaded, multitasking OS, services for PCM are sample accurate and gracefully handle their tasks with overall latency in the 3 to 5 ms range. You see, all modern operating systems (OSs) are able to time domain multiplex the tasks that they’re asked to perform. It’s a bit like being an octopus: one tentacle is working on an e-mail job while another does a reverb convolution while still another manages hard disk accesses. As I write this, my TiBook is juggling at least 49 separate processes and I could care less, since the computer’s time management skills are transparent. But I would care if there was any noticeable and unwanted delay in something my mixing desk was doing or a recording had a gap in what are supposed to be contiguous samples. Ooops. So, prioritizing tasks is a major aspect of a well tuned operating system such that no user process is adversely affected.

Now, back to MIDI…In the past, Apple has relied on dicey 3rd party solutions for MIDI, due to a suit brought long ago by that other Apple, the one that owns a Brit record label. If you’re too young to know about this, ask your local neighborhood geezer…Anyway, that’s all history. So if MIDI makes your day, then check this: OS 10’s primary goal of MIDI services is “…interoperability between applications and hardware, so that everyone is working to the same MIDI System Services standard.” In other words, universal, predictable industrial strength MIDI support written by the the architect of Opcodes’ OMS and Vision. Other good stuff includes providing your MIDI I/O with highly accurate timing, which translates into latency under 1 msec. and jitter or short term timing variations under 200 microseconds. In addition, DLS (Downloadable Sounds) and SF2 (SoundFont 2) files as sample data are supported for sample-based synthesis.

Another goal of the MIDI infrastructure is to provide a single, system-wide MIDI configuration controlled via the Audio MIDI Setup utility. This allows the computer to “know” what devices are present, what are their manufacturer’s name and on what MIDI channels they’re operating. Of course, you can assign your own name to each device, and all this universality works with either FireWire or USB connectivity. The Audio MIDI Setup utility also serves PCM devices, so you can assign channels, set gain and sample rate as well.

Mac OS 10.2 Audio MIDI Setup

To keep things fresh, the MIDI services are designed to be extensible. “Toward that end, a device can have any number of properties attached to it…” and, device manufacturers can publish the particular properties of their products so other developers can interoperate or enhance the functionality. An obvious example is optional inclusion of icon properties, so visual appearance in software matches the actual widget.

Back to PCM, where OS 10 uses 32 bit floating point (think scientific notation from high school days) as the generic data format. I know, there are those of you out there crying foul at the prospect of only floating point arithmetic but Apple’s got something for youz guys — more on that in a bit. Anyway, all conversions necessary for the actual physical hardware, such as 16 bit fixed point converters, are handled by the driver in order to preserve the headroom of the PCM device’s mix bus. Sample rates of up to 192 kHz are taken in stride with as many channels as the CPU(s) can handle. Integral sample rate conversion is also built in, so the OS can deal with goofy synchronization or mismatched rates from multiple sources.

A moment ago, I mentioned a mechanism for handling non–32 floats data. For stuff like AC-3, DTS, MLP or even good ol’ 24 bit fixed point, Apple includes “native format support” for any data type that falls outside the purview of 32 bit floats. Native format support acts as a sealed conduit from data source to destination that keeps the OS from messin’ with the numbers in transit. With native format support, the application tells the OS that…“These aren’t the ’droids you’re looking for, you can be on your way.”

There are other technologies hiding in 10.2 that impact users, audio geek or not. One is newly optimized math libraries, which are key to zippy DSP and graphics performance. Improvements to the Mach kernel and libraries, along with smarter virtual memory, yield improved performance with host–based applications. B.J. Buchalter, CTO of Metric Halo, is responsible for cool stuff like SpectraFoo and Channel Strip. He feels that “10.2 is a pretty major improvement. There have been a wide variety of modifications to the Mach (kernel process) Scheduler and to Firewire in 10.2, all of which contribute to the overall stability and functionality of the OS for audio applications. In addition, Apple has added (the ability) to tell the system which streams of a device they are using, which has a major impact on the overall performance of the system for audio projects. In general, performance has been improved dramatically across the board and, since audio is performance limited, this is a great thing for audio apps.”

For those who live in a heterogenous world of Win and Mac, something you might find useful is Jaguar’s seamless Windows network compatibility. 10.1 had SMB support thanks to Samba, a sort of NetBIOS for Unix, but frankly, I could never get reliable results with it and resorted to OS X Server when I needed Windows networking services. With this version, you get simple, reliable SMB interoperability. Just define your User accounts, check the box in your Mac’s System Preferences, then pop into the beige beast’s My Network Places and, tah dah, there’s your Mac client. As Michael Swaine, Editor-at-Large for Dr. Dobb’s Journal put it, “…Isn’t this in the category of ‘play nice with the class bully?’ No, it’s ‘have sympathy for the bully’s victims.’”

Mac OS 10.2 Sharing Preferences Pane

For the pocket protector crowd, there’s also FTP and Web serving along with a built-in VPN client and Active Directory support through Apple’s LDAP-based technology, dubbed Open Directory, to round out the connectivity suite. SMB or Server Message Block, is a native network file sharing protocol from Microsoft and, if none of this makes sense, don’t worry. Just enjoy the irony next time someone starts up about the superiority of Windows.

A few more features worth mentioning distinguish this revision to OS X. A system–wide address book, AIM–compliant instant messaging and autodiscovery of IP peripherals round out the Jaguar mix.

Back in 1872, Charles Darwin wrote in his Expression of Emotions, “Cats use their voices much as a means of expression, and…the purr of satisfaction which is made during both inspiration and expiration, is one of the most curious…It is said that the lion, jaguar, and leopard do not purr.” Were Mr. Darwin alive today, I can assure him that, though I’m not of the feline persuasion, I too am purring.

Bio

OMas works on relieving pain for content creators near and far and lives due south of Alcatraz, due west of the Pyramid. This column was created while under the influence of Yo La Tengo’s I Can Hear The Heart Beating As One and the classic fusion of Weather Report’s Mysterious Traveler.