|
|
|
How
does Vox Proxy compare with MASH?
|
|
MASH
is an excellent scripting tool for Microsoft Agent. Vox Proxy is an extensive
integrated application that includes Agent, but also includes many media
features, extensions to Agent, and a user interface that does not look like
it was designed for a programmer. For more information about MASH, see their
web site at:
http://www.bellcraft.com/mash/
|
|
This
is a summary of areas in which Vox Proxy differs most from MASH:
|
|
Integration
with PowerPoint®
|
Vox
Proxy provides extensive control of and interaction with PowerPoint. MASH
is not intended for any PowerPoint integration, but simply to launch a presentation
and play a script. Examples of Vox Proxy/PowerPoint integration include: |
- Scripts
are developed interactively side-by-side with PowerPoint
- Scripts
are automatically embedded in the PowerPoint PPT file by slide
- Navigation
commands to go to any slide, last slide, next slide, etc.
- Scripts
are triggered automatically on slide-change events.
- You
can provide holds in scripts pending PowerPoint custom animation events.
This allows you to wait for the user to trigger a slide animation and
then have characters to react to that.
- You
can trigger custom animation events, making it trivial for characters
to display bulleted points, pictures, or other animation effects.
- Launch
other slide shows
- The
script development tools automatically display scripts from the currently-displayed
file and slide, allowing for a REALLY user-friendly development environment.
- Combined
with Vox Proxys user-defined variables, you can do some very sophisticated
navigation, score-keeping, and other tasks. The end result is a seamless
integration and control over PowerPoint that does not depend on timing
things with your slide animations.
- Play
scripts within the free Microsoft PowerPoint 2003 Viewer
|
PowerPoint
Integration Feature Comparison
|
PowerPoint
Feature
|
Vox
Proxy
|
MASH
|
Launch
starting slide show |
Yes
|
Yes
|
Advance
to next slide |
Yes
|
Yes
|
Save
scripts in PowerPoint presentation file |
Yes
|
No
|
Play
a script if the user hyperlinks to any slide |
Yes
|
No
|
Navigate
to previous slide |
Yes
|
No
|
Navigate
to first slide |
Yes
|
No
|
Navigate
to last slide |
Yes
|
No
|
Navigate
to a specified slide number |
Yes
|
No
|
Navigate
to the last slide viewed |
Yes
|
No
|
Launch
another slide show |
Yes
|
No
|
Play
the next custom slide animation |
Yes
|
No
|
Wait
for the next custom slide animation |
Yes
|
No
|
Play
scripts within the free Microsoft PowerPoint 2003 Viewer |
Yes
|
No
|
Develop
scripts side-by-side with PowerPoint |
Yes
|
No
|
|
|
Extension
of Agent Facilities
|
Vox
Proxy extends Agent facilities in several ways. Here are some of them: |
- You
can maintain a pronunciation dictionary without having to insert those
as speech tags everywhere they appear. You can either maintain such
items on a global basis (for all presentations) or embed them into the
current PowerPoint presentation file. This is especially nice for specialized
applications such as medical terminology.
- You
can save custom properties for agent characters. For example,
you can change a characters default voice, pitch, or speed or
set balloon defaults for characters. Once again, these can be applied
globally or embedded in a specific presentation.
- Characters
can gesture or point at other characters by name or at an open Window
(for example, at an Excel or Explorer window)
- The
ability of Agent to speak randomly-selected phrases is simplified and
applied to animations, which is very useful if you are returning to
a common slide or menu script. For example, the following
is a valid script line. The system will play one animation at random:
Acknowledge | Alert | Congratulate | CrossArms | HandsOnHips
- You
can maintain preference items for several things, including file locations
(where character files are located, for example). Preference items can
be changed on-the-fly within a script.
- You
can use system-defined and user-defined variables in scripts. This is
technically beyond an extension of Agent facilities, but is so useful
for Agent commands that I include it here. An example of many system-defined
variables is $tod (time of day), which will return morning
afternoon etc according to the system clock. A user-defined
variable might be &name1. A simple example of speech
using both would be:
Say Good &tod! My name is &name1. Welcome to &place.
Also available as system-defined variables are current drive locations,
even if the script is being played from a CD drive. Variables have many
and varied uses, and are a very powerful scripting tool. You can do
arithmetic and logic with them, so you can keep score with them, use
them for sophisticated navigation schemes, for evaluating user response
to voice commands, and so on.
- Characters
can be automatically scaled according to the computers resolution.
This allows characters to appear the same relative size regardless of
the system theyre played on (within the limitation of Agents
pixilation, of course)
- During
development, you can drag-and-drop characters into place on slides.
The system will insert the appropriate MoveTo or Show at location.
- Character
positions can be specified either as screen percentages or as right,
left, top, bottom, or center. This makes all character locations independent
of monitor resolution. In MASH, character locations other than left,
right, center, etc are specified in pixels at the upper-left corner
of the character image. When displayed on a computer with different
resolution than authored, the characters will appear in different relative
locations.
- You
can turn on a DualMonitor mode, which will automatically
relocate characters so they are visible on a projected image in a dual-monitor
display mode, which many presenters use to allow them to see speakers
notes while displaying a slide show. Using Agent (and MASH) alone, the
characters always appear on the first monitor only (which is the wrong
one while projecting).
- You
can place holds (I call them Waits) in scripts
not only to wait for other characters, but to wait for many other events,
including time from start of slide show or start of current slide, time
from start of various media events, wait for media to end, or for custom
timers that you can trigger in your script. For media, this allows characters
to narrate a movie, for example, with perfect synchronization regardless
of system performance.
- Special
features for AT&T Natural Voices, particularly for creating WAV
files for delivery on CD (As with many copyrighted speech engines, Natural
Voices cannot be delivered as an engine on a CD). You can enter text
and convert it to wav files or you can let the program scan your entire
script (all scripts in a presentation) and convert all speech for a
given character to wav files using a specified AT&T voice.
- Wait/no-wait
is simplified from one character to another. For example, if you want
peedy to appear while Paul says something, it would look like this:
Show Paul at left center
Say Id like to introduce my friend Peedy.
Show Peedy at right center :nowait
|
Integration
of Other Media Controls
|
Vox
Proxy provides commands to play media files, including: |
- Microsoft
Media Player. You can provide the user with controls or no controls.
Simple check-box development tools allow you to either hold the script
until the media ends or allow it to play simultaneously. Combined with
the media-time Waits, this lets characters narrate movies, even if the
user pauses and re-starts the media.
- Flash
movies. You can open and close multiple flash movies simultaneously.
- Play
various sounds and music. Volume fading allows you to reduce music volume
when characters will be speaking and increase it when they are not.
- Display
pictures and backgrounds
- These
are all available whether youre running within PowerPoint or from
stand-alone script macros.
|
Programming
for Non-programmers
|
Vox
Proxy provides pretty sophisticated programming features directly within
your scripts. These can be really useful for evaluating users responses
to voice commands, listbox selections, or an input text box. All user-input
commands automatically place the users response into a Vox Proxy variable
called &Response, which can then be used for evaluating scripts. Programming
commands include: |
- IF-THEN-ELSE
structures
- SELECT-CASE
statements
- Bookmarks
(labels) and GOTO command for branching within the script.
- Read
and write data from structured text files.
- User-defined
variables are a very important programming feature
- An
example using voice-command input might look like this:
Show Paul at center
ListenFor "...Kitchen Faucets" "...Bathroom Faucets"
"...Shower heads" "...Shower Valves"
SELECT &Response
CASE "...bathroom faucets"
;Here you would have script illustrating bathroom faucets; you might
navigate to a different series of slides, launch another slide show,
launch a script macro, etc.
CASE "...kitchen faucets"
etc
END
|
Miscellaneous
Features External to PowerPoint
|
- Digital
Clock display, including countdown or count-up timer or clock time
- Run
external programs, including displaying web pages, Microsoft Word window,
Notepad, or any program registered with Windows. Allows argument-passing.
- Input
a text field, display a list selection box with results assigned to
variables, display message boxes
|
Interact
with Microsoft Excel®
|
Vox
Proxy contains facilities for displaying Excel worksheets, customize their
appearance, read and write cell information, and react to data changes made
by the user. This lets you write an interactive application where characters
can talk about data entered by the user. Data can be read and written to
worksheets, with or without displaying them. |
Script Macros
|
In
Vox Proxy, macros are scripts saved in text files outside of PowerPoint.
They are executable from PowerPoint slide scripts, from other macros, or
in Windows by just running the macro file. Other users can run Vox Proxy
scripts by installing the free Vox Proxy Player. You can display menus of
macros, you can execute random script lines from macros (to allow random
jokes or pearls of wisdom, etc). Macros can also be embedded in a PowerPoint
PPT file. |
User-friendly Development Tools
|
In
addition to a tightly-integrated PowerPoint interface, the Vox Proxy Script
Writer features extensive script wizards so that all script commands are
available in simple selection forms as well as in an editable text box.
You can access all wizards and script commands by right-clicking in the
script editor. A find-and-replace works on a single slide or macro script
or on all slide scripts in a presentation. You can test a specific line
of speech by right-clicking on it. Scripts can be fully documented using
a semicolon to delineate non-executable text. |
|
Output
Formats
|
Since
MASH is not intended as a PowerPoint integration tool, it offers many formats
for its script output, including VisualBasic code, JavaScript code, and
a self-contained executable. Vox Proxy output is available in two forms:
integrated with PowerPoint and/or as a script text file. Vox Proxy requires
either the development software or the free Vox Proxy Player to run. MASH
executables will run stand-alone. |
|
Samples
|
Here
are very simple sample scripts in MASH and Vox Proxy to show Paul at left
center, Peedy at a specified location, and have Paul perform the "Greet"
animation, and then have each say something. |
MASH script:
|
Paul.Show
Set Req = Paul.MoveTo(PaulLeftX, PaulCenterY)
WaitFor Req
Peedy.Show
Set Req = Peedy.MoveTo(704, 512)
WaitFor Req
Paul.Play "Greet"
Set Req = Paul.Play("RestPose")
WaitFor Req
Peedy.Play "Acknowledge"
Peedy.Speak "Hi, Paul."
|
Vox Proxy script:
|
Show
Paul at left center
Show Peedy at 75 25
Paul Greet, Restpose
Say Good morning. My name is Paul.
Peedy Acknowledge
say
Hi, Paul.
|
Script Notes:
|
- Vox
Proxy stresses simplicity and readbility, and implicitly performs programming
functions that must be spelled out in MASH.
- The
"Set Req=" and "Waitfor Req" are programming artifacts
that are done implicitly in Vox Proxy.
- The
locations in MASH must be in pixels at the top-left corner of each character,
which will be incorrect if played on a computer with a different resolution
setting. In Vox Proxy, locations are expressed as a percent of screen
and are measured to the center of each character, so they stay fixed
when played at any resolution.
|
|
|
|