Page 1 of 1

Question: Open feature requests

Posted: Thu Feb 08, 2024 12:12 pm
by Wazzledi
Hello everyone,

I am planning to contribute to QLC+ in my spare time again.
But right now, I don't have a specific feature in mind.

Instead of implementing things that are not really needed, I want to implement something that is wanted.
So, what are some long-awaited features or are there some things that need to be implemented for v5?

The TODO page was last edited in 2017. So I don't know if that list is outdated.

Some features I had in mind:

1. Implementing the Submaster Slider for specific Fixtures or Fixture Groups.

2. Implement a Midi Slider mapping for Simple Desk fader or channel group fader, when QLC is in program mode to simplify programming.

3. Implement automatic BPM detection from audio source.

Re: Question: Open feature requests

Posted: Thu Feb 08, 2024 1:39 pm
by Yestalgia
Have you looked at the spreadsheet which is available when you first start QLC+ 5?

Re: Question: Open feature requests

Posted: Thu Feb 08, 2024 3:17 pm
by mcallegari
Number #3 could be interesting.
Do you have any experience in digital signal processing?
Some time ago I laid my eyes on lbaubio (https://aubio.org/)
Not sure if it is appropriate for real time processing though

Re: Question: Open feature requests

Posted: Thu Feb 08, 2024 3:52 pm
by Wazzledi
@yestelgia Yes I looked at the spreadsheet already, but wasnt sure if that sheet is up to date or which feature should be prioritized. Also, some entries are not self-explanatory.

@mcallegari Actually, I used aubio to implement a BPM detection program which sends the bpm of the current audio signal to QLC+ over osc. It is implemented in python, but I think the migration to c++ shouldn't be too difficult, because aubio itself is implemented in c.
And yes, it is appropriate for real time processing, in my experience.

Re: Question: Open feature requests

Posted: Thu Feb 08, 2024 4:48 pm
by janosvitok
Wazzledi wrote: Thu Feb 08, 2024 3:52 pm Actually, I used aubio
To use aubio in QLC+ you have to solve GPL/APL mismatch somehow... One way is to run aubio as separate process and create plugin in QLC+ (or use one of the existing plugins if you can fit aubio data to it).

Jano

Re: Question: Open feature requests

Posted: Thu Feb 08, 2024 7:54 pm
by Wazzledi
@janosvitok Oh, yeah.. you are absolutely right.

Since aubio is a very big library, and we would only need 1 specific function from it, I would suggest to just implement the algorithm on our own.

Librosa (another python audio library) uses the algorithm described in the paper below to measure the bpm of an audio signal.

http://labrosa.ee.columbia.edu/projects/beattrack/
https://www.ee.columbia.edu/~dpwe/pubs/ ... ttrack.pdf

They state in their paper:
Despite its limitations, the simplicity and efficiency of the dynamic programming approach to
beat tracking makes it an attractive default choice for general music applications.
So it seems to be a good algorithm. I could also research further if it is wanted.

But I am not sure how it behaves with licensing. I assume we need to mention the authors somehow, but I did not study law. :D

What do you think?

Re: Question: Open feature requests

Posted: Fri Feb 09, 2024 7:54 am
by mcallegari
Hi, if it is an academic research I don't see a reason why we can't use it.
Moreover, we can't drag in python or matlab code so in any case we need to rewrite in C++.
In general I agree that having our own (minimal) code to do beat detection is the optimal solution. Dragging dependencies is always a pain especially from a multi-platform perspective

Re: Question: Open feature requests

Posted: Tue Mar 19, 2024 11:18 am
by intamixx
If of any help I ran some tests with Mixxx / Sonic Pi / Hydra, Pure Data / QLC+, Beat Detection, DMX Lighting, OSC, Midi
https://www.youtube.com/watch?v=dvyG7D-vqbc