Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums VEGAS Pro Scripting: automatic audio ducking

  • Scripting: automatic audio ducking

    Posted by Arturas Bojarunas on June 15, 2015 at 6:12 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

    Arturas Bojarunas replied 10 years, 11 months ago 4 Members · 4 Replies
  • 4 Replies
  • Graham Bernard

    June 15, 2015 at 8:27 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

  • Edward Troxel

    June 20, 2015 at 8:25 pm

    Excalibur will do that for you.

    Edward Troxel

  • Wayne Waag

    June 20, 2015 at 10:51 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

  • Arturas Bojarunas

    June 23, 2015 at 4:50 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

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy