On Sun, 26 Nov 2000, Paul Barton-Davis wrote:
> >I'm not sure, if you know about the virtual midi devices which can be used
> >like the ordinary rawmidi devices, but the midi stream is parsed to the
> >sequencer events and versa vice. The virtual midi device behaves like a
> >sequencer port, so you may connect it to other ports (like the wavetable
> >sythesizers or midi uart drivers). So far, no changes are needed on your
> >side. You must only use the ALSA rawmidi devices instead of OSS ones.
>
> Ah, I had a feeling that something like this existed. Very nice. Josh,
> this is what you should use to use ALSA with your AWE. Set up a
> virmidi device (ask on alsa-devel how to do this if you don't know),
> then use aconnect to connect it to the AWE input sequencer port. then
> use the relevant /dev/snd/midi... specification in the SoftWerk rc file.
The EMU8000 and EMU10K1 synth devices creates virtual rawmidi devices
(second and third rawmidi device) by default.
> >Anyway, we can copy our MIDI parser code from the kernel to the user space
> >and create nice MIDI stream <-> ALSA sequencer converter. It's nothing
> >complicated for us and it seems that it helps a lot to you. It'll allow
> >use more features of the ALSA sequencer.
>
> I started out writing an explanation of why this wouldn't help
> libmidi++, but as I did so, I realized that it definitely would.
> I could derive MIDI::AlsaSequencerPort from MIDI::Port that used the
> MIDI<->Sequencer code. Can somebody plan to do this ?
Done. Please, look to 'Sequencer event <-> MIDI byte stream coder' section
in asoundlib.h. These routines are same as in the kernel code, so you may
look for examples there.
> libmidi++ already has complete MIDI parsers for both directions on a
> MIDI::Port, and its a little silly to be parsing the data multiple
> times. But this still happens with the virmidi method, just in the
> kernel.
In this case, it would be the best to create an application event <->
ALSA sequencer event conversion code, but I know, it requires much more
time.
Jaroslav
-----
Jaroslav Kysela <pe...@su...>
SuSE Linux http://www.suse.com
ALSA project http://www.alsa-project.org
|