boy1dr / SpleeterGui

Windows desktop front end for Spleeter - AI source separation
Apache License 2.0
2.37k stars 254 forks source link

Possibility to include demucs in this app? #116

Open AnshulJ999 opened 3 years ago

AnshulJ999 commented 3 years ago

I just tried Demucs and came across this git. I've been using SpleeterGUI for several months now, and it's a fantastic application. Big thanks to the dev @boy1dr. But after doing some very initial tests on Demucs, the results seem a bit better. Especially for drums and bass. Much clearer and well-defined. It seems to me like the 'demucs extra' library works particularly well for less popular genres like progressive metal and djent which usually have a lot of layers in different frequencies and so many instruments. But, demucs lacks clarity in the 'accompaniment' track, where it seems to be muddy and does not seem to have all the higher frequencies like Spleeter.

A request to the developer of SpleeterGUI @boy1dr - is it possible to include demucs into this application? There is a PIP method that I used to install demucs ( I have absolute no experience with coding whatsoever), and it was pretty easy to run. I'm not sure of the technical challenges involved in doing this, but it would be absolutely amazing if its possible. Using this with the GUI that you've built would make demucs more accessible to everyone very easily and quickly too.

On another note, I think it may be worth combining stems from demucs and spleeter together to see what combinations work best. Perhaps drums, bass, and vocals from demucs with the accompaniment track from Spleeter (but yes there would be phase issues in doing this).

Thanks!

boy1dr commented 3 years ago

You are correct. There are a few source separation projects now and each have their own strengths. I am investigating another possibility where different models can be chosen based on the kind of audio you are processing. I won't be including Demucs in this project. SpleeterGUI is what it says it is, so i guess it's a "watch this space" kind of thing. Next month should be pretty exciting :)

AnshulJ999 commented 3 years ago

Sounds exciting! I'm far too lazy to test out all the different source separation models that exist now, also because even basic coding is very difficult for me to utilize properly. But so far demucs and spleeter have been working great for me and I was able to integrate them into Reaper DAW for easy use. Looking forward to what you come up with :)

ybhka2022 commented 2 years ago

A request to the developer of SpleeterGUI @boy1dr - is it possible to include demucs into this application? There is a PIP method that I used to install demucs ( I have absolute no experience with coding whatsoever), and it was pretty easy to run. I'm not sure of the technical challenges involved in doing this, but it would be absolutely amazing if its possible. Using this with the GUI that you've built would make demucs more accessible to everyone very easily and quickly too.

AnshulJ999 commented 2 years ago

A request to the developer of SpleeterGUI @boy1dr - is it possible to include demucs into this application? There is a PIP method that I used to install demucs ( I have absolute no experience with coding whatsoever), and it was pretty easy to run. I'm not sure of the technical challenges involved in doing this, but it would be absolutely amazing if its possible. Using this with the GUI that you've built would make demucs more accessible to everyone very easily and quickly too.

I'm not sure why you've copy-pasted part of my message directly with no reference or any other context here. May have been easier to just 'thumbs up' or vote for this if that's what you wanted to say :)

boy1dr commented 2 years ago

Pretty sure it's just a bump. 2021 had more challenges in it than i was accounting for, i do have another source separation GUI project in the works and i would like to include demucs. Spleeter and Demucs are huge packages and i haven't tried running them side by side in the same portable python that SpleeterGUI used so i would need to do further testing. I lost quite a bit of time trying to get the "build your own model" part operational, this is way outside of the general use case scenario of what SpleeterGUI was so i won't be including that in the next version of the project.

AnshulJ999 commented 2 years ago

I appreciate the work you've put into this. I actually went ahead and learnt how to use demucs and spleeter via console commands, and I found some LUA scripts for REAPER (the main DAW I use) that, with some modification, allow me to use both Spleeter and Demucs within Reaper on any song with a simple hotkey - very efficient. It also makes my practice sessions so much better because I can listen to isolated parts of the song. But in the process I learnt just how amazing both these projects are, and how much work has gone into them. As a non-coder, it was tough for me just to get the scripts to work properly with the correct syntax haha.

I'd definitely would love to see Demucs in a GUI format, and see it readily accessible for more people. The new Demucs V3 is far, far better than any other source separation I tested; LALAL.AI was second for me, and I'd rank Spleeter third just for ease of use but it actually creates significantly more distortion and artifacts compared to LALAL and Demucs.

As for the 'build your own model' you mentioned, that would really be interesting. I know not many people would be interested in it but I'd love to try and help with the training data part as much as I could.

boy1dr commented 2 years ago

I have tried demucs using the google colab but when i try the pip install for it i get an error that doesn't seem to want to resolve. Python error messages aren't actually useful to me and i'm not able to find a command to get past the dora-search error at "Getting requirements to build wheel". It is likely i am missing a required package but it's not telling me what that is :( At this stage, the only possible way to get demucs and spleeter running side by side is to use anaconda and that is a whole extra series of steps people would need to complete with a high likelihood of failure, and given the monthly download rate of SpleeterGUI there is no way i would be able to support that.

If any python guru's want to have a go at resolving the issue, here are the commands

cd C:\Users\chris\AppData\Roaming\SpleeterGUI\python
python -m pip install -U demucs

and the output of the error reads

Collecting demucs
  Using cached https://files.pythonhosted.org/packages/17/24/3b75e03243651603b95d8dbdb99eba104a464d3e8ca26d1ad54d95a985c5/demucs-3.0.3.tar.gz
Collecting dora-search (from demucs)
  Using cached https://files.pythonhosted.org/packages/f7/ad/53327fcb979720695f44c0de78f8a7693a9471ee8c6aebe14cf49cfc8686/dora_search-0.1.8.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  Complete output from command C:\Users\chris\AppData\Roaming\SpleeterGUI\python\python.exe C:\Users\chris\AppData\Roaming\SpleeterGUI\python\python37.zip\pip\_vendor\pep517\_in_process.py get_requires_for_build_wheel C:\Users\chris\AppData\Local\Temp\tmps6ymfa4s:
  C:\Users\chris\AppData\Roaming\SpleeterGUI\python\python.exe: can't find '__main__' module in 'C:\\Users\\chris\\AppData\\Roaming\\SpleeterGUI\\python\\python37.zip\\pip\\_vendor\\pep517\\_in_process.py'

  ----------------------------------------
Command "C:\Users\chris\AppData\Roaming\SpleeterGUI\python\python.exe C:\Users\chris\AppData\Roaming\SpleeterGUI\python\python37.zip\pip\_vendor\pep517\_in_process.py get_requires_for_build_wheel C:\Users\chris\AppData\Local\Temp\tmps6ymfa4s" failed with error code 1 in C:\Users\chris\AppData\Local\Temp\pip-install-4q8_7esu\dora-search
cjhines7 commented 2 years ago

There's a bug if you're using the latest python version 3.10. https://github.com/facebookresearch/demucs/issues/286

I'm still on 3.7 and have no issues installing demucs. Looks like dora-search didn't install correctly. maybe try pip install dora-search.

adefossez commented 2 years ago

Hello, Demucs author here, the reason is that PyTorch is not yet available for Python 3.10: https://github.com/pytorch/pytorch/issues/66424#issuecomment-985148728

Don't hesitate to tag me if you have future issues @boy1dr