muvid.choreo.tools¶
The SSOT verbs for the choreo subgenre.
Plain functions, JSON-able arguments in, JSON-able dict out, and
deliberately agnostic about CLI/MCP/HTTP/agent — the same shape as
muvid.lyricvid.tools. The CLI (python -m muvid.choreo) and any
MCP or HTTP surface call these, so there is one implementation and one
place a behaviour changes.
Nothing here imports numpy or a renderer at module scope, so
import muvid.choreo.tools stays cheap and safe.
Functions
|
Every installed subgenre, without importing any renderer. |
|
This subgenre's manifest, as a catalogue would show it. |
The closed vocabularies a treatment may draw on. |
|
JSON Schema for a treatment spec. |
|
|
Hear a song the way the archetypes will: events, tempo, sections. |
|
Validate a treatment and return the repaired version alongside. |
|
Render a choreo video. |
- muvid.choreo.tools.analyze_song(audio, *, beat_source='auto', max_events=200)[source]¶
Hear a song the way the archetypes will: events, tempo, sections.
The full event list is what
events.jsoncarries after a render; this verb truncates it tomax_eventsso a terminal or an agent gets the shape without the flood.
- muvid.choreo.tools.manifest()[source]¶
This subgenre’s manifest, as a catalogue would show it.
>>> manifest()['slug'] 'choreo'
- muvid.choreo.tools.render_choreo(audio, output, *, cover=None, treatment=None, archetype=None, seed=0, beat_source='auto', strict=False, width=1920, height=1080, fps=30, workdir=None)[source]¶
Render a choreo video. The one verb that produces a file.
- muvid.choreo.tools.treatment_schema()[source]¶
JSON Schema for a treatment spec.
>>> treatment_schema()['type'] 'object'