Hi Vitaliy,

 

Please subscribe to the mailing list if you are planning to send more messages. Thanks.

 

On Monday 24 December 2012 16:07:47 Vitaliy Dmitriev wrote:

> Hi!

>

> I'm studying at iOS development courses now and as a part of all courses we

> have to do a project.

>

> So my idea of a project is a MIDI-controller app for iOS (iPhone, iPad)

> compatible with ipMIDI. Maybe something similar to vmpk.

>

> Could you please tell me where it's possible to obtain technical info

> concerning communication with ipMIDI software over IP network, maybe some

> SDK or so?

 

I don't think that there is any technical document about ipMIDI. It is a bit underground, in a manner of speaking. All I can give you is a few pointers.

 

ipMIDI is based on UDP/IP Multicast. There are several RFCs about IP Multicast

http://tools.ietf.org/html/rfc988

 

The raw MIDI event bytes are sent as the payload of the UDP packets. As simple as that, with no additional baggage.

 

Every packet is sent to the same IP address. ipMIDI uses 225.0.0.37 with ports 21928 and above. Each port defines a single virtual MIDI cable with 16 MIDI channels. You can use as much ports as you wish within the same network segment. The protocol packets will remain in the local network, as routers won't transfer them to other networks or the Internet.

 

Other than that, you only need to understand and follow the source code of other implementations. For instance, this is a very similar protocol:

http://ntrg.cs.tcd.ie/undergrad/4ba2/multicast/antony/example.html

 

There are several open source ipMIDI compatible implementations. VMPK uses Qt4's QUdpSocket. There some others for Linux based on plain Unix sockets.

multimidicast: http://llg.cubic.org/tools/multimidicast/

qmidinet: http://qmidinet.sourceforge.net

qmidictl: http://qmidictl.sourceforge.net

 

Hope this helps.

 

Regards,

Pedro