Skip to content

SpectrogramViewer

Spectrogram viewer canvas controller and inspector.

new SpectrogramViewer(
canvas: HTMLCanvasElement,
viewport: IViewportController,
source: AudioSource,
options?: Partial<SpectrogramConfig>): SpectrogramViewer;
ParameterType
canvasHTMLCanvasElement
viewportIViewportController
sourceAudioSource
options?Partial<SpectrogramConfig>

SpectrogramViewer

canvasToTimeFrequency(x: number, y: number): object;

Converts canvas pixel coordinates to time (seconds) and frequency (Hz).

ParameterType
xnumber
ynumber

object

frequency: number;
time: number;

ISpectrogramViewer.canvasToTimeFrequency


clearCache(): void;

Clears cached STFT tiles from memory.

void

ISpectrogramViewer.clearCache


destroy(): void;

Disposes the renderer, WebGL resources, and event listeners.

void

ISpectrogramViewer.destroy


getCacheStats(): CacheStats;

Returns current STFT tile cache statistics.

CacheStats

ISpectrogramViewer.getCacheStats


getCanvas(): HTMLCanvasElement;

Returns the bound HTML canvas element.

HTMLCanvasElement

ISpectrogramViewer.getCanvas


getConfig(): ResolvedSpectrogramConfig;

Returns the resolved spectrogram configuration options.

ResolvedSpectrogramConfig

ISpectrogramViewer.getConfig


getFrequencyBounds(): object;

Returns the full available frequency bounds in Hz.

object

maxFrequency: number;
minFrequency: number;

ISpectrogramViewer.getFrequencyBounds


getFrequencyScale(): FrequencyScale;

Returns the active frequency scale (linear, log, or mel).

FrequencyScale

ISpectrogramViewer.getFrequencyScale


getNyquist(): number;

Returns the Nyquist frequency in Hz.

number

ISpectrogramViewer.getNyquist


getProfileStats(): SpectrogramProfileStats;

SpectrogramProfileStats


getRendererKind(): RendererKind;

Returns the active rendering engine (webgl2 or canvas2d).

RendererKind

ISpectrogramViewer.getRendererKind


getSource(): AudioSource;

Returns the active audio source.

AudioSource

ISpectrogramViewer.getSource


getStatus(): SpectrogramStatus;

Returns the current render status.

SpectrogramStatus

ISpectrogramViewer.getStatus


getTileStates(): TileStateInfo[];

Returns status information for all computation tiles.

TileStateInfo[]

ISpectrogramViewer.getTileStates


getViewport(): ViewportConfig;

Returns the visible time and frequency viewport.

ViewportConfig

ISpectrogramViewer.getViewport


getViewportController(): IViewportController;

Returns the bound viewport controller.

IViewportController

ISpectrogramViewer.getViewportController


on<Name>(name: Name, handler: (event: SpectrogramEvents[Name]) => void): () => void;

Subscribes to spectrogram events.

Type Parameter
Name extends keyof SpectrogramEvents
ParameterType
nameName
handler(event: SpectrogramEvents[Name]) => void

() => void

ISpectrogramViewer.on


queryCanvasPoint(input: object): Promise<SpectrumPoint>;

Queries the spectral intensity value at canvas pixel coordinates.

ParameterTypeDescription
input{ channel?: number; mode?: ValueMode; x: number; y: number; }Canvas X and Y in pixels, optional channel, and value mode.
input.channel?number-
input.mode?ValueMode-
input.xnumber-
input.ynumber-

Promise<SpectrumPoint>

ISpectrogramViewer.queryCanvasPoint


queryFrame(input: object): Promise<SpectrumSlice>;

Queries spectral magnitudes for a specific STFT frame index.

ParameterTypeDescription
input{ channel?: number; frameIndex: number; mode?: ValueMode; }Frame index, optional channel, and value mode.
input.channel?number-
input.frameIndexnumber-
input.mode?ValueMode-

Promise<SpectrumSlice>

ISpectrogramViewer.queryFrame


queryPoint(input: object): Promise<SpectrumPoint>;

Queries the spectral intensity value at a specific time and frequency.

ParameterTypeDescription
input{ channel?: number; frequency: number; mode?: ValueMode; time: number; }Time in seconds, frequency in Hz, optional channel, and value mode.
input.channel?number-
input.frequencynumber-
input.mode?ValueMode-
input.timenumber-

Promise<SpectrumPoint>

ISpectrogramViewer.queryPoint


querySpectrum(input: object): Promise<SpectrumSlice>;

Queries spectral magnitudes across all frequency bins at a specific timestamp.

ParameterTypeDescription
input{ channel?: number; mode?: ValueMode; time: number; }Target time in seconds, optional channel, and value mode.
input.channel?number-
input.mode?ValueMode-
input.timenumber-

Promise<SpectrumSlice>

ISpectrogramViewer.querySpectrum


render(): Promise<void>;

Renders the current spectrogram viewport asynchronously.

Promise<void>

ISpectrogramViewer.render


requestRender(): void;

Schedules a render on the next animation frame.

void

ISpectrogramViewer.requestRender


setConfig(input: Partial<SpectrogramOptions>): void;

Alias for updateConfig.

ParameterType
inputPartial<SpectrogramOptions>

void

ISpectrogramViewer.setConfig


setPlayheadTime(time: number | undefined): void;
ParameterType
timenumber | undefined

void


setSource(source: AudioSource): void;

Updates the audio source and invalidates the tile cache.

ParameterType
sourceAudioSource

void

ISpectrogramViewer.setSource


setViewport(vp: Partial<ViewportConfig>): void;
ParameterType
vpPartial<ViewportConfig>

void

ISpectrogramViewer.setViewport


timeFrequencyToCanvas(time: number, frequency: number): object;

Converts time (seconds) and frequency (Hz) to canvas pixel coordinates.

ParameterType
timenumber
frequencynumber

object

x: number;
y: number;

ISpectrogramViewer.timeFrequencyToCanvas


updateConfig(input: Partial<SpectrogramOptions>): void;

Updates configuration options and triggers a re-render.

ParameterType
inputPartial<SpectrogramOptions>

void

ISpectrogramViewer.updateConfig