SPDINTERP(OPCSDEFS)      Optical Printer Control System     SPDINTERP(OPCSDEFS)

NAME
    spdinterp - configure exposure speed interpolations

SYNOPSIS
    spdinterp [slavechan] [masterchan] [lowpos] [highpos] [total] [samples]

EXAMPLES
    spdinterp c e -1000 1000  2  0.5 1.5
              - - ----------  -  -------
              | |      |      |     |
              | |      |      |     The exposure compansation values.
              | |      |      |
              | |      |      # of exposure compenation values.
              | |      |
              | |      The extreme positions for the 'e' (zoom) channel.
              | |
              | 'e' (zoom) is the master channel.
              |
              'c' (camera) exposure speed slaved to [masterchan]

DESCRIPTION
    SPDINTERP allows a channel's normal running speed to be affected 
    by the position of some other channel. Slewing speeds are NOT affected.

    [slavechan] is the channel whose exposure speed will be affected.
    This is usually always the 'c' (camera) channel. 

    [masterchan] is channel whose position will dictate the
    exposure speed of the [slavechan]. Normally, this is the zoom channel,
    so that moving the zoom will auto-compensate the exposure.

    [lowpos] [highpos] are the low and high positions
    the [masterchan]; the extreme positions which define the
    range over which the interpolation will take place.

    [total] The total number of exposure compensation sample
    values. NOTE: If [total] is '0', this will cancel any previous 
    SPDINTERP(OPCSDEFS) specifications for the [slavechan] channel.

    [samples] are the compensation values, which will
    be multiplied to [chan]'s current exposure speed, to create
    the actual, 'compensated' exposure speed.

    A value of 2.0 will effectively double the exposure speed,
    0.5 will cut the exposure speed by half, 1.0 will leave the
    exposure unmodified, etc.  
    
    Each sample position should be separated by white space (tabs, 
    spaces, CRLFs) and there should be as many samples as specified 
    by [total].

OVERVIEW
    When an SPDINTERP is set up on a slave channel, it is like defining
    a look up table through which positions on the master channel affects 
    the exposure speed of the slave channel.
♀
    Requests that fall between values in the lookup table are computed
    as a linear interpolation between the two neighboring lookup values.

    The resulting interpolation results in a 'compensator value' that 
    is simply multiplied to the current camera speed, to get the
    compensated 'actual speed'.

HOW SPDINTERP WORKS
    ===============================================================
    =   spdinterp c e -1000 1000 3 .5 1.0 2.0                     =
    =                  |      |  |  |     |                       =
    =                  |      |  |  |     Last sample position    =
    =                  |      |  |  First sample position         =
    =                  |      |  Total samples                    =
    =                  |      High                                =
    =                  Low                                        =
    ===============================================================
    Figure A.

    ======================================================================
    =  Zoom        Clip                        Interped    Compensated   =
    =  Posns      Window         Samples       Compensator Actual Speed  =
    =                                          Values      (SPD=0.5)     =
    =               |                                                    =
    =  -2000 ---->  |                       ----- 0.50 ----> 0.25        =
    =  -1500 ---->  | LOW = -1000         /------ 0.50 ----> 0.25        =
    =  -1000 ----------------------> 0.5 -------- 0.50 ----> 0.25        =
    =   -500 ---------------------->     -------- 0.75 ----> 0.38        =
    =      0 ----------------------> 1.0 -------- 1.00 ----> 0.50        =
    =    500 ---------------------->     -------- 1.50 ----> 0.75        =
    =   1000 ----------------------> 2.0 -------- 2.00 ----> 1.00        =
    =   1500 ---->  | HIGH = 1000         \------ 2.00 ----> 1.00        =
    =   2000 ---->  |                       ----- 2.00 ----> 1.00        =
    =               |                                                    =
    ======================================================================
    Figure B.

    Whenever the zoom moves to a new position, it is clipped through the
    'clipping window' between the [low] and [high]. This creates a lookup
    into the sample list using a linear interpolation. Results in an
    'Interped Compensator Value', which is then multiplied by the current
    speed of the camera (SPD=0.5), resulting in 'Compensated Actual Speed'.

    Note when zoom is 0 (exactly between the LO and HIGH values) the actual
    speed is the same as the camera speed; the compensator value becomes
    1.0, which multiplied against the camera speed yields no change. This
    is because the 'zero' position on the zoom is usually 1:1, which is
    where exposure speeds should match the actual speed.

    For this reason, it is best if the extreme zoom positions are totally
    opposite (2:1 vs 1:2, or 10:1 vs 1:10, etc), and the 'middle value'
    in the samples is 1.0. This way if zoom is 1:1, exposure is unchanged.

SEE ALSO
    FEED(OPCS) - feed new positions to motors every camera frame
    INTERP(OPCSDEFS) - set up interpolation points

ORIGIN
    Version K1.12e+ Gregory Ercolano, Venice California 04/12/98
© Copyright 1997 Greg Ercolano. All rights reserved.