Welcome, Guest
Username: Password: Remember me

TOPIC: RTP-MIDI support

RTP-MIDI support 2 years 4 months ago #5

RTP-MIDI is an open standard, but in fact is a Apple protocol. RTP-MIDI allows the transport of MIDI 1.0 messages using standard networking hardware. RTP-MIDI is widely used on Windows, OSX, Android, iOS, Arduino, Raspberry, many black boxes, ..., everywhere. Virtually it guarantees broad integration of many parts. RTP-MIDI is not proprietary technology exclusive to any specific company, and is intended for use by anyone without obtaining a license or paying any royalties.
RTP-MIDI can also easily be implemented in hardware such as keyboards, mixers, break-out boxes, etc., since the required memory footprint, processor usage, and hardware requirements are compatible with modern low-cost microcontrollers.

Official Linux support is not complete but there are various ways to implement it even partially. The implementation will be driverless to ensure the highest possible performance and control (at least from the Linux box to the network). This is what currently happens with the current Multicast MIDI implementation.

OSX and iOS are the only operating systems with an integrated network MIDI interface (RTP-MIDI). RTP-MIDI will always be available without third-party software. Not least, OSX and iOS platforms are highly optimized for real-time audio/MIDI applications. Finally, RTP-MIDI is conceptually more complicated than Multicast MIDI but it will be supported as soon as possible for the reasons given above.

For a broad overview :
RTP-MIDI MIDI Manufacturers Association
RTP-MIDI Wikipedia
RTP MIDI: An RTP Payload Format for MIDI


LINUX IMPLEMENTATIONS
user space (=application)
https://github.com/ravelox/pimidi Raspberry Pi RTP Midi
raveloxmidi is a simple proxy to send MIDI NoteOn and NoteOff events via rtpMIDI. The reason for writing this was to generate note events from a Raspberry Pi to send them to Logic Pro X. In particular, using the Raspberry Pi to handle input from drum pads. Thanks to feedback from a couple of users, I've also tested this with rtpMIDI on Windows talking to FL Studio 11. Except for the Avahi code, it’s all mine but I have leaned heavily on the following references:
RTP MIDI: An RTP Payload Format for MIDI ( www.eecs.berkeley.edu/~lazzaro/rtpmidi/index.html )
The RTP MIDI dissector in wireshark. Written by Tobias Erichsen ( www.tobias-erichsen.de )
...

kernel space (=driver)
https://github.com/jtee/cmidid-kerneldriver Linux AppleMIDI & CMIDID Kernel Module
The applemidi driver is able to create a bridge between an alsa sequencer port and any applemidi compatible network client. It is ported from a project called midikit (code.google.com/p/midikit/) from Jonas Pommerening under BSD-3 license. The logical location within the kernel can be described as follows: Alsa sequencer -> Applemidi -> Network Stack -> any compatible client
The Protocol is based on RTPMIDI specified in ~~RFC 4695~~ RFC 6295 (tools.ietf.org/html/rfc6295) with a proprietary extension from Apple. The extension includes the otherwise separately performed session management functions directly into the protocol and is simple to implement. This allows a compatibility of a huge group of implementations:
* CoreMIDI (Apple)
* nmj (Java Android)
* Arduino AppleMidi
* rtpMIDI (Windows)
* ...
...
Last Edit: 2 years 3 months ago by ice-breaker.
The administrator has disabled public write access.
Time to create page: 0.106 seconds
Powered by Kunena Forum