apply-podcast-preset
Apply a recommended parametric-EQ DSP preset tuned for spoken-word / podcast listening to a Music Assistant player.
Skill by danielrosehill
Chalk Labs
Need help deploying apply-podcast-preset?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/danielrosehill-apply-podcast-preset
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/apply-podcast-preset
What's inside
- Skill name
apply-podcast-preset- Description
- Apply a recommended parametric-EQ DSP preset tuned for spoken-word / podcast listening to a Music Assistant player. Tames sub-bass rumble, lifts vocal presence (1–4 kHz), and softens sibilance (~6–8 kHz). Use when the user wants a one-shot "make this speaker good for podcasts" action — typically a kitchen, bathroom, or office speaker — without hand-rolling EQ bands.
- License
- MIT
- Instructions
- 89 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Apply Podcast DSP Preset
Push a curated parametric-EQ preset to a Music Assistant player, optimised for podcasts and audiobook content.
## The preset
Six peaking/shelf bands plus a small preamp trim. Tuned for full-range speakers; a separate variant is provided for small/desktop speakers.
### Variant: `podcast-default`
| # | Type | Freq (Hz) | Gain (dB) | Q | Purpose |
|---|---|---|---|---|---|
| 1 | high_pass | 70 | — | 0.7 | Roll off sub-bass rumble / room noise |
| 2 | peaking | 200 | -3.0 | 1.0 | Cut "muddy" lower-mids |
| 3 | peaking | 500 | -1.5 | 1.2 | Reduce boxy midrange |
| 4 | peaking | 2500 | +3.0 | 1.0 | Lift vocal intelligibility |
| 5 | peaking | 4000 | +2.0 | 1.4 | Add presence / clarity |
| 6 | peaking | 7000 | -2.5 | 3.0 | Tame sibilance / harshness |
Preamp: `-2.0 dB` (compensate for the +3 dB peaks so output stays clean).
### Variant: `podcast-small-speaker`
For desktop / smart-speaker grade hardware that lacks low-end. Drops the high-pass and the 200 Hz cut (already missing on the speaker).
| # | Type | Freq (Hz) | Gain (dB) | Q |
|---|---|---|---|---|
| 1 | peaking | 2500 | +3.5 | 1.0 |
| 2 | peaking | 4000 | +2.5 | 1.4 |
| 3 | peaking | 7000 | -2.0 | 3.0 |
Preamp: `-2.0 dB`.
## Steps
1. Load config per the `reference` skill. Resolve the target player (by name or ID).
2. Ask which variant to apply if the user didn't specify. Default to `podcast-default`.
3. Stash the player's current DSP first (so the user can revert):
```bash
$DATA_ROOT/state/last-dsp-<player-slug>.json
```
Use the `config/players/get` command (or the matching REST endpoint) to fetch the current `player_config`, extract its `dsp` block, and save the whole player_config payload alongside.
4. Build the DSP payload. Authoritative shape (per Music Assistant docs — see `reference` skill):
```json
{
"enabled": true,
"preamp_gain_db": -2.0,
"per_channel": false,
"bands": [
{"type": "high_pass", "frequency": 70, "q": 0.7, "enabled": true},
{"type": "peaking", "frequency": 200, "gain_db": -3.0, "q": 1.0, "enabled": true},
{"type": "peaking", "frequency": 500, "gain_db": -1.5, "q": 1.2, "enabled": true},
{"type": "peaking", "frequency": 2500, "gain_db": 3.0, "q": 1.0, "enabled": true},
{"type": "peaking", "frequency": 4000, "gain_db": 2.0, "q": 1.4, "enabled": true},
{"type": "peaking", "frequency": 7000, "gain_db": -2.5, "q": 3.0, "enabled": true}
]
}
```
Supported filter `type` values (verbatim from MA docs): `peaking` (a.k.a. Peak/Bell), `high_shelf`, `low_shelf`, `high_pass`, `low_pass`, `notch`, `all_pass`. **Not** supported: Modal, BP, LSC x dB, HS x dB, AP, LS with dB slope, HS with dB slope.
5. Apply via the `config/players/save` command (WebSocket) or the equivalent `PUT /api/config/players/<player_id>` endpoint, merging the new `dsp` block into the existing `player_config`.
6. Verify by re-fetching the player_config and confirming the DSP block matches what was sent. Print a one-line confirmation: `living-room: applied podcast-default (6 bands, preamp -2 dB)`.
7. Tell the user how to revert: `Run /media-assistant-ops:update-dsp-settings and choose "revert last change" — or restore from $DATA_ROOT/state/last-dsp-<player-slug>.json.`
8. Offer to also save this as a named DSP preset for the player (delegate to `save-dsp-settings`) so it shows up in their preset library.
## Adapting for other content
If the user asks for variations:
- **More bass for a TV speaker doing podcasts**: drop the high_pass to 50 Hz, add a `low_shelf` at 120 Hz +2 dB.
- **Harsh-sounding speaker (cheap tweeter)**: deepen band 6 to -4 dB and add a `peaking` at 9 kHz, -2 dB, Q 2.0.
- **Mono in-ceiling speaker**: keep `per_channel: false`. For stereo desk monitors, set `per_channel: true` and apply identical bands to both channels by default.
## Do not
- Do not push gains above +6 dB on any band — combined with program material it will clip.
- Do not assume the player supports DSP. Music Assistant DSP only applies to *Music Assistant–native* player flows (snapcast / built-in player). Hardware players that handle their own decoding (e.g. some Sonos modes) bypass MA's DSP. If the player_config lacks a `dsp` key, tell the user this player doesn't support MA-side DSP and suggest applying EQ at the device.From danielrosehill/Claude-Media-Assistant-Ops-Plugin, MIT.
More from danielrosehill/Claude-Media-Assistant-Ops-Plugin
- 0.322score
save-dsp-settings
danielrosehill
Snapshot a Music Assistant player's current DSP (EQ bands + filters) configuration and persist it as a named preset under $CLAUDE_USER_DATA.
SkillDFreshness: DClaude Code +9 - 0.322score
update-dsp-settings
danielrosehill
Apply a DSP configuration to a Music Assistant player — either by loading a previously saved preset from disk or by adjusting specific EQ bands/filters…
SkillDFreshness: DClaude Code +9 - 0.322score
onboard
danielrosehill
First-run setup for the media-assistant-ops plugin.
SkillDFreshness: DClaude Code +9 - 0.322score
control-player
danielrosehill
Send a playback command to a Music Assistant player — play, pause, stop, next, previous, or set volume.
SkillDFreshness: DClaude Code +9 - 0.320score
reference
danielrosehill
Shared reference for the Music Assistant local API — base URL, auth, the WebSocket command bus, the DSP/EQ schema, and the data-storage layout this plugin uses.
SkillDFreshness: DClaude Code +9 - 0.318score
status
danielrosehill
Verify the plugin can reach the configured Music Assistant server.
SkillDFreshness: DClaude Code +9 - 0.318score
list-players
danielrosehill
Enumerate all players known to the Music Assistant server along with their current state (playing/paused/idle), volume, and currently-playing track if any.
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Apr 21, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from danielrosehill
- 0.470score
plugin-data-storage
danielrosehill
Canonical reference for where Claude Code plugins should persist user data.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
save-plan
danielrosehill
Save a Claude Code plan (from ExitPlanMode, design discussion, or multi-step task) to persistent storage.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
onboard
danielrosehill
First-run onboarding for the adb-ops plugin.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
context-gate
danielrosehill
One-shot context-checkpoint workflow — when the current session is getting cluttered, write a structured handover plan capturing what's done and what's…
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
context-workflow-reference
danielrosehill
Reference and worked example for the CONTEXT.md / CLAUDE.md two-file workflow.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
scaffold-planning
danielrosehill
Create a lightweight `planning/` folder in the current repo with leftover-tasks.md, blockers.md, session-logs/, and handovers/.
SkillAFreshness: A★ 2Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get apply-podcast-preset running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
apply-podcast-preset skill. Agent Mart. https://agentmart.dev/skills/danielrosehill-apply-podcast-preset (last updated 2026-10-24)