惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
罗磊的独立博客
雷峰网
雷峰网
量子位
V
Visual Studio Blog
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
月光博客
月光博客
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
腾讯CDC
Engineering at Meta
Engineering at Meta
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
Jina AI
Jina AI
A
About on SuperTechFans

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - Humblemonk/shurectl: A terminal UI configurator ...
PennRobotics · 2026-06-26 · via Hacker News: Show HN

An open-source terminal UI configurator for Shure USB audio interfaces and microphones on Linux, macOS, and Windows. Replaces the Windows/Mac-only ShurePlus MOTIV Desktop app.

Project Example Screenshot


Supported Devices

  • MVX2U Gen 1 — Digital Audio Interface
  • MVX2U Gen 2 — Digital Audio Interface
  • MV6 — USB Gaming Microphone
  • MV7+ — USB/XLR Dynamic Microphone

Features

All Devices

  • Gain Control — Auto Level / Manual toggle
  • Mic Mute — toggle mute
  • Monitor Mix — mic vs. playback blend slider
  • Compressor — Off / Light / Medium / Heavy
  • High-Pass Filter — Off / 75 Hz / 150 Hz
  • Real-time Level Meter — dBFS input meter with peak-hold display
  • 4 Preset Slots — save and load named presets stored as TOML in ~/.config/shurectl/presets/
  • Device Info — factory serial number, device name, and firmware version
  • Demo mode — run without a device plugged in (--demo)

MVX2U Gen 1

  • Gain range — 0–60 dB
  • Phantom Power — 48V on/off; warns if enabled when muting ribbon mics
  • 5-band Parametric EQ — per-band enable, gain (−8 to +6 dB in 2 dB steps)
  • Limiter — enable/disable
  • Panel Lock — lock the physical panel controls on the device
  • Auto Level controls — mic position (Near/Far), tone (Dark/Natural/Bright), gain environment (Quiet/Normal/Loud)

MVX2U Gen 2 - Builds on Gen 1 features with the following

  • 5-band Parametric EQ — gain (−8 to +6 dB in 0.5 dB steps)
  • Tone — Dark / Natural / Bright
  • Real-time Denoiser — enable/disable
  • Popper Stopper — enable/disable
  • Gain Lock — hardware freeze of the gain control (Manual mode only)

MV6

  • Gain range — 0–36 dB
  • Tone — Dark / Natural / Bright
  • Real-time Denoiser — enable/disable
  • Popper Stopper — enable/disable
  • Mute Button Disable — prevent accidental mutes
  • Gain Lock — hardware freeze of the gain control (Manual mode only)

MV7+ - Builds on MV6 features with the following

  • Reverb — output and monitor enable/disable; Type: Plate / Hall / Studio; Intensity: 0–100%
  • LED Panel — Behavior (Live / Pulsing / Solid), Brightness (Low / Med / High / Max), theme and custom RGB color per mode

Platform Setup

Linux — udev Rules (Required for Non-Root Access)

Without a udev rule, /dev/hidrawN for the device is only accessible by root.

Create /etc/udev/rules.d/62-shure.rules:

ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1013", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1033", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1026", TAG+="uaccess"
ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1019", TAG+="uaccess"

Then reload udev and replug your device:

sudo udevadm control --reload-rules
sudo udevadm trigger

Verify the device appears:

shurectl --list
# Found 1 Shure device(s):
#   /dev/hidraw2 | Shure MVX2U Gen 2 | S/N: MVX2U GEN 2#2-a646351d...

macOS — No Runtime Setup Required

On macOS, IOKit grants user-space access to HID devices without extra configuration. Plug in your device and run shurectl --list to confirm detection.

Windows — No Runtime Setup Required

Windows grants user-space HID access out of the box via the setupapi backend — no driver installation or equivalent of a udev rule is needed. Plug in your device and run shurectl --list to confirm detection. Device paths look like \\?\HID#VID_14ED&PID_1026&... rather than /dev/hidrawN.

Building from source requires the MSVC toolchain. Install Microsoft C++ Build Tools with the "Desktop development with C++" workload, then ensure MSVC is your active rustup toolchain:

rustup default stable-x86_64-pc-windows-msvc

Installing

From source

git clone https://github.com/Humblemonk/shurectl.git
cd shurectl
cargo build --release

The binary will be at target/release/shurectl.

To install system-wide:

sudo install -m 755 target/release/shurectl /usr/local/bin/

Or for your user only:

install -m 755 target/release/shurectl ~/.local/bin/

Via cargo install

cargo install --git https://github.com/Humblemonk/shurectl.git

Usage

shurectl                         # Connect to first detected device and launch TUI
shurectl --device <path>         # Connect to a specific device (use --list to find paths)
shurectl --demo                  # Run without a device (explore the UI)
shurectl --list                  # List detected Shure devices and exit
shurectl --mute                  # Toggle mute without launching the TUI
shurectl --mute on               # Mute
shurectl --mute off              # Unmute

Keyboard Shortcuts

Key Action
Tab / Shift+Tab Switch section
/ k Focus previous control
/ j Focus next control
/ h Decrease value
/ l Increase value
Enter / Space Toggle boolean / cycle option
f Flatten EQ (zero all bands) — EQ tab, Gen 1 and Gen 2 only
r Refresh state from device
s Save preset (on Presets tab, focused slot)
d Delete preset (on Presets tab, focused slot)
? Toggle help overlay
q / Ctrl+C Quit

Presets

Presets are stored as human-readable TOML files in ~/.config/shurectl/presets/:

~/.config/shurectl/presets/
├── preset_1.toml
├── preset_2.toml
├── preset_3.toml
└── preset_4.toml

Each file captures all configurable DSP settings (gain, mode, EQ, dynamics, monitor mix, etc.) but not hardware-identity fields like serial number or firmware version. Files are hand-editable.

On the Presets tab:

  • Navigate to a slot with /
  • Press Enter on the name field to rename it (type, then Enter to confirm or Esc to cancel)
  • Press Enter on the actions row to load a filled preset — all settings are applied to the device immediately
  • Press s to save the current device state into the focused slot
  • Press d to delete the focused slot

Troubleshooting

"Cannot open device" — device not found or a permissions issue. Run shurectl --list to check detection. On Linux, try sudo shurectl to confirm it's a udev permissions issue. On macOS and Windows, ensure no other software (e.g. ShurePlus MOTIV) has exclusive access to the device.

Gain slider is greyed out in Auto Level mode — This is correct hardware behaviour; the device ignores gain commands in Auto Level mode. Switch to Manual mode first.

PipeWire/PulseAudio volume vs. device gain — This tool controls the hardware DSP gain on the device itself, not the OS capture volume level. Both can be set independently.


Acknowledgements

Initial protocol reverse-engineering credit goes to PennRobotics and the shux project (Apache 2.0), without which this tool would not exist. If you find shurectl useful, consider starring their repository.

This project was developed with the assistance of Claude (Anthropic) as a pair-programmer throughout: writing and reviewing Rust code, reasoning about the HID protocol, and catching issues during implementation. All code was reviewed and tested by the author before merging.


Legal

Protocol implementation is based on publicly documented USB HID packet captures by PennRobotics (shux project, Apache 2.0) as well as author's own usbmon captures. No Shure software was used, decompiled, or examined in the creation of this tool.

shurectl is not affiliated with or endorsed by Shure Incorporated.