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(a)gmail.com>
Reply-To: nescivi(a)gmail.com,A list for linux audio users
<linux-audio-user(a)lists.linuxaudio.org>
To: A list for linux audio users <linux-audio-user(a)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(a)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/