Accesses in Modalys are the “ports” through which objects communicate with each other and with the outside world. Every situation wherein information must be passed to or taken from an object requires an access. For example, if two objects are to be joined together by an 'adhere connection (connections will be discussed below), it is necessary to have one access on each object to be adhered to. An important point in the understanding of Modalys accesses is that they have both a “physical” location on the object, and a direction, or axis, of movement. A 'bi-string object, for example, can be accessed in either of two transverse directions: 'trans0 and 'trans1. You can think of these as horizontal and vertical, if it helps you mentally envision them. If we create an access near the midpoint of a 'bi-string, with a 'trans0 (horizontal) direction of movement, a diagram of the string and its access would look something like the this:
If we then create a second access at another point on the string with a 'trans1 (vertical) direction of movement, our diagram becomes:
As the two accesses have different directions, they are completely independent and cannot in any way effect each other. If, for example, we pluck the 'trans0 access and attach a speaker to the 'trans1 access, we will hear nothing (because there are no vibrations in the vertical direction), even though the string is vibrating from side to side. In order to pluck a string and listen to the effect, we need two accesses with the same direction: one for the interaction with the pick object, and one for the speaker:
Some interactions, like the 'bow interaction, require using both access directions; these kinds of bi-directional interactions would cause the string to vibrate in both 'trans0 and 'trans1 directions. (For this reason, we usually use a simpler 'mono-string model for 'pluck or 'strike interactions.)
Standard accesses are created by the function (make-access ... ) which takes the following Lisp syntax:
(make-access object_reference location_on_object direction_of_access)
The location of the access on the object is specified by a controller. This can be either a one dimensional controller as in the case of a string; or it could be a two dimensional controller, specifying an (x, y) location, as in the case of a rectangular plate. Objects that vibrate in three directions would obviously need a three-dimensional controller (x,y,z).
The possible directions of access depend on the object being used. For example, a bi-string object can be accessed in the 'trans0 (horizontal) and 'trans1 (vertical) directions, while an air column must be accessed in the 'long (meaning longitudinal - across the length of the tube) direction. Specific information about which accesses can be used for a given object can be found on the individual Modalys objects' reference pages.
Accesses fall into the following topical categories: