Ship
Tone Graph is a small Windows app that routes one app’s audio through a node graph. You pick an input app, wire effects in the middle, pick an output device, hit Run. The sound goes: app → (optional FX) → your speakers/headphones.
Nodes include Input/Output, Gain, EQ, Compressor, Limiter, Gate, Pan, High-pass, Low-pass, Waveform, and Split/Merge L/R so you can treat left and right separately.
Windows does not give you a clean public API to say “take Chrome’s audio and send it through my program.” Tone Graph works around that with VB-Audio Virtual Cable:
- Park the target app onto the virtual cable (change its output device to CABLE Input).
- Capture from the cable.
- Run the FX chain.
- Play the result to the real output device you chose.
- On stop, move the app back and unmute.
The painful part is step 1. Per-app output routing uses undocumented WinRT / AudioSes COM (AudioPolicyConfigand friends) — reverse-engineered IIDs, not a supported API. Device moves are async and racey, so the code waits and sometimes double-applies restore. Cable detection is basically name matching (“CABLE”, “VB-Audio”), which is brittle. If the app crashes or you kill it, Windows keeps the parked device so the app stays on the cable until you fix it in Sound settings / the mixer.
- 3 devlogs
- 5h
- 8.19x multiplier
- 42 Stardust