![KISSBOX CM-MIDI User Manual Download Page 7](http://html1.mh-extra.com/html/kissbox/cm-midi/cm-midi_user-manual_1972383007.webp)
1.2 - Understanding the RTP-MIDI sessions concept
Before using RTP-MIDI, it is very important to understand the concept of sessions, because RTP-MIDI relies
on them completely.
A session is simply a virtual link between two RTP-MIDI devices, which creates automatically one MIDI IN
port and one MIDI OUT port in each device. What is sent to MIDI OUT in the first session participant will be
received on the MIDI IN of the other session participant, and vice-versa. We will see also that sessions are also
providing MIDI Merge and MIDI THRU functionalities.
So let's stay simple : from user's point of view, a RTP-MIDI session is nothing else than a pair of
MIDI IN / MIDI OUT ports
. Each time you create a RTP-MIDI session on a machine, you create a new pair of
MIDI ports for this machine. By the way, do not mix sessions and UDP ports! A single UDP port can handle many
RTP sessions.
Sessions are needed with RTP-MIDI since all the devices are sharing the same communication media (the
network). They were not needed with MIDI 1.0 or USB since the MIDI communication is naturally point-to-point
with these systems.
Sessions are exactly the same concept as the one you use everyday when you make a phone call. Since all
phones are sharing the same network, you need to tell to your phone that you want to join a specific person. You
must then dial the number and wait until the other person accepts the call. Speaking in your phone before the
remote person has accepted the call is useless.
RTP-MIDI session are working exactly in the same way as a phone call. A first device (called Session
Initiator) sends a specific message (called the Invitation) to the RTP-MIDI device (called the Session Listener) with
which it wants to exchange MIDI data.
If the remote device accepts the invitation, it sends a reply to the Initiator which knows that a link is now
established between the two devices (the session is opened), and MIDI data can then be exchanged (to be exact,
a clock synchronization sequence will take place between the two devices just after the session is opened, and
before MIDI data can be exchanged. This step is however completely transparent from RTP-MIDI point of view).
Most devices (including computers) can be Session Initiator and Session Listener at the same time (KissBox
V3 modules, Mac OS-X RTP-MIDI driver, rtpMIDI driver, VSTizer plugins, etc...), while some devices can be only
Session Listeners (iPad, iPhone, KissBox V1/V2, etc...)
(Picture from Wikimedia Commons under free license)
The sessions are very powerful mechanisms, and they allow to perform some features which do not exist in
other MIDI implementations, or are requiring some specific MIDI hardware (like mergers and Thru-boxes):
Page 7 of 33