From: Andreas P. <and...@lk...> - 2004-12-04 14:55:33
|
Hello, If a key is pressed, released and then pressed again before the release of the first note has finished, the release of the first note is canceled - the first note continues to play until the second note is released. Why is that? Is it intentional? It doesn't seem like GS behaves like that. As the fix for this is to simply remove some code, I have a feeling I'm missing something. These lines from Engine::ProcessNoteOn are the ones I would like to remove: // cancel release process of voices on this key if needed if (pKey->Active && !SustainPedal) { RTList<Event>::Iterator itCancelReleaseEvent = pKey->pEvents->allocAppend(); if (itCancelReleaseEvent) { *itCancelReleaseEvent = *itNoteOnEvent; // copy event itCancelReleaseEvent->Type = Event::type_cancel_release; // transform event type } else dmsg(1,("Event pool emtpy!\n")); } /Andreas |