/** * Constant-Q Transform of an audio signal (single-pass * evaluation — see module header for documented divergences). * * Legacy positional signature preserved. * * @param {Float32Array} y - Audio time series * @param {number} sr - Sample rate * @param {number} hop_length - Samples between successive CQT columns * @param {number|null} fmin - Minimum frequency (Hz); defaults to C1 * @param {number} n_bins - Number of frequency bins * @param {number} bins_per_octave - Bins per octave * @param {number} tuning - Tuning offset in fractions of a bin * @param {number} filter_scale - Filter scale factor * @param {number|null} norm - Filter normalization (1, 2, Infinity, or null) * @param {number} sparsity - Accepted but not applied (dense basis) * @param {string} window - Window function ('hann' only) * @param {boolean} scale - Divide by sqrt(filter length) (scale=True) * @param {string} pad_mode - Padding mode for signal edges * @returns {Array>} CQT [n_bins][n_frames] * with n_frames = 1 + floor(len(y)/hop_length) * @throws {Error} on invalid parameters or a filterbank exceeding Nyquist */ export function cqt(y: Float32Array, sr?: number, hop_length?: number, fmin?: number | null, n_bins?: number, bins_per_octave?: number, tuning?: number, filter_scale?: number, norm?: number | null, sparsity?: number, window?: string, scale?: boolean, pad_mode?: string): Array>; /** * Variable-Q Transform. intervals='equal' with the default * ERB-derived gamma (24.7 * alpha / 0.108); pass gamma=0 to recover cqt(). * Custom interval arrays build freqs[i] = fmin * 2^floor(i/len) * ratio. * * @param {Float32Array} y - Audio time series * @param {number} sr - Sample rate * @param {number} hop_length - Hop length * @param {number|null} fmin - Minimum frequency (default C1) * @param {number} n_bins - Number of bins * @param {string|Array} intervals - 'equal' or interval ratios * @param {number|null} gamma - Bandwidth offset (null = ERB default) * @param {number} bins_per_octave - Bins per octave for 'equal' * @param {number} tuning - Tuning offset in bins * @param {number} filter_scale - Filter scale factor * @param {number|null} norm - Filter normalization * @param {number} sparsity - Accepted but not applied * @param {string} window - Window function ('hann' only) * @param {boolean} scale - Divide by sqrt(filter length) * @param {string} pad_mode - Padding mode * @returns {Array>} VQT [n_bins][n_frames] */ export function vqt(y: Float32Array, sr?: number, hop_length?: number, fmin?: number | null, n_bins?: number, intervals?: string | Array, gamma?: number | null, bins_per_octave?: number, tuning?: number, filter_scale?: number, norm?: number | null, sparsity?: number, window?: string, scale?: boolean, pad_mode?: string): Array>; /** * Pseudo-CQT: magnitude-only approximation |fft_basis| · |STFT| * (pseudo-CQT shape). Returns REAL magnitudes, not complex values. * * @param {Float32Array} y - Audio time series * @param {number} sr - Sample rate * @param {number} hop_length - Hop length * @param {number|null} fmin - Minimum frequency (default C1) * @param {number} n_bins - Number of bins * @param {number} bins_per_octave - Bins per octave * @param {number} tuning - Tuning offset in bins * @param {number} filter_scale - Filter scale * @param {number|null} norm - Filter normalization * @param {number} sparsity - Accepted but not applied * @param {string} window - Window function ('hann' only) * @param {boolean} scale - pseudo-CQT scaling (sqrt(n_fft/lengths)) * @param {string} pad_mode - Padding mode * @returns {Array} magnitude matrix [n_bins][n_frames] */ export function pseudo_cqt(y: Float32Array, sr?: number, hop_length?: number, fmin?: number | null, n_bins?: number, bins_per_octave?: number, tuning?: number, filter_scale?: number, norm?: number | null, sparsity?: number, window?: string, scale?: boolean, pad_mode?: string): Array; /** * Hybrid CQT: pseudo-CQT for the top two octaves stacked over the full CQT * for the rest. Returns MAGNITUDES (hybrid-CQT shape). * * @param {Float32Array} y - Audio time series * @param {number} sr - Sample rate * @param {number} hop_length - Hop length * @param {number|null} fmin - Minimum frequency (default C1) * @param {number} n_bins - Number of bins * @param {number} bins_per_octave - Bins per octave * @param {number} tuning - Tuning offset in bins * @param {number} filter_scale - Filter scale * @param {number|null} norm - Filter normalization * @param {number} sparsity - Accepted but not applied * @param {string} window - Window function ('hann' only) * @param {boolean} scale - Scaling flag * @param {string} pad_mode - Padding mode * @returns {Array} magnitude matrix [n_bins][n_frames] */ export function hybrid_cqt(y: Float32Array, sr?: number, hop_length?: number, fmin?: number | null, n_bins?: number, bins_per_octave?: number, tuning?: number, filter_scale?: number, norm?: number | null, sparsity?: number, window?: string, scale?: boolean, pad_mode?: string): Array; /** * Inverse CQT is NOT implemented. The previous body * overlap-added the ANALYSIS wavelets (a correct inverse reconstructs through * the dual frame with per-octave resampling) via an O(N^2) DFT loop, producing * unusable output. It now fails honestly instead. * @throws {Error} always */ export function icqt(): void; /** * Griffin-Lim CQT reconstruction depends on icqt and is therefore NOT * implemented. Fails honestly. For STFT-magnitude reconstruction use the * repaired griffinlim in scripts/xa-advanced.js. * @throws {Error} always */ export function griffinlim_cqt(): void;