Waveforms jerk but not when another window is focused on KDE

Bug #1815341 reported by mm-mbs
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
High
Unassigned

Bug Description

When I run Mixxx 2.2.1 (Git hash 5c7697662b9aa964344580f9d7e5fe6f75d69a6d) in foreground, then the waveform dither little bit. When I focus another program, then the waveform run smother. When I run Mixxx 2.1.7, then the waveform is always smother.
I take a video where you can see the effect. First I start the song and the waveform dither little bit. Then I change to Firefox and the waveform run smother. Change to Mixxx and the waveform dither again and so on. On the second video I change the waveform type from RGB (GLSL) to RGB and there the same result.

* I compile Mixxx on Debian Stretch.
* There is an Laptop with Intel Core i5 (4 x 1.7GHz) with integrated Intel GPU.

PS: The master branch (8aeda6ff17ba7c135d6a373b3ffa6077c42f5b37) has the same problem.

Tags: waveform
Revision history for this message
mm-mbs (mm-mbs) wrote :
Revision history for this message
mm-mbs (mm-mbs) wrote :
Revision history for this message
Be (be.ing) wrote : Re: Waveforms jerk but not when another window is focused

Thank you for attaching the videos. We have had a few reports of this before (Bug #1762111) but it was not clear if it affected Mixxx 2.2.

Could you test https://github.com/mixxxdj/mixxx/pull/1974 ? Maybe that somehow solves the problem.

summary: - Waveform on 2.2.1-rc dither on foreground
+ Waveforms jerk but not when another window is focused
Changed in mixxx:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Be (be.ing) wrote :

If you need instructions for how to test a pull request, refer to the wiki: https://mixxx.org/wiki/doku.php/using_git

Revision history for this message
mm-mbs (mm-mbs) wrote :

Thank you for the fast answer.

I tried the pull request (GIT hash a1a885749416cce35e31cb3832199fb5cd4d50f0). If I configure waveform type RGB (GLSL) than the waveform are not displayed (see screenshot). On RGB and RGB (GL) the reaction is still the same as without patch.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

I am on Ubuntu Xenial with X11 which should be based on Debian Stretch and cannot confirm the issue with similar Hardware.

This may also be related to faulty timing information from your sound device. Does the issue persist if you switch to Network clock in the Hardware preferences?

What happens if you rise up the Waveform frame rate to 60 FPS?

Is the VsyncTest Wavefrom effected?
It is available if you start Mixxx with
mixxx --developer

Revision history for this message
Be (be.ing) wrote :

According to https://packages.debian.org/stretch/qt5-default Debian Stretch ships Qt 5.7.1. Perhaps this is caused by a Qt bug that has been fixed. That could explain why I saw this a while ago with my old laptop but I can no longer reproduce it. Maybe you could try building Mixxx with Qt 5.12.1? There are instructions on the wiki for how to build Mixxx with a version of Qt other than what your distribution ships with: https://mixxx.org/wiki/doku.php/compiling_on_linux#non-system_qt

Revision history for this message
mm-mbs (mm-mbs) wrote :

Yes, Debian Stretch use Qt 5.7.1. I try to compiled Qt 5.12.1 with Mixxx master branch and effect was the same. But I think the compiler use the Qt system libraries and the export PKG_CONFIG_PATH=... doesn't work. My guess is confirmed by the fact that during compilation the following is written:

g++ -o lin64_build/lib/soundtouch/mmx_optimized.o -c -std=c++11 -pipe -Wall -Wextra -g -fPIC -O3 -ffast-math -funroll-loops -fomit-frame-pointer -march=native -pthread -Dx86_64 -DMIXXX_BUILD_DEBUG -D__LINUX__ -D__UNIX__ -DSETTINGS_PATH=\".mixxx/\" -DSETTINGS_FILE=\"mixxx.cfg\" -DUNIX_SHARE_PATH=\"/home/user/local-mixxx-master/share/mixxx\" -DUNIX_LIB_PATH=\"/home/user/local-mixxx-master/lib/mixxx\" -DQT_TABLET_SUPPORT -DQT_SHARED -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_OPENGL_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D__SNDFILE__ -DSFC_SUPPORTS_SET_COMPRESSION_LEVEL -Dkiss_fft_scalar=double -DUSE_PTHREADS -D__MAD__ -D__HID__ -D__BULK__ -D__VINYLCONTROL__ -D__BROADCAST__ -D__OPUS__ -D__FAAD__ -D__MP4V2__ -D__SQLITE3__ -D__LILV__ -D__BATTERY__ -Ilin64_build/lib/soundtouch/src -Ilib/soundtouch/src -Ilib/soundtouch -Ilib/replaygain -Ilib/libebur128/ebur128 -I/usr/include/x86_64-linux-gnu/qt5/Qt5DBus -I/usr/include/x86_64-linux-gnu/qt5/QtConcurrent -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtOpenGL -I/usr/include/x86_64-linux-gnu/qt5/QtScript -I/usr/include/x86_64-linux-gnu/qt5/QtScriptTools -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtTest -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtXml -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtCore -Ilib/gtest-1.7.0/include -Ilib/fidlib -I/usr/include/taglib -Ilib/qtscript-bytearray -Ilib/reverb -Ilib/portaudio -Ilib/qm-dsp -Ilib/qm-dsp/include -I/usr/include/hidapi -I/usr/include/libusb-1.0 -Ilib/xwax -I/usr/include/opus -I/usr/include/libupower-glib -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include lib/soundtouch/mmx_optimized.cpp

How can I control which Qt library scons use?

Revision history for this message
Be (be.ing) wrote :

Try using "qtdir=/where/you/installed/Qt" with scons

Revision history for this message
mm-mbs (mm-mbs) wrote :

I tried to build Mixxx without installed system Qt headers (in a VM) and Mixxx don't find Qt. My steps are:
 cd /mnt/home/qt-everywhere-src-5.12.1/
 ./configure -prefix /mnt/home/qt -system-sqlite -sql-sqlite -qt-zlib -opensource -confirm-license -nomake examples -nomake tests -skip qt3d -skip qtwebengine
 make -j2
 make install
 export PKG_CONFIG_PATH=/mnt/home/qt
 cd ../mixxx/
 scons prefix=/mnt/home/local -j 2 optimize=native qtdir=/mnt/home/qt

I always get the following output (reduced):
scons: Reading SConscript files ...
[...]
Configuring Qt
Checking for Qt5Core (5.0 or higher)... no
ERROR:root:Unmet dependency: Qt >= 5.0 not found
[...]
Configuring QtKeychain
ERROR:root:Build had unmet dependencies. Exiting.

I tried also "export QTDIR=/mnt/home/qt", but no success.

The config.log say not helpful message:
[...]
scons: Configure: Checking for Qt5Core (5.0 or higher)...
pkg-config --atleast-version=5.0 'Qt5Core'
scons: Configure: no
[...]

Revision history for this message
mm-mbs (mm-mbs) wrote :

I change the Engine Clock to Network and Soundcard Clock with the same result.

If I set the FPS up to 60 the effect is better, but if Mixxx is in background (not in focus) the Waveform scroll smoother on 30 FPS as 60 FPS in foreground.

I started Mixxx with --developer, but what do you mean with VsyncTest Wavefrom? Where can I find the VsyncTest?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

So the soundcard clock does not change anything?

The vsynctest is a special waveform among RGB (GL) and others. You can select it in the waveform preferences during --developer mode.

Revision history for this message
mm-mbs (mm-mbs) wrote :

No, soundcard clock or network clock doesn't change anything.

OK, I have found the VsyncTest. There is an crazy flickering. Sometimes (1-2x per Minutes) I can see a horizontal "Line".

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Ha moving horizontal line also called tearing happens if there is a vsync issue.
Ideal at 60 Fps, you should see a equal pink area. A red or white flickering is a jerking in the real waveform.

Revision history for this message
mm-mbs (mm-mbs) wrote :

On Mixxx 2.1 the VsyncTest is blinking too and the waveform scroll smoothly. Same on Mixxx 2.2 in background.

I haven't succeeded to compile mixxx without system Qt yet. Maybe it really is a bug in Qt 5.7.1.

Revision history for this message
mm-mbs (mm-mbs) wrote :

I installed Debian Buster with Qt 5.11.3 with Mixxx 2.2.0 and there is the same problem, the waveform is scrolling smother if Mixxx is not in focus. I compile also the pull request https://github.com/mixxxdj/mixxx/pull/1974 but there is the same effect.

I remove the system Qt developer tools (headers etc) and try to compile Qt 5.12.1 again. Before compile Mixxx I set the PKG_CONFIG_PATH to /mnt/home/qt/lib/pkgconfig and now Mixxx found the new Qt library. But now Mixxx show another error on configure:

Configuring Qt
Checking for Qt5Core (5.0 or higher)... yes
Checking for C library Qt5X11Extras... no
ERROR:root:Unmet dependency: Could not find Qt5X11Extras or its development headers

How I compile Qt5X11Extras?

Revision history for this message
mm-mbs (mm-mbs) wrote :

I run Mixxx 2.2 (Qt 5.7.1) on Xfce and the waveform are smooth. Only on KDE jerk the waveform. This seems to be a problem between KDE and Mixxx. I think there the same problem as https://bugs.launchpad.net/mixxx/+bug/1762111

Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
4 x Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz

Revision history for this message
Be (be.ing) wrote :

That is interesting that it is okay on Xfce. Can you test with Xfce on the computer you originally saw this bug on? Can you test with KDE on the computer where it is working with Xfce? Are you using KDE with X or Wayland?

Revision history for this message
mm-mbs (mm-mbs) wrote :

I installed Xfce (parallel) on this computer where I have the problem on KDE. I installed also IceWm and the problem exist only on KDE. All desktop environment run on X.org.

Revision history for this message
Be (be.ing) wrote :

Go to KDE System Settings -> Display and Monitor -> Compositor and try changing the various settings there.

Revision history for this message
mm-mbs (mm-mbs) wrote :

I tried lot of various settings. Composer de/activate, OpenGL 2.0/3.1/XRender, all VSync setting, HDMI monitor and/or Laptop screen, Display resolution. On all settings Mixxx 2.2 waveform jerk.

Revision history for this message
Be (be.ing) wrote :

Maybe try killing kwin_x11 after starting KDE and start a different window manager? Does it work with GNOME using X or Wayland?

Revision history for this message
mm-mbs (mm-mbs) wrote :

I started KDE and killed the kwin_x11 process. I can't handle windows, but I can start Mixxx 2.2 and see the waveform. The waveform already jerk.

Wayland works on Debian Stretch not really and Gnome is to big for parallel install. But I think, on Gnome works but atskler has the same problem and on other Desktops works (see https://bugs.launchpad.net/mixxx/+bug/1762111).

Revision history for this message
Be (be.ing) wrote :

Hmm, I'm not sure what else to suggest at this point. We may need to talk to a KDE developer.

summary: - Waveforms jerk but not when another window is focused
+ Waveforms jerk but not when another window is focused on KDE
Revision history for this message
mm-mbs (mm-mbs) wrote :

Can I activate Qt5 in 2.1.7 with this command? Or had qt5=1 no effect of waveform? If I compile Mixxx with this command, the waveform is smoth.

scons -j 4 optimize=native faad=1 qt5=1

tags: added: waveform
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/9589

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.