{"id":4160,"library":"openunmix","title":"Open-Unmix","description":"Open-Unmix is a PyTorch-based music source separation toolkit that provides pre-trained models and a flexible framework for separating audio into its constituent parts (vocals, drums, bass, other). The current version is 1.3.0, and the library is actively maintained with regular updates addressing bug fixes, performance improvements, and new model releases.","status":"active","version":"1.3.0","language":"en","source_language":"en","source_url":"https://github.com/sigsep/open-unmix-pytorch","tags":["audio","music","separation","pytorch","deep-learning","source-separation"],"install":[{"cmd":"pip install openunmix","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Core deep learning framework dependency.","package":"torch"},{"reason":"Required for audio loading, processing, and saving.","package":"torchaudio"},{"reason":"General numerical computing.","package":"numpy"},{"reason":"Used for loading and saving multi-track audio files.","package":"stempeg"},{"reason":"Pythonic wrapper for FFmpeg, used for audio processing.","package":"ffmpeg-python"},{"reason":"Provides progress bars, essential for CLI and long-running operations.","package":"tqdm"}],"imports":[{"symbol":"separate_audio","correct":"from openunmix.separate import separate_audio"}],"quickstart":{"code":"import torch\nimport numpy as np\nfrom openunmix.separate import separate_audio\n\n# Simulate stereo audio data (e.g., 10 seconds at 44.1 kHz)\nsr = 44100\nduration = 10  # seconds\nnum_frames = sr * duration\n\n# Create a dummy audio tensor: (channels, samples)\n# In a real scenario, load an audio file using torchaudio.load() or similar.\naudio_data_np = np.random.randn(2, num_frames).astype(np.float32)\naudio_tensor = torch.from_numpy(audio_data_np)\n\n# Separate the audio into stems\n# By default, 'umxl' model is used from v1.2.1 onwards\nestimates = separate_audio(audio_tensor, rate=sr)\n\n# 'estimates' is a dictionary with keys like 'vocals', 'drums', 'bass', 'other'\n# Each value is a torch.Tensor representing the separated stem.\nprint(\"Separated stems and their shapes:\")\nfor stem_name, stem_tensor in estimates.items():\n    print(f\"  {stem_name}: {stem_tensor.shape}\")\n\n# Example: access vocals\nvocals = estimates['vocals']\n# print(f\"Vocals stem shape: {vocals.shape}\")","lang":"python","description":"This quickstart demonstrates how to use the `separate_audio` function to perform music source separation. It simulates loading a stereo audio signal and outputs a dictionary of separated stems, each as a PyTorch tensor. The `umxl` model is used by default for inference from version 1.2.1 onwards."},"warnings":[{"fix":"To use the previous default, explicitly specify `model_name='umxhq'` when calling separation functions or using the CLI. Update training scripts to use the `--checkpoint` argument instead of `--model`.","message":"Starting from v1.2.1, the `umxl` model became the new default for inference (both CLI and Python API), potentially changing results compared to previous versions that defaulted to `umxhq`. Additionally, the training argument `--model` was renamed to `--checkpoint`.","severity":"breaking","affected_versions":">=1.2.1"},{"fix":"Ensure your `torchaudio` installation is version 0.7.0 or newer. Upgrade using `pip install --upgrade torchaudio`.","message":"Support for `torchaudio <0.7.0` was dropped in Open-Unmix v1.1.1. Using older versions of `torchaudio` will result in compatibility errors.","severity":"breaking","affected_versions":">=1.1.1"},{"fix":"Review the license terms associated with the `umxl` model. For commercial applications, consider using the `umxhq` model or other alternatives, explicitly specifying them during separation.","message":"The `umxl` model, introduced in v1.2.0 and made default in v1.2.1, is only licensed for non-commercial applications. Users must comply with its specific license terms.","severity":"gotcha","affected_versions":">=1.2.0"},{"fix":"Upgrade your Python environment to version 3.9 or higher to use Open-Unmix v1.3.0 and later.","message":"Python 3.6 support was removed in v1.3.0. The library now requires Python 3.9 or newer.","severity":"gotcha","affected_versions":">=1.3.0"},{"fix":"For reliable model downloads, it is recommended to use Open-Unmix v1.3.0 or later. If using older versions and encountering download issues, manually verify the Zenodo model URLs or upgrade.","message":"Fixes for broken Zenodo URLs were implemented in v1.3.0. Users of older versions might encounter issues when trying to download pre-trained models, as the URLs could be invalid or change.","severity":"gotcha","affected_versions":"<1.3.0"}],"env_vars":null,"last_verified":"2026-04-11T00:00:00.000Z","next_check":"2026-07-10T00:00:00.000Z"}