LMMS/lmms — pull request #819 by diizy (2014-06-06 11:32:59+00:00)
Title: Ensure that NotePlayHandles get processed before the InstrumentPlayHandl...

...e on instruments that use both NotePlayHandles and InstrumentPlayHandle, such as LB302 and SF2-Player

Issue: Currently, we use threads to process all PlayHandles, so there's no guarantee of the order they are processed in. This causes timing inaccuracy and jitter: notes of instruments that use both NPH's and IPH's can get randomly delayed by one entire period.
The issue is solved thusly:
- When processing an IPH, we check if the instrument is midi-based. If yes, we just process it normally (no NPH's to worry about).
- If it's not, then it also uses NPH's, so we'll have the IPH wait until all NPH's belonging to same instrument have been processed. There's some similar code in the new FX mixer, I pretty much just copied how we do it there.

(Also: sf2 was incorrectly announcing itself as midi-based, fixed that)