The MidiShare Internet Drivers for GNU-Linux is an application named msInetDriver. Depending on its command line arguments this application can operate in LAN mode (default mode) or in WAN mode.
Real-time transmission of the MidiShare events stream relies on 2 mechanisms :
- a grouping period : the period during which events are accumulated before being transmitted on the network. It is intended to optimize network transmissions.This parameter controls the transmission behavior.
- a maximum latency : represents the maximum transmission time (from sender to receiver) allowed to ensure a correct time rendering of the transmitted events. It is intended to compensate for the network latency and the transmission time variations. This parameter controls the receiver behavior.
The total delay introduced by the network transmission is equal to the grouping period + the maximum transmission delay.
argument description default value -p <port number>set the UDP port number to <port number>
in WAN mode, TCP and UDP ports numbers are equal4950 in LAN mode
4951 in WAN mode -lat <latency>set the maximum latency allowed to <latency> 10 mls in LAN mode
1500 mls in WAN mode -g <group time>set the grouping period to <group time> 10 mls in LAN mode
200 mls in WAN mode -drun as a daemon -log <log file>in daemon mode, log the driver messages to <log file> /var/log/msInetDriver.log
argument description default value -s [remote list]launch the driver in WAN mode and open a connection for every host in [remote list] which may be empty. -m <max clients>restrict the server clients count to <max clients> 32
Connected remote hosts appears as MidiShare client applications. To send or to receive data from a remote, an application needs to be connected to this remote MidiShare client.
In WAN mode, this remote client supports TCP transmission on the MidiShare port number 255.
In LAN mode, the driver is sleeping as long as no other MidiShare client application is running. While in sleeping state, the station won't be visible by other stations on the network. The driver wakes up when the first MidiShare client application starts.
The MidiShare port number 255 is reserved for secure transmission: every event received by a network client on the port 255 will be transmitted using the TCP socket instead of the UDP socket. The mechanisms for the TCP transmission are the same than for UDP transmission. However, the TCP and UDP streams are not synchronized, therefore the TCP events time rendering may be incorrect relatively to the corresponding UDP events.
Secure transmission may be used to send important system exclusives at initialization time for example. Its drawback is that there is no guarantee on the transmission time.
The MidiShare Internet Drivers are part of the MidiShare project. They have been developped by the Grame's Computer Music Research Laboratory, in collaboration with the company Mil-Productions.