October 21st, 2024

Make Great Music with Windows on Arm

Pete Brown
Principal Software Engineer

This week has been amazing, with our musician work really coming together at Qualcomm Snapdragon Summit 2024! There’s only so much time available in a keynote, so I thought I’d expand a bit more on the music-related announcements, especially for the new in-box features.

Music is all around us. We purposefully listen to music in our cars and homes and concerts, we hear it in stores and public places, and in larger cities, often on street corners. We hear it when we view shows on streaming services, or TV. Music plays when many of our devices boot up. It’s in ads. It’s in interstitial content. When I was in Tokyo, music unique to that specific location was played at every crosswalk and every train stop. And, of course, music is in events like Snapdragon Summit every time someone enters or leaves the stage. (Just think what that would be like with no music at all!)

With music so central in our lives, it’s important to keep in mind the actual musicians – the artists – who make the music we listen to, and how they work at their craft.

Once dominated by massive console mixers (which are still used in large studios and at front-of-house at events in addition to computers) and multi-track tape decks, computers have become central to most types of music production today. This is true in professional studios, post-production, performing on the road, and recording at home where computers have democratized music recording. The modern day musician needs the right tools which get out of their way and enable them to create and record their works that want to share with the rest of the world.

TLDR

What did we announce today for musicians and other audio professionals?

Musician Software coming to Arm64

  • Steinberg Cubase and Nuendo in preview this week
  • Cockos Reaper in preview today
  • Reason Studios Reason in preview in early 2025

Audio Hardware coming to Arm64

  • Vendor-specific USB Audio / ASIO driver preview from Focusrite early in 2025
  • Vendor-specific USB Audio / ASIO driver preview from Steinberg/Yamaha in 2025

In-Box Support coming to Arm64

  • ASIO and low-latency USB Audio Class 2 driver previews mid 2025, in-box in Windows when complete
  • MIDI 2.0 (Windows MIDI Services) previews in Windows Insider builds this November, in-box in retail Windows early next year.

(Demonstration of Cubase 13 preview and the prototype ASIO driver, on Snapdragon X Elite Copilot+ PC. The latency is low enough for a guitarist, even with these previews)

The Details

At Snapdragon Summit this week, in the Day 1 keynote, we highlighted some of our investments for musicians on Windows on Arm devices. Many of these investments will also spill over to x86-64 devices as well, but we’re focusing on Arm64 today.

From my own use and from working with others in the music industry, I know we need to have support for two major features on Windows for musicians to have a great experience:

  1. Better APIs which support MIDI, including MIDI 2.0, with backwards compatibility with MIDI 1.0 APIs and devices. Our older MIDI stack hasn’t kept up with current needs, and needed replacing so that we can grow and innovate.
  2. Full support for low-latency, high-channel-count audio, using standards already accepted by the industry

On #1, MIDI, there’s so much info about Windows MIDI Services and what’s new there, that I’ve broken it out into a separate blog post here, complete with some demo videos and information about the upcoming .NET Conf session. Please check it out, because MIDI 2.0 is a revolutionary technology, and even if you don’t yet use MIDI 2.0, Windows MIDI Services has a ton of features and capabilities you’ve been asking us for for a very long time, like multi-client and virtual device support.

So let’s talk about #2, low-latency audio.

Audio on Windows today

Windows has its own built-in general purpose audio stack and APIs, optimized for the scenarios that are most often used on Windows by consumers.

What do typical consumers need

To understand how musicians have unique needs, we need to first look at the typical consumer of an operating system. Typical consumer users of audio, say watching a video or listening to music, want to optimize for:

  • Seamless integration of many types of devices, like headphone sockets, speakers, Bluetooth headphones/buds, and more. Convenience tends to be more important than audio latency, or even the fidelity of audio reproduction (many consumer headphones/earbuds compress audio into a very narrow sonic range, for example, as do codecs which output to laptop speakers).
  • Longest battery life, so fewer calls to fill audio buffers and talk to devices, and larger buffers overall
  • Glitch-free playback of queued-up media data, not real-time playback as it comes in from external devices
  • Support for standard audio setups like Stereo pair, Dolby, Surround Sound, more.
  • In the case of gaming, audio which is not prioritized over the GPU framerate
  • Mixing many different audio streams (music playback from one app, sound effects from a game, system sounds from Windows, etc.) with bitrate translation and applied mixing levels, modifying the output to fit the devices being used.
  • Typically support for just a single microphone for external input

Most of those optimizations are at odds with the needs of musicians working with real-time audio within a DAW (Digital Audio Workstation).

What do musicians need?

Musicians typically need multiple channels of low-latency audio inputs and outputs. Those channels may be configured as individual mono inputs (as in a guitar or vocal input), as stereo inputs, or any number of other ways. A drum machine, for example, may have separate audio outputs for each element in the kit, essential for being able to increase the compression and gain on a kick drum without turning the high hats and toms into mush.

All of those inputs need to be processed as fast as possible, and in sync with each other, so that the recording stays cohesive, and aligns with things like in-box synths and drum kits, or previously recorded track data.

Over the years, the standard for musicians, video editors, and more, who want low-latency, high-IO-count audio on Windows has been ASIO (Audio Stream Input Output), created by Steinberg in 1999. ASIO is a means of talking to audio devices with as little as possible in between the app and the hardware.

If you want real-time audio (for example for processing when singing into a mic, or playing guitar), that means small audio buffer sizes, and many more requests to fill the audio buffers. That also means more CPU time used to fill those buffers, and therefore more battery life used to do that.

For those reasons, the ASIO standard bypasses most of the rest of the Windows audio stack, which provides the other features the majority of customers want. Instead, ASIO requires either the driver shipped with the device, or the app using the device, to handle mixing, and to provide the audio at a single negotiated bit depth and sample rate, with a known buffer size. This makes each frame of audio simple to process and predictable in what it will contain, with no additional processing needed. It also requires a lot more of the DAW, but this is one of the main things DAWs do: handle and mix audio.

Meet them where they are

The USB Audio Class 2 driver that currently ships with Windows has been optimized for the consumer scenarios mentioned above, not for high-IO-count devices at low latency. It works quite well in those consumer scenarios, enabling plug & play access to consumer USB audio devices like podcasting mics or USB headsets.

Musician software today on Windows has generally standardized on the ASIO format, which our current in-box driver does not support. Yes, there are wrapper solutions like the excellent ASIO4All, but those are not the right solution in all scenarios, especially when playing live, or using large channel-count devices.

So instead, almost every manufacturer purchases or creates a USB Audio kernel driver with an ASIO interface for their audio hardware. Including ones musicians have held on to since the beginning of the USB Audio 2 device rollout, plus synthesizers, keyboard workstations, mixing consoles, recorders, and more that use the standard, there are hundreds of makes/models of devices out there, and nearly as many device-specific drivers.

Before a musician can get started with the audio device in Windows, they have to

  1. Go to the manufacturer’s website
  2. Locate the driver for their device (not always simple, especially when there are multiple revisions of the device over the years)
  3. Download, unpack, and install it on their PC.
  4. Configure the driver as needed.

That’s more than a little friction between when you first get your DAW software and audio interface, and when you can start making music.

Additionally, most manufacturers create those drivers only for Intel/AMD x86-64 PCs, and older but still quite usable USB Audio 2 Class-compliant devices tend not to get any driver updates once the manufacturer creates new versions. Finally, some manufacturers don’t create any Windows drivers at all, and instead tell customers just to use ASIO4All.

Finally, many of those drivers don’t gracefully handle Windows 11 power management events on current generation devices, and so customers have to take extra steps to modify power management on their PC, change core parking, etc.

Let’s fix this.

Announcing: New low-latency in-box USB Audio Class 2 driver with ASIO interface on Arm64

We’ve recently kicked off a project with Qualcomm and Yamaha to create a brand new USB Audio Class 2 Driver in Windows, with both WaveRT (our internal audio) and ASIO interfaces, following the latest standards for Windows driver development using the ACX framework.

The new driver will support the devices that our current USB Audio Class 2 driver supports, but will increase support for high-IO-count interfaces with an option for low-latency for musician scenarios. It will have an ASIO interface so all the existing DAWs on Windows can use it, and it will support the interface being used by Windows and the DAW application at the same time, like a few ASIO drivers do today. And, of course, it will handle power management events on the new CPUs.

This driver will work with USB Audio Class 2 devices, so you can plug in your device, and get right to making music.

Finally, we’ll make the class driver source available to others on GitHub, just like we have with MIDI, so that any company creating their own USB Audio Class 2 drivers will be able to learn from how we handled events and also give us suggestions for how we could do better. It’s a two-way conversation.

Now, ASIO isn’t a perfect interface. There are some things it doesn’t do natively, like support device aggregation, routing, and more. The audio team is still considering those scenarios for future API and driver updates, but we wanted to take the first step and meet musicians where they are today, by providing this as part of Windows.

Note ASIO is part of the solution, not the entire solution. An “ASIO Driver” is typically made up of multiple parts: an interface apps talk to using the ASIO standard, and then a kernel driver and possibly Windows service for talking to the hardware itself. In some cases, those kernel drivers and services also supply other endpoints, enabling simultaneous use of the driver by multiple applications at once. This is why the project covers more than just an ASIO interface.

We’ll have previews of these drivers available at milestones throughout 2025. Our first target for the new driver is Arm64 devices on Windows 11. We will follow-up with x86-64 versions after the Arm64 driver is out and we’re satisfied with the quality. These high-performance drivers will be shipped in-box in Windows so we can provide that plug & play experience where everything just works.

We’re really excited about working with Qualcomm and Yamaha on this project, and look forward to what this will bring to our customers on Windows!

Announcing: Hardware-optimized USB Audio drivers on Arm64

Our new in-box driver needs to work well for all compliant USB Audio Class 2 devices. But some hardware developers are expert driver authors, and for years have known that if they write their own optimized drivers for their USB Audio Interfaces, even on other platforms with built-in drivers and low-latency APIs, they can achieve even better round-trip latency at the same levels of stability. Every millisecond counts! Some devices also have additional features outside the specifications which can only be realized with custom drivers and related software packages.

So, of course, we still welcome and support companies creating their own optimized drivers. Customers will have the “instant on” experience of plugging in their device and having it work immediately, plus the option of getting more optimized drivers, much like they do with GPU drivers today. The main difference now, is this is an option, not a requirement for low-latency, high channel count audio.

We have two partners we want to call out who will be releasing their own optimized drivers for Arm64 in 2025:

Focusrite – Native on Arm64

Focusrite makes some of the most popular USB Audio interfaces on Windows, used by musicians, podcasters, streamers, and more. The red boxes are often what people think of when they think of USB Audio interfaces.

Focusrite Scarlett 4th Gen Range Image

Focusrite has expressed support for both the in-box audio driver as well as for creating device-specific drivers for Arm64.

“Focusrite is targeting releasing native Arm64 drivers for all of its supported USB audio interface products in early 2025, bringing compatibility with all ASIO and non-ASIO applications running on the platform.” — Tim Carroll, CEO Focusrite Group

And on the in-box driver:

“Focusrite has long been a proponent of class compliant design; all of our USB audio interfaces conform to the USB Audio Class Compliant 2 specification. We’re pleased to hear that Microsoft plans to add a class compliant ASIO driver to the Windows platform, in addition to the existing class compliant WDM Audio driver. This will help lots of users to get their audio interfaces set up quickly with many applications.” — Tim Carroll, CEO Focusrite Group

We’re excited to see Focusrite supporting us in the in-box driver, and also releasing their optimized driver early in 2025. the real winners here are all the Focusrite customers who will soon be able to use their devices on a new hardware platform. Thank you, Focusrite!

Yamaha – Native on Arm64

Yamaha creates the Steinberg-branded USB audio interfaces, which are fantastic performers on Windows and loved by their customers. In addition to working on the in-box class driver for Arm64, they are going to release optimized device-family versions of their audio interface drivers for Windows on Arm, giving users of their devices the best of both worlds.

We’re excited to see these drivers coming out for Arm64 in 2025!

Others

There are other companies working on optimized Arm64 drivers for their audio products as well. More on those in the future. And for all the devices which will not have their own specific drivers, we’ll have an excellent experience with the new in-box driver, right when you plug in the device.

Announcing: New Musician-focused apps coming to Arm64

With the APIs and devices on their way to being sorted, it’s time to turn our attention to musician-focused apps for Arm64. We have three announcements here.

Image daw app logos snapdragon 2024 2

Steinberg Cubase and Nuendo on Arm64

Steinberg was there at the beginning of MIDI, offering their Pro 16 MIDI sequencing software for the Commodore 64, and then the Atari ST (I was a Commodore guy all the way, but those old Atari computers are also awesome. If you’ve ever read the history of Commodore or Atari, you’ll have learned that there’s a reason those two brands were so in lock-step back then.)

This week, 40 years after developing for the MOS 6502/6510, Steinberg is branching out to a new CPU, by releasing Cubase, their musician-focused Digital Audio Workstation (DAW) package, and Nuendo their premium media post production system, as well as their native plugins and utilities all natively compiled for Arm64, in preview.

Look for an announcement later this week from Steinberg, and in case you missed it, be sure to check out the Snapdragon Summit livestream which includes a great guitar performance on the Cubase Arm64 preview with an early prototype of the ASIO driver, all running on a Snapdragon-based laptop. And congratulations to Steinberg for this year’s anniversary: celebrating 40 years in the software business, creating apps for musicians!

Cockos REAPER on Arm64

Another fantastic DAW is Cockos REAPER. REAPERhas long had great cross-platform support, and officially today, is available in preview for Windows on Arm. Like Cubase and others, it has been compiled using Arm64EC so you can make use of your existing plugins on Arm64 devices.

If you like REAPER, you may also be interested in the DAWbench Radio Show podcast we recorded with Justin Frankel who leads development on the product, and who also famously co-created Winamp, which will certainly be familiar to those of a certain age. 🙂

Reason Studios Reason on Arm64

Reason is another app with long history and dedicated fan-base, having made a name for itself with the intuitive layout and the Rack Extensions plugin support. We’re excited to announce that Reason will be coming to Windows on Arm next year, starting with a version running under the Prism emulator, and following on with a native port after that.

Use your existing plugins

The native apps are all compiled using Arm64EC, which makes it possible for you to continue using many of your x86-64 plugins under emulation. This gives you the best of both worlds: the host applications run as native Arm64, using all the goodness that the processors have to provide, while you retain the utility of your existing investment in plugins while those plugin developers work on their native Arm64EC (or Arm64X) versions.

Supporting musicians on Windows

With the new MIDI stack and in-box ASIO, these three killer DAW apps, and two families of audio interfaces with optimized drivers for Arm64, we’re set up to help make the experience of creating music amazing on Windows. I am beyond excited for so many of these efforts to come together at this point in time. A huge thanks to all our hardware and software partners who have stepped up to help musicians and other audio creators on Windows.

Thank you!

Author

Pete Brown
Principal Software Engineer

Pete is a Principal Software Engineer in the Windows Developer Platform team Windows at Microsoft. He focuses on client-side dev on Windows, apps and technology for musicians, music app developers, and music hardware developers, and the Windows developer community. Pete is also the current chair of the Executive Board of the MIDI Association. He first got into programming and electronic music by working with sprites and the SID chip using BASIC on the Commodore 64 in 6th and 7th grade, and ...

More about author

2 comments

  • Semarus

    Regarding What do consumers need/What do musicians need, how are consumers not also served accordingly if the benchmark of performance was set to the needs of a musician? Does that not kill two birds with one stone?

    • Pete BrownMicrosoft employee Author

      Hi Semarus

      There are several trade-offs if the audio was always left in a "musician mode"

      The lower your latency, the smaller the buffers, and so the more often those buffers need to be filled and transmitted. This uses more CPU time, and therefore more battery. This is especially true when, say, watching a video. Much of video decoding is handled on hardware now, so the CPU only really has to wake up for UI events or...

      Read more