Summary: | Not processed note off events | ||
---|---|---|---|
Product: | LinuxSampler | Reporter: | Grigor Iliev <gr.iliev> |
Component: | gig::Engine | Assignee: | Christian Schoenebeck <cuse> |
Status: | CLOSED FIXED | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | SVN Trunk | ||
Hardware: | PC | ||
OS: | Linux |
Description
Grigor Iliev
2008-12-14 23:50:32 CET
Release critical? :-) Not too critical, but it's very annoying when you play on the keyboard by dragging the mouse :) I currently can't spot the problem. The events are handled in the sequence they arrive from the input queue. So even if a note-on / note-off event pair arrives with the same time stamp, the note-off event should be sent by the MIDI source after the note-on event, so everything should be right. I don't have a recent Java version installed on this Linux box right now, so I couldn't test it with JSampler yet. Any hints? (In reply to comment #3) > I don't have a recent Java version installed on this Linux box right now, so I > couldn't test it with JSampler yet. > > Any hints? You can try with a lscp script like: SEND CHANNEL MIDI_DATA NOTE_ON 0 60 100 SEND CHANNEL MIDI_DATA NOTE_OFF 0 60 100 SEND CHANNEL MIDI_DATA NOTE_ON 0 61 100 SEND CHANNEL MIDI_DATA NOTE_OFF 0 61 100 SEND CHANNEL MIDI_DATA NOTE_ON 0 62 100 SEND CHANNEL MIDI_DATA NOTE_OFF 0 62 100 SEND CHANNEL MIDI_DATA NOTE_ON 0 63 100 SEND CHANNEL MIDI_DATA NOTE_OFF 0 63 100 It reproduces the bug well with PMI Bosendorfer 290 instrument I just commited a fix to CVS. Still doesn't work quite right. Dragging the mouse over the keyboard in Fantasia still leaves playing notes. I just tested it with gigedit's virtual keyboard and with the previous LSCP commands and the problem was solved for me. Unfortunately I can't reproduce it right now with JSampler, due to the mentioned old Java version. (In reply to comment #6) > Still doesn't work quite right. Dragging the mouse over the keyboard in Fantasia > still leaves playing notes. Note that the virtual midi device event limit is 12 (MAX_EVENTS 12). So if you drag the mouse very fast (over 6 notes per cycle) LS may ignore some events. But maybe this is not your case. For me this fix is working fairly well. (In reply to comment #8) > Note that the virtual midi device event limit is 12 (MAX_EVENTS 12). So if you drag the mouse very fast > (over 6 notes per cycle) LS may ignore some events. Yes, that was indeed my problem. I changed MAX_EVENTS to 1000 and now the problem is gone. So what would be a reasonable value for MAX_EVENTS in VirtualMidiDevice.cpp? (In reply to comment #10) > So what would be a reasonable value for MAX_EVENTS in VirtualMidiDevice.cpp? I would propose something like 64, but lets see how fast is Andreas :) Sorry, I must have done something stupid, like running an older version of LS than I thought I was. Today it works fine, even with MAX_EVENTS 12. |