Logo
blank Skip to main content

Improving a Windows Audio Driver to Obtain a WHQL Release Signature

C#
C++

IRIS, a British audio technology company delivering software for improving audio quality with the help of artificial intelligence (AI) technologies, needed to rework a Windows driver for their application and get it through Windows Hardware Lab Kit/Windows Hardware Quality Labs (WHLK/WHQL) testing.

The Apriorit team performed thorough testing and improved the initial driver to guarantee successful Microsoft certification. We were also entrusted with improving the user interface (UI) of the IRIS Windows application to ensure that versions built for macOS and Windows have a unified interface and offer the same quality of user experience.

The client

Our client, IRIS, is a London-based audio technology company delivering a suite of patented products that enhance the quality of compressed audio using machine learning algorithms. IRIS products aim at improving a user’s audio experience across digital platforms that people use to make conference calls, listen to music or audiobooks.

The challenge

IRIS approached us with a request to improve the audio driver for the Windows version of their AI-powered sound filtering application. They already had a released macOS version of this solution. But in order to make adaptive noise canceling during online calls available for Windows users, IRIS needed their audio driver to successfully pass WHQL certification for audio drivers.

When the project was already in progress, the client also challenged us with an extra task — to implement a new user interface for the Windows version of their application.

Our approach

Working on this project, we relied on the expertise of Apriorit professionals from several fields and the following technology stack:

  • C++/C#
  • Windows Presentation Foundation (WPF) framework
  • Windows Installer XML (WiX) toolset
  • Active Template Library (ATL)
  • Adaptive Communication Environment (ACE)
audio driver development and testing

The result

The Apriorit team successfully tested the initial Windows audio driver to detect possible flaws and vulnerabilities and improve the Windows audio driver for WHQL certification. Then our driver development experts resolved discovered issues and reworked the initial driver, enabling the client to successfully release their noise-canceling application for Windows.

After a successful release, the Apriorit team continued working on the application’s stabilization and optimization while also implementing a new UI for it.

Need custom drivers to bring out the full potential of your product?

Reach out to our kernel and driver developers to improve your system’s stability, performance, and efficiency!

How we did it

We split the project into four main stages:

  1. WHLK/WHQL testing of the driver
  2. Pre-release debugging of the driver
  3. Implementing a new UI for the app
  4. Stabilizing and optimizing the app
audio driver development and testing

Before starting any development activities, our technical specialists performed a rough estimation of the first two phases of the project and approved the estimates with the client. Thanks to our experience in the field, the development and testing teams had no need for a detailed project investigation in order to provide accurate estimates for the work to be done.

We also had an Apriorit business analyst work with our client to outline the core set of requirements so that the client and the development team would remain on the same page throughout the project.

Stage 1: Driver certification

We started with preparing the Windows audio driver our client had for WHLK/WHQL certification.

WHLK/WHQL testing of the audio driver is a long and complicated process that requires a farm of devices. The tests themselves are fully automated by Microsoft. However, in order to pass them, you need to:

  • Maintain all configurations of the device farm
  • Ensure that all needed tests are performed
  • Make sure that no errors or blockers appear during the tests

Therefore, getting WHQL certification for audio drivers requires relevant experience. You need to understand how to pass the WHQL certification for audio drivers, know exactly what’s going on at any given moment as well as what to do when all of the tests are finally passed.

WHQL driver testing

The Apriorit team had all of the knowledge and experience needed to tackle this task. 

Knowing which Windows operating system versions our client wanted to support, Apriorit quality assurance specialists along with our system engineers were able to set up a device farm from scratch with the proper configurations. After installing all of the needed software, we started testing.

By running a series of tests, we detected several things that needed to be fixed or improved for the driver to obtain WHQL certification for Windows audio drivers. Once the following scope of work was approved by our client, the Apriorit team proceeded with bug fixing.

Stage 2: Pre-release debugging of the driver

To ensure a successful release of the application’s Windows version, our team needed to:

  • Go through all failed WHQL tests and fix the bugs that were causing them
  • Resolve issues detected by the client before WHQL testing
  • Run final tests to check the driver’s security and performance

We started with the tests that failed during initial WHQL testing. Our developers analyzed information from the failed tests and the driver itself, detected the parts of the code that needed improvements, and successfully fixed the discovered bugs.

Next, we worked on performance and security issues discovered by the client even before WHQL testing of the driver. The scope of work included enhancing the overall performance of the driver and the application and implementing security improvements.

Finally, Apriorit developers analyzed the application’s installer and ran driver tests on different devices and with different third-party applications including Zoom, Google Meet, and Microsoft Teams to make sure no blockers remained. 

Once all the checks were done, we proceeded with the application’s release. The driver successfully passed all WHLK/WHQL tests and obtained a WHQL release signature, enabling our client to finally release the first version of their noise filtering solution on Windows.

The Apriorit development team also worked on the Windows app itself, sometimes cooperating closely with the macOS team on the client’s side. Since the macOS app was released first, we decided to inherit some of the key practices and approaches from its developers. As a result, we could increase the resemblance between the macOS and Windows versions of the app.

Related project

Developing Drivers for Low Latency Virtual Reality Headsets

Learn how the Apriorit team helped our client reduce time-to-market for their virtual reality headset. Explore how we organized driver development and streamlined virtual and physical testing of the drivers!

Project details
Developing Drivers for Low Latency Virtual Reality Headsets

Stage 3: Implementing a new UI for the app

Aside from obtaining a release signature for the driver, the client wanted to implement a new user interface for their Windows application. While this part of the project wasn’t in the initial scope of work, being satisfied with the quality of Apriorit’s services, the client decided to delegate this task to our team as well.

The goal was to make the Windows version of the product look as close to the macOS version as possible.

After approving with the client the estimates and scope of work for this stage of the project, the Apriorit team proceeded with implementing the new UI for the noise filtering app. Our specialists used the provided mockups and the latest version of the client’s macOS application as a reference to make sure that both products offer the same level of user experience and have the same recognizable IRIS design features.

Stage 4: Stabilizing and optimizing the app

While developing and testing the driver and the app, Apriorit specialists also ensured ongoing product stabilization and support. This stage is a necessary part of every project that ensures the end product is secure, performs flawlessly, and provides an excellent user experience.

After the application was released, our team worked on different product stabilization and optimization tasks, including:

  • UX improvements
  • Optimization of CPU usage
  • App localization
  • Development of new features for the Windows app
audio driver development and testing

At the same time, Apriorit developers continuously worked on refactoring and improving code to maintain the app’s flawless performance and timely address any issues that arose.

In particular, our experts participated in live support sessions with the application’s end users. We assisted the client’s support managers with collecting the information needed to quickly and efficiently resolve reported problems.

Related project

USB WiFi Driver Development

Learn how the Apriorit team ported an existing Linux driver to Windows instead of developing a new one, saving our clients time and money, as well as enhancing their product with new features!   

Project details
USB WiFi Driver Development

Challenges and solutions

This project presented Apriorit developers and quality assurance experts with several challenges.

audio driver development and testing

One of the challenges — the need to maintain sound quality across different versions of the app made us come up with a unique solution.

While fixing bugs and improving the application’s performance, we had to ensure that changes introduced to the application didn’t affect sound quality. To achieve the required sound quality consistency, our specialists developed a custom sound quality measurement methodology and prepared metrics to be used within the project.

The metrics already implemented within this project help us maintain stable sound quality with each new release. Currently, our team is continuing to work on this methodology, coming up with different approaches for testing, measuring, and maintaining a consistent level of sound quality. 

Another significant challenge we needed to tackle was the organization of project management. Initially, we used Trello to manage tasks and keep information on the project in one place. Trello was enough to synchronize all activities between our team and the customer’s team. 

However, this approach doesn’t work well for projects where you need to structure all tasks and manage multiple product versions. Therefore, we asked our client to change the approach and started working with their internal bug-tracking system. In that system, we maintain information about application releases, versions, roadmaps, and so on. 

Alongside our practices of daily written reports and weekly calls with the client, this approach allowed us to build a transparent workflow with effective communication.

The impact

Making sure your product is available on all popular platforms is key to expanding your target audience. Working with Apriorit developers and quality assurance specialists, IRIS ensured that their AI driver noise canceling app is available not only to macOS users but also to Windows users.

Without a WHQL release signature, it was impossible to release the Windows version of the noise reduction app. With Apriorit’s assistance, the application’s audio driver successfully obtained a WHQL certification.

Through close cooperation with the client’s internal teams, we improved the performance, functionality, and design of the Windows application while keeping it in sync with the macOS version.

Adding localization enabled IRIS to reach out to even more customers across the globe.

IRIS has been satisfied with the quality of services provided by Apriorit experts and continues cooperating with us. Our experts are supporting and maintaining the Windows version of the app, improving its security and performance on a regular basis.

Looking for a dedicated driver development team?

Benefit from our extensive 20-year track record in specialized driver development to reinforce your product and broaden its features!

Have a question?

Ask our expert!

Tell us about your project

Send us a request for proposal! We’ll get back to you with details and estimations.

By clicking Send you give consent to processing your data

Book an Exploratory Call

Do not have any specific task for us in mind but our skills seem interesting?

Get a quick Apriorit intro to better understand our team capabilities.

Book time slot

Contact us