Metadata-Version: 2.4
Name: cicuetea
Version: 1.0.0
Summary: Real-time invertible Constant-Q Transform (CQT) engine based on nonstationary Gabor frames — Python reference implementation
Project-URL: Homepage, https://github.com/jdsierral/CiCueTea
Project-URL: Documentation, https://jdsierral.github.io/CiCueTea/
Project-URL: Repository, https://github.com/jdsierral/CiCueTea
Author: Juan Sierra
License-Expression: MIT
Keywords: audio,constant-q transform,cqt,dsp,nsgf,spectral processing
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Sound/Audio :: Analysis
Requires-Python: >=3.9
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: demo
Requires-Dist: matplotlib; extra == 'demo'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Description-Content-Type: text/markdown

# cicuetea

Python reference implementation of **CiCueTea**, a real-time, invertible
Constant-Q Transform (CQT) engine based on nonstationary Gabor frames (NSGF).

This package is an offline, NumPy/SciPy reference — dense and sparse forward/inverse
transforms, sparse-to-dense rasterization, and the block slicing/splicing utilities used to
build a streaming pipeline on top of it. The real-time, allocation-free implementation lives
in the C++ library this package accompanies.

```python
import numpy as np
from cicuetea import NsgfCQT

fs, n_samples, frac, f_min, f_max = 48000, 2**16, 1 / 48, 100, 10000
x = np.random.randn(n_samples)

cqt = NsgfCQT("dense", fs, n_samples, frac, f_min, f_max)
X = cqt.forward(x)
y = cqt.inverse(X)
```

Full documentation, the C++ engine, and the MATLAB reference implementation live at
<https://github.com/jdsierral/CiCueTea>.

## License

MIT — see [LICENSE](https://github.com/jdsierral/CiCueTea/blob/main/LICENSE).
