mnet





Multicast

mnet's Multicast implementation is designed to be compatible with ipMIDI from nerds.de, its Linux equivalents qmidinet and multimidicast and the multicast implementation in nmj and TouchDAW.

The ipMIDI way of multicasting MIDI has no concept of service discovery. Instead it uses a clearly defined multicast address and a handful of subsequent port numbers to create multiple connections. Everything sent to one of those virtual endpoints will be received by all ipMIDI clients listening on that address. A port that's set to receive will receive MIDI from everybody sending to the address it's listening on (It will not be able to separate between sources). In practice this makes the system relatively easy to use. It can however also easily make data flow in unintended ways.

In the absense of a service announcement and discovery mechanism, multicast devices will not automatically appear in mnet's control panel. Instead there are preconfigured pseudo devices, that can be patched to MIDI ports like "real" remote devices and when opened will send MIDI to the known addresses and receive from there.

By default there are two such pseudo devices. These will initially be hidden. Click the grayed out multicast icon in the top left corner and they will be shown.



ipMIDI ports conceptually are either in- or output. All ports and connections in mnet are meant to be bi-directional, though. The pseudo devices therefore (virtually) combine two ipMIDI ports into one in / out pair. By default the even port number is an input to mnet, the following odd number is the output.
You can change this ordering and make the odd number the input by double-clicking into the channel's name field, which will open the channel's properties as shown below:



If you increase the given port number by 1 (and click OK), the driver will - when it next opens the multicast connections - assign the odd number to the input and the even one (port-1) to the output.

In case your system has multiple (eventually virtual) network interfaces Multicast channels may require that you explicitely select the interface to use. This can be done with the "Interface" dropdown. Again changes need to be confirmed and the channel will need to be reopened.

The default configuration will give you two multicast IO pairs (ie: 4 ipMIDI ports). You can change that on the preferences page.

General notes: A lot of mobile devices are severly crippled by their manufacturers and will not allow you to receive multicast data at all (some HTC devices) or will just perform poorly on the reciving side (lots of framedrops etc.). This is an artificial limitation put in place because listening to multicast addresses consumes more energy than what is needed for normal unicast WIFI traffic. It therefore drains a device's battery a bit faster. If your device is affected, multicast will probably not be an option for situations where you primarily need to receive. Sending data out over multicast is not normally restricted, so it should be fine to use with keyboard or pad style controllers. Note that this is not related to a device's price or overall quality. In fact it's usually higher end devices with shiny power hungry full-HD screens that look for other ways to save on battery use.




humatic - htools