SpectrumFrame
One analysed moment of audio, ready to draw.
It is published whole and never written afterwards: every analysis allocates new arrays, so a frame a drawing holds does not change underneath it. Several views share one frame, and the array properties are plain arrays for compatibility, so treat them as read-only and copy an array before changing it. Most values are in 0..1. The waveforms (scope, scopeLeft and scopeRight) are raw amplitude with nominal full scale one, and ptsMicros, bpm, trend and beatInSeconds carry their own units.
power contains raw unweighted measurements, programme contains independently timed momentary K-weighted loudness, and drivers contains display heights under one shared gain. Legacy relative level names alias those same heights; no band or drawing has a private gain.
Properties
Local analysis continuity within generation, including queue gaps and format changes.
Whether the short analysis window is available. Silence is AnalysisAvailability.Ready.
Shared-gain fast display height per ERB band, low frequency first.
Compatibility alias of bands, with the same gain and smoothing.
Scalar onset energy projection, from hits only. Player views project delivered events; a raw analysis reports newly detected hits whose individual times are in detections, not ptsMicros. A detection below AudioDetection.HIT_CONFIDENCE stays in events and in detections with its own confidence, and is not projected here.
Compatibility projection of usable beat support, or zero. Diagnostic scores are in rhythm.
Seconds until the next beat is expected, or -1 with no tempo.
Short-term pitch-class profile from the long key window, C first, each pitched analysis peaking at one. It decays to zero during unpitched audio.
Original detector publication and completion watermark, before per-view delivery.
Fast/slow/peak energy heights with one shared bounded gain and saturation diagnostics.
Ordered events delivered once to this view, including per-event lateness and discard counts.
Continuous audio identity, matching the player's audible clock for player-fed analysis.
Whether ptsMicros is known. Zero and negative timestamps can both be valid.
The key supported by pitched audio, separately timed, or null when unknown.
The key's confidence, 0 to 1, and zero while the key is unknown.
Rate shared by clocks and continuous motion; attacks remain distinct from section mood.
How hard the hit actually was, rather than how surprising. A soft hit reads soft.
The falling cap above each bar.
Legacy phrase phase. The live pulse tracker does not establish phrases and publishes zero.
Calibrated short-window power, without display scaling. Null until a complete window exists.
Independently timed ungated 400 ms programme measurement, including unavailable/warmup.
The media timestamp of the audio this was measured from. Consult hasTimestamp for validity.
Pulse rate and phase evidence, separately timed and unavailable until analysis is ready.
The newest slice of the waveform, for an oscilloscope.
The newest samples of the left channel, raw. Plotted against scopeRight this is what a vectorscope shows: a line for mono, an open shape for a wide mix. Mono audio gives scope.
Exact mono trace interval and trigger, null before a complete input window.
The newest samples of the right channel. See scopeLeft.
Exact paired trace interval and trigger, null before a complete input window.
This analysis's structural publication and watermark, separate from the transient detections.
Recommended trace amplitude multiplier, from the same gain as every energy driver.
Functions
The bar value that fraction of the bars are below, using the relative bars.