Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nofft-0.0.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nofft-0.0.1-cp313-cp313-macosx_15_0_arm64.whl (59.9 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Hashes for nofft-0.0.1.tar.gz
Algorithm Hash digest
SHA256 6fa3fbe614c8af16e053a1bfd903639645b551209bca3263377135c5b8c3f208
MD5 9b31091380b1c9620efb791841b0f0ad
BLAKE2b-256 80cba38c9a68e95df4284529376b960515e83afc9f3639b96ad503a7606a10d2

See more details on using hashes here.

File details

Details for the file nofft-0.0.1-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for nofft-0.0.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2b39e8f24ac3d7974e0bccb1440a394ae2a1a9a80dccef78b26cb6da98657260
MD5 ada68a915df436d39481fdec84b358b4
BLAKE2b-256 d9ca5f753eec65641a6d1e5dd0ec9cd11f146c7eeb0593fe5522128fdfc74267

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page