Introduzione allo scripting in Kontakt, parte 2

In this 5 Part MPVHub Series, Toby Pitman explores the wonderful world of scripting in Native Instruments' Kontakt sampler. In Part 2 you'll build a note trigger FX script!  

Così l'ultima volta abbiamo guardato alcuni richiami di base, vale a dire "a init", "sulla nota" e "sul rilascio". Abbiamo visto come l'immissione del codice semplice tra questi callback stampati alcuni messaggi di farci conoscere il nostro codice è stato di lavoro.

Questa volta, stavano per costruire qualcosa! Sono sicuro che tutti i danni youve visto Heavyocitys Evolve e strumenti. Una delle cose interessanti che hanno sono nota attivato FX. Beh Im intenzione di mostrare come creare un semplice script per fare questo, come penso che sia qualcosa che gli utenti vorrebbero fare. Andiamo!


Il Piano!

Heres quali erano dopo. Si carica un po 'di effetti insert e aggirarli. È quindi mappare il parametro Bypass per ogni effetto a una nota. Quando si colpisce una nota, l'effetto corrispondente a tale nota è attiva, quando si rilascia la nota l'effetto è bypassato!

Per raggiungere questo obiettivo abbiamo prima bisogno di conoscere le dichiarazioni.


Dichiarazioni

Quindi quali sono le dichiarazioni? Ebbene questi lasciate Kontakt prendere decisioni su che cosa sta per accadere quando si fa qualcosa.

L'if ... else si trova in tutti i linguaggi di scripting. Permette al vostro script da eseguire solo se succede qualcosa di molto specifico. Consente di prendere il nostro semplice messaggio dall'ultima volta come esempio.


sulla nota

messaggio ("Stai suonando una nota")

terminerà il


Questo verrà visualizzato se si ha colpito ogni nota, si tratta di una nota richiamata, dopo tutto. Diciamo che vogliamo solo questo per mostrare sulla C3 però. La dichiarazione, se è perfetto per questo.


Se

Heres la struttura del if.


if (definire alcuni parametri qui come qualcosa è uguale a qualcosa)


{Fare qualcosa di intelligente se qualcosa è uguale a qualcosa!}


end if


Questo vuol dire piuttosto semplice! Ma che cosa è una cosa è uguale a qualcosa? Beh, potrebbe essere qualsiasi cosa. Nel nostro caso abbiamo bisogno di dire l'istruzione if su C3. Possiamo farlo con un built-in variabile denominata $ EVENT_NOTE (C'è anche $ EVENT_VELOCITY troppo!). Questo contiene il valore della nota attualmente detenuta (s) come numero di nota MIDI e può essere utilizzato solo all'interno di una nota o callback rilascio.

Quindi potremmo dire, se $ EVENT_NOTE è uguale a 60 (C3), quindi eseguire lo script!. Quindi, come possiamo scrivere che. Beh, in questo modo!

If statement


Se suonare note che arent C3, non lo vorrei vedere qualcosa come questo script è specifico per C3. Ma se lo faccio!

You're Playing C3!


E per quanto riguarda tutte le altre note? Beh, possiamo espandere questo ad un if ... else.


If ... Else

La parte else appartiene a tutto ciò che non è nella lista. Si può pensare a questo come un portiere in un club!


se (la persona è attraente)


Lasciateli in!


altro


Invia via!


end if


Solo scherzando (o sono io?), Ma che fa riassumere! Potremmo usare questa.

If...Else Statement


Le note sbagliate hanno ora un messaggio troppo!

Try again Bozo!


Che importa se si vuole un carico di diversi messaggi su note diverse? Non vogliamo continuare a scrivere un sacco di istruzioni if ​​per ciascuno di essi. Vi è tuttavia un'altra istruzione a portata di mano chiamata select ().


Selezionare

Selezionare è come una versione più versatile di if ... else. Questa volta il caso è un caso, come in un caso per caso. Heres come funziona.

Invece di dire $ EVENT_NOTE = 60 all'interno delle parentesi della EVENT_NOTE if, ora basta inserire $ all'interno delle parentesi selezionare in questo modo.


select ($ EVENT_NOTE)


End Select


Il valore del numero di nota $ EVENT_NOTE viene passato al caso.

Select

Questo farà esattamente la stessa cosa, come se il nostro primo esempio. È possibile indicare i casi che vuoi.

Select


È inoltre possibile impostare un intervallo per il caso in questo modo.

You can also set a range for the case like so.


Quando si gioca entro i limiti youll vedere questo.

You're Playing Between C4 and B4!


Naturalmente è necessario associare la nota con un comunicato in questo modo.


Quando si rilascia ogni nota.


Ora che sappiamo come funziona, dovevamo usare select () per attivare i nostri effetti.


Caricare Alcuni effetti!

Im andando a caricare i tre effetti nelle fessure dello strumento inserire effetti. Ive ha ottenuto una distorsione, un Lo-Fi gratuita e un Phaser. Im ora di andare a bypassare questi effetti.

Bypass Effects


Target Gli Effetti

Tutto ciò che può essere automatizzato in Kontakt può accedere dal KSP. Vi è un built-in funzione nel KSP chiamato set_engine_par (), che consente di modificare i parametri all'interno del motore Kontakt. Youll utilizzare questo un sacco!

Abbiamo bisogno di passare alcune informazioni nelle staffe di questa funzione. Questo è il seguente:

set_engine_par (,,,,


Consente di scomposizione:

  • Il parametro che vogliamo effettuare ad esempio $ ENGINE_PAR_DRIVE sul nostro Distortion. ( Youll trovare un elenco di tutti i parametri disponibili nel Kontakt KSP riferimento alla fine.)
  • Il valore per il parametro. Questo può essere passato da un controllo dell'interfaccia utente oppure è possibile impostare un valore.
  • Il numero del gruppo (se applicabile). Ciò corrisponde al gruppo FX. Il valore -1 se si vuole indirizzare gli effetti a livello di strumento.


    Impostare alcuni parametri

    Quindi, il parametro che voglio realizzare è bypass. Questo si rivolge usando $ ENGINE_PAR_EFFECT_BYPASS. Mettiamo che trovi

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, , , , )


    I valori di bypass sono 0 è acceso e 1 è bypassato. Voglio attivare l'effetto così male inserimento di 0 in Valore.

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, 0, , , )


    I miei slot sono a livello strumento messo così male -1 in gruppo.

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, 0, -1, , )


    La mia distorsione è nello slot 1 così male mettere 0 nello slot.

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, 0, -1, 0, )


    Il mio effetto è un effetto Insert così male mettere 1 in Generico.

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, 0, -1, 0, 1)


    Ora ho una linea finita di codice che posso cadere questo nella mia select ().


    Code Example



    Quando mi ha colpito C3 slot primo effetto (la distorsione) diventerà attivo.

    Distortion becomes active


    Ho bisogno di invertire questa in un callback rilascio su così quando prendo il mio dito del tasto l'effetto è bypassato nuovo. Lo faccio mettendo un 1 nel valore in questo modo.

    Code Example



    Ora posso impostare questa funzione per i tasti diversi con un caso diverso per ognuno. Tutto quello che dovete fare è aumentare il numero di slot.

    Code Example


    Heres il risultato di colpire D3.

    Phaser becomes active


    E quindi utilizzando al rilascio bypassare l'effetto quando rilasciate il tasto mettendo 1 in valore.

    Code example


    Posso attivare più effetti contemporaneamente anche, che è un vantaggio!

    Trigger more than one effect at the same time


    Ecco un esempio del mio script al lavoro.

    [Audio id = "12954"]


    Posso quindi impostare un titolo per il mio script come abbiamo coperto l'ultima volta.

    Script Title


    Posso quindi andare a salvare questo come predefinite per un uso successivo!

    Save script as a preset


    Successo! Prova questo da soli. Ive inclusi i frammenti di codice in un

    Quindi il gioco è fatto. Un semplice script con un risultato fresco. La prossima volta bene dare un'occhiata a un po 'di progettazione di interfacce.


    Quick Links


    Introduction To Scripting in Kontakt, Part 2 (you're reading it!)

    Introduction To Scripting in Kontakt, Part 3

    Introduction To Scripting in Kontakt, Part 4

    Introduction To Scripting in Kontakt, Part 5

For the past 20 years Toby has worked as a professional guitarist, programmer and producer. Clients include Sir Paul McCartney, George Michael, Shirley Bassey, Yusuf Islam, Giles Martin as well as the London 2012 Olympic Ceremonies. He has also worked extensively in TV, Advertising and Film. As well as composing himself he has also ... Read More

Discussion

Want to join the discussion?

Create an account or login to get started!