livepilot-sound-design-engine — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited livepilot-sound-design-engine (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The sound design engine analyzes synth patches, identifies timbral weaknesses, and iteratively refines them through a measured critic loop. Every change is evaluated against the before state.
For broad quality requests, this skill is the primary route. "More punch", "warmer", "darker", "brighter", "less flat", "more alive", "more texture", and "more character" should become source/device/parameter decisions before they become volume moves.
When the analyzer is available, read character, not just level:
get_master_spectrum for the 9-band contourget_spectral_shape for centroid, flatness, crest, rolloff, and brightness/noise shapeget_mel_spectrum when EQ or source choice needs perceptual detailget_onsets for transient/envelope decisionsget_novelty for movement/staticness decisionsget_momentary_loudness only for safety/headroom/loudness contextTranslate those measurements into musical moves:
Before producing ANY creative response, query the user's atlas overlays. The corpus contains 337 entries across 3 namespaces, plus 3,917 parameter-level JSON sidecars — far richer than anything inferable from training data alone.
Query order:
Multi-grain traversal:
When an aesthetic-level query lands a pack-level result, AUTO-DRILL: pack → its notable_presets → those preset macro states → load via load_browser_item. Don't stop at "I found a relevant pack" — drill to the actual preset/parameter level the user can immediately use.
# Example — agent received "design a BoC pad — sublime, decayed, harmonic warmth"
hit = extension_atlas_search(namespace="packs", query="BoC sublime decayed pad harmonic warmth")
# → boc_decayed_pad cross-pack-workflow + inspired_by_nature pack
workflow = extension_atlas_get("packs", "boc_decayed_pad")
# → reveals signal flow + which notable_presets to start from
drone_lab = extension_atlas_get("packs", "drone_lab")
# → notable_presets reveals Razor Wire Drone with macros Filter Control=108, Movement=53...
# Now propose the patch with concrete preset names + macro starting values, not vague descriptionsWhen the user mentions a producer or pack by name:
boc_decayed_pad cross-pack-workflow + inspired_by_nature packpitchloop89 + granulator_iii + 2 Henke cross-pack workflowsmica_levi_orchestral_dread workflow + the orchestral suite packsdrone_lab pack + 4 Drone Lab demo_project entriesThe atlas knows the user's installed library at parameter depth. Producer-anchor queries land specific moves, not vague descriptions.
Anti-pattern surfacing:
Every pack entry has an anti_patterns body field listing "don't reach for this when X." Surface the relevant anti-pattern when proposing a move so the user knows the move's domain. (E.g. "Drone Lab is sustain-only — don't use for percussive content.")
For deliberately rule-breaking creative requests ("eclectic", "ignore the limits", "weird combo", "mix incompatible aesthetics"): enter Eclectic Mode inside this sound-design loop. Anti-patterns become prompt tension rather than guardrails: keep hard safety and protected-user constraints, then pair one normally-avoided source or processor with one identity-preserving anchor. Do not route to a private or missing skill.
Call get_patch_model(track_index) to build a PatchModel for the target track. The PatchModel maps every device on the track into typed blocks (oscillator, filter, envelope, lfo, saturation, spatial, effect) and classifies each as controllable or opaque.
Read the response carefully:
blocks: ordered list of processing blocks with types and parameter namescontrollable_params: parameters you can modify via set_device_parameteropaque_blocks: third-party plugins where parameters may not map cleanlymodulation_sources: detected LFOs, envelopes, and macro mappingssignal_flow: how blocks connect (serial, parallel, or rack chains)See references/patch-model.md for the full PatchModel structure and native device block map.
Call analyze_sound_design(track_index) to run all sound design critics against the patch. The response contains an issues array with critic, severity, block, and evidence.
Five critics run during analysis. See references/sound-design-critics.md for thresholds:
Pick the highest-severity issue. Call plan_sound_design_move(track_index) with the issue. The planner returns a single intervention:
move_type: one of the move vocabulary entriestarget_device: device index on the tracktarget_parameter: parameter name or indextarget_value: the new valuerationale: why this move addresses the issueMove vocabulary:
get_device_parameters(track_index, device_index) — save current parameter stateget_master_spectrum plus the relevant character streams above — save spectral snapshot (if analyzer available)Apply the planned move using the appropriate tool:
set_device_parameter for direct parameter changes (filter cutoff, LFO rate, oscillator shape)toggle_device for enabling/disabling processing blocksbatch_set_parameters when the move requires coordinated changes (e.g., LFO depth + rate together)set_clip_automation for parameter automation movesfind_and_load_device when the fix requires adding a new device (e.g., adding an Auto Filter)Execute one move at a time. Verify before continuing.
Repeat the same measurements:
get_device_parameters(track_index, device_index) — confirm the change took effectget_master_spectrum plus the same character streams used before — save post-change spectral snapshotCall evaluate_move(goal_vector, before_snapshot, after_snapshot) where goal_vector is the compiled goal from Step 1 and snapshots contain {spectrum: {...}, rms: float, peak: float}. Read:
keep_change (bool): whether the change improved the soundscore (0.0-1.0): quality improvement magnitudetimbral_delta: what changed spectrallyexplanation: human-readable summaryIf keep_change is false, call undo(). Explain what was tried and why it did not improve the sound.
If keep_change is true, report the improvement. If score > 0.7, consider calling memory_learn(name="...", type="device_chain", qualities={"summary": "..."}, payload={...}) to save the technique.
Return to Step 2 only when the user asked for a deep refinement pass. In normal mode, stop after one meaningful character-improving move and summarize what changed plus the next optional direction. Avoid long loops of small parameter nudges.
Third-party AU/VST plugins may report as opaque in the PatchModel:
get_plugin_parameters(track_index, device_index) — some plugins expose parameters through the hostparameter_count <= 1, the plugin is dead or unresponsive. Call delete_device and suggest a native alternativemap_plugin_parameter to identify them by earget_sound_design_issues(track_index) for a diagnostic without executing fixesget_patch_model(track_index) then walk_device_tree(track_index) for full device chain visibilitycontrollable_params list from the PatchModel responseWhen adding processing blocks, prefer native Ableton devices for controllability:
Always search_browser before loading — never guess device names.
Wavetable / Operator / Analog cover most subtractive and FM work, but several installed packs ship M4L instruments that produce sounds those three architecturally cannot. Reach for them when the standard list is the wrong starting point:
These do not replace the modulation_injection / filter_shaping / parameter_automation move vocabulary. They change what "the source" can be — which is upstream of the critic loop.
Consult references/sound-design-deep.md for advanced techniques when working on creative requests. Key principles:
Every static sound can become alive with modulation below conscious perception:
Reverb and delay are not decorations — in dub/minimal they ARE the composition:
Sidechain compression is a modulation source, not just a mix tool:
At any moment, each frequency band should have one primary element. When one opens up, another pulls back:
This is mix engineering as composition.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.