Re: [linux-audio-dev] high level midi api

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] high level midi api
From: martijn sipkema (msipkema_AT_sipkema-digital.com)
Date: Tue Oct 30 2001 - 13:40:16 EET


> >doesn't anyone agree that a better and simpler api might make a
> >/dev/sequencer unneeded and would possible provide better timing?
>
> everybody does. its why the ALSA sequencer API was written.

but this still is quite a complicated thing, and supports much more than
just sending/receiving midi data at the correct time.

> >not as flexible as having the sequencing done in the
> >application. it's nice for a midi player, but is it fexible enough
> >for a complicated midi multi track sequencer?
>
> it works for MusE which is the most impressive multitrack MIDI
> sequencer we have for Linux.

that is with the new sequencer or the old? i read about the new
sequencer, but it isn't finished yet, or is it?

> >i just think that the alsa rawmidi driver api is a little too low
> >level and the sequencer too high level. i think it could be replaced
> >by a single api that is slightly higher level than rawmidi.
>
> i think you need to get to know the sequencer API better. it looks
> very complex but it can be used to provide pretty much whatever level
> of sophistication you want.

i still think that these complex applications like the alsa sequencer don't
belong in the kernel. it would be much better to have a simple but capable
midi driver that also does simple ordered sequencing and to have more
complicated things like synchronisation in the application.

> >> >- a function to send midi events with a timestamp, the driver
transmits
> >> >the event at the specified time. events have to be sent in the correct
> >> >order.
> >>
> >> check. ALSA does this, and doesn't require that events are sent in the
> >> correct order.
> >
> >that's what makes it too complicated. ordering the events can be better
done
> >in the application.
>
> i said it didn't *require* it. you can happily order them all
> yourself, and deliver them en-masse. why choose one over the other?
> the sequencer *has* to do ordering, because it may have events coming
> from different sources but with the same destination. perhaps you
> didn't understand that point.

it is possible to schedule events totally out of order and a long time ahead
possibly making writing a good sequencer application much easier but
forcing the alsa sequencer to sort it's queue over and over again. this
is harder (also with memory management) to get predictable performance
from than a simpler system with a fixed size event fifo.

> >ok, where can i find the latest documentation for the alsa sequencer and
> >midi api?
>
> hah. therein lies a problem. there isn't much other than the comments
> from the source code ripped out by doxygen. however, do check them
> out. http://www.alsa-project.com/, and you should join alsa-devel and
> talk to takashi to make sure you fully understand the ALSA sequencer
> before commenting too much on what you think it does and does not do well.

ok, i will do that.

--martijn


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Oct 30 2001 - 12:36:56 EET