Kontakt: gli script (parte 8)

Continuiamo il nostro lavoro di realizzazione dello Step Sequencer iniziato negli articoli precedenti.

Non sempre sono necessari 16 step per la realizzazione delle sequenze musicali pertanto dobbiamo pensare di dare all’utente la possibilità di ridurre il numero degli step scegliendo tra un intervallo di valori costituito da un numero minimo pari ad 1 e da un numero massimo pari a 16. A tal fine possiamo aggiungere una manopola impostata di default sul valore di 16 step e che si ricorda dell’ultimo valore inserito nel caso si utilizzi Kontakt all’interno di un progetto su un Sequencer host. Occorre quindi inserire le seguenti istruzioni nella callback init:

declare ui_knob $N_Steps(1,16,1)
$N_Steps := 16
make_persistent($N_Steps)

La callback init quindi diventa:

on init
 declare ui_table %Sequencer[16] (4, 4, 127)
 %Sequencer[0] := 60
 %Sequencer[1] := 60
 %Sequencer[2] := 60
 %Sequencer[3] := 60
 %Sequencer[4] := 60
 %Sequencer[5] := 60
 %Sequencer[6] := 60
 %Sequencer[7] := 60
 %Sequencer[8] := 60
 %Sequencer[9] := 60
 %Sequencer[10] := 60
 %Sequencer[11] := 60
 %Sequencer[12] := 60
 %Sequencer[13] := 60
 %Sequencer[14] := 60
 %Sequencer[15] := 60
 make_persistent (%Sequencer)

declare ui_menu $Durata_Step
 add_menu_item ($Durata_Step, “1/4”, $DURATION_QUARTER)
 add_menu_item ($Durata_Step, “1/8”, $DURATION_EIGHTH)
 add_menu_item ($Durata_Step, “1/16”, $DURATION_SIXTEENTH)
 add_menu_item ($Durata_Step, “1/4T”, $DURATION_QUARTER_TRIPLET)
 add_menu_item ($Durata_Step, “1/8T”, $DURATION_EIGHTH_TRIPLET)
 add_menu_item ($Durata_Step, “1/16T”, $DURATION_SIXTEENTH_TRIPLET)
$Durata_Step := $DURATION_QUARTER
make_persistent ($Durata_Step)

declare ui_knob $N_Steps(1,16,1)
 $N_Steps := 16
 make_persistent($N_Steps)

declare $contatore

set_ui_height(3)

make_perfview

end on

Cliccando su apply appare nella Performance View la manopola per regolare il numero degli Step:

068 ksp

Diamo all’utente un’ulteriore funzione per ridurre la lunghezza degli Step in modo tale da realizzare delle note staccate o intervallate da pause. A tal fine aggiungiamo un’altra manopola che consente di ridurre la durata dello step di 2, 3 e 4 volte aggiungendo anche l’opzione 1 (default) che mantiene inalterata al lunghezza dello step. Occorre pertanto inserire le seguenti istruzioni nella callback init:

declare ui_knob $Dividi(1,4,1)
$Dividi := 1
make_persistent($Dividi)

La callback init quindi diventa:

on init
 declare ui_table %Sequencer[16] (4, 4, 127)
 %Sequencer[0] := 60
 %Sequencer[1] := 60
 %Sequencer[2] := 60
 %Sequencer[3] := 60
 %Sequencer[4] := 60
 %Sequencer[5] := 60
 %Sequencer[6] := 60
 %Sequencer[7] := 60
 %Sequencer[8] := 60
 %Sequencer[9] := 60
 %Sequencer[10] := 60
 %Sequencer[11] := 60
 %Sequencer[12] := 60
 %Sequencer[13] := 60
 %Sequencer[14] := 60
 %Sequencer[15] := 60
 make_persistent (%Sequencer)

declare ui_menu $Durata_Step
 add_menu_item ($Durata_Step, “1/4”, $DURATION_QUARTER)
 add_menu_item ($Durata_Step, “1/8”, $DURATION_EIGHTH)
 add_menu_item ($Durata_Step, “1/16”, $DURATION_SIXTEENTH)
 add_menu_item ($Durata_Step, “1/4T”, $DURATION_QUARTER_TRIPLET)
 add_menu_item ($Durata_Step, “1/8T”, $DURATION_EIGHTH_TRIPLET)
 add_menu_item ($Durata_Step, “1/16T”, $DURATION_SIXTEENTH_TRIPLET)
$Durata_Step := $DURATION_QUARTER
make_persistent ($Durata_Step)

declare ui_knob $N_Steps(1,16,1)
 $N_Steps := 16
 make_persistent($N_Steps)

declare ui_knob $Dividi(1,4,1)
$Dividi := 1
make_persistent($Dividi)

declare $contatore

set_ui_height(3)

make_perfview

end on

Pertanto se il valore espresso nella manopola è pari a 1 ogni nota della sequenza avrà la lunghezza specificata nel menu; se invece è pari a 2 vengono divise della metà del valore. Cliccando su apply nella Performance View dello Script compare la seconda manopola.

069 ksp

Se volessimo spostare la manopola Divisi sulla sinistra della manopola possiamo utilizzare il comando move_control (<nome controllo>,<valore altezza>,<valore larghezza>). Nel nostro caso inseriamo la seguente istruzione dopo le tre relative alla dichiarazione della manopola Divisi:

move_control ($Dividi, 1, 1)

Cliccando su apply la manopola viene spostata nella posizione relativa alla prima riga e prima colonna.

070 ksp

La callback init pertanto è diventata:

on init
 declare ui_table %Sequencer[16] (4, 4, 127)
 %Sequencer[0] := 60
 %Sequencer[1] := 60
 %Sequencer[2] := 60
 %Sequencer[3] := 60
 %Sequencer[4] := 60
 %Sequencer[5] := 60
 %Sequencer[6] := 60
 %Sequencer[7] := 60
 %Sequencer[8] := 60
 %Sequencer[9] := 60
 %Sequencer[10] := 60
 %Sequencer[11] := 60
 %Sequencer[12] := 60
 %Sequencer[13] := 60
 %Sequencer[14] := 60
 %Sequencer[15] := 60
 make_persistent (%Sequencer)

declare ui_menu $Durata_Step
 add_menu_item ($Durata_Step, “1/4”, $DURATION_QUARTER)
 add_menu_item ($Durata_Step, “1/8”, $DURATION_EIGHTH)
 add_menu_item ($Durata_Step, “1/16”, $DURATION_SIXTEENTH)
 add_menu_item ($Durata_Step, “1/4T”, $DURATION_QUARTER_TRIPLET)
 add_menu_item ($Durata_Step, “1/8T”, $DURATION_EIGHTH_TRIPLET)
 add_menu_item ($Durata_Step, “1/16T”, $DURATION_SIXTEENTH_TRIPLET)
$Durata_Step := $DURATION_QUARTER
make_persistent ($Durata_Step)

declare ui_knob $N_Steps(1,16,1)
 $N_Steps := 16
 make_persistent($N_Steps)

declare ui_knob $Dividi(1,4,1)
$Dividi := 1
make_persistent($Dividi)
move_control ($Dividi, 1, 1)

declare $contatore

set_ui_height(3)

make_perfview

end on

Se volessimo muovere anche la manopola N_Steps collocandola sotto la manopola Dividi, considerando che una manopola occupa due righe dobbiamo considerare per la manopola N_Steps la posizione colonna 1 e riga 3 (1,3) pertanto l’istruzione corretta da inserire è la seguente:

move_control ($N_Steps, 1, 3)

071 ksp

Aggiorniamo la callback init:

on init
 declare ui_table %Sequencer[16] (4, 4, 127)
 %Sequencer[0] := 60
 %Sequencer[1] := 60
 %Sequencer[2] := 60
 %Sequencer[3] := 60
 %Sequencer[4] := 60
 %Sequencer[5] := 60
 %Sequencer[6] := 60
 %Sequencer[7] := 60
 %Sequencer[8] := 60
 %Sequencer[9] := 60
 %Sequencer[10] := 60
 %Sequencer[11] := 60
 %Sequencer[12] := 60
 %Sequencer[13] := 60
 %Sequencer[14] := 60
 %Sequencer[15] := 60
 make_persistent (%Sequencer)

declare ui_menu $Durata_Step
 add_menu_item ($Durata_Step, “1/4”, $DURATION_QUARTER)
 add_menu_item ($Durata_Step, “1/8”, $DURATION_EIGHTH)
 add_menu_item ($Durata_Step, “1/16”, $DURATION_SIXTEENTH)
 add_menu_item ($Durata_Step, “1/4T”, $DURATION_QUARTER_TRIPLET)
 add_menu_item ($Durata_Step, “1/8T”, $DURATION_EIGHTH_TRIPLET)
 add_menu_item ($Durata_Step, “1/16T”, $DURATION_SIXTEENTH_TRIPLET)
$Durata_Step := $DURATION_QUARTER
make_persistent ($Durata_Step)

declare ui_knob $N_Steps(1,16,1)
 $N_Steps := 16
 make_persistent($N_Steps)
move_control ($N_Steps, 1, 3)

declare ui_knob $Dividi(1,4,1)
$Dividi := 1
make_persistent($Dividi)
move_control ($Dividi, 1, 1)

declare $contatore

set_ui_height(3)

make_perfview

end on

 parte nove

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.

Una risposta a Kontakt: gli script (parte 8)

  1. Pingback: Kontakt: gli script (parte 7) | 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...