mix

Mixing assistant — analyze and balance track levels, panning, and sends

Help the user mix their session using the V2 orchestration pipeline.

Orchestration Flow

  1. Session kernelget_session_kernel(request_text=<user's request>, mode="improve") for the full turn snapshot
  2. Routeroute_request(<user's request>) to get engine routes + semantic move recommendations
  3. Ensure analyzer — if get_master_spectrum errors, load it: find_and_load_device(track_index=-1000, device_name="LivePilot_Analyzer"). If bridge disconnected, try reconnect_bridge.

Analysis Phase

  1. Quick statusget_mix_summary for track count, dynamics, stereo, issues
  2. Run criticsget_mix_issues for problems. get_masking_report for frequency collisions.
  3. Spectral checkget_master_spectrum for 8-band balance. Genre targets:
    • Hip-hop: sub dominant, centroid 400-800 Hz
    • Electronic: balanced, centroid 800-1500 Hz
    • Ambient: mid-focused, low sub, centroid 500-1000 Hz
  4. Musical intelligencedetect_role_conflicts to find tracks competing for the same space. detect_repetition_fatigue if arrangement feels stale.

Decision Phase

  1. Propose semantic movespropose_next_best_move(request_text=<user's request>) for ranked suggestions (e.g., make_punchier, widen_stereo, tighten_low_end)
  2. Preview chosen movepreview_semantic_move(move_id) to see the full compile plan before executing
  3. Rank by taste — if user has history, rank_moves_by_taste(move_specs) to personalize ordering

Execution Phase

  1. Apply with approvalapply_semantic_move(move_id, mode="improve") returns the compiled plan. Present it to the user: "I'd suggest: push Drums to 0.75, pull Pad to 0.25. Shall I do it?"
  2. Verify after EVERY change — read value_string in response, call get_track_meters(include_stereo=true), check no track went silent
  3. Capture + analyzecapture_audio then analyze_loudness for LUFS/LRA, analyze_spectrum_offline for centroid/balance
  4. Evaluateevaluate_mix_move with before/after snapshots. If keep_change is false, undo immediately.

Summary

  1. Report — "What I did / what improved / what I protected / what remains"
  2. Session memoryadd_session_memory for notable decisions
  3. Taste update — successful moves update the TasteGraph automatically

For deeper critic-driven iterative improvement, use the livepilot-mix-engine skill.

Branch-Native Exploratory Mode

When the user asks for multiple options or is vague about direction ("try a few things", "I don't know what's wrong — just make it better", "what would you do?"), use Flow B from livepilot-core SKILL.md. Build 2-3 create_experiment seeds with different angles — for example one semantic_move seed for a conventional fix, one freeform seed for an unconventional approach (sidechain from an unexpected source, mid/side EQ instead of stereo EQ, etc.), one synthesis seed if the root cause is instrument-level (PR9+). Set get_session_kernel(freshness=0.7) to nudge branches away from the safest option.