Mobile application for music source separation

Overview

Demixr mobile application

Music source separation on mobile

Version badge Github build badge

⚠️ This project is still in development, all the features might not work perfectly yet

Platform Support
Android
IOS Coming soon

Music source separation

Music source separation is the task of decomposing music into its constitutive components, e. g., yielding separated stems for the vocals, bass, and drums.

Features

  • Load songs from the device
    • Supported formats: mp3 and wav
  • Download songs from YouTube
  • Source separation in 4 different stems: Vocals, Bass, Drums and Other
  • Local library of unmixed songs
  • Integrated music player with the ability to mute / unmute each stem

Demixing

The demixing is made using PyTorch Mobile and a source separation model optimized for mobile.

Models

Open-Unmix is a deep neural network reference implementation for music source separation in Pytorch.

The models are trained on the MUSDB18 dataset.

Two of the models are available in the application:

Model Description
umxl A model that was trained on extra data which significantly improves the performance, especially generalization.
umxhq Default model trained on MUSDB18-HQ, which comprises the same tracks as in MUSDB18 but un-compressed which yield in a full bandwidth of 22050 Hz.

In order to use the models on mobile, they are transformed to torchscript then optimized for mobile and for the PyTorch Mobile lite interpreter: https://github.com/demixr/openunmix-torchscript.

Latest mobile build of the models: https://github.com/demixr/openunmix-torchscript/releases/latest/.

Performance

Using a Pixel 6, demixing a 4-minute audio file takes:

  • 3 minutes using the quantized umxhq model.
  • 4 minutes 10 seconds using the quantized umxl model.

The quantized umxhq model is around 2.3x faster than the umxhq model. The quantized umxl model is at least 3.4x faster the the umxl model.

Note: Inference is done on CPU as GPU is not yet fully supported by PyTorch Mobile.

Download Demixr

You can download and install the Android application from the latest Github release by selecting the appropriate platform apk file.

Demo

demo.mp4

Contributing

You are more than welome to contribute to Demixr, whether it's for:

  • Reporting a bug
  • Discussing the current state of the code
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

Report a bug

You can report bugs using Github issues. Consider filling in the following informations for an optimal report:

  • Quick summary
  • Steps to reproduce
  • What you expected would happen
  • What actually happend
  • A screenshot if the bug is graphical

Submiting a new feature / fix

  1. Fork the repo and create your branch from main
  2. Make sure to add documentation and tests if necessary
  3. Create a pull request

References

Comments
  • App description

    App description

    Is there a description available on what this app is intended for and which features it provides? Would be great if there was at least a rough outline, so nobody gets disappointed after download & install that it was something completely "unexpected" :wink: Thanks!

    documentation 
    opened by IzzySoft 5
  • Cracking/clicking sound

    Cracking/clicking sound

    You can hear some cracking/clicking sounds when playing music, especially when drums/bass are playing.

    It should come from the fact that we don't apply crossfade when we combine chunks.

    bug 
    opened by quoc-duong 0
  • Memory optimization in Java

    Memory optimization in Java

    Current implementation does an allocation for every chunk of data processed and predicted. Reusing Tensors without reallocating them might improve performance (https://pytorch.org/tutorials/recipes/mobile_perf.html#android-reusing-tensors-for-forward). We have to take into account that the last chunk of an audio has to be allocated separately (not the same size).

    enhancement 
    opened by quoc-duong 0
  • Player error on some songs

    Player error on some songs

    I/MediaPlayer(21524): constructor
    I/MediaPlayer(21524): setDataSource:/storage/emulated/0/Android/data/com.demixr.demixr_app/files/library/The Beatles - Topic_Her Majesty (Remastered 2009)_1642595805143/Vocals.wav
    I/MediaPlayer(21524): constructor
    I/MediaPlayer(21524): setDataSource:/storage/emulated/0/Android/data/com.demixr.demixr_app/files/library/The Beatles - Topic_Her Majesty (Remastered 2009)_1642595805143/Drums.wav
    I/MediaPlayer(21524): constructor
    E/MediaPlayerNative(21524): error (1, -2147483648)
    I/MediaPlayer(21524): setDataSource:/storage/emulated/0/Android/data/com.demixr.demixr_app/files/library/The Beatles - Topic_Her Majesty (Remastered 2009)_1642595805143/Bass.wav
    I/MediaPlayer(21524): constructor
    I/MediaPlayer(21524): setDataSource:/storage/emulated/0/Android/data/com.demixr.demixr_app/files/library/The Beatles - Topic_Her Majesty (Remastered 2009)_1642595805143/Other.wav
    E/MediaPlayerNative(21524): error (1, -2147483648)
    I/MediaPlayer(21524): constructor
    I/MediaPlayer(21524): setDataSource:/storage/emulated/0/Android/data/com.demixr.demixr_app/files/library/The Beatles - Topic_Her Majesty (Remastered 2009)_1642595805143/Mixture.wav
    E/MediaPlayerNative(21524): error (1, -2147483648)
    E/MediaPlayerNative(21524): error (1, -2147483648)
    E/MediaPlayerNative(21524): Attempt to call getDuration in wrong state: mPlayer=0x72fb6b71c0, mCurrentState=0
    E/MediaPlayerNative(21524): error (-38, 0)
    E/MediaPlayer(21524): Error (1,-2147483648)
    
    bug 
    opened by guillaume-merle 0
  • Advanced audio player

    Advanced audio player

    Advanced features for the audio player, with the ability to mute / unmute the different stems.

    Features:

    • [ ] song control notification
    • [ ] player controller footer on other pages
    • [x] play / mute stems with synchronization #19
    enhancement 
    opened by guillaume-merle 0
Releases(v0.4.1)
🎵 Elegant music app to play local music & YouTube music. Distributes music into albums & artists. Has playlists & lyrics. Windows + Linux + Android.

Harmonoid Elegant music app to play local music & YouTube music. Download Now ?? Windows, Linux & Android. Feel free to report bugs & issues. Loving t

Harmonoid 1.9k Aug 10, 2022
Flutter apple music preview - A Music App that leverages the iTunes Rest API to get music data and playable music trailers

Apple Music Preview App Description This project is a Music App that leverages t

Willy Adinata Saragih 2 May 23, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Jan 8, 2023
Playify is a Flutter plugin for play/pause/seek songs, fetching music metadata, and browsing music library.

Playify Playify is a Flutter plugin for play/pause/seek songs, fetching music metadata, and browsing music library. Playify was built using iOS's Medi

Ibrahim Berat Kaya 32 Dec 14, 2022
:lock: this is flutter mobile application music using glass morphism concept

Flutter Glass Morphism ?? Description: This is source flutter using glass morphism concept How I can run it? ?? Clone this repo ?? Run below code in t

Dao Hong Vinh 12 Jan 19, 2022
Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence

Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence to help visually impaired people recognize different currency bills and perform daily cash transactions more effectively. We plan to expand Drishti to other applications like Short Text and Document Reading in the future.

Drishti Nepal 23 Oct 8, 2022
A mobile music streaming app with a complex UI built with Flutter and the Deezer API🚀

Sap Sap is a music streaming & discovery app built with the Deezer API for iOS and Android. It includes a mini player, search and local storage. Be su

Carlton Aikins 53 Dec 28, 2022
Timy - open source mobile app for groups to communicate and organize themselves. Built with flutter.

Timy app An amazing open-source group messaging app build with flutter. ✨ Main Features Multiple groups (similar to Teams in Slack). Multiple open or

null 1.9k Dec 25, 2022
freeCodeCamp's open-source mobile app

freeCodeCamp.org's open-source mobile app freeCodeCamp.org is a friendly community where you can learn to code for free. Our full-stack web developmen

freeCodeCamp.org 248 Jan 9, 2023
Sharik is an open-source, cross-platform solution for sharing files via Wi-Fi or Mobile Hotspot

Share files across devices with Sharik! It works with Wi-Fi connection or Tethering (Wi-Fi Hotspot). No internet connection needed. Contributing Feel

Mark Motliuk 844 Jan 1, 2023
WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking.

WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking. A user can

Tomas Verhelst 87 Dec 28, 2022
A fully open source visual to-do list Flutter application.

A fully open source visual to-do list Flutter application.

Abigail Mabe 1 Oct 24, 2021
GJAMAssist is an open source Flutter-based template for a business assistant application.

GJAMAssist is an open source Flutter-based template for a business assistant application. It has been designed to use Google Firebase as ba

Japan Gor 12 Oct 9, 2022
Fluffyboard is a open source, free and self-hostable Whiteboard Application

Fluffyboard Fluffyboard is a open source, free and self-hostable Whiteboard Application Test the demonstration of Fluffyboard Table of Contents Featur

Yonggan 59 Dec 13, 2022
Music App made with flutter

Chillify A Flutter music app made with Provider and BLoC pattern. (Works on Android for now) Recommended Flutter version: 1.7.8+hotfix.4 UI heavily in

Karim Elghamry 632 Jan 4, 2023
A Flutter package for working with piano keys and sheet music

Piano A Flutter package that provides: logic for working with musical notes, clefs and octaves; a widget that can render notes on a clef; an interacti

Craig McMahon 32 Jan 5, 2023
Relaxing Music App

Luna Relaxing Music App Download References Figma assets Vectors If you like it, star this repo. If you find any issues, feel free to raise issues. En

Abhishek Kumar 31 Nov 8, 2022
A music player component for Flutter

This is an example I currently have no plans of putting this on Pub. Originally, I did, but I lost interest. However, I think this is a good example,

Tobe Osakwe 215 Dec 12, 2022
flutter macos music 音乐播放器

FLUTTER 实现macos音乐播放器 接口感谢 NeteaseCloudMusicApi 注意事项 由于依赖dart_vlc 需要安装cmake brew install cmake 视频返回的时候报错请查看dart_vlc Issues 修复,作者是手动进行了修复 功能 歌曲播放 歌单 歌单详

shanRaw 5 Dec 31, 2021