Cakewalk’s CTO Noel Borthwick sheds some light on the features “under the hood” in SONAR 8.
*Note that this list is not a substitute for the official feature list & other features already documented in the SONAR 8 manual. Rather it is a list culled from Cakewalk’s Engineering Department*
Although every version of SONAR we shipped in the past had some degree of optimization work, SONAR 8 is the first version of SONAR to which we applied the same engineering process to performance optimizations as we do with other more user visible features. i.e. we established goals, built a specification for the optimizations, split up the work into milestones and tracked the progress of these tasks just as we do for other features. To make testing more deterministic, we devised various internal profiling tools in order to track and measure changes in performance across a variety of hardware platforms on XP as well as Vista.
Systems tested included brand new cutting edge platforms from Intel and AMD as well as earlier generation machines.
We split up this work into the following classes of performance enhancements for SONAR 8:
1. CPU and kernel level optimizations – use less of your CPU to do the same amount of work
2. User Interface optimizations – faster drawing, scrolling, zooming
3. Driver level optimizations – more efficient access to drivers, minimizing driver state transitions
4. Vista OS specific optimizations – Better use of MMCSS thread priorities, support for custom MMCSS task profiles, new WASAPI support
5. Audio engine optimizations – optimize “hotspots” in our bussing, streaming and mixing code
As a result of all these changes, SONAR 8 has the following benefits:
– greatly minimized kernel usage. This helps provide more “kernel bandwidth” to drivers who need it the most. More kernel bandwidth translates into less potential for audio glitches.
– Lower CPU usage – translates to better performance at low latency
– More efficient use of audio drivers – esp with ASIO drivers
– Better performance on Windows Vista esp X64. Many of the complaints of Vista performance as compared to XP have been solved with SONAR 8. X64 low latency performance should now be on par with X86.
– Faster application launch
– Less flicker in GUI. Track view splitters no longer flicker when resizing.
– More responsive zoom and scroll with large projects. Zooming with wave files now uses 1/2 the RAM with 24-bit or less stereo or mono files used.
– Better meter performance.
– Improved thread scheduling by insuring threads are properly distributed on processors.
This link shows the overall benefits of SONAR 8 as compared to SONAR 7: http://www.cakewalk.com/Products/SONAR/English/benchmark.asp
ASIO devices are now always kept in a started state and not periodically stopped and restarted each time you start playback from the transport.
Addressed problem where the first ASIO buffer was not audible. (audio metronome first beat is now always clear in ASIO mode)
Improved handling for driver reported ASIO output latency. Tracks are now automatically compensated based on the driver reported output latency. i.e when running at higher latencies, the now time in SONAR will exactly coincide with what you are hearing from your speakers.
SONAR Audio Options buffer size display automatically updates after changing buffer size from ASIO Control Panel.
Loopback recording is now sample accurate in ASIO mode
Numerous other improvements and optimizations to ASIO core.
ASIO latency updates in audio options after changing panel.
Audio driver changes without restart:
SONAR has traditionally required an application restart when changing various driver specific settings in the audio options dialog, before the changes were applied. For some changes such as configuring ports or changing the driver model, this often meant restarting more than once, as well as several confusing prompts that the user had to respond to before the changes were accepted.
In SONAR 8 we now streamline this process by minimizing the number of prompts and not requiring a restart of the application.
This includes adding and removing inputs/outputs and changing driver modes.
Audio Option configuration settings:
SONAR’s audio configuration settings are stored in a file named AUD.INI. SONAR 8 provides a convenient way to edit, reload and reset to defaults the audio configuration settings from options | Audio | Advanced. This is handy for making quick changes or resetting your configuration to factory defaults.
New audio configuration for multichannel audio devices:
ShowMultiChannelOutputs / ShowMultiChannelInputs
These are new variables in the Wave section of the AUD.ini file that specify whether SONAR treats multichannel audio devices as multiple stereo pairs or just a single stereo pair. This allows using multichannel outputs for devices such as the Lynx Two in WDM mode, without conflicting with the other stereo output pairs exposed by the driver.
Support for 24 bit multichannel audio devices:
SONAR 8 now allows accessing multichannel HDAudio devices in 24 bit mode
Assign tracks to mono hardware outputs:
SONAR 8 lets you assign audio track and bus outputs to individual (mono) hardware outputs in addition to stereo pairs. This is very useful, for example, if you record in SONAR but want to use an external mixing console to mix.
Arm tracks during playback/recording:
SONAR is now able to arm and disarm tracks during playback and recording.
This allows you to record to different tracks while the transport is rolling, without first having to stop playback in order to arm a track for recording. This can also be useful to save disk space and bandwidth in a long recording session when certain tracks are idle, by dynamically disarming those tracks.
MIDI out port assignments are retained when adding/removing MIDI devices:
In SONAR 8, MIDI tracks and control surfaces retain their current MIDI output port assignments if you add or remove MIDI devices. Additionally on loading a project that uses orphaned MIDI ports, a new dialog allows you to remap all ports to available ports.
New Insert Send Assistant dialog:
The Insert Send Assistant makes it fast and easy to create effect buses and insert sends to new or existing buses. You can insert a send across multiple or single tracks with this.
File and project load:
Optimized project loading. Large projects load quicker.
Added more failsafe handling for plugin’s while saving projects.
Added more self repair code for damaged project files.
Display logical VST parameter values:
SONAR is now able to display meaningful real-world parameter values for VST plug-ins instead of generic values (0.0 through 1.0). For example, an equalize plug-in might show 20kHz instead of 1.0.
Accurate parameter values are exposed in the following locations:
– ACT surfaces and property pages.
– Assignable controls in the Synth Rack and Console view.
– Envelope tooltips (only current value at Now Time). Envelope tooltips that are at some arbitrary value will still show 0.0 through 1.0.
Note: All VST plug-ins do not expose the information that is required to show meaningful parameter values. SONAR will attempt to obtain the best parameter value information possible from the plug-in.
Limit number of plug-in sidechain inputs:
By default, a multi-channel VST plug-in always exposes the maximum number of input channels it supports.
You can limit the number of sidechain inputs that SONAR displays for any given VST plug-in.
This is useful if you don’t need to use all the input channels and you want to limit the number of audio input channels that are displayed in SONAR.
Third party vendor requested VST fixes:
Timeline info is now properly reported to plugins as timeline based time and not “unrolled” time even when looping or seeking on the timeline during playback. This addresses problems with various plugins such as those from ToonTracks that rely on VSTTimeInfo. VSTTimeInfo is now also optimized to run quickly.
32 bit and 64 bit VST’s can now co-exist in the same VST path. A 64 bit VST will “win” over a 32 bit VST when running under SONAR X64 and not require BitBridge.
In S7 you could run into situations where if you had two VST’s with the same VST ID it could end up using the 32 bit version even if a 64 bit version was available.
VST MIDI Out fixes:
1. If a metronome count in is present, the recorded data is incorrectly offset on the timeline by the count in time
2. When loop recording the loop recorded takes were placed at “unrolled” positions on the timeline
3. Seeking on the timeline while looping would throw off the VSTTimeinfo reported values
Windows Vista – New WASAPI driver mode:
WASAPI (Windows Audio Session API) is the new multimedia API to talk to audio devices in Windows Vista. It represents the first real general purpose audio API from Microsoft in over 15 years, since MME from Windows 3.1. The primary advantages of WASAPI are:
– Supports a wide variety of audio devices (any device that has a WDM driver should work in WASAPI mode if Windows can use it in exclusive/event mode)
– Provides low latency access to the device in WASAPI exclusive mode. (unlike older Microsoft API’s like MME or DirectSound)
– Model that is the closest to the low level WDM kernel streaming approach, while yet providing a higher level of abstraction for the device.
– Primary audio API for next generation of Windows.
Windows Vista: WaveRT:
In WDM mode WaveRT is automatically used internally when SONAR detects a WaveRT capable WDM driver. A [WaveRT] suffix is added to the driver name in this case.
In SONAR 6.2 we first introduced support for Vista specific WaveRT. Direct WaveRT mode is available in SONAR when you are using WDM as a driver mode and a WaveRT capable device is detected. In Vista SP1, Microsoft made some fundamental changes to WaveRT API’s that return the device sample position, returning a cyclic position rather than a monotonically increasing position. In SONAR 8 WaveRT support has been updated and enhanced so that it works properly with Vista SP1.
Windows Vista: MMCSS task profile support:
The Multimedia Class Scheduler Service (MMCSS) provides Windows multimedia programs, including SONAR, with prioritized access to CPU resources for time-sensitive processing. By default, SONAR uses the MMCSS task profile named Pro Audio. If desired, you can now instruct SONAR to use a custom user created MMCSS task profile.
Live input bounce:
When using the Bounce to Track(s) or Export Audio command to bounce audio in real-time,
you can now choose to include any live audio input in the bounce. This allows you to capture realtime inputs as part of the bounce. This feature can be used to record soft synth outputs to a track in realtime – i.e. MIDI that triggers the synth will be printed to the track.
Option to keep partially rendered bounces:
When a bounce is cancelled by the user, you now have the option to keep the partially rendered output
Support for bouncing audio generator plugins:
You can now bounce tracks which do not contain audio clips. This allows rendering audio from plugins that are “audio generators” by bouncing a track that contains just the plugin.
Improved handling of bundle files and AudioSnap projects. Just turning on AS and turning it off will no longer disable bundle saving. Option to remove cached edited data if it’s off.
Select all AudioSnap/SlipStretched clips:
SONAR 8 includes a new command to select all AudioSnap and stretched clips. The primary use of this command is to quickly select all stretched audio clips before you use the Edit > Bounce to Clip(s) command.
There are two common reasons why you may want to bounce AudioSnap and stretched clips:
– To free up CPU resources during playback.
– In order to save a bundle (.cwb) file, which does not support AudioSnap data.
QuickTime 7 import/export:
SONAR 8 supports QuickTime 7 file formats, including H.264 support
This also enables the ability to import AAC audio files into SONAR
SONAR has a new track type called instrument track, which makes it very simple to work with soft synths. An instrument track is essentially two tracks–a MIDI track and an audio track, both associated with the same soft synth–contained in a single track strip. An instrument track allows you to control the MIDI data that is sent to a soft synth and the audio signal that is returned from the soft synth.
Because an instrument track is a hybrid between an audio and a MIDI track, an instrument track strip contains both audio and MIDI controls. Internally, the MIDI output is assigned to the soft synth’s MIDI input, and the audio input is assigned to the soft synth’s main output. By default, MIDI clips are displayed and can be edited in the Clips pane. MIDI track and clip envelopes are not available.
If an instrument track is frozen, audio clips are displayed and can be edited in the Clips pane. Audio track and clip envelopes are also available. You can flexibly make an instrument track from existing synth tracks or split an instrument track into its components parts.
Exclusive Solo mode:
By default, SONAR allows you to solo multiple tracks and buses simultaneously. With the new Exclusive Solo mode, you can only solo one track and one bus at a time.
When you solo a track or bus in Exclusive Solo mode, all other soloed tracks or buses are automatically unsoloed. This allows you to quickly listen to individual tracks and buses in isolation without having to manually unsolo other tracks or buses.
When you enable Solo Override on a track or bus, that track/bus will never be muted as a result of soloing any other track/bus.
This is a very useful feature when you want to always hear a particular track regardless of which other tracks are soloed. For example, you may want to always hear the vocal track while you solo other instrument tracks. This can be accomplished easily by using Exclusive Solo mode (see Exclusive Solo mode) and enabling Solo Override on the vocal track.
SONAR’s transport has been updated with several convenient functions, including dedicated Pause, Rewind, Fast Forward and Audition controls.
Scrubbing is now also smoother and more responsive.
Allows user to stop Now Time and *not* move the Now Time marker.
True Rewind and Fast Forward buttons / control surface Jog/Shuttle functionality:
The Transport toolbar has new dedicated Rewind and Fast Forward buttons, which allow you to rewind and fast forward smoothly during playback. To rewind or fast forward, click the Rewind or Fast Forward button and keep the button pressed until you want to resume playback.
SONAR now has a dedicated Audition button in the Transport toolbar.
The Audition button allows you to preview multiple, non-contiguous clips across different tracks simultaneously
Clip selection groups:
SONAR 8 lets you treat multiple clips as a single unit. By grouping clips, you can select and edit an entire group of clips by simply selecting or editing any group member. A group can contain both audio and MIDI clips from a single track or from multiple tracks.
Clip groups are very useful, for example, when editing multitrack drums and you want to synchronize edits on all clips from the same recording take.
You can instruct SONAR to automatically group clips after recording multiple tracks simultaneously, or you can add and remove clips from a group after the clips have been recorded.
Enhanced editing with keyboard:
SONAR 8 supports advanced editing via the numeric keypad on standard QWERTY keyboards.
You can perform the following operations:
Aim Assist line:
Aim Assist is a vertical white line that shows the mouse pointer’s horizontal position in the Clips pane.
The mouse pointer’s time position is also shown in the time ruler.
Aim Assist is a helpful guide when editing in the Clips pane, making it easy to align the mouse pointer with events on different tracks or markers in the time ruler.
Quick Group enhancements:
SONAR 8 makes it easy to create a Quick Group of all tracks that are assigned to a particular bus.
To create a Quick Group for all tracks assigned to the same bus. Hold down the ALT key and click on the bus’ Strip Selector button in the Track view or Console view. All tracks that are assigned to the bus now belong to the same Quick Group.
Ctrl + , and Ctrl + . now toggle selection and quick group for the current track when there are already tracks selected/quick grouped.
Folder names now display correct in accessibility string
FX Bin effects now appear in accessibility string
Misc User Interface Enhancements:
New way to select all audiosnap clips for ease of bouncing Ctrl + Alt + A
Improved tap tempo stability for systems with dif time stamp counters (multicore)
Empty folder tracks now stay in correct order.
Multiline dynamic tips (for surround panners). Much easier to read.
Mute and split tools now work on multiply selected clips.
Ctrl + , and Ctrl + . now toggle selection and quick group for the current track when there are already tracks selected/quick grouped.
Insert multiple tracks limit raised to 96.
Step Sequencer drawing more efficient. Views were redrawing too often. Better cpu usage.
Fix for sluggish behavior with lots of tracks and opening dialogs.
Transient tool more efficient with many streams on track.
Mains View insert key implemented. i.e. insert now inserts buses.
Nudge command uses less memory and also works faster. Good for large projects.
Reduced font usage (fewer GDI handles)
Zooming with wave files now uses 1/2 the RAM with 24-bit or less stereo or mono files used.
—- END —-