StaffPad application for the UWP framework

StaffPad is an example of an application that had third party and internal dependencies that required handling.

 

Porting StaffPad

StaffPad was built on Visual Studio 2019, which is set up for Windows on Arm by default.

StaffPad had a Fast Fourier Transform (FFT) library that relied on Intel Intrinsics for its audio engine. Although third-party libraries without Intel Intrinsics exist, the StaffPad engineers chose to write an architecture-independent internal library. Writing the library formed the bulk of the porting work.

StaffPad also had a few internal dependencies, but updating them took only two hours.

StaffPad’s tested on a Surface Pro X, and exposed small, obvious errors that were easily fixed.

The team used Azure DevOps for continuous integration. Adding the Windows on Arm target was straightforward.

StaffPad was uploaded to the Windows Store, because it already integrates with UWP and StaffPad was already correctly set up for the store.

 

Comparing StaffPad performance on different platforms

Running StaffPad natively rather than on a win32 emulator improves performance. StaffPad is a processor-heavy application that offers rich graphics, audio, touch, machine learning, and networking features. On an emulator StaffPad was slow to start up, its memory usage was high, and the audio engine failed. Running natively, StaffPad was fast, responsive and fully functional, and could deliver the full user experience.

Overall, StaffPad running natively on Windows on Arm was faster and more responsive than other setups the team tested on.

Previous Next