A reference implementation of the Resonate algorithm in C++ for Python.
Project description
Resonate
A reference implementation of the Resonate algorithm in C++ for Python, using pybind11. The C++ code uses the Accelerate framework and will only work on Mac/iOS platforms.
This is a crude version to demonstrate the capabilities of the algorithm through Jupyter notebooks.
The goal is to turn this into a proper Python package - contributions welcome!
Author: Alexandre R.J. François
Installation
-
download, checkout or clone this repository
-
pip install .
-
see notebooks and additional Python functions for usage
Resonate Functions
The C++ code implements a resonator bank class similar to that provided in the Oscillators Swift package with vectorized update per sample.
Python functions:
resonate: wraps creating the bank with the parameters provided and running the updates for an input signal.resonate_wrapper: computes a resonator bank outputs from an input signal, using the C++ implementation.resonate_python: computes a resonator bank outputs from a single frequency sinusoidal input signal (impulse). The loop over samples is done in Python, so much slower than the C++ counterpart.
Jupyter Notebooks
- SpectralAnalysisExperiments: code to analyze and plot resonator and resonator bank properties.
- Spectrograms: code to compute and plot spectrograms of audio signals, using Librosa
- Chromas: code to compute and plot chromas and chromagrams on audio signals, using Librosa
- MFCCs: code to compute and plot mel frequency scale spectrograms and chromagrams on audio signals, using Librosa
License
MIT License
Copyright (c) 2025 Alexandre R.J. Francois
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nofft-0.0.1.tar.gz.
File metadata
- Download URL: nofft-0.0.1.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fa3fbe614c8af16e053a1bfd903639645b551209bca3263377135c5b8c3f208
|
|
| MD5 |
9b31091380b1c9620efb791841b0f0ad
|
|
| BLAKE2b-256 |
80cba38c9a68e95df4284529376b960515e83afc9f3639b96ad503a7606a10d2
|
File details
Details for the file nofft-0.0.1-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: nofft-0.0.1-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 59.9 kB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b39e8f24ac3d7974e0bccb1440a394ae2a1a9a80dccef78b26cb6da98657260
|
|
| MD5 |
ada68a915df436d39481fdec84b358b4
|
|
| BLAKE2b-256 |
d9ca5f753eec65641a6d1e5dd0ec9cd11f146c7eeb0593fe5522128fdfc74267
|