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

Sound Levels and Silence detector #13412

Closed
tlibra10 opened this issue Jun 27, 2024 · 26 comments
Closed

Sound Levels and Silence detector #13412

tlibra10 opened this issue Jun 27, 2024 · 26 comments
Labels
bug incomplete stale Stale issues that haven't been updated for a long time.

Comments

@tlibra10
Copy link

Bug Description

I have been advised to mention this. The silence detector after version 2.3.0 is not efficient. Never been great anyway. And sound levels are ok but not Great. Maybe someone could make Mixxx detect if a song has a quiet section as well as a loud section and keep them at a constant level. No software/app actually does that as yet. If Mixxx could do that, then it will rise above all the others. AS for silence, well you still have to tell Mixxx where the song ends. It can't determine if it's a straight end or Fade end. Often cuts off the end of a straight ending song, or brings in the next track too late after a fade off song. It really needs to know the difference somehow. eg. if you have the transition set to 4 seconds it will start the next track at 4 seconds regardless if the previous song is still playing. If you set it too late as in 2 seconds, then it will start the next track too late on a fade off. Therefore I'm not sure if the "Silence detector" actually works. I know this is not an easy task. I just thought I'd give it a mention.
I'm currently running version 2.3.0 as I have tried the later one's but none at present (Except Version 2.3.2) has the "Crossfader auto return" also the sound levels and crossfader transitions are better with that version. Mixxx seems to have lost it's way with later releases.

Version

2.3.0 (See above for reason why)

OS

Windows 11

@tlibra10 tlibra10 added the bug label Jun 27, 2024
@ronso0
Copy link
Member

ronso0 commented Jun 27, 2024

The silence detector after version 2.3.0 is not efficient. Never been great anyway.

Please define "efficient" and "great". Please provide an example / comparison with a pecific track analyzed with 2.3.0 and a version which you consider worse.

FWIW the silence threshold of -60 dB has not been changed for ages.
I can't spot any relevant changes in the changelog or in the silence analyzer https://github.com/mixxxdj/mixxx/commits/6b62210eed71869fb2dd39c12261328912caf528/src/analyzer/analyzersilence.cpp

@ronso0
Copy link
Member

ronso0 commented Jun 27, 2024

It can't determine if it's a straight end or Fade end. Often cuts off the end of a straight ending song, ...

Here you're referring to AutoDJ IIUC.
There is the 'Skip Silence' transition mode and the Intro/Outro modes.
When a song is analyzed, the first and last sound are marked and used for the 'Skip Silence' mode. First sound is also marked as intro start, last sound is intro end.
What mode do you use? Do you set intro end and outro start markers, or change the intro start or outro end markers?

@ronso0
Copy link
Member

ronso0 commented Jun 27, 2024

sound levels are ok but not Great.

Not sure what you are referring to here either. The main output level? The track volume?
You can adjust the gain correction, aka ReplayGain, to your liking in Preferences -> Normalization.
You can tweak the main output with the Main Gain knob, though be sure to read the 'gain staging' advices in the manual.
https://manual.mixxx.org/2.4/en/chapters/djing_with_mixxx#setting-your-levels-properly-gain-staging

@ronso0
Copy link
Member

ronso0 commented Jun 27, 2024

Maybe someone could make Mixxx detect if a song has a quiet section as well as a loud section and keep them at a constant level. No software/app actually does that as yet.

In audio processing you usually use a compressor / expander effect for this.
Besides various LV2 plugins that can be used with Mixxx, there has recently a Compressor been added to Mixxx #12523 (available in Mixxx 2.5).

@tlibra10
Copy link
Author

Hi Yeah, I know all about the gain and everything, but it's annoying that a song may start with a quiet piece and then get louder. I have noticed a few modern songs tend to get loud up to the end.
You must be aware of an "ALC" (Automatic level control) This used to be used many years ago on recording devices. Although back then some were a little crude and work TOO EFFICIENTLY. Sometimes background noise ratio was too loud when it raised the level, but with today's tech, there are no background noise as it's all digital sound, not "Tape" analogue. The ALC would have worked well if it was not for tape hiss. (Shows may age). Anyway, an ALC would work great in today's Digital playback.
So in other words... As a track has quiet places, it should know that and keep the quiet sections the same level as the louder sections. (Keeping the loud sections at a reasonable Level) I just thought that with today's Tech, it would not be that hard to do, but I'm no Techie.
It's just annoying that you have to keep turning up the gain, then turning down the gain throughout the tracks.

Having said that, the sound level in version 2.3.0 are the better ones. The level doesn't go loud and stay relatively level with each other except the quiet bits are still relatively quiet.

So to some up. With Sound level, Crossfader auto return, I feel version 2.3.0 is the better one so far.

Hope this helps.

@tlibra10
Copy link
Author

tlibra10 commented Jun 27, 2024

I forgot to include what I mean by Efficient... The Silence Detector I have issues where I can set it for the end of straight ending song as I mentioned above, but then the silence is not detected on Fade out songs. So I have set it somewhere in the middle. (I have tried Intro/outro settings, Skip silence settings. Still crashes certain tracks in places or too much silence no matter how I set it)
How I have it set now, it works but not efficient as it can still sometimes Crash a track or too much silence than I would like. So to sum up (Again) it works, but it doesn't work. Hope that makes sense.

@ronso0
Copy link
Member

ronso0 commented Jun 27, 2024

So to some up. With Sound level, [..] I feel version 2.3.0 is the better one so far.

As mentioned earlier, please provide comparable examples.
Since you're familiar with up/downgrading, the best method would be:

  1. backup your Mixxx settings directory
  2. delete your Mixxx settings directory
  3. on next start Mixxx will create a new, clean profile (e.g. it will ask for music directories to add):
    ! don't add any directories, don't change any settings !
  4. drag one specific song (file) into a deck, let it finish the analysis (you'll see intro start and outro end markers pop up in the overview waveform)
  5. close Mixxx
  6. copy mixxxdb.sqlite to another directory, insert the number of the Mixxx version so you have e.g. ~/mixxxdb-comparison/mixxxdb_2.3.0.sqlite
  7. repeat steps 2. - 6. for the Mixxx versions you tested so far (2.3.1, 2.3.2, .. 2.4.0)

Then please share the db files here so we can compare the first/last sound cue points and the detected ReplayGain.
Thank you.

@tlibra10
Copy link
Author

Hi There,
Well I see you are asking for me to do some kind of testing??
I have just compared the actual versions, only by using them as individual apps.
I'm not sure what it is that you are getting at.
What you are asking me to do at first look seems to be a bit technical.
So when I have backed up my Mixxx Directory from version 2.3.0 Are you asking me to uninstall 2.3.0 and install another version then place the Mixxxdb from 2.3.0 into the other version I install? Eg version 2.4.0 ect.?

Please be a bit clearer. I will pick this up in the morning (Friday).

Thank you. Goodnight Sir.

@ronso0
Copy link
Member

ronso0 commented Jun 27, 2024

Well I see you are asking for me to do some kind of testing??

Exactly. You mentioned you tried various versions and went back to 2.3.0 because that's where you say you experienced the best silence detector and levels.
In order to quantify "best" we need some samples.
Steps 2 -6 will give us a db file with data for just one track.

Are you asking me to uninstall 2.3.0 and install another version

Yes. Ideally all other versions you tested and considered "not good".

then place the Mixxxdb from 2.3.0 into the other version I install?

No, I didn't write that.
Just copy the db files of each version you tested to a separate directory (I edited step 7, hopefully it's clear now).
Steps 2 - 6 mean you always test each version with an empty profile.
In the end you'll have

  • mixxxdb_2.3.0.sqlite
  • mixxxdb_2.3.1.sqlite
  • mixxxdb_2.3.2.sqlite
  • ...
    Please share those.

Thank you.

@tlibra10
Copy link
Author

Good Morning.

Ok I will work on that throughout the morning today.
Please give me some time.
I hope I will be able to help you with this.

@tlibra10
Copy link
Author

tlibra10 commented Jun 28, 2024

Hi Again.
Ok I have copied all the relevant version db Files that you requested, but I don't know how to get them to you???

Also, Could I put the mixxxdb_2.3.0.sqlite into version 2.4.1?

I'll try to attched the files, but it comes up as text.

@tlibra10
Copy link
Author

tlibra10 commented Jun 28, 2024

mixxx.log (2.3.0)

mixxx.log (2.4.0)

mixxx.log (2.4.1)

For Some reason 2.3.1 and 2.3.2 didn't give any reading that I could upload to you. Sorry.

I tried my best.

No I tried again with 231 and 232 but didn't get anything. I hope You have what you need though

@tlibra10
Copy link
Author

I have my answer about using the db from 230 in 241... You can't.
I have re-installed 230.

Again I hope I was able to help this morning.

@ronso0
Copy link
Member

ronso0 commented Jun 28, 2024

Logs are useless, they don't contain analysis data or cue positions.
Please upload the mixxxdb.sqlite generated by each Mixxx versions you are going to test, as I stated multiple times.

Also, you dropped many tracks into Mixxx (a playlist?) while I asked to drop exactly one track (the same track for all Mixxx versions you are going to test).

I reworde the test steps, I hope there it's all clear now. Please follow these steps exactly.
#13412 (comment)

Thanks for your time.

@tlibra10
Copy link
Author

tlibra10 commented Jun 28, 2024

OK, Sorry,
I will have to do it all over again.

You will have to give me some time now as I can't do it all right now, but I will try it later.

At least I now know how to upload the files.

So I should only run ONE Track, the same one in every test??
And you want JUST the mixxxdb.sqlite file from each version?

Have I got that right?

@ronso0
Copy link
Member

ronso0 commented Jun 28, 2024

OK, Sorry,
I will have to do it all over again.

Take your time.

So I should only run ONE Track, the same one in every test??

Yes, the same track file for all test. (it's all about comparing analysis results, right)

And you want JUST the mixxxdb.sqlite file from each version?

Yes : )

At least I now know how to upload the files.

Turns out Github does not allow to attach sqlite files to comments, you'll have to zip them and share the zip (just attach here, no external file hosting please).

@tlibra10
Copy link
Author

Oh, That bit I'm not sure what to do about the "Zipping" thing.
So what I did earlier is no good to you???

I might be getting in over my head here.

I will see. Got some things I have to do first (Life stuff) then when I get to settle I will see what I can do.
Sorry for not getting this right the first time.

@ronso0
Copy link
Member

ronso0 commented Jun 28, 2024

Don't worry.
Zipping = create a zip archive from all generated sqlite files.

@tlibra10
Copy link
Author

I've done some research and I think I now know how to zip a file. Gotta Get On Do it later.

@tlibra10
Copy link
Author

mixxxdb.zip (2.3.0)

mixxxdb.zip (2.3.1)

mixxxdb.zip (2.3.2)

mixxxdb.zip (2.4.0)

mixxxdb.zip 2.4.1

Hi Again.
So as Promised I have Tried to Zip the files. installed all as this morning and this time I really hope I have done it correctly.

I also Hope that I have helped in some way.

@ronso0
Copy link
Member

ronso0 commented Jul 1, 2024

The gain levels are identical in all versions..
For some reason track duration varies between 2.3.x and 2.4.x, and -probably for the same reason- the detected BPM.
I'll check if the different durations even give the same first/last sound.

@tlibra10
Copy link
Author

tlibra10 commented Jul 2, 2024

Good Morning Sir,
Oh so it may be the way I have set up Mixxx 2.3.0 then. otherwise not sure why I seem to get unstable sound levels in the other
versions with the exception of 2.3.1.
So if I read the message correctly, you have found a very minute discrepancy between the versions?
Once the updated version is released with the crossfader auto return, I will download it and see if the sound levels on that are stable.
To be honest, I concentrated more on the "Silence detector" or "Auto transition" problem rather than the sound levels a lot of the time. I wanted to find the one that can transition tracks the best when I leave the decks for a short time. I don't think many people notice, but I do.
This is why I never initially reported it as a bug as I thought it wasn't an important issue.

At this stage I have found the most comfortable version for me. Perhaps in the future I will find an updated version comfortable too.

Thank you for keeping me updated on your findings and sorry to be such a pain about nearly nothing.

Please don't spend too much time on such a small issue.

Have a good day.

@ronso0
Copy link
Member

ronso0 commented Jul 2, 2024

So if I read the message correctly, you have found a very minute discrepancy between the versions?

Yes. The detected duration of that Abba song is 232.698.. seconds in 2.3.x, versus 232.672.. in 2.4.x
So it's shorter in 2.3.x, but from looking the database I can't say if it's the start or end that is shifted.
@daschuer may share some insights wrt what has changed decoder wise between 2.3 and 2.4

Please don't spend too much time on such a small issue.

I could wery well have been that there is a regression/bug and no one noticed except you.

@ronso0
Copy link
Member

ronso0 commented Jul 2, 2024

To be honest, I concentrated more on the "Silence detector" or "Auto transition" problem

As I said, after analysis, the automatically set intro start is identical with the first detected sound (level raises above -60 dB), outro end is the last sound (level falls below -60 dB), so intro_S and outro_E are the cues that are used for the "Skip Silence" mode. See https://manual.mixxx.org/2.4/en/chapters/djing_with_mixxx#full-track-and-skip-silence

The Skip Silence mode [works the same way but] automatically cuts out silence at the beginning and ends of tracks (defined as when the signal first goes above or below -60 dBFS).

If you find that "Skip Silence" + fixed transition time doesn't work for all tracks for you, then you simply need to set intro END and outro START for all tracks that you plan to use with AutoDJ. You can even shift the intro start and outro end in case you want to play less/more of the tracks.

@tlibra10
Copy link
Author

tlibra10 commented Jul 2, 2024

Yeah. I do actually understand what you are saying. I have set the transitions that works quite well now, with the odd one here and there that crash a little. I will have to check all my settings to see if I can replicate it in following versions.
Like I said, I won't be updating now until the new upcoming one that you said may be having the "Crossfader auto return" added.

I'm happy with the sound levels right now with 2.3.0 although I still don't understand though why I can't get 2.3.1 to have similar sound levels to 2.3.0 . Having said that, both 2.3.0 and 2.3.1 are virtually identical anyway.
Maybe it's me, if so, I apologize for the fuss.

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

github-actions bot commented Sep 1, 2024

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 Sep 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug incomplete stale Stale issues that haven't been updated for a long time.
Projects
None yet
Development

No branches or pull requests

2 participants