I believe there are two misuderstandings in the original code.

The argument 'sequencer_stream' has no effect because the underlying
code looks for 'alsa_sequencer_stream'

The value of 'alsa_sequencer_stream' should be one of DUPLEX, OUTPUT
or INPUT.  As it was, the value was 'not NONBLOCK'.  I think
that BLOCK/NONBLOCK should be the values of a argument named
'alsa_sequencer_mode'