Kontakt custom UI in pratica: Purgatory Creek’s Mark V

Written by Antonio Antetomaso on . Posted in Software, Tutorial

Popolo di ACM, ben ritrovati. Spero di aver solleticato un po’ le vostre papille con il titolo, anche se l’obiettivo di questo articolo non è solo quello di parlare dell’ottimo prodotto in oggetto, ma anche e soprattutto descrivervi la collaborazione tra il suo autore e il sottoscritto per realizzare una versione nuova e migliorata.

Di Antonio Antetomaso

FIGURA1

Iniziamo con le presentazioni: signori, permettetemi di presentarvi PurgatoryCreek Mark V, una libreria per Kontakt dedicata all’ultimo nonché più celebre dei prodotti creati da Harold Rhodes, il Mark V.

Il nome non dovrebbe esservi nuovo, basta ascoltare tutti i dischi dell’elektric band di Chick Corea per avere un’idea di cosa sto parlando e del sound che questo gioiellino è capace di tirare fuori. Orbene, tale William Bush è uno dei fortunati possessori di uno splendido esemplare di Mark V (beato lui) e, crepi l’avariza, ha deciso di realizzarne un campionamento per Kontakt nonchè, icing on the cake, di renderlo FREE!! Al che uno potrebbe pensare:”si vabbè un altro plugin di Rhodes, per giunta gratis….che vuoi che ne esca fuori?”

Ma si sbaglierebbe di grosso!! Il prodotto offre un livello di realismo ed una suonabilitá incredibili, con i suoi 20 livelli di dinamica!! Sissignore, avete capito bene, sono proprio venti (Neo Soul Keys ne offre massimo 6, per dire…). Senza contare la leggerezza, Kontakt mostra 65MB di RAM impegnati a libreria caricata!!

Suono poderoso e convincente, soprattutto nelle note alte dove in genere le librerie di Rhodes si perdono un po’tutte, bark pronunciato, noises dello strumento originale, pedal resonance ed effetti, il tutto miscelato per conferire un livello di realismo degno di nota senza dare fastidio.

E, scusate se poco, c’è anche la curva di dinamica regolabile, vale la pena dare un’occhiata, a patto di avere Kontakt completo….

FIGURA2

Il prodotto originale si presenta (o meglio si presentava…ihih), come la figura di sopra: un’interfaccia organizzata in due tabs, quello di sinistra offerente la curva di dinamica e quattro controlli rotativi per regolarla, quella di destra offerente un equalizzatore, un riverbero, un phaser e un vibrato. Di phaser e vibrato è possibile regolare intensità e rate, mentre il riverbero è possibile solo abilitarlo o inibirlo (niente paura, è dosato al punto giusto). Dell’equalizzatore è possibile regolare bassi, medi e alti. Infine un potenziometro per dosare i noises relativi al rilascio del tasto.

Semplice ma funzionale, ma la vera potenza è nel sound, credete a me. Tanto che dopo averci fatto un giretto, anziché effettuare una donazione all’autore (il prodotto è un “donationware”) ho deciso di lavorare all’interfaccia grafica per renderla più funzionale e soprattutto maggiormente accattivante. In fondo, anche l’occhio vuole la sua parte, non trovate?

Il tutto è stato possibile perché l’autore non aveva protetto gli script originali….open source, appunto!

Ho mandato una preview a William Bush in persona ed egli ne è rimasto entusiasta, cosa che mi ha molto incoraggiato ad andare avanti con altre idee, fino al risultato finale che vi mostro:

FIGURA3

FIGURA4

FIGURA5

Visto che abbiamo parlato di scripting Kontakt in una scorsa mini serie di 5 puntate (che vi incoraggio a leggere se non l’avete fatto), perché non raccontarvi i dettagli del mio contributo? Anche perché si parla di interfacce Kontakt custom nel dettaglio, argomento non troppo ben documentato nel KSP (manuale dello sviluppatore di Kontakt) e sul quale mi sono stati chiesti chiarimenti.

Partiamo allora, ma prima un rapido excursus delle novità di questa nuova versione, novitá che riguardano prettamente l’interfaccia grafica della libreria; i campioni sono ovviamente rimasti inalterati.

  1. Organizzazione dei controlli in tre sezioni: “velocity vurve”, “main”, “effects”
  2. Aggiunta di un effetto overdrive;
  3. Interfaccia grafica rinnovata: modificato lo skin della libreria con uno ridisegnato che ricorda la grafica dello strumento originale, aggiunti knobs e interruttori con grafica custom;
  4. Creati preset per due Amp sim di mercato: Overloud VKFX e IKMULTIMEDIA Amplitube Fender.

Presentati i punti cardine oggetto dell’intervento effettuato del sottoscritto, quest’ultimo vorrebbe descriverveli nel dettaglio per farvi meglio comprendere soprattutto i retroscena e i piccoli trucchetti da adottare quando si programma un’interfaccia Kontakt personalizzata.

Partiamo allora dalla cosa più semplice, l’organizzazione dell’interfaccia in tre sezioni: ricordando il pannello scarno di controlli di un vero Mark V e per separare logicamente effetti da equalizzazione, i primi sono stati spostati in una terza sezione denominata “Effects” appunto. Questo ha comportato i seguenti passi:

1) Creazione del nuovo tab: facile facile, basta cliccare sul simbolo di edit della libreria (chiave inglese in alto a sinistra) e rinominare il terzo tab come “Effects” per attivarlo e renderlo pronto ad ospitare le righe di codice necessarie al suo funzionamento;

FIGURA6

2) Creata la nuova sezione sono state individuate le righe di codice relative ai controlli rotativi degli effetti e spostate nella nuova sezione “on init – end on”, avendo cura di commentare quelle originali inizialmente presenti nella sezione principale. Il codice di ogni controllo è costituito dalle righe che:

– dichiarano il componente (es. declare ui_slider $VibOnOff(0,1))

– ne stabiliscono la posizione sull’interfaccia grafica (sono stati scelti i pixel come unità di misura rispetto alla griglia, per maggior libertà di manovra): (es. move_control_px($VibOnOff,10,60))

– lo legano ad un particolare parametro di uno degli effetti abilitati per la libreria in questione (es. $VibOnOff := _get_engine_par($ENGINE_PAR_INTMOD_BYPASS,1,1,0))

– ne catturano gli eventi di rotazione e li associano alla variazione dell’effetto ad esso associato: (es. on ui_control ($VibOnOff) … end on)

Ripeto, se avete letto il tutorial sullo scripting Kontakt non dovrebbe risultarvi nulla di nuovo.

Nella medesima sezione effetti è stato aggiunto un effetto di overdrive molto molto leggero, effetto questo che, a mio personale gusto, con il Rhodes si sposa benissimo. Per fare ciò è stato abilitato l’effetto nella sezione “effetti in insert”, ne sono stati regolati i parametri ed è stato creato un altro interruttore con righe di codice paragonabili a quelle di sopra:

FIGURA7

E veniamo alla parte divertente, l’interfaccia grafica. Da che cominciamo? Beh, direi dallo skin:

FIGURA8

Esso è stato disegnato con Photoshop partendo dalla grafica originale del Mark V e considerando le dimensioni di 320×232 pixel (vi ricordo che Kontakt ammette variazioni solo per la dimensione verticale).

Primo consiglio: i formati ammessi sono il TGA e il PNG da manuale, ma di fatto per lo skin di sottofondo è considerato solo il PNG trasparente. Ragion per cui l’immagine è stata esportata in questo formato. Per caricarla è sufficiente editare la libreria, cliccare su “Instrument options” e selezionare il file dell’immagine di background, come mostra la figura di seguito:

FIGURA9

Facile no?

Veniamo alla grafica dei controlli rotativi e dei pulsanti, la parte più complessa. Iniziamo con il dire che se volete un bel controllo rotativo stile vintage non dovete ricorrere alle variabili Kontakt di tipo ui_knob. Per essi non è possibile infatti cambiare l’immagine, non chiedetemi perchè ma è così. Dovete ricorrere ai componenti di tipo ui_slider. Niente paura, il comportamento è lo stesso, cambiano i parametri da passare quando si inizializza l’oggetto (manca il valore di default). Allocato il componente e posizionato all’interno dell’area associata all’interfaccia grafica, non resta che cambiare l’immagine con il comando

set_control_par_str(get_ui_id($<VARIABILE_ASSOCIATA_AL COMPONENTE),$CONTROL_PAR_PICTURE,”<NOME_DEL_FILE_PNG>”)

avendo ovviamente cura di specificare la variabile giusta e il nome del file senza estensione.

Assegnata l’immagine non abbiamo finito, ci tocca modificare il file .txt creato automaticamente da Kontakt (ricordate?), toccando solo due voci (non serve altro):

Has Alpha Channel: yes 

Number of Animations: <NUMERO DI FRAMES DELL’IMMAGINE>

Modificato il file come sopra, cliccando ancora su “Apply” nell’environment Kontakt vedremo l’immagine caricata correttamente e pronta a rispondere alle nostre sollecitazioni.

E veniamo ai “trucchi del mestiere”: concettualmente cambiare immagine ad un ui_slider è semplice, il difficile è “disegnare” l’immagine oggetto dei nostri desideri. Eh già perchè se lo slider va da 1 a 100, tocca disegnare una immagine con 100 fotogrammi, uno per ogni posizione assunta dal nostro controllo.

I formati in cui salvare l’immagine stavolta sono due: TGA e PNG trasparente. Io vi consiglio il secondo, la resa grafica è nettamente migliore e nel primo non si ha la trasparenza.

Aspetta un secondo….mi tocca disegnare 100 fotogrammi? E quando arrivo?

Secondo consiglio: fatevi aiutare da un simpatico programma che effettua il rendering per voi, che è gratuito, che si chiama “Knobman” e che trovate “gratis et amore Dei” qui.

FIGURA10

Il programma è multipiattaforma ed esiste una versione Web se non volete installarvi niente. Sullo stesso sito trovate inoltre una vasta libreria di icone “pronte all’uso”. In pratica, mediante tale programma potete creare un’icona lavorando per layers, fino ad arrivare al dettaglio desiderato. Terminato il disegno, si imposta la curva di animazione e il numero di frames desiderati ed il gioco è fatto: basta esportare il progetto ed il programma crea una immagine PNG contenente i frames che ci occorrono, pronta per essere caricata in Kontakt (ma anche in Reaktor).

Il tool non è proprio immediato da usare, ma semplifica di molto il lavoro: basta prenderci un minimo di confidenza facendosi aiutare dalla guida e dagli esempi. Sul forum di KVR si trovano inoltre parecchie discussioni e tanti tips’n tricks per risolvere i casi più strani. C’è veramente da sbizzarrirsi.

E l’immagine dove la piazzo? Anche qui ci sono diverse possibilità:

  1. Nella cartella “Documents/Native Instruments/Kontakt 5/pictures” (stesso percorso a partire da “Documenti” in ambiente Windows)
  2. In un resource container, cosa che vi consiglio caldamente, specie se volete distribuire la vostra libreria senza portarvi appresso trecento file.

Un resource container non è altro che un archivio codificato in formato proprietario “Native instruments” che contiene tutte le immagini e i metadati ad esse associati (i files .txt). Per crearlo la procedura è la seguente:

  1. Dalla sezione “Instrument options” accessibile cliccando sull’icona a forma di chiave inglese, cliccare su “Create” nella parte relativa al Resource container;
  2. Kontakt crea un file .nkr e tre cartelle, una delle quali è chiamata “pictures” e da questo momento si aspetta di caricare le risorse da esse;
  3. Spostare le immagini e i files .txt associati nella cartella “pictures”;
  4. Ripetere il punto 1).

Et voilà, possiamo cancellare le cartelle appena create e le immagini, verrà caricato tutto dal file .nkr e, ovviamente, tale file potrà essere riutilizzato per altri ambiti (ricordatevi di salvare il vostro progetto, naturalmente, onde evitare inutili imprecazioni).

Non so se avete capito cosa significa questo: vi piace la grafica di una libreria di mercato? Volete riusarla in un vostro lavoro? Basta localizzare il file .nkr e caricarlo nella vostra libreria come spiegato. Niente male no?

Passiamo ai componenti ui_switch (o ui_button), che sono i più rognosi da gestire dal punto di vista della grafica, per i seguenti motivi:

  1. La resa grafica è meno pulita rispetto ai componenti ui_slider;
  2. Tocca disegnare sempre 6 frames perchè Kontakt per tali componenti si aspetta di avere una immagine per ciascuno dei seguenti “stati” del componente:

– frame 1: off

– frame 2: on

– frame 3: off, mouse down

– frame 4: on, mouse down

– frame 5: off, mouse over

– frame 6: on, mouse over

La rottura di scatole è che putroppo con Knobman tocca faticare un po’ di più perchè il programma gestirebbe nativamente una animazione in 6 frames dalla posizione di off alla posizione di on. A noi occorrono 6 frames alternati, off-on, off-on, off-on no?

Le soluzioni sono due:

  1. Si disegnano comunque 2 frames e poi si modifica l’immagine con Photoshop;
  2. Si lavora sulle curve di animazione di Knobman per creare un’animazione personalizzata;

E qui posso aiutarvi io, ecco pronto un bel template Knobman per l’occorrenza, gentilmente concesso da un utente sul forum di KVR, venuto in mio aiuto prima che perdessi l’uso della ragione.

Per il Mark V in realtà ho adottato un altro approccio, utilizzare uno slider orizzontale con valori da 0 a 1. La cosa ha funzionato abbastanza bene, anche perchè l’immagine scelta per abilitare ciascun effetto del Rhodes si prestava bene allo scopo. Se intendete usare invece un pulsante a scorrimento verticale (ad esempio il classico interruttore vintage con levetta metallica argentata) il giochetto non funziona più.

Prima di lasciarvi, vorrei farvi un altro dono: ho provato il Mark V così modificato con due amp sim esterni che a mio avviso rappresentano il top tra i prodotti di mercato a tema:

FIGURA11

FIGURA12

La resa è stata impressionante, specie con il secondo prodotto, utilizzando un amplificatore di tipo “Fender Twin Reverb”. Vi fornisco pertanto i due presets da me creati per i due prodotti, vogliate gradirli…

Vi consiglio di usare l’amp sim come effetto in “Send” e non in “Insert” e dosare la quantità di segnale ad esso inviato. Non ve ne pentirete, parola mia.

Bene amici, sperando che vorrete inviarmi i vostri commenti specie sulla libreria e sperando che abbiate gradito l’iniziativa vi rimando al prossimo appuntamento.

P.S. Se vi piace il prodotto, cliccate su “Donate” ed effettuate una donazione a William Bush (e sottolineo “solo a lui” 😀 ). Grazie a queste donazioni potete sostenere ottimi prodotti come quello in oggetto e promuovere miglioramenti aggiuntivi.

A presto.

 

 

Tags: ,

Trackback from your site.

Comments (14)

  • Davide

    |

    Ciao,
    non sai quanto mi sei stato d’aiuto!!! Grazieeeeee infinite per questo fantastico tutorial!!!!!
    Sei il n°1!!!
    Grande!

    Reply

    • Antonio Antetomaso

      |

      Ciao Davide, non sai quanto mi rendono felice le tue parole. Grazie degli apprezzamenti di cuore e un saluto.

      Reply

  • massimo

    |

    Ciao Davide, provando a scaricare (entrambi, rar e zip) macosx dice che gli archivi sono corrotti o incopleti !
    ciao

    Reply

  • massimo

    |

    no, scusa :)
    “ciao Antonio”

    Reply

    • Antonio Antetomaso

      |

      Ho provato ora, non ho problemi nell’estrazione. Che programma usi per la decompressione? Se sei su OSx prova KEKA, altrimenti 7ZIP.
      Fammi sapere.

      Reply

      • Antonio Antetomaso

        |

        No, ferma le macchine hai ragione. Credevo di averlo estratto, invece non avevo notato il messaggio di errore. Vero, scrivo subito all’autore, grazie mille della segnalazione.

        Un saluto.

        Reply

        • Antonio Antetomaso

          |

          Ho fatto qualche altra prova anche assieme a WIlliam Bush. Non è un problema di archivio corrotto, ma sembra qualcosa legato al web server che ad un certo punto tronca la connessione ed interrompe il download. Utilizzando un download manager invece sono riuscito a scaricare entrambi gli archivi e ad estrarli. Ho usato DownThemAll, estensione di Firefox. L’archivio ZIP è grosso 1.28 GB. Prova così, vedrai che non avrai problemi. A presto.

          Reply

  • Roberto

    |

    Complimenti per l’articolo! Corro a leggere subito anche l’altro citato, perchè non seguo abitualmente il magazine.

    Reply

      • Antonio Antetomaso

        |

        Ahi ahi ahi….per punizione ti leggi d’un fiato tutti gli articoli del 2013!!

        😀

        Grazie degli apprezzamenti.

        Reply

  • Sergio Cimmino -

    |

    Buongiorno, ho scoperto da pochissimo questo interessante web magazine e ho potuto constatare la qualità degli articoli. Complimenti.
    Purtroppo non sono un esperto e alcuni passaggi credo siano stati dati per scontato. Se, quindi, il sito è rivolto a professionisti o ad “iniziati” a questo lavoro, mi scuso se ho disturbato.
    Io avrei provato a scaricare la libreria formato zip del Rhodes V e ho Kontact 5, ma ho difficoltà ad aggiungere il plugin alla libreria. Per caso un breve elenco dei passaggi … per neofiti … sarebbe possibile averlo? Comunque grazie per l’attenzione.

    Reply

    • Enrico Cosimi

      |

      che daw stai usando? non riesci a vedere kontakt dal “programma principale” che usi? mac o pc?

      Reply

    • Attilio De Simone

      |

      Ciao, cosa intendi per “ho difficoltà ad aggiungere il plugin alla,libreria”? Il messaggio non è chiaro, se intemdi che non riesci a visualizzare la libreria del rhodes all’interno del Kontakt o se non riesci ad attivare il Kontakt all’interno della tua daw. Per visualizzare la libreria del Rhodes devi innanzitutto scompattare il file che hai scaricato, poi lamciare il Kontakt e dal browser di ricerca andare a selezionare la directory in cui hai scompattato il file. Una lettura delle prime pagine del manuale del Kontakt ti potrà chiarire la cosa.

      Reply

    • Antonio Antetomaso

      |

      Ciao Sergio,

      dunque, in realtà non è una “library” che va aggiunta mediante l’utilità “Add library” di Kontatk, ma è semplicemente un preset nel formato .nki. Quindi, delle due soluzioni:

      1) Apri la cartella della libreria mediante Explorer di Windows o Finder di MAC, individui il file “PurgatoryCreek Mark V 20v.nki” e lo trascini con il mouse letteralmente sulla scherma principale di Kontakt

      2) Vai sul tab “Database” nella sezione di sinistra di Kontakt, clicchi su “DB options”, clicchi su “Add” e aggiungi il percorso dove è presente la libreria, cliccando poi su Update. Una volta che Kontakt ha aggiornato i suoi riferimenti, se scrivi “Purgatory” nell’area di testo della sezione “Database” vedrai comparire “PurgatoryCreek Mark V 20v”. Non ti resta che fare doppio click sul nome e caricherai la libreria nella sezione di destra.

      Dovrebbe essere facile facile.
      Fammi sapere.

      Reply

Leave a comment

Inserisci il numero mancante: *

ga('send', 'pageview');