Increase speed of track analysis.

Bug #1101281 reported by DGMurdockIII
26
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
Unassigned

Bug Description

it would be nice if analyzing of BPM did not take so long if you have a lot of files when doing it the first time or even just doing one song

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Once beats are analyzed for a song then they are stored in the DB so we don't repeat the work.

I'll just leave this open as a long-term "increase the speed of the analyzer". We could do this via a couple of different strategies:

1) Reduce repeated work across our analyzers (e.g. if both QM and keyfinder do an FFT, maybe we can hack them up so that we compute the FFT in Mixxx and pass it to them so only one FFT is done).

2) Contribute to the analysis libraries to speed them up.

summary: - Speed of analyzing of BPM
+ Speed up analyzing of BPM
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

3) Allow the option of only analyzing a particular sub-chunk of the track and generalizing that to the rest of the track (for example for beats or key we could do this.. but not for waveform).

summary: - Speed up analyzing of BPM
+ Increase speed of track analysis.
Revision history for this message
rob (another-rob) wrote :

How about adding an option to just analyze for BPM, and then only create the waveform summaries when the user loads the song for the first time (or an option to do waveform analysis at a later time.) Personally, when I'm scanning in a collection, the most important thing is the BPM - I can wait a second or three for a waveform summary when I load the track the first time.

(I'm assuming doing just BPM would speed up analysis, but I'm not familiar with the code so it's possible it wouldn't...)

This would also save disk space, since a lot of users probably have huge collections and don't ever play many of the songs, so they don't really need pre-saved waveform summaries for a boatload of songs they'll never play...)

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 1101281] Re: Increase speed of track analysis.

The vast majority of analysis time is spent in audio decoding and BPM
detection. The waveform calculation is pretty lightweight because it uses
the same decoded audio that goes into BPM detection. It would make the
analysis run faster though, it's just not going to be a massive speed
improvement.

On Mon, Mar 18, 2013 at 5:22 PM, rob <email address hidden> wrote:

> How about adding an option to just analyze for BPM, and then only create
> the waveform summaries when the user loads the song for the first time
> (or an option to do waveform analysis at a later time.) Personally,
> when I'm scanning in a collection, the most important thing is the BPM -
> I can wait a second or three for a waveform summary when I load the
> track the first time.
>
> (I'm assuming doing just BPM would speed up analysis, but I'm not
> familiar with the code so it's possible it wouldn't...)
>
> This would also save disk space, since a lot of users probably have huge
> collections and don't ever play many of the songs, so they don't really
> need pre-saved waveform summaries for a boatload of songs they'll never
> play...)
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/1101281
>
> Title:
> Increase speed of track analysis.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1101281/+subscriptions
>

RJ Skerry-Ryan (rryan)
Changed in mixxx:
importance: Undecided → Medium
Revision history for this message
shalty (neogeo-dc) wrote :

Some time ago, tinkering with the 1.11 code, i made a pool of analyzer threads, so that you could analyze more tracks in parallel.

This worked (and without much code), but it was a very ugly hack and it was interfering with the analyzer UI part (songs analyzed/total), and, most importantly, would take a hit on the performance if done while ... well... performing ;), easly eating the available cpus (yes, you can control the number of threads to leave-a-space, but...)

But for fast offline analyze of a bunch of songs before "performing", was great ;)

Just an idea.

Changed in mixxx:
milestone: none → 2.3.0
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

The issue should be fixed with the introduction of multi-threaded analysis in 2.3.

Please file a bug for tuning individual analyzers, if this is possible. We already have options that enable a faster but less accurate analysis, e.g. for BPM.

Changed in mixxx:
status: New → Fix Committed
assignee: nobody → Uwe Klotz (uklotzde)
Changed in mixxx:
status: Fix Committed → Fix Released
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/6856

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.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.