Written by Mike Boncaldo, Cakewalk Engineer
One of the big new improvements in Project5 Version 2.5 is the ability to simultaneously use all Input and Output channels on an audio device. As you can imagine, going from supporting one Input and one Output to many of each involved changes on a fairly major scale, especially to the audio engine <==> driver interface.
Another challenging area was project persistence - what to do when loading and saving project files in a context where the numbers of available audio I/O channels can vary. Our testing in this area presented us with quite a few situations that we hadn't considered; we'll be relying on the group's testing to find many many more... :)
Following is a brief overview of what "Multiple I/O Support" really means in Project5.
ACTIVE AUDIO DEVICEP5 audio I/O is based on the concept of one "selected" or "active" audio device.-Choose which is the active device from "Options -- Audio"-P5 supports simultaneous access to all the Input and Output channels on the selected audio device-Channels are grouped by Project5 into stereo pairs, refered to as "hardware outputs"
OUTPUTS
-When creating a new project, Project5 creates as many Master buses as there are hardware outputs on the active device-Master buses can be sent to any (or no) hardware output, but only one Master can be routed to one output pair at any one time. That is, there is no mixer at the hardware output stage (unlike SONAR).-Saving a project will save all the master buses, including their settings, effect chains, and which output to route to-Loading a project restores the Masters and all settings, including Master to output routing.
INPUTS-Audio Input sources can be selected on a track-by-track basis. When a track is created, the Input selection is initially set to None.-Input selection is done via a popup menu in the track inspector.-All audio inputs on the active device should be available for use, as well as having the traditional Project5 option of Left, Right, or Stereo on each.-Input sources are persisted in a manner similar to Outputs (see below): if opened on a system with differing audio hardware, it will assign available Inputs to tracks in order.
PERSISTENCEBut what happens if the number of hardware outputs changes between Saving a project and Loading it? (For example, if you create a project on one system, and then open it on a different system that happens to have a different number of hardware outs.)
i) FEWER Hardware OutsWhen opened on system with fewer hardware outs than Master buses:-The available output pairs are enumerated, and Master buses will be routed to the hardware outputs in the project as far as possible.-The remaining Masters' output routing will be set to "None"
ii) MORE Hardware OutsWhen opened on system with more hardware outs than Master buses:-The master bus to output routing will be maintained. That is if a Master was routed to "Ouput 1" (the first output in the list) on the old system, it will be routed to the first output on the new system also.-New buses will be created, one per "extra" hardware out until each available hardware output has a Master to feed it.
iii) LEGACY PROJECTSWhen opening projects created by P5 v2.0.1 and previous:-All P5 project (.p5p) and template (.p5t) files prior to version 2.5 had one Master bus.-If the active device has one hardware output, the project will open exactly as it was, with the one Master routed to the one output-If the active device has more than one output, then it is handled by case (ii) above: The original Master will be routed to the first hardware out, and additional Master buses will be created and routed to each of the remaining hardware outs.