Re: [linux-audio-dev] Timestamped MIDI interfaces ....

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

Subject: Re: [linux-audio-dev] Timestamped MIDI interfaces ....
From: David Olofson (audiality_AT_swipnet.se)
Date: pe loka   29 1999 - 19:52:58 EDT


On Fri, 29 Oct 1999, Benno Senoner wrote:
> Hi folks,
> what do you think about this timestamping MIDI interface ?
>
> http://www.harmony-central.com/Newp/107AES/MOTU/MTS.html
>
> seems that our upcoming timestamped event system could easily drive this
> beast. :-)

Well... They're still dealing with MIDI. It's basically just a
performance hack to solve one of the most serious problems with MIDI,
at least in systems with many MIDI devices. (It won't help much for a
single synth, unless it's very accurate and has at least two MIDI
inputs.)

Our system OTOH, is operating in a slightly different area; it's not
really a dedicated MIDI style communication protocol, but rather an
advanced IPC API. However, such an API can be made network
transparent and other coll things...

And what about a simple streaming interface for those who don't even
want to link in the API lib? My event header currently looks like
this:

-----8<------------------------------------------------------------
typedef unsigned long long mcs_event_time_t;
typedef unsigned int mcs_event_code_t;
struct mcs_event_t {
        struct mcs_event_t *next; /* for the oport list */
        mcs_event_time_t time;
        mcs_event_code_t code;
        int size; /* Number of data bytes */
};
------------------------------------------------------------>8-----

Version for read()/write()/ioctl() API:

-----8<------------------------------------------------------------
typedef unsigned long long mcs_event_time_t;
typedef unsigned int mcs_event_code_t;
typedef unsigned int mcs_port_id_t;
struct mcs_event_t {
        mcs_port_id_t port; /* where to send */
        mcs_event_time_t time;
        mcs_event_code_t code;
        int size; /* Number of data bytes */
};
------------------------------------------------------------>8-----

Send across suitable interface (serial, parallel, USB, dedicated or
RT ethernet, ...), and have a MuCoS client turn it into real events
on the other side. That client may of course be an RTLinux engine,
running on an embeded PC-104 system, driving a bunch of MIDI UARTs.

//David

 ·A·U·D·I·A·L·I·T·Y· P r o f e s s i o n a l L i n u x A u d i o
- - ------------------------------------------------------------- - -
    ·Rock Solid David Olofson:
    ·Low Latency www.angelfire.com/or/audiality ·Audio Hacker
    ·Plug-Ins audiality_AT_swipnet.se ·Linux Advocate
    ·Open Source ·Singer/Composer


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

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:28:00 EST