Re: [LAU] pipes, network, and MIDI ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
Reply-To: nescivi@xxxxxxxxx,A list for linux audio users <linux-audio-user@xxxxxxxxxxxxxxxxxxxx>
To: A list for linux audio users <linux-audio-user@xxxxxxxxxxxxxxxxxxxx>
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@xxxxxxxxxxxxxxxxxxxx
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/

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user

[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux