[LAU] pipes, network, and MIDI ?

Nick Copeland nickycopeland at hotmail.com
Mon Jun 4 11:22:18 EDT 2007


If you are going to connect applications then typically the small additional 
overhead of socket programming as opposed to pipes has some potential 
benefits that probably outweight the cost, distribution for one, pipes are 
only addressed on the station you are working on, sockets are any host that 
you can reach over a network which may give some benefits for data storage 
applications for example. Either way, whatever you can do with pipes you can 
do with sockets in this case as both are probably going to be binary 
interfaces.

I am not certain about the encoding you want to use. MIDI Sysex is not 
necessarily any more complex or intensive than any other transfer protocol 
you may want use since if you are likely to be transferring data or messages 
between different host architectures then you would probably have to specify 
some network data format for interoperability. MIDI already does this for 
its messages. The 7 bit encoding is potentially superfluous over an IP 
network since you do not need the 'stop' bit that was demanded by MIDI 
however you should not be concerned about the data rate - MIDI over USB, 
Firewire and TCP sockets gives you the underlying network data rate and will 
have nothing to do with the MIDI "5 PIN DIN" at 31 odd kHz.

So, assuming you are going to be exchanging musical information then using 
MIDI Sysex encoding is now still almost a requirement since otherwise to 
interoperate with other equipment you would have to define a conversion 
layer of your own. If you are not considering music apps then you can truly 
forget about MIDI and have a look at ASN.1 or XDR (both of which are 
probably more intensive than the MIDI 7 bit transforms).

If you know a priori what applications you are going to be working with then 
you may alternatively want to look at whether you can use a plugin 
architecture - if the host program supports dynamically linked plug in the 
you probably find that is the best way to exchange information with that 
program. The only limitation with such architectures are they tend to be 
bespoke - unique interfaces per application and that can affect portability 
but having said that if you applications is written with a plug-in 
architecture in mind then they are all comparable interfaces afterwards.

Regards,

n.

>From: nescivi <nescivi at gmail.com>
>Reply-To: nescivi at gmail.com,A list for linux audio users 
><linux-audio-user at lists.linuxaudio.org>
>To: A list for linux audio users <linux-audio-user at lists.linuxaudio.org>
>Subject: Re: [LAU] pipes, network, and MIDI ?
>Date: Mon, 4 Jun 2007 16:18:08 +0200
>
>On Monday 04 June 2007 13:58:38 Deffre Fred wrote:
> > Hello,
> >
> > Recently, a question was asked about the best way to connect 
>applications
> > (pipes or network) to exchange simple control datas between them.
> >
> > I wonder if another solution could be to use the MIDI layer, using SYSEX
> > messages ? Is it efficient ?
>
>If you want to encode and decode everything to 7-bit data chunks, and a low
>rate...
>
>No, I don't think it is worth the hassle to encode something into MIDI 
>SysEx,
>just to decode it again on the other side.
>MIDI was invented for hardware machines, where it had to be decoded on some
>microcontroller, or encoded.
>
>sincerely,
>Marije
>_______________________________________________
>Linux-audio-user mailing list
>Linux-audio-user at lists.linuxaudio.org
>http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/




More information about the Linux-audio-user mailing list