20/11/2007

Fedora 8 + CCRMA + wineasio = Full soporte VST

Una solución algo mocosofizante, pero efectiva para ejecutar aplicaciones VST, VSTi bajo linux es la que vamos a ver en este artículo, básicamente se debe tener instalado fedora 8, con livna y el ccrma.

Para instalar ccrma importamos primero las firmas de los paquetes:
rpm --import http://ccrma.stanford.edu/planetccrma/RPM-GPG-KEY.planetccrma.txt

Añadimos el repositorio:
rpm -Uvh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/8/i386/planetccrma-repo-1.0-3.fc8.ccrma.noarch.rpm
Editamos el archivo /etc/yum.conf y modificamos la opción installonly_limit :

sudo nano /etc/yum.conf

installonly_limit=0


Este paso es para evitar problemas con otros kernels que tengamos instalados en nuestro sistema, y no permitir que el yum los desinstale, ya que los kernels del ccrma son más experimentales que los alojados en fedora.

Instalamos el kernel con soporte para tiempo real:

yum install planetccrma-core

Reiniciamos la máquina.....

Las aplicaciones se pueden ver en línea en:
http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/8/i386/repodata/
http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/8/x86_64/repodata/

Aún no hay muchos paquetes, pero para nuestro objetivo, solo requerimos del kernel y jack.


Ahora nos disponemos a instalar la parte relativa a los requerimientos:

sudo yum install wine wine-devel jack-audio-connection-kit jack-audio-connection-kit-devel

Descargamos el wineasio; quienes hemos utilizado Cubase bajo window$, sabemos de las ventajas de utilizar el driver asio, la buena noticia es que este ya se está migrando a una versión para linux.

wget http://people.jacklab.net/edogawa/files/wineasio/wineasio-0.5.tar.gz

Descomprimimos el archivo:

tar xvzf wineasio-0.5.tar.gz

Entramos en la carpeta:

cd wineasio-0.5

Modificamos el Makefile sí es necesario, para que la instalación se haga en la ruta que necesitemos:

PREFIX = /usr
o
PREFIX = /usr/local

Descargamos el ASIO-SDK desde el sitio de Steinberg:

http://www.steinberg.de/324+M54a708de802.html

Descomprimimos:

Y copiamos el archivo de cabeceras "asio.h", ubicado en ASIOSDK2/common/asio.h, a la carpeta del wineasio-0.5

Y compilamos:

make
sudo make install

Y como usuario normal ejecutamos

regsvr32 wineasio.dll

Luego en el .bashrc añadimos:

export ASIO_INPUTS=4
export ASIO_OUTPUTS=8

Y reiniciamos la sesión preferiblemente....

Ya nuestro equipo está listo para instalar aplicaciones como Reaper, Energy XT2 y Nuendo2, entre otras, yo he probado el Energy XT2, y todos los vsts que he instalado me han ejecutado sin ningún problema, eso si, el rendimiento del audio es muy superior al presentado por las mismas aplicaciones bajo window$.




4 comentarios:

Anónimo dijo...

Hola sangrenegrv, hacia tiempo que no recurria a tu experiencia y sabiduria,y por lo que veo has seguido indagando por un fedora realmente competitivo.
Pregunta: el metodo descrito para ejecutar vst es exclusivo de arquitectura 32bit, no es asi? no me deja compilar wineasio en mi fedora8. Me dice esto exactamente:

[dan@dhcppc0 wineasio-0.5]$ make
gcc -c -I. -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows -g -O2 -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o asio.o asio.c
asio.c: In function ‘IWineASIOImpl_disposeBuffers’:
asio.c:661: aviso: declaración implícita de la función ‘__wrapped_IWineASIOImpl_stop’
asio.c: In function ‘IWineASIOImpl_createBuffers’:
asio.c:747: aviso: declaración implícita de la función ‘__wrapped_IWineASIOImpl_disposeBuffers’
asio.c: In function ‘win32_callback’:
asio.c:971: aviso: declaración implícita de la función ‘__wrapped_IWineASIOImpl_getSamplePosition’
gcc -c -I. -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows -g -O2 -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o main.o main.c
gcc -c -I. -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows -g -O2 -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o regsvr.o regsvr.c
winegcc -shared wineasio.dll.spec -mnocygwin -o wineasio.dll.so asio.o main.o regsvr.o -lodbc32 -lole32 -loleaut32 -lwinspool -lwinmm -lpthread -luuid
ld: i386 architecture of input file `/usr/lib/wine/libuuid.a(uuid.o)' is incompatible with i386:x86-64 output
ld: Relocatable linking with relocations from format elf32-i386 (/usr/lib/wine/libwinecrt0.a(dll_entry.o)) to format elf64-x86-64 (wineasio.MRxUBa.o) is not supported
winebuild: ld -r failed with status 256
winegcc: winebuild failed
make: *** [wineasio.dll.so] Error 2

sangrenegrv dijo...

Wineasio solo se usa para la arquitectura X86.

Parece que se pueden ejecutar algunos VST si se utiliza studio64 y se compila el paquete de wine de 32 para la plataforma 64 bits, pero sin wineasio.

Unknown dijo...

WineASIO funciona desde la versión 0.3 en sistemas operativos de 64bits. No rinde escribir tanto de nuevo. Si queres pegate una pasada por aca http://juanmanuellallana.blogspot.com/2009/06/utilizando-extensiones-vstvsti-en-linux.html
Hay un par de detalles que faltaron como la redireccón mediante jackbridge para poder usar dispositivos MIDI en los standalone. Tambien tengo un binario para ubuntu y si llegas a empaquetarlo para fedora y me lo podes pasar te estaria re agradecido. Suerte!

sangrenegrv dijo...

El problema de los binarios, es que es ilegal distribuirlos, debido a la licencia del SDK de Steinberg, por eso hay que dar todo este paseo para compilarlo para el uso personal, lo que no es ilegal