Just two more remarks.

1. Note that I think there is a wrong understanding what happens in the way you 
describe the bug:

> E.g. for a polyphonic track, thread 1 might be processing a fluid voice, 
> while threads 2,3,4 try to process polyphonic voices of the same track which 
> leads to blocking on the mutex held by thread 1 instead of picking up other 
> modules that need processing.

For a polyphonic track there will only be *one* single sound font osc 
instantiated. This one sound font osc handles all voices for this track, no 
matter how many voices are active. So to stall the engine in the way you 
describe, you need many tracks with sound font oscs (which is however a valid 
use case, I won't deny this).

2. "full multi-threaded processing of the sound engine" may not actually be 
faster than single threaded processing.

I've tried to measure how much faster party monster renders when given multiple 
cpus here:

https://mail.gnome.org/archives/beast/2018-July/msg00009.html

The result: not at all, the engine is slower if more cpus are used. But this 
again may not always be the case (if something else than party monster were 
used to measure performance), and even if it were, I'd agree that we're looking 
at two issues here, one in the soundfont code and one in the engine, and the 
engine inefficiency should be fixed in the engine.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/tim-janik/beast/issues/84#issuecomment-430750475
_______________________________________________
beast mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/beast

Reply via email to