Nathaniel Labs
Product changelog

Shruti release history

Latest version: v1.4.41.

1.4.41

  • Shruti is now fully self-contained: the one-click import of settings from another mixer app has been removed from Setup and from the shruti command line. Your existing Shruti mix, favourites, effects and exclusions are untouched.
  • Other audio-routing apps' background engines are still never captured, so Shruti cannot feed its own output back into a loop.
  • The website and help text no longer refer to other companies' products.

1.4.40

  • Updates no longer wait forever because a saved volume, mute or effect control is attached to a silent app.
  • A browser keeping its audio stream open does not block an update when Shruti’s healthy audio tap confirms it is silent. This uses the signal before Shruti’s mute and volume controls, so muted playback remains protected.
  • Active recording, real playback, missing activity information and stale audio measurements still hold the update. After 10 seconds of confirmed quiet, an update you already chose can continue.
  • If an update is waiting, Shruti names the app holding it or says it is waiting for the quiet interval.

1.4.38

  • Shruti now stays quiet in the background. With its mixer closed it uses almost no processor time, so your Mac stays cool and other apps keep the power they need.
  • Leaving another window open, such as the update window or Settings, no longer keeps a hidden mixer redrawing four times a second. Before, this could keep one processor core fully busy for hours.
  • The menu-bar icon still changes the moment something changes: mute, Bypass All, an app starting to play, or the volume.
  • The mixer shows the latest levels the instant you open it.

1.4.37

  • Clicking "Update available" now brings the Install / Later window straight to the front. Before, it could open hidden behind the Shruti panel and pop up later, as if by itself.
  • Shruti still never interrupts you with an update window: a new version shows only as the orange strip at the top of the panel and a dot on the menu-bar icon, until you click one of them.

1.4.36

  • Mute All: a red button at the top of the Shruti panel silences everything coming out of the Mac in one click, for an emergency. Click Unmute All to bring the sound back.
  • While everything is muted, the menu-bar icon turns into a red crossed speaker, whatever icon style you chose.

1.4.35

  • A new version is easy to spot: "Update available — <version>" appears at the top of the Shruti panel, and the menu-bar icon gets an orange dot. Click it to choose Install or Later. Nothing installs on its own, and an update still waits while audio or recording is active.
  • Check for Updates… is in the panel's ··· menu (with the version you have beside it) and in Settings.
  • Shruti checks when it opens and then every hour (was every six hours). A scheduled check no longer opens an update window behind your other apps; the button and the dot do the asking.

1.4.34

  • A damaged settings file can no longer cost you your licence or restart your 14-day trial. Shruti keeps a copy of the last good settings, rebuilds from it (or from whatever can still be read), keeps the damaged file aside, and tells you what happened.
  • MIDI controllers: when two controls move at the same moment, every message is now read correctly. Changing MIDI mappings while a controller is moving can no longer cause a crash. Bypass All and Scene buttons fire once per press instead of repeating while a knob or fader is held high.
  • Cleaner audio path: the live audio callback no longer allocates memory, and removing or swapping an Audio Unit plug-in no longer makes the audio wait while the plug-in shuts down.
  • The app and the audio service can no longer overwrite each other's saved settings.
  • The control socket refuses to start, instead of overflowing, if a home folder path is unusually long.
  • shruti output volume no longer crashes on a malformed number.
  • The command-line installer and the audio-driver scripts now refuse to run while REAPER, Logic, MainStage, Zoom or OBS is open, so a class or recording is never cut.

1.4.33

  • Meter updates no longer rebuild app rows, menus and faders. Last-heard labels update at their displayed precision while playback, mute, Solo, level and device changes remain immediate.
  • Native faders preserve handle position, support Shift fine adjustment and keyboard/accessibility controls, and pass scroll-wheel events through to the mixer. Cancelled drags release scrolling. Double-click an app fader to restore 0 dB, with alignment feedback on supported trackpads.
  • App icons load on a bounded background queue so first opening and Add App searches do not wait on Launch Services.
  • Output switching checks and device telemetry run away from the control queue. Newer selections supersede late replies; a visible Switching message lasts until macOS confirms the result. Failed switches retain an explicit explanation.
  • The audio watchdog reuses one background process/device discovery snapshot instead of repeatedly enumerating Core Audio for every app. Stale or failed discovery preserves working paths until a complete read succeeds. Neutral hearing guards skip unnecessary device walks.
  • Automatic checks may discover signed releases, but installation always waits for your confirmation. Saved Sparkle preferences cannot enable automatic downloads or installation.
  • Shruti waits for ten seconds of fresh, continuously quiet audio status before an update can restart the app and service. Active playback, microphone capture, an engaged route, missing or stale status, and unsupported legacy status all keep the update waiting.
  • If audio becomes active as Sparkle resumes an installation, Shruti cancels that update-specific restart and can retry after the service reports a fresh quiet interval.

1.4.31

  • Resize either mixer panel with its visible corner grip. Pointer movement stays stable as the window grows; double-click the grip to fit the current audio apps to the screen. Window sizing is saved when resizing ends.
  • Installed app categories no longer add silent, unused apps to the mixer. Real audio activity and retained user controls determine membership. Existing arrangements stay in order, and new activity does not automatically scroll away from the app you are using.
  • Remove an app directly with its row’s × button, including in Arrange. Undo and Add App → Removed restore its saved mix and order.
  • Eiosis AirEQ’s original editor now receives the initialization it requires. Plugin construction, saved-state restoration and parameter-state capture run away from the UI thread. Loading has a deadline and Retry; closed or removed editors cannot reappear from obsolete callbacks.
  • Native Audio Unit editors are preferred. A plugin without a usable native view has a clearly explained published-control recovery view.
  • Includes the 1.4.30 responsive faders, dB readouts, Shift fine adjustment, Clear Solo, ordered Smart controls and Global EQ improvements.

1.4.30

  • Mixer controls send the latest fader position without building up obsolete commands. Faders show decibels, retain the existing saved volume curve, and support Shift for fine adjustment.
  • Clear all solos with one control or Command–Shift–S. Option-click Solo to hear only that app.
  • Remove apps immediately and restore them from Add App → Removed, retaining their saved mix. Removed apps stay out of Solo, Smart processing and routing until restored.
  • Recent sound activity is easier to find in either list order. App identities and activity labels no longer wrap into narrow vertical text.
  • Global EQ now has a clearly named control. Use the built-in eight-band EQ and up to two installed Audio Unit effects, searchable by plugin or manufacturer. VST3-only effects require their Audio Unit version.
  • Rapid Smart and Global EQ changes preserve command order and discard obsolete unsent settings. Smart switches no longer wait for synchronous device discovery.
  • Removing a plugin while it loads no longer allows an obsolete load to reappear.

1.4.25

  • An app you have set to a lower level (or muted, or given an effect) now plays at that level from its very first sound. Before, it started at full volume and dropped to your setting a second later, which sounded like Shruti ducking it.
  • Apps at their untouched default are unchanged: still the zero-cost direct path.

1.4.24

  • The Scenes menu now reads saved scene names from local storage as the panel opens, so an audio-service warm-up cannot raise a false unavailable banner.
  • Safe background lookups retry when Core Audio temporarily occupies the service. A failed lookup no longer marks the live audio connection offline.
  • Startup pings now honor their fractional-second socket timeout, avoiding an unbounded wait during service recovery.
  • Dragging the three-line handle on an app row now reorders it directly in Live Now or My Order. Clicking the handle still opens the precise Arrange controls.
  • The chosen order stays in place through live status refreshes and fast consecutive moves; Shruti confirms the saved order on disk before reporting success.

1.4.23

  • Live Now separates apps playing output from apps recording input. A screen recorder appears as recording without a misleading playback label.
  • Apps that used audio output in the past hour remain easy to find under Recent Audio, with the latest activity first. Each entry opens its saved control in My Order.
  • My Order and the playing-app arrangement keep their saved positions; recent activity does not silently rearrange the mix.
  • Audio activity is attributed to the app that owns the process. Chrome helper processes owned by another app are shown under that app.

1.4.22

  • Shruti now opens on a Mac with no internet connection the first time, not only after it has been online once: the app inside the installer carries its own Apple approval.
  • App names in the mixer are no longer cut short by the LIVE label; a small green waveform shows an app is making sound.
  • The output device name is shown in full ("Zen Studio Playback", "MacBook Pro Speakers").
  • Audio Devices opens on the device that is playing now.
  • The Bypass All shortcut is written as Shift-Command-Esc in Settings.

1.4.21

  • A Scene now remembers your output device, its level and your microphone as well as every app's volume, mute, boost, effects and output. Loading "Class" puts the class back.
  • Loading a Scene no longer rewrites your licence, trial, removed apps, theme, login item or Bypass All state. Apps first heard after a Scene was saved keep their current level.
  • If a Scene's device isn't connected, Shruti says so by name and keeps the sound where it is.
  • Load a Scene straight from the footer's Scenes menu. Saving over an existing Scene asks first.
  • Mic Auto-Follow learns from you: the mic you pick in Input becomes its first choice, and it no longer switches your choice straight back. Switching it on keeps the mic you are using. Virtual and app-made inputs are never picked automatically.
  • Leave Alone: apps Follow-Me and Auto-Duck never lower. Instruments and DAWs (Pianoteq, REAPER, Logic, MainStage, Ableton…) are protected by default; add any app from the Smart panel or by right-clicking it in the mixer.
  • Follow-Me never silences an app that is on a call.
  • Auto-Duck depth is adjustable (3–30 dB).
  • Every app is released at the same moment instead of one after another.
  • A live Auto-Duck rule can no longer put Shruti back in the audio path while bypassed.
  • Loading a Scene can no longer change whether Bypass All is on at the next launch.
  • Shift-Command-Escape now works when Shruti's own window is in front. A fast double press means on then off.
  • New Full Screen button (Control-Command-F): Shruti fills the screen with the mixer centred at a readable width; press again to return exactly where it was.
  • The menu-bar resize handle now looks like a resize handle, not a full-screen button.
  • Shruti's windows always open fully on screen, even if they were last used on a larger display.
  • Keyboard Shortcuts section, and Send Beta Feedback in Settings.
  • Removed "Force software volume", which did nothing. The Max volume ceiling now also holds on outputs without their own volume control (HDMI, many interfaces).
  • Start at Login shows the real login-item state.
  • The "Shruti icon" menu-bar style is now its own waveform icon.
  • Audio Devices folds devices created by other apps (Zoom, Camo, virtual audio tools) into their own section.
  • shruti smart command for support: shows and sets the Smart switches.

1.4.16

  • Makes an output choice real before reporting success. Shruti now verifies the macOS default-device property after selecting AirPods, Bose, JBL, generic Bluetooth, wired, USB, HDMI or AirPlay audio instead of mistaking an early Core Audio acknowledgement for a completed switch.
  • Remembers a successful manual output choice and restores it when that device reconnects.
  • Automatically moves from built-in speakers to newly connected personal audio, including brand-agnostic Bluetooth, headphones, earphones, earbuds and headsets, while protecting an already active personal device from being stolen by another arrival.
  • Coalesces duplicate Safari and application route rebuilds during hardware changes. A slow wireless transition can no longer accumulate a queue that delays the switch itself.
  • Keeps applications that follow the system output following it when an old saved redirect is missing, rather than leaving them behind on the MacBook speakers.
  • Returns the confirmed device in the panel, command line and Shortcuts result; a failed switch now names the device on which macOS actually remained.
  • Adds shruti app "Safari" redirect follow as an explicit way to remove a per-app pin and follow the selected system output.

1.4.15

  • Keeps every feature unlocked until license sales actually open, as the product page promises. A signing key shipped ahead of a working checkout had started the 14-day countdown, so installs reached day 15 and lost their mixer with nothing to buy.
  • Adds one explicit switch, ShrutiLicenseSalesOpen, that arms paid licensing. It is off in this release and turns on only alongside a live checkout link.
  • Restores full control of levels, mutes, boosts, effects, redirects and Smart features on any Mac that was locked out by the expired trial. Saved mixes were never touched.
  • Clears the red "Not activated" badge in Settings on builds where there is nothing to activate, and replaces the "internal testing access" line with what is actually true.
  • Ends refusal banners in a single full stop instead of two.

1.4.12

  • The floating (torn-off) panel's close button collapses it back into the menu bar, which is exactly what the pin button beside it does. Previously the close button quit the whole app and uninstalled the background audio service — from a standard macOS window control, with the menu bar icon still sitting there.
  • That mattered beyond the surprise: stopping the service hands every controlled app back to macOS at its own volume, including a muted one. A silent app becoming audible is the exact failure the emergency-bypass path is written to prevent, and a stray window close could cause it. It cannot any more.
  • Quitting is still a real full stop, and still available deliberately: More → Quit Shruti & Stop Audio Service.
  • Logging out, restarting or shutting down no longer uninstalls the service agent. macOS stops the job itself as part of closing the session, and Shruti's service is back at the next login instead of waiting for something to reinstall it.
  • "Pinned" is honoured at launch. The preference used to outlive the window: the pin button came back lit with no panel anywhere on screen.
  • When the audio service is not answering, every Shruti surface shows what that means for your sound — your apps are on macOS's normal path, nothing is muted, boosted or processed — with a Repair button in the same place. The route back used to be Settings → Health → Setup Assistant → Repair: four steps, documented only in the Support Centre, at the exact moment the product looks broken.
  • The panel button, the More menu, the Support Centre and VoiceOver now all call the global control Bypass All. The button reads BYPASS ALL when it is off and BYPASSED when it is on, so the label describes either the action or the state, never both. "True Bypass" now means the per-app power button and nothing else.
  • In AppleScript, the Shortcuts actions and the shruti command line this same control keeps its existing name, Stage Mode, so no saved script or shortcut breaks. The Support Centre says so.
  • The menu bar icon no longer glows amber while Bypass All is on. Amber means "Shruti is in this audio path", and a muted app legitimately keeps its tap under Bypass All — so the bypass shield used to light up amber at the one moment the whole promise is that Shruti is out of the way. It is now the same green the panel's BYPASSED button uses.
  • App icons are resolved once instead of on every repaint. Each row used to perform a Launch Services lookup and an icon rasterization inside its view body, so they ran again for every row on every status poll, every hover and every frame of a slider drag — and fifty times per keystroke in the Add App list. That work is now done once per app.
  • The colour tile behind each app icon is a quiet backing plate rather than a full-strength gradient with a coloured glow. The real app icon sits larger and reads first; the colour survives as a rim and a wash, and a long list no longer carries a shadow layer per row.
  • Remove is no longer a permanently visible destructive button sitting beside the favourite star at the same weight as the volume controls. It appears when the row is under the pointer or is the keyboard-selected row, its space is always reserved so nothing shifts, and it remains permanently in the row's right-click menu — which is also how VoiceOver reaches it. It still asks for confirmation.
  • The LEVEL BOOST column heading was wider than its column and clipped. It reads BOOST, which is what the control under it does.

1.4.11

  • Moving a volume or boost control no longer repeatedly tears down and reconnects the app's audio graph. Control attachment is retained and gain changes ramp smoothly, avoiding digital glitches and the previous all-loud-or-all-soft feel.
  • Unity gain is level-matched with true bypass. Shruti adds no compressor, ducking or hidden attenuation unless the user explicitly enables that feature.
  • Mute is click-free and remains hearing-safe across helper recovery, device switching and license state changes.
  • The 1x–4x boost uses the same low-latency render path as ordinary volume. Boost does not add a look-ahead stage or an extra buffering cycle.
  • My Order is entirely user-controlled. Playback starts, stops and meter updates cannot move a row.
  • Recent Audio is the same stable order filtered to apps heard during the last three days; it is not a second auto-sort engine.
  • A genuinely new playback app is detected once and appended at the bottom. It begins at 100% direct passthrough with no tap and zero added latency until the user changes a control.
  • Remove and Restore are durable. Capture-only utilities such as Wispr Flow do not reappear due to ambiguous Core Audio process flags.
  • Search combines known audio applications with apps Shruti has actually heard, so uncommon browsers, instruments and players remain findable after they stop.
  • Live output meters show which apps are actually producing sound.
  • Stable colour tiles, clearer status copy, move-to-top controls and improved spacing make long app lists easier to scan.
  • The main panel responds to compact and expanded window sizes without clipping app names or controls.
  • Installed Audio Units can open their native editor window, while Shruti's built-in processors remain available as low-overhead alternatives.

1.4.10

  • Device switches no longer open a "blast window". Switching outputs (AirPods disconnecting, headphones plugging in, waking from sleep) used to briefly release a muted or attenuated app to macOS's direct path at the app's own full volume while the control graph rebuilt. The replacement graph is now built and ready before the old one is released, so a muted app stays silent through the entire handover.
  • Trial or license expiry can no longer unmute anything. Mute is hearing protection, not a premium effect: a muted app's control is deliberately kept and keeps rendering silence even when entitlement lapses. Premium attenuation still ends, as before.
  • A crashed per-app helper now re-engages immediately instead of waiting up to 2 seconds for the watchdog, shrinking the unprotected direct-audio window after a fault.
  • A mute or volume change made in the instant a helper was still starting is now pushed the moment it is ready, instead of waiting for the next periodic sync.
  • Per-device volume memory now counts as a real control. Previously an app remembered at 50% for AirPods (with its generic volume at 100%) played untouched at full volume after a device switch while the slider showed 50%.
  • Hearing caps (per-device maximum volume) and the global volume/sample-rate/mute locks are now re-asserted every 2 seconds and on every device-list change — the hardware volume keys, another app writing the device, or a Bluetooth codec flip (AAC → SCO when a mic engages) can no longer push a capped device past its ceiling for more than one watchdog interval.
  • "Follows Output" for alert sounds now actually follows. Choosing it used to pin alerts to whatever the output was at that moment; it is now re-asserted on every output switch, for users who explicitly chose it.
  • A saved alert-sound device that disconnects and returns is re-pinned automatically.
  • Bluetooth volume memory and locked workspace lanes now recall when the device reconnects, not only when it happens to become the default output.
  • Every nested settings object (locks, Bluetooth profiles, lanes, duck rules, hearing care, output groups, UI preferences, system rows) now decodes field-by-field, so a future Shruti adding a field can never silently reset that section of your saved setup.
  • The menu-bar app now writes only the three fields it owns (appearance, start at login, volume-keys choice) when saving, instead of its whole in-memory snapshot — a stale app snapshot can no longer overwrite a newer service-saved mute or volume on disk.
  • An app you configured on an earlier version (or just dragged back to 100%) no longer vanishes from the mixer when its controls return to neutral. Remove is the only way a configured row leaves.
  • Automatic-family apps whose App Store category macOS reports unhelpfully no longer flicker in and out of the mixer while silent.

1.4.9

  • Excludes Tracktion's pluginval validation utility from automatic DAW discovery.
  • Keeps actual Waveform/Tracktion DAW installations in the focused default mixer.
  • Retains the durable Add, Remove and Restore behavior introduced in Shruti 1.4.8.

1.4.8

  • Starts with a focused automatic mixer: Claude/ChatGPT, browsers, MuseScore, DAWs and live music hosts, instead of filling the panel with every application that might play.
  • Adds a visible Remove control to every app row, plus a destructive context-menu action.
  • Returns a removed app to untouched direct audio and clears its saved level, effects, redirect, favorite, lane and ducking references so no invisible processing survives.
  • Keeps removal durable across app restarts and Mac restarts.
  • Makes Add App show explicit Add, Remove and Restore states, with search covering known playback apps and applications Shruti has genuinely heard before.
  • Preserves deterministic manual ordering; LIVE state never moves a row.

1.4.7

  • Keeps every installed playback-capable app in the mixer whether it is silent or active, instead of removing rows a few seconds after playback stops.
  • Uses Core Audio activity only for the LIVE indicator and discovery; it never changes the user's manual app order.
  • Remembers uncommon applications after they produce real audio once, covering apps whose bundle metadata does not declare playback capability.
  • Expands installed-app recognition for browsers, media players, DAWs, communication apps, games and video editors, including ScreenFlow, while excluding capture-only utilities such as Wispr Flow and Camo.
  • Keeps searches and directories in deterministic name order so playback changes cannot make Chrome, Pianoteq, REAPER or another row jump around.

1.4.6

  • Fixes Audio Devices, Scenes, Settings and Output Groups controls when Shruti is pinned as a floating panel; every footer control now opens the same real window from either UI.
  • Finds playback apps using both the installed-app directory and live Core Audio evidence, so newly observed apps appear without needing a hard-coded catalogue entry.
  • Makes Claude and ChatGPT searchable playback apps and lets vendor-style searches such as “Google Chrome” match an app whose display name is simply “Chrome”.
  • Keeps the live mixer focused on apps producing output now, with a three-second anti-flicker grace instead of retaining silent utilities or every installed application.
  • Removes playback-driven “smart” reordering. Your order remains fixed, hidden apps retain their positions, and newly heard apps join without making existing rows fight.
  • Makes Compact a genuine two-line mixer layout so app names remain readable while level, boost, output and FX controls remain available.
  • Replaces the vague “fix volume keys” prompt with a contextual Mac volume-keys setup for fixed-volume HDMI, display, TV and audio-interface outputs.

1.4.4

  • Shows only proven live audio, actively controlled rows, and a short 15-second recent-audio grace; running utilities and neutral imported apps stay out of the mixer.
  • Suppresses Wispr Flow, Camo and ScreenFlow playback false positives caused by capture apps keeping a nominal Core Audio output stream warm while emitting no sound.
  • Adds persistent up/down ordering controls to every visible app, plus one-click Smart Order that restores the automatic playing-now-first layout.
  • Replaces the ambiguous green-dot treatment with an explicit LIVE waveform badge and labels short recent-audio grace rows by age, so a volume slider is never mistaken for a meter.
  • Keeps Google Chrome helper processes attributed to Chrome and preserves existing device order, routes, favorites, effects, locks and imported settings during the update.

1.4.3

  • Cuts steady background discovery work by combining Shruti's raw and owner-resolved audio activity into one Core Audio process-registry pass.
  • Throttles status-driven discovery refreshes and uses a two-second low-priority fallback while retaining immediate Core Audio start/stop notifications, so a new playing app is still picked up promptly.
  • Preserves the independent ShrutiService, evidence-only mixer, device ordering, Frequently Used routes and safe device removal introduced in 1.4.2.

1.4.2

  • Gives Shruti its own ShrutiService executable, singleton lock, control socket and logs.
  • Removes Sangam service startup, shutdown and packaging from every Shruti shipping path.
  • Keeps each engaged app inside its own sacrificial tap worker while the main service stays responsive.
  • Adds a release gate that rejects any future runtime or installer coupling to Sangam.
  • Shows only apps with real or recent output activity (or an active control), removing idle apps such as Terminal, Wispr Flow and ScreenFlow from the live mixer.
  • Adds drag-free Move Up/Move Down device ordering and a Frequently Used section backed by durable output, input and alert-route history.
  • Adds safe Remove and Restore for physical audio devices without uninstalling macOS drivers; a current system route must be changed before it can be removed.
  • Keeps audio-app discovery playback-focused, so microphone permission or a video category alone no longer puts recording and dictation tools in the Add App list.

1.4.1

  • Spotify, Chrome, YouTube and other app audio no longer go silent when Shruti engages on a device whose hardware-input buffers appear before the app's stereo process tap.
  • Capture-only apps such as camera utilities no longer keep an output aggregate alive.
  • A camera or call app whose Core Audio output flag remains stuck on after proven silence stays on the direct path until a real playback stop/start transition.
  • Short browser-helper and player-state changes no longer churn otherwise healthy tap helpers.
  • The audio callback now reuses its buffer and performs no steady-state heap allocation.
  • Wall-clock activity sampling moved out of the real-time callback and onto the existing worker heartbeat.
  • The menu UI refreshes once per second while visible and every three seconds while hidden, instead of rebuilding the full app and device snapshot twice per second at all times.

1.4.0

  • Each controlled app now gets its own isolated audio helper. If one Core Audio graph or Audio Unit fails, that app returns to the direct macOS path without taking the mixer—or another app—with it.
  • The current mixer, protected-app list and system routes survive restart as before.
  • The optimized product suite now passes 320 checks, including exact preset restore and tap containment support, with eight full processing chains averaging below 0.4 ms on the release test Mac.
  • A compatibility table now separates physical hardware passes from build-only coverage.

1.3.0

  • Live-host protection: MainStage and every excluded DAW or routing app stay on Shruti's direct, zero-added-latency path.
  • Useful effect translation: Jason's Waves NS1 intent is preserved with Shruti's built-in, out-of-process-safe Noise Suppressor. Proprietary presets that cannot be translated honestly are listed for review.
  • Sound Effects route: Output, Input and macOS alert sounds now form a complete System section, including a clear “Follows Output” default.
  • Release reliability: the production performance suite now runs in optimised mode everywhere, and public releases can only be published from this repository's reviewed main branch.
  • Audio-engine hardening: closed clients cannot crash the service, device and playback discovery stays off the command path, and browser/helper churn no longer rebuilds a healthy tap underneath live audio.