scripters with Vegas 4 beta, please read!

SonyEPM wrote on 2/1/2003, 9:25 PM
We are making some changes to scripting that may cause scripts written in the beta to break when run in the final version. As soon as Vegas ships, we'll help you get your existing scripts back up and running - shouldn't be too rough to patch them up.

Anyway, until Vegas 4 ships, I suggest holding off on any script work on your part- we regret the hassles this will cause, but the architectural changes are needed.

Comments

SonyPJM wrote on 2/2/2003, 2:13 PM

Here is a list of most of the changes that will effect the scripts you
may have already written:

* The namespace for all classes has changed from
SonicFoundry.Vegas.Script to SonicFoundry.Vegas (we just dropped the
'Script' part). This probably effects every script written for Vegas
because the namespace is almost always referenced by an import
statement.

* The Event class name has been changed to TrackEvent and is now an
abstract base class of VideoEvent and AudioEvent. Scripts that
previously did this:

var evnt = new Event();

will need to do one of the following:

var evnt = new AudioEvent();
or
var evnt = new VideoEvent();

* Likewise the Track class and the BusTrack classes are now abstract
and each now has Audio and Video subclasses (AudioTrack, VideoTrack,
AudioBusTrack, VideoBusTrack).

* The Template class has been renamed to RenderTemplate... this should
not effect very many scripts since there's no public constructor for
this class.

* The Stream class has been renamed to MediaStream... again there are
no public constructors for this class so the name change should be no
problem for existing scripts.

* The Point class has been renamed to EnvelopePoint.

* The Preset class has been renamed to EffectPreset.

* The Take constructors now have MediaStream parameters rather than
the combination of Media object & stream index. This should avoid
some confusion about stream indices being type-specific or not. It
can also help script writers be sure the intended MediaStream really
exists.
aboukirev wrote on 2/3/2003, 9:30 AM
Does this mean that a typical DV clip will appear as two events (VideoEvent and AudioEvent) on the Track?
How does having VideoEvent and AudioEvent work with HasVideo and HasAudio methods?

Thanks.

Alexei
SonyPJM wrote on 2/3/2003, 4:29 PM

Yes, the typical DV clip that has been dropped onto the track view
does create two events, one for the video and one for the audio.

Media objects have the HasVideo and HasAudio methods, which tell
whther or not the media has at least one video or audio stream,
respectively. TrackEvents (both AudioEvent and VideoEvent) have
IsVideo and IsAudio methods. Obviously, for VideoEvents, IsVideo
returns true and IsAudio returns false... vice-versa for AudioEvents.
jrsunshine wrote on 2/3/2003, 9:28 PM
Just wanted to say you guys are incredible. I hope that the scripting takes off in a huge way.

What was the "big picture" vision for scripts in VV4?

I forsee lots o utils and processing routines that can add lots of value to vegas users.

Roy
MikeWhy wrote on 2/4/2003, 12:17 AM
Is there a way to group the video with the audio? Or group events in general? I don't see any mention in the recent API summary.

Thanks.
Mike.
SonyPJM wrote on 2/4/2003, 9:15 AM

I'd say the 'big picture' is that we want to allow Vegas users to
extend and customize its functionality in ways we've never thought of
or can't fit into the standard interface. Through application
scripting, we hope to allow users to improve their work flow and allow
for as much flexibility as possible in doing so. We also want to
allow Vegas to be integrated into automated production environments or
with any system that involves media production.
SonyPJM wrote on 2/4/2003, 9:18 AM

I'm afraid there's no event grouping in the scripting API for this
release.
MikeWhy wrote on 2/5/2003, 8:52 PM
IVegasCOM::ProjectModified(uint flags);
adds a new arg 'flags'. Should we call this if the project contents change? What values should we send for flags?

IVegasCOM::Take_GetStreamIndex(....., ref int index)
IVegasCOM::Event::AddTake(...., uint streamID, ....)
Are index and streamID the same values? Can they be safely typecast?

IVegasCOM::SaveSnapshot(BSTR path, int imageFormat, ... )
SonicFoundry.Vegas.SaveSnapshot() seems to call it with a null path string, and ImageFormat::Unknown. Is that the correct calling convention through COM?

Thanks. (and congrats on the release!)
Mike.
SonyPJM wrote on 2/6/2003, 9:29 AM

The COM interface was not intended for use by external applications.
It is meant for internal use only.