Bugs: 4.8.0 on OS X 10.10 Yosemite (GM), FFTW

Archive of the non-categorized posts related to the QLC+ technical support.
Please do not create new threads here, instead, use the categories above !
Post Reply
Shikhir Arora

I'm a fairly new user of QLC+ -- just a few days -- but I am very impressed with the feature set. I've used many software implementations that either cost a lot or require specific hardware. I am running a fairly simple setup (Chauvet 4Bar and Spot Duo) and QLC+ works well. I've noticed some bugs with 4.8.0 on OS X 10.10 which is technically beta but is a GM release now for devs/pub so pretty much ready to go.

Though Apple really did a lot of (somewhat annoying) changes with 10.10 and really programming OS X has a bias for their Swift API for a lot of things.

I am using DMX-KING eDMX1 over Art-Net, but that doesn't have any issues.

I rely on the Audio Triggers feature as my goal is to create automation of light scenes that go with real-time audio. On this OS X version (MacBook Retina 2012 that is capable) with QLC+ 4.8.0 I noticed that the Audio Triggers are really laggy. I did a good amount of looking in to what I can do - tried changing outputs, inputs, and all the configs on the audio trigger widget.

Sampling the process I'm not sure if it's a coreaudio, fftw3 or other problem, but I do have that issue where the volume bar is varying gain as the sound of the real-time input gets more/less intense. The FFT graph is very laggy and basically not usable. I have had it crash a few times in testing, but mostly it's just really laggy, especially when there's a lot of variation.

It seems to be related to the fact the volume is controlling the FFT on OS X as the volume varies with the (almost frozen/delayed) FFT graph as if it was another bar.

Anyways, I managed to use Qt 4.8.6 to build QLC+ 4.8.1 GIT from source completely. Still have the audio trigger problem and doesn't seem to be much better. Also, plugins don't seem to work with this build though dylib's are all copied correctly. The program opens and runs fine otherwise but still the same audio issue, just no plugins load so can't see any Art-Net or other interfaces. But that was iffy as it was a built beta so somewhat expected.

I took the libfftw3.3.dylib from the source-built GIT4.8.1 and copied that to the QLC+ 4.8.0 release that was released in the .dmg format (prebuilt) as it was different to see if that fixed any issues and it didn't do anything.

I tried the program on a lesser capable Windows laptop (Win7 64 bit) with 4.8.0 (using Qt 5 pre-built exe) and it works flawlessly.

I will try it on a Debian system tomorrow too, should work fine though.

The only thing I can think of with the audio trigger lag/issue is that there's some type of 10.10 update on coreaudiod or Qt, or fftw3 (but I tried to remedy that by linking the latest dylib to the 4.8.0 QLC+ with no avail).

I also curiously tried OS X source-build with Qt 5.3.2. After a bit of debugging I got it to somewhat compile, but not really. Can't get past a make stage and I saw a thread here a while earlier with the same issue (missing header file that qmake should generate).

Lastly, I did run the app through command line and I saw these come up with the audio trigger lag which was all I was testing.

> qlcplus[5084:1108728] modalSession has been exited prematurely - check for a reentrant call to endModalSession:


This was a few times during my session, not sure if it has anything to do with QLC+. I researched the general warning and there seems to be a bug post on Qt which was patch filed and fixed, though these are both for Qt 5.x.x so it doesn't apply here.



Lastly, for Massimo, have you considered maybe doing threading support for libfftw? Easy to do and it should be pretty good performance, though only on certain machines. I think I will try to compile it for fun with threading with the _threads fix and linked libs when I have some free time.

https://github.com/mcallegari/qlcplus/b ... apture.cpp

Also see that you defined other windows like Blackman on the FFT, will probably play around with those too. Great work so far though and I look forward to seeing how 'advanced' I can get this automation/visualization project going :)

Like I said my goal is the above and I mainly work with the math so I'll see if there's anything in my local development/testing mods to the code in maybe improving the audio trigger/realtime feature in general.

I will post updates if I find something new/fixed.

Also should have fixtures for the 4Bar Chauvet (like the 4Bar Tri but a bit different) and Chauvet Intimidator Spot Duo pretty soon and will post.
Shikhir Arora

https://bugreports.qt-project.org/browse/QTBUG-40585

This was the bug they patched for Qt5 I mentioned above. Seems like it may be the cause with the lagging audio/FFT hang.
Massimo Callegari

Hello Shikhir,
I'm pretty interested in two things: multicore FFTW and creating a working bundle based on Qt5.
If you can give a hand with them it would be awesome.

Unfortunately Qt4 on newer OSX versions has been left behind, so it's very possible you encounter weird issues. That's why I'm struggling to have Qt5 working ASAP.
As for different FFT windowing defines, those are inherited from the libbeat project. I started the implementation from there.

Thanks
Shikhir Arora

Changing the window should be pretty easy, just swapping the initial used define from the Hann window. However the Hann window is the most accepted window for generalized things so it's probably best. I will compile it with the other two (rectangular/none and Blackmann) to see what difference it makes.

FFTW threads shouldn't be too hard and I'll compile that too on my end. Just need to change a few flags in the code and link to the libfftw3_threads dylib. Though the difference may be negligible in the r2c_1d case as it's just essentially a 1D discrete cosine transform.

But yeah, I think once the OS X build works with Qt5 that will solve a lot of issues, plus it can support a volume/gain slider on audio triggers like you have enabled on the Windows version. What was the issue with Qt5 and Debian?
Shikhir Arora

Is Qt5/Linux working at all? Haven't compiled that yet but will soon. The OS X issue is almost definitely related to the Qt issue specified above or something related as I get the error about modalSession exactly when I make an audio trigger object or mess with it. So nothing wrong with the libraries, just the GUI, though it affects the data so I will stick with Windows/Linux for now. Going to play around with the code to enable threading and try another window.

Random question, can QLC+ broadcast to another QLC+ installation on the same local network? I swear I saw it under the list of inputs/outputs with my hardware. I know the webAPI exists. With Art-Net can two people on the same local network with QLC+ send to the DMX channels at the same time, but modifying different values, like one sends ch1-20 and the other 21-40 so two people can control the show?
Post Reply