Skip to main content

Audiergon

A Python Digital Signal Processing (DSP) processor powered by a custom Cooley-Tukey Fast Fourier Transform implementation.

💻 GitHub Repo | 🐍 PyPI Page | 📝 Docs | ☁️ Audiergon Cloud

Key Features

  • Cooley-Tukey FFT
    • Pure Python iterative implementations of 1D Forward and Inverse Fast Fourier Transforms.
  • Optimised Bit Reversal Permutations
    • Fast bit-reversal indexing using native compiled C-speed NumPy indexing.
  • Overlap-Add Audio EQ Pipeline
    • Complete pipeline for applying Hann windowing, processing frames through an equaliser, and rebuilding raw 16-bit PCM .wav streams without clicking or imaginary artifacts.

Installation

Install the library using pip:

pip install audiergon

Dependencies

  • numpy

Quick Start & API Examples

1 - Basic FFT & Frequency Analysis

Compute the Fourier Transform of a simple signal array and generate its matching frequency bins.

from audiergon import iterative_fft, iterative_fftfreq

# Input array must have a length that is a power of 2
signal = [1.0, 0.5, -0.2, 0.1, 0.8, -0.4, 0.3, -0.1]
sampling_interval = 1.0 / 44100  # 44.1 kHz Sample Rate

# 1. Perform Forward FFT
frequency_coefficients = iterative_fft(signal)

# 2. Compute matching frequencies for the spectrum bins
frequencies = iterative_fftfreq(len(signal), d=sampling_interval)

print("Frequency spectrum coefficients:", frequency_coefficients)
print("Calculated bin frequencies (Hz):", frequencies)

2 - Equalising an Audio File

Process an audio track using the built-in Overlap-Add (OLA) processing pipeline.

from audiergon import process_audio

# Modify the frequency bands using multipliers
output_path = process_audio(
    audio_filepath="in.wav",
    bass_gain=1.5,
    low_mid_gain=1.2,
    mid_gain=1.0,
    high_mid_gain=0.8,
    treble_gain=0.5,
    output="out.wav"
)

The process_audio pipeline requires 16-bit Mono PCM WAV files. You can convert standard formats using ffmpeg:

ffmpeg -i in.mp3 -acodec pcm_s16le -ac 1 -ar 44100 out.wav

API Overview

audiergon.fast_fourier_transform

  • iterative_fft(arr)

    • Computes the 1D Discrete Fourier Transform (DFT).
    • Input: list or numpy.ndarray (length must be a power of 2).
    • Returns: list of complex numbers tracking amplitude and phase.
  • iterative_ifft(arr)

    • Computes the Inverse DFT converting frequencies back to the time domain.
    • Returns: numpy.ndarray scaled by the sequence length.
  • iterative_fftfreq(l, d=1.0)

    • Generates frequency values for each bin location.

audiergon.process

  • process_audio(audio_filepath, bass_gain, low_mid_gain, mid_gain, high_mid_gain, treble_gain, output=None)
    • Applies windowed equalisation filters over an absolute file path.
  • generate_hann_window(frame_size)
    • Generates a list containing real Hann coefficients to smooth frame boundary edges.
  • apply_equaliser(transformed, frame_size, framerate, ...)
    • Directly apply scale gains on an existing complex frequency domain segment.

audiergon.bit_reverse

  • bit_reverse(arr, convert_to_complex=False)
    • Applies bit-reversal array permutations optimized with high-performance NumPy vector operations.

License

Audiergon is open-source software licensed under the MIT License.

Metadata

Release files for audiergon 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for audiergon 1.0.0
File Size Uploaded Provenance Actions
audiergon-1.0.0.tar.gz 9.6 kB Without provenance Details for audiergon-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for audiergon 1.0.0
File Interpreter ABI Platform Actions
audiergon-1.0.0-py3-none-any.whl Python 3 none any Details for audiergon-1.0.0-py3-none-any.whl

Total release size: 18.8 kB

Release files / audiergon-1.0.0.tar.gz

Download URL audiergon-1.0.0.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
93916e3118340c87be28ca6fe360f61aa858728111f79e59341f22daac5093ca
BLAKE2b-256 checksum
How to use checksums
b16c41dad9e206e8a611542a9e38f1a7f36e1ca537a26c46258a37d1c127b431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / audiergon-1.0.0-py3-none-any.whl

Download URL audiergon-1.0.0-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6e966f55c1dedb01b67ebe365f6fca1626cef7cb958d664df275f34e638a5571
BLAKE2b-256 checksum
How to use checksums
e3b9dc6d10d1f1c71b99f9f9138de18a15e189a5e61ef9551260cd7441572d76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Security for audiergon 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page