ue5-metasound-dsp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ue5-metasound-dsp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Design MetaSounds audio graphs: choose nodes, wire signal chains, configure DSP parameters, and generate Builder API command sequences.
Audio, Trigger, Float, Int32, Bool, Time, String, WaveAsset, UObject, Enum (+ Array variants)
Type rules: Audio-rate cannot connect to Float. Use correct node variant (e.g., Multiply (Audio) vs Multiply (Float)).
| Type | Use | Interface |
|---|---|---|
| Source | Standalone playable asset | UE.Source.OneShot or MetaSound |
| Patch | Reusable subgraph (no play) | Custom |
| Preset | Parameter overrides of existing Source/Patch | Inherits parent |
MetaSound — Standard audio outputUE.Source.OneShot — OnPlay trigger in, OnFinished trigger outUE.Attenuation — Distance input for volume falloffUE.Spatialization — Azimuth/Elevation for 3D positioningSine, Saw, Square, Triangle, Noise, LFO, Additive Synth, SuperOscillator, WaveTable, Perlin Noise
Wave Player (mono), Stereo Wave Player, with loop/pitch shift/concatenation
AD Envelope (Audio-rate), AD Envelope (Float), ADSR Envelope, Crossfade, WaveTable Envelope
Biquad Filter, State Variable Filter, Dynamic Filter, Ladder Filter, One-Pole HPF, One-Pole LPF, Band Splitter, Bitcrusher
Delay, Stereo Delay, Pitch Shift, Diffuser, Grain Delay, Flanger
Compressor, Limiter
Add, Subtract, Multiply, Mix — all have Primary Operand + Operand pins
Add, Subtract, Multiply, Divide, Modulo, Map Range, Clamp, InterpTo, Linear To Log Frequency
Accumulate, Any, Compare, Control, Counter, Delay, Filter, Gate, Once, OnThreshold, OnValueChange, Pipe, Repeat, Route, Sequence
ITD Panner, Stereo Panner, Mid-Side Encode/Decode, Doppler Pitch Shift
Frequency↔MIDI, MIDI Quantizer, Scale to Note Array, BPM to Seconds, Metronome, Quartz Clock
Plate Reverb, Ring Modulator, WaveShaper, Chorus, Phaser
Crossfade, Envelope Follower, Wave Writer, Random Get, Trigger On Threshold
SID Oscillator, SID Envelope, SID Filter, SID Voice, SID Chip
Sine → Multiply(Audio) × AD Envelope → Out MonoSaw → Biquad Filter(LP) → Multiply × ADSR → Out Mono
↑ Cutoff FrequencySine(f) + Sine(2f) + Sine(3f) → Add → Multiply × Envelope → OutOnPlay → Wave Player → Biquad Filter → Compressor → Out
↑ Pitch Shift for variationLFO → Map Range(0-1 → 200-2000) → Biquad Filter Cutoff| Node | Inputs | Outputs |
|---|---|---|
| Sine/Saw/Square/Triangle | Frequency, Phase Offset, Glide, Bias | Audio |
| Noise | Seed | Audio |
| AD Envelope | Trigger, Attack Time, Decay Time | Out Envelope |
| ADSR Envelope | Trigger Attack, Trigger Release, Attack Time, Decay Time, Sustain Level, Release Time | Out Envelope |
| Biquad Filter | In, Cutoff Frequency, Bandwidth, Filter Type | Out |
| State Variable Filter | In, Cutoff Frequency, Resonance, Band Stop Gain | HPF, LPF, BPF, BSF |
| Wave Player | Play, Stop, Wave Asset, Start Time, Loop, Pitch Shift | Out Audio, On Finished |
| Multiply/Add (Audio) | Primary Operand, Operand | Out |
| Map Range | Value, In Range A, In Range B, Out Range A, Out Range B, Clamped | Out |
| InterpTo | Target, Current, Speed, Interp Delta Time | Value |
| Clamp | In, Min, Max | Value |
| Compressor | Audio, Ratio, Threshold dB, Attack Time, Release Time, Sidechain, Wet, Knee | Audio |
| ITD Panner | Audio, Angle, Interaural Delay, Head Width | Left, Right |
| Trigger Repeat | Start, Stop, Period | RepeatOut |
| Trigger Sequence | Trigger, Reset | Out 0, Out 1, ... |
Full reference: scripts/ms_node_specs.json (93 nodes, 464 pins from Epic docs)
CreateSourceBuilder, CreatePatchBuilder, AddNode, FindNodeInputHandle, FindNodeOutputHandle, ConnectNodes, SetNodeInputDefault, Audition, BuildToAsset
AddGraphInput, AddGraphOutput, RemoveGraphInput, RemoveGraphOutput, GetGraphInputNames
AddInterface, RemoveInterface, IsInterfaceDeclared
AddGraphVariable, AddVariableGetNode, AddVariableSetNode, AddVariableGetDelayedNode
ConvertToPreset, ConvertFromPreset
SetLiveUpdatesEnabled
| Template | Nodes | Pattern |
|---|---|---|
| gunshot | 7 | Random → WavePlayer → Filter → Envelope |
| footsteps | 8 | Surface switch → per-surface chains |
| ambient | 9 | Looped layers + random details + LFO |
| spatial | 6 | ITD Panner + distance processing |
| ui_sound | 5 | Sine + AD Envelope (procedural) |
| weather | 10 | State-driven + crossfade + dynamic filter |
| vehicle_engine | 14 | Trigger Sequence → layered Wave Players |
| sfx_generator | 25 | 7-stage synth (Gen→Spectral→Filter→Amp→FX) |
| preset_morph | 8 | Morph 0-1 → MapRange → filter params |
| macro_sequence | 12 | Graph variables → InterpTo → filter |
| sid_bass/lead/chip_tune | 5-8 | SID nodes for chiptune |
| wind/snare | 6-8 | From Epic tutorial exports |
Templates at: src/ue_audio_mcp/templates/
{
"type": "source",
"interface": "MetaSound",
"nodes": [
{"id": "osc1", "class": "Sine", "defaults": {"Frequency": 440.0}},
{"id": "env1", "class": "AD Envelope", "defaults": {"Attack Time": 0.01, "Decay Time": 0.5}}
],
"connections": [
{"from": "osc1:Audio", "to": "env1:In"}
],
"inputs": [
{"name": "Frequency", "type": "Float", "target": "osc1:Frequency"}
],
"outputs": [
{"name": "Out Mono", "type": "Audio", "source": "env1:Out Envelope"}
]
}Validated by 7-stage validator: required fields, asset_type, interfaces, node types, pin existence, type compatibility, required inputs, interface completeness.
SetNodeLocation() for editor layout visibilityms_validate_graph before sending to Builder APICurrent default valuems_node_specs.jsonNamespace::Name::Variant for direct lookupsrc/ue_audio_mcp/knowledge/metasound_nodes.py (144 nodes, 798 pins)src/ue_audio_mcp/templates/ (22 JSON graphs)src/ue_audio_mcp/knowledge/graph_schema.pysrc/ue_audio_mcp/tools/metasounds.pyscripts/ms_node_specs.json$ARGUMENTS
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.