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

Reply via email to