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

The filtered waveforms do not tell the truth #7255

Open
mixxxbot opened this issue Aug 22, 2022 · 3 comments
Open

The filtered waveforms do not tell the truth #7255

mixxxbot opened this issue Aug 22, 2022 · 3 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: esbrandt
Date: 2014-01-12T13:12:24Z
Status: Confirmed
Importance: Wishlist
Launchpad Issue: lp1268299
Tags: waveform
Attachments: [Frequencys Of Sounds.jpg](https://bugs.launchpad.net/bugs/1268299/+attachment/3947727/+files/Frequencys Of Sounds.jpg)


I always found it kinda odd that in filtered waveforms, the band for high frequencies is disproportionately dominant. Often they overlap middle and/or low frequencies, thereby reducing the usefulness of the waveform/overview display.

After some test i`m convinced that the expected waveform display differs from the actual filtered waveform display in Mixxx.

  • The filter ranges used for waveform computation needs review.
  • It appears that some kind of gain is applied before drawing the different bands.

The test can be found at https://docs.google.com/a/mixxx.org/document/d/14O_FXcSg6dDv5dslC4SWi4i1xeHgyctQ_UdiI8hoGuQ/edit?usp=sharing

Would love to hear some input.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2014-01-12T18:22:42Z


The waveform frequency is range is independent from the engine EQ frequency settings.
So we can do anything thats looks petter without worrying how it sounds.
What was the recipe to create the Expected waveform render? Maybe we can integrate that with Mixxx 1.12

@mixxxbot
Copy link
Collaborator Author

Commented by: esbrandt
Date: 2014-01-13T16:36:01Z
Attachments: [Frequencys Of Sounds.jpg](https://bugs.launchpad.net/mixxx/+bug/1268299/+attachment/3947727/+files/Frequencys Of Sounds.jpg)


Here is what i did to create the expected waveform.

Play back the original sample, then record the playback three times . 1st with Low&Mid Kill within Mixxx (Highpass), 2nd with Low &High within Mixxx (Bandpass), 3rd with with Mid&High Killl within Mixxx (Lowpass).

Then load and layer the 3 tracks in an external application ( Wave editor) and calculate waveforms using the RMS/Peak values. The result differs from Mixxx`drawing by a fair amount. The frequencies are much more readable. This lead me my to my initial conclusion that some kind of gain is applied, and we do not use the raw frequencies data to draw the waveform in Mixxx so (actual RMS/Peak values are overridden).

The second point are the frequencies used for analyzing waveforms. And comeing back to my three recordings, because the EQ`s kill frequencies are the same used for analyzing waveforms (see analyserwavefrom.cpp):
bessel_lowpass 600Hz
bessel_bandpass 600-4000Hz
bessel_highpass 4000 Hz

The original implantation (still in comments) used 200/200-2000/2000
I found our waveform representation is muddy, as if frequencies are overlapping. Not sure if frequency isolators would do a better job in dissecting the waveforms, or we should just validate the filters frequencies used (see file)

Unfortunately it is not very convient to experiment with different frequencies, because you manually have to delete a tracks waveform data from the mixxxdb.sqlite ( no way to purge waveform data from the gui).

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

hsn10 commented Apr 21, 2023

Filtered wave needs more filtering. Other software like virtual DJ, denon engine have nice smoothed waves:

https://ibb.co/SBRGkBk

If GLSL code is computing some moving average, increase time span. Its much easier to DJ and beat match with better looking waves.

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

No branches or pull requests

2 participants