Usando IA para progamar scripts de Reaper

jmolas
#1 por jmolas el 18/09/2024
Llevo varios días intentando crear un script para Reaper que me permita localizar los 5 picos más altos de una toma, identificarlos con una marca y en el título de la marca agregar el valor en dB de ese pico. Parto de la base que no tengo NPI de programación... por eso decidí probar la IA.

A la AI le he sugerido el script de SWS SWS: Move cursor to item peak sample

Me da la impresión que la IA no tiene bien integrado el lenguaje de Reaper y va probando conceptos que le suenan que podría funcionar pero que, en realidad, no corresponden al lenguaje de Reaper.

Sistemáticamente me devuelve este error: fivepeaks.lua:11: attempt to call a nil value (field 'GetMediaItemSource')

Os dejo el archivo.

¿Alguna idea de por donde tirar?
Archivos adjuntos ( para descargar)
fivepeaks.lua
Subir
OFERTAS Ver todas
  • -7%
    Modal Argon8 (B-Stock)
    559 €
    Ver oferta
  • -50%
    NI Komplete 15 Collector's Edition
    885 €
    Ver oferta
  • -20%
    Technics SL-1200M7 Lamborghini
    1.199 €
    Ver oferta
BroderYon
#2 por BroderYon el 18/09/2024
Pues nada. He intentado tirar yo también a ver si conseguía algo. Lo más cercano a lo deseado a lo que llegué fue que me colocara 5 take markers, pero la intención era que lo hiciera en los peaks más altos y los puso todos en el mismo sitio, y eran zonas de casi silencio. Invocaba al mismo error proveniente de "GetMediaItemSource", así que se ve se lía con eso. Intenté un par de intentos más tras al menos por fin dar con un código que no daba error (el script sin error fue el quito o sexto intento), pero ya por último directamente me peta el Reaper, así que desistí.

Es una pena que el comando SWS no te deje hacerlo de forma continuada por varios peaks, porque se podría hacer una macro para que con cada búsqueda te colocase una take marker.
Subir
1
jmolas
#3 por jmolas el 18/09/2024
#2 Exacto!! Es una pena porque muchas veces cuando estás revisando una mezcla y de repente se disparan unos cuantos picos te tienes que poner a localizar la pista. Vale, eso está asumido... pero tienes que ponerte a revisar todo el track para localizar el pico. Con esa función sería cojonudo.

He intentado abrir el script de SWS para ver el código y enseñárselo a la IA como referencia pero no he podido extraerlo diría que está compilado dentro del exe.

Seguiremos tirando del hilo. Si encuentro solución, comparto.

Saludos!
Subir
1
jmolas
#4 por jmolas el 19/10/2024
Bueno... no voy a cantar Eureka... pero casi :-)

Os dejo los dos scripts que después de batallar durante un par de horas con la IA. No hacen el 100% de lo que esperaba pero es un muy buen punto de partida.

Qué es lo que hacen;

  1. Crear un script que me localizara los 5 picos más altos de una toma.
  2. Me los señalara agregando una marca.
  3. A partir de esa marca, creara dos puntos a la izquierda de la marca y otros dos a la derecha de la marca.
  4. Que bajara 6 dB el segmento centra de esos cuatro puntos.

Me hubiera gustado que tomando como referencia el valor del pico le restara -6dB en lugar de bajar -6dB directamente... pero no ha habido tu-tía. Pero bueno, por lo menos me crea esas marcas y esos puntos y visualmente es fácil acudir a esos segmentos para acabar de pulirlos.

La siguiente vuelta de tuerca es que lo hiciera sobre la envolvente de volumen de la pista... pero se hacía otro lío. Al final he encontrado un script de Yannick_Move volume envelope points from active takes of selected items into volume envelope (pre-fx) from parent tracks.lua y le he dicho que lo agregué al final del primer script.

Total que, una vez creada la envolvente de volumen de toma ejecuta "mover esos puntos a la envolvente de volumen pre-fx". No es lo que quería porque quería que lo aplicara a la envolvente de volumen en lugar de la envolvente pre-fx... pero me sirve porque puedo copiar manualmente los puntos de Volumen pre-fx para pegarlos en la envolvente de volumen.

Aquí os dejo los dos .lua: el de toma y el de pista.

Si consigo avanzar iré actualizando este post.

Saludos
Archivos adjuntos ( para descargar)
5 points take envelope.lua
5 points track envelope.lua
Subir
jmolas
#5 por jmolas el 19/10/2024
Dimito!

Lo había probado en un primer track con un mezcla y ha funcionado... ahora lo he probado en una sesión y se ha vuelto loco.

No hagáis caso al post anterior.
Subir
jmolas
#6 por jmolas el 20/10/2024
Nueva corrección... al final lo he simplificado todo.

Antes de nada os comparto el motivo de esta paranoia.

A veces pierdo un buen rato intentando localizar qué elemento hace que se dispare un pico de la mezcla. Veo que hay un "picazo" cuando exporto y, de repente, ¡pam! el pico se pasa 2 o 3 dB de la media.

Ahora he adoptado un método: cuando ya casi tengo lista la mezcla renderizo el mixbus en el mismo proyecto (Renderizar a pistas congeladas estéreo - Mutear originales) para detectar visualmente si me he pasado mucho en algún punto.

Sobre esa pista renderizada corro este script para que me localice esos posibles puntos. Acto seguido el script marca esos puntos y a partir de aquí ya puedo investigar qué elemento es el elemento que se pasa: normalmente suele ser el bajo, una caja, un bombo pasado de vueltas o una golpe de aire en una vocal.


Vamos al script de la IA:
- si la envolvente de toma no está activa, la activa
- sobre ese item de audio localiza el pico más alto
- agrega una marca en ese pico

- inserta dos puntos a izquierda y derecha teniendo el centro la marca que ha creado. De este modo, tenemos un segmento central con el que atenuaremos la señal.
  • 1 ms a la izquierda
  • 1 ms más a la izquierda
  • 10 ms a la derecha
  • 10 ms más a la derecha

- reduce ese segmento central a -6dB.
- ejecutar el script tantas veces considere necesario.

Esa reducción en 6dB es necesaria porque, si hay varios puntos disparados, cuando vuelva a correr el script los puntos atenuados  ya no lo considerará porque, precisamente, esos puntos ya no serán los más altos.

Acto seguido, gracias a las marcas revisaré por encima de las pistas. Y veré si la vertical de la marca cae sobre algún fragmento relevante de esas pistas.

Ahora -y esto es opcional- puedo correr esta acción personalizada que me moverá todos los puntos de esa envolvente de toma hasta la envolvente de volumen de pista.

El problema es que no sabe hacer copy & paste de la envolvente de toma a la envolvente de pista. Por eso tengo que hacerlo en dos pasos. Primero al script de Yannick (mover envolvente de toma a envolvente de volumen prefx de pista) y, luego, cortar pegar de esa envolvente a la de volumen.

Con esa envolvente iré a las pistas que provoquen los picos y acabaré de ajustarlos. Esta es la acción:

5e8c39483316cceacc5ed22a59edd-4922136.png
En general toda esta historia me aporta un valor relativo y aún tengo que interiorizarla para que forme parte habitual de mi flujo de trabajo. Lo más interesante ha sido hacerlo con la IA.

Ha costado lo suyo pero ha valido la pena porque no sé absolutamente nada de programación.

Os dejo el script, la acción y el video de ejemplo que he hecho




Pues nada... por si sirve a alguien :-)
[ Imagen no disponible ]
Archivos adjuntos ( para descargar)
5 points take envelope.lua
Move take enveolpe to volume envelope.ReaperKeyMap
Subir
2
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo