mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.51k stars 1.28k forks source link

very slow playback extremely broken #8541

Closed mixxxbot closed 2 years ago

mixxxbot commented 2 years ago

Reported by: ywwg Date: 2016-05-05T01:18:50Z Status: Fix Released Importance: Medium Launchpad Issue: lp1578451 Attachments: [pushing vinyl control very slowly, very bad audio output](https://bugs.launchpad.net/bugs/1578451/+attachment/4656057/+files/pushing vinyl control very slowly, very bad audio output), [audioplot file for graph](https://bugs.launchpad.net/bugs/1578451/+attachment/4656802/+files/audioplot file for graph)


Something is wrong with playing back at very slow rates, it's popping a lot and an output of the waveform is pretty hideous. I generated this by loading a track and then very slightly pushing the needle in vinyl control mode. Even dragging with the mouse at very slow speed generates clipped signals and very loud noises, though not as badly as with vinyl mode.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2016-05-05T01:18:50Z Attachments: [pushing vinyl control very slowly, very bad audio output](https://bugs.launchpad.net/mixxx/+bug/1578451/+attachment/4656057/+files/pushing vinyl control very slowly, very bad audio output)

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2016-05-05T20:13:34Z


I can confirm the waveform, but I cannot confirm that this is broken. The squares you see, happens, because the scratching engine changes between slow speed and pause. So you probably see the known filter issue of the vinyl control engine.

I would say this is the desired behavior for "digital scratching" where the gain does not change by the speed unlikely what happens on original vinyls. Currently the Mixxx implementation uses the same gain for all speeds, except near zero to allow a click free direction change.

You probably want a vinyl scratching like behavior of the gain per speed. I have setup a branch for it. https://github.com/mixxxdj/mixxx/pull/602 I like the gain curve very much as well :-) And I would be happy about a review. (I am currently fixing conflicts)

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2016-05-05T20:31:53Z


compare with 1.12 (2.0), which sounds much better

Mixxx still has a vinyl-like adjustment of gain, it was moved to enginepregain.cpp with a threshold of 0.07

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2016-05-06T01:06:06Z


I yes, I can notice a click when changing direction that seams to be new in 2.1.

I have committed the fixes here: https://github.com/mixxxdj/mixxx/commit/e1f0237905bd8aa66ffb3afce39439d7a27f0e40 https://github.com/mixxxdj/mixxx/commit/d6d95e00d0b656faba03a2b3b58956d90bd93e4e

Please check if Mixxx is back at 2.0 sound.

However the "issue" shown in the waveform probably still persists. At which buffer size was it recorded?

Mix has not a real vinyl-like adjustment. The gain adjustment removes only the unwanted sub base noise near zero. Unfortunately itself introduce non linearity (noise) because of the 0.07 threshold.
You can compare it to https://github.com/mixxxdj/mixxx/pull/602 which is now up to date, and has a continuous gain adjustment.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2016-05-06T01:39:35Z Attachments: [audioplot file for graph](https://bugs.launchpad.net/mixxx/+bug/1578451/+attachment/4656802/+files/audioplot file for graph)


thanks for these fixes, I'll test them tomorrow.

I'm a little disappointed that our end-to-end enginebuffer tests didn't catch these, maybe we can write a new one.

My buffer was set to 10ms, and if you look at that screenshot, the lower axis is in samples (this is just the left channel). I'll attach my original recording in case you want to zoom in.

mixxxbot commented 2 years ago

Issue closed with status Fix Released.