FORUMS: list search recent posts

Scripting: automatic audio ducking

COW Forums : VEGAS Pro

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
Arturas Bojarunas
Scripting: automatic audio ducking
on Jun 15, 2015 at 6:12:47 am

hello every one
several years ago i used a script which did audio ducking automatically for me. all i had to do is to rename audio tracks to "voice" and "music" and run the script. now i can't find it anymore.. all that i found is vegasaur project and similar expensive stuff.

it was a pretty simple script just for free.
any advice please, where to find it?..

p.s. still using vegas pro 10 at work.

Arturas Bojarunas
PenkiTV(IPTV)
Vilnius, Lithuania


Return to posts index

Graham Bernard
Re: Scripting: automatic audio ducking
on Jun 15, 2015 at 8:27:28 am

[Arturas Bojarunas] "now i can't find it anymore.. all that i found is vegasaur project and similar expensive stuff."
If you still can't find the Freebie, can you afford $9.95? Here's VASST's Voice Assistant

Grazie

Video Content Creator and Potter
PC 7 64-bit 16gb * Intel® Core™i7-2600k Quad Core 3.40GHz * 2GB NVIDIA GEFORCE GTX 560 Ti
Cameras: Canon XF300 + PowerShot SX50HS Bridge


Return to posts index

Edward Troxel
Re: Scripting: automatic audio ducking
on Jun 20, 2015 at 8:25:28 pm

Excalibur will do that for you.

Edward Troxel


Return to posts index


Wayne Waag
Re: Scripting: automatic audio ducking
on Jun 20, 2015 at 10:51:09 pm

I think this is what you are looking for. Name of the script is Adjustvolume.js


/**
* This script will reduce the volume on a music track whenever there are clips
* on a narrative track.
* Written By: Edward Troxel - Vegas Tips, Tricks, & Scripts
* Modified By: David Arendt - multiple successive tracks now working
**/

import System;
import System.IO;
import System.Object;
import System.Windows.Forms;
import Sony.Vegas;


try {
// Set the defaults
var FadeWhen = 2; // 1 = all before/after, 2 = Centered on start/end
var FadeMS : Double = 2000; //500 = 1/2 second - Time is MilliSeconds
var LoudVol = 1; //1 = 0db, 2 = 6db, 1.5 = 3.5db, 1.75 = 4.8db
var SoftVol = 0.25; //0 = -inf, .5 = -6db, .25 = -12db


if (FadeWhen == 2) {
FadeMS = FadeMS / 2;
}

var FadeTime = new Timecode(FadeMS);



// Find the two audio tracks by name
var VoiceTrack = FindTrack("Narrative");
if (null == VoiceTrack)
throw "no selected track";

var MusicTrack = FindTrack("Music");
if (null == MusicTrack)
throw "no selected track";

// Find the volume envelope on the music track - add if needed
var VolEnv = FindEnvelope(MusicTrack, EnvelopeType.Volume);
if (null == VolEnv) {
VolEnv = new Envelope(EnvelopeType.Volume);
MusicTrack.Envelopes.Add(VolEnv);
}

// Go thru the events on the narrative track finding in/out points
var eventEnum = new Enumerator(VoiceTrack.Events);
while (!eventEnum.atEnd()) {
var evnt : TrackEvent = TrackEvent(eventEnum.item());
var evntStart : Timecode = evnt.Start;
var evntLen : Timecode = evnt.Length;

// begin modification by David Arendt
eventEnum.moveNext();
var nextEvnt : TrackEvent;
var nextEvntStart : Timecode;
var nextEvntLen : Timecode;
while (!eventEnum.atEnd())
{
nextEvnt = TrackEvent(eventEnum.item());
nextEvntStart = nextEvnt.Start;
nextEvntLen = nextEvnt.Length;
if (nextEvntStart > evntStart + evntLen + FadeTime + FadeTime)
break;
evntLen = nextEvntStart - evntStart + nextEvntLen;
eventEnum.moveNext();
}
// end modification by David Arendt

VolEnv.Points.Add(new EnvelopePoint(evntStart - FadeTime, LoudVol));
if (FadeWhen == 2) {
VolEnv.Points.Add(new EnvelopePoint(evntStart + FadeTime, SoftVol));
} else {
VolEnv.Points.Add(new EnvelopePoint(evntStart, SoftVol));
}

if (FadeWhen == 2) {
VolEnv.Points.Add(new EnvelopePoint(evntStart + evntLen - FadeTime, SoftVol));
} else {
VolEnv.Points.Add(new EnvelopePoint(evntStart + evntLen, SoftVol));
}
VolEnv.Points.Add(new EnvelopePoint(evntStart + evntLen + FadeTime, LoudVol));


}


} catch (e) {
MessageBox.Show(e);
}


function FindTrack(WhichTrack) : Track {
var trackEnum = new Enumerator(Vegas.Project.Tracks);
var PrevTrack : Track = Track(trackEnum.item());
while (!trackEnum.atEnd()) {
var track : Track = Track(trackEnum.item());
if (WhichTrack == "Current") {
if (track.Selected) {
return track;
}
}
if (WhichTrack == "Previous") {
if (track.Selected) {
return PrevTrack;
}
}
if (track.Name == WhichTrack) {
return track;
}
trackEnum.moveNext();
}
return null;
}

function FindEnvelope(track : Track, etype : EnvelopeType) : Envelope {
var envEnum : Enumerator = new Enumerator(track.Envelopes);
while (!envEnum.atEnd()) {
var env : Envelope = envEnum.item();
if (env.Type == etype) {
return env;
}
envEnum.moveNext();
}
return null;
}




Have not tried it, so I don't know if it works. Just copy and save it with Notepad with a .js extension. Good luck.

wwaag


Return to posts index

Arturas Bojarunas
Re: Scripting: automatic audio ducking
on Jun 23, 2015 at 4:50:43 am

thank you very much Wayne, this is exactly what i am looking for! i remember start of this script with it configuration.

Edward, how can i see, this is your original script. and only it working for me. i am tried excalibur, but it's not working on my version of vegas pro 10.0e (build 738, 64-bit). os is windows 8.1 enterprise 64-bit.

thank you Graham.

Arturas Bojarunas
PenkiTV(IPTV)
Vilnius, Lithuania


Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2017 CreativeCOW.net All Rights Reserved
[TOP]