Re: [alsa-devel] Re: [softwerk-dev] Troubles with Softwerk
Status: Beta
Brought to you by:
pbd
|
From: Jaroslav K. <pe...@su...> - 2000-11-26 22:31:18
|
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 |