A newer version of Max is available. Click here to access the latest version of this document.

vdp

Control a videodisk player through a serial port

Description

The vdp object works with serially-controlled videodisk players (remember them?) that are compatible with the Pioneer 4200 or 8000 standard. Each command received by the vdp object sends a stream of numbers out the object's left outlet, intended to be connected to the serial object. The description of each command discusses what effect the command has on the player, not the exact character stream sent by vdp.

Because videodisc players have relatively buffer-less serial interfaces, vdp places each command it receives in a queue, and sends it out only when the player has finished executing its most recent command. This "feature" may cause a delay between the time a command is sent to the vdp object and the time it is actually sent out the serial port.

Any message received in the right inlet will behave exactly as if it had been received in the left inlet, except that it will be put at the front of the queue, to be the very next command sent out to the player.

Arguments

None.

Messages

int frame-number [int]
In left inlet: Same as play from a specified frame number to the end of the disc.

In middle inlet: vdp expects responses from the player to be fed from the serial object into its middle inlet. When vdp sees "received" (the letter R followed by the return character) from the player, it sends the next command from its queue of pending commands. The example shows how to connect the vdp and serial objects together.
chapter In left inlet: Asks the player what its current chapter number is and sends the response (received in the middle inlet) out the middle-right outlet.
clear In left inlet: Removes any pending commands from the queue and resets the object.
cmd ASCII-primitive-command-code [list]
In left inlet: The cmd message can be used to send "primitive" commands consisting of ASCII codes to the video disk player. Commands usually consist of two-letter codes preceded by numeric arguments. For example, searching to frame 5000 could be accomplished with the message cmd 5000 SE. Refer to the owner's manual of your player for details. The cmd message is particularly useful with the Pioneer 8000 player, since it has a number of special features not supported by the regular messages of the vdp object.
control action-ID [int]
In left inlet: The word control, followed by a number, tells the videodisc player to perform one of the following operations:

Number Operation
0 --------- Initialize and reset player
1 --------- Eject disk
2 --------- Audio off
3 --------- Audio 1 on
4 --------- Audio 2 on
5 --------- Stereo on
6 --------- Picture on
7 --------- Picture off
8 --------- Display frame numbers on
9 --------- Display frame numbers off
11 ------- Frame access mode
12 ------- Time access mode
13 ------- Chapter access mode
fps playback-speed (frames-per-second) [list]
In left inlet: Sets the playing speed. The fps message is followed by a number (frames per second) or an adjective. The following adjectives and numbers are equivalent (at least for the Pioneer 4200):

slowest 1
slower 10
slow 15
normal 30
fast 60
faster 90
fastest 120
frame In left inlet: Asks the player what its current frame number is and sends the response (received in the middle inlet) out the middle-right outlet.
name In left inlet: Asks the player what the current name is and sends the response (received in the middle inlet) out the middle-right outlet.
play first-frame [int]
last-frame [int]
speed [int]
In left inlet: With no arguments, play starts playing at the current speed from the current location to the end of the disk (or until the player receives another command). With one argument (a frame number), play searches to the specified frame number and begins playing to the end of the disk. With two arguments, play searches to the location specified by the first number and plays until the disc reaches the second frame number.
scan forward/backward [list]
In left inlet: Initiates a "fast forward" or "rewind" operation. scan forward moves forward, scan backward moves backward.
search start-frame-number [int]
display-flag (0 or non-zero) [int]
In left inlet: The first argument indicates a frame number to search to. The second, optional argument, if non-zero, instructs the player to keep the picture on while searching. If searching a great distance from the current location, the player may not be able to keep from blanking the screen. Once the player arrives at the desired frame, it will display the (still) image from that frame.
step previous/next-step (-1 or 1) [int]
In left inlet: Followed by -1, step pauses the player (if playing) and displays the previous frame. Followed by 1, step pauses the player (if playing) and displays the next frame.
stop In left inlet: Pauses the player.
restrict start-frame-number [int]
end-frame-number [int]
The word restrict followed by a starting frame-number and an ending frame-number will restrict all future messages to perform their actions restricted between the two frames.
setskip number-of-skipped-frames [int]
In left inlet: Followed by a number, sets the number of frames to jump (forward or backward) from the current frame location when using the skip message.
skip backward/forward-flag (-1 or 1) [int]
In left inlet: Followed by -1, skips backward by a number of frames specified in the setskip message. Followed by 1, skips forward by a number of frames specified in the setskip message.

Information for box attributes common to all objects

Output

bang: Out middle-left outlet: After sending a command out its left outlet, vdp begins "polling" the serial object for a response from the player by sending bang messages out this outlet approximately every 20 milliseconds, until vdp receives a "received" signal from the player in its right inlet. (A bang sent to a serial object causes any characters received in that serial port to be sent out the serial object's outlet.)
int: Out left outlet: A stream of characters, coded instructions to the videodisc player, for each command. These numbers are intended to be sent to the left inlet of a serial object.
int: Out middle-right outlet: Current frame number, received from the player in response to a frame message.
int: Out right outlet: Not implemented.

Examples

Basic configuration of vdp and serial objects... 'Scrubbing' with a slider or MIDI controller

See Also

Name Description
serial Send and receive characters from serial ports and cards