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.
Contents:
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)
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:
- WHLK/WHQL testing of the driver
- Pre-release debugging of the driver
- Implementing a new UI for the app
- Stabilizing and optimizing the app
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.
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!
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
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!
Challenges and solutions
This project presented Apriorit developers and quality assurance experts with several challenges.
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!