Official plugin registry and plugin collection for pymss.
This repo does two things:
registry.json— the catalogpymss install <name>fetches. It maps short plugin names to their source (git URL, or a subdirectory of this repo).plugins/— the official plugins themselves, one subdirectory per plugin.
pymss install loudnorm # resolves via registry.json
pymss plugins list # show installed plugins + load status| Name | Capability | Description |
|---|---|---|
loudnorm |
lufs_normalize |
LUFS loudness normalization |
timing |
pitch_shift, time_stretch |
Pitch-shift / time-stretch (librosa) |
dynamics |
compressor, limiter, expander, multiband_compressor, deesser |
Dynamics processing (pedalboard) |
spectral |
highpass/lowpass/bandpass/notch, peak_eq, lowshelf/highshelf, parametric_eq, baxandall_eq |
Filters and parametric EQ (scipy) |
analysis |
measure_lufs, measure_true_peak, measure_rms, measure_dynamic_range, spectrum_analyze |
Read-only audio measurement (pyloudnorm) |
A plugin is a Python package that calls pymss.plugins.register_capability (and optionally register_node / register_cli) at import time. Drop it under plugins/<name>/ with an __init__.py, add an entry to registry.json, and send a PR.
Minimal plugin:
# plugins/myplugin/__init__.py
from pymss.plugins import register_capability
@register_capability("myplugin_thing")
def thing(audio, sample_rate, strength=0.5):
... # numpy audio in, numpy audio outSee plugins/loudnorm for a full example with a capability, a workflow node, and dependency declaration.
Each plugin declares its own dependencies in its pyproject.toml (or requirements.txt). pymss does not auto-install them — install them yourself, e.g. pip install pyloudnorm. A plugin that fails to import reports a clear error via pymss plugins list.