Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Waveforms jerk but not when another window is focused on KDE #9589

Closed
mixxxbot opened this issue Aug 23, 2022 · 28 comments
Closed

Waveforms jerk but not when another window is focused on KDE #9589

mixxxbot opened this issue Aug 23, 2022 · 28 comments
Labels
bug confirmed incomplete stale Stale issues that haven't been updated for a long time. waveform

Comments

@mixxxbot
Copy link
Collaborator

Reported by: mm-mbs
Date: 2019-02-10T11:13:11Z
Status: Confirmed
Importance: High
Launchpad Issue: lp1815341
Tags: waveform
Attachments: mixxx-2.2.1-rc-RGB-glsl.mp4, mixxx-2.2.1-rc-RGB.mp4, Mixxx-qopenglwidget.png


When I run Mixxx 2.2.1 (Git hash 5c76976) 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 (8aeda6f) has the same problem.

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-10T11:13:11Z
Attachments: mixxx-2.2.1-rc-RGB-glsl.mp4

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-10T11:14:28Z
Attachments: mixxx-2.2.1-rc-RGB.mp4

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-10T15:47:33Z


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 #1974 ? Maybe that somehow solves the problem.

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-10T16:06:12Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-10T20:13:14Z
Attachments: Mixxx-qopenglwidget.png


Thank you for the fast answer.

I tried the pull request (GIT hash a1a8857). 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.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2019-02-10T22:25:09Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-11T03:32:04Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-11T19:59:34Z


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?

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-11T21:12:47Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-12T08:58:07Z


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
[...]

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-12T16:16:12Z


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?

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2019-02-12T17:03:15Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-12T17:32:34Z


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".

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2019-02-12T20:56:07Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-13T07:23:15Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-16T09:28:03Z


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 #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?

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-16T13:46:49Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-16T15:17:07Z


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?

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-16T16:17:08Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-16T16:31:53Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-16T17:01:23Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-16T20:38:04Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-17T14:43:21Z


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).

@mixxxbot
Copy link
Collaborator Author

Commented by: Be-ing
Date: 2019-02-17T15:34:42Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: mm-mbs
Date: 2019-02-17T19:08:58Z


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

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
@JoergAtGithub
Copy link
Member

@mm-mbs Could you try the following development build of PR10989: https://github.com/mixxxdj/mixxx/suites/12873892391/artifacts/694473745

Does this build still show the waveform jerking under KDE?

@daschuer
Copy link
Member

This is likely fixed with Mixxx 2.4-alpha. Can you confirm?

@github-actions github-actions bot added the stale Stale issues that haven't been updated for a long time. label Oct 14, 2023
@github-actions
Copy link

Expired for Mixxx because there has been no activity for 60 days.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug confirmed incomplete stale Stale issues that haven't been updated for a long time. waveform
Projects
None yet
Development

No branches or pull requests

3 participants