Using the real-time stream allows to define real-time interactions and transformations. The real-time stream is a kind of virtual track which will contain all incoming MIDI events received by the application. This track can be manipulated like any other object in the language: transformed, cut, compressed/expanded.... When an expression containing the real-time object is evaluated, all operations defined on the real-time track are converted as a set of transformations functions executed in real-time by the internal sequencer on the incoming MIDI stream.
The real-time stream is available in the right side of the colors window.

When it is dragged in the TimeLine editor, it appears as a gray colored object which duration is limited to 10 minutes. Its graphical representation after evaluation is a grey colored line which position in the pitch axis reflect the transposition factor that has been eventually used. For a transposition of 0, this line will appear with a pitch of 60.

In the previous example, the real-time object starts at the date 0. When the expression is evaluated, the real-time object represents all events that are received since the beginning of evaluation. It means that the output since the beginning of evaluation will contain the input since the beginning of evaluation. Thus the process we got is a direct MIDI thru from input to output. To test the result, one need to connect the sequencer to the MIDI input or to the output of any other MidiShare application.
If the real-time object is now shifted on the temporal axis, the whole set of received events will be shifted in time. In the following example, three instances on the real-time object are used: the first starts a time 0, the second is shifted by 1 second, the third is shifted by 2 seconds.

The resulting transformation after evaluation is a kind of 2 repetitions echo where each received event will be sent immediatly and sent again with a delay of 1 and 2 seconds.
The real-time object can be cut like any other musical object. In the following example, the first 5 seconds of the real-time object are cut and repeated twice.

The resulting process after evaluation does a direct MIDI thru during the first 5 seconds and repeats between dates 5 and 10s what was received between dates 0 and 5s.
Transformations
It's possible to apply transformations on the real-time object like usually done on normal musical objects. In the following example, three different transformations are sucessively applied on differents parts on the real-time object:

The resulting process after evaluation does a thru on the first 5 seconds, a transposition of +12 semi-tons between dates 5 and 10s, a thru between dates 10 and 15s, a transposition of -7 semi-tons between dates 15 and 20s, a thru between dates 20 and 25 s, and last an echo between dates 25 and 30 s.
Remark: the function track used is a MixFunctionTrack type. It means that the result of successive applications of functions on the argument track are mixed (as explained in the TimeLine editor page).
Compression/expansion
The real-time object can be compressed or expansed. It's possible to define processes which modify time but can not be executed in real-time. For example if the whole real-time object is compressed by 2, one obtains a process that produces events to be played in the past. Of course it's impossible! For all processes that modify time and produce "old" events, the convention is to send them as soon as possible, thus events to be played in the past are still payed at the current date.
In the following example, the first 10 seconds of the real-time object are cut and compressed by a factor 2 and repeated twice.

The resulting process compress the incoming stream during 10s starting from date 0, but events after compression can not be played at their real dates and are actually played as soon as they are received. On the other hand, during the second repetition starting at date 5s, the stream received betwwen 0 and 10s can be compressed and pleyed correctly betwen dates 5 and 10s.