stemrollerapp / stemroller

Isolate vocals, drums, bass, and other instrumental stems from any song
https://www.stemroller.com
Other
2.62k stars 103 forks source link

Add Linux build #2

Closed fheft closed 2 years ago

fheft commented 2 years ago
sschueller commented 2 years ago

Thank you, you got this pull-request done before I had a chance :)

For npm run dev to work you need to adjust the if in main-src/processQueue.cjs on line 20. The following should work:

`${process.platform === 'win32' ? 'win' : process.platform === 'linux' ? 'linux' : 'mac'}-extra-files`,

Additionally you may want to add a phrase to the readme. If you have a RTX 3080 or another card using higher CUDA versions the installation of torch in demucs-cxfreeze needs to be a different version: https://pytorch.org/get-started/locally/#linux-python . I am currently stuck at this point as python-3.10 seems to not work with torch version cu113.

iffyloop commented 2 years ago

Thank you @fheft and @sschueller very much for working on this! I don't have access to my Linux device right now, but I'll be able to review this in a couple of days. Looking forward to testing out your contributions and getting a Linux build shipped, hopefully within the next week. Thank you again!

sschueller commented 2 years ago

Some additional info:

To use an RTX-3080 under Arch you will need python 3.8 (3.10 doesn't work). I was able to get demucs-cxfreeze running with the following:

# install python 3.8 via yay (arch AUR) and pip
yay -S python38
mkdir pip
cd pip
curl -O https://bootstrap.pypa.io/get-pip.py
python3.8 get-pip.py

# compile demucs
git clone https://github.com/stemrollerapp/demucs-cxfreeze.git
cd demucs-cxfreeze
# for RTX-3080 we need cu113
pip3.8 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
pip3.8 install demucs SoundFile cx-Freeze 
cxfreeze main.py --target-dir=dist --target-name=demucs-cxfreeze --packages=torch
# copy files in dist over to stemroller
iffyloop commented 2 years ago

Great! That will help me a lot once I get a chance to build the Linux binaries. Seems like you've already done the bulk of the work, which I really appreciate!

iffyloop commented 2 years ago

I ended up making some changes so that ffmpeg and demucs will be loaded globally, since I'm not yet sure how this app will be packaged and distributed on Linux. That should at least allow you to run it from source (although I still need to test it). Going to close this PR for now, but we can reopen once issue #12 is addressed.

Thanks for your help so far! Feel free to let me know if you need anything else, or if I'm missing something (this is my first time ever maintaining an open source project, so I still haven't fully figured out how to manage issues and contributions, apologies if I'm not doing things the most efficient way and feel free to provide advice 😄).

iffyloop commented 2 years ago

(See the develop branch for said changes; I'll merge them in tonight hopefully).