SlopScore
10 crowdincl. 2 critics

frame-mic-tuner

SteamVR dashboard panel to switch the Steam Frame mic's echo cancellation and noise suppression (unofficial)
Open repo on GitHubgithub.com/sasaken1102r/frame-mic-tuner
C++ · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 44 minutes ago by sasaken1102r · last checked 44 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-27: SteamVR dashboard panel to switch the Steam Frame mic's echo cancellation and noise suppression (unofficial); its own README says "This project was made with Claude Opus 5". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as sasaken1102r. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
SteamVR dashboard panel to switch the Steam Frame mic's echo cancellation and noise suppression (unofficial)
created
2026-09-27 · pushed 2 hours ago · 1 commits · 1 contributor
languages
C++ 96%Shell 2%Lua 1%CMake 1%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 44 minutes ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
cmakecppluashell
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: SteamVR dashboard panel to switch the Steam Frame mic's echo cancellation and noise suppression (unofficial); its own README says "This project was made with Claude Opus 5". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Frame Mic Tuner

A SteamVR dashboard panel for the Steam Frame that switches the headset microphone's echo cancellation and noise suppression while you're wearing it. Turn echo cancellation off when you use earphones, so quiet sounds like mouth noises come through clearly, and back on when you use the Frame's speakers, so their sound doesn't leak into your mic. A built-in voice check records a few seconds of what apps actually hear, so you can compare settings on the spot.

日本語版はこちら

Quick (presets) Fine-tune
The Quick tab The Fine-tune tab

What it does

  • Two tabs: Quick has the presets, Fine-tune has the individual switches and sliders. The panel opens on the tab you used last.
  • Presets for how you listen (Quick tab, "How are you listening?"): one tap on Earphones / headphones sets echo cancellation off and noise suppression off; one tap on Frame speakers sets echo cancellation on and noise suppression off. Each card shows what it sets, and the card matching your current settings is highlighted. On the Fine-tune tab, echo cancellation and noise suppression also have their own on/off switches; when your settings match neither preset, both cards turn grey. Changes apply at once, even while the mic is in use, without cutting the sound, and they are kept after a restart.
  • Noise filter strength: two sliders tune the noise suppression on the spot: Strictness (how voice-like a sound must be to pass; lower lets more through) and Hold (how long sound keeps passing after you stop speaking).
  • Signal path: shows whether an app is using the mic and which filters the sound actually goes through (mic → EQ → echo cancellation → noise suppression → apps), read from the live PipeWire links.
  • Voice check: records up to 10 seconds of the final sound that apps receive, keeps the last 5 recordings, and plays them back through the Frame's speakers or your earphones. Each recording shows the time, length, the setting it was made with and a small waveform.
  • Japanese and English UI. Text and controls meet WCAG 2.x AA contrast.

Why this is needed: while an app uses the mic, SteamOS runs it through EQ, echo cancellation and noise suppression. Echo cancellation strongly reduces small sounds, and noise suppression silences anything that doesn't sound like a voice. With earphones there is no speaker sound to cancel, so turning echo cancellation off lets more of your voice through.

Requirements

  • A Steam Frame with Developer Mode on and SSH access (Settings > System > Developer Mode, then set a password under Developer). Choose a strong password: with SSH on, anyone on your network who knows it can log in to the headset.
  • SteamVR on the headset. The build tools used by install.sh (cmake, ninja, g++, pkg-config) and the libraries (cairo, FreeType, PipeWire, Vulkan) already come with SteamOS.

Install

On the headset (ssh steamos@<headset-ip>):

git clone https://github.com/sasaken1102r/frame-mic-tuner.git
cd frame-mic-tuner
./install.sh

Then restart the headset once, so WirePlumber loads the switch script. Don't restart PipeWire or WirePlumber by hand while playing: SteamVR and Steam Link lose their sound. If that happens anyway, restart SteamVR on the headset (or reconnect Steam Link) and the sound comes back.

No sudo is needed. install.sh builds the app and puts everything into your home directory (~/.local/bin, ~/.local/share, ~/.config), so SteamOS updates don't remove it. To update, run git pull and ./install.sh again.

What gets installed:

  • the app, a launcher entry for the dashboard's + (launch a program) list, and its icons
  • a systemd user unit for starting it together with SteamVR (not enabled unless you turn it on; see below)
  • a WirePlumber script and config (contrib/wireplumber/) that replace SteamOS's microphone tracker with one whose echo cancellation and noise suppression can be switched. It behaves like the original otherwise.

To remove it: ./install.sh --uninstall, then restart the headset to get SteamOS's original microphone behaviour back. Add --purge to also delete the app's settings and the saved switch values.

Usage

  1. Open the SteamVR dashboard, press + (launch a program) and choose Frame Mic Tuner. A Mic icon appears in the row at the bottom of the dashboard; select it to open the panel. Launching it again while it's running just opens the panel.
  2. On the Quick tab, under How are you listening?, choose Earphones / headphones or Frame speakers. These are presets: they set echo cancellation and noise suppression to the recommended values (the chips on each card show them); the noise filter strength sliders stay as they are. For finer control, switch to the Fine-tune tab. If your settings then match neither preset, both cards on the Quick tab turn grey and it says "Using fine-tuned settings", with an Open Fine-tune → button; tap a card to go back to that preset. Noise filter cuts quiet sounds (mouth noises and the like) when on.
    • On the Fine-tune tab, drag the Strictness and Hold sliders (or use − / +) to tune the noise filter. SteamOS's defaults are 23% and 500 ms; Default brings them back. The sliders only have an effect while Noise filter is on.
    • SteamOS resets these two values whenever its audio restarts (for example after a reboot). The app saves your values and applies them again each time it starts, so they only stick while the app is running. Turn on Start with SteamVR if you want them all the time. Without the app, SteamOS's defaults are used.
  3. Voice check: press Record, say something, and press Stop (it stops by itself after 10 seconds). Switch the setting, record again, and use ▶ on each row to compare. Recording stops as soon as you close the panel.
  4. Start with SteamVR (bottom row): turn it on to have the app start automatically with SteamVR from now on. You can also enable it with ./install.sh --autostart.
  5. Language: the panel starts in your Steam Frame's language (Japanese if Steam is set to Japanese, English otherwise). Change it with 日本語 / English at the bottom left; your choice is saved.
  6. Quit: press it twice, or hover over the Mic icon in the dashboard and choose Close.

The settings are also available from SSH:

wpctl settings --save frame-mic.echo-cancel false        # earphones: echo cancellation off
wpctl settings --save frame-mic.echo-cancel true         # speaker: echo cancellation on (default)
wpctl settings --save frame-mic.noise-suppression true   # noise suppression on (default: off)
~/.local/bin/frame-mic-tuner --print                     # current values, mic in use, signal path

Troubleshooting

  • The panel says "Mic switch is not installed": the WirePlumber script isn't loaded yet. Run ./install.sh, then restart the headset.
  • Autostart buttons are grey: the systemd unit isn't installed. Run ./install.sh.
  • Recordings are silent, or others can't hear you at all: check the microphone volume in the headset's mixer (read only; this is safe):
    amixer -c 0 cget name='VA_DEC0 Volume'
    amixer -c 0 cget name='VA_DEC1 Volume'
    Both should say values=96. If they say 0, the microphone is effectively muted. This app never touches the mixer, but it has been seen dropping to 0 on its own. To set them back (at your own risk; note the current values and the max= shown by cget first, and use the value your headset normally has, 96 on ours):
    amixer -c 0 cset name='VA_DEC0 Volume' 96
    amixer -c 0 cset name='VA_DEC1 Volume' 96
  • No sound at all in SteamVR or Steam Link after PipeWire or WirePlumber was restarted: restart SteamVR on the headset (or reconnect Steam Link). The sound comes back.
  • No sound at all after a SteamOS update: the switch script is loaded as a required part of WirePlumber, so if an update breaks it, WirePlumber may stop and take all sound with it. Remove the config over SSH and restart the headset (or run ./install.sh --uninstall and restart):
    rm ~/.config/wireplumber/wireplumber.conf.d/90-frame-mic.conf
  • "In use" while you're not talking in any app: any app that records audio counts, including screen or audio recorders. SteamOS turns the filters on for all of them.
  • Frame Mic Tuner is missing from the + list: restart the headset once after installing.
  • The Mic icon is missing from the dashboard although the app is running: SteamVR can lose the app's dashboard panel (for example when the dashboard itself restarts). The app checks every 3 seconds and recreates the panel by itself, so wait a few seconds and open the dashboard again. Launching the app again from + also checks and recreates it before opening the panel. If it still doesn't come back, the log (journalctl --user -u frame-mic-tuner -f when it runs as a service) says why (the log is in Japanese; look for lines starting with "自己修復", which means "self-repair"); quitting the app and starting it again fixes it too.
  • Logs: journalctl --user -u frame-mic-tuner -f when it runs as a service. To see the log of a manual run, quit the app and start ~/.local/bin/frame-mic-tuner from SSH.

Privacy

  • Voice check recordings are kept only in the app's memory. They are never written to disk or to logs, and never sent anywhere. They are gone when the app quits.
  • While it records, the panel shows "● Recording". Recording stops as soon as you close the panel.
  • The microphone may pick up the voices of people around you. Keep that in mind before recording.
  • To pick the default language it reads the language line of Steam's ~/.steam/registry.vdf once at startup (read only).
  • The app has no telemetry and doesn't use the network. The only files it writes are ~/.config/frame-mic-tuner/config.json, which holds the UI language, the last tab you opened and the noise filter strength, and a lock file in $XDG_RUNTIME_DIR that holds its process ID (to stop a second copy from starting).

Disclaimer

  • Use at your own risk. This project was made with Claude Opus 5.5, an AI model. I've tested it on my own Steam Frame, but I can't take responsibility for what happens on yours, so please read the code and check it yourself before you run it. The software comes with no warranty (see LICENSE).
  • What it changes: the two WirePlumber settings frame-mic.echo-cancel and frame-mic.noise-suppression (through wpctl settings), the noise suppressor's two live parameters "VAD Threshold (%)" and "VAD Grace Period (ms)" (through pw-cli set-param; SteamOS puts its defaults back when its audio restarts), and WirePlumber's configuration in your home directory, where it replaces SteamOS's microphone tracker with its own script. Apart from that it only enables or disables its own systemd user unit when you ask it to.
  • It never restarts PipeWire or WirePlumber, never writes to the ALSA mixer (amixer), never touches /etc and never needs root.
  • A SteamOS update can change how the microphone filters are set up. If that happens, the switches may stop working until this project is updated. Because the switch script is a required part of WirePlumber, a script that no longer loads can also stop all sound on the headset (see Troubleshooting). ./install.sh --uninstall and a restart bring back SteamOS's original behaviour.
  • This is an unofficial project with no affiliation with or endorsement from Valve Corporation. Steam, Steam Frame, SteamVR and Steam Link are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries. The names are used here only to say what this works with.

Development

Build on the headset:

cmake -G Ninja -S . -B build && ninja -C build
./build/frame-mic-tuner --help

Useful options that don't need SteamVR: --print, --set-ns-vad N / --set-ns-grace N (apply a noise filter strength right away without saving it), --dump-png PATH (render the panel, with --fake-* states for screenshots), --test-record 3 (record 3 seconds and play them back), --contrast-report (WCAG contrast of every color pair) and --version. Design notes, how the switch script works and test results are in docs/DEVELOPMENT.ja.md (Japanese).

License

MIT. See LICENSE. The bundled OpenVR header (third_party/openvr/) is BSD-3-Clause by Valve Corporation. Licenses of the bundled header and the libraries it uses are listed in THIRD_PARTY_LICENSES.md. Changes are listed in CHANGELOG.md.

Read the rest on GitHub

Scan report · 2026-09-27
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review — +10 single commit

From the balcony · 2 of 2 clapped

  1. Schnitzelclapped
    Delightfully niche VR utility with a playful voice-check feature and thoughtful UX design for a specific hardware problem.
  2. Princessclapped
    MIT-licensed, works-on-my-machine status, clear purpose with functional demo features (presets, voice check), and no dependency vulnerabilities.

Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

0 comments

log in to comment.

report this listing — log in to report