Hi Tim, I tested midiengine_fixes - it solves stuck notes problem for my case!
Just to be sure, that everything is clear about my problem: It only occurs when transport 'stop' button is pressed - some notes continue to play (without my patch). I'll try to investigate what is happening again - may be my lv2 fixes caused the problem. Will start at the beginning. Thanks. 22.12.2015 05:48, Tim E. Real пишет: > On December 21, 2015 08:25:18 PM Tim E. Real wrote: >> On December 21, 2015 12:23:51 PM Andrew Deryabin wrote: >>> Hi guys, >>> >>> While rewriting midi support code for lv2 I found some interesting moment: >>> >>> There is a message ME_NOTEOFF which is a standard midi note off message >>> width code 0x80. It's sent only when playing with midi keyboard as part >>> of jack/alsa midi events. >>> But when playing midi parts this message is not sent at all, even when >>> transport is stopped. >>> While digging I found _stuckNotes array which is used for sending note >>> offs automatically (fix me). But due to small bug in code for adding >>> stuck events to this array, instead of adding ME_NOTEOFF, ME_NOTEON was >>> added. Some instruments handled this without any problem, but others >>> (like Calf monosynth) continued to play last note after transport was >>> stopped. >>> >>> Hope the fix ( bd84479) will work (like in my case). >>> Please check - if it works for you too? >> Hm, this patch does not look correct. >> It casts as boolean but the variable is an integer. >> >> Are you sure something is wrong? Can you post a file? >> I tested here with Calf Monosynth and all seemed OK. >> I programmed several sequential and parallel notes, >> at first leaving each note off velocity = 0, then I set >> each off velocity to 35. Playing each note turned off OK. >> >> Also I used -M and -m flags and watched the output with >> regular midi port output. Looked OK. >> >> (Note: I have /not/ pulled your LV2 crash fix or this fix yet. >> Could this problem be related to those fixes?) >> >> Usually this problem concerns percussion and synths >> like say, SimpleSynth, where there are specific buttons >> to ignore the note-offs or not, depending on whether >> your samples are percussive or not. >> >> AFAIK everything's (mostly) cool so far with the midi engine. >> I know there are some issues, some obscure, for example >> with muting notes on stop. >> >> My branch midi_fixes rewrites some note processing. >> Specifically, for the 'stuck notes' I moved the lists into >> class Track, moved some stuff around and fixed muting >> notes when stopped etc. All for the better. >> >> It's fairly extensive but, as usual it is sandwiched in with >> some other fixes that are in progress but need more thought. >> Hard to avoid sometimes. (Full 14-bit controller support including >> /input/ events, using a custom hardware midi event codec that >> bypasses ALSA codec due to incomplete (N)RPN 14-bit support.) >> >> The branch /is/ up to date, as of last week. >> Hope to merge near future. > Should have mentioned the branch actually works. > The fixes I mentioned are working :-) > The experimental stuff is not 'activated' yet. > > Try it if you still have no luck, especially with stuck notes. > Maybe it will solve it. > > T. > >> I know the current midi engine seems a bit of a dog's breakfast, >> mostly because of simultaneous ALSA and Jack midi support. >> I was reviewing last week and I'm itching to rewrite again. >> With configurable ALSA and so on. >> >> Tim. > > ------------------------------------------------------------------------------ > _______________________________________________ > Lmuse-developer mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/lmuse-developer -- Regards, Andrew ------------------------------------------------------------------------------ _______________________________________________ Lmuse-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lmuse-developer
