Lectrosonics PT3 User Manual

Page 22

Advertising
background image

This normalized trigger value is inverted (one’s complement: all bits complemented) if the action’s Value invert
checkbox calls for it, then scaled to range from 0 to the action’s Max. Value parameter. The resulting number is
plugged in to the action’s Value Byte and transmitted with the rest of the action. Due to the fact that LecNet com­
mands cannot contain bytes larger than 127, Max. Value is never larger than 127, and some adjustment to the
normalized trigger value is always performed.

Owing to this normalization process, a volume control action can work equally well with an AXlink level or continuous
MIDI controller (fine control), or an AXlink channel or MIDI on/off controller (hard on or off only). In fact, a volume
action used with an AXlink channel is essentially a backwards mute button.

Here is an example, for clarity. Let us assume that AXlink level 1 is mapped to the AM8 Master Volume action in the
action map. An AXlink SEND_LEVEL command sets level 1 to 63, one fourth of the maximum setting. AXlink levels
range from 0 to 255, so the number 63 is already normalized, however this action calls for inversion. The one’s
complement of 63 is 192 (to see why, convert to binary: all bits are complemented). The value 192, from the range of
0 to 255, is now scaled to fit the range of 0 to 31, as the action requires. This yields the final value of 24, which is sent
to the AM8 along with the rest of the action bytes. Note that the value 24 is one fourth of the way from 31 to 0, which
is precisely the desired result.

The scaling and inversion options on monitors work essentially the same way, in reverse. If the value being monitored
represents a level or amount of something, the type of information that might plausibly be displayed as a bar graph on
an AMX touch panel, the scaling capability is provided to save on coding.

Each LecNet monitor retrieves a single value byte from the response string. LecNet response bytes are not limited to
the range of 0-127 as LecNet command bytes are, so this value can be anything from 0 to 255. If this byte contains
simple on/off or bitwise information, it should not be scaled. The Max. Value parameter in this case should be 255. It
still may be desirable to invert the bits, depending on the purpose of the monitor. For values representing continuous
levels, it is customary and usually desirable to normalize that value to the range of 0 to 255.

The translation occurs as follows: the LecNet monitor inquiry is performed and the value byte extracted from the
response. The value byte is inverted (one’s complement) if required. It is then scaled from its original range of 0 to
255 to the range dictated by the monitor’s Max. Value parameter (255 for no scaling). The result is then sent to the
AXlink master according to the mapping method. Here is a list of AXlink mappings and how values are transmitted.

AXlink Mapping How sent

Channel

zero: off, nonzero: on

Level

as is

8 Channels

one bit per channel

Similarly to actions, therefore, continuous and on/off type signals may be interchanged and thanks to the scaling and
inversion will “do the right thing”.

For clarity, here is an example. Let us assume that an AM8’s Comp/Lev Atten (compressor/leveler attenuation) is
mapped to AXlink level 1, for use as a bargraph display. (Note that such a display is likely to appear somewhat
choppy as it will be updated at most a few times a second.) The LecNet inquiry yields a response of 10, one sixth of
the maximum value of 60 available from this function. The monitor does not require that the value be inverted but
does scale it from the range of 0 to 255 to the range of 0 to 60. The scaled value is 41, one sixth of the way from 0 to
255. Thus, the bargraph button associated with level 1 shows the correct proportion at all times, with no AXCESS
coding required besides CONNECT_LEVEL and CREATE_LEVEL.

22

Advertising