Windows matters. It’s what roughly half of CDM readers use, and – for all the attention Apple gets – it’s a big part of the computer music world. Windows today also faces many of the same under-the-hood challenges that other operating systems do, so even if you’re a die-hard Linux or Mac user, you may want to pay attention. You don’t need to love Windows, and you certainly won’t be hosting a Windows 7 launch party. You want to know if the OS will get out of your way and let you get to work.
Windows Vista proved what happens when an operating system’s many interconnected pieces are out of alignment. Even a graphics driver out of sync with underlying changes in the OS could render audio unusable, because just one missed sample can produce an audible glitch or dropout. Part of why I’m optimistic about Windows 7 is that Vista today is a radically different picture, thanks to many, many fixes delivered by Microsoft in updates and more mature audio and video drivers. But that means not just whether 7 is better than XP, but whether 7 is also better than Vista.
Vista wasn’t entirely alone: Mac and Linux have all had their share of growing pains in recent years. The devil is usually in the details. So, I again turn to one of the best guys in the business for sorting out all those technical details. Noel Borthwick, the CTO for Cakewalk, probably has a better big-picture view of how music and audio work in Windows than anyone on the planet. He’s a person hardware and software vendors outside Cakewalk often rely upon as a resource. Noel kept us technically honest on Vista, and he’s doing it again on Windows 7, with some exclusive information for CDM.
Those details get mighty technical, so here’s the punchline: Windows 7 is an OS Noel would use himself. It was hard to get anyone to recommend Vista over XP; loyal Windows-using developers I know still largely stick to XP. But would Noel switch from XP to 7?
Yes, absolutely. Windows 7 finally delivers on the stability and performance that users hoped for from Vista. The kernel changes and optimizations for large scale multi-core processors make it very attractive to DAW users who are interested in better low latency performance. I will be building a new DAW soon and Windows 7 X64 will be my OS of choice.
What’s new in Windows 7?
- Better multithreading: Improved performance of highly-multithreaded software and hardware by removing a significant bottleneck, especially relevant to a tool like SONAR
- Better memory management: Improved memory management when working with multiple threads
- Less nagging: More customization over UAC prompts (meaning they don’t have to nag you more than you want)
- More lightweight: Fewer system services run by default on a stock system, plus a leaner footprint of the OS
- Media support: More native media format support, including QuickTime MOV and H.264, plus drag-and-drop media transcoding
- Composite devices: More logical display of hardware with multiple functions (like audio and MIDI).
- FireWire: Enhanced FireWire support, with IEEE 1394b
- Multi-touch: Multi-touch display support
- Usability improvements: An improved user interface, task bar, and Libraries for managing files
If you’re ready for all the gory details, read on – including a frank appraisal of how all of this compares to XP in real-world performance, and what compatibility issues to look out for if upgrading from either Vista or XP.
Noel Borthwick of Cakewalk effectively wrote this story in response to my questions, so these answers all come from him. Microsoft has not responded to my requests for a review copy, so I’ll be able to evaluate this on my own system – albeit far less scientifically than Noel can – closer to launch.
WARNING: Extremely geeky details of the inner workings of Windows 7 follow, in keeping with our “never dumbed down” policy. If you’re a developer, you can likely get some leads on how to better support Windows 7 in a single point, something even Microsoft doesn’t provide as completely. But if you’re willing to dig, you get a rare view of the OS from a developer view – no marketing speak, no cheerleading, no fanboyism, no platform wars, no writing for the lowest common denominator.
What Actually Improves Audio Performance
Peter: In terms of performance for audio production, what are the significant differences in Windows 7?
Noel: Windows 7 on the surface is very similar to Windows Vista. It has the same audio driver support and same audio system infrastructure as Vista. However, it’s some of the under-the-hood improvements that are more significant for audio production. There are some interesting innovations and optimizations in the Windows kernel, making the OS more scalable for concurrent processing. This makes it attractive for highly multithreaded applications like SONAR. Additionally there are various new API’s/SDK’s that may be of significance to developers. Some highlights are below:
Multi-threading: Removal of the kernel “global dispatcher lock”
In Vista and earlier, on a highly multi-threaded system (e.g. SONAR running on an 8 core hyper-threaded Intel Core I7 PC), you have many threads all processing tiny audio buffers at low latency. All these threads are ultimately waiting on the dispatcher lock when it comes time for them to be managed by the Windows scheduler. This global lock becomes a bottleneck in the system and prevents efficient multi-core workload distribution and scalability. This problem gets magnified as you increase the number of cores since they are all gated by a common lock. In Win 7 the kernel team changed the logic in the Windows scheduler to abolish this global dispatcher lock and use per object locks. This effectively removes this age old bottleneck and allows Win 7 to scale better even under workloads of 256 processors.
This change means a lot to applications like SONAR that rely on multithreaded processing of very small workloads. Initial benchmark results have been promising in this regard. SONAR performs more efficiently at low latency on multi core machines.
Improved Memory Management – PFN database lock
The PFN (page frame number) database lock was used by the memory manager to lock pages of memory in the working set. Like the dispatcher lock above, this would gate memory access from different threads causing resource contention. Work in this was first done in Windows server 2003 SP1 and Windows 7 has now has this optimization as well, improving asynchronous access to memory.
Power Optimization: Core Parking
Windows 7 has a new feature called Core Parking. Core Parking is a power saving optimization that shifts processing load to one or more cores and puts other less busy cores to “sleep”. The objective is to let other cores idle if workload levels allow for it. This optimization had us scratching our heads when we ran a benchmark test on a Quad Core I7 machine. At any point in time, we would notice that some cores were idle in task manager. The reason for this turned out to be Core Parking. Core parking can be useful to save battery life while running projects on laptops.
Better WaveRT Performance
Unlike Windows Vista, Win7 now uses event mode internally. This is good news, since it will help guarantee that HDAudio drivers in Win7 support WaveRT event mode properly. Additionally event mode is now part of WHQL logo certification for driver vendors, so any WAVERT device must support this to get a Win7 compatibility logo.
Ed. note: The plain-English translation here is that WaveRT, Microsoft’s own real-time audio driver facility, now is more likely to work the way you expect. Cockos, makers of REAPER, actually provided the ability to turn off WaveRT Event Mode at the end of last year because of unpredictable results. Windows 7 should resolve these issues.
Other Improvements
Peter: Noel also assembled some other improvements worth noting in Windows 7. They’re subtle, but useful: you may finally be able to avoid installing QuickTime/iTunes just to play some video files, interfaces with audio and MIDI jacks don’t have to show up separately any more, there’s improved FireWire support, usability improvements, and multi-touch on mainstream computers is now nearly here.
Noel:
Additional File Format support
Windows 7 adds native playback support for media in MP4, MOV, 3GP, AVCHD, ADTS, M4A, and WTV multimedia containers. It has native codec’s for H.264, MPEG4-SP, ASP/DivX/Xvid, MJPEG, DV, AAC-LC, LPCM and AAC-HE
Yes you read that right – QuickTime MOV file support is now natively available in Windows 7 so you don’t need to install QuickTime. Another big plus is that this is supported under the X64 version of Windows 7 as well, something you cannot do with Apple’s native QuickTime itself!
All media files using these codec’s should play in Media Player. It appears that these new codec’s are exclusively available to Media Foundation applications and not via other legacy API’s such as DirectShow etc.
File format transcoding
File format transcoding of many popular formats is now built into the Windows 7 shell. I.e. dragging and dropping files onto a device automatically performs the necessary format transcoding if the format is supported. This was primarily done to copy formats to portable devices like cameras but should be useful in other scenarios as well.
Multi-function devices and Device Containers:
Prior to Windows 7, every device attached to the system was treated as a single functional “end-point”. While appropriate for single-function devices (such as an audio interface), this does elegantly represent multi-function devices such as a combination audio/MIDI interface. In Windows 7, the drivers and status information for multi-function device can be grouped together as a single "Device Container", which is then presented to the user in the new "Devices and Printers" Control Panel as a single unit.
http://www.microsoft.com/whdc/Device/DeviceExperience/ContainerIDs.mspx
Note: this should not be confused with device aggregation as is available with Core Audio on Mac OS. On the Mac, you can treat multiple audio interfaces as though they’re one interface, so, for instance, you could get extra outputs by combining a couple of audio interfaces, and your software will see them as if they’re just one box. But SONAR provides this capability on its own, so if you’re a SONAR user, you can get the same functionality.
FireWire/USB
Windows 7 contains a new FireWire (IEEE 1394) stack that fully supports IEEE 1394b with S800, S1600 and S3200 data rates. According to reports, USB 3.0 may be supported in a future Windows Update. It was initially planned for Win7 but is not supported in the shipping version of Win7 due to delays in the USB 3 specification.
Multi-touch
Windows 7 includes integrated support for multi-touch displays.
Libraries
Libraries are user-defined collections of content including folders. It’s a handy way to categorize and create shortcuts to samples, music, etc. Special shell folders (Documents, Pictures, Music, and so on) are now Libraries.
Accelerators for Windows
Windows 7 Accelerators provide a way for learning more about selected text, optionally using voice control.
Virtual hard disks
The Enterprise and Ultimate editions of Windows 7 incorporate support for the Virtual Hard Disk (VHD) file format. VHD files can be mounted as drives, created, and booted from.
An installation of Windows 7 can be booted and run from a VHD drive, even on non-virtual hardware, thereby providing a new way to multi boot Windows.
Leaner Footprint
Win7 has a leaner footprint and has been tweaked to work well on less powerful PC’s, laptops and Netbooks. I have heard reports of Win7 working more smoothly on machines that would be slow under Vista.
Listen Mode
Another nice touch in Win 7 is that they now have a listen tab in the audio properties. Turning on "listen mode" basically routes input to the default output device allowing you to monitor an input device in Windows itself. Sadly this runs via the Windows audio engine which is always running in WASAPI shared mode, so it’s subject to a 30 msec delay. Of course you can always load an application like SONAR and route the audio inputs to an output for low latency monitoring.
Compatibility: What to Watch
Upgrading from Vista
Peter: Relative to Vista, are there any changes that are likely to introduce new compatibility issues with hardware or software?
Noel: With any new OS there is always the potential for compatibility issues. Win7 is built on the Vista foundation and one of its goals was better compatibility. As such most applications that are Vista compliant should work as well or better in Windows 7. UAC in Windows 7 has been improved so this might also help with general compatibility problems with some applications.
We have run into only a couple of compatibility issues in Win7 during the course of our development/testing of SONAR 8.5.
The MMIO API in Win7 (typically used for writing RIFF wave files) has a compatibility issue with the mmioDescend API with LIST ‘WAVE’ chunks. This caused our code that reads audio bundle files to fail and read scrambled audio data. We worked around this problem in 8.5
In WASAPI exclusive mode under Win7, the minimum latency you can achieve is now unfortunately 3ms and the code reports an error if lower. The fact that Vista has no such limitation has been reported to Microsoft. Hopefully its a mistaken fence in their code and this issue is fixed via an update, since it’s a step backwards for low latency in WASAPI mode.
Ed.: That last issue is an interesting one for anyone really pushing the envelope with low latency, so I’ll keep in touch with Noel if there’s any update.
Upgrading from XP
Peter: What hardware and software compatibility issues should users be aware of if they’re thinking of migrating not from Vista but from XP to Windows 7?
Noel: The compatibility issues that typically affect users migrating from XP to Vista/Win7 are:
UAC problems: Many applications and plug-ins are not built to handle the newer security settings in these OS’s. For example, if an application relies on something that requires administrative access it will fail when running as a limited user in Win7. This is a serious issue since in Vista/Win7 even if you are running from an administrator account; programs are launched by default with limited user privileges. Unlike XP, you have to explicitly run as an administrator to use such programs. To be Win7 logo-compatible, all applications need to should support running as a limited user.
Drivers: Although for most practical purposes audio drivers in XP and Windows 7/Vista are similar (you still need to write WDM drivers) there are sometimes quirks in specific drivers may cause problems. Most typical driver issues here are caused by installers that make assumptions about the OS version. In many cases this issue can be solved by the end user by setting the “compatibility mode” to Vista in the file properties for the appropriate driver installer file. (Right click the setup exe file to set its properties)
Ed.: I don’t feel either of these is a deal-killer, as I’ve been living with Vista for some time, but they’re still worth watching out for if upgrading from XP. And it means if you have an older machine that’s still working properly, you’re just likely to leave it on XP and worry about sorting the upgrade on a new box.
Less Nagging?
Peter: We talked when Vista came out about User Account Control and particularly audio-specific tasks that required elevation or different handling of permissions in Vista. I know UAC has been streamlined in W7. Do these changes impact audio apps at all? Are there corresponding under-the-hood changes?
Noel: The UAC changes in Win7 are primarily to allow more customization over the UAC elevation prompting process. There are no changes to the fundamentals of how UAC itself works that I am aware of. The classic problem with audio applications with UAC is when programs or plug-ins write to areas of the registry or file system prohibited from standard user access. Even when you are running as an administrator, by default when you launch a program (or the program itself launches a secondary process) Windows 7 will run that process with standard user privileges. If a program or plug-in attempts to write to an area which it doesn’t have write privileges for, virtualization will kick in. While this may allow the program to work, in general it is bad practice to rely on virtualization, since it can cause many unwanted side effects and behaviors in applications.
There are now four customization settings for UAC:
1. Never notify (least secure). The user is not notified when a program tries to install software or make changes to the computer. The user is not notified when they make changes to Windows settings or when programs try to do so.
2. Only notify me when programs try to make changes to my computer. The user is not notified when a program tries to install software or make changes to the computer. The user is not notified when they make changes to Windows settings. However, the user is notified when programs try to make changes to the computer, including Windows settings.
3. Always notify me. The user is notified when a program tries to install software or make changes to the computer. The user is also notified when they make changes to Windows settings or when programs try to do so.
4. Always notify me and wait for my response (most secure). The user is notified when a program tries to install software or make changes to the computer. The user is also notified when they make changes to Windows settings or when programs try to do so.
Customization and Tuning Advice
Peter: How much customization would you advise people do to their OS? That is, you’ve just installed a build of Windows 7 for working with SONAR on a test machine. Do you run the stock configuration, or start turning off services, disabling disk indexing, etc.?
Noel: Optimization and customization is a topic that can’t be fully discussed in the scope of a brief article. In general you need to optimize a system when you have known bottlenecks. Otherwise you can spend a lot of time tweaking things that have little effect on the end goal. In fact, you may even end up destabilizing a perfectly working system. A stock Win7 machine is not optimized for audio necessarily but it appears MS put some thought into trimming out unwanted startup tasks to cut down on startup time. For example there are now “Triggered start services” in Windows 7, so out of the box you can have fewer services running after a fresh boot. There are probably many background services in a modern DAW that could be suspended if you don’t need them but they should be evaluated on a case by case basis depending on what you use the machine for.
Peter: A lot of users were advising running Vista with Aero off, certainly in the early days. Do you think it’s now advisable to leave Desktop Window Compositing switched on for audio work? (Note: I am aware that there’s actually no way to *completely* disable the Aero windowing environment in a way that it reverts to XP, as even in Class mode with no compositing settings the engine has been altered.)
Generally speaking, turning off Aero will free up some resources on your system, since it uses more costly 3D graphics rendering and transparency a lot. However on any modern graphics card, Aero offloads a lot to the GPU so unless your DAW is also competing for the same GPU resources, turning it off may or may not make an appreciable difference to performance. Most applications that are not graphics intensive use GDI for rendering to the screen and since GDI doesn’t take advantage of DirectX hardware acceleration it’s normally not contesting with the GPU. If you are using plug-ins that use Direct 2D or Direct3D, you are probably better off disabling Aero.
Launch Party, After All?
Thanks, Noel. So, the big news behind all of this is that a move from XP to Windows 7 is finally advisable.
I would still caution, as I did recently with Mac OS Snow Leopard, that you typically don’t want to upgrade to a new OS the day it launches. You’ll want to verify compatibility with your software and hardware before making the jump.
That said, this is an unusual upgrade in that it appears to resolve more issues than it introduces. I actually haven’t been able to find a single user out there testing Windows 7 who has found any issues with audio or music production. Of course, when it launches, we’ll have a much larger test base, so I expect we’ll find something – even Windows Service Packs and point releases of Mac OS have been known to create some issues. As we get closer to launch, I’ll review how you would backup your existing XP or Vista system to ensure that if you do choose to upgrade, you can revert to a previous version.
I am, however, cautiously optimistic. And now is an especially good time to make the jump to 64-bit. It’s easier on Windows than any other OS at the moment, and easiest in SONAR, because SONAR allows you to easily migrate 32-bit plug-ins into the 64-bit environment. You’ll need a 64-bit machine and enough memory to make 64-bit worthwhile, but if you’re building a new workstation, as Noel is, the timing could be perfect.
I also think there’s plenty of room left to talk about issues that go between operating systems, particularly how audio software can better support multi-threading and processing on the GPU, multi-touch, as well as emerging I/O standards like USB3. (OpenCL, much-touted in Snow Leopard, is also supported on Linux and Windows, and Linux actually beat both Mac OS and Windows to the punch in providing a first implementation of USB3.) Correction: I should also add that the excellent Reaper has also added this feature. With full 64-bit support in Cakewalk’s own Dimension and other instruments, NI’s Kontakt sampler, and the bundled 64-bit-native plug-ins in Reaper and SONAR, that means you can build a really capable 64-bit rig on Windows.
With fixes getting the OS out of your way, we can return to issues that really matter, many of which apply to every OS.
Music is, as always, the perfect place to talk about these issues. We push our machines harder than just about anyone, and in ways that are the least tolerant of timing discrepencies and glitches. I’ve said it before, and I’ll say it again: if you want to look into the future of computing, ask a musician.
And that calls for a party.
Previous coverage:
SONAR 8.5 and how it can smooth the transition to 64-bit (8.5 is the build that includes Windows 7-specific improvements)
Vista Tweak: Use the Audio Profile Cakewalk’s CTO Uses
Optimizing for Vista: Inside the Mechanics of SONAR 8 with Cakewalk Engineering
Adieu, XP; How Vista SP1 is Doing, and Why This OS Generation Has Been So Tough
Vista for Audio, 1 Year Later: Talking OS Plumbing with Cakewalk’s CTO
Vista for Music + Pro Audio: Exclusive Under the Hood with Cakewalk’s CTO
And yes, I think Noel deserves an Honorary Contributing Editor position for all he’s done giving us absurdly-precise inside details for how Windows works.
Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation.