miércoles, 30 de diciembre de 2009

Plugins de efectos e instrumentos VST a través de dssi-vst

#########################
Notas de revisiones:
Revisión 0: 31 diciembre 2009. Publicado.
Revisión 1: 1 enero 2010. Completado.
Revisión 2: 3 enero 2010. Añadida nota para compilación en sistemas de 64 bits
Revision 3: 18 enero 2010. Añadido punto 9 para solucionar posibles problemas de fuentes
Revisión 4: 26 marzo 2010. Añadida alternativa a instalación a través de Synaptic, añadiendo PPA
#########################

¿Qué y por qué?

En Linux tenemos plugins de efectos de audio LADSPA y plugins sintetizadores (o "instrumentos virtuales) DSSI. Además, LV2 (LADSPA Version 2) es una nueva especificación que sirve tanto para efectos como para instrumentos. También hay plugins VST nativos para Linux.

Sin embargo, la tecnología Windows VST está tan extendida que a muchos usuarios que vienen de Windows les parece impensable tener que prescindir de sus plugins. Para eso salieron proyectos como dssi-vst, que presentamos en esta entrada.

Dssi-vst permite a los usuarios de Linux ejecutar plugins de efectos e instrumentos VST compilados para Windows en hosts para plugins DSSI y LADSPA. Además, dssi-vst ofrece un host pra VST "stand-alone" que es cliente de jack.

Dssi-vst es libre y de código abierto, escrito por Chris Cannam (autor de Rosegarden, Sonic Visualiser, la librería Rubberband...). Se distribuye bajo la licencia GPL. La compilación por defecto (que veremos en aquí) no hace uso del SDK de Steinberg y en teoría no habría problema para distribuirlo en binario. Sin embargo, no está en los repositorios de las ultimas versiones estables de Debian ni de Ubuntu.

Existen otros hosts para plugins Windows VST, por ejemplo, LMMS (en los repos de Debian / Ubuntu y otras distribuciones) o Ardourvst (no en los repositorios de Debian / Ubuntu, de momento).



Uso de dssi-vst


En la práctica, dssi-vst da para varias combinaciones. Por ejemplo, podemos:

- Tener efectos e instrumentos VST en Rosegarden, con una interfaz dssi. (Ver pantallazo 1).
- Tener efectos e intrumentos VST en ardour (nota 1), Audacity, Jack Rack o cualquier otro host de plugins LADSPA (Ver pantallazos 2 y 3).
- Tener un instrumento VST como si fuera una aplicación "stand alone", en un sencillo host cliente de jack. (Ver pantallazos 4 y 5).


Pantallazo 1. SPITFISH DeEsser (VST) lanzado desde Rosegarden, en el editor de plugins DSSI



Pantallazo 2. SPITFISH DeEsser lanzado desde ardour, en el editor de plugins LADSPA



Pantallazo 3. SPITFISH DeEsser lanzado desde Audacity, en el editor de plugins LADSPA (Menú efectos)


Pantallazo 4. SPITFISH DeEsser lanzado con vsthost


Pantallazo 5. Studio Devil, ampli virtual de guitarra (instrumento VST), lanzado con vsthost. Muestro también las conexiones de jack audio necesarias para enchufar la guitarra directamente a la tarjeta de audio y escucharnos por los altavoces


Instalación de dssi-vst

(Estas instrucciones se han probado en ubuntustudio 9.10. Para otras distribuciones o versiones de ubuntu será muy similar, pero puede haber pequeñas variaciones)


EDITADO en rev 4. Para ahorrarse los pasos 1 a 5, los usuarios de karmic pueden añadir el PPA de Philip Johnson. Más información sobre los PPA's de ubuntu.

sudo add-apt-repository ppa:philip5/extra

Ir a synaptic, recargar e instalar dssi-vst.

No recomiendo tener este repo (ni ningún otro no oficial) permanentemente habilitado. De paso veréis que tiene otros paquetes interesantes)



1) Dependencias

En ubuntu, es necesario instalar estos paquetes:

build-essential
wine-dev
liblo0-dev
dssi-dev
libasound2-dev

En sistemas de 64 bit, hay que instalar, además:

gcc-multilib
g++-multilib

(Yo he compilado para x86 (32 bits). No he probado seguir esta guía para x86_64 pero debería funcionar igualmente)


2) Conseguir las fuentes y moverlas al directorio de trabajo

Desde http://breakfastquay.com/dssi-vst/ bajamos la última versión. A la fecha de escribir esto, dssi-vst-0.8

En la carpeta 'Descargas' o en el Escritorio, nos aparecerá un tar.gz, que descomprimimos. Movemos la carpeta creada a nuestro directorio de trabajo, en mi caso, /home/pablo/fuentes.


3) Comprobar el path de las libs de dssi y ladspa y si necesario, modificar el Makefile:

Veremos que hay un archivo Makefile, con el siguiente contenido (entre otras líneas):

DSSIDIR = /usr/local/lib/dssi
LADSPADIR = /usr/local/lib/ladspa

Si hemos instalado el soporte para plugins LADSPA y DSSI a través de paquetes de nuestra distribución (o vinieron instalados por defecto, como en el caso de ubuntustudio, al instalar los plugins de audio), tendremos que modificarlas a:

DSSIDIR = /usr/lib/dssi
LADSPADIR = /usr/lib/ladspa

Podemos comprobar con nautilus cual es la ruta correcta.

4) Añadir el "include" cstdio al código fuente, para que no haya problemas de compilación

(A dssi-vst le falta este "include" para que se pueda compilar con la reciente versión del compilador de GNU que trae ubuntu 9.10. Este paso no será necesario en todos los casos)

En los archivos:

remotepluginclient.cpp
remotepluginserver.cpp
remotevstclient.cpp
rdwrops.cpp

debemos añadir, debajo del resto de "includes":

#include [cstdio]

(Sustituyendo los corchetes por los signos "menor que" y "mayor que" que no puedo escribir aquí porque el editor html no lo permite)

5) Compilar e instalar

En una terminal desde el directorio de dssi-vst-0.8:

make
sudo make install

Algunas personas se han encontado con un error al instalar dssi-vst. Algo así como:

"install: no se puede efectuar `stat' sobre «dssi-vst-server»: No existe el fichero ó directorio"

En este caso, parece que wine (algunas versiones de wine, ya que no siempre aparece este problema) crea los archivos 'dssi-vst-server.exe' y 'dssi-vst-scanner.exe' en lugar de 'dssi-vst-server' y 'dssi-vst-scanner', que es lo que espera el Makefile de dssi-vst. El truco es renombrar esos dos archivos (en el directorio de trabajo, donde están las fuentes de dssi-vst), quitándoles la extensión .exe. Y luego volver a hacer 'sudo make install'.


6) Configuración de wine

Elegir Windows XP y en la pestaña audio, alsa.
Ignorar cualquier error de tipo fixme:mixer si lanzamos winecfg desde terminal

7) Establecer las rutas de los VST

Es muy importante que los vst's (librerías de extensión .dll) estén en directorios conocidos por el sistema. dssi-vst va a mirar por defecto en los directorios:

/usr/lib/vst/
/usr/local/lib/vst
/home/usuario/vst

Si tenemos los .dll en otras ubicaciones, debemos declararlo en el archivo 'home/usuario/.bashrc', con las rutas separadas con dos puntos (:), como en la siguiente línea:

export VST_PATH=/ruta/a/vsts:/ruta/a/otros/vsts:etcétera

Por ejemplo, en mi caso:

export VST_PATH=/usr/local/lib/vst/:/home/pablo/vst/:/home/pablo/vst/pruebas

Las dos primeras rutas no sería necesario declararlas (porque son las rutas por defecto), pero mejor hacerlo.

8) Renombrar las librerías .dll para eliminar los espacios, si los hay.

9) En algunos VST las letras se ven mal hasta el punto que apenas son legibles. winetricks es un script que nos puede solucionar algunos problemillas con wine, como en este caso. Desde terminal, podemos hacer

$wget http://www.kegel.com/wine/winetricks (descarga el script)
$sh winetricks allfonts (instala fuentes de microsoft)

Casos prácticos

Para lanzar un vst como "stand alone" cliente de jack, hacemos:

vsthost elquesea.dll

Como hemos dicho, también se pueden lanzar desde Rosegarden (con interfaz dssi), ardour, audacity, jack-rack, etc (con interfaz ladspa).

Créditos y para saber más:

Chris Cannam
http://www.breakfastquay.com/dssi-vst/

http://www.digitalfishphones.com (Pantallazos 1-4)
http://www.studiodevil.com/home/ (Pantallazo 5)

Notas:

(1) Ardour también se puede compilar para hacer de host de VST, directamente sin el envoltorio ladspa-vst.

11 comentarios:

  1. Una excelente e inestimable ayuda Pablo.

    ResponderEliminar
  2. gracias por eso how-to.

    ResponderEliminar
  3. gracias por compartir este tutorial Pablo, agradezco lo expeditivo de las instrucciones para gente como yo que no llevamos mucho tiempo con Linux.

    Saludos.

    ResponderEliminar
  4. Hola Pablo!
    Me pasa que algunos vst's no me funcionan con el Ardour, encontré esto;

    http://tracker.ardour.org/view.php?id=1366

    pero en la configuración del wine teno "/" en la Z: asi que no tengo ni idea de como solucionarlo

    ResponderEliminar
  5. Hola Cato. Pruébalos con otros hosts a ver si funcionan. LMMS, Reaper, vsthost de dssi-vst, fst-festige... No sé que podrá ser. Si alguno de lo que no te funcionan tiene demo, lo puedo probar si me dices cuál es.

    ResponderEliminar
  6. si que funcionan si los lanzo como vsthost, pero con ardour me pone lo mismo que al del link que te he pasado, prueba este por ejemplo:

    http://www.kvraudio.com/get/3250.html

    Salut!
    14

    ResponderEliminar
  7. Lo he probado con vsthost y con fst (no tengo ahora mismo ardour compilado con soporte para Windows VST) y no me funciona con ninguno de los dos y con wine 1.1.31. No sé que puede ser.

    ResponderEliminar
  8. Esta perfecto! Todo funcionando. Muchas gracias ;)

    ResponderEliminar
  9. Y teniendo el guitarix, o rackrack ¿para que instalar programas del Winbugs?
    Otra cosa son instrumentos individuales VST pero teniendo un amplificador como los que comentaba ¿para que esto?
    Salujdos

    ResponderEliminar