mixxxdj / mixxx

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

Sound Levels and Silence detector #13412

Open tlibra10 opened 4 days ago

tlibra10 commented 4 days ago

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

ronso0 commented 4 days ago

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 commented 4 days ago

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 commented 4 days ago

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 commented 4 days ago

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 commented 4 days ago

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 commented 4 days ago

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 commented 3 days ago

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/_mixxxdb2.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 commented 3 days ago

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 commented 3 days ago

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

Thank you.

tlibra10 commented 3 days ago

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 commented 3 days ago

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 commented 3 days ago

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 commented 3 days ago

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 commented 3 days ago

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. https://github.com/mixxxdj/mixxx/issues/13412#issuecomment-2195709608

Thanks for your time.

tlibra10 commented 3 days ago

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 commented 3 days ago

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 commented 3 days ago

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 commented 3 days ago

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

tlibra10 commented 3 days ago

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

tlibra10 commented 3 days ago

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.