Hi,
> add_note_playing(playing_notes_t *playing, int note)
> /* Returns 0 or a note to suspend */
> {
[...]
> BTW - I haven't been able to look over all of the midi code, but that
> function looks kinda intense. Do you have to do the memcpy stuff in there?
> Again I am not sure exactly what is going on or is required to play the
> midi...but aren't you manually shifting almost each and every note around in
> memory throughout the song?
This is the ugly part that tracks each note that is being played (and yes,
keeping it in a ring buffer would remove the need for the memcpys). The
idea was to send note-offs implicitly if we're running out of
channels/voices/timbres/whatever they're called. It doesn't help at all,
so it'd make sense to remove this stuff for the time being until someone
comes up with something more clever.
llap,
Christoph