UltraStar-Creator
UltraStar-Creator copied to clipboard
Software is non-free because of libbass
I’m packaging the software for NixOS, and unfortunately one has to enable non-free packages because the dependency libbass
is a non-free package.
So calling Creator a free and open source
project is only superficially true; it could never be included in completely free distributions like Trisquel, GuixSD, &c.
I don’t know how much functionality depends on libbass
and how much work it would be, but there probably are free libraries supporting the use case of Creator.
Unfortunately, it is not as easy to get rid of bass(_fx) in UltraStar-Creator as it is also used to determine the song's BPM. If anybody can suggest an open source library to determine the BPM of a given audio file, I'd be happy to work on replacing bass...
you could try https://github.com/basisbit/bpm-tools
I also found
https://aubio.org http://www.surina.net/soundtouch/index.html bpmdetect.{cpp,h} from Mixxx.
from this thread: https://stackoverflow.com/questions/477944/bpm-audio-detection-library
I'm interested in helping with this effort in any way that I can, as I use arch and the libbass distributed simply does not work for my target platform.
If there is someone who can mentor me through it I'm sure I can get things moving.
EDIT: Didn't notice the bass removed branch.
@enetheru I already have a development branch for this here. It now uses Qt Multimedia for all playback tasks. Only open issue: BPM detection of the MP3 source. This is not feasible with Qt Multimedia, so another open source library needs to be used for this. I looked into aubio and made some first steps, but aubio in turn depends on FFMPEG for decoding MP3 files, so for Windows, all FFMPEG libraries need to be shipped with UltraStar Creator... If you can find a good solution for BPM detection, that would be of great help.
EDIT: Just noticed your edit that you found the bass_removed branch after my comment...
A very simple and quick solution that can sometimes be more accurate is to have the user tap it out with a button and take the rolling average. i find this far more reliable on some of my salsa music than automatic beat detection. But i haven't forgotten about this project i was just working on other things.