[LAU] Bristol B3 and stuck notes

Ken Restivo ken at restivo.org
Fri May 29 22:41:49 EDT 2009


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



More information about the Linux-audio-user mailing list