Skip to main content

Audio Normalizer for MP3 and WAV files

Project description

plot AudioNormalizer


This is a normalizer for mp3 and wav files. Its a final project for Havard CS50P.

The approach in this program to normalize audio differs in comparison to most other programs that implement this task. Most normalizers amplify an audio signal until the highest transient reaches 0 dB. The downside of this approach is that the audio signal can only be amplified based on a single maximum transient. In other words, the whole normalizing process depends on one transient, which is inefficient.

This program, however, doesn't depend on a single transient. It rather splits the original signal into four separate signals (left positive, left negative, right positive, and right negative). Then it uses an algorithm that finds several transients that exceed a calculated value based on the audio file's duration and actual volume. For each split signal, a copy is being created, a dummy signal. In the dummy signals, the found transients are turned into the value of zero. The next task is to find the new maximum transient in each modified dummy signal like any other simple normalizer. The new maximum value is then saved for the final amplification.

At this stage, the program finds all amplitudes in the original split signals where the previously found transients are sitting. The split audio signals are then amplified based on the new maximum transient. All amplitudes that exceed (clip) above 0 dB are lowered to 0 dB without manipulating the original signal except for the volume.

Finally, all the amplified split signals are merged together and are saved as the original file name and type. All the ID3 tags, including the album cover, are also maintained in the new normalized file.

As a result, the user gets an audiofile normalized to 0 dB without losing noticeable dynamic range or the overall audio quality.

Installation

pip install audio_normalizer

Usage

import audio_normalizer

audio_normalizer.open_window()

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_normalizer-1.1.tar.gz (20.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_normalizer-1.1-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file audio_normalizer-1.1.tar.gz.

File metadata

  • Download URL: audio_normalizer-1.1.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for audio_normalizer-1.1.tar.gz
Algorithm Hash digest
SHA256 4290e6ba36a036638547452da59f6587053a39c73c52e7ea898197c56682a960
MD5 136a64d5fe6a68cb3ec000a05230626c
BLAKE2b-256 9014e11823d6c661ff1c3b4d3e10a5aa572b355f27aaa46e7dadad486c0157cd

See more details on using hashes here.

File details

Details for the file audio_normalizer-1.1-py3-none-any.whl.

File metadata

  • Download URL: audio_normalizer-1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for audio_normalizer-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c451fbcd9d7902444737d4725700e3bb38da48b88e4a23dc0962ba4d4f3ae2a1
MD5 a0e6b7cc2489938ab1b64ba997a3197f
BLAKE2b-256 f0f07a4fc34d907517a23b79fad09dd82e2653833f0472daf56b82c5fd23f3eb

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