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

推荐订阅源

I
InfoQ
博客园 - 司徒正美
爱范儿
爱范儿
F
Fortinet All Blogs
J
Java Code Geeks
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
V
V2EX
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Y
Y Combinator Blog

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
GitHub - Humblemonk/shurectl: A terminal UI configurator ...
PennRobotics · 2026-06-26 · via 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.