# Audio Switch

> I'm building a small Rust utility that keeps Windows apps on stable audio endpoints while the physical microphone or speakers change underneath them.

- **Role:** Creator & Systems Developer
- **Category:** Personal project
- **Status:** In development
- **Human-readable case study:** https://lutherminshull.com/projects/audio-switch

## Context

Changing microphones or playback devices during a game or stream often means reconfiguring every open app. Audio Switch keeps each app connected to a stable virtual endpoint and changes the physical route behind it.

## Luther's role

- Designed and built the Rust workspace and native Windows app independently.
- Built the routing model around user-configured endpoint roles rather than hard-coded device names.
- Worked across real-time audio behavior, native tray controls, local control interfaces and hardware-button integration.

## What Luther built

- A live WASAPI routing engine for primary and secondary playback plus a switchable physical microphone behind a stable virtual endpoint.
- Native Windows tray controls, configurable keyboard shortcuts, saved endpoint settings and route-status feedback.
- Playback mirroring, drift correction and synthesized audio cues around device changes.
- A local control protocol and Stream Deck bridge with a packageable native plugin.
- Optional Windows startup behavior and a separately controlled high-priority execution mode.

## How it works

- Rust workspace targeting native Windows APIs and WASAPI rather than wrapping a browser or Electron runtime.
- A device-neutral routing model keeps games and communication applications attached to stable virtual endpoints.
- Real-time audio paths use bounded queues and drift management while control behavior stays outside the audio callback.
- Native tray, registry, keyboard, local protocol and Stream Deck surfaces share the same routing core.

## Outcomes

- Built a focused native answer to a recurring multi-device audio problem.
- Expanded my personal work into Rust, Windows systems APIs and real-time audio engineering.
- Established the application, control protocol and packaging foundation while driver and distribution work continue.

## Technologies

Rust, WASAPI, Windows APIs, WebSocket, Stream Deck, PowerShell

## Contact

- [Discuss an opportunity](https://cal.com/lutherminshull)
- [Email Luther](mailto:luther@lutherminshull.com)
- [Return to the portfolio overview](https://lutherminshull.com/index.md)

## Scope note

This case study covers Luther's own contribution and omits private repository data, credentials and private user information.
