Skip to main content

Module spread

Module spread 

Source
Expand description

The repeat-render spread: the noise floor that every later comparison cites.

Renders of one preset differ a little. On one Vital instance each render differs from the one before, and a fresh instance renders bit-identically to any other fresh instance: an ignored Vital test pins both. So draw renders the SPREAD_RUNS draws of a spread in sequence on one instance and refuses a set with a repeated render.

For each output the spread is the 95th percentile of the distances over every pair of renders, 190 pairs for 20 renders, in the output’s own unit. The distance of a scalar output is the absolute difference.

A clip compares with the renders by the median of its distances from them. Its tolerance comes from the same median taken for each render against the other renders, so the clip and the renders are measured alike: the tolerance is the median at rank tolerance_rank, which a clip of the same sound exceeds 1 time in 21 for 20 renders. A floor keeps an output that every render repeats from turning the comparison into an equality test.

A recording made elsewhere compares through compare_fitted: one gain matches its level to the renders, and the verdict covers the outputs of the sound’s shape, ClipOutput::SHAPE.

The repository keeps no spread of record. The reference recordings page holds the metrics of each recording.

Structs§

ClipMetrics
What a comparison measures of one clip.
Comparison
How a clip compares with renders of the same preset on one output.
FittedComparison
How a recording compares with renders of the same preset once a gain matches its level to theirs.
SpreadRow
The spread of one output.
SpreadTable
The spread of one preset on one synth build and quality setting.

Enums§

ClipOutput
An output of a clip that a spread covers.
SpreadError
A spread that cannot be measured or compared.

Constants§

COVERAGE_PERCENT
The share of clips of the same sound, in percent, that the tolerance covers.
ENVELOPE_FRAMES_PER_S
The envelope frames per second: one frame is 10 ms.
ENVELOPE_RANGE_DB
The envelope distance counts the frames within this many dB of the loudest frame of either clip.
GAIN_RANGE_DB
A fitted gain beyond this many dB, either way, is a finding to explain: within it a level difference is no fault, since a comparison of two sounds matches their loudness first.
LEVEL_FLOOR_DB
The floor of a tolerance in dB: a level difference below it counts as none.
MIN_RUNS
The fewest renders a spread takes: fewer leave no leave-one-out median of two distances.
NAMED_UNITS
The fields of a layer report that have no unit suffix, with their units.
ONSET_RANGE_DB
A clip starts at its first sample within this many dB of its peak, so a lead-in of silence or latency does not count.
SPREAD_QUANTILE
The quantile of the pairwise distances.
SPREAD_RUNS
How many renders a spread takes.
STATISTIC
The name of the spread statistic, as the spread file records it.
TOLERANCE
The name of the comparison tolerance, as the spread file records it.

Functions§

clip_rows
The spread rows of the clip outputs, one per ClipOutput.
compare
Compares clip with each of renders on every clip output.
compare_fitted
Fits the gain of recording to renders, applies it and compares the result on the ClipOutput::SHAPE outputs.
distinct
Checks that no two renders hold the same samples, by the SHA-256 of each render’s sample rate and samples.
draw
Renders job count times in sequence on one renderer that spawn starts.
envelope_distance
The envelope distance of two clips, in dB.
fit_gain
The gain in dB that matches the level of clip to renders.
lag1_autocorrelation
The lag-1 autocorrelation of values in draw order: the sum of products of each deviation from the mean with the next one, over the sum of squared deviations.
layer_rows
The spread rows of the numbers of layer reports, one report per render.
layer_values
The numbers of a layer report that a spread covers, with their units.
tolerance_rank
The rank, counted from 1 in ascending order, of the leave-one-out median that is the tolerance of count renders: ⌈0.95 (count + 1)⌉, at most count.