Last week I blogged about some new audio features in Windows 10 that make switching your inputs and outputs easier, but even better, allow you to set up specific devices for specific programs. That means I can have one mic and headphones for Audition, while another for browsing, and yet another set for Skype.
However, while doing my research and talking about this on Twitter, lots of people started recommending I check out “EarTrumpet” – it’s an applet that lets you control the volume of classic and modern Windows Apps in one nice UI! Switching, volume, and more. Consider EarTrumpet a prosumer replacement for the little Volume icon down by the clock in Windows 10. You’ll hide the default one and drag EarTrumpet over in its place and use it instead!
EarTrumpet is available for free in the Windows Store and works on all versions of Windows 10, even S! I have no affiliation with the team that built it and it’s a free app, so you have literally nothing to lose by trying it out!
EarTrumpet is also open source and on GitHub. The team that built it is:
- Rafael Rivera – a software forward/reverse engineer
- David Golden – lead engineer on MetroTwit, the greatest WPF Twitter Client the world has never known.
- Dave Amenta – ex-Microsoft, worked on shell and Start menu for Windows 8 and 10
It was originally built as a replacement for the Volume Control in Windows back in 2015, but EarTrumpet 2.0‘s recent release makes it easy to use the new audio capabilities in the Windows 10’s April 2018 Update.
It’s easy to make a crappy Windows App. Heck, it’s easy to make a crappy app. But EarTrumpet is NOT just an “applet” or an app. It’s a perfect example of how a Windows 10 app – not made by Microsoft – can work and look seamlessly with the operating system. You’ll think it’s native – and it adds functionality that probably should be built in to Windows!
It’s got light/dark theme support (no one bothers to even test this, but EarTrumpet does) and a nice acrylic blur. It looks like it’s built-in/in-box. There’s a sample app so you can make your apps look this sharp up on Rafael’s GitHub and here’s the actual BlurWindowExtensions that EarTrumpet uses.
EarTrumpet 1.x works on Windows “RS3 and below” so that’s 10.0.16299 and down. But 2.0 works on the latest Windows and is also written entirely in C#. Any remaining C++ code has been removed with no missing functionality.
EarTrumpet may SEEM like a simple app but there’s a lot going on to be this polished AND work with any combination of audio hardware. As a podcaster and remote workers I have a LOT of audio devices but I now have one-click control over it all.
Given how fast Windows 10 has been moving with Insiders Builds and all, it seems like there’s a bunch of APIs with new functionality that lacks docs. The EarTrumpet team has reverse engineered the parts the needed.
Modern Resource Technology (MRT) Resource Manager
- Used to pull resources out of AppX apps on the local machine without manually trying to crack open PRI files, etc.
Internal Audio Interface: IAudioPolicyConfigFactory
- Gets them access to new APIs (GetPersistedDefaultAudioEndpoint / SetPersistedDefaultAudioEndpoint) in RS4 that let’s them ‘redirect’ apps to different playback devices. Same API used in modern sound settings.
- Code here with no public API yet?
Internal Audio Interface: IPolicyConfig
- Gets them access to SetDefaultEndpoint API; lets us change the default playback device
- Code here and no public API yet?
Acrylic Blur (win32)
- They want to match shell UI/UX so need to look and feel the same
From a development/devops perspective, I am told EarTrumpet’s team is able to push a beta flight through the Windows 10 Store in just over 30 minutes. No waiting for days to get beta test data. They use Bugsnag for their generous OSS license to catch crashes and telemetry. So far they’re getting >3000 new users a month as the word gets out with nearly 100k users so far! Hopefully +1 as you give EarTrumpet a try yourself!
Sponsor: Check out dotMemory Unit, a free unit testing framework for fighting all kinds of memory issues in your code. Extend your unit testing with the functionality of a memory profiler.