Some more technical stuff that I have to write down for future reference...

Again about NotePlayHandles -> NoteHandles: we should probably change
the way we deal with note length. We currently measure note length in
frames, and this is a bit clunky because all notes are treated the same
- even notes whose length is not known in advance, which constantly need
to have their length increased on the fly to keep them playing
indefinitely. This also requires the lengths to be adjusted every time
the tempo changes.

Instead I think we should represent note length in ticks, decrement the
counter every tick and trigger note release when it hits zero. Notes
that are not pre-determined length can ignore this completely and have
the release triggered by the midi input.

Speaking of midi input, that's another thing to be revised. I'm thinking
of some kind of swapbuffer/queue system for incoming note events, so
that we can do it locklessly...

Also, instrument functions (note stacking, arpeggio) can be done much
easier when we get rid of the NPH-rendering, as we can just take the
array/list of notes and run instrument functions on it, this will
probably help solve those long standing bugs with the sort mode
arpeggio, among other things...



------------------------------------------------------------------------------
_______________________________________________
LMMS-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to