muvid.footage.explain¶
Why each cut is where it is — the post-mortem of an edit, in plain words.
A person watching an edit asks “why did it cut THERE?”, “why this clip?”, “why is this one slightly off the beat?”. This module answers from the edit itself and the same measurements the cutting used — the song’s beat grid and sections, each video’s picture signal — so the answer is about the edit as it stands now (a cut a person changed is explained as changed), and the screen, the assistant and a reader all get one record.
Each cut gets a few sentences in a fixed order — where and on what → *how the picture
changes* → what picture and why that stretch → what is worth a look — plus the
facts behind them (song times, the beat it lands on, the fade’s real start) and
flags for the ones worth a look: straddles_the_beat, off_the_beat,
long_hold, repeated_stretch. Every clock time in a sentence is also listed in
times with its second, so a screen can turn it into a link that seeks the player.
Plain nouns only (beat, bar, fade, picture, photo, clip); clock times, never floats. The explanation says what the system did by default when that is the reason — the post-mortem is only useful if it admits its defaults.
Pure: the measurements come in as arguments (explain()); the service builds
them (service.explain_edit).
Module Attributes
What each flag says, for a chip. |
Functions
|
The post-mortem of an edit: |
|
|
- muvid.footage.explain.FLAG_WORDS = {'long_hold': 'long hold', 'off_the_beat': 'not on a beat', 'repeated_stretch': 'shown before', 'straddles_the_beat': 'starts before the beat'}¶
What each flag says, for a chip.
- muvid.footage.explain.clock(t)[source]¶
72.41->"1:12.4"— how a time is said.- Return type:
>>> clock(72.41), clock(5.0) ('1:12.4', '0:05.0')
- muvid.footage.explain.explain(entries, *, analysis, song_duration, clips, alignments={}, envelope_of=<function <lambda>>, selection={}, grid_note=None, window=None, scope=None)[source]¶
The post-mortem of an edit:
{summary, times, cuts: [...]}.entriesare the edit’s validatedEdlEntrycuts;analysisthe song’s (extended) beat grid and sections;clipsmaps a clip id to{name, kind ('video'|'still'), role};alignmentsthe clip placements (for synced cuts);envelope_of(clip_id)a video’s picture signal (muvid.footage.music_cut.Envelope) orNone;selectionhow the edit was made (pace,style,strategy).window(song seconds) keeps only the cuts that overlap it; the summary is of the whole edit — or ofscope, the part of the song a trimmed edit covers (itsspan), so the black outside it is not counted as shots.- Return type: