-
-
Notifications
You must be signed in to change notification settings - Fork 345
Description
Feature Request: Expose HTTP/WebSocket API for External Control
Summary
Request to expose EqMac's internal API as a network-accessible HTTP or WebSocket endpoint, enabling third-party applications to programmatically control EQ settings.
Use Case
Those folks developing music player apps that integrates with Roon and Plex or others. I want users to control system-wide EQ from within their app, applying the same EQ settings to all audio sources including Roon playback.
Currently, Roon's API doesn't expose DSP/EQ control, so system-wide EQ via EqMac is the ideal solution.
What I Discovered
While investigating EqMac v1.8.12 Pro, I found that:
-
A full HTTP-style API already exists internally:
GET /enabled, /gain, /balance, /presets, /info, /effects POST /open-url, /reset DELETE /presets, /effects -
The API uses WebViewJavascriptBridge for Swift ↔ JavaScript communication within the WKWebView-based UI.
-
No network port is exposed - the API is only accessible from EqMac's internal web UI.
Proposed Solution
Expose the existing API on a localhost HTTP or WebSocket port (e.g., http://127.0.0.1:37765/).
Minimal Endpoints Needed:
GET /api/enabled → { enabled: true/false }
POST /api/enabled ← { enabled: true/false }
GET /api/presets → [{ name: "flat", ... }]
POST /api/preset/:name ← Apply preset by name
GET /api/bands → [{ frequency, gain, q, type }]
POST /api/bands ← [{ frequency, gain, q, type }]
Optional: WebSocket for Real-time Updates
ws://127.0.0.1:37765/ws
→ Subscribe to EQ state changes
← Push band/preset updates
Benefits
- Enables home automation integration (Home Assistant, etc.)
- Allows music apps to sync EQ settings
- Supports accessibility tools
- Matches EqMac's roadmap goal: "API - Control all aspects of eqMac"
Alternatives Considered
- AppleScript: EqMac is not scriptable
- URL Scheme (
eqmac://): Exists but commands are undocumented - CamillaDSP: Has API but complex setup vs. EqMac's simplicity
I'm Happy to Help
If the team is interested, I can:
- Help test API implementations
- Provide feedback on API design
- Contribute documentation
Thank you for the amazing work on EqMac!
Environment:
- EqMac Version: v1.8.12 Pro
- macOS: 15.x (Sequoia)
- Use case: Roon/Plex music player integration