Timing
What is a time frame?
Each unit of time is referred to as a “frame”. Any time-related device (i.e., events, markers) may span any integer number of frames.
The default frame rate is 30FPS (frames per second), or about 33mS per frame. At this rate, approximately twelve MiniSSC or SMI events can operate concurrently on one serial port. About three SV203 events can operate concurrently on one serial port. These limitations are a result of the maximum MiniSSC and SMI 9600bps communication speed. VSA supports higher baud rates for more capable devices (see Device Settings).
What happens if too many events are occur at the same time?
If, for example, 13 MiniSSC events all command servos to positions at frame 10. The minimum time to send 13 MiniSSC commands is slightly greater than 33mS (the duration of a frame). In order to send all these commands, VSA must delay frame 11 resulting in a loss of synchronization. VSA attempts to restore synchronization by accelerating frames that do not need the full 33mS to transmit commands. The result is that motion appears to slow when there are too many events and speed up when there are fewer events. This only occurs when the number of simultaneous events exceeds the maximum speed of the serial port. See Bandwidth testing for more information.
How can this synchronization loss be avoided?
There are several things that can be done to minimize, and often altogether avoid, any sort of timing loss. First, since the commands are queued separately for each serial port, move devices to other serial ports. By placing a MiniSSC on each of two serial ports, up to 16 servos could have simultaneous events with no synchronization loss. Essentially, since the bottleneck occurs at the serial port, by using multiple serial ports, the delay is avoided.
In many cases, servos can not respond to commands at 30FPS. It is often possible to reduce the frame rate and effectively increase the time that VSA has to send commands. See Modifying the frame rate for more information.
Synchronization can also be actively matched to the wave file by using VSA’s Choosing Audio Synchronization.
Modifying the frame rate
It is possible to select a frame rate other than 33mS/frame. Select Settings...
from the Tools
menu and then the Timing
tab. Using the Time Step
slider, adjust the duration of each frame. Note that at slower frame rates, more devices can be supported (see What is a Time Frame for more details). When you click OK
, VSA will reload the wave file at the new frame rate.

Note: Modifying the frame rate will alter the synchronization between the audio file(s) and events. You may wish to select all the events, and then scale them to resynchronize.
Audio synchronization
In the default setup, VSA synchronizes device output with the system’s clock. As a result, the data output by events is very accurate. In fact, it is often more accurate than audio playback. On many systems, audio playback may deviate by as much as 0.2% (more if the system is busy with other tasks). To the human ear, this loss is negligible. However, even a 0.2% loss can cause the device data to lead the audio playback by as much as 3 frames after just 1 minute of play.
To handle this possible source of deviation, VSA offers two options for synchronization:
Time VSA maintains the device output with the system clock. This is the most accurate form of synchronization. The time of data output can be determined by multiplying the frame by the frame rate. With this option, the MM:SS.HH time display format is accurate.
Wave Synchronization When synchronization with the audio file(s) is more important that synchronization with “real time,” VSA can force the motion data to track the wave file (default). With this option, VSA dynamically adjusts frame data to match the audio file(s) (consequently, the MM:SS.HH time display format may be slightly skewed). VSA accomplishes the synchronization using key-frames to detect a lagging or leading wave file. As a result, some event data may be skipped or delayed.
Choosing Audio Synchronization

To toggle Wave Synchronization, choose Tools
> Settings...
and then the Timing
tab. Choose Key Frame Synchronize with Wave Audio
to enable the audio synchronization.
Time View
The time line serves as a time “ruler,” primarily aiding in visual analysis. Depending on the zoom factor, a tick mark is displayed every 10 frames. If the display mode is set to the seconds format, the time can be displayed in MM:SS rather than frames.

Modifying the time display
The time may be displayed in either a frames or second format. Select Settings...
from the Tools
menu and then the Timing
tab. Using the Display Time in Seconds Format
check box, select the desired setting.

When in Seconds Format
, VSA displays all times in a MM:SS.HH format. Additionally, the Event Properties box allows you to enter the start and stop times in the MM:SS.HH format (time will be rounded to nearest frame).
Using markers
Markers allow a specific portion of the routine to be executed. They are extremely useful when fine tuning a small portion of a lengthy routine. Markers do not affect normal execution. To learn how to use markers in execution, see Playing with markers.

The two markers are called the first (start) and second (stop) markers. The start marker must always be set before the stop marker. If the start marker is dragged beyond the stop marker, the markers automatically trade positions. If the stop marker is dragged in front of the start marker, the markers automatically trade positions.
To move either marker, left click, hold, and begin to drag the marker to a new position. A black cursor line will extend across the views and indicate the proposed position. Alternatively, double click the time line and the appropriate marker will be adjusted.
Zooming
The minimum time duration for an event is 1 frame. Since single frame events are only 2 pixels wide (depending on the user’s system), they can be difficult to see and especially difficult to resize. Zooming allows these small events to be more easily manipulated while preserving the ability to view larger parts of the routine at once. Zoom does not affect the execution of events.
To zoom, choose the option from the View
menu or the top horizontal toolbar. Alternatively, press the up arrow key to zoom in and the down arrow key to zoom out. The minimum magnification is x1 and the maximum is x20. The current zoom factor is displayed in the status bar.
Bandwidth testing
If too many events occur simultaneously, a bottleneck may develop at the output port (see What is a time frame? for more details). If this happens, device data may lose synchronization with the audio. To test for possible error conditions, use VSA’s Bandwidth Test. The Bandwidth Test does not detect errors which may be the result of slow hardware. For example, USB devices (e.g., Parallax USB or USB serial ports) do not guarantee a fixed data rate. As a result, VSA cannot estimate the affect of these devices; it is recommended that Wave Synchronization be used with USB devices.
Proceed to Tools
> Bandwidth Test...
and the following dialog will appear.

In the above instance, the test determined that insufficient serial port bandwidth existed from frames 27 to 113. To remedy the situation, move some of the afflicting tracks to another serial port or reduce the frame rate.