A Python package for reading and writing STEM multistream audio files using ffmpeg and MP4Box.
Stempeg is a Python package for reading and writing STEM audio files, which are multitrack audio containers that combine multiple audio streams and metadata. It solves the problem of programmatically handling multistream audio for playback or processing, using ffmpeg under the hood for robust I/O operations.
Audio developers, music production software engineers, and researchers working with multitrack audio who need to manipulate STEM files in Python.
Developers choose Stempeg for its reliable ffmpeg integration, support for Native Instruments compatibility, and flexible reading/writing options that handle complex audio streams efficiently.
Python I/O for STEM audio files
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Abstracts complex ffmpeg commands for reading and writing multistream audio, supporting features like seeking and internal resampling, as highlighted in the philosophy.
Allows reading individual streams or excerpts with start and duration parameters, enabling precise control over audio data extraction.
Can create STEM files compatible with Traktor hardware/software using MP4Box, a key feature for DJ and music production applications.
Uses multiprocessing for faster I/O and enables pre-fetched file info to speed up repeated reads, as mentioned in the F.A.Q section.
Requires installation of ffmpeg and optionally MP4Box, making setup system-dependent and potentially cumbersome, especially for cross-platform deployment.
Relies on ffmpeg's default AAC codec unless libfdk-aac is installed, which may not be included in standard builds, leading to inferior audio quality for encoding.
Achieving Native Instruments compatibility requires MP4Box, adding an extra installation step and potential configuration issues, as noted in the warnings.