A curated list of Python tools, libraries, and resources for audio and music processing, analysis, synthesis, and playback.
- aubio: a library for audio and music analysis
- audio-fingerprint-identifying-python: The Shazam-similar app, that can identify the song using audio fingerprints & spectrum analysis and Fast Fourier transform
- audioFlux: A library for audio and music analysis, feature extraction.
- AudioLazy: Expressive digital signal processing (DSP) package for Python
- AudioOwl: Fast and simple music and audio analysis using RNN in Python
- BregmanToolkit: Audio and Music Analysis and Synthesis in Python
- Essentia: C++ library for audio and music analysis, description and synthesis, including Python bindings
- freesound-python: Freesound API wrapper to retrieve information and analysis descriptors
- librosa: Python package for music and audio analysis
- Madmom: Madmom is an audio signal processing library written in Python with a strong focus on music information retrieval (MIR) tasks.
- mir_eval: Evaluation functions for music/audio information retrieval/signal processing algorithms.
- paura: Python AUdio Recording and Analysis (paura)
- pyAudioAnalysis: Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications
- Pyo: Python DSP module with advanced analysis functionalities
- Realtime_PyAudio_FFT: Realtime audio analysis in Python, using PyAudio and Numpy to extract and visualize FFT features from streaming audio.
- scipy.signal: Signal processing routines for SciPy
- Spleeter: Deezer source separation library including pretrained models.
- timeside: TimeSide is a Python framework enabling low and high level audio analysis, imaging, transcoding, streaming and labelling.
- audiomentations: Audio data augmentation
- audioread: Backend-agnostic decoding of sound files
- babycat: An audio manipulation library for Rust, Python, WebAssembly, and C.
- matchering: Open Source Audio Matching and Mastering
- Matchering-cli: Simple Matchering 2.0 Command Line Application
- noisereduce: Noise reduction using spectral gating in Python
- numpy & scipy.io.wavfile: Read/write and manipulate WAV files
- pedalboard: ython library for working with audio: reading, writing, rendering, adding effects, and more.
- pyAudioProcessing: Audio feature extraction, classification, segmentation
- pydsm: Toolkit for sound manipulation using Deep Learning
- PyDub: Manipulate audio with a simple and easy high level interface
- PythonAudioEffects: A Python library that can apply: darth vader, echo, radio, robotic, and ghost effects to audio samples.
- pytorch/audio: Data manipulation and transformation for audio signal processing, powered by PyTorch
- simpleaudio: Playback and recording functionality
- SoundDevice: Play and record audio without resorting to C libraries
- soundfile: Read and write sound files
- SoX: Python wrapper for SoX, Swiss Army knife of sound processing
- wave: Read and write WAV files (standard library module)
- AudioSet: Large-scale dataset of manually annotated audio events
- Birdsong: Dataset of annotated bird songs and calls
- ESC-50: Environmental sound classification dataset
- Free Spoken Digit Dataset: Dataset of spoken digits in English
- Freesound Dataset: A free audio dataset of spoken digits. Think MNIST for audio.
- RAVDESS: Audio-visual dataset of emotional speech and song
- Speech Commands: Dataset for speech command recognition
- TIDIGITS: Spoken digit dataset for speech recognition
- UrbanSound8K: 8,000 urban sound samples categorized into 10 classes
- VCTK: Multispeaker speech dataset for voice technologies
- VoxCeleb: Large-scale speaker identification dataset
- AcousticBrainz: Dataset for computational music analysis
- Beatport EDM Key: Dataset for electronic dance music tracks and their musical key
- DALI: Dataset of lyrics and audio with time alignments
- DEAM: MediaEval Affective Impact of Movies Task dataset for music emotion recognition
- FMA: Free Music Archive dataset for music analysis
- hsmusic: Huge symbolic music dataset
- IRMAS: Instrument recognition in musical audio signals
- Jamendo Audio Tagging: Dataset for multi-label audio tagging
- MAESTRO: MIDI dataset for training music generation models
- MagnaTagATune: Dataset for music annotation and audio tagging
- MedleyDB: Dataset for multi-track mixing
- Musdb18: Dataset for music source separation
- NSynth: Large-scale and high-quality dataset of annotated musical notes
- Open MIC: Open Music Instrument Classification challenge dataset
- RWC Music Database: Musical instrument sound, genre, rhythm databases
- symbolic-music-datasets: Symbolic music datasets
- The Million Song Dataset: Massive collection of audio features and metadata
- Abjad: Abjad is a Python API for building LilyPond files. Use Abjad to make PDFs of music notation
- AthenaCL: AthenaCL is an algorithmic composition tool by Christopher Ariza. This is a Python 3 fork of it, since the original codebase is no longer maintained.
- maelzel: A framework for computer music in python
- MIDIUtil: A pure Python library for creating multi-track MIDI files
- mingus: Advanced music theory and notation package
- music21: Toolkit for computer-aided musical analysis
- Musical-scales: Retrieve a scale based on a given mode and starting note.
- MusicMaker: A Music Maker using Python - Audio Description Language
- MusPy: Toolkit for symbolic music generation
- pychord: Handle and transform musical chords
- pyHarmonySearch: Harmony search algorithm for musical composition
- PyTheory: Toolset for music theory concepts like scales and chords
- scamp: a Suite in Python for Computer-Assisted Music
- audioread: cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python
- audiostream: Audio API for streaming raw data to speakers
- beets: music library manager and MusicBrainz tagger
- discord.py: Python wrapper for the Discord API, including music streaming capabilities
- Mopidy: Extensible music server written in Python
- Mopidy-YouTube: Mopidy extension for playing music from YouTube
- mpv: Python interface to MPV for audio and video playback
- MusicBot: Discord music bot written in Python
- pyAV: Pythonic bindings for FFmpeg's libraries for audio and video processing
- pygame.mixer: Pygame module for sound loading and playback
- pyglet: Cross-platform windowing and multimedia library
- pyradio: Command line internet radio player
- Python-SoundDevice: Play and Record Sound with Python
- Spotipy: Python client for the Spotify Web API
- Audioguide: Program for concatenative sound synthesis
- ctcsound: Python Bindings for Csound using ctypes. Can be used from python2.x and python3.x as well.
- FoxDot: Python-based live coding environment for sound synthesis
- Magenta: Machine learning for the creative process, including music synthesis
- Mido: MIDI objects for Python
- musicautobot: Music generation with transformers
- Nsynth: Neural audio synthesis model
- Pippi: Computer music composition library
- pyfluidsynth: Python bindings for FluidSynth, a software synthesizer for audio signals from SoundFonts
- PySynth: Simple music synthesizer written in Python
- Python-audio: Jupyter notebooks about audio signal processing with Python
- Python-musical: Python module for procedural music creation.
- WaveGAN: Generative model for raw audio
- An introduction to libROSA for working with audio: Advanced librosa tutorial covering timeline plotting, spectrograms, time-stretching, remixing.
- Introduction to librosa: A Powerful Tool for Audio Engineers:
- Visualizing Sounds Using Librosa Machine Learning Library!: Covers graph creation using librosa and matplotlib
- A Simple Guide to Audio Manipulation with Pydub for Musicians: Covers merging tracks, introducing effects, and managing silences through simple code instructions.
- PyDub: Working with wav files in Python: This article demonstrates installation and various PyDub operations with code examples.