omeryusufyagci / fast-music-remover

A C++ based, lightweight music and noise remover for YouTube and other internet media, using DeepFilterNet for audio enhancement.
MIT License
74 stars 13 forks source link

Improvement: Add `FilterController` to `MediaProcessor` #25

Open omeryusufyagci opened 1 week ago

omeryusufyagci commented 1 week ago

Current Behavior: In-place, hardcoded command here.

Suggested Improvement: Requires an abstraction layer to provide an API on how to use the filter. It has to be generically written, as in the future we may change the filter. So, it shouldn't be a DeepFilterNet specific.

Benefits: Dynamically adjusting the filter is beneficial for both offline and online processing. There is work planned to provide a simplistic user setting, which necessitates this change.

Potential Challenges: Understand the usage of DeepFilterNet, and provide an API that doesn't require that understanding.

Additional Context: Take not of the soon to be made CommandBuilder class, as it will be the common interface for constructing commands.

A good first issue as it requires minimal understanding of the inner workflow of the project.

VarunParab commented 6 days ago

Hi @omeryusufyagci. Could you please assign this issue to me? I'd like to work on implementing the filter abstraction layer.

omeryusufyagci commented 6 days ago

Thanks @VarunParab, you got it! Just a few adjustments:

Please take a quick look at the discussion in #4, where we decided to introduce a dedicated class for similar functionality (FFmpegController). The same principles apply here: we'll need a FilterController class to abstract the filter usage, making it generic and adaptable for future changes.

Feel free to reach out if you need more details!