Skip to content

ISonoscope

Central coordinator managing audio playback, viewport state, and viewer creation.

PropertyModifierTypeDescription
sourcereadonlyAudioSourceActive audio source.
viewportreadonlyIViewportControllerViewport controller managing time and frequency axes.
attachAudio(audio: HTMLAudioElement): void;

Connects an HTML audio element to synchronize playhead and time updates.

ParameterType
audioHTMLAudioElement

void


attachNavigation(container: HTMLElement, options?: NavigationOptions): () => void;

Attaches pan and zoom navigation handlers to a DOM element.

ParameterTypeDescription
containerHTMLElementDOM element to receive pointer and wheel events.
options?NavigationOptionsGesture configuration.

Unsubscribe function that removes event listeners.

() => void


attachPlayhead(container: HTMLElement, options?: PlayheadOverlayOptions): () => void;

Attaches a synchronized playback playhead overlay to a DOM container.

ParameterTypeDescription
containerHTMLElementDOM element that will host the playhead line.
options?PlayheadOverlayOptionsVisual styling options for the playhead overlay.

Cleanup function that removes the playhead element and unsubscribes event listeners.

() => void


destroy(): void;

Disposes the coordinator, audio listeners, and animation loops.

void


detachAudio(): void;

Disconnects the HTML audio element.

void


fork(options?: Partial<SonoscopeOptions>): ISonoscope;

Creates an independent coordinator sharing the same audio source.

ParameterType
options?Partial<SonoscopeOptions>

ISonoscope


getAudio(): HTMLAudioElement | undefined;

Returns attached HTML audio element if present.

HTMLAudioElement | undefined


getClipBounds(): object;

Returns active clip start and end boundaries in seconds.

object

optional clipEnd?: number;
optional clipStart?: number;

getCurrentTime(): number;

Returns current audio playback position in seconds.

number


getDuration(): number;

Returns total audio duration in seconds.

number


getFollowPlayback(): FollowPlaybackMode;

Returns active playback follow mode.

FollowPlaybackMode


getNyquist(): number;

Returns Nyquist frequency (sampleRate / 2) in Hz.

number


getSampleRate(): number;

Returns audio sample rate in Hz.

number


getViewport(): ViewportState;

Returns the current viewport state.

ViewportState


getViewportController(): IViewportController;

Returns the underlying viewport controller.

IViewportController


isPlaying(): boolean;

Returns true if audio playback is currently active.

boolean


on<K>(event: K, handler: (e: SonoscopeEvents[K]) => void): () => void;

Subscribes to coordinator events.

Type Parameter
K extends keyof SonoscopeEvents
ParameterType
eventK
handler(e: SonoscopeEvents[K]) => void

() => void


pan(deltaSeconds: number, source?: string): void;

Shifts viewport time range by a delta in seconds.

ParameterType
deltaSecondsnumber
source?string

void


panFrequency(deltaHz: number, source?: string): void;

Shifts viewport frequency range by a delta in Hz.

ParameterType
deltaHznumber
source?string

void


panTo(startTime: number, source?: string): void;

Moves viewport start to a specific timestamp in seconds.

ParameterType
startTimenumber
source?string

void


seek(time: number): void;

Seeks audio and updates playhead timestamp in seconds.

ParameterType
timenumber

void


setClipBounds(bounds: object): void;

Updates audio clip boundaries in seconds without re-creating the source.

ParameterType
bounds{ clipEnd?: number; clipStart?: number; }
bounds.clipEnd?number
bounds.clipStart?number

void


setFollowPlayback(mode: FollowPlaybackMode): void;

Sets playback follow mode (page, smooth, or off).

ParameterType
modeFollowPlaybackMode

void


setSource(source: AudioSource): void;

Replaces the audio source and updates all attached viewers.

ParameterType
sourceAudioSource

void


setViewport(vp: Partial<ViewportConfig>, source?: string): void;

Updates viewport coordinates.

ParameterType
vpPartial<ViewportConfig>
source?string

void


updateViewport(vp: Partial<ViewportConfig>, source?: string): void;

Alias for setViewport.

ParameterType
vpPartial<ViewportConfig>
source?string

void


zoom(
factor: number,
centerTime?: number,
source?: string): void;

Zooms the time axis.

ParameterType
factornumber
centerTime?number
source?string

void


zoomBoth(
factor:
| number
| {
frequency: number;
time: number;
},
center?: object,
source?: string): void;

Zooms both time and frequency axes.

ParameterType
factor| number | { frequency: number; time: number; }
center?{ frequency?: number; time?: number; }
center.frequency?number
center.time?number
source?string

void


zoomFreq(
factor: number,
centerFrequency?: number,
source?: string): void;

Alias for zoomFrequency.

ParameterType
factornumber
centerFrequency?number
source?string

void


zoomFrequency(
factor: number,
centerFrequency?: number,
source?: string): void;

Zooms the frequency axis around an optional center in Hz.

ParameterType
factornumber
centerFrequency?number
source?string

void


zoomTime(
factor: number,
centerTime?: number,
source?: string): void;

Zooms the time axis.

ParameterType
factornumber
centerTime?number
source?string

void