Question: Open feature requests

Post Reply
Wazzledi
Posts: 21
Joined: Thu Aug 10, 2023 1:37 pm
Real Name: Dennis Suermann

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.
Yestalgia
Posts: 419
Joined: Thu Jun 17, 2021 9:31 am
Location: Australia
Real Name:
Contact:

Have you looked at the spreadsheet which is available when you first start QLC+ 5?
User avatar
mcallegari
Posts: 4711
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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
Wazzledi
Posts: 21
Joined: Thu Aug 10, 2023 1:37 pm
Real Name: Dennis Suermann

@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.
janosvitok
Posts: 1325
Joined: Mon Apr 13, 2015 7:05 am
Location: Bratislava, Slovakia
Real Name: Jano Svitok
Contact:

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
Wazzledi
Posts: 21
Joined: Thu Aug 10, 2023 1:37 pm
Real Name: Dennis Suermann

@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?
User avatar
mcallegari
Posts: 4711
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

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
intamixx
Posts: 3
Joined: Tue Mar 19, 2024 11:05 am
Real Name:

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
Post Reply