On Fri, May 22, 2009 at 11:11:05AM +0200, Nick Copeland wrote:
The
bristol B3 is perhaps not the most popular example of hammond emulators
but has anybody seen this?
i have some extremely limited and utterly circumstantial evidence that
the ALSA sequencer can cause this. Check the comparative versions of
his and yours. I stress: I can't prove this either, I've just seen
vaguely similar behaviour that given a brief debugging seems to be
caused by the sequencer at some level. Relevant?
I would be more than happy to finger ALSA here but from the debugging done so far the
problem happens with no evident lost note_off events, just one spurious duplicated
note_off debug message from bristol that definitely did not result from an event delivered
by the Seq interface. Debuging is an awkward operation since each time I want to
concentrate on selected code sections I have to provide updates and wait for the output -
its a bit like programming with punchcards.
The difference in ALSA versions could naturally be relevant and will review it.
I had this problem using AZR3 and the little alsaseq2jackmidi.c daemon on old jackd
(0.103). There were two causes:
1) My Novation firmware has an utterly crap MIDI implementation, and when using the analog
A/D in the expression pedal, the whole controller would lock up waiting for the A/D (were
they polling it?) and if I played a whole flurry of notes at once, they'd all blitz
out of the MIDI port simultaneously, with the same timestamp. Note On + Note Off at same
time = stuck notes. Firmware "updates" fixed this problem but created others. I
solved the problem by going back to the old firmware and not using the pedal anymore :-(.
2) The little alsaseq2jackmidi daemon just waits for ALSA sequencer events, converts them
to JACK MIDI, and dumps them in JACK's ring buffer. But it's a single-threaded app
and it would get stuck if I played too many notes too fast, and end up reading the ALSA
MIDI note on's and note off's at the same time, hence putting them in JACK MIDI at
the same time, hence the sequencer getting note on's and note off's at the same
time, and hence, stuck notes. I solved the problem by increasing the size of the ALSA
sequencer input buffer.
I've moved to JACK 0.116 on all my machines now, so when I fire up JACK MIDI synths
again, I hope to be able to use its reported native ability to translate between JACK MIDI
and ALSA MIDI.
-ken