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: Tim Goetze (tim_AT_quitte.de)
Date: Mon Oct 29 2001 - 17:02:32 EET


>>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


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

This archive was generated by hypermail 2b28 : Mon Oct 29 2001 - 16:58:35 EET