LMMS / LMMS/lmms

AI-Based Stem Separation

Open
#7,996 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

Enhancement Summary

I use a stem separator quite often when exploring the makeup of other tracks, and equally when remixing or looking for accapellas.
Anyway, it's a bit of a shame to have to open up demucs every time, when LMMS could contain this feature. I know FL recently got a similar feature.

Implementation Details / Mockup

Likely a sample track based feature, where one would be able to right-click, then select an option to open a stem separation menu. [ BADLY PHOTOSHOPPED EXAMPLE BELOW ]
Image
This would then call demucs using a Python API ( from what it seems, pybind11 would probably be best ).
After separation, new sample tracks would be created, each containing a stem of the targeted sample.
This may require some resolution of #735 for ideal functioning.
I'd be more than happy to try and make a first draft ( I know my way around C++ pretty well, but not so much the LMMS codebase ) - just wanted to check that this was an acceptable suggestion.

NOTE : I'm aware of #4587 and the Python discussion. Therefore, I'm wondering whether people think a problem would arise from such a dependency addition ?

Please search the issue tracker for existing feature requests before submitting your own.
  • I have searched all existing issues and confirmed that this is not a duplicate.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading issue #735 and the Python discussion in #4587, then inspect LMMS’s existing sample-track and right-click entry points. Clarify the proposed Demucs integration and dependency implications before defining the implementation scope. Done means an agreed approach and a feature that creates new sample tracks for the separated stems.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
audio-video-rtc, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.