Chapter 12
Mapping graphic space to time space

Time to space mapping refers to the description of relationship between an object local graphic space and its time space. A mapping consists in a set of relations between the two spaces. INScore provides specific messages to describes mappings and to synchronize arbitrary objects i.e. to display their time relationships in the graphic space.

12.1 The ’map’ message

The map messages can be sent to any address with the form /ITL/scene/identifier. It is intended to describe the target object relation to time and sets a relation between an object segmentation and a time segmentation. The global form of the message is:

mapMsg PICT

The relation parameter must be sent as a single string which format is described below. It consists in a list of associations between the object local space and its time space expressed as segments.

relation PICT

Segments are expressed as a list of intervals. For a 1 dimension resource, a segment is a made of a single interval. For a 2 dimensions resource, a segment is a made of 2 intervals: an interval on the x-axis and one on the y-axis for graphic based resource, or an interval on columns and one on lines for text based resources. Intervals are right-opened.

The different kind of relations corresponds to:

Table 12.1 summarizes the specific local segmentation used by each component type.

The specified map can be named with an optional mapName string; this name can be further reused, during object synchronization, to specify the mapping to use. When mapName is not specified, the mapping has a default empty name.

The del command deletes the mapping specified with mapName, or the ’empty name’ mapping if no map name is specified.


Table 12.1: Local segmentation type for each component



component typesegmentation type


txt, txtfint2DSegments
imgint2DSegments
rect, ellipse, polygon, curvefloat2DSegments
graphint1DSegments



relativeTimeSegment PICT

float2DSegment PICT

int2DSegment PICT

int1DSegment PICT

relativeTimeInterval PICT

floatInterval PICT

intInterval PICT

Relative time is expressed as rational values where 1 represents a whole note.

rational PICT

EXAMPLE
Mapping an image graphic space to time:

/ITL/scene/myImage map
    "( [0, 67[ [0, 86[ ) ( [0/2, 1/2[ )
    ( [67, 113[ [0, 86[ ) ( [1/2, 1/1[ )
    ( [113, 153[ [0, 86[ ) ( [1/1, 3/2[ )
    ( [153, 190[ [0, 86[ ) ( [3/2, 2/1[ )
    ( [190, 235[ [0, 86[ ) ( [2/1, 5/2[ )" ;

the image is horizontally segmented into 5 different graphic segments that express pixel positions. The vertical dimension of the segments remains the same and corresponds to the interval [0, 86[. Each graphic segment is associated to a time interval which duration is 1/2 (a half note).

NOTE ABOUT LOCAL SPACES

12.2 The ’map+’ message

The map+ messages is similar to the map message but doesn’t replace the existing mapping data: the specified relations are added to the existing one.

mapAddMsg PICT

12.3 Mapping files

The mapf messages is similar to the map message but gives the path name of a file containing the mapping data, along with the optional map name.

mapfMsg PICT

12.4 Symbolic score mappings

Mapping between the graphic and time space is automatically computed for symbolic score gmn, gmnstream, gmnf. However and depending on the application, the graphic space may be segmented in different ways, for instance: different graphic segments for different staves, a single graphic segment traversing all a system, etc. Thus for a symbolic score, the map message different and is only intended to select one king mapping supported by the system.

scoreMap PICT

The default mapping for a symbolic score is unnamed but equivalent to staff1.

EXAMPLE
Requesting the mapping of the third staff of a score:

/ITL/scene/myScore map staff3;

Requesting the system mapping :

/ITL/scene/myScore map system;

NOTE
A voice may be distributed on several staves and thus a staff may contain several voices.