{
 "applyHannWindow": {
  "category": "Core DSP & transforms",
  "import": "import { applyHannWindow } from 'pleco-xa'",
  "description": "Apply a Hann window to an audio sample array."
 },
 "blackman_window": {
  "category": "Core DSP & transforms",
  "import": "import { blackman_window } from 'pleco-xa'",
  "description": "Blackman window"
 },
 "buf_to_float": {
  "category": "Core DSP & transforms",
  "import": "import { buf_to_float } from 'pleco-xa'",
  "description": "Convert an integer buffer to floating point values"
 },
 "computePeak": {
  "category": "Core DSP & transforms",
  "import": "import { computePeak } from 'pleco-xa'",
  "description": "Find the peak absolute sample value across all channels of an audio buffer."
 },
 "cqt": {
  "category": "Core DSP & transforms",
  "import": "import { cqt } from 'pleco-xa'",
  "description": "Constant-Q Transform of an audio signal.",
  "equivalent": "librosa.cqt"
 },
 "createSpectrogram": {
  "category": "Core DSP & transforms",
  "import": "import { createSpectrogram } from 'pleco-xa'",
  "description": "Creates a spectrogram visualization of audio over time"
 },
 "debugLog": {
  "category": "Core DSP & transforms",
  "import": "import { debugLog } from 'pleco-xa'",
  "description": "Log to the console only when debug logging is enabled."
 },
 "f0_harmonics": {
  "category": "Core DSP & transforms",
  "import": "import { f0_harmonics } from 'pleco-xa'",
  "description": "Compute the energy at selected harmonics of a time-varying fundamental frequency"
 },
 "fft": {
  "category": "Core DSP & transforms",
  "import": "import { fft } from 'pleco-xa'",
  "description": "Fast Fourier Transform using Cooley-Tukey algorithm (radix-2)."
 },
 "fft_frequencies": {
  "category": "Core DSP & transforms",
  "import": "import { fft_frequencies } from 'pleco-xa'",
  "description": "FFT frequencies"
 },
 "findDownbeatPhase": {
  "category": "Core DSP & transforms",
  "import": "import { findDownbeatPhase } from 'pleco-xa'",
  "description": "Find the true downbeat phase by analyzing onset patterns."
 },
 "findKickSnareHit": {
  "category": "Core DSP & transforms",
  "import": "import { findKickSnareHit } from 'pleco-xa'",
  "description": "Find kick+snare hit (strong transient with wide frequency content)"
 },
 "fix_frames": {
  "category": "Core DSP & transforms",
  "import": "import { fix_frames } from 'pleco-xa'",
  "description": "Fix a list of frames to lie within [x_min, x_max]"
 },
 "frame": {
  "category": "Core DSP & transforms",
  "import": "import { frame } from 'pleco-xa'",
  "description": "Slice a data array into (overlapping) frames"
 },
 "get_window": {
  "category": "Core DSP & transforms",
  "import": "import { get_window } from 'pleco-xa'",
  "description": "Get window function"
 },
 "hamming_window": {
  "category": "Core DSP & transforms",
  "import": "import { hamming_window } from 'pleco-xa'",
  "description": "Hamming window"
 },
 "hann_window": {
  "category": "Core DSP & transforms",
  "import": "import { hann_window } from 'pleco-xa'",
  "description": "Hann window"
 },
 "ifft": {
  "category": "Core DSP & transforms",
  "import": "import { ifft } from 'pleco-xa'",
  "description": "Inverse Fast Fourier Transform (complex input preserved, no component discarded)."
 },
 "isDebugEnabled": {
  "category": "Core DSP & transforms",
  "import": "import { isDebugEnabled } from 'pleco-xa'",
  "description": "Report whether debug logging is currently enabled."
 },
 "istft": {
  "category": "Core DSP & transforms",
  "import": "import { istft } from 'pleco-xa'",
  "description": "Inverse Short-Time Fourier Transform"
 },
 "magnitude": {
  "category": "Core DSP & transforms",
  "import": "import { magnitude } from 'pleco-xa'",
  "description": "Magnitude of complex spectrum"
 },
 "mel_to_stft": {
  "category": "Core DSP & transforms",
  "import": "import { mel_to_stft } from 'pleco-xa'",
  "description": "Approximate STFT magnitude from a Mel power spectrogram."
 },
 "peakPick": {
  "category": "Core DSP & transforms",
  "import": "import { peakPick } from 'pleco-xa'",
  "description": "Peak picking algorithm with advanced filtering"
 },
 "phase": {
  "category": "Core DSP & transforms",
  "import": "import { phase } from 'pleco-xa'",
  "description": "Phase of complex spectrum"
 },
 "polar_to_complex": {
  "category": "Core DSP & transforms",
  "import": "import { polar_to_complex } from 'pleco-xa'",
  "description": "Convert magnitude and phase to complex spectrum"
 },
 "power": {
  "category": "Core DSP & transforms",
  "import": "import { power } from 'pleco-xa'",
  "description": "Power spectrum"
 },
 "rqa": {
  "category": "Core DSP & transforms",
  "import": "import { rqa } from 'pleco-xa'",
  "description": "Recurrence quantification analysis (RQA)."
 },
 "salience": {
  "category": "Core DSP & transforms",
  "import": "import { salience } from 'pleco-xa'",
  "description": "Compute the harmonic salience function"
 },
 "setDebug": {
  "category": "Core DSP & transforms",
  "import": "import { setDebug } from 'pleco-xa'",
  "description": "Enable or disable the library's debug logging."
 },
 "spectrogram": {
  "category": "Core DSP & transforms",
  "import": "import { spectrogram } from 'pleco-xa'",
  "description": "Simple spectrogram computation"
 },
 "stft": {
  "category": "Core DSP & transforms",
  "import": "import { stft } from 'pleco-xa'",
  "description": "Short-Time Fourier Transform",
  "equivalent": "librosa.stft"
 },
 "sync": {
  "category": "Core DSP & transforms",
  "import": "import { sync } from 'pleco-xa'",
  "description": "Aggregate a multi-dimensional array between boundaries, synchronizing features to a set of frames."
 },
 "warnIfNoMp3Support": {
  "category": "Core DSP & transforms",
  "import": "import { warnIfNoMp3Support } from 'pleco-xa'",
  "description": "Check MP3 playback support and optionally show a warning banner."
 },
 "yin": {
  "category": "Core DSP & transforms",
  "import": "import { yin } from 'pleco-xa'",
  "description": "Fundamental frequency (F0) estimation using the YIN algorithm",
  "equivalent": "librosa.yin"
 },
 "computeRMS": {
  "category": "Spectral features",
  "import": "import { computeRMS } from 'pleco-xa'",
  "description": "Compute the Root Mean Square (RMS) energy of an audio buffer."
 },
 "computeZeroCrossingRate": {
  "category": "Spectral features",
  "import": "import { computeZeroCrossingRate } from 'pleco-xa'",
  "description": "Compute the average zero-crossing rate across all channels of an audio buffer."
 },
 "createRmsMeter": {
  "category": "Spectral features",
  "import": "import { createRmsMeter } from 'pleco-xa'",
  "description": "Create an incremental RMS meter."
 },
 "delta_features": {
  "category": "Spectral features",
  "import": "import { delta_features } from 'pleco-xa'",
  "description": "Compute delta (first-order derivative) features"
 },
 "feature.chroma_stft": {
  "category": "Spectral features",
  "import": "import { chroma_stft } from 'pleco-xa/feature'",
  "description": "Chromagram from a waveform or power spectrogram.",
  "equivalent": "librosa.feature.chroma_stft"
 },
 "feature.dctBasis": {
  "category": "Spectral features",
  "import": "import { dctBasis } from 'pleco-xa/feature'",
  "description": "Rows 0..n_out-1 of the DCT-II matrix over n_in points."
 },
 "feature.estimate_tuning": {
  "category": "Spectral features",
  "import": "import { estimate_tuning } from 'pleco-xa/feature'",
  "description": "Estimate tuning from a signal or spectrogram."
 },
 "feature.foldLogSpectrumToChroma": {
  "category": "Spectral features",
  "import": "import { foldLogSpectrumToChroma } from 'pleco-xa/feature'",
  "description": "Fold a time-major log-frequency spectrum into pitch classes by summing energy across octaves."
 },
 "feature.logFrequencySpectrum": {
  "category": "Spectral features",
  "import": "import { logFrequencySpectrum } from 'pleco-xa/feature'",
  "description": "Log-frequency spectrum by nearest-FFT-bin sampling."
 },
 "feature.melspectrogram": {
  "category": "Spectral features",
  "import": "import { melspectrogram } from 'pleco-xa/feature'",
  "description": "Mel spectrogram from a waveform with a (y, options) API.",
  "equivalent": "librosa.feature.melspectrogram"
 },
 "feature.mfcc": {
  "category": "Spectral features",
  "import": "import { mfcc } from 'pleco-xa/feature'",
  "description": "Mel-frequency cepstral coefficients.",
  "equivalent": "librosa.feature.mfcc"
 },
 "feature.mfccFromLogMel": {
  "category": "Spectral features",
  "import": "import { mfccFromLogMel } from 'pleco-xa/feature'",
  "description": "MFCC cepstral core: DCT-II along the mel axis of a log-power mel spectrogram, keeping the first coefficients."
 },
 "feature.piptrackPeaks": {
  "category": "Spectral features",
  "import": "import { piptrackPeaks } from 'pleco-xa/feature'",
  "description": "Pitch tracking on a thresholded, parabolically-interpolated STFT (piptrack); returns the sparse list of detected pitch/magnitude peaks."
 },
 "feature.pitch_tuning": {
  "category": "Spectral features",
  "import": "import { pitch_tuning } from 'pleco-xa/feature'",
  "description": "Tuning offset of a set of detected frequencies relative to A440, in fractions of a chroma bin."
 },
 "feature.rms": {
  "category": "Spectral features",
  "import": "import { rms } from 'pleco-xa/feature'",
  "description": "Root-mean-square energy per frame (centered, constant-padded framing).",
  "equivalent": "librosa.feature.rms"
 },
 "feature.spectral_bandwidth": {
  "category": "Spectral features",
  "import": "import { spectral_bandwidth } from 'pleco-xa/feature'",
  "description": "p'th-order spectral bandwidth per frame."
 },
 "feature.spectral_centroid": {
  "category": "Spectral features",
  "import": "import { spectral_centroid } from 'pleco-xa/feature'",
  "description": "Spectral centroid (energy-weighted mean frequency) per frame.",
  "equivalent": "librosa.feature.spectral_centroid"
 },
 "feature.spectral_contrast": {
  "category": "Spectral features",
  "import": "import { spectral_contrast } from 'pleco-xa/feature'",
  "description": "Spectral contrast: octave-band peak-to-valley energy difference per frame."
 },
 "feature.spectral_flatness": {
  "category": "Spectral features",
  "import": "import { spectral_flatness } from 'pleco-xa/feature'",
  "description": "Spectral flatness (geometric mean over arithmetic mean of the power spectrum) per frame."
 },
 "feature.spectral_rolloff": {
  "category": "Spectral features",
  "import": "import { spectral_rolloff } from 'pleco-xa/feature'",
  "description": "Roll-off frequency: the lowest frequency bin whose cumulative energy reaches a given percentage of the total."
 },
 "feature.zero_crossing_rate": {
  "category": "Spectral features",
  "import": "import { zero_crossing_rate } from 'pleco-xa/feature'",
  "description": "Frame-wise zero-crossing rate with edge-padded centering."
 },
 "findAllZeroCrossings": {
  "category": "Spectral features",
  "import": "import { findAllZeroCrossings } from 'pleco-xa'",
  "description": "Collect the indices of every zero crossing in a signal."
 },
 "findZeroCrossing": {
  "category": "Spectral features",
  "import": "import { findZeroCrossing } from 'pleco-xa'",
  "description": "Find the next zero crossing at or after a given sample index."
 },
 "mfcc_to_mel": {
  "category": "Spectral features",
  "import": "import { mfcc_to_mel } from 'pleco-xa'",
  "description": "Invert Mel-frequency cepstral coefficients to approximate a Mel power spectrogram"
 },
 "analyze_groove": {
  "category": "Beat & tempo",
  "import": "import { analyze_groove } from 'pleco-xa'",
  "description": "Estimate groove and timing feel"
 },
 "beat_sync": {
  "category": "Beat & tempo",
  "import": "import { beat_sync } from 'pleco-xa'",
  "description": "Beat-synchronous feature aggregation"
 },
 "beat_track": {
  "category": "Beat & tempo",
  "import": "import { beat_track } from 'pleco-xa'",
  "description": "Dynamic programming beat tracker.",
  "equivalent": "librosa.beat.beat_track"
 },
 "beatTrack": {
  "category": "Beat & tempo",
  "import": "import { beatTrack } from 'pleco-xa'",
  "description": "Beat tracker with tempo estimation and dynamic-programming beat selection."
 },
 "calculateBeatAlignment": {
  "category": "Beat & tempo",
  "import": "import { calculateBeatAlignment } from 'pleco-xa'",
  "description": "Calculate how well a loop length aligns with musical timing"
 },
 "compute_tempogram": {
  "category": "Beat & tempo",
  "import": "import { compute_tempogram } from 'pleco-xa'",
  "description": "Compute tempogram using autocorrelation"
 },
 "detect_tempo_multiples": {
  "category": "Beat & tempo",
  "import": "import { detect_tempo_multiples } from 'pleco-xa'",
  "description": "Detect tempo multiples and submultiples"
 },
 "detectBPM": {
  "category": "Beat & tempo",
  "import": "import { detectBPM } from 'pleco-xa'",
  "description": "Detect BPM from audio."
 },
 "estimate_tempo": {
  "category": "Beat & tempo",
  "import": "import { estimate_tempo } from 'pleco-xa'",
  "description": "Estimate the global tempo (BPM) from a lag tempogram using tempo scoring."
 },
 "extractTempo": {
  "category": "Beat & tempo",
  "import": "import { extractTempo } from 'pleco-xa'",
  "description": "Extract tempo from beat times Useful for validation and multiple tempo detection"
 },
 "fastBPMDetect": {
  "category": "Beat & tempo",
  "import": "import { fastBPMDetect } from 'pleco-xa'",
  "description": "Fast BPM detection using onset detection plus tempo estimation."
 },
 "find_tempo_candidates": {
  "category": "Beat & tempo",
  "import": "import { find_tempo_candidates } from 'pleco-xa'",
  "description": "Find tempo candidates from tempogram"
 },
 "findFirstDownbeat": {
  "category": "Beat & tempo",
  "import": "import { findFirstDownbeat } from 'pleco-xa'",
  "description": "Find the first strong downbeat in the track to help align loops to the musical phrasing."
 },
 "fourier_tempogram": {
  "category": "Beat & tempo",
  "import": "import { fourier_tempogram } from 'pleco-xa'",
  "description": "Fourier tempogram: the STFT of the onset strength envelope."
 },
 "plp": {
  "category": "Beat & tempo",
  "import": "import { plp } from 'pleco-xa'",
  "description": "Predominant Local Pulse (PLP) estimation"
 },
 "quickTempo": {
  "category": "Beat & tempo",
  "import": "import { quickTempo } from 'pleco-xa'",
  "description": "QUICK TIER — windowed live tempo estimate."
 },
 "tempo": {
  "category": "Beat & tempo",
  "import": "import { tempo } from 'pleco-xa'",
  "description": "Estimate the global tempo (BPM) with aggregate='mean'.",
  "equivalent": "librosa.feature.tempo"
 },
 "tempoBasedCompress": {
  "category": "Beat & tempo",
  "import": "import { tempoBasedCompress } from 'pleco-xa'",
  "description": "Tempo-based audio compression — PITCH-PRESERVING time stretch via the phase vocoder."
 },
 "tempogram": {
  "category": "Beat & tempo",
  "import": "import { tempogram } from 'pleco-xa'",
  "description": "Local autocorrelation tempogram of the onset strength envelope.",
  "equivalent": "librosa.feature.tempogram"
 },
 "tempogram_ratio": {
  "category": "Beat & tempo",
  "import": "import { tempogram_ratio } from 'pleco-xa'",
  "description": "Tempogram ratio features (a.k.a. spectral rhythm patterns)."
 },
 "bpm.analyzeTempogram": {
  "category": "Tempo — BPM engine",
  "import": "import { analyzeTempogram } from 'pleco-xa/bpm'",
  "description": "Analyze a tempogram to find its peak tempos."
 },
 "bpm.analyzeWithProgress": {
  "category": "Tempo — BPM engine",
  "import": "import { analyzeWithProgress } from 'pleco-xa/bpm'",
  "description": "Main analysis orchestrator that yields progress as it runs."
 },
 "bpm.computeFourierTempogram": {
  "category": "Tempo — BPM engine",
  "import": "import { computeFourierTempogram } from 'pleco-xa/bpm'",
  "description": "Compute a Fourier tempogram."
 },
 "bpm.computeOnsetStrength": {
  "category": "Tempo — BPM engine",
  "import": "import { computeOnsetStrength } from 'pleco-xa/bpm'",
  "description": "Compute onset strength using spectral flux."
 },
 "bpm.computeSimpleFFT": {
  "category": "Tempo — BPM engine",
  "import": "import { computeSimpleFFT } from 'pleco-xa/bpm'",
  "description": "Compute a simple FFT."
 },
 "bpm.computeSimpleSpectrum": {
  "category": "Tempo — BPM engine",
  "import": "import { computeSimpleSpectrum } from 'pleco-xa/bpm'",
  "description": "Compute a simple spectrum using a decimated FFT."
 },
 "bpm.computeTempoFrequencies": {
  "category": "Tempo — BPM engine",
  "import": "import { computeTempoFrequencies } from 'pleco-xa/bpm'",
  "description": "Convert FFT bins to tempo frequencies."
 },
 "bpm.estimateConstrainedTempo": {
  "category": "Tempo — BPM engine",
  "import": "import { estimateConstrainedTempo } from 'pleco-xa/bpm'",
  "description": "Estimate tempo within a constrained range."
 },
 "bpm.estimateGlobalTempo": {
  "category": "Tempo — BPM engine",
  "import": "import { estimateGlobalTempo } from 'pleco-xa/bpm'",
  "description": "Estimate global tempo using autocorrelation."
 },
 "createFluxAnalyzer": {
  "category": "Onset detection",
  "import": "import { createFluxAnalyzer } from 'pleco-xa'",
  "description": "Create an incremental spectral-flux analyzer."
 },
 "onset_strength": {
  "category": "Onset detection",
  "import": "import { onset_strength } from 'pleco-xa'",
  "description": "onset_strength() — log-power-mel onset strength envelope.",
  "equivalent": "librosa.onset.onset_strength"
 },
 "onsetDetect": {
  "category": "Onset detection",
  "import": "import { onsetDetect } from 'pleco-xa'",
  "description": "Fast spectral-flux onset detection — returns picked onset times directly."
 },
 "pitchBasedCompress": {
  "category": "Pitch & harmony",
  "import": "import { pitchBasedCompress } from 'pleco-xa'",
  "description": "Pitch-based audio compression — a plain linear-interpolation resample kept at the original sample rate."
 },
 "pyin": {
  "category": "Pitch & harmony",
  "import": "import { pyin } from 'pleco-xa'",
  "description": "Probabilistic YIN (pYIN).",
  "equivalent": "librosa.pyin"
 },
 "addLoopRegions": {
  "category": "Loop detection",
  "import": "import { addLoopRegions } from 'pleco-xa'",
  "description": "Adds loop region overlays to existing waveform"
 },
 "compareLoops": {
  "category": "Loop detection",
  "import": "import { compareLoops } from 'pleco-xa'",
  "description": "Quick loop comparison utility"
 },
 "createLoopBuffer": {
  "category": "Loop detection",
  "import": "import { createLoopBuffer } from 'pleco-xa'",
  "description": "Create a loopable AudioBuffer with a custom waveform, multichannel support, and export options."
 },
 "defineMultipleLoopPoints": {
  "category": "Loop detection",
  "import": "import { defineMultipleLoopPoints } from 'pleco-xa'",
  "description": "Define multiple loop points for playback."
 },
 "detectLoop": {
  "category": "Loop detection",
  "import": "import { detectLoop } from 'pleco-xa'",
  "description": "Detect loop points and return a real sample-range descriptor."
 },
 "fastLoopAnalysis": {
  "category": "Loop detection",
  "import": "import { fastLoopAnalysis } from 'pleco-xa'",
  "description": "Fast loop analysis — the default strategy of loop.detect()."
 },
 "findMusicalLoop": {
  "category": "Loop detection",
  "import": "import { findMusicalLoop } from 'pleco-xa'",
  "description": "Simple loop finder that respects musical boundaries"
 },
 "fullBufferLoop": {
  "category": "Loop detection",
  "import": "import { fullBufferLoop } from 'pleco-xa'",
  "description": "Return a loop spanning the entire buffer, performing no detection (the explicit whole-buffer descriptor used by resetLoop)."
 },
 "loop.analyzeLoopPoints": {
  "category": "Loop detection",
  "import": "import { analyzeLoopPoints } from 'pleco-xa/loop'",
  "description": ":::caution[Deprecated] Use loop.detect() instead. :::"
 },
 "loop.clamp01": {
  "category": "Loop detection",
  "import": "import { clamp01 } from 'pleco-xa/loop'",
  "description": "Clamp a number into [0, 1]. NaN clamps to 0."
 },
 "loop.detect": {
  "category": "Loop detection",
  "import": "import { detect } from 'pleco-xa/loop'",
  "description": "Detect loop points in an audio buffer."
 },
 "loop.fastOnsetLoopAnalysis": {
  "category": "Loop detection",
  "import": "import { fastOnsetLoopAnalysis } from 'pleco-xa/loop'",
  "description": ":::caution[Deprecated] Use loop.detect(buffer, { strategy: 'recurrence' }) instead. :::"
 },
 "loop.findPreciseLoop": {
  "category": "Loop detection",
  "import": "import { findPreciseLoop } from 'pleco-xa/loop'",
  "description": "Find precise loop boundaries by testing actual audio repetition."
 },
 "loop.loopAnalysis": {
  "category": "Loop detection",
  "import": "import { loopAnalysis } from 'pleco-xa/loop'",
  "description": ":::caution[Deprecated] Use loop.detect() instead. :::"
 },
 "loop.measureLoopConfidence": {
  "category": "Loop detection",
  "import": "import { measureLoopConfidence } from 'pleco-xa/loop'",
  "description": "Measure how well audio loops over [startSec, endSec), returning a confidence in [0, 1]."
 },
 "loop.musicalLoopAnalysis": {
  "category": "Loop detection",
  "import": "import { musicalLoopAnalysis } from 'pleco-xa/loop'",
  "description": "Musical boundary-aware analysis."
 },
 "loop.normalizedCrossCorrelation": {
  "category": "Loop detection",
  "import": "import { normalizedCrossCorrelation } from 'pleco-xa/loop'",
  "description": "Normalized cross-correlation (mean-subtracted, std-normalized) in [-1, 1]."
 },
 "loop.recurrenceLoop": {
  "category": "Loop detection",
  "import": "import { recurrenceLoop } from 'pleco-xa/loop'",
  "description": "Detect a loop via recurrence-matrix analysis."
 },
 "loop.snapToZeroCrossings": {
  "category": "Loop detection",
  "import": "import { snapToZeroCrossings } from 'pleco-xa/loop'",
  "description": "Snap loop boundaries to nearby zero crossings to avoid clicks."
 },
 "loop.xaLoopAnalysis": {
  "category": "Loop detection",
  "import": "import { xaLoopAnalysis } from 'pleco-xa/loop'",
  "description": ":::caution[Deprecated] Use loop.detect() instead. :::"
 },
 "segment.agglomerative": {
  "category": "Structural segmentation",
  "import": "import { agglomerative } from 'pleco-xa/segment'",
  "description": "Bottom-up temporal segmentation: partition frames into k contiguous segments; returns the left-boundary frame indices.",
  "equivalent": "librosa.segment.agglomerative"
 },
 "segment.crossSimilarity": {
  "category": "Structural segmentation",
  "import": "import { crossSimilarity } from 'pleco-xa/segment'",
  "description": "Cross-similarity between a comparison sequence and a reference sequence."
 },
 "segment.lagToRecurrence": {
  "category": "Structural segmentation",
  "import": "import { lagToRecurrence } from 'pleco-xa/segment'",
  "description": "Convert a lag matrix back into a recurrence matrix."
 },
 "segment.laplacianSegmentation": {
  "category": "Structural segmentation",
  "import": "import { laplacianSegmentation } from 'pleco-xa/segment'",
  "description": "Structural segmentation of a beat/frame-synchronous feature matrix by Laplacian spectral clustering."
 },
 "segment.recurrenceMatrix": {
  "category": "Structural segmentation",
  "import": "import { recurrenceMatrix } from 'pleco-xa/segment'",
  "description": "Compute a recurrence (self-similarity) matrix from a feature matrix.",
  "equivalent": "librosa.segment.recurrence_matrix"
 },
 "segment.recurrenceToLag": {
  "category": "Structural segmentation",
  "import": "import { recurrenceToLag } from 'pleco-xa/segment'",
  "description": "Convert a recurrence matrix into a lag matrix."
 },
 "recurrence.computeChroma": {
  "category": "Recurrence",
  "import": "import { computeChroma } from 'pleco-xa/recurrence'",
  "description": "Compute chroma features from audio buffer"
 },
 "recurrence.findLoopCandidates": {
  "category": "Recurrence",
  "import": "import { findLoopCandidates } from 'pleco-xa/recurrence'",
  "description": "Find peaks in lag matrix to identify loop-lag candidates."
 },
 "recurrence.framesToTime": {
  "category": "Recurrence",
  "import": "import { framesToTime } from 'pleco-xa/recurrence'",
  "description": "Convert frames to time (xa-style)"
 },
 "recurrence.recurrenceLoopDetection": {
  "category": "Recurrence",
  "import": "import { recurrenceLoopDetection } from 'pleco-xa/recurrence'",
  "description": "Recurrence loop detection using matrix analysis."
 },
 "recurrence.recurrenceMatrix": {
  "category": "Recurrence",
  "import": "import { recurrenceMatrix } from 'pleco-xa/recurrence'",
  "description": "Proper recurrence matrix (xa-style)"
 },
 "recurrence.recurrenceToLag": {
  "category": "Recurrence",
  "import": "import { recurrenceToLag } from 'pleco-xa/recurrence'",
  "description": "Convert a recurrence matrix to its lag representation (xa-style)."
 },
 "recurrence.stackMemory": {
  "category": "Recurrence",
  "import": "import { stackMemory } from 'pleco-xa/recurrence'",
  "description": "Time-delay embedding to stack chroma features."
 },
 "sequence.dtw": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { dtw } from 'pleco-xa/sequence'",
  "description": "Dynamic time warping between two feature sequences (or a precomputed cost matrix).",
  "equivalent": "librosa.sequence.dtw"
 },
 "sequence.dtwBacktracking": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { dtwBacktracking } from 'pleco-xa/sequence'",
  "description": "Backtrack a warping path from a recorded step matrix."
 },
 "sequence.matchEvents": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { matchEvents } from 'pleco-xa/sequence'",
  "description": "Match one set of events to another (nearest neighbor with optional left/right constraints)."
 },
 "sequence.matchIntervals": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { matchIntervals } from 'pleco-xa/sequence'",
  "description": "Match one set of time intervals to another, maximizing Jaccard similarity."
 },
 "sequence.transition_cycle": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { transition_cycle } from 'pleco-xa/sequence'",
  "description": "Construct a cyclic transition matrix."
 },
 "sequence.transition_local": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { transition_local } from 'pleco-xa/sequence'",
  "description": "Construct a localized transition matrix where each state transitions only to nearby states."
 },
 "sequence.transition_loop": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { transition_loop } from 'pleco-xa/sequence'",
  "description": "Construct a self-loop transition matrix."
 },
 "sequence.transition_uniform": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { transition_uniform } from 'pleco-xa/sequence'",
  "description": "Construct a uniform transition matrix over nStates."
 },
 "sequence.viterbi": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { viterbi } from 'pleco-xa/sequence'",
  "description": "Viterbi decoding from observation likelihoods.",
  "equivalent": "librosa.sequence.viterbi"
 },
 "sequence.viterbi_discriminative": {
  "category": "Sequence alignment (DTW · Viterbi · RQA)",
  "import": "import { viterbi_discriminative } from 'pleco-xa/sequence'",
  "description": "Viterbi decoding from discriminative (mutually exclusive) state posteriors."
 },
 "decompose.hpss": {
  "category": "Decomposition & separation",
  "import": "import { hpss } from 'pleco-xa/decompose'",
  "description": "Median-filtering harmonic/percussive source separation on a spectrogram.",
  "equivalent": "librosa.effects.hpss"
 },
 "decompose.nn_filter": {
  "category": "Decomposition & separation",
  "import": "import { nn_filter } from 'pleco-xa/decompose'",
  "description": "Nearest-neighbor filtering (nn_filter).",
  "equivalent": "librosa.decompose.nn_filter"
 },
 "decompose.optimizeEqCurves": {
  "category": "Decomposition & separation",
  "import": "import { optimizeEqCurves } from 'pleco-xa/decompose'",
  "description": "Optimize EQ curves to match mixture fingerprints to vocal fingerprints"
 },
 "decompose.processAudioToFingerprints": {
  "category": "Decomposition & separation",
  "import": "import { processAudioToFingerprints } from 'pleco-xa/decompose'",
  "description": "Process audio to create complete fingerprint"
 },
 "decompose.reconstructVocal": {
  "category": "Decomposition & separation",
  "import": "import { reconstructVocal } from 'pleco-xa/decompose'",
  "description": "Reconstruct vocal audio using learned EQ curves"
 },
 "decompose.softmask": {
  "category": "Decomposition & separation",
  "import": "import { softmask } from 'pleco-xa/decompose'",
  "description": "Robust soft mask M = X^power / (X^power + X_ref^power), computed with a rescale-by-max stabilization.",
  "equivalent": "librosa.util.softmask"
 },
 "griffinlim": {
  "category": "Decomposition & separation",
  "import": "import { griffinlim } from 'pleco-xa'",
  "description": "Griffin-Lim algorithm for phase reconstruction",
  "equivalent": "librosa.griffinlim"
 },
 "pcen": {
  "category": "Decomposition & separation",
  "import": "import { pcen } from 'pleco-xa'",
  "description": "Per-Channel Energy Normalization (PCEN)",
  "equivalent": "librosa.pcen"
 },
 "effects.deemphasis": {
  "category": "Effects",
  "import": "import { deemphasis } from 'pleco-xa/effects'",
  "description": "De-emphasis filter — the exact inverse of preemphasis()."
 },
 "effects.harmonic": {
  "category": "Effects",
  "import": "import { harmonic } from 'pleco-xa/effects'",
  "description": "Extract only the harmonic component of a waveform."
 },
 "effects.hpss": {
  "category": "Effects",
  "import": "import { hpss } from 'pleco-xa/effects'",
  "description": "Decompose an audio time series into harmonic and percussive components."
 },
 "effects.percussive": {
  "category": "Effects",
  "import": "import { percussive } from 'pleco-xa/effects'",
  "description": "Extract only the percussive component of a waveform."
 },
 "effects.phase_vocoder": {
  "category": "Effects",
  "import": "import { phase_vocoder } from 'pleco-xa/effects'",
  "description": "Phase vocoder: time-stretch an STFT matrix by a given rate.",
  "equivalent": "librosa.phase_vocoder"
 },
 "effects.pitch_shift": {
  "category": "Effects",
  "import": "import { pitch_shift } from 'pleco-xa/effects'",
  "description": "Shift the pitch of a waveform by n_steps steps while preserving duration.",
  "equivalent": "librosa.effects.pitch_shift"
 },
 "effects.preemphasis": {
  "category": "Effects",
  "import": "import { preemphasis } from 'pleco-xa/effects'",
  "description": "Pre-emphasis filter that boosts high frequencies (the inverse of deemphasis())."
 },
 "effects.remix": {
  "category": "Effects",
  "import": "import { remix } from 'pleco-xa/effects'",
  "description": "Remix an audio signal by re-ordering time intervals."
 },
 "effects.split": {
  "category": "Effects",
  "import": "import { split } from 'pleco-xa/effects'",
  "description": "Split an audio signal into non-silent intervals."
 },
 "effects.time_stretch": {
  "category": "Effects",
  "import": "import { time_stretch } from 'pleco-xa/effects'",
  "description": "Time-stretch an audio series by a fixed rate while preserving pitch."
 },
 "effects.trim": {
  "category": "Effects",
  "import": "import { trim } from 'pleco-xa/effects'",
  "description": "Trim leading and trailing silence from an audio signal."
 },
 "filters.chroma": {
  "category": "Filter banks",
  "import": "import { chroma } from 'pleco-xa/filters'",
  "description": "Chroma filter bank. Projects FFT bins onto n_chroma pitch classes via Gaussian bumps."
 },
 "filters.mel_filterbank": {
  "category": "Filter banks",
  "import": "import { mel_filterbank } from 'pleco-xa/filters'",
  "description": "Create Mel filterbank matrix",
  "equivalent": "librosa.filters.mel"
 },
 "convert.A4_to_tuning": {
  "category": "Unit conversions",
  "import": "import { A4_to_tuning } from 'pleco-xa/convert'",
  "description": "Convert reference pitch A4 frequency to tuning deviation"
 },
 "convert.a_weighting": {
  "category": "Unit conversions",
  "import": "import { a_weighting } from 'pleco-xa/convert'",
  "description": "A-weighting of frequency"
 },
 "convert.amplitude_to_db": {
  "category": "Unit conversions",
  "import": "import { amplitude_to_db } from 'pleco-xa/convert'",
  "description": "Convert amplitude to decibels"
 },
 "convert.b_weighting": {
  "category": "Unit conversions",
  "import": "import { b_weighting } from 'pleco-xa/convert'",
  "description": "B-weighting of frequency"
 },
 "convert.blocks_to_frames": {
  "category": "Unit conversions",
  "import": "import { blocks_to_frames } from 'pleco-xa/convert'",
  "description": "Convert block indices to frame indices"
 },
 "convert.blocks_to_samples": {
  "category": "Unit conversions",
  "import": "import { blocks_to_samples } from 'pleco-xa/convert'",
  "description": "Convert block indices to sample indices"
 },
 "convert.blocks_to_time": {
  "category": "Unit conversions",
  "import": "import { blocks_to_time } from 'pleco-xa/convert'",
  "description": "Convert block indices to time (in seconds)"
 },
 "convert.c_weighting": {
  "category": "Unit conversions",
  "import": "import { c_weighting } from 'pleco-xa/convert'",
  "description": "C-weighting of frequency"
 },
 "convert.cqt_frequencies": {
  "category": "Unit conversions",
  "import": "import { cqt_frequencies } from 'pleco-xa/convert'",
  "description": "Compute CQT (Constant-Q Transform) frequencies"
 },
 "convert.d_weighting": {
  "category": "Unit conversions",
  "import": "import { d_weighting } from 'pleco-xa/convert'",
  "description": "D-weighting of frequency"
 },
 "convert.db_to_amplitude": {
  "category": "Unit conversions",
  "import": "import { db_to_amplitude } from 'pleco-xa/convert'",
  "description": "Convert decibels to amplitude"
 },
 "convert.db_to_power": {
  "category": "Unit conversions",
  "import": "import { db_to_power } from 'pleco-xa/convert'",
  "description": "Convert decibels to power"
 },
 "convert.fft_frequencies": {
  "category": "Unit conversions",
  "import": "import { fft_frequencies } from 'pleco-xa/convert'",
  "description": "Compute FFT frequencies"
 },
 "convert.fourier_tempo_frequencies": {
  "category": "Unit conversions",
  "import": "import { fourier_tempo_frequencies } from 'pleco-xa/convert'",
  "description": "Compute Fourier tempogram frequencies"
 },
 "convert.frames_to_samples": {
  "category": "Unit conversions",
  "import": "import { frames_to_samples } from 'pleco-xa/convert'",
  "description": "Convert frame indices to sample indices"
 },
 "convert.frames_to_time": {
  "category": "Unit conversions",
  "import": "import { frames_to_time } from 'pleco-xa/convert'",
  "description": "Convert frame indices to time (seconds)"
 },
 "convert.frequency_weighting": {
  "category": "Unit conversions",
  "import": "import { frequency_weighting } from 'pleco-xa/convert'",
  "description": "General frequency weighting function (wrapper for A/B/C/D/Z weightings)"
 },
 "convert.hz_to_mel": {
  "category": "Unit conversions",
  "import": "import { hz_to_mel } from 'pleco-xa/convert'",
  "description": "Convert Hz to Mel scale"
 },
 "convert.hz_to_midi": {
  "category": "Unit conversions",
  "import": "import { hz_to_midi } from 'pleco-xa/convert'",
  "description": "Convert Hz to MIDI note number"
 },
 "convert.hz_to_note": {
  "category": "Unit conversions",
  "import": "import { hz_to_note } from 'pleco-xa/convert'",
  "description": "Convert Hz to note name"
 },
 "convert.hz_to_octs": {
  "category": "Unit conversions",
  "import": "import { hz_to_octs } from 'pleco-xa/convert'",
  "description": "Convert Hz to octaves (relative to C0)"
 },
 "convert.lag_to_tempo": {
  "category": "Unit conversions",
  "import": "import { lag_to_tempo } from 'pleco-xa/convert'",
  "description": "Convert lag (in frames) to BPM"
 },
 "convert.mel_frequencies": {
  "category": "Unit conversions",
  "import": "import { mel_frequencies } from 'pleco-xa/convert'",
  "description": "Compute the mel-scale frequencies"
 },
 "convert.mel_to_hz": {
  "category": "Unit conversions",
  "import": "import { mel_to_hz } from 'pleco-xa/convert'",
  "description": "Convert Mel scale to Hz"
 },
 "convert.midi_to_hz": {
  "category": "Unit conversions",
  "import": "import { midi_to_hz } from 'pleco-xa/convert'",
  "description": "Convert MIDI note number to Hz"
 },
 "convert.midi_to_note": {
  "category": "Unit conversions",
  "import": "import { midi_to_note } from 'pleco-xa/convert'",
  "description": "Convert MIDI note number to note name"
 },
 "convert.multi_frequency_weighting": {
  "category": "Unit conversions",
  "import": "import { multi_frequency_weighting } from 'pleco-xa/convert'",
  "description": "Compute multiple frequency weightings at once"
 },
 "convert.note_to_hz": {
  "category": "Unit conversions",
  "import": "import { note_to_hz } from 'pleco-xa/convert'",
  "description": "Convert note name to Hz"
 },
 "convert.note_to_midi": {
  "category": "Unit conversions",
  "import": "import { note_to_midi } from 'pleco-xa/convert'",
  "description": "Convert note name to MIDI note number"
 },
 "convert.octs_to_hz": {
  "category": "Unit conversions",
  "import": "import { octs_to_hz } from 'pleco-xa/convert'",
  "description": "Convert octaves to Hz"
 },
 "convert.perceptual_weighting": {
  "category": "Unit conversions",
  "import": "import { perceptual_weighting } from 'pleco-xa/convert'",
  "description": "Perceptual weighting curve (approximate)"
 },
 "convert.power_to_db": {
  "category": "Unit conversions",
  "import": "import { power_to_db } from 'pleco-xa/convert'",
  "description": "Convert power to decibels"
 },
 "convert.samples_like": {
  "category": "Unit conversions",
  "import": "import { samples_like } from 'pleco-xa/convert'",
  "description": "Return an array of sample indices to match the time axis from a feature matrix"
 },
 "convert.samples_to_frames": {
  "category": "Unit conversions",
  "import": "import { samples_to_frames } from 'pleco-xa/convert'",
  "description": "Convert audio samples to frame indices"
 },
 "convert.samples_to_time": {
  "category": "Unit conversions",
  "import": "import { samples_to_time } from 'pleco-xa/convert'",
  "description": "Convert sample indices to time (seconds)"
 },
 "convert.tempo_frequencies": {
  "category": "Unit conversions",
  "import": "import { tempo_frequencies } from 'pleco-xa/convert'",
  "description": "Compute the tempo frequencies (in BPM) corresponding to lag-tempogram bins."
 },
 "convert.tempo_to_lag": {
  "category": "Unit conversions",
  "import": "import { tempo_to_lag } from 'pleco-xa/convert'",
  "description": "Convert BPM to lag (in frames)"
 },
 "convert.time_to_frames": {
  "category": "Unit conversions",
  "import": "import { time_to_frames } from 'pleco-xa/convert'",
  "description": "Convert time (seconds) to frame indices"
 },
 "convert.time_to_samples": {
  "category": "Unit conversions",
  "import": "import { time_to_samples } from 'pleco-xa/convert'",
  "description": "Convert time (seconds) to sample indices"
 },
 "convert.times_like": {
  "category": "Unit conversions",
  "import": "import { times_like } from 'pleco-xa/convert'",
  "description": "Return an array of time values to match the time axis from a feature matrix"
 },
 "convert.tuning_to_A4": {
  "category": "Unit conversions",
  "import": "import { tuning_to_A4 } from 'pleco-xa/convert'",
  "description": "Convert tuning deviation to A4 reference frequency"
 },
 "convert.z_weighting": {
  "category": "Unit conversions",
  "import": "import { z_weighting } from 'pleco-xa/convert'",
  "description": "Z-weighting (flat/no weighting) for frequency analysis"
 },
 "notation.fifths_to_note": {
  "category": "Music notation",
  "import": "import { fifths_to_note } from 'pleco-xa/notation'",
  "description": "Calculate the note name for a given number of perfect fifths"
 },
 "notation.hz_to_fjs": {
  "category": "Music notation",
  "import": "import { hz_to_fjs } from 'pleco-xa/notation'",
  "description": "Convert one or more frequencies (in Hz) to Functional Just System (FJS) notation"
 },
 "notation.hz_to_svara_c": {
  "category": "Music notation",
  "import": "import { hz_to_svara_c } from 'pleco-xa/notation'",
  "description": "Convert frequencies (in Hz) to Carnatic svara notation within a melakarta raga"
 },
 "notation.hz_to_svara_h": {
  "category": "Music notation",
  "import": "import { hz_to_svara_h } from 'pleco-xa/notation'",
  "description": "Convert frequencies (in Hz) to Hindustani svara notation"
 },
 "notation.interval_to_fjs": {
  "category": "Music notation",
  "import": "import { interval_to_fjs } from 'pleco-xa/notation'",
  "description": "Convert an interval to Functional Just System (FJS) notation"
 },
 "notation.key_to_degrees": {
  "category": "Music notation",
  "import": "import { key_to_degrees } from 'pleco-xa/notation'",
  "description": "Construct the diatonic scale degrees for a given key"
 },
 "notation.key_to_notes": {
  "category": "Music notation",
  "import": "import { key_to_notes } from 'pleco-xa/notation'",
  "description": "List all 12 chromatic note names as spelled according to a given key."
 },
 "notation.list_mela": {
  "category": "Music notation",
  "import": "import { list_mela } from 'pleco-xa/notation'",
  "description": "List melakarta ragas by name and index"
 },
 "notation.list_thaat": {
  "category": "Music notation",
  "import": "import { list_thaat } from 'pleco-xa/notation'",
  "description": "List supported thaats by name"
 },
 "notation.mela_to_degrees": {
  "category": "Music notation",
  "import": "import { mela_to_degrees } from 'pleco-xa/notation'",
  "description": "Construct the svara indices (degrees) for a given melakarta raga"
 },
 "notation.mela_to_svara": {
  "category": "Music notation",
  "import": "import { mela_to_svara } from 'pleco-xa/notation'",
  "description": "Spell the Carnatic svara names for a given melakarta raga"
 },
 "notation.midi_to_svara_c": {
  "category": "Music notation",
  "import": "import { midi_to_svara_c } from 'pleco-xa/notation'",
  "description": "Convert MIDI numbers to Carnatic svara within a melakarta raga"
 },
 "notation.midi_to_svara_h": {
  "category": "Music notation",
  "import": "import { midi_to_svara_h } from 'pleco-xa/notation'",
  "description": "Convert MIDI numbers to Hindustani svara"
 },
 "notation.note_to_svara_c": {
  "category": "Music notation",
  "import": "import { note_to_svara_c } from 'pleco-xa/notation'",
  "description": "Convert western note names to Carnatic svara within a melakarta raga"
 },
 "notation.note_to_svara_h": {
  "category": "Music notation",
  "import": "import { note_to_svara_h } from 'pleco-xa/notation'",
  "description": "Convert western note names to Hindustani svara"
 },
 "notation.thaat_to_degrees": {
  "category": "Music notation",
  "import": "import { thaat_to_degrees } from 'pleco-xa/notation'",
  "description": "Construct the svara indices (degrees) for a given thaat"
 },
 "intervals.compareTuningSystems": {
  "category": "Intervals",
  "import": "import { compareTuningSystems } from 'pleco-xa/intervals'",
  "description": "Compare different tuning systems"
 },
 "intervals.generateFrequencies": {
  "category": "Intervals",
  "import": "import { generateFrequencies } from 'pleco-xa/intervals'",
  "description": "Quick frequency generation utility"
 },
 "intervals.interval_frequencies": {
  "category": "Intervals",
  "import": "import { interval_frequencies } from 'pleco-xa/intervals'",
  "description": "Construct interval frequencies (convenience wrapper)"
 },
 "intervals.plimit_intervals": {
  "category": "Intervals",
  "import": "import { plimit_intervals } from 'pleco-xa/intervals'",
  "description": "Construct p-limit intervals (convenience wrapper)"
 },
 "intervals.pythagorean_intervals": {
  "category": "Intervals",
  "import": "import { pythagorean_intervals } from 'pleco-xa/intervals'",
  "description": "Construct Pythagorean intervals (convenience wrapper)"
 },
 "linalg.eigh": {
  "category": "Linear algebra",
  "import": "import { eigh } from 'pleco-xa/linalg'",
  "description": "Symmetric eigendecomposition via cyclic Jacobi rotations."
 },
 "linalg.laplacian": {
  "category": "Linear algebra",
  "import": "import { laplacian } from 'pleco-xa/linalg'",
  "description": "Normalized graph Laplacian of a dense weight matrix."
 },
 "cluster.kmeans": {
  "category": "Clustering",
  "import": "import { kmeans } from 'pleco-xa/cluster'",
  "description": "K-means clustering — Lloyd's algorithm with greedy k-means++ seeding."
 },
 "analyzeWaveform": {
  "category": "Display & visualization",
  "import": "import { analyzeWaveform } from 'pleco-xa'",
  "description": "Calculates waveform statistics for analysis"
 },
 "cmap": {
  "category": "Display & visualization",
  "import": "import { cmap } from 'pleco-xa'",
  "description": "Get a default colormap from the given data"
 },
 "createInteractiveRenderer": {
  "category": "Display & visualization",
  "import": "import { createInteractiveRenderer } from 'pleco-xa'",
  "description": "Creates an interactive waveform renderer with events"
 },
 "drawWaveform": {
  "category": "Display & visualization",
  "import": "import { drawWaveform } from 'pleco-xa'",
  "description": "Draw waveform visualization"
 },
 "getStereoWaveformPeaks": {
  "category": "Display & visualization",
  "import": "import { getStereoWaveformPeaks } from 'pleco-xa'",
  "description": "Extracts stereo waveform data for left and right channels"
 },
 "getTimebasedWaveform": {
  "category": "Display & visualization",
  "import": "import { getTimebasedWaveform } from 'pleco-xa'",
  "description": "Generates time-based waveform data with precise time stamps"
 },
 "getWaveformPeaks": {
  "category": "Display & visualization",
  "import": "import { getWaveformPeaks } from 'pleco-xa'",
  "description": "Extracts waveform peaks suitable for visualization"
 },
 "getWaveformRange": {
  "category": "Display & visualization",
  "import": "import { getWaveformRange } from 'pleco-xa'",
  "description": "Generates waveform data for a specific time range"
 },
 "harmonic_product_spectrum": {
  "category": "Display & visualization",
  "import": "import { harmonic_product_spectrum } from 'pleco-xa'",
  "description": "Compute harmonic product spectrum (HPS) for pitch detection"
 },
 "renderStaticSpectrum": {
  "category": "Display & visualization",
  "import": "import { renderStaticSpectrum } from 'pleco-xa'",
  "description": "Renders static spectrum analysis of audio buffer"
 },
 "renderStereoWaveform": {
  "category": "Display & visualization",
  "import": "import { renderStereoWaveform } from 'pleco-xa'",
  "description": "Renders stereo waveform with separate channels"
 },
 "renderWaveform": {
  "category": "Display & visualization",
  "import": "import { renderWaveform } from 'pleco-xa'",
  "description": "Renders waveform data to a canvas element"
 },
 "specshow": {
  "category": "Display & visualization",
  "import": "import { specshow } from 'pleco-xa'",
  "description": "Display a spectrogram/chromagram/CQT/etc on a Canvas element"
 },
 "waveshow": {
  "category": "Display & visualization",
  "import": "import { waveshow } from 'pleco-xa'",
  "description": "Visualize a waveform in the time domain on a Canvas element"
 },
 "audioio.autocorrelate": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { autocorrelate } from 'pleco-xa/audioio'",
  "description": "Autocorrelation of a signal up to a maximum lag."
 },
 "audioio.chirp": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { chirp } from 'pleco-xa/audioio'",
  "description": "Synthesize a linear or exponential frequency sweep (chirp)."
 },
 "audioio.clicks": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { clicks } from 'pleco-xa/audioio'",
  "description": "Synthesize a click track at the given times or frames."
 },
 "audioio.getDuration": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { getDuration } from 'pleco-xa/audioio'",
  "description": "Compute a signal's duration in seconds from its length and sample rate."
 },
 "audioio.getSamplerate": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { getSamplerate } from 'pleco-xa/audioio'",
  "description": "Read the sample rate of an AudioBuffer."
 },
 "audioio.load": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { load } from 'pleco-xa/audioio'",
  "description": "Fetch and decode an audio file, with optional mono downmix, resampling, offset, and duration.",
  "equivalent": "librosa.resample"
 },
 "audioio.lpc": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { lpc } from 'pleco-xa/audioio'",
  "description": "Burg LPC (real‑valued) — returns LPC denominator polynomial a[0..p], a[0] == 1"
 },
 "audioio.muCompress": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { muCompress } from 'pleco-xa/audioio'",
  "description": "mu-law compress a signal, optionally quantizing to integer codewords."
 },
 "audioio.muExpand": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { muExpand } from 'pleco-xa/audioio'",
  "description": "mu-law expand (decode) a companded signal back to linear amplitude."
 },
 "audioio.play": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { play } from 'pleco-xa/audioio'",
  "description": "Play the currently loaded audio through the Web Audio API, optionally looping."
 },
 "audioio.resample": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { resample } from 'pleco-xa/audioio'",
  "description": "Linearly resample a signal from one sample rate to another."
 },
 "audioio.stop": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { stop } from 'pleco-xa/audioio'",
  "description": "Stop the current Web Audio playback and release the source node."
 },
 "audioio.toMono": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { toMono } from 'pleco-xa/audioio'",
  "description": "Downmix multi-channel audio to a single mono channel by averaging."
 },
 "audioio.tone": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { tone } from 'pleco-xa/audioio'",
  "description": "Synthesize a pure sinusoidal tone at a given frequency."
 },
 "audioio.zeroCrossings": {
  "category": "Audio I/O — synthesis & codecs",
  "import": "import { zeroCrossings } from 'pleco-xa/audioio'",
  "description": "Mark the sample positions where the signal changes sign."
 },
 "file.cache": {
  "category": "Audio I/O — files & cache",
  "import": "import { cache } from 'pleco-xa/file'",
  "description": "Get cache management interface"
 },
 "file.createAudioContext": {
  "category": "Audio I/O — files & cache",
  "import": "import { createAudioContext } from 'pleco-xa/file'",
  "description": "Create a new Web Audio API context with proper configuration"
 },
 "file.createVisualization": {
  "category": "Audio I/O — files & cache",
  "import": "import { createVisualization } from 'pleco-xa/file'",
  "description": "Create audio visualization data"
 },
 "file.example": {
  "category": "Audio I/O — files & cache",
  "import": "import { example } from 'pleco-xa/file'",
  "description": "Load example audio file from remote source"
 },
 "file.exampleAudio": {
  "category": "Audio I/O — files & cache",
  "import": "import { exampleAudio } from 'pleco-xa/file'",
  "description": "Get audio data as Float32Array from AudioBuffer"
 },
 "file.exampleBuffer": {
  "category": "Audio I/O — files & cache",
  "import": "import { exampleBuffer } from 'pleco-xa/file'",
  "description": "Load and decode audio example to AudioBuffer"
 },
 "file.exampleInfo": {
  "category": "Audio I/O — files & cache",
  "import": "import { exampleInfo } from 'pleco-xa/file'",
  "description": "Get metadata for a specific example"
 },
 "file.isWebAudioSupported": {
  "category": "Audio I/O — files & cache",
  "import": "import { isWebAudioSupported } from 'pleco-xa/file'",
  "description": "Utility function to check if Web Audio API is available"
 },
 "file.listExamples": {
  "category": "Audio I/O — files & cache",
  "import": "import { listExamples } from 'pleco-xa/file'",
  "description": "List all available audio examples"
 },
 "file.saveAudio": {
  "category": "Audio I/O — files & cache",
  "import": "import { saveAudio } from 'pleco-xa/file'",
  "description": "Save audio data as downloadable file"
 },
 "fileio.cite": {
  "category": "Audio I/O — streaming",
  "import": "import { cite } from 'pleco-xa/fileio'",
  "description": "Get citation information for the pleco-xa library"
 },
 "fileio.createMediaStreamProcessor": {
  "category": "Audio I/O — streaming",
  "import": "import { createMediaStreamProcessor } from 'pleco-xa/fileio'",
  "description": "Create a real-time audio stream processor for live input"
 },
 "fileio.find_files": {
  "category": "Audio I/O — streaming",
  "import": "import { find_files } from 'pleco-xa/fileio'",
  "description": "Get a sorted list of audio files using File System Access API"
 },
 "fileio.stream": {
  "category": "Audio I/O — streaming",
  "import": "import { stream } from 'pleco-xa/fileio'",
  "description": "Chunked audio reader (not true streaming)."
 },
 "applyLiveDoubleSpeed": {
  "category": "Audio I/O & playback",
  "import": "import { applyLiveDoubleSpeed } from 'pleco-xa'",
  "description": "Raise live playback to double speed in real time (crossfaded playback rate, or pitch-preserving resample)."
 },
 "applyLiveHalfSpeed": {
  "category": "Audio I/O & playback",
  "import": "import { applyLiveHalfSpeed } from 'pleco-xa'",
  "description": "Drop live playback to half speed in real time (crossfaded playback rate, or pitch-preserving resample)."
 },
 "createAudioBlob": {
  "category": "Audio I/O & playback",
  "import": "import { createAudioBlob } from 'pleco-xa'",
  "description": "Encode an AudioBuffer's first channel as a WAV Blob."
 },
 "decodeWav": {
  "category": "Audio I/O & playback",
  "import": "import { decodeWav } from 'pleco-xa'",
  "description": "Decode a WAV file into planar Float32Array channels (PCM 16/24/32-bit integer and 32-bit float)."
 },
 "encodeWav": {
  "category": "Audio I/O & playback",
  "import": "import { encodeWav } from 'pleco-xa'",
  "description": "Encode planar channel data as an interleaved 16-bit PCM WAV file."
 },
 "exportBufferAsWav": {
  "category": "Audio I/O & playback",
  "import": "import { exportBufferAsWav } from 'pleco-xa'",
  "description": "Export an AudioBuffer as a .wav file."
 },
 "findAudioStart": {
  "category": "Audio I/O & playback",
  "import": "import { findAudioStart } from 'pleco-xa'",
  "description": "Find where audible audio begins (first sample above a threshold, snapped to the nearest zero crossing)."
 },
 "initAudioProcessor": {
  "category": "Audio I/O & playback",
  "import": "import { initAudioProcessor } from 'pleco-xa'",
  "description": "Initialize the audio processor"
 },
 "loadAudioFile": {
  "category": "Audio I/O & playback",
  "import": "import { loadAudioFile } from 'pleco-xa'",
  "description": "Load audio file (from URL or File object)"
 },
 "loadFile": {
  "category": "Audio I/O & playback",
  "import": "import { loadFile } from 'pleco-xa'",
  "description": "Load local audio file from user input"
 },
 "mel_to_audio": {
  "category": "Audio I/O & playback",
  "import": "import { mel_to_audio } from 'pleco-xa'",
  "description": "Invert a mel power spectrogram to audio using Griffin-Lim"
 },
 "mfcc_to_audio": {
  "category": "Audio I/O & playback",
  "import": "import { mfcc_to_audio } from 'pleco-xa'",
  "description": "Convert Mel-frequency cepstral coefficients to a time-domain audio signal"
 },
 "resetLiveSpeed": {
  "category": "Audio I/O & playback",
  "import": "import { resetLiveSpeed } from 'pleco-xa'",
  "description": "Reset live playback back to normal (1x) speed."
 },
 "valid_audio": {
  "category": "Audio I/O & playback",
  "import": "import { valid_audio } from 'pleco-xa'",
  "description": "Determine whether a variable contains valid audio data"
 },
 "playback.closeGapLeft": {
  "category": "Playback",
  "import": "import { closeGapLeft } from 'pleco-xa/playback'",
  "description": "Close a detected gap by shifting the audio after it left. The normalized loop end is preserved."
 },
 "playback.closeGapRight": {
  "category": "Playback",
  "import": "import { closeGapRight } from 'pleco-xa/playback'",
  "description": "Close a detected gap by removing it and rescaling the loop end to the shorter buffer."
 },
 "playback.createBufferLike": {
  "category": "Playback",
  "import": "import { createBufferLike } from 'pleco-xa/playback'",
  "description": "Default pure buffer factory: an AudioBuffer-shaped object backed by Float32Array channels."
 },
 "playback.detectGap": {
  "category": "Playback",
  "import": "import { detectGap } from 'pleco-xa/playback'",
  "description": "Detect a gap (silence across all channels) after the loop end."
 },
 "playback.doubleSpeedQuantzLoop": {
  "category": "Playback",
  "import": "import { doubleSpeedQuantzLoop } from 'pleco-xa/playback'",
  "description": "Double speed quantz — gapless: compress the loop content at 2x speed into half the space and re-fill."
 },
 "playback.doubleSpeedUnquantzLoop": {
  "category": "Playback",
  "import": "import { doubleSpeedUnquantzLoop } from 'pleco-xa/playback'",
  "description": "Double speed unquantz: compress the loop content at 2x speed in place (track length unchanged)."
 },
 "playback.halfSpeedLoop": {
  "category": "Playback",
  "import": "import { halfSpeedLoop } from 'pleco-xa/playback'",
  "description": "Half speed (time stretch) a loop section. The loop region is stretched to 2x its length."
 },
 "playback.halfSpeedQuantzLoop": {
  "category": "Playback",
  "import": "import { halfSpeedQuantzLoop } from 'pleco-xa/playback'",
  "description": "Half speed quantz: time-stretch the loop content at half speed but mask it to the original length."
 },
 "playback.revealFirstHalf": {
  "category": "Playback",
  "import": "import { revealFirstHalf } from 'pleco-xa/playback'",
  "description": "Reveal the first half of a half-speed-quantz'd loop (counterpart of revealHiddenHalf; toggles back)."
 },
 "playback.revealHiddenHalf": {
  "category": "Playback",
  "import": "import { revealHiddenHalf } from 'pleco-xa/playback'",
  "description": "Reveal the \"hidden\" second half of a half-speed-quantz'd loop by replacing the loop window with it."
 },
 "playback.reverseSection": {
  "category": "Playback",
  "import": "import { reverseSection } from 'pleco-xa/playback'",
  "description": "Reverse a sample range of a buffer without mutating the input (copy-then-reverse)."
 },
 "applyOperationEnhanced": {
  "category": "Experimental & creative play",
  "import": "import { applyOperationEnhanced } from 'pleco-xa'",
  "description": "Apply a loop operation with live responsiveness — large reverse operations run in chunks with progress callbacks."
 },
 "applyQuantumOp": {
  "category": "Experimental & creative play",
  "import": "import { applyQuantumOp } from 'pleco-xa'",
  "description": "Apply a single named operation (half, double, move, reverse, reset, stutter, phase, fractal) to a buffer and loop."
 },
 "buildQuantumOpList": {
  "category": "Experimental & creative play",
  "import": "import { buildQuantumOpList } from 'pleco-xa'",
  "description": "Build an operation list by warping a random seed through vector space and injecting preset accent bars."
 },
 "buildQuantumSequence": {
  "category": "Experimental & creative play",
  "import": "import { buildQuantumSequence } from 'pleco-xa'",
  "description": "Turn an operation list into a list of executable playback steps, each applying one operation to the buffer and loop."
 },
 "checkBufferSafety": {
  "category": "Experimental & creative play",
  "import": "import { checkBufferSafety } from 'pleco-xa'",
  "description": "Validate a buffer and loop range, reporting whether the operation is safe along with any issues and loop metrics."
 },
 "doubleLoop": {
  "category": "Experimental & creative play",
  "import": "import { doubleLoop } from 'pleco-xa'",
  "description": "Double a loop descriptor's length by extending its end, clamped to the buffer length."
 },
 "executeOperation": {
  "category": "Experimental & creative play",
  "import": "import { executeOperation } from 'pleco-xa'",
  "description": "Apply a single named loop operation (half, double, move, reverse, reset, stutter, fractal, phase) to a buffer and loop."
 },
 "generateChaotic": {
  "category": "Experimental & creative play",
  "import": "import { generateChaotic } from 'pleco-xa'",
  "description": "Generate a chaotic sequence of loop operations driven by a logistic-map iterator."
 },
 "generateFibonacci": {
  "category": "Experimental & creative play",
  "import": "import { generateFibonacci } from 'pleco-xa'",
  "description": "Generate a Fibonacci-patterned sequence of loop operations."
 },
 "generatePrimeRhythm": {
  "category": "Experimental & creative play",
  "import": "import { generatePrimeRhythm } from 'pleco-xa'",
  "description": "Generate a prime-number-driven rhythmic sequence of loop operations."
 },
 "generateWaveform": {
  "category": "Experimental & creative play",
  "import": "import { generateWaveform } from 'pleco-xa'",
  "description": "Generate a sine-wave-modulated sequence of loop operations."
 },
 "glitchBurst": {
  "category": "Experimental & creative play",
  "import": "import { glitchBurst } from 'pleco-xa'",
  "description": "Run a time-boxed burst of randomized loop glitches on an internal clock; returns a stop function."
 },
 "halfLoop": {
  "category": "Experimental & creative play",
  "import": "import { halfLoop } from 'pleco-xa'",
  "description": "Halve a loop descriptor, keeping the start and moving the end to the midpoint."
 },
 "isLargeOperation": {
  "category": "Experimental & creative play",
  "import": "import { isLargeOperation } from 'pleco-xa'",
  "description": "Decide whether a loop operation counts as large (long loop, high buffer share, or long file) and warrants chunked processing."
 },
 "moveForward": {
  "category": "Experimental & creative play",
  "import": "import { moveForward } from 'pleco-xa'",
  "description": "Advance a loop descriptor forward by a number of samples, clamped so it never runs past the buffer end."
 },
 "playQuantumOps": {
  "category": "Experimental & creative play",
  "import": "import { playQuantumOps } from 'pleco-xa'",
  "description": "Play a quantum operation sequence with adaptive, oscillating per-operation timing."
 },
 "randomLocal": {
  "category": "Experimental & creative play",
  "import": "import { randomLocal } from 'pleco-xa'",
  "description": "Apply a short random burst of loop operations to the current loop and return the result."
 },
 "randomPreset": {
  "category": "Experimental & creative play",
  "import": "import { randomPreset } from 'pleco-xa'",
  "description": "Return a randomly chosen preset beat pattern (an eight-step operation bar) for injection into a sequence."
 },
 "randomSequence": {
  "category": "Experimental & creative play",
  "import": "import { randomSequence } from 'pleco-xa'",
  "description": "Build a randomized sequence of loop-manipulation steps (move, half, double, reverse, reset) for live playback."
 },
 "resetLoop": {
  "category": "Experimental & creative play",
  "import": "import { resetLoop } from 'pleco-xa'",
  "description": "Reset a loop descriptor to span the entire buffer."
 },
 "reverseBufferSection": {
  "category": "Experimental & creative play",
  "import": "import { reverseBufferSection } from 'pleco-xa'",
  "description": "Reverse a sample range of a buffer in place (mutates the buffer)."
 },
 "signatureDemo": {
  "category": "Experimental & creative play",
  "import": "import { signatureDemo } from 'pleco-xa'",
  "description": "Build the library's fixed signature demo — narrow, move, reverse, grow, and finish — as a list of playable steps."
 },
 "startBeatGlitch": {
  "category": "Experimental & creative play",
  "import": "import { startBeatGlitch } from 'pleco-xa'",
  "description": "Start a beat-synchronized glitch that fires random loop operations once per detected bar; returns a stop function."
 }
}
