Keyboard Equivalent for the left/right arrows under the timeline.

Len Kaufman wrote on 2/16/2017, 12:13 PM

Are there keyboard equivalents to the left and right arrows at the bottom of the Vegas timeline? See red circles/arrows. My reason

wanting to know is that I would like to program 2 keys on my Shuttle Pro to use instead of using the mouse, as using the mouse is not very controllable in terms of speed. I like the ability to scoot quickly along the timeline with the arrows to find a specific spot without moving the cursor. Those arrows are much faster than the jog wheel, too.

Comments

Marco. wrote on 2/16/2017, 1:01 PM

This is shift + mousewheel up/down.

You can assign these commands to the Shuttle Pro by selecting "Mouse Wheel" in the "Computer Response" menu.

Len Kaufman wrote on 2/16/2017, 1:12 PM

Thank you, Marco. Many (most) of the keyboard functions show you the keyboard commands when you mouse over them. Those arrows did not.

Len Kaufman wrote on 2/16/2017, 1:57 PM

Marco, using the info you provided above, I find that using the "shift" button on my Shuttle along with the wheel on my mouse works best for me. It gives me more control than the arrows alone and I already had the shift button assigned on the shuttle. I'm posting this in the event that others find it useful.

Marco. wrote on 2/16/2017, 2:04 PM

When I tested this, I thought in a similar direction. If you use shift + mousewheel you have the control over the scroll speed while otherway you would have a fixed speed.

walter-i. wrote on 2/17/2017, 2:26 AM

Is there also a keybord equivalent to save a "snapshot to file" and use ist with shuttle pro?
I could not find it under "Tastatur anpassen" - (German version of Vegas pro 14)

Marco. wrote on 2/17/2017, 3:53 AM

I think the only ways to use saving snapshots via keyboard/shuttle is to use a script solution like Vegasaur or to use a macro software.
 

Ich denke, die einzigen Möglichkeiten, ein Snapshot per Tastatur oder über das Shuttle zu erzeugen, wäre die Verwendung eines Script-Tools wie Vegasaur oder die Nutzung einer Makro-Software.

walter-i. wrote on 2/17/2017, 7:36 AM

Thnanks a lot, Marco!

I do not own Vegasaur - but I found an old free script from JETDV, which i updated to VPro 14.
It works - but:
Unfortunatelly the script does not remember the last location in explorer and it does not atuomatically count up the filename by an extension number - which the symbol in preview-window does.

Unfortunatelly my scripting knowledge ends with updating older scripts to VPro 14 ;-)) ...........

 

Marco. wrote on 2/17/2017, 8:36 AM

Here is another script which counts up extension number and which seems to remember last location (at least within the same Vegas Pro session).
I don't know who the author of the script is, it's not mentioned inside the script and the script is taken from the collection of Calderwood.org. I only modified two lines to make it work with Vegas Pro 14. It's JS file format, so copy and paste the text and save as *.js.

// This script makes a snapshot from the timeline and adds it to mediapool 

import System.Windows.Forms; 
import ScriptPortal.Vegas.Script; 
import ScriptPortal.Vegas; 
import System.IO; 
import Microsoft.Win32; 

// The first thing this script does is save off the preview & project 
// settings that will be set later. This is so they can be restored 
// after the script is complete. 
var origPreviewRenderQuality = Vegas.Project.Preview.RenderQuality; 
var origPreviewFillSize = Vegas.Project.Preview.FullSize; 
var origFieldOrder = Vegas.Project.Video.FieldOrder; 
var origProjectDeinterlaceMethod = Vegas.Project.Video.DeinterlaceMethod; 
var currentTime = Vegas.Cursor; 


try { 
// Last snapshot file name is stored in Windows registry. 
var regKey = Registry.CurrentUser.CreateSubKey("Software\\Sonic Foundry\\Scripts"); 

var imageFileName = regKey.GetValue("Snapshot"); 
if (imageFileName == null) { // Running for the first time. 
// The current project path seems to fit. 
imageFileName = Path.GetDirectoryName(Vegas.Project.FilePath); 
imageFileName += Path.DirectorySeparatorChar; 
imageFileName += "Image001.png"; 
} else { 
// Increment number. 
var filename = Path.GetFileNameWithoutExtension(imageFileName); 
var i = filename.Length - 1; 
while ((i >= 0) && System.Char.IsDigit(filename, i)) 
i--; 
i++; 
var j = filename.Length - i; 
var imageNdex: int = parseInt(filename.Substring(i, j), 10) + 1; 
var nextname = String.Format("{0}{1:d" + j + "}", filename.Substring(0, i), imageNdex); 
imageFileName = imageFileName.Replace(filename, nextname); 
} 

// Set the preview quality and size. 
Vegas.Project.Preview.RenderQuality = VideoRenderQuality.Best; 
Vegas.Project.Preview.FullSize = true; 

// Set the field order and deinterlace method 
Vegas.Project.Video.FieldOrder = VideoFieldOrder.ProgressiveScan; 
Vegas.Project.Video.DeinterlaceMethod = VideoDeinterlaceMethod.InterpolateFields; 

// Show the script's dialog box. 
var dialog = new SaveFileDialog(); 
dialog.Filter = "PNG File (*.png)|*.png|JPEG File (*.jpg)|*.jpg"; 
dialog.CheckPathExists = true; 
dialog.AddExtension = true; 
var initialDir = Path.GetDirectoryName(imageFileName); 
if (Directory.Exists(initialDir)) { 
dialog.InitialDirectory = initialDir; 
} 
dialog.DefaultExt = Path.GetExtension(imageFileName); 
dialog.FileName = Path.GetFileNameWithoutExtension(imageFileName); 

// if the OK button was pressed... 
if (dialog.ShowDialog() == DialogResult.OK) { 
// Get the basis for output image file names 
imageFileName = Path.GetFullPath(dialog.FileName); 

// Get the output image file name extension and corresponding 
// file format. ImageFileFormat.None indicates that the 
// current prefs setting will be used but that may not 
// correspond to the specified file extension. 
var imageFileNameExt = Path.GetExtension(imageFileName); 
var imageFormat = ImageFileFormat.PNG; 
if (0 == String.Compare(imageFileNameExt, ".jpg", true)) { 
imageFormat = ImageFileFormat.JPEG; 
}

// save a snapshot. The SaveSnapshot method returns a 
// member of the RenderStatus enumeration. If the user 
// hits the escape key or quits the app, exit the loop. 
if (Vegas.SaveSnapshot(imageFileName, imageFormat, currentTime) == RenderStatus.Complete) { 
regKey.SetValue("Snapshot", imageFileName); 
Clipboard.SetDataObject(System.Drawing.Image.FromFile(imageFileName), true); 

// This is just ridiculous, all you have to do to add media to Media Pool is create a Media object! 
var media = new Media(imageFileName); 
Vegas.UpdateUI(); 
} 
} 
} catch (e) { 
MessageBox.Show(e); 
} 

// restore the project and preview settings 
Vegas.Project.Preview.RenderQuality = origPreviewRenderQuality; 
Vegas.Project.Preview.FullSize = origPreviewFillSize; 
Vegas.Project.Video.FieldOrder = origFieldOrder; 
Vegas.Project.Video.DeinterlaceMethod = origProjectDeinterlaceMethod; 
Vegas.Cursor = currentTime; 

 

walter-i. wrote on 2/17/2017, 9:38 AM

Thanks again, Marco.

That works as expected!

Only one thing: There must be a strange loop inside the code, saving the snapshot needs about 5 til 6 secounds, while the function behind the symbol in preview-window needs less than a second.

 

Marco. wrote on 2/17/2017, 9:42 AM

I think this is because the script first saves the current preview settings, then set the preview to "Best/Full", exports the snapshot and finally restore your preview setting.
This is to ensure the snapshot will be best quality. I'm not sure if it's still necessary with current Vegas Pro versions, but in earlier versions it was.

Edit:
I just see it still is, e.g. if you have your preview set to "Preview/Half", the snapshot would be only half of the resolution.

Red Prince wrote on 2/17/2017, 11:06 AM

I just see it still is, e.g. if you have your preview set to "Preview/Half", the snapshot would be only half of the resolution.

It makes sense. The snapshot is that of the preview, so it has the same resolution/quality as the preview.

He who knows does not speak; he who speaks does not know.
                    — Lao Tze in Tao Te Ching

Can you imagine the silence if everyone only said what he knows?
                    — Karel Čapek (The guy who gave us the word “robot” in R.U.R.)