- Introduzione a VST
- Obiettivi e finalità
- Installazione dei software necessari
- Configurare l'ambiente
- Il software VSTHost
- Un plugin VST: Softsynth
- Integrazione VST con le altre applicazioni
- Conclusioni
VST è l'acronimo di Virtual Studio Technology, uno standard messo a punto dalla
Steinberg (la creatrice di
Cubase) che consente di gestire tramite interfaccia grafica (
GUI - Graphical User Interface) moduli musicali quali sintetizzatori ed effetti e di collegarli a programmi di editing e di hard disk recording che utilizzano lo stesso standard. Attraverso il
protocollo MIDI è possibile pilotare questi plugins e farli suonare "live" tramite una tastiera MIDI o per mezzo di un sequencer.
A volte un plugin VST può essere un semplice generatore di suoni, con qualche oscillatore qua e là, altre volte può essere un complesso sintetizzatore. In questo caso la differenza possono farla i suoni disegnati dalla casa madre perché al di là della complessità del sinth è necessario che i suoni disponibili siano ben fatti e progettati da chi se ne intende.
Con l'introduzione dei plugin
VSTi (VST instrument) si è introdotta la possibilità di emulare via software i sintetizzatori reali, gli expander ecc. importando all'interno dei plugins gli algoritmi di sintesi e i presets residenti nelle macchine originarie.
Per esempio, ecco il mitico
Korg M1, che ancora fa capolino spesso e volentieri sui palchi di mezzo mondo:

Mitico Korg M1
e la sua versione VSTi:

Versione VSTi del Korg M1
I plugin VST utilizzano il protocollo
ASIO (Audio Stream Input/Output) per comunicare direttamente con la scheda audio, bypassando i driver di Windows che, in quanto non disegnati espressamente per applicazioni audio, presentano una
latenza troppo alta per questo scopo.
A questo punto ci si potrà chiedere perché parliamo di Windows in una sezione dedicata all'Audio Linux. La risposta risiede nel fatto che è possibile utilizzare i plugin VST anche all'interno dell'architettura audio di Linux, e l'obiettivo di questo articolo è quello di realizzare il setup necessario al funzionamento del tutto.
Naturalmente occorre frenare gli entusiasmi poiché la cosa presenta alcune limitazioni, ma è comunque utilizzabile con buoni risultati.
L'intera procedura è stata effettuata su una distribuzione
64 Studio (dunque utilizzando principalmente il software
Synaptic per la gestione dei pacchetti) e prendendo spunto da
questo articolo. Altre distribuzioni hanno procedure di installazione diverse, ma analoghe nella sostanza.
Innanzitutto occorre che al nostra Linux Box possa emulare l'architettura audio di Windows sopra la quale far girare i plugin VST.
Per questo si rendono necessari 3 software:
-
wine: acronimo ricorsivo di Wine is not an emulator a sottolineare il fatto che non si tratta di un emulatore di Windows. Si tratta in realtà di un'implementazione Open Source delle API di Windows che gira sopra X, OpenGL, ossia l'ambiente grafico dei sistemi Linux. Wine (come sottolinea l'acronimo) non richiede la presenza del sistema operativo Windows ma ne realizza solo le API rendendole disponibili ai programmi che ci girano sopra, tuttavia può richiedere a volte la presenza di librerie dll proprietarie.
- wineasio: supporto ASIO per Wine che permette alle applicazioni di girare come client di JACK e dunque di interagire con il resto dell'architettura audio di Linux
- msttcorefonts: rende disponibili su Linux i font True Type di Microsoft
Per prelevare dal repository di 64Studio questi pacchetti, dal programma Synaptic nel menu Strumenti di sistema, aprire
Impostazioni -> Archivi dei pacchetti e checkare la URI:
http://apt.64studio.com/64studio/testing. Cliccare
Marca tutti gli aggiornamenti, quindi cliccare
Ricarica. A questo punto installare i pacchetti wine, wineasio e msttcorefonts (eventualmente utilizzare la searchbox per trovarli all'interno della megalista). Una volta completata l'installazione, chiudere Synaptic.
A questo punto occorre registrare il supporto ASIO per Wine. Dalla shell del nostro utente (non root!), lanciate il comando:
regsvr32 wineasio.dll
e ora il supporto ASIO è integrato nel nostro sistema e possiamo configurare wine lanciando il comando:
winecfg
Una volta aperta la finestra di configurazione di Wine, cliccare sul Tab Audio, deselezionare il sound driver OSS e selezionare il driver
ALSA:

Finestra di configurazione di Wine
Ora Wine è pronto per interagire con JACK tramite il driver ALSA. Abbiamo bisogno di un software che gira sotto Windows che permetta di gestire i plugin VST.
Nella nostra home avremo una serie di directory che rappresentano il filesystem di windows. Per vederle facciamoci un giro cominciando:
cd .wine
Questa scelta risulta un po' scomoda in quanto
Nautilus, il client di
Gnome per browsare le directory, non visualizza di default le directory nascoste (quelle precedute da un '.' ). Dunque sul desktop, cliccare l'icona della propria home, andare sul menu Visualizza e checkare il box
Visualizza file nascosti. Ora possiamo browsare dal desktop la nostra directory .wine e al suo interno troveremo la directory drive_c, che corrisponde ovviamente al disco C: di Windows.
Dato che tra wine e tutto il resto abbiamo appesantito non poco il nostro sistema, è necessario che il software per la gestione dei plugins sia il più leggero possibile. Quindi per esempio NON utilizzeremo Cubase (che oltretutto è a pagamento) ma
VSTHost, un software gratuito, leggero e che assolve egregiamente allo scopo. Questo software è stato creato da Hermann Seib, ed è disponibile con due tipi di licenze: donationware e LGPL. Per utilizzare la versione donationware, che ha più opzioni, prelevare il file
http://www.hermannseib.com/programs/vsthost.zip e scompattarlo nella directory:
~/.wine/drive_c/Programmi
VSTHost, per girare, richiede una libreria standard della Microsoft che non ha un equivalente sotto Wine. Copiare il file
MSFC42.DLL da un sistema Windows XP nella directory:
~/.wine/drive_c/windows/system32
oppure scaricarlo da
http://activex.microsoft.com/controls/vc/mfc42.cab
e utilizzare il software:
http://packages.debian.org/etch/cabextract
per estrarlo.
A questo punto possiamo far partire VSTHost e configurarlo. Da shell, si può entrare nella directory in cui lo abbiamo scompattato e lanciarlo con wine:
cd ~/.wine/drive_c/Programmi/vsthost
wine vsthost.exe
oppure da desktup browsando le directory fino a vsthost e poi cliccando sul tanto destro del mouse e selezionando
Apri con Wine.
Configuriamo VSTHost:
Nel menu
Devices -> Midi selezionare come
MIDI Input il vostro device di ingresso, come per esempio la tastiera MIDI (se ce l'abbiamo).
Nel menu
Devices -> Wave selezionare come
Output Port la voce:
ASIO: Wine Asio Driver per indirizzare correttamente l'output audio.
Ci siamo quasi, manca solo il nostro plugin VST. Su internet ve ne sono una gran quantità, anche se la qualità in genere non è molto alta. Questo non solo per quello che riguarda i suoni, che risultano poco elaborati, ma piuttosto per la stabilità del plugin stesso. Scaricando qua e là ne ho trovati parecchi che freezavano VSTHost. Suggerisco di provare con questo synth:
http://www.geocities.jp/daichi1969/softsynth/
che è free e ha una libreria di suoni invidiabile (la prima volta vanno caricati a mano dal plugin ma poi sono sempre disponibili dal menu Plugin di VSTHost, quando il plugin è attivato).
Dunque, scaricato il scompattato il synth nella nostra directory di plugins (ad esempio: ~/.wine/drive_c/VSTplugins), apriamolo da VSTHost selezionando il menu
File -> New Plugin e aprendo la dll Synth1 VST.dll.
All'interno di VSTHost comparirà un piccolo box reppresentativo del plugin. Cliccare sull'icona del potenziometro per visualizzarlo. A questo punto dovreste vedere una cosa simile a questa:

Softsynth all'interno di VSTHost
e suonando la tastiera dovreste ascoltare il suono del plugin.
Se ciò non accade, non disperate, ripetete la sequenza di operazioni descritte. Poi se trovate ancora intoppi, chiedete aiuto alla community, anche lasciando un commento a questo post.
A questo punto siamo riusciti a far suonare un plugin VST sulla nostra Linuxbox, quello che manca è integrarlo con tutto il resto, sequencer, jack, ardour ecc. Dunque apriamo
Rosegarden e clicchiamo sull'icona per la gestione dei dispositivi MIDI. Come dispositivo di output assegnamo MIDI external device 2 alla porta MIDI Through. Successivamente, cliccando con i tasto destro sulla traccia attiva (per esempio la 1), assegnamone l'output a MIDI external device 2 (canale 1, se questo è il canale su cui riceve i comandi MIDI il plugin aperto su VSTHost).

Configurazione MIDI di Rosegarden
Poi, in VSTHost, tornando sul Menu Device MIDI, scegliamo la porta MIDI Through come input. Ora suonando la tastiera, il plugin dovrebbe suonare, stavolta passando da Rosegarden. Dunque ora possiamo registrare le nostre sequenze musicali e farle risuonare da Rosegarden.
Per dare un ultimo tocco di integrazione, possiamo andare sul menu di Rosegarden:
Settings -> Configure Rosegarden. Nella finestra che si apre, clicchiamo sull'icona Sequencer e successivamente sul tab
Sincronizzazione. Nel menu a tendina Modalità di trasporto Jack, selezionare
Sincronizza:

Configurazione Sincronizzazione di Rosegarden
A questo punto tramite la trasport bar di
JACK Control è possibile far partire tutte le applicazioni interessate in modo sincronizzato e... godersi lo spettacolo!
L'immagine seguente mostra l'interazione tra Rosegarden, JACK Control, il fantastico plugin
Atmosphere della Spectrasonic e il synth per Linux
ZynAddSubFX. Tutti insieme appassionatamente! :-)

Tutti insieme appassionatamente!
Questa procedura dimostra la fattibilità della cosa. Per quel che riguarda la sua reale utilizzabilità occorre tenere presente che ci sono delle limitazioni. La prima è nella potenza di calcolo e memoria disponibile; questo approccio richiede moltissime risorse di sistema in quanto i plugins girano in un ambiente simulato che deve poi tradurre i comandi che riceve negli equivalenti comandi per il sistema operativo Linux, che gli soggiace. Ad ogni modo, oggi non è più così costoso reperire un computer con processori ultraveloci e ram sconfinata.
Il secondo problema è la stabilità. Ancora una volta ricordiamo che siamo in un ambiente simulato, sono tante le variabili che possono sfuggire, a cominciare dalla qualità del software dei plugins. Spesso se questi sono programmati correttamente, la probabilità di un crash diminuisce, ma resta il fatto che così tante applicazioni che interagiscono tra loro e girano contemporaneamente formano una catena in cui l'anello debole è proprio l'emulazione. In questo caso la colpa non è di Windows o delle sue API, ma piuttosto del fatto che le applicazioni audio richiedono non solo grandi velocità di processing e scambio dei dati, ma anche ambienti stabili e standard rigorosamente rispettati; un ambiente emulato come quello offerto da Wine, per quanto ben fatto, viene messo a dura prova in questo senso.
Attendiamo, come sempre, le vostre impressioni ed esperienze su questo argomento.