videoedicion.org (v8.3)

Imagen, Audio y Vídeo Digital => Edición de vídeo (general) => Vegas Pro => Mensaje iniciado por: manellopez en 28 de Junio de 2023, 18:38:51

Título: Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 28 de Junio de 2023, 18:38:51
¡Hola a todos!

Voy a crear una cuestión de esas raras que suelo hacer, pero que puede facilitarme mucho el trabajo:

Estoy buscando crear una secuencia de comandos que me facilite el trabajo al aplicar automáticamente el efecto Time Stretch al 95% o 105% en un clip de audio de voz seleccionado en Magix Vegas. Quisiera cargar esta secuencia de comandos en el menú de herramientas para acceder fácilmente a ella cuando sea necesario.

La razón detrás de esta necesidad es que, al reducir la duración de un audio de voz, el rango del 95% al 105% es el límite máximo que puedo aplicar sin distorsionar demasiado el contenido.

¿Alguien tiene alguna idea o sugerencia sobre cómo puedo lograr esto? Aprecio cualquier ayuda o consejo que puedan brindarme.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: XarquS en 28 de Junio de 2023, 20:12:31
Para usar scripts en Vegas hay que programarlos y para eso hay que saber hacerlo. Magix facilita el paquete informático para ello y lo que necesitas debe contemplarlo, si no, no se puede programar el script.

Yo he reprogramado algunos facilongos, pero en realidad no tengo ni repajolera idea.
X.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 28 de Junio de 2023, 20:40:35
Bueno, se lo he comentado a ChatGPT y me ha creado un par de códigos que no han funcionado...

mediaItem = vegas.Project.MediaPool:GetSelectedMediaItem(0)
take = mediaItem.Takes[0]
start = mediaItem.Position
length = mediaItem.Length

fx = take.FX
fxTimeStretch = nil

for i = 0, fx.Count-1 do
    if fx[i].Name == "Time Stretch" then
        fxTimeStretch = fx[i]
        break
    end
end

if fxTimeStretch == nil then
    fxTimeStretch = vegas.VideoFX:AddVideoFXByName("VEGAS Time Stretch")
end

fxTimeStretch:StartParamEdit()
fxTimeStretch:SetFloat("Rate", 95)
fxTimeStretch:EndParamEdit()

fxTimeStretch:StartPlugEdit()
fxTimeStretch:SetFloat("Start", start)
fxTimeStretch:SetFloat("Length", length)
fxTimeStretch:EndPlugEdit()

y este otro:

using System;
using Sony.Vegas;

public class Script
{
    public void Main(Vegas vegas)
    {
        TimeStretchPlugin timeStretch = GetTimeStretchPlugin(vegas);

        foreach (Track track in vegas.Project.Tracks)
        {
            foreach (TrackEvent trackEvent in track.Events)
            {
                if (trackEvent.Selected)
                {
                    timeStretch.TimeStretch(trackEvent.Start, trackEvent.Length, 0.95);
                }
            }
        }
    }

    private TimeStretchPlugin GetTimeStretchPlugin(Vegas vegas)
    {
        foreach (FxType fxType in vegas.VideoFX.Types)
        {
            if (fxType.ClassName == "TimeStretch")
            {
                return fxType.NewPlugin() as TimeStretchPlugin;
            }
        }

        return null;
    }
}
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: juanedwin en 30 de Junio de 2023, 05:49:50
hize una pequeña prueba lastima que no puede compilar bien el VB asi que lo hice en C# aunque no se casi nada de ese lenguaje algo es algo, aqui el codigo puse una pista de audio y unos audios de manera que si seleccionas un audio o los que tengas lo puedes hacer pero prueba con uno,  ha y esta al 0.95% lo puedes cambiar.. pruebalo quizas lo probe en vegas 14
using ScriptPortal.Vegas;

public class EntryPoint
{
    public void FromVegas(Vegas vegas)
    {
        foreach (Track track in vegas.Project.Tracks)
        {
            foreach (TrackEvent trackEvent in track.Events)
            {
                if (trackEvent.Selected)
                {
                    trackEvent.AdjustPlaybackRate(0.95, true);
                }
            }
        }
       
    }
}
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 04 de Julio de 2023, 01:04:51
El 95% Funciona perfecto, pero no consigo el 105%, o sea reducirlo, incluso se lo he puesto al Chatgpt y aunque parece entender el codigo, nada...
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: juanedwin en 05 de Julio de 2023, 00:53:13
deberias cambiarle creo que seria 1.05
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 05 de Julio de 2023, 07:10:58
Si, lo he probado de diferentes maneras y sigue haciendo lo mismo.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: juanedwin en 05 de Julio de 2023, 23:54:04
bueno deberia, lo he probado en vegas 14 y funciona bien, espero que otros usuarios puedan probar haber que tal, es raro. aqui dejo otro codigo, es bueno que un experto lo pueda evaluar esto.
using System;
using System.Windows.Forms;
using ScriptPortal.Vegas;

public class EntryPoint
{
    Vegas myVegas = null;
    Form dlog = new Form();
    public void FromVegas(Vegas vegas)
    {
        myVegas = vegas;
        dlog.Text = "Ajustar PlaybackRate";
        dlog.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
        dlog.StartPosition = FormStartPosition.CenterScreen;
        dlog.Width = 246;
        dlog.Height = 74;

        Button Button1;
        Button1 = new Button();
        Button1.Left =  4;
        Button1.Top =  2;
        Button1.Width = 50;
        Button1.Height = 30;
        Button1.Text = "95%";
        Button1.Click += Button1_Click;
        dlog.Controls.Add(Button1);

        Button Button2;
        Button2 = new Button();
        Button2.Left = 58;
        Button2.Top = 2;
        Button2.Width = 50;
        Button2.Height = 30;
        Button2.Text = "100%";
        Button2.Click += Button1_Click;
        dlog.Controls.Add(Button2);

        Button Button3;
        Button3 = new Button();
        Button3.Left = 166;
        Button3.Top = 2;
        Button3.Width = 60;
        Button3.Height = 30;
        Button3.Text = "Cancelar";
        Button3.Click += Button3_Click;
        dlog.Controls.Add(Button3);
        dlog.CancelButton = Button3;

        Button Button4;
        Button4 = new Button();
        Button4.Left = 112;
        Button4.Top = 2;
        Button4.Width = 50;
        Button4.Height = 30;
        Button4.Text = "105%";
        Button4.Click += Button1_Click;
        dlog.Controls.Add(Button4);

        dlog.ShowDialog(vegas.MainWindow);
    }
  void Button1_Click(Object sender, EventArgs args)
    {
        Button b = (Button)sender;
        float p ;
        if (b.Text == "95%")
            p = 0.95f;
        else if (b.Text == "105%")
            p = 1.05f;
        else
            p = 1.00f;
        foreach (Track track in myVegas.Project.Tracks)
        {
            if (track.IsAudio())
                foreach (TrackEvent trackEvent in track.Events)
                {
                    if (trackEvent.Selected)
                    {
                        trackEvent.AdjustPlaybackRate(p,true);
                    }
                }
        }
        dlog.Close();
    }
    void Button3_Click(Object sender, EventArgs args)
    {
        dlog.Close();
        dlog.Dispose();
    }

}
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: XarquS en 06 de Julio de 2023, 00:37:25
He probado este último y funciona en la 14 y la 18 pero con un factor limitante que lo hace poco práctico y es que eligiendo el 95% el clip lo recorta al final y al 105% crea un punto de bucle al final. En ambos casos debería ajustar el clip (o evento en el lenguaje de Vegas) proporcionalmente al porcentaje de duración, es decir, sin cortes ni extensiones. Si se corrigiese esta incidencia creo que quedaría útil.

Mañana lo pruebo en la 20, pero me figuro que hará lo mismo que en la 18 y adjunto el archivo ya preparado para quien quiera probarlo.

[url="https://videoedicion.org/foro/index.php?action=dlattach;attach=28947;type=preview;file"]Ajustar PlaybackRate.cs[/url] 

X.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 06 de Julio de 2023, 12:18:40
Hola, lo acabo de probar y va perfecto, la única pega es que los botos se ven pequeños y un poco recortados, pero para mí es muy útil, al editar muchos videos y de manera muy rápida.

(https://i.imgur.com/r3g1zYl.png)

Ahora solo faltará crear un atajo, que puestos a pedir, estaría bien que con una tecla de mi Shuttle Pro pudiera poner a 95% o 105%

Muchas gracias por la ayuda.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: XarquS en 06 de Julio de 2023, 15:57:34
¿Te va bien, Manel? He grabado un clip mostrando la incidencia que observo en dos sistemas con Vegas Pro 14-18-20.

https://youtu.be/Dz62iTCLn_g

Y he hecho un iconito por si os sirve para colocarlo como acceso directo:

[url="https://videoedicion.org/foro/index.php?action=dlattach;attach=28948;type=preview;file"]Ajustar PlaybackRate.zip[/url]
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 07 de Julio de 2023, 01:12:29
Sí, me va perfecto, aunque estaría muy bien poder asignar una tecla independiente para cada opción, pero me imagino que eso ya es más complicado.

¡Me va a servir de mucho, muchas gracias!
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 07 de Julio de 2023, 01:22:33
He modificado un poco el código para que sea vea mejor en mi pantalla

(https://i.imgur.com/TJ4adYX.png)
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: XarquS en 07 de Julio de 2023, 07:14:58
Cita de: manellopez en 07 de Julio de 2023, 01:12:29Sí, me va perfecto
¡¡¡Innnnssssss!! Toy traumatizado porque no sé que pasa para que no me funcione aunque no lo vaya a usar. Pero si te va bien a ti, perfecto; de eso se trata.

X.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: juanedwin en 08 de Julio de 2023, 05:37:14
XarquS tiene toda la razón, creo que tiene que haber algo más que solo un comando o sentencia o funcion, me parece que es asignarle un nuevo valor de longitud al clip, pero lo hice y si hace el trabajo pero no es preciso, de manera que este script no es funcional.... 
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 10 de Julio de 2023, 18:05:32
Bueno, aquí envio la muestra de como me funciona a mi...

Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: XarquS en 11 de Julio de 2023, 18:38:21
Magia potagia, tío. Lo dicho, si te hace el juego, rien à dire ;-)

X.
Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: manellopez en 24 de Octubre de 2023, 17:45:18
Pues a mi me va genial, lo tengo asignado a mi ShuttlePRO v2 y lo uso mucho, aunque me gustaría tener un atajo para acortar y otro para alargar...

Título: Re:Automatización de Time Stretch al 95% y 105% en clips de audio de voz
Publicado por: XarquS en 25 de Octubre de 2023, 17:14:06
Sip; sería muy práctico para tí. Es una pena que no se pueda programar con el Shuttle.

X.