From livepilot
This skill should be used when the user asks to "analyze my mix", "find mix issues", "fix masking", "check frequency clashes", "improve dynamics", "check stereo width", "check headroom", or wants critic-driven mix analysis and evaluation. Provides the mix critic loop for iterative mix improvement.
How this skill is triggered — by the user, by Claude, or both
Slash command
/livepilot:livepilot-mix-engineThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The mix engine runs an iterative critic loop: analyze, plan, execute, measure, evaluate, keep or undo. Every mix change is measured before and after. Nothing stays unless it scores better than the original.
The mix engine runs an iterative critic loop: analyze, plan, execute, measure, evaluate, keep or undo. Every mix change is measured before and after. Nothing stays unless it scores better than the original.
Do not treat the full loop as the default for vague requests like "make it better", "more character", "more alive", "punchier", "warmer", or "more interesting". Those are usually sound-design or creative-direction requests. Start from analyzer character (sonic_character, get_spectral_shape, get_novelty, get_onsets, get_mel_spectrum) and prefer source, instrument, device-chain, envelope, filter, saturation, modulation, and transient-shape decisions before generic level changes.
Use set_track_volume, set_track_pan, and broad send-level balancing only when the user explicitly asks for balance/level/pan/send work, or when analyzer evidence shows a safety/translation problem such as clipping, headroom collapse, mono collapse, or a severe masking issue. Producers can adjust simple loudness by ear quickly; LivePilot's value is in hearing spectral character and choosing a smarter musical intervention.
For normal work, cap mix-engine action to one high-value move plus a short verdict. Enter the repeated full loop only for explicit requests like "deep mix pass", "mastering prep", "fix all mix issues", or an exact target such as LUFS/headroom/mono compatibility.
Follow these steps in order. Do not skip the evaluation step.
Call analyze_mix or get_mix_issues to build a MixState and run all critics against the current session. The response contains an issues array, each with a critic, severity, track_index, and evidence dict.
If the M4L analyzer bridge is absent, critics fall back to role-based heuristics only (track names, device chains, volume/pan positions). Inform the user that spectral analysis is unavailable and recommendations are less precise.
For detailed frequency collision data, call get_masking_report. For a quick status overview without the full critic pass, call get_mix_summary.
Each masking entry carries measured and severity_basis: measured=True /
severity_basis="spectral_overlap" means severity came from real per-track
spectral data; measured=False / severity_basis="role_heuristic" means it's
a role-pair prior with no per-track measurement behind it. Treat
measured=False entries as low-confidence hypotheses, not verified problems —
solo the pair and read get_master_spectrum before acting on them. See
livepilot-core SKILL.md → "Response Fields You Must Check".
Pick the highest-severity issue from the issues array. Call plan_mix_move with the issue data. The planner returns the smallest intervention that addresses the problem — a single parameter change, not a chain of edits.
Read the move object: it contains move_type, target_track, target_device, target_parameter, target_value, and rationale. Consult the move vocabulary in references/mix-moves.md for parameter ranges.
Take a measurement snapshot before executing anything:
get_master_spectrum — save the 9-band spectral data (sub_low → air)get_master_rms — save the RMS and peak valuesOptionally call get_mix_snapshot if you need per-track volume/pan/send state for the evaluation.
Execute the planned move. Use the appropriate tool for the move type:
set_device_parameter for EQ cuts/boosts, compressor thresholds, saturation drivesset_track_volume for gain stagingset_track_pan for stereo placementset_track_send for bus routing levelstoggle_device for bypassing/enabling processorsbatch_set_parameters when the move requires multiple related parameter changes on the same deviceExecute exactly one move. Do not chain multiple interventions before measuring.
Repeat the same measurements from Step 3:
get_master_spectrum — save the post-change spectral dataget_master_rms — save the post-change RMS and peak valuesCall evaluate_mix_move with the before and after snapshots:
evaluate_mix_move(
before_snapshot: { spectrum: [...], rms: float, peak: float },
after_snapshot: { spectrum: [...], rms: float, peak: float },
targets: { ... }, # what the move aimed to improve
protect: { ... } # what must not get worse
)
Read the response: keep_change (bool), score (0.0-1.0), improvements (list), regressions (list), explanation (string).
If keep_change is false, call undo() immediately. Tell the user what was tried and why it was reverted, citing the regressions list.
If keep_change is true, report the improvement to the user with the score and explanation.
If the move scored above 0.7 and the user confirms satisfaction, call memory_learn(name="...", type="mix_template", qualities={"summary": "..."}, payload={...}) to save the technique for future recall.
Return to Step 1 and re-analyze only when the user requested a deep/full mix pass. Otherwise stop after the first measured high-value intervention and report the remaining optional issues as suggestions. Avoid spending a turn on small volume-balancing loops unless they are the requested task.
Not every request needs the full loop:
get_mix_summary for a one-shot status report with no changesget_masking_report for detailed per-pair frequency collision dataget_mix_issues for the critic list without executing any fixesSix critics run during analysis. See references/mix-critics.md for thresholds and evidence format:
The planner draws from six move types. See references/mix-moves.md for parameter ranges:
The mix engine works in two modes:
Call get_capability_state to check which mode is active before starting the loop.
Beyond get_master_spectrum / get_master_rms / get_detected_key, the analyzer domain exposes six more measurements that give finer evidence than the 9-band spectrum alone. Use them when the standard snapshot is too coarse for the move you are evaluating:
get_spectral_shape — centroid, spread, skewness, kurtosis, rolloff, flatness, crest. Use for tonal balance judgments ("is this bright?", "is the energy concentrated or spread?") that 9 discrete bands cannot describe.get_mel_spectrum — perceptual mel-band energies. Use when an EQ move needs to be evaluated against how the change is heard, not against linear-frequency bin energies.get_chroma — 12-bin pitch-class energy. Use to detect harmonic clashes or to confirm a key without trusting get_detected_key alone.get_onsets — transient detection. Use for groove / rhythm evaluations where you need to know when hits land, not just how loud the average is.get_novelty — spectral change score with boundary flag. Use to confirm an arrangement boundary actually creates a perceived event, or to detect static sections that need disruption.get_momentary_loudness — momentary LUFS + true-peak dBTP. Use during mastering moves where peak/RMS is insufficient and EBU R128 is the gauge.All six are bridge-dependent — they return helpful errors if the analyzer is not on master. They do not replace the before/after snapshot pattern; they enrich what "snapshot" means when the move warrants it.
npx claudepluginhub dreamrec/livepilot --plugin livepilotAnalyzes audio mix layers for frequency balance, gain levels, and effects usage using DJ Claude tool. Provides suggestions for improving the mix.
This skill should be used when the user asks to "mix", "balance levels", "set volume", "pan a track", "EQ", "compress", "sends", "routing", "master volume", "gain staging", "sidechain", or wants to perform mixing operations in Ableton Live.
Professional mixing methodology for audio engineering. Guides through pre-mix analysis, phase checking, gain staging, EQ decisions, compression selection, spatial processing, and automation. Encodes the decision-making process of a senior mix engineer backed by Phantom MCP measurement tools. Use this skill whenever the user wants to mix stems or tracks, balance a mix, make EQ or compression decisions, set up signal chains, choose compressor types, solve frequency conflicts between instruments, set up spatial processing (reverb, delay, panning), automate volume or effects, or compare their mix against a reference. Also use when the user mentions muddy mixes, harsh frequencies, buried vocals, kick/bass conflicts, or any mixing problem -- even if they don't say "mix" explicitly.