You are here

Xserve For Music?

Apple Notes By Mark Wherry
Published May 2007

Although Apple's Xserve is aimed at the server market, it also has potential as a workstation for music and audio software.Although Apple's Xserve is aimed at the server market, it also has potential as a workstation for music and audio software.

This month we take a look at Apple's Xserve as a platform for music and audio production, and continue creating a custom music-controlled 'visualisation' with Quartz Composer.

Mac-based musicians and audio engineers are often intrigued by Apple's Xserve, since although it's intended to be a server, it's the only Mac that comes in a 19-inch rackable format. So this month I've had a brief look at the latest Xserve model, featuring dual 3GHz Intel Xeon processors, 4GB 667MHz DDR2 fully-buffered memory, and Mac OS X Server 10.4.8.

Xserve Architecture

From a technical perspective, the Xserve and the Mac Pro are based on the same architecture, and the most significant physical difference between the two systems concern the case in which they're supplied. While the Xserve has a 19-inch, 1U chassis, there are two points to bear in mind. Firstly, it's deep — much deeper that any other rackable gear you will have in your studio, and quite possibly deeper than any rack you might own as well. This depth is the norm for 1U servers in the computing world, but it's quite unusual for typical audio equipment. Secondly, it's noisy, which is also to be expected for a 1U server, where the cooling has to work both efficiently and horizontally. The Xserve is designed to be located in a machine room, although Apple also sell the Gizmac Noise Reduction Enclosure cabinets, via Apple Store, for situations where Xserves need to be in the same room as you.

Another difference is that Xserves can be upgraded to use 32GB of memory, while the Mac Pro is expandable only to 16GB. The Xserve also features no built-in audio ports, OS X instead providing a Virtual Audio Device driver for both input and output, so the lack of any audio hardware doesn't prevent any applications from running. You can actually run Logic with the Virtual Audio Device driver without any problems — you just won't hear anything!

The previous generation of G4- and G5-based Xserves had some significant limitations when it came to expansion and graphics, because there were no built-in graphics and your only option was to add a PCI-based graphics card to the system, which Apple only offered with a VGA output. This has been rectified in the new Intel-based models, which come with built-in ATI Radeon X1300 PCI Express graphics offering 64MB GDDR3 video memory, supporting either VGA or DVI display via a mini-DVI adaptor.

Since the graphics no longer require a slot, it's been possible for both expansion ports to be left available. The first expansion slot can be ordered with either a PCI-Express or PCI-X riser, making the Xserve the only Intel-based Mac to support PCI-X cards, while the second slot is PCI-Express only.

Since Xserve doesn't feature any built-in audio ports, Apple provide a Virtual Audio Device driver, as reported here by Audio MIDI Setup running on an Xserve.Since Xserve doesn't feature any built-in audio ports, Apple provide a Virtual Audio Device driver, as reported here by Audio MIDI Setup running on an Xserve.The storage system in the Xserve is also greatly improved over both previous Xserve models and even the Mac Pro, as it supports SAS (Serial Attached SCSI). Unfortunately, discussing SAS requires even more space than I have available this month, so I'll leave that to next month; suffice to say that I did test an SAS drive with both Logic and Pro Tools, and had some some interesting results.

Unlike other Mac systems, the Xserve comes with an unlimited version of OS X Server, which offers a host of server-related functionality not provided with the regular client version of Mac OS X. While other Macs are capable of running this software (it's available to buy separately at £349 for a 10-user version or £699 for the unlimited version), there isn't a good way to run the client version of OS X on an Xserve, as the current boxed version of Tiger is the Power PC version. There's no need to sell an Intel version of Tiger, since all Intel-based Macs come with Tiger, and I didn't think trying to install the client version of OS X from a Mac Pro DVD was a good approach.

However, OS X Server is, for the most part, the same operating system as regular OS X, and for the purposes of testing I simply made sure all the server services were disabled. There was also no probem with installing a Fireface 800 interface, Logic 7.2.3 or Pro Tools HD 7.3.1cs2 with an iLok. For the Pro Tools system I used a new Digidesign Expansion HD chassis with a PCI Express host card, and the chassis itself had one Core card and five Accel cards, and was connected to 10 192 I/O interfaces.

Show & Tell For Apple?

This month's Apple Notes was finished at a potentially interesting time: a week ahead of Musikmesse in Frankfurt and three weeks ahead of the NAB (National Association of Broadcasters) show in Las Vegas.

Prior to Apple's purchase of Emagic, the German sequencer company used Musikmesse as a platform to announce significant new versions of Logic. The introduction of Logic Audio 5 and Logic Control in 2001 was the last time this happened, but Apple might use one of their three booths at this year's Musikmesse to show something new.

The NAB show has been a slightly better hot-spot for new Mac-related products in recent years: last year, Apple chose this event to announce the 17-inch Macbook Pro and the Universal Binaries of Final Cut Studio and Shake. Apple have already announced that they will hold a 'special event' on the eve of the exhibition side of the NAB show, and may well choose this event to anounce an update to the Mac Pro line-up, which hasn't been updated since its introduction last year. With Intel already supplying quad-core versions of the Xeon used in the current Mac Pro, an eight-core Mac Pro can't be too far away.

Testing The Xserve

In terms of performance, the Xserve is (as you would hope) comparable to a Mac Pro of a similar specification. In fact, running the same Platinumverb test on the Xserve as I did on the Mac Pro shows the dual-3GHz Xserve outperforming the dual-3GHz Mac Pro — 240 Platinumverb instances with 225 percent Logic usage and 56 percent User usage (as reported by Activity Monitor), compared to 210 instances on the Mac Pro with 222 percent Logic usage and 56 percent User usage. However, it's worth bearing in mind that there are other factors that could skew this test result, such as improvements in the OS since I ran the test on a Mac Pro last year.

Should you buy an Xserve instead of a Mac Pro if you're looking for a Mac that you can put in a rack? I'd have to say, probably not, since, at the risk of stating the obvious, the Mac Pro is designed more to meet the needs of a professional workstation user and the Xserve really is intended for the server market. But there's also the cost issue: while the starting prices of the Xserve and Mac Pro are £2199 and £1699 respectively, ordering the dual-3GHz processor upgrade option pushes these figures further apart, to £3519 and £2239, and that's before configuring memory and drives.

The Xserve seems to run Logic really well, though, and I'm sure it would make an excellent Logic Node system (especially if Logic Node eventually became more useful in terms of running EXS24 and other Audio Units plug-ins). But the big problem is that if you ever want to run Logic with more than one display, you could be out of luck; I wasn't able to test whether adding the graphics card in the second slot adds to the in-built graphics (giving you two displays) or works instead of them.

Pro Tools, on the other hand, could be really interesting. Again, the application seemed to run just the same as usual, but Digidesign don't officially support this configuration. The reason I say that Pro Tools could be more interesting is that Digidesign's chassis works well for expanded Pro Tools systems, and quite often you only need one monitor, especially if you are running Pro Tools as a mixer or recorder alongside a bigger system, or are on location. Hopefully Digidesign might validate the use of Xserves for running Pro Tools at some point in the future. 

And Then There Was 10.4.9

While it's not uncommon for major releases of an operating system to throw a compatibility curve-ball at music and audio software, these days it's relatively rare that a minor update could cause such a problem. However, the release of Mac OS 10.4.9 seems to have done just that. Plug-in developers Ohmforce report that Apple are supplying a new version of auval, a tool used to validate Audio Units, that is causing problems with Ohmforce plug-ins. The problems don't seem to be related only to Audio Units, though, as Waves' support is making the blanket statement that "Mac OS 10.4.9 is not supported and causes Waves plug-ins to malfunction. Do not install Mac OS 10.4.9 until further notice."

If you haven't tried to install 10.4.9 on your Mac yet, make sure you check out the compatibility of any software (and specifically plug-ins) you depend on before taking the plunge

Quartz Composer: Completing The Composition

In last month's Apple Notes, I explained how to start making music-controlled visual effects with Quartz Composer, the developer tool supplied with OSX Tiger.

As well as using MIDI messages to control the visual output of Quartz Composer, you can use an audio input. Delete the MIDI Controllers node in the Editor window by selecting it and pressing Backspace. Now, type 'audio' into the Editor's search field and double-click the Audio Input Source to create it as a node in the Editor window.

The Audio Input node has two outputs: Volume Peak and Spectrum. The Volume Peak output gives a control signal based on signal amplitude, useful for making graphics that beat in time with an audio input. Spectrum lets you use different frequency bands of the audio as a controller, although this is more complicated to deal with. For now, connect the Volume Peak output to the Initial Value input of the Math node.

This is what the completed Quartz composition described in the main text should look like in the Editor. The Inspector is showing the Input Parameters page for the upper Math node.This is what the completed Quartz composition described in the main text should look like in the Editor. The Inspector is showing the Input Parameters page for the upper Math node.If you inspect the settings for the Audio Input node (select it and press Apple+I) and choose the Settings page, you'll see two pop-ups for setting Audio Device and Input Source. All Core Audio devices should be available, although I noticed that with an RME Fireface 400 Input Source was disabled so that only the first input could be used. Select the appropriate Audio Device and Input Source. If you start playing audio into the chosen Input, the radius of the Lenticular Halo should start to bounce around in time with the music.

Let's make the Halo effect a bit more interesting by getting it to spin:

  • Type 'interpolation' into the search field and create an Interpolation Controller node.
  • Connect the Result output of the Interpolation Controller to the 'Y' Rotation input on the Sprite node. The Interpolation node creates a sequence of values over time between two values that we can specify by inspecting the Interpolation node and selecting the Input Parameters page.
  • Leave 0 as the Start Value and enter 500 as the End Value. The Halo layer should start to spin rather violently!
  • To do something about this, change the Duration value to 10 and set Repeat Mode to Mirrored Loop from the pop-up.

There's one problem with the spinning layer: as it spins, the grey and white checkerboard background becomes visible, which doesn't look great. To solve this, we need to create another layer that displays a black background behind the Sprite layer. We created one such layer last month, the Sprite Renderer that displays an Image in the Viewer from the Halo node. Type 'clear' into the search field and create a Clear Renderer Node. You'll notice the whole viewer goes black. Look at the Renderer Nodes on the Edit window and notice that they have a number in a yellow box in the upper-right corner of the node. Currently, the Sprite Renderer (which draws the Halo) is set to '1', while the Clear Renderer we just created is set to '2'. This number refers to the layer number on which a Renderer is output, and Quartz Composer renders the layers in the order of lowest to highest.

To remedy the situation, so the Clear Renderer is drawn before the Sprite Renderer, Control-click the Sprite Renderer node and set Rendering Layer to Layer 2 in the pop-up. The Halo should now appear on top of the black background, and as it spins you won't see the checkerboard background any more.

While the spinning is a neat effect, it does make you feel a little sick to have it spinning around all the time. Wouldn't it be interesting if you could trigger the spinning from a MIDI note? To do this, type 'midi' into the search field and create a MIDI Notes Controller node. Notice that the MIDI Notes node consists of outputs labelled as MIDI note pitches; the way this works is that when a note is played, the corresponding output on the node becomes '1' and when the note is released, the output becomes '0'.

The Quartz Composer Viewer window should look like this as the Halo effect spins.The Quartz Composer Viewer window should look like this as the Halo effect spins. If you inspect the MIDI Notes Controller node, you can Select Sources for the node in the same way we did for the MIDI Controllers node last month: select the MIDI port you wish to receive data from in the Select Sources pop-up in the Observed MIDI Sources area of the Settings page. Notice also that you change the 'Observed Octaves' for the MIDI Notes Controller node, which changes what note pitches have outputs in the node. By default, leave octave 5 selected. Octave 5 in Quartz Composer is the octave that includes middle C, so middle C is actually C5 in this case.

Back in the Editor window, we're going to do a little trickery. We need to toggle the Interpolation node on and off from the MIDI Notes node, but the Interpolation node doesn't have an Enabled input we could connect to from the MIDI Notes node. So instead we'll again turn to the Math node that helped us last month in scaling the values for adjusting the width of the Halo.

Create another Math Numeric node in the Editor window, and disconnect the connection between the Result output of the Interpolation node to the 'Y' Rotation input on the Sprite node. (Click on the 'Y' Rotation input and drag the connector into an empty part of the Editor window.) Now connect the Result output of the Interpolation node to the Initial Value input on the new Math node, and connect the Resulting Value output of the new Math node to the 'Y' Rotation input on the Sprite Node. The Halo should start spinning again.

To create the toggle, connect the Key C5 output of the MIDI Notes node to the Operand #1 input on the new Maths node. Now inspect the new Maths node and select the Input Parameters page. Set Operation #1 to Multiply from the pop-up menu and the Halo should stop spinning. Now, when you press middle C on your keyboard, the Halo should start spinning, and stop again when you release middle C.

Now, with Viewer window as the selected window, press Apple+F to make the Viewer full screen, add some audio and trigger middle C, rhythmically, as appropriate.

Although we've only scratched the surface of what's possible with Quartz Composer, hopefully you'll feel encouraged to carry on experimenting with this powerful tool. And even if you aren't going to do a live show with it, you can always pop your Quartz Composition file into the 'Library/Screen Savers' folder to use it as a screen saver.