The filtered waveforms do not tell the truth

Bug #1268299 reported by jus
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

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.

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

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

Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
Revision history for this message
jus (jus) wrote :

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

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/7255

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.