Skip to content

Fix #16848 slip mode rendering in split stem view - #16856

Open
PredellaN wants to merge 1080 commits into
mixxxdj:2.6from
PredellaN:fix-16848-split-stem-slip
Open

Fix #16848 slip mode rendering in split stem view#16856
PredellaN wants to merge 1080 commits into
mixxxdj:2.6from
PredellaN:fix-16848-split-stem-slip

Conversation

@PredellaN

Copy link
Copy Markdown

Fixes slip mode for stacked stem visualization: each stem waveform is split in two parts.

image

PatrickJosh and others added 30 commits May 29, 2026 22:54
Fixes mixxxdj#16520 which was introduced in
548094e.
…l_rendergraph

Make warnings fatal in mixxx-qml-lib and rendergraph
build: Update Qt policy QTP0004 to suppress deprecation warnings
…terface-waveform-cpp

Add rendergraph capabilities for full support on QML
Computes the phase difference of two given samples of a sine and cosine
pair.
It is actually an exponential weighted moving average filter.
Preparation for the instantaneous frequency detector, which requires the
derivative of the signal to be taken also for non-MK2 timecodes.
Rename struct pitch to struct pitch_filter, as this is more correct.

Also needed to make room for the new tc->pitch value.
Also reorder the values for better readability.
Completely substitutes the xwax legacy pitch detection with an
instantaneous frequency detector that updates the pitch on every sample,
as opposed to only when zero crossings are detected.

This improves latency, sticker drift and stability of the pitch.
…efficients

Testing showed that too many mode switches increase sticker drift. The
new frequency detector also provides smoother output without those
switches.
Without a small dot can be visible when the record is not spinning.
Was at 15 fps before. It feels better with 30.
Some minor conistencency cleanups.
The library is needed for the Savitzky-Golay filter.
Implement a Savitzky-Golay filter according to

https://c.mql5.com/forextsd/forum/147/sgfilter.pdf

which efficiently smooths a signal without filtering out wanted
frequency components.
This replaces xwax' rumble filter in the detect_zero_crossing() function
for the new pitch detection logic.
This filter version takes the timecode carrier frequency and sampling
rate into account.
Adds tests for the single functions of the matrix API, which is used
to generate the Savitzky-Golay filter.
mixxxbot and others added 20 commits August 2, 2026 13:30
…k-effect

QML: enable Quick.Effects on Windows and Mac
…/mixxxdj/mixxx2-7/. Compile QM files out of TS files that are used by the localized app
…rart

Track Info Dialog: Add tooltip to cover art image
CrateFeature: Remove outdated refactoring TODO comment that has already been implemented
@JoergAtGithub

Copy link
Copy Markdown
Member

There appear some orange artifacts, when slip mode is activated:

Aufzeichnung.2026-08-09.143957.mp4

@PredellaN

Copy link
Copy Markdown
Author

There appear some orange artifacts, when slip mode is activated:

Aufzeichnung.2026-08-09.143957.mp4

Interesting... I didn't get those but I'll try to reproduce the issue. This doesn't happen in overlapping mode?

@JoergAtGithub

Copy link
Copy Markdown
Member

Just checked, it also happens with overlay mode

@PredellaN

Copy link
Copy Markdown
Author

Just checked, it also happens with overlay mode

I am unable to reproduce the issue (neither in overlapping nor in stacked), can you check if this issue is absent in main?

@JoergAtGithub

Copy link
Copy Markdown
Member

Thisorange flickering is not related to this PR. It is also in main and affects not only STEM files. But I found out, that it only appears with hardware-accelerated RGB waveforms:

Aufzeichnung.2026-08-09.200259.mp4

@JoergAtGithub JoergAtGithub left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The artifacts are unrelated to this PR. The implemented slip functionality works flawless. Code looks good! Thank you for addressing this!

@JoergAtGithub
JoergAtGithub changed the base branch from main to 2.6 August 13, 2026 05:06
@JoergAtGithub

Copy link
Copy Markdown
Member

I changed this PRs target to 2.6, as this fixes an issue in 2.6. Could you please rebase your branch to 2.6 therefore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.