Come si sviluppa un plugin VST? Quale linguaggio di programmazione è meglio utilizzare, e quali sono le alternative complessive? In questo articolo, che non è un tutorial, offriremo un primo rapido sguardo su tutte le diverse opzioni.
La sigla VST è l’acronimo di Virtual Studio Techonology e sta a indicare quella tecnologia che nel lontano 1996 è stata sviluppata da Steinberg – la casa madre del Cubase, per intenderci – al fine di poter integrare nella propria DAW ogni tipo di strumento virtuale che la fantasia era in grado di immaginare.
Comunemente, il rapporto con i VST è sempre stato all’insegna del solo utilizzo a fini creativi ma negli ultimi anni, con l’avanzare delle conoscenze, sempre più persone si stanno interessando anche al loro sviluppo, con lo scopo di creare autonomamente i propri strumenti, senza la necessità di doversi adattare alle scelte di design di terze persone.
Come si “costruisce” un plugin audio VST?
A conferma di quanto l’attenzione verso lo sviluppo dei VST sia crescente, vi sono le immancabili richieste che sempre più spesso arrivano tramite la pagina contatti di questo sito.
Non è nelle intenzioni di questo articolo realizzare un tutorial su come affrontare la programmazione di un plugin VST, ma vorrei comunque offrire una panoramica sui diversi approcci che è possibile adottare, così da fornire una piccola guida introduttiva, un breve orientamento a uso e consumo di un junior sound designer.
Allora come si costruisce un plugin audio VST? Innanzitutto è più corretto parlare di sviluppo, che è la terminologia più consona quando si affronta un problema di programmazione. Sì, perchè di questo parliamo, ovvero di programmazione informatica.
Quali linguaggi si usano per programmare un plugin VST?
Lo sviluppo di uno strumento virtuale secondo lo standard VST è possibile attraverso molteplici scelte, dove quella migliore dipende in massima parte dal grado di familiarità con i linguaggi che andremo ad elencare oltre che da questioni prettamente tecnologiche.
Un plugin audio VST può essere realizzato con le seguenti tecnologie:
- C++;
- C#;
- Rust;
- Python;
- Javascript;
- Objective-C/Swift;
- Assembly;
- MAX/Msp;
- SuperCollider.
Vediamo nel dettaglio, brevemente, quali sono i pro e i contro di ognuna di queste scelte.
Utilizzare C++ per sviluppare un plugin VST
La presentazione dell’elenco precedente segue una logica ben precisa: sono partito con la scelta più diffusa, ovvero il linguaggio C++. Il motivo per cui questo sia il linguaggio preferito è presto detto.
Non solo C++ è un linguaggio molto efficiente che restituisce ottime prestazioni per applicazioni di rendering in tempo reale – che è una condizione imprescindibile per uno strumento musicale virtuale – ma è anche il linguaggio utilizzato dalla stessa Steinberg sia per lo sviluppo dei VST sia per lo sviluppo del VST Software Development Kit, ovvero il framework e le API che la stessa Steinberg mette a disposizione dei designer interessati allo sviluppo di nuovi strumenti virtuali da utilizzare con il proprio software host, Cubase, oppure con qualsiasi altra DAW.
Se ciò non bastasse, si potrebbero elencare tante altre ragioni tecniche ma vorrei invece soffermarmi su un aspetto che ogni programmatore sa di essere molto importante: una vasta documentazione e l’esistenza di un’ampia community a cui fare riferimento in caso di necessità.
Oltre al framework della Steinberg è bene ricordare la possibilità di sceglierne altri, tra cui JUCE e iPlug2. Giusto per citare quelli più solidi.
Rust: l’ultimo arrivato per i VST
Se C++ rappresenta la storia imprescindibile per la programmazione dei VST e non solo, Rust è invece il nuovo che avanza.
La sua data di nascita risale solo fino al 2006 e da allora ha avuto numerose applicazioni, legate soprattutto alla capacità di offrire ottimi rendimenti per programmi che richiedono grandi prestazioni, un obbiettivo che riesce a raggiungere grazie al controllo puntuale sulla memoria.
La sua popolarità in ambito audio è fortemente in crescita, grazie a una stabilità sempre più evidente.
Diciamo che oggi Rust rappresenta un investimento su un futuro che si mostra roseo e fruttuoso. Anche con questo linguaggio c’è la possibilità di affidarsi ad un framework quale Rust audio plugin ecosystem. Di certo manca di quella storicità propria del C++ e di quella grande community che lo sorregge, ma in termini di prestazioni non ha nulla da invidiare.
Utilizzare C# per programmare VST
Se si vuole restare nella zona d’influenza di C++ allora si può optare per C# che rispetto al precedente mostra una velocità di apprendimento sicuramente maggiore, quindi ben si adatta a chi vuole subito cimentarsi con il sound design piuttosto che dover spendere tempo eccessivo a familiarizzare con il linguaggio di programmazione.
Python e Javascript: due insolite alternative per il sound design
Forse è un po’ eccessivo associare il sound design a Pyhton e Javascript, ma vero è che quando si realizza un quadro generale di riferimento per la programmazione dei plugin audio VST è bene citare anche queste due possibilità.
Python è il linguaggio per eccellenza per l’analisi dei dati e non si ritiene adatto per lo sviluppo professionale di VTS. Tuttavia, vista la sua rapida curva di apprendimento, ben si presta alla realizzazione di prototipi da valutare prima di uno sviluppo professionale.
Javascript, invece, benché anch’esso non sia adatto per VST professionali, è un’ottima soluzione – forse la migliore – per applicazioni audio da fruire con il browser.
VST per utenti MAC con Objective-C/Swift
In questa breve rassegna non posso non citare Objective-C/Swift, che è il riferimento per lo sviluppo di applicazioni VST pensate esclusivamente per il mondo Apple.
Prestazioni estreme con Assembly
Infine, una menzione sulla possibilità di utilizzare l’Assembly, ovvero una sorta di linguaggio macchina ma molto più comprensibile e intuitivo. Adatto per realizzare strumenti virtuali ad altissima prestazione, tanto che viene adoperato per lo sviluppo di specifici DSP.
Due alternative insolite: MAX/Msp e SuperCollider
Ho definito insolite le scelte di MAX/Msp e SuperCollider perchè spesso sianmo abituati a vedere questi due ambienti come strumenti per il sound design piuttosto che come linguaggi per sviluppare altri strumenti.
Eppure sia l’uno sia l’altro si prestano allo sviluppo di applicazioni audio sia in forma standalone che VST.
Il loro approccio visivo, oltretutto, li rende particolarmente intuitivi, quindi con una curva di apprendimento abbastanza rapida.
Tuttavia resta il fatto che nessuno dei due è orientato nativamente ai VST, quindi per uno sviluppo professionale probabilmente non sono la scelta migliore, nonostante abbiano numerosi pregi.
Lascia un commento