Analyse tracks in a pool of worker processes
A first pass over an unanalysed library is hours of librosa, and there was no reason for a desktop to spend them one core at a time. Analysis now runs in a process pool sized by `general.library.analysis_workers`, defaulting to one per core bar one (capped at 8) when the key is absent. Two consequences worth knowing before touching this: whatever an `Analyzer` returns has to be picklable, and an analyzer that keeps state on its own instance - a test double counting calls - only behaves as written with `analysis_workers=1`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,12 @@ general:
|
||||
# is rebuilt on the next start. Deleting it does throw away track analysis, which
|
||||
# is expensive to recompute.
|
||||
cache: .musicmouse-cache
|
||||
# How many tracks the background analyzer may work on at once, each in its own
|
||||
# worker process. Omitted means one per core bar one (capped at 8), which is what
|
||||
# turns a first-time pass over a whole library from an overnight job into a coffee
|
||||
# break on a desktop. Set it to 1 on a machine that has better things to do, or to
|
||||
# a specific number to cap how much of it analysis may take.
|
||||
# analysis_workers: 4
|
||||
|
||||
# Serial port the ESP32 firmware is on. A dropped link is retried, not fatal.
|
||||
# Required - use "simulate" to run without the mouse attached, which is a complete
|
||||
|
||||
Reference in New Issue
Block a user