>>i know. i would like to have a high level midi api that uses events and >>a timestamp. but no support for tempo, mtc, midiclock, etc. only one >>time (like openml's ust). and that the scheduling of the events can be >>done in the driver. and some way to deal with streams of midi data >>(sysex) should be provided. > >the ALSA sequencer does all this.
read: is planned to do all this. sysex cannot be received with current ALSA-cvs. ALSA can send it now but i tried only sending small chunks. i think it's just a matter of time (though for receiving/sending a 1MB sysex dump takashi faces a literally big problem). i grasp the opportunity to shamelessly advertise my MIDI module for python and c++ (http://www.quitte.de/midithing.html). it contains a scheduler operating on /dev/rtc and can drive raw MIDI as well as ALSA sequencer ports. the core objects, and all their interaction, is completely c++. python steps in for plugging these objects together, providing what i would call a 'highest level midi api'. <OT> i can only recommend this design to anyone building sophisticated applications nowadays. you do not compromise your application's speed of execution by much, since the things that need the cpu cycles badly are coded in c/++, and you get all the benefits of using a higher-level language: dropping the compile step from many of the code & debug cycles, ease of use of the higher-level language, benign handling of most programmer errors, being forced to make clear, stable definitions of the objects' public interfaces and interactions, etc etc. </OT> while platform-independency is not a primary goal, contributions that achieve this are welcome. when i started the project, i planned to use the ALSA sequencer and not write my own scheduler. however for more ambitious projects (eg your own sequencer application) there are many inconveniences inheritant to this model (sysex was among them at the time), so i resorted to rolling my own. i have not since regretted this decision. if you are already using midithing, please fetch the latest version (0.3.21). if not, please feel encouraged to do. for those that are reluctant to try it, but are interested in the matter, please check the midithing manual, it's online. i'm very interested in your comments. tim