ISonoscope
Central coordinator managing audio playback, viewport state, and viewer creation.
Properties
Section titled “Properties”| Property | Modifier | Type | Description |
|---|---|---|---|
source | readonly | AudioSource | Active audio source. |
viewport | readonly | IViewportController | Viewport controller managing time and frequency axes. |
Methods
Section titled “Methods”attachAudio()
Section titled “attachAudio()”attachAudio(audio: HTMLAudioElement): void;Connects an HTML audio element to synchronize playhead and time updates.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
audio | HTMLAudioElement |
Returns
Section titled “Returns”void
attachNavigation()
Section titled “attachNavigation()”attachNavigation(container: HTMLElement, options?: NavigationOptions): () => void;Attaches pan and zoom navigation handlers to a DOM element.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
container | HTMLElement | DOM element to receive pointer and wheel events. |
options? | NavigationOptions | Gesture configuration. |
Returns
Section titled “Returns”Unsubscribe function that removes event listeners.
() => void
attachPlayhead()
Section titled “attachPlayhead()”attachPlayhead(container: HTMLElement, options?: PlayheadOverlayOptions): () => void;Attaches a synchronized playback playhead overlay to a DOM container.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
container | HTMLElement | DOM element that will host the playhead line. |
options? | PlayheadOverlayOptions | Visual styling options for the playhead overlay. |
Returns
Section titled “Returns”Cleanup function that removes the playhead element and unsubscribes event listeners.
() => void
destroy()
Section titled “destroy()”destroy(): void;Disposes the coordinator, audio listeners, and animation loops.
Returns
Section titled “Returns”void
detachAudio()
Section titled “detachAudio()”detachAudio(): void;Disconnects the HTML audio element.
Returns
Section titled “Returns”void
fork()
Section titled “fork()”fork(options?: Partial<SonoscopeOptions>): ISonoscope;Creates an independent coordinator sharing the same audio source.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options? | Partial<SonoscopeOptions> |
Returns
Section titled “Returns”ISonoscope
getAudio()
Section titled “getAudio()”getAudio(): HTMLAudioElement | undefined;Returns attached HTML audio element if present.
Returns
Section titled “Returns”HTMLAudioElement | undefined
getClipBounds()
Section titled “getClipBounds()”getClipBounds(): object;Returns active clip start and end boundaries in seconds.
Returns
Section titled “Returns”object
clipEnd?
Section titled “clipEnd?”optional clipEnd?: number;clipStart?
Section titled “clipStart?”optional clipStart?: number;getCurrentTime()
Section titled “getCurrentTime()”getCurrentTime(): number;Returns current audio playback position in seconds.
Returns
Section titled “Returns”number
getDuration()
Section titled “getDuration()”getDuration(): number;Returns total audio duration in seconds.
Returns
Section titled “Returns”number
getFollowPlayback()
Section titled “getFollowPlayback()”getFollowPlayback(): FollowPlaybackMode;Returns active playback follow mode.
Returns
Section titled “Returns”getNyquist()
Section titled “getNyquist()”getNyquist(): number;Returns Nyquist frequency (sampleRate / 2) in Hz.
Returns
Section titled “Returns”number
getSampleRate()
Section titled “getSampleRate()”getSampleRate(): number;Returns audio sample rate in Hz.
Returns
Section titled “Returns”number
getViewport()
Section titled “getViewport()”getViewport(): ViewportState;Returns the current viewport state.
Returns
Section titled “Returns”getViewportController()
Section titled “getViewportController()”getViewportController(): IViewportController;Returns the underlying viewport controller.
Returns
Section titled “Returns”isPlaying()
Section titled “isPlaying()”isPlaying(): boolean;Returns true if audio playback is currently active.
Returns
Section titled “Returns”boolean
on<K>(event: K, handler: (e: SonoscopeEvents[K]) => void): () => void;Subscribes to coordinator events.
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof SonoscopeEvents |
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
event | K |
handler | (e: SonoscopeEvents[K]) => void |
Returns
Section titled “Returns”() => void
pan(deltaSeconds: number, source?: string): void;Shifts viewport time range by a delta in seconds.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
deltaSeconds | number |
source? | string |
Returns
Section titled “Returns”void
panFrequency()
Section titled “panFrequency()”panFrequency(deltaHz: number, source?: string): void;Shifts viewport frequency range by a delta in Hz.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
deltaHz | number |
source? | string |
Returns
Section titled “Returns”void
panTo()
Section titled “panTo()”panTo(startTime: number, source?: string): void;Moves viewport start to a specific timestamp in seconds.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
startTime | number |
source? | string |
Returns
Section titled “Returns”void
seek()
Section titled “seek()”seek(time: number): void;Seeks audio and updates playhead timestamp in seconds.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
time | number |
Returns
Section titled “Returns”void
setClipBounds()
Section titled “setClipBounds()”setClipBounds(bounds: object): void;Updates audio clip boundaries in seconds without re-creating the source.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
bounds | { clipEnd?: number; clipStart?: number; } |
bounds.clipEnd? | number |
bounds.clipStart? | number |
Returns
Section titled “Returns”void
setFollowPlayback()
Section titled “setFollowPlayback()”setFollowPlayback(mode: FollowPlaybackMode): void;Sets playback follow mode (page, smooth, or off).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
mode | FollowPlaybackMode |
Returns
Section titled “Returns”void
setSource()
Section titled “setSource()”setSource(source: AudioSource): void;Replaces the audio source and updates all attached viewers.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
source | AudioSource |
Returns
Section titled “Returns”void
setViewport()
Section titled “setViewport()”setViewport(vp: Partial<ViewportConfig>, source?: string): void;Updates viewport coordinates.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
vp | Partial<ViewportConfig> |
source? | string |
Returns
Section titled “Returns”void
updateViewport()
Section titled “updateViewport()”updateViewport(vp: Partial<ViewportConfig>, source?: string): void;Alias for setViewport.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
vp | Partial<ViewportConfig> |
source? | string |
Returns
Section titled “Returns”void
zoom()
Section titled “zoom()”zoom( factor: number, centerTime?: number, source?: string): void;Zooms the time axis.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
factor | number |
centerTime? | number |
source? | string |
Returns
Section titled “Returns”void
zoomBoth()
Section titled “zoomBoth()”zoomBoth( factor: | number | { frequency: number; time: number;}, center?: object, source?: string): void;Zooms both time and frequency axes.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
factor | | number | { frequency: number; time: number; } |
center? | { frequency?: number; time?: number; } |
center.frequency? | number |
center.time? | number |
source? | string |
Returns
Section titled “Returns”void
zoomFreq()
Section titled “zoomFreq()”zoomFreq( factor: number, centerFrequency?: number, source?: string): void;Alias for zoomFrequency.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
factor | number |
centerFrequency? | number |
source? | string |
Returns
Section titled “Returns”void
zoomFrequency()
Section titled “zoomFrequency()”zoomFrequency( factor: number, centerFrequency?: number, source?: string): void;Zooms the frequency axis around an optional center in Hz.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
factor | number |
centerFrequency? | number |
source? | string |
Returns
Section titled “Returns”void
zoomTime()
Section titled “zoomTime()”zoomTime( factor: number, centerTime?: number, source?: string): void;Zooms the time axis.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
factor | number |
centerTime? | number |
source? | string |
Returns
Section titled “Returns”void