Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create streaming_with_realtime_compression_audiocomplib.py #401

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Gdalik
Copy link

@Gdalik Gdalik commented Feb 19, 2025

I was not completely satisfied with the internal JUCE Compressor and Limiter, particularly for real-time processing in chunks. To address this, I created Audiocomplib, a small, lightweight library for dynamic audio compression and peak limiting. It integrates seamlessly with Pedalboard's IO features and offers several enhancements:

Key Features:

  • Adjustable parameters: threshold, ratio, attack time, release time, soft knee, and make-up gain.
  • Real-time mode, ensuring smooth transitions between audio chunks and maintaining the integrity of the dynamic range processing without producing artifacts at chunk edges.
  • Returns the gain reduction curve for the currently processed audio/chunk as a NumPy array, enabling future visualizations.
  • Performance optimization using NumPy vectorization and Cython module for expensive calculations.

The script showcases streaming from audio file, using Pedalboard, in conjunction with real-time audio compression with parameters automation, provided with Audiocomplib library.

I was not completely satisfied with the internal JUCE Compressor and Limiter, particularly for real-time processing in chunks. To address this, I created Audiocomplib, a small, lightweight library for dynamic audio compression and peak limiting. It integrates seamlessly with Pedalboard's IO features and offers several enhancements:

Key Features:

- Adjustable parameters: threshold, ratio, attack time, release time, soft knee, and make-up gain.
- Real-time mode, ensuring smooth transitions between audio chunks and maintains the integrity of the dynamic range processing without producing artifacts at chunk edges.
- Returns the gain reduction curve for the currently processed audio/chunk as a NumPy array, enabling future visualizations.
- Performance optimization using NumPy vectorization and Cython module for expensive calculations.

The script showcases streaming from audio file, using Pedalboard, in conjunction with real-time audio compression with parameters automation, provided with Audiocomplib library.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant