SYMBOL INDEX (505 symbols across 46 files) FILE: cypress.config.js method setupNodeEvents (line 7) | setupNodeEvents(on, config) { FILE: examples/fm-synth.js function createVoice (line 21) | function createVoice() { function playNote (line 59) | function playNote(frequency, modulationFrequency, modulationDepth, durat... function releaseNote (line 73) | function releaseNote(voice, duration) { function createPianoRoll (line 93) | function createPianoRoll() { function randomizeFmParams (line 188) | function randomizeFmParams() { function drawWaveform (line 195) | function drawWaveform() { function animate (line 202) | function animate() { FILE: src/__tests__/base-plugin.test.ts class TestPlugin (line 3) | class TestPlugin extends BasePlugin<{ destroy: [] }, {}> { method onInit (line 5) | protected onInit() { FILE: src/__tests__/draggable.test.ts class FakePointerEvent (line 14) | class FakePointerEvent extends MouseEvent { method constructor (line 15) | constructor(type: string, props: any) { FILE: src/__tests__/event-emitter.test.ts type Events (line 3) | interface Events { FILE: src/__tests__/fetcher.test.ts method clone (line 19) | clone() { FILE: src/__tests__/minimap.test.ts type Listener (line 11) | type Listener = (...args: any[]) => void FILE: src/__tests__/player.test.ts type Events (line 3) | interface Events { FILE: src/__tests__/regions.test.ts type Listener (line 3) | type Listener = (...args: any[]) => void FILE: src/__tests__/renderer.test.ts type Window (line 4) | interface Window { FILE: src/__tests__/timeline.test.ts type Listener (line 4) | type Listener = (...args: any[]) => void FILE: src/__tests__/wavesurfer.test.ts class Renderer (line 3) | class Renderer { method constructor (line 18) | constructor(options: any) { class Timer (line 28) | class Timer { class TestPlugin (line 91) | class TestPlugin extends BasePlugin<{ destroy: [] }, {}> {} FILE: src/base-plugin.ts type BasePluginEvents (line 4) | type BasePluginEvents = { type GenericPlugin (line 8) | type GenericPlugin = BasePlugin class BasePlugin (line 11) | class BasePlugin extends E... method constructor (line 18) | constructor(options: Options) { method onInit (line 24) | protected onInit() { method _init (line 29) | public _init(wavesurfer: WaveSurfer) { method destroy (line 41) | public destroy() { FILE: src/decoder.ts function decode (line 2) | async function decode(audioData: ArrayBuffer, sampleRate: number): Promi... function normalize (line 13) | function normalize>(channelData... function createBuffer (line 32) | function createBuffer(channelData: Array, durat... FILE: src/dom.ts type TreeNode (line 1) | type TreeNode = { [key: string]: string | number | boolean | CSSStyleDec... function renderNode (line 8) | function renderNode(tagName: string, content: TreeNode): HTMLElement | S... function createElement (line 38) | function createElement(tagName: string, content?: TreeNode, container?: ... FILE: src/draggable.ts function makeDraggable (line 5) | function makeDraggable( FILE: src/event-emitter.ts type GeneralEventTypes (line 1) | type GeneralEventTypes = { type EventListener (line 7) | type EventListener = { class EventEmitter (line 16) | class EventEmitter { method on (line 20) | public on( method un (line 44) | public un( method once (line 52) | public once( method unAll (line 60) | public unAll(): void { method emit (line 65) | protected emit(eventName: EventNam... FILE: src/fetcher.ts function watchProgress (line 1) | async function watchProgress(response: Response, progressCallback: (perc... function fetchBlob (line 33) | async function fetchBlob( FILE: src/fft.ts constant ERB_A (line 11) | const ERB_A = (1000 * Math.log(10)) / (24.7 * 4.37) function hzToMel (line 14) | function hzToMel(hz: number): number { function melToHz (line 18) | function melToHz(mel: number): number { function hzToLog (line 22) | function hzToLog(hz: number): number { function logToHz (line 26) | function logToHz(log: number): number { function hzToBark (line 30) | function hzToBark(hz: number): number { function barkToHz (line 42) | function barkToHz(bark: number): number { function hzToErb (line 53) | function hzToErb(hz: number): number { function erbToHz (line 58) | function erbToHz(erb: number): number { function hzToScale (line 64) | function hzToScale(hz: number, scale: 'linear' | 'logarithmic' | 'mel' |... function scaleToHz (line 79) | function scaleToHz(scale: number, scaleType: 'linear' | 'logarithmic' | ... function createFilterBank (line 95) | function createFilterBank( function applyFilterBank (line 119) | function applyFilterBank(fftPoints: Float32Array, filterBank: number[][]... function createFilterBankForScale (line 131) | function createFilterBankForScale( constant COLOR_MAPS (line 152) | const COLOR_MAPS = { function setupColorMap (line 434) | function setupColorMap(colorMap: number[][] | 'gray' | 'igray' | 'roseus... function freqType (line 459) | function freqType(freq: number): string { function unitType (line 466) | function unitType(freq: number): string { function getLabelFrequency (line 473) | function getLabelFrequency( function createWrapperClickHandler (line 488) | function createWrapperClickHandler(wrapper: HTMLElement, emit: (event: s... function FFT (line 501) | function FFT(bufferSize: number, sampleRate: number, windowFunc: string,... class FFT (line 686) | class FFT { FILE: src/player.ts type PlayerOptions (line 4) | type PlayerOptions = { class Player (line 11) | class Player extends EventEmitter { method isPlayingSignal (line 27) | public get isPlayingSignal(): WritableSignal { method currentTimeSignal (line 30) | public get currentTimeSignal(): WritableSignal { method durationSignal (line 33) | public get durationSignal(): WritableSignal { method volumeSignal (line 36) | public get volumeSignal(): WritableSignal { method mutedSignal (line 39) | public get mutedSignal(): WritableSignal { method playbackRateSignal (line 42) | public get playbackRateSignal(): WritableSignal { method seekingSignal (line 45) | public get seekingSignal(): WritableSignal { method constructor (line 49) | constructor(options: PlayerOptions) { method setupReactiveMediaEvents (line 97) | private setupReactiveMediaEvents() { method onMediaEvent (line 165) | protected onMediaEvent( method getSrc (line 174) | protected getSrc() { method revokeSrc (line 178) | private revokeSrc() { method canPlayType (line 185) | private canPlayType(type: string): boolean { method setSrc (line 189) | protected setSrc(url: string, blob?: Blob) { method destroy (line 210) | protected destroy() { method setMediaElement (line 225) | protected setMediaElement(element: HTMLMediaElement) { method play (line 238) | public async play(): Promise { method pause (line 250) | public pause(): void { method isPlaying (line 255) | public isPlaying(): boolean { method setTime (line 260) | public setTime(time: number) { method getDuration (line 265) | public getDuration(): number { method getCurrentTime (line 270) | public getCurrentTime(): number { method getVolume (line 275) | public getVolume(): number { method setVolume (line 280) | public setVolume(volume: number) { method getMuted (line 285) | public getMuted(): boolean { method setMuted (line 290) | public setMuted(muted: boolean) { method getPlaybackRate (line 295) | public getPlaybackRate(): number { method isSeeking (line 300) | public isSeeking(): boolean { method setPlaybackRate (line 305) | public setPlaybackRate(rate: number, preservePitch?: boolean) { method getMediaElement (line 314) | public getMediaElement(): HTMLMediaElement { method setSinkId (line 319) | public setSinkId(sinkId: string): Promise { FILE: src/plugins/envelope.ts type EnvelopePoint (line 11) | type EnvelopePoint = { type EnvelopePluginOptions (line 17) | type EnvelopePluginOptions = { type Options (line 37) | type Options = EnvelopePluginOptions & typeof defaultOptions type EnvelopePluginEvents (line 39) | type EnvelopePluginEvents = BasePluginEvents & { class Polyline (line 44) | class Polyline extends EventEmitter<{ method constructor (line 66) | constructor(options: Options, wrapper: HTMLElement) { method makeDraggable (line 186) | private makeDraggable(draggable: SVGElement, onDrag: (x: number, y: nu... method createCircle (line 208) | private createCircle(x: number, y: number) { method removePolyPoint (line 232) | removePolyPoint(point: EnvelopePoint) { method addPolyPoint (line 243) | addPolyPoint(relX: number, relY: number, refPoint: EnvelopePoint) { method update (line 289) | update() { method destroy (line 310) | destroy() { class EnvelopePlugin (line 343) | class EnvelopePlugin extends BasePlugin implements Region { method constructor (line 112) | constructor( method clampPosition (line 140) | private clampPosition(time: number): number { method setPart (line 144) | private setPart() { method addResizeHandles (line 149) | private addResizeHandles(element: HTMLElement) { method removeResizeHandles (line 221) | private removeResizeHandles(element: HTMLElement) { method initElement (line 232) | private initElement(): HTMLElement | null { method renderPosition (line 268) | private renderPosition() { method toggleCursor (line 276) | private toggleCursor(toggle: boolean) { method initMouseEvents (line 281) | private initMouseEvents() { method _onUpdate (line 347) | public _onUpdate(dx: number, side?: UpdateSide, startTime?: number) { method onMove (line 379) | private onMove(dx: number) { method onResize (line 384) | private onResize(dx: number, side: UpdateSide) { method onEndResizing (line 391) | private onEndResizing(side: UpdateSide) { method onContentClick (line 397) | private onContentClick(event: MouseEvent) { method onContentBlur (line 404) | public onContentBlur() { method _setTotalDuration (line 408) | public _setTotalDuration(totalDuration: number) { method play (line 414) | public play(stopAtEnd?: boolean) { method getContent (line 419) | public getContent(asHTML: boolean = false): string | HTMLElement | und... method setContent (line 430) | public setContent(content: RegionParams['content']) { method setOptions (line 474) | public setOptions( method remove (line 529) | public remove() { class RegionsPlugin (line 560) | class RegionsPlugin extends BasePlugin { method constructor (line 84) | constructor(options?: ZoomPluginOptions) { method create (line 89) | public static create(options?: ZoomPluginOptions) { method onInit (line 93) | onInit() { method getTouchDistance (line 230) | private getTouchDistance(e: TouchEvent): number { method getTouchCenterX (line 236) | private getTouchCenterX(e: TouchEvent): number { method destroy (line 308) | destroy() { FILE: src/reactive/__tests__/drag-stream.test.ts class FakePointerEvent (line 17) | class FakePointerEvent extends MouseEvent { method constructor (line 18) | constructor(type: string, props: any) { FILE: src/reactive/__tests__/event-stream-emitter.test.ts type TestEvents (line 4) | type TestEvents = { class TestEmitter (line 13) | class TestEmitter extends EventEmitter { method emit (line 14) | public emit(event: E, ...args: TestEvents[... FILE: src/reactive/drag-stream.ts type DragEvent (line 11) | interface DragEvent { type DragStreamOptions (line 19) | interface DragStreamOptions { function createDragStream (line 50) | function createDragStream( FILE: src/reactive/event-stream-emitter.ts function toStream (line 32) | function toStream, K extends keyof T>( function toStreams (line 76) | function toStreams, K extends keyof T>( function mergeStreams (line 119) | function mergeStreams, K extends keyof T>( function mapStream (line 157) | function mapStream(source: Signal, mapper: (value: T) => U): Si... function filterStream (line 179) | function filterStream(source: Signal, predicate: (value: T) => boo... FILE: src/reactive/event-streams.ts function fromEvent (line 18) | function fromEvent( function map (line 47) | function map(source: Signal, mapper: (value: T) => U): Signal { function filter (line 69) | function filter(source: Signal, predicate: (value: T) => boolean):... function debounce (line 96) | function debounce(source: Signal, delay: number): Signal { function throttle (line 128) | function throttle(source: Signal, delay: number): Signal { function cleanup (line 165) | function cleanup(stream: Signal): void { FILE: src/reactive/media-event-bridge.ts function bridgeMediaEvents (line 32) | function bridgeMediaEvents(media: HTMLMediaElement, actions: WaveSurferA... function bridgeMediaEventsWithHandler (line 139) | function bridgeMediaEventsWithHandler( FILE: src/reactive/render-scheduler.ts type RenderPriority (line 6) | type RenderPriority = 'high' | 'normal' | 'low' class RenderScheduler (line 8) | class RenderScheduler { method scheduleRender (line 29) | scheduleRender(renderFn: () => void, priority: RenderPriority = 'norma... method cancelRender (line 55) | cancelRender(): void { method flushRender (line 69) | flushRender(renderFn: () => void): void { method isPending (line 77) | isPending(): boolean { FILE: src/reactive/scroll-stream.ts type ScrollData (line 11) | interface ScrollData { type ScrollPercentages (line 20) | interface ScrollPercentages { function calculateScrollPercentages (line 38) | function calculateScrollPercentages(scrollData: ScrollData): ScrollPerce... function calculateScrollBounds (line 61) | function calculateScrollBounds(scrollData: ScrollData): { left: number; ... type ScrollStream (line 72) | interface ScrollStream { function createScrollStream (line 104) | function createScrollStream(element: HTMLElement): ScrollStream { function createScrollStreamWithAction (line 164) | function createScrollStreamWithAction( FILE: src/reactive/state-event-emitter.ts type EventEmitter (line 11) | type EventEmitter = { function setupStateEventEmission (line 40) | function setupStateEventEmission(state: WaveSurferState, emitter: EventE... function setupSignalEventEmission (line 169) | function setupSignalEventEmission( function setupDebouncedEventEmission (line 202) | function setupDebouncedEventEmission( function setupConditionalEventEmission (line 257) | function setupConditionalEventEmission( FILE: src/reactive/store.ts type Signal (line 11) | interface Signal { type WritableSignal (line 21) | interface WritableSignal extends Signal { function signal (line 38) | function signal(initialValue: T): WritableSignal { function computed (line 78) | function computed(fn: () => T, dependencies: Signal[]): Signal { function effect (line 123) | function effect(fn: () => void | (() => void), dependencies: Signal... FILE: src/renderer-utils.ts type ChannelData (line 3) | type ChannelData = Array type BarSegment (line 5) | type BarSegment = { type LinePath (line 12) | type LinePath = Array<{ x: number; y: number }> constant DEFAULT_HEIGHT (line 14) | const DEFAULT_HEIGHT = 128 constant MAX_CANVAS_WIDTH (line 16) | const MAX_CANVAS_WIDTH = 8000 constant MAX_NODES (line 18) | const MAX_NODES = 10 function clampToUnit (line 20) | function clampToUnit(value: number): number { function calculateBarRenderConfig (line 26) | function calculateBarRenderConfig({ function calculateBarHeights (line 58) | function calculateBarHeights({ function resolveBarYPosition (line 87) | function resolveBarYPosition({ function calculateBarSegments (line 105) | function calculateBarSegments({ function getRelativePointerPosition (line 178) | function getRelativePointerPosition(rect: DOMRect, clientX: number, clie... function resolveChannelHeight (line 186) | function resolveChannelHeight({ function getPixelRatio (line 212) | function getPixelRatio(devicePixelRatio?: number): number { function shouldRenderBars (line 216) | function shouldRenderBars(options: WaveSurferOptions): boolean { function resolveColorValue (line 220) | function resolveColorValue( function calculateWaveformLayout (line 242) | function calculateWaveformLayout({ function clampWidthToBarGrid (line 268) | function clampWidthToBarGrid(width: number, options: WaveSurferOptions):... function calculateSingleCanvasWidth (line 277) | function calculateSingleCanvasWidth({ function sliceChannelData (line 290) | function sliceChannelData({ function shouldClearCanvases (line 308) | function shouldClearCanvases(currentNodeCount: number): boolean { function getLazyRenderRange (line 312) | function getLazyRenderRange({ function calculateVerticalScale (line 327) | function calculateVerticalScale({ function calculateLinePaths (line 358) | function calculateLinePaths({ function calculateScrollPercentages (line 409) | function calculateScrollPercentages({ function roundToHalfAwayFromZero (line 431) | function roundToHalfAwayFromZero(value: number): number { FILE: src/renderer.ts type ChannelData (line 8) | type ChannelData = utils.ChannelData type RendererEvents (line 10) | type RendererEvents = { constant SMOOTH_SCROLL_FPS (line 22) | const SMOOTH_SCROLL_FPS = 60 constant SMOOTH_SCROLL_MAX_DELTA (line 23) | const SMOOTH_SCROLL_MAX_DELTA = 10 constant LOW_ZOOM_PIXELS_PER_SECOND_THRESHOLD (line 24) | const LOW_ZOOM_PIXELS_PER_SECOND_THRESHOLD = SMOOTH_SCROLL_MAX_DELTA * S... class Renderer (line 26) | class Renderer extends EventEmitter { method constructor (line 46) | constructor(options: WaveSurferOptions, audioElement?: HTMLElement) { method parentFromOptionsContainer (line 71) | private parentFromOptionsContainer(container: WaveSurferOptions['conta... method initEvents (line 86) | private initEvents() { method onContainerResize (line 127) | private onContainerResize() { method initDrag (line 135) | private initDrag() { method initHtml (line 162) | private initHtml(): [HTMLElement, ShadowRoot] { method setOptions (line 248) | setOptions(options: WaveSurferOptions) { method getWrapper (line 269) | getWrapper(): HTMLElement { method getWidth (line 273) | getWidth(): number { method getScroll (line 277) | getScroll(): number { method setScroll (line 281) | setScroll(pixels: number) { method setScrollPercentage (line 285) | setScrollPercentage(percent: number) { method destroy (line 291) | destroy() { method createDelay (line 310) | private createDelay(delayMs = 10): () => Promise { method getHeight (line 343) | private getHeight( method convertColorValues (line 357) | private convertColorValues( method getPixelRatio (line 364) | private getPixelRatio(): number { method renderBarWaveform (line 368) | private renderBarWaveform( method renderLineWaveform (line 421) | private renderLineWaveform( method renderWaveform (line 445) | private renderWaveform(channelData: ChannelData, options: WaveSurferOp... method renderSingleCanvas (line 468) | private renderSingleCanvas( method renderMultiCanvas (line 512) | private renderMultiCanvas( method renderChannel (line 586) | private renderChannel( method render (line 610) | async render(audioData: AudioBuffer) { method reRender (line 670) | reRender() { method zoom (line 692) | zoom(minPxPerSec: number) { method scrollIntoView (line 697) | private scrollIntoView(progress: number, isPlaying = false) { method renderProgress (line 736) | renderProgress(progress: number, isPlaying?: boolean) { method exportImage (line 752) | async exportImage(format: string, quality: number, type: 'dataURL' | '... FILE: src/state/wavesurfer-state.ts type WaveSurferState (line 13) | interface WaveSurferState { type WaveSurferActions (line 44) | interface WaveSurferActions { type PlayerSignals (line 63) | interface PlayerSignals { function createWaveSurferState (line 101) | function createWaveSurferState(playerSignals?: PlayerSignals): { FILE: src/timer.ts type TimerEvents (line 3) | type TimerEvents = { class Timer (line 7) | class Timer extends EventEmitter { method start (line 11) | start() { method stop (line 31) | stop() { method destroy (line 41) | destroy() { FILE: src/wavesurfer.ts type WaveSurferOptions (line 12) | type WaveSurferOptions = { type WaveSurferEvents (line 104) | type WaveSurferEvents = { class WaveSurfer (line 155) | class WaveSurfer extends Player { method create (line 175) | public static create(options: WaveSurferOptions) { method getState (line 180) | public getState(): WaveSurferState { method getRenderer (line 185) | public getRenderer(): Renderer { method constructor (line 190) | constructor(options: WaveSurferOptions) { method updateProgress (line 249) | private updateProgress(currentTime = this.getCurrentTime()): number { method initTimerEvents (line 254) | private initTimerEvents() { method initReactiveState (line 272) | private initReactiveState() { method initPlayerEvents (line 281) | private initPlayerEvents() { method initRendererEvents (line 326) | private initRendererEvents() { method initPlugins (line 412) | private initPlugins() { method unsubscribePlayerEvents (line 420) | private unsubscribePlayerEvents() { method setOptions (line 426) | public setOptions(options: Partial) { method registerPlugin (line 446) | public registerPlugin(plugin: T): T { method unregisterPlugin (line 466) | public unregisterPlugin(plugin: GenericPlugin): void { method getWrapper (line 472) | public getWrapper(): HTMLElement { method getWidth (line 477) | public getWidth(): number { method getScroll (line 482) | public getScroll(): number { method setScroll (line 487) | public setScroll(pixels: number) { method setScrollTime (line 492) | public setScrollTime(time: number) { method getActivePlugins (line 498) | public getActivePlugins() { method loadAudio (line 502) | private async loadAudio(url: string, blob?: Blob, channelData?: WaveSu... method load (line 569) | public async load(url: string, channelData?: WaveSurferOptions['peaks'... method loadBlob (line 579) | public async loadBlob(blob: Blob, channelData?: WaveSurferOptions['pea... method zoom (line 589) | public zoom(minPxPerSec: number) { method getDecodedData (line 598) | public getDecodedData(): AudioBuffer | null { method exportPeaks (line 603) | public exportPeaks({ channels = 2, maxLength = 8000, precision = 10_00... method getDuration (line 628) | public getDuration(): number { method toggleInteraction (line 638) | public toggleInteraction(isInteractive: boolean) { method setTime (line 643) | public setTime(time: number) { method seekTo (line 651) | public seekTo(progress: number) { method play (line 657) | public async play(start?: number, end?: number): Promise { method playPause (line 675) | public async playPause(): Promise { method stop (line 680) | public stop() { method skip (line 686) | public skip(seconds: number) { method empty (line 691) | public empty() { method setMediaElement (line 696) | public setMediaElement(element: HTMLMediaElement) { method exportImage (line 712) | public async exportImage( method destroy (line 721) | public destroy() { FILE: src/webaudio.ts type WebAudioPlayerEvents (line 3) | type WebAudioPlayerEvents = { class WebAudioPlayer (line 22) | class WebAudioPlayer extends EventEmitter { method constructor (line 38) | constructor(audioContext = new AudioContext()) { method load (line 51) | async load() { method src (line 55) | get src() { method src (line 59) | set src(value: string) { method _play (line 96) | private _play() { method _pause (line 130) | private _pause() { method play (line 136) | async play() { method pause (line 142) | pause() { method stopAt (line 148) | stopAt(timeSeconds: number) { method setSinkId (line 165) | async setSinkId(deviceId: string) { method playbackRate (line 170) | get playbackRate() { method playbackRate (line 173) | set playbackRate(value) { method currentTime (line 184) | get currentTime() { method currentTime (line 189) | set currentTime(value) { method duration (line 200) | get duration() { method duration (line 203) | set duration(value: number) { method volume (line 207) | get volume() { method volume (line 210) | set volume(value) { method muted (line 215) | get muted() { method muted (line 218) | set muted(value: boolean) { method canPlayType (line 229) | public canPlayType(mimeType: string) { method getGainNode (line 234) | public getGainNode(): GainNode { method getChannelData (line 239) | public getChannelData(): Float32Array[] { method removeAttribute (line 252) | public removeAttribute(attrName: string) {