Ok, so: both LB302 and SF2 work in a way where they use NotePlayHandles directly for handing the note data, but are still single-streamed, and thus also use a InstrumentPlayHandle to do the actual rendering.
The problem with this is that both NPH's and IPH's are, as far as I can tell, treated equally by the mixer. So let's say there's 3 notes played during the same period, let's say they're C, E and G. Ok, fine, InstrumentTrack::play() creates NPH's for each note, then the Mixer goes to the next stage where it loops through all PlayHandles and processes them... Here's the catch: since this next step is threaded, we have no guarantee that the NPH's will be processed before the IPH's. So, for each period where there are multiple NPH's during the same buffer, it may be that C, E are processed, then the IPH gets processed, then G is processed - but since the rendering is done in the IPH, G only gets "really" processed when the next IPH is processed next period, so it gets bumped back to next period. And this can happen in any order - may be that some periods, C is played, then IPH, then E, G... sometimes even the IPH may be played first, then all the notes gets pushed to the next period. With SF2 player, this may cause some jitter and unreliability in the timing... with usual period sizes, it's usually around +/-5 milliseconds. Not very nice... With LB302, since it's a monosynth, I have a hunch that this is closely related to the bugs occuring on it - notes being dropped, playing the wrong pitch etc. I'd have to do some tests to be sure though. I wonder if this could be fixed by modifying the code in Mixer in such a way that NPH's are always processed before IPH's... ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech _______________________________________________ LMMS-devel mailing list LMMS-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lmms-devel