BitHeadz created quite a stir several years ago when it introduced its versatile Retro AS-1 software synthesizer and its powerful Unity DS-1 software sampler. Now BitHeadz has combined updated versions of those instruments with its new physical-modeling technology to form its latest product: Unity Session. As an added benefit, the package includes a large library of sounds, loops, and samples, making Unity Session highly useful right from the start.
BitHeadz has chosen to optimize performance and polyphony by implementing Unity Session's audio engine at the system level, with the interface running at the application level. Many of the improvements to the program involve exponentially increasing performance by exploiting the latest computers' processing power to the greatest extent possible. BitHeadz has focused on the Mac G4 processor and OS X with the first release of Unity Session (though the software will run on a G3 with Mac OS 8.6). BitHeadz plans to release a Windows XP version in early 2003. Until then, the most recent offerings for Windows users are version 2.1 of the separate Unity DS-1 and Retro AS-1.
BitHeadz has embraced the G4 in part because the G4's Velocity Engine (aka Altivec) dramatically speeds up the floating-point processes inherent to digital audio. The stereo polyphony count is substantially higher on a G4 than on a G3 of the same clock speed, yielding a maximum of 128 notes with 32-bit internal processing on a single processor.
The company has also embraced the multiprocessor support in OS 9 and OS X. The use of two G4 processors could double the maximum stereo polyphony to a stunning 256 notes, depending on the program and on the number of enabled MIDI and audio effects. With either a single or dual processor, the difference between the software's potential and reality is based on processor speed. On my test machine, an 800 MHz PowerBook running Mac OS 9.2.2, I was able to achieve 62-note polyphony with DS-1. Switching to AS-1 synthesis reduced my polyphony considerably, to 16 notes. Effects can further reduce CPU availability and, with it, polyphony.
Although you can run Unity Session on earlier Mac OS versions, BitHeadz was one of the first software manufacturers to provide OS X support. In fact, the entire Unity engine has been rewritten to get as much juice as possible from OS X. That includes faster processing and file access, protected memory, and OS X's built-in support for audio and MIDI. In addition to eliminating third-party MIDI protocols like OMS and FreeMIDI, OS X's CoreMIDI theoretically reduces MIDI latency to less than 1 ms — a significant improvement over the 5 to 7 ms delay typical of OS 9. (Unity Session supports 8 ports for 128 MIDI channels under both OS 9 and OS X.) OS X's Audio Objects also eliminate dependency on third-party audio routing protocols such as RTAS, MAS, and VST.
ARE YOU BEING SERVED?
The original Unity and Retro relied on a Unity Engine extension that integrated into the system in much the same way that QuickTime does. Unity Session replaces the original Unity Engine with Unity Server, a system-level processing component that automatically launches anytime a service is required by either Unity Session or another program, such as a sequencer. Everything else in Unity Session is a plug-in to Unity Server.
Unity Session supports up to 24-bit, 96 kHz audio and delivers true stereo oscillators (up to three per synth), thereby eliminating the complications inherent in syncing two mono oscillators to achieve two channels. The oscillators also let you apply and read splice points in loops much like BitHeadz Phrazer, letting you change tempo and synchronize to MIDI clock without changing pitch. Unfortunately, Unity Session can't read REX or REX2 files, though BitHeadz says it's had enough requests to warrant adding that feature to the update list.
Unity Session can access as much RAM as your computer can hold — typically a lot more than hardware samplers can handle. It is also capable of streaming samples from disk, though you'll take a performance hit when compared with loading samples into memory. You determine what is streamed and what is loaded by setting a threshold sample size in Unity Server. Any sample smaller than the threshold value loads automatically into RAM, while anything larger is streamed from disk. Incidentally, BitHeadz recommends using, at minimum, a G4 with 512 MB of RAM if you're running a sequencer on the same machine.
Unity Server can also record its own output back to disk. Among other things, that means you can trigger multiple channels live from a sequencer and sample the result as a form of resampling.
As mentioned, the architecture for the new Unity Server (and Unity Session itself) is based completely on the concept of plug-ins. Unity DS-1 and Retro AS-1 are now plug-ins; they are joined by new sound-generation sources such as physical-modeling modules. (As of this writing, BitHeadz has several new modules in the works, including VectorSynth, Electric Piano, FM-1, and WaveSequencer.) What were once built-in audio effects and MIDI effects are now plug-ins. A few additions bring the count to 25 audio effects and 9 MIDI effects. Unity Session's MIDI effects include some interesting tools, a programmable arpeggiator among them. In general, the audio effects are passable, but not exceptional.
Real-time translators for non-native sample formats are another class of plug-ins. The current crop allows Unity Session to read an impressive variety of formats, including Giga, Akai, Roland, SampleCell, Sound Designer, AIFF, WAV, SoundFont 2.0, DLS, and CD-audio.
Unity Session's plug-in architecture allows both BitHeadz and third-party developers to create software expansion modules that capitalize on the refined Unity Server and expand Unity Session functionality in myriad ways. One significant benefit is the ability to use the different types of sound sources and effects simultaneously. That paves the way for a new hierarchical class in Unity Session: the Instrument. Unity Session Instruments store the split/layer relationships of multiple Programs. Programs are comprised of a sound module type, parameter settings, modulation tables, and in the case of sample-based Programs, samples and multisamples.
Once appearing on a single screen, Unity Control Panel now has nine tabs that divide the basic controls into panes dedicated to configuration, bank locations, audio, MIDI, plug-ins, and so forth. The Configuration pane, for example, is where you set up and manage master parameters, such as the number of voices, CPU usage, buffer allocations, master tuning, and sample rate.
Unity Server can handle everything that another application needs from Unity Session, so you never have to actually launch a BitHeadz application to access basic Unity Session audio playback from a sequencer. You can, however, unleash a great deal more potential by getting into the individual Unity Session applications. Like the original versions of Unity and Retro, Unity Session divides its functions into various modules so that processing overhead is not usurped by a single program having to do everything at once. There are four separate applications in Unity Session: Unity Mixer, Unity Editor, Unity Keyboard, and Unity Player.
Unity Mixer (see Fig. 1) is where you arrange multiple MIDI channels of Unity Session sounds, including mixing and matching the various classes of sound module plug-ins. Each channel provides separate selection of Library, Bank, and Program, and the new architecture allows you to mix and match types of sound sources — like samples, synthesis, and physical modeling — within the one Unity Mixer.
Each channel sports two in-line MIDI effects, two in-line audio effects, two audio-effects sends, transposition, tuning, pan, volume, and a few other goodies. The master section also has two in-line MIDI effects, two master audio-effect sends, and two master in-line audio effects. Annoyingly, the Unity Mixer interface under OS 9 has an extremely sluggish redraw that is atypical of modern software. BitHeadz states that this is an artifact of the way the code was optimized for OS X.
Unity Editor has been redesigned to accommodate all types of synthesis, sampling, and modeling. The tabbed window architecture is common to all; the contents change in context with the device. BitHeadz has also made a lot of small refinements to the editing functions. Crossfades can smooth transitions between adjacent samples, and you can Velocity-crossfade between as many as four layers of samples on a single oscillator (see Fig. 2). You can also mix two samples together to create a new one.
Unity Editor can divide a long sample into a series of smaller ones according to a specified tempo, sections of silence, or the current split points that you've set (see Fig. 3). Users can also define tuning, controller maps, and custom audio routing. Other additions include resampling, pitch shifting, time stretching, syncing of loops to external clock, and the ability to edit MP3 files.
The Unity Player application (see Fig. 4) is essentially a simplified version of Unity Mixer designed for performance. It provides basic assignments and controls for two MIDI channels in Split or Layer mode. Unity Player makes it easy to keep a subset of your sound-library favorites. Although Unity Player didn't exhibit the redraw problems mentioned earlier, the process of saving configurations (under OS 9) was still excessively sluggish.
The fourth application, Unity Keyboard, is primarily for testing proper installation and configuration of Unity Server by either pressing a key on your QWERTY keyboard or clicking on the onscreen keyboard.
PLAYS NICELY WITH OTHERS
BitHeadz has done a lot of work to ensure that Unity Session integrates well with other popular software. In fact, the manual devotes nearly 70 pages to getting Unity Session working with various programs. Plug-ins specific to each application automatically bring Unity Server online.
Steinberg Cubase VST and Emagic Logic can communicate with Unity Session through ReWire, or Unity Session can function as a VSTi plug-in, complete with support for VST clock. Digidesign Pro Tools users can access Unity Session as an RTAS plug-in or with DirectConnect.
MOTU Digital Performer owners can take advantage of Unity Session's support for MAS 2.1. When using Unity Mixer with Digital Performer, you can assign MIDI tracks to any one of four independent buses that can, in turn, serve as independent inputs for a Digital Performer Audio or Aux track. Unity Session also supports Sound Manager, ASIO, and OS X's Core Audio.
On the MIDI side of things, Unity Session supports OS X's CoreMIDI as well as OMS, FreeMIDI, Roland PC300, and serial input. The product ships with dedicated applets for standalone connectivity and MIDI monitoring for the MIDI protocol you use. You need to launch one of those before booting a Unity Session application in order to communicate with Unity Session outside of a sequencer application. In the case of OMS and FreeMIDI, Unity Session automatically publishes patch names to other programs.
Because BitHeadz had discovered some bugs in Unity Session 3.0, I waited to review a subsequent version of the program. When I installed version 3.0.2 (which quickly followed 3.0.1), I encountered problems with the authorization engine. BitHeadz provided me with a manual work-around and then fixed the problem in version 3.0.3. Then one of the library CDs in 3.0.3 appeared as a blank disk on my Mac. After I installed version 3.0.4 and BitHeadz walked me around an online registration glitch that the company attributed to its ISP, I was able to proceed with the review.
Unity Session's interface is sensibly laid out and operation is fairly intuitive. The 431-page printed manual (available for an additional $15) is a rarity in this day and age and deserves praise. (Normally, the package includes only a PDF version of the manual.) No online documentation is provided except for rollover-tool tips that are curiously spotty in implementation. All of the Unity Session modules allow you to limit Banks and Patches according to selected Libraries, thereby enabling you to find the sounds you're looking for without getting overwhelmed.
The idea of dividing up the program's functions into individual modules makes sense from the standpoint of efficiency; I wish, though, that I could just tweak a sound right from Unity Mixer without separately launching Unity Editor. (You can, however, use the Program Action button to launch Unity Editor and automatically load the assigned program.)
I did encounter some operational problems. For example, I experienced some stuck notes when playing certain patches from a MIDI keyboard. According to BitHeadz, the stuck-note problem was eventually tracked down to an elusive bug that will be fixed as part of the upcoming 3.0.5 release.
The Unity DS-1 plug-in also occasionally gave off a high-pitched whine while I continued to hold keys after some unlooped samples ended. BitHeadz explained that the problem occurs in some isolated samples that slipped through the cracks when converting the Unity library from 2.0 to 3.0. The program also just plain stopped responding or crashed on numerous occasions. That happened both under normal playing conditions and when I administered acid tests such as playing my MIDI controller with my forearm.
I was eager to test the new physical-modeling synths: Hammered Strings, Clarinet, Flute, and Bowed Strings (see Fig. 5). Although I found the results to be interesting and occasionally unique compared with standard sampling and synthesis, the instruments were unconvincing when emulating the real thing. There were, however, some intriguing possibilities, such as bringing in the overblown harmonics of a flute by engaging the Mod wheel. In general, the physical-modeling aspects of Unity Session are a lot more interesting as building blocks and starting points for synthesis or resynthesis than they are for reproducing acoustic instruments.
According to BitHeadz, the main purpose for including physical modeling was to provide another approach to sound creation through the manipulation of individual instrument characteristics. The flute physical model, for example, might best be described simply as a “metal tube-shaped wind-instrument model” that you can manipulate to create new sounds.
Unity Session ships with zillions of great sounds, including the “Best of Retro” and “Best of Unity” banks that showcase the significant flexibility and sonic power of the program. The banks are augmented by several BitHeadz library titles: Black & Whites, Pop Drums, and Orchestral Strings.
Black & Whites features a variety of piano samples that are about on par with the average sampled piano collection. Pop Drums is a presliced library of decidedly pop and rock drum loops ready for Unity's tempo-adjustment feature. The Orchestral Strings library, produced by Big Fish, offers a well-rounded collection of strings played in most popular styles. Although none of these libraries will cause your jaw to hit the ground, they're all respectable and add tremendously to Unity Session's value and usability right out of the box.
What's more, BitHeadz has thrown in the latest version of its Osmosis application. It can convert any Roland S-760/770 or Akai S1000/3000 sample CD into Unity 3.0, SampleCell, or AIFF format; it also includes the ability to merge zones. When converting to Unity format, all applicable multisamples, keymaps, and filter settings are translated as well.
Creating a program with the scope and power of Unity Session was no small undertaking. Moreover, the program's ability to build not just libraries but complex Instruments from sound sources as diverse as samples, software synthesis, and physical modeling is formidable indeed. In addition, the redesigned modular plug-in architecture opens the door to future expansion by BitHeadz as well as by other developers.
Keep in mind, however, that harnessing this power comes at some cost in processing. Unity Session is CPU hungry even in this day of fast processors, especially when it comes to synthesis. The $649 program combined with a high-horsepower CPU is still a reasonable value when compared to closed-architecture hardware devices. If you're looking for an integrated software synthesizer and sampler with an open architecture and wide library support, Unity Session is one of the most powerful and flexible choices on the market.
On the other hand, it appears that BitHeadz has begun shipping this product before it has ironed out all of the wrinkles. Bugs and glitches can be especially frustrating when you're dealing with an application that does so much and pushes the edge of technology in accomplishing its tasks. I'm willing to chalk up some of the anomalies I experienced to the same difficulties you might encounter in configuring any computer to run a complex music application. In most cases, however, I'd rather have a more bulletproof program than the impressive number of features that Unity Session provides.
Jeffrey Paul Burgeris a songwriter and multimedia producer based in Sedona, Arizona.
Minimum System Requirements
Unity Session 3.0.4
G3/366; 128 MB RAM; OS 8.6 or higher (including OS X); 2 GB hard-disk space
Unity Session 3.0.4
software synthesizer and sampler
FEATURES4.5EASE OF USE3.5QUALITY OF SOUNDS4.0VALUE3.0RATING PRODUCTS FROM 1 TO 5
PROS: Powerful software synthesis and sampling under one roof. Can change loop tempos without affecting pitch. Wide sample-format support. Includes large, well-rounded library. Good sound quality.
CONS: Questionable stability. Synthesizer offers much lower polyphony than sampler. Complex Instruments can easily tax CPU. Mediocre audio effects.