Así, en el último tramo hemos hecho un control aparecen en nuestra interfaz. Bueno, en esta parte se va a conectar ese control a un parámetro y que sea útil para nosotros.
Hacer que los Stuff
Cada parámetro que se puede automatizar en Kontakt pueden ser abordadas por la KSP. Todos estos parámetros tienen una dirección, estos vienen en la forma de las variables incorporados. Youll conocer uno de estos como ayúdales todo en mayúsculas (por ejemplo, $ ENGINE_PAR_BITS).
En esta parte también se utiliza una variada selección de comandos y variables para dar a nuestro control de interfaz de un enlace a un parámetro dentro de Kontakt, le dan algo de información útil y de visualización también conservan su configuración cuando el instrumento se guarda y se carga. Este es sólo uno de control se va a ver, pero las técnicas son aplicables a todos los interminables IU crear el control en Kontakt. Vamos a empezar!
Comandos de parámetros del motor
En la parte 2, se omite un efecto mediante una nota MIDI. ¿Se va a hacer algo similar aquí, pero con un control de usuario creado. Para ello usamos set_engine_par (), que es uno de los comandos de parámetros del motor (ver KSP Manual de Referencia). Otros los útiles de este grupo incluyen get_engine_par () y get_engine_par_display ().
Estos le permiten establecer y recuperar el valor de un parámetro dentro de Kontakt, dicen que el límite para un efecto de filtro. Así que vamos a crear sólo un control utilizando lo que aprendimos en la última parte. Bueno también hacer una Vista de rendimiento.
Ive establecer la resolución de la perilla de control a 1000000, que es la máxima resolución interna de los parámetros de Kontakt. Es importante establecer este valor si desea cubrir todo el rango del valor de los parámetros.
Cargar un 4-Pole LP filtro en la ranura 1 de los efectos de inserción del grupo 1. Es posible que desee cargar una muestra en Kontakt para que pueda escuchar el efecto.
Enlazando control
Para que esto funcione, tenemos que poner nuestra set_engine_par () comando dentro de una devolución de llamada especial llamado en ui_control. Se parece a esto.
Youll aviso si golpeo Aplicar me sale un error (veo un montón de ellos: D).
Esto se debe a que tenemos que llenar los soportes con la variable del control que desea asignar a esta devolución de llamada. En nuestro caso $ myControl. Así que ahora se ve así.
Hacer esto significa que cada vez que mueva este control podemos ejecutar algún código dentro de la devolución de llamada específica a este control. Así que vamos a asignar este control a la corte del filtro en la ranura 1 de las inserciones del Grupo. Hacemos esto con set_engine_par ().
set_engine_par (
Así que primero fuera es el parámetro que queremos apuntar que es de corte. Esto se hace con $ ENGINE_PAR_CUTOFF. Esto funciona con todos los filtros. Usted encontrará una lista completa de todos los parámetros de efectos en el Manual de Referencia KSP en Variables de parámetros del motor.
set_engine_par ($ ENGINE_PAR_CUTOFF,
El siguiente es el valor. Queremos asignar el valor de nuestra perilla de control de interfaz de usuario que hemos creado con la cantidad de corte. Para enviar el valor de este mando a la corte que introducir el nombre de la variable para que el mando que es de $ myControl.
set_engine_par ($ ENGINE_PAR_CUTOFF, $ myControl,
Lo siguiente que necesitamos para dar instrucciones a la ranura donde el efecto vive. Su en el Grupo 1, que es el primer grupo por lo que tiene un índice de grupo de 0. Kontakt siempre cuenta desde 0 para los grupos, las zonas y franjas horarias.
set_engine_par ($ ENGINE_PAR_CUTOFF, $ myControl, 0,
El índice de la ranura del primer efecto es de nuevo 0.
set_engine_par ($ ENGINE_PAR_CUTOFF, $ myControl, 0, 0,
El último valor es genérico para la orientación Inserta Instrumento (0) Enviar o Encartes (1). Dado que ninguno de estos son aplicables usamos -1.
set_engine_par ($ ENGINE_PAR_CUTOFF, $ myControl, 0, 0, -1)
Ahora coloque esta entre nuestro callback ui_control sucesivamente.
Ahora, cuando nos movemos $ myControl la Corte seguirá su posición! Brilliant!
Ajuste de la pantalla de información
Por el momento, el valor se ve en la vista de rendimiento no tiene sentido en relación a la frecuencia de corte del efecto como se establece en un número entre 1-1000000. ¿Cómo podemos mostrar lo que estaban viendo en el efecto dentro de la vista de rendimiento? Podemos hacer esto usando el comando set_knob_label () en conjunto con get_engine_par_display (). Me explico.
set_knob_label () se utiliza para cambiar la visualización del valor de una perilla mucho en la misma manera set_text () se utiliza para cambiar su etiqueta. Puedo obtener el valor actual del efecto de corte con get_engine_par_display () y volver a escribir nuestro valor perillas con eso. Heres cómo.
set_knob_label () tiene dos parámetros.
set_knob_label (
La variable será el elemento de interfaz de usuario que queremos cambiar a saber $ myControl.
set_knob_label ($ myControl,
El texto será el valor de la pantalla de los parámetros de corte.
Recibimos esta get_engine_par_display utilizando (). El formato es similar a lo que hemos utilizado en set_engine_par ().
get_engine_par_disp (
Lo que para Cutoff en el Grupo 1, Slot 1 es ...
get_engine_par_disp ($ ENGINE_PAR_CUTOFF, 0, 0, -1)
Este trozo de código entra en el
Ahora, cuando mueva el control puedo obtener el valor de la frecuencia de corte dentro de la vigencia.
Así que eso es bueno! Pero tengo un problema! Cuando llegué a Aplicar (¡prueba esto!) Nuevamente o iban a cargar el script desde un preset o recargar el instrumento no veo el valor y mi control se pone a 0!
En primer lugar para ver el valor de la frecuencia de corte cuando inicializar el guión lo único que tienes que hacer es copiar mi set_knob_label () en el sobre de devolución de llamada init.
Ahora veo el valor de inicialización.
Pero mi control está siendo puesta a 0! Podemos resolver esto, aunque utilizando otro comando variable llamada make_persistent ().
Hacer Memory Settings
make_persistent (
Esto se hace mediante la adición de ...
make_persistent ($ myControl)
a Fuera de devolución de llamada init.
Mi configuración se conserva cuando me golpeó en Aplicar.
Este ajuste variable se almacena dentro de la secuencia de comandos cuando usted:
- Guardar una secuencia de comandos como un preset.
- Guarde el instrumento o Multi.
- Guardar el proyecto DAW host.
Toques finales
El paso final es añadir la unidad de valor correcto a nuestro control. Como la frecuencia de corte se muestra en Hz, que permite añadir con el control.
Hacemos esto con set_knob_unit (). Esto tiene dos parámetros.
set_knob_unit (
La variable es de $ myControl.
set_knob_unit ($ myControl,
La unidad se ajusta con una de las variables unitarios integrados, en este caso $ KNOB_UNIT_HZ.
set_knob_unit ($ myControl, $ KNOB_UNIT_HZ)
Hay algunos de estos incluso para DB, ms,%, octava y semitono. Sumamos esto a la devolución de llamada en init.
Agregando a esto la devolución de llamada en init nos diera esto.
Un brillante trabajo de control de la interfaz de usuario personalizada para nuestro corte del filtro!
Conclusión
Así que eso es todo por esta serie! Espero que tu tienes algo de esto y tal vez es despertado cierto interés en scripting en Kontakt. Hay un montón no he tratado aquí, pero es un comienzo y hay mucho más por aprender les puedo asegurar!
Hasta entonces!
Enlaces
Introducción a Guiones en Kontakt, Parte 1
Introducción a Guiones en Kontakt, Parte 2
Introducción a Guiones en Kontakt, Parte 3
Introducción a Guiones en Kontakt, Parte 4
Introducción a Guiones en Kontakt, Parte 5
Discussion
thanks for this great introduction. That's all i need for my instruments, except for placing a background picture on the performance view.
Greetz,
Patrice
This video can answer you question.
https://www.youtube.com/watch?v=oe4ul-pljEo
Scroll to about halfway thru it.
Basically, click on the wrench to see inside the patch.
Click on Instrument parameters. Select instrument tab. Then upload instrumnet wall paper. Only certain image formats work.
Good luck!
Thanks for sharing your expertise in such a clear and easily understandable way!
My quest in Kontakt scripting:
How to automate a user defined knob, button or slider.
Do you have any clues for me?
Thanks!
I can see you've covered knobs here - but I'm using a script where I declare sliders instead of knobs, and then use custom images to display my own knobs.
I can't figure out how to get these sliders to control certain engine parameters like attack, without snapping. I'm attempting to control the attack parameter the same way you would with a knob, but the problem is I'm using my custom knob, which requires that I use sliders instead.
None of the Kontakt manuals cover this type of approach, so I'm out of answers. Can you help?
I want to create a knob which could regulate the amount of unprocessed and processed signal, in other words, a parallel processing of two signals (Dry/Wet). I have some inserts (eq, comp, transient...) in different busses (kick, snare, hat...) so I would like to listen drums completely organic, with nothing of that inserts (knob at 0%) and with more of that processing (knob increase up to 100%). Maybe some way to send signal before busses and after busses to a channel which operates in parallel way? Also, I have another question: How can I assign a knob to dry or wet reverb and delay? (I tried with $ENGINE_PAR_SENDLEVEL_0 but it does not work) I have not seen the option in the KSP manual. I hope I had explained well, English is not my language. I hope hearing you soon.
Greetings!!
Want to join the discussion?
Create an account or login to get started!