Hallo zusammen.
Per Script möchte ich den Surround Kanal bei einem Track auf 'nur LFE' setzen.
Ich bekomme das einfach nicht hin. Hat jemand eine Lösung?
Bisher funktioniert folgendes:
Vorher:
Script 'Stereo2Surround':
/** * Program: Stereo2Surround.cs * Description: This script will set up and change Stereo to Surround * Select one Audio track * * Revision Date: Sep 03, 2018 * Author: Werner **/ using System; using System.Collections.Generic; using System.Windows.Forms; using ScriptPortal.Vegas; public class EntryPoint { Vegas myVegas = null; List<Track> SurrAudioTrk = new List<Track>(); private static string[] trkNames = { "frontLeft", "frontRight", "center", "LFE", "rearLeft", "rearRight" }; public void FromVegas(Vegas vegas) { myVegas = vegas; // Collect list of selected audio tracks foreach (Track selTrk in myVegas.Project.Tracks) { if (selTrk.MediaType == MediaType.Audio && selTrk.Selected) SurrAudioTrk.Add(selTrk); } // leave if no or more then one audio track selected if (SurrAudioTrk.Count != 1) { MessageBox.Show("Please select ONE AUDIO Track."); return; } // set up surround bus if not set if (AudioBusMode.Stereo == myVegas.Project.Audio.MasterBusMode) myVegas.Project.Audio.MasterBusMode = AudioBusMode.Surround; // rename first audio track to 'frontLeft' SurrAudioTrk[0].Name = trkNames[0]; Track source = SurrAudioTrk[0]; SurrAudioTrk.Clear(); // https://forums.creativecow.net/docs/forums/post.php forumid=24&postid=942170&univpostid=942170&pview=t // Thank you Edward Troxel // Create 5 more audio tracks and copy events from source int trackIdx = source.Index; for (int i = trackIdx + 1, namesIdx = 1; i < trackIdx + 6; i++, namesIdx++) { Track dest = new AudioTrack(i, trkNames[namesIdx]); myVegas.Project.Tracks.Add(dest); // Copy all events into dest tracks foreach (TrackEvent evnt in source.Events) { TrackEvent newEvent = evnt.Copy(dest, evnt.Start); AudioEvent audioEvent = (AudioEvent)newEvent; // Set disable left channel if (namesIdx == 1 || namesIdx == 5) audioEvent.Channels = ChannelRemapping.DisableLeft; // Set disable right channel if (namesIdx == 4) audioEvent.Channels = ChannelRemapping.DisableRight; // CENTER and LFE if (namesIdx == 2 || namesIdx == 3) audioEvent.Channels = ChannelRemapping.Mono; } } // Set disable right channel at source track events foreach (TrackEvent evnt in source.Events) { AudioEvent audioEvent = (AudioEvent)evnt; audioEvent.Channels = ChannelRemapping.DisableRight; } // find LFE audio track and set surround to 'only LFE' foreach (Track lfe in myVegas.Project.Tracks) { if (lfe.Name == trkNames[3]) { lfe.Selected = true; AudioTrack tmpLFE = new AudioTrack(lfe.Index); // what can i do?????? break; } } } }
Nachher: