David Garcia Garzon wrote:
> - Which is the use that can have rawmidi that sequencer don't?
> It is only a backward compatibility interface?

In most cases, yes.

It comes in handy if you have a bunch of MIDI bytes and don't want to
manage the complexity of parsing them and/or creating sequencer
events; in this case, it's much easier to do "cat my_settings.syx >
/dev/midi42".

> - What is 'virmidi' for?

ALSA automatically creates a virtual sequencer port for each hardware
rawmidi port implemented by a driver (using the same code as used by
the virmidi driver), but not the other way round. So it's useful if
you want a rawmidi port to access a sequencer port (like OPLX/Emu10k1
synthesizers, or all userspace sequencer programs like Timidity).

The OSS midi devices for card X are /dev/midiX and /dev/amidiX, so, if
a card has more than two ports, you have to route the other ports
through a virmidi driver to be able to access them with an OSS midi
device file.

> - Is there some scheme in the sequencer client numbering?

Yes.

> Is written anywhere?

It isn't really documented, because it might change in future
releases.

0..63: for internal use (0 = system, 63 = OSS sequencer emulation)
64..127: device drivers (8 for each card)
128..?: applications

> - As i undestood there is always an event queue for each writing client, am I
> wrong?

Clients use a queue if they want to deliver events at some specific
time in the future. A queue isn't needed if a client doesn't need
timing.

> - Are MIDI transport actions implemented?

What's this?

> - Is the proposal (on Iwai web) about syncronization implemented?

The only implemented timer source is ALSA timers; MIDI clock or MTC
aren't.

> - How queues are numbered (to locate them in the 0:16+n port)?

Whoever allocates a queue gets the next free number.

> How can i know which queue that is related to some normal port in
> order to arrange syncs?

Have a look at the files in /proc/asound/seq/.
A queue is usually used by the program that created it.

> - May I use the sequencer to sequence non MIDI events?

There are sequencer events not corresponding to MIDI commands (used
for controlling the sequencer or drivers), but these aren't seen by
MIDI devices.

> (ie. NonMIDI custom ligthing controls events to schedule them to
> an external usb device)

If those events use the MIDI syntax (e.g. "key on" for "light on", or
sysex events), then they _are_ MIDI events.

The sequencer doesn't care for the actual semantics of MIDI commands
(i.e., it doesn't care if a "note on" command actually produces
sound, or if a corresponding "note off" command follows).

> - What is the sense of assigning groups to client ports?

None, unless you are using some prehistoric version of ALSA (0.5.x)
and want to manage connection permissions.
Groups don't exist in ALSA 0.9.x.


HTH
Clemens




-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to