sergree/matchering
Open Source Audio Matching and Mastering
repo name | sergree/matchering |
repo link | https://github.com/sergree/matchering |
homepage | https://pypi.org/project/matchering/ |
language | Python |
size (curr.) | 5542 kB |
stars (curr.) | 162 |
created | 2018-09-28 |
license | GNU General Public License v3.0 |
Matching + Mastering = ❤️
Matchering 2.0 is a novel Containerized Web Application and Python Library for audio matching and mastering.
It follows a simple idea - you take TWO audio files and feed them into Matchering:
- TARGET (the track you want to master, you want it to sound like the reference)
- REFERENCE (another track, like some kind of “wet” popular song, you want your target to sound like it)
Our algorithm matches both of these tracks and provides you the mastered TARGET track with the same RMS, FR, peak amplitude and stereo width as the REFERENCE track has.
Watch the video:
So Matchering 2.0 will make your song sound the way you want! It opens up a wide range of opportunities:
- You can make your music instantly sound like your favorite artist’s music
- You can make all the tracks on your new album sound the same very quickly
- You can find new aspects of your sound in experiments
- You can do everything as you want! Because of Your References, Your Rules.™ (just a little nostalgic note) 🤭
Differences from the previous major version:
- Completely rewritten in Python 3, based on open source tech stack (no more MATLAB)
- Our own open source brickwall limiter was implemented for it
- Processing speed and accuracy have been increased
- Now it is the library that can be connected to everything in the Python world
Installation and Usage
If you are a music producer or an audio engineer, choose the Docker Image.
If you are a developer, choose the Python Library.
Docker Image - The Easiest Way
Matchering 2.0 works on all major platforms using Docker.
Choose yours
Windows
macOS
Linux
Python Library - For Developers
Installation
4 GB RAM machine with Python 3.6.0 or higher is required
libsndfile
Matchering 2.0 depends on the SoundFile library, which depends on the system library libsndfile. On Windows and macOS, it installs automatically. On Linux, you need to install libsndfile using your distribution’s package manager, for example:
sudo apt update && sudo apt -y install libsndfile1
python3-pip
On some Linux distributions, python3-pip is not installed by default. For example use this command on Ubuntu Linux to fix this:
sudo apt -y install python3-pip
Matchering Python Package
Finally, install our matchering
package:
# Linux / macOS
python3 -m pip install -U matchering
# Windows
python -m pip install -U matchering
(Optional) FFmpeg
If you would like to enable MP3 loading support, you need to install the FFmpeg library. For example use this command on Ubuntu Linux:
sudo apt -y install ffmpeg
Or follow these instructions: Windows, macOS.
Quick Example
import matchering as mg
# Sending all log messages to the default print function
# Just delete the following line to work silently
mg.log(print)
mg.process(
# The track you want to master
target='my_song.wav',
# Some "wet" reference track
reference='some_popular_song.wav',
# Where and how to save your results
results=[
mg.pcm16('my_song_master_16bit.wav'),
mg.pcm24('my_song_master_24bit.wav'),
]
)
You can find more examples in the examples directory.
Or you can use premade Matchering 2.0 Command Line Application: matchering-cli.
A Coffee
If our package saved your time or money, you may:
Thank you!