Utilizzare i Plugin VST su Linux

  1. Introduzione a VST
  2. Obiettivi e finalità
  3. Installazione dei software necessari
  4. Configurare l'ambiente
  5. Il software VSTHost
  6. Un plugin VST: Softsynth
  7. Integrazione VST con le altre applicazioni
  8. Conclusioni
Introduzione a VST
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:
Korg M1 Keyboard
Mitico Korg M1

e la sua versione VSTi:
Korg M1 Keyboard
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.

Obiettivi e finalità
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.

Installazione dei software necessari
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.

Configurare l'ambiente
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
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.

Il software VSTHost
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.

Un plugin VST: Softsynth
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
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.

Integrazione VST con le altre applicazioni
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
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
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
Tutti insieme appassionatamente!

Conclusioni
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.





  • inserito il 10-01-2012 09:25
    luky Luke.. ti sbagli.. se ci smanetti per bene dimentichi di usare il cubase . Per non perlare delle latenze in fase di registrazione a parità di HW !! Se riesci a fare un progetto audio con 1GB Di tracce audio wave con Cubase LE..senza avere latenza che ti scassa le *****(c'è sempre.. ) fammi un fischio.. Io lavoro (livello amatoriale si intende) molto bene con Ardour.. e ci sono softwqare a pagamento che possono essere implementati ad Ardour che lo rendono all'altezza dei vari Logic.. e cazzi vari ..sul MAC. Per i vst.. si sono fatti passi in avanti..Non tutti sono installabili su WINE.. ma sono riuscito senza problemi a lavorare con i Native Instrument (elektrik piano e B4).. In definitiva..è un alternativa free.. molto ma molto valida.. rispetto a quello che si puo trovare su altre piattaforme. (non a casa.. Ardour viene usato anche su MAC) BUON AUDIO A TUTTI !
  • inserito il 27-12-2009 11:41
    Per quanto riguarda il supporto alle schede audio firewire vi consiglio questo link http://ffado.org/?q=devicesupport/list sono rimasto contentissimo quando ho visto la mia focusrite suportata... peccato che la presonus ancora non è supportata...
  • inserito il 19-10-2009 12:11
    Dimenticavo di dire che sono il primo che vorrebbe lavorare su linux in campo audio e che ho speso giornate a capire quanto fosse fattibile, alla fine sono tornato a Windows... Altra cosa non venitemi a dire che non ho contato il prezzo di Windows perché la copia OEM di Windows costa 50€, che si recuperano immediatamente considerando un risparmio di ore di lavoro per settare il sistema. Ciao!
  • inserito il 19-10-2009 12:03
    Se linux andrà avanti così, sprecando energie nello sviluppo di decine e decine di software equivalenti (ma nessuno completo) e senza il supporto dei costruttori di periferiche (purtroppo questa è colpa dei costruttori) non andrà molto lontano... una prova su tutte: con una qualsiasi scheda audio professionale (di cui al 99% non troverete i driver per linux) e il cubase LE spesso incluso (o software equivalente) si riescono a fare lavori molto migliori che con linux in minore tempo e con uguale spesa (aquisto della scheda).
  • inserito il 23-07-2009 11:49
    Molto interessante, grazie! Potreste parlare un po' di Ardour?
  • inserito il 29-04-2008 20:48
    Scusami, ma come hai fatto a far funzionare "Korg Legacy"? Per me è quasi impossibile!
  • inserito il 26-01-2008 16:53
    Era un po' che non visitavo questo sito e devo dire che questa sezione "Audio Linux" e' veramente interessante! Spero che cresca... Voglio soltanto segnalarvi (probabilmente ne sarete gia' a conoscenza) che il sequencer EnergyXT ( http://www.energy-xt.com/ ), che e' un sequencer piuttosto diffuso, a basso costo ma con molte funzionalita', con la versione 2 e' disponibile anche su Linux. Ciao
  • inserito il 09-01-2008 22:13
    Per Antonio: nell'articolo il plugin accede direttamente ai driver ALSA senza passare da jack. Se vogliamo anche far rientrare il segnale audio in Ardour per mixarlo con tutto il resto, selezioniamo "Jack Driver" nel client winecfg. Successivamente da jack colleghiamo le uscite di VSTHost all'ingresso di Ardour e li facciamo entrare in due tracce audio (una per il canale Left e una per il Right). Diciamo che mandiamo direttamente verso l'uscita le tracce audio dei plugins quando abbiamo a valle un mixer su cui effettuare il mixdown. E' questo l'esempio dell'articolo. Se invece per mixare utilizziamo Ardour, allora utilizziamo questa seconda modalità appena descritta.
  • inserito il 02-01-2008 20:09
    Qualche giorno fa ho provato una procedura di poco differente da questa ma non ho avuto nessun risultato..nei prossimi giorni proverò come descritto, ma intanto vorrei sapere se esiste qualche host vst per linux che funziona in maniera simile a v-stack (steinberg) o forte (brainspawn), poichè io ho necessità di avere un vero e proprio rack di vsti, gestibili dalla master keyboard tramite i 16 canali midi. Grazie e complimenti per l'articolo.
  • inserito il 02-01-2008 02:55
    In effetti, se riusciste ad aggiungere nell'articolo un diagramma di flusso raffigurante i vari passaggi (es: disegnino tastiera ---> porta MIDI pc ---> ecc.) forse il tutto sarebbe più chiaro. Comunque complimenti, mi state facendo interessare non poco! Sono musicista (violinista) e pinguinaro (debianista), ma ignorante come una capra in ambito audio digitale... credo che approfondirò la cosa. Per intanto: ho dato un'occhiata alla voce su Wikipedia http://it.wikipedia.org/wiki/Virtual_Studio_Technology (purtroppo solo uno stub, attualmente). Leggendola sembrerebbe però che, da poco, esistano dei plugin VST nativi per Linux: confermate? Buon anno!
  • inserito il 18-12-2007 16:44
    Non mi è chiaro come sia possibile interfacciarsi o cosa c'entri jack se come driver output di wine è scelto alsa. Sto tralasciando qualcosa?
  • inserito il 01-12-2007 14:19
    Utilizzo vst Ivory+wineasio per studiare pianoforte con una midi keyboard VMK-188 studiologic, scheda sonora audigy 2 zs pcmcia (ma anche quella integrata nel portatile va bene), portatile con amd turion 2 Ghz, 2Gb Ram, 2 HD uno dedicato al plugin. Le latenze indicate da reaper sono di 1-2 ms. Suono il plugin da solo con reaper o con vsthost e a volte con un accompagnamento eseguito da audacity agganciato a jack. Da quando sono riuscito a far funzionare il plugin con linux non ho più utilizzato windows perchè mi dava maggiori latenze, e ogni tanto in corrispondenza di accessi al disco qualche "click" nell'audio.
  • inserito il 24-11-2007 15:20
    Grazie per la testimonianza. Per valutare la stabilità del sistema che hai utilizzato, mi piacerebbe sapere se hai utilizzato solo il plugin da solo o se questo era inserito in un contesto più ampio. Per esempio, se era pilotato da un sequencer insieme ad altri dispositivi MIDI, e se mixato con altre tracce audio campionate suonate da Ardour. Solo riproducendo una sessione di lavoro "reale" è possibile capire l'utilizzabilità di una tale architettura. Vi invito a fare delle prove con parecchi synth aperti, con i VST, e una decina di tracce audio mixate su ardour, con compressori e riverberi come se piovesse. Fateci sapere i risultati.
  • inserito il 20-11-2007 11:11
    Ho utilizzato un vst piuttosto pesante (ivory synthogy) con linux+wineasio+reaper in linux ho ottenuto latenze inferiori rispetto a windows XP o Vista e nessun problema di stabilità, utilizzando come hardware un portatile con AMD Turion.
  • inserito il 04-11-2007 19:40
    ...sempre più interessante! Siete grandi!!!