Skip to main content

Tools for processing audio signals

Project description

Audio Toolset

CI Workflow status GitHub top language

A Python library for processing audio signals.

audio_toolset provides an intuitive and flexible way to process audio files in Python. Each Channel object handles a single mono audio file, allowing you to apply filters, EQ, dynamics processing, gain adjustments, noise reduction, and more.

Stereo files can be handled by first splitting them into mono channels using split_to_mono and then recombining them with join_to_stereo.

Features

  • High level Channel object for simple user interface
  • Load audio from a file or AudioData
  • Gain processing
    • gain, normalize, fade
  • Filters
    • lowpass, highpass, eq_band
    • noise_reduction (spectral gating)
  • Dynamics
    • compressor, limiter, soft_clipping
  • Plotting tools (see examples)
    • plot_signal - generate signal time and frequency plot
    • Dynamic plots - compressor, limiter can generate attenuation plots
    • Bode plots - lowpass, highpass, eq_band can generate filter bode plots

Installation

pip install git+https://github.com/maxoshe/audio-toolset.git

Examples

Process with a channel strip

from audio_toolset.channel import Channel

guitar = Channel("guitar.wav")
guitar.highpass(cutoff_frequency=100, db_per_octave=6)
guitar.eq_band(center_frequency=2000, gain_db=3, q_factor=1)
guitar.lowpass(cutoff_frequency=10000, db_per_octave=12)
guitar.normalize(target_db=-1)
guitar.compressor(threshold_db=-20, compression_ratio=4, attack_ms=50, release_ms=100)
guitar.write("guitar_processed.wav")

Process with a chained channel strip

speech = Channel("speech.wav").highpass(cutoff_frequency=100).lowpass(cutoff_frequency=300)

Plotting

audio_toolset provides multiple plotting tools to visualize signals, filters, and dynamics. All plots are generated interactively using Plotly and can be saved as images from the interactive viewer.

Signal Plots

Use plot_signal() to visualize the time-domain and frequency-domain representation of an audio channel.

newplot-2

2. Filter (Bode) Plots

Filter plots show the frequency response (Bode plot) of filters applied using eq_band(plot_filter_bode=True), highpass(plot_filter_bode=True), or lowpass(plot_filter_bode=True).

newplot-5 newplot-4

3. Dynamics Plots

Dynamics plots visualize the response of compressors and limiters applied to a channel. Generated by compressor(plot_compressor_response=True) or limiter(plot_limiter_response=True)

newplot-6

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

audio_toolset-0.1.0.tar.gz (39.9 kB view details)

Uploaded Source

Built Distribution

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

audio_toolset-0.1.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file audio_toolset-0.1.0.tar.gz.

File metadata

  • Download URL: audio_toolset-0.1.0.tar.gz
  • Upload date:
  • Size: 39.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.14

File hashes

Hashes for audio_toolset-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cdd4aa2e4f3d80cc362d297b14af923b9c9ed7198c73b8a9868dca5c4218108e
MD5 74a4e6348639ba90556f87faec7a2c5f
BLAKE2b-256 fe9161a8c05c6474286dc374f4c2f9a52b2ad41432c1924f9af49da4224c76e0

See more details on using hashes here.

File details

Details for the file audio_toolset-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for audio_toolset-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 344f1ab55ba3cb4b18206bf05e18f091dbee0d1d1c831c8475c0c3ea42d81e44
MD5 801b6848b32f45aabcb2f3949f7466bb
BLAKE2b-256 dbb9df8e8bbc035ebf594f235ab185f4695a4cf6828be20c2066f27fed2409a4

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