Kontakt: gli script (parte 3)

Riprendiamo il lavoro svolto nell’articolo precedente.

Abbiamo visto che per definire una variabile utente nella callback init occorre utilizzare la parola chiave declare seguita dal simbolo relativo al tipo di dato ($, @) e dal nome della variabile. Ad esempio il seguente script mostra la dichiarazione della variabile numerica test:

on init
  declare $test
end on

Una variabile può essere inizializzata ad un valore specifico utilizzando la combinazione del simbolo dei due punti e della virgola :=

on init
  declare $test
  $test := 2
end on

Si parla in tal senso di assegnazione (tramite i simboli :=) del valore 2 alla variabile $test. Nel caso della variabile di tipo testo il valore di assegnazione deve essere inserito tra i doppi apici:

on init
  declare @test
  @test := “ciao”
end on

Nel secondo articolo abbiamo utilizzato l’istruzione message e due variabili interne per vedere come funzionano le callback quando ricevono messaggi MIDI. Vediamo come utilizzare una variabile definita dall’utente per mostrare gli analoghi messaggi. Definiamo la variabile testo e assegnamo ad essa un valore iniziale. Scriviamo il seguente codice:

on init
  declare @testo
  @testo := “L’ultima nota premuta ha il seguente valore: “
end on

on note
  message (@test & $EVENT_NOTE)
end on

031 ksp

Abbiamo utilizzato sia la variabile definita dall’utente che una interna. Premete apply e provate a suonare ancora una volta il do centrale. Ecco che nella barra dei messaggi compare quanto specificato.

032 ksp

Invece di specificare nella barra dei messaggi di kontakt il numero di nota eseguito vediamo come visualizzarlo direttamente nella Performance View. A tal fine possiamo utilizzare un campo di testo definito label. Per prima cosa però dobbiamo attivare la visualizzazione della Performance View attraverso l’istruzione make_perfview nella callback init e che abbiamo già incontrato nel primo articolo.

on init
  make_perfview
end on

033 ksp

L’oggetto label appartiere agli User Interface Controls e si dichiara nel seguente modo all’interno della callback init:

declare ui_label $<nome variabile> (<width>,<height>)

All’interno della parentesi tonda sono presenti due parametri che indicano rispettivamente la larghezza e l’altezza della label espresse nelle unità di misura della griglia di kontakt (come vedremo in altri articoli potremo utilizzare anche altre unità).

Dichiariamo una label chiamata testo.

on init
  declare ui_label $testo (1,1)
  make_perfview
end on

034 ksp

Premendo apply possiamo vedere che nell’area della performance view appare l’etichetta di testo appena dichiarata.

035 ksp

Se premiamo una qualunque nota non leggeremo nulla all’interno della label in quanto non l’abbiamo collegata al messaggio di nota on. Per scrivere all’interno dell’etichetta dobbiamo utilizzare il seguente comando set_text ($<nome variabile>,<valore>). Questo comando va specificato all’interno della callback note per cui scriviamo il seguente codice:

on note
  set_text ($testo, “L’ultima nota premuta ha il seguente valore: “ & $EVENT_NOTE)
end on

036 ksp

Premete apply e di seguito suonate una qualunque nota. Come possiamo vedere la label appena creata non è grande abbastanza per mostrare tutto il testo specificato.

037 ksp

Possiamo vedere meglio la situazione uscendo dalla modalità Edit Instrument.

038 ksp

Occorre pertanto aumentare la lunghezza o l’altezza (o in alcuni casi entrambe) della label pertanto correggiamo la dichiarazione della label ad esempio come segue:

declare ui_label $testo (3,1)

039 ksp

Cliccando su apply si può vedere che l’area associata alla label si è allungata.

040 ksp

Premendo ora una nota l’intero testo associato alla label sarà ora mostrato.

041a ksp041b ksp

Possiamo anche aumentare l’altezza della label se questa è troppo lunga. Possiamo ad esempio correggere la dichiarazione in:

declare ui_label $testo (2,2)

Premete apply e suonate una nota per vedere come cambia il tutto.

042a ksp042b ksp

Aggiungiamo una seconda etichetta dedicata alla velocity pertanto occorre dichiararla. Per l’occasione cambiamo anche il nome della precedente.

on init
  declare ui_label $valore_nota (2,2)
  declare ui_label $velocity (2,2)
  make_perfview
end on

043 ksp

Premendo apply possiamo vedere come viene aggiunta una seconda etichetta nella performance view subito sulla destra dopo la prima.

044 ksp

Associamo ora l’etichetta alla nota premuta inserendo il valore contenuto nella variabile interna $EVENT_VELOCITY.

on note
  set_text ($valore_nota, “L’ultima nota premuta ha il seguente valore: “ & $EVENT_NOTE)
  set_text ($velocity, “L’ultima nota premuta ha velocity pari a: “ & $EVENT_VELOCITY)
end on

045 ksp

Premete apply e di seguito una nota. Ecco quello che vedrete.

046 ksp

Quarta parte

Annunci

Informazioni su silviorelandini

sound designer, docente di tecnologie musicali, direttore iitm
Questa voce è stata pubblicata in Campionamento, Corsi, Software, Sound Designing, Tecnologie Musicali e contrassegnata con , , , . Contrassegna il permalink.

2 risposte a Kontakt: gli script (parte 3)

  1. Pingback: Kontakt: gli script (parte 2) | tecnologiamusicale

  2. Pingback: Kontakt: gli script (parte 4) | tecnologiamusicale

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...