viernes, 18 de diciembre de 2009

Instalación de linuxsampler-qsampler desde el código fuente en ubuntu / ubuntustudio 9.10

#############################
Notas de revisiones:
Revisión 0: 19 diciembre 2009. Publicado.
Revisión 1: 24 enero 2010. Revisada la instalación del soporte para LV2 (ver nota 1)

#############################

En esta entrada vamos a explicar cómo instalar linuxsampler con su frontend qsampler, desde el código fuente. Linuxsampler es un sampler de software para librerías de samples en formato .gig.

Voy a compilar los programas con las opciones por defecto, mayormente. Aquí, Luis Garrido, desarrollador de aplicaciones musicales para GNU/Linux, nos explica cómo optimizar los programas ejecutables. Precisamente pone de ejemplo linuxsampler y comenta que, con ciertas opciones, se puede conseguir una mejora radical en su rendimiento. Yo no lo he probado y de momento lo dejaré de lado. Siempre tenemos la opción de volver atrás y hacer caso y preguntar a los que controlan de verdad.

Linuxsampler tiene una licencia considerada como no-libre, ya que impone una restricción a su uso comercial (crear software o hardware comercial a partir de su código). Por esta razón, no está en los repositorios oficiales de Debian ni de Ubuntu.

Con este método, podremos editar los samples, con gigedit, desde el propio qsampler. No voy a instalar el frontend basado en java (jsampler), pero es otra posibilidad. Además, qsampler y jsampler no son incompatibles.

______________________________________________________________

INSTALACION DE LINUXSAMPLER Y QSAMPLER
""""""""""""""""""""""""""""""""""""""""
1. Descargar el código fuente

Descargaremos las fuentes desde la página oficial de linuxsampler (abajo en Source Packages). Las últimas verisones de los archivos tar.bz2:

libgig
linuxsampler
gigedit
liblscp
qsampler


2. Extraer y mover a nuestro directorio de fuentes

Extraemos con botón derecho y movemos los directorios creados a nuestro directorio de fuentes, por ejemplo, /home/usuario/fuentes

3. Compilar e instalar libgig

~/fuentes/libgig-3.3.0$ ./configure

Si "configure" nos da algún error es porque falta alguna librería. En este caso instalaremos el paquete de desarrollo de esta librería. Normalmente es fácil de adivinar, por ejemplo, si echa en falta libsndfile, lo podemos buscar en synaptic y nos encontramos 'libsndfile1-dev'. También, si es la primera vez que compilamos algo, necesitaremos el paquete 'build-essential' y seguramente alguno más. "Configure" nos pondrá sobre la pista. Ante la duda, no instalaremos paquetes a lo loco. Mejor volver a ejecutar "configure" hasta que deje de quejarse. Entonces, compilamos con:

make

e instalamos con:

sudo make install

4. Compilar e instalar linuxsampler:


./configure no da error pero advierte que no encuentra sqlite, necesario para cargar bases de datos de instrumentos. Instalo libsqlite3-dev.
Vuelvo a hacer ./configure.

El mensaje final me dice:

# MIDI Input Drivers:
# ALSA: yes, JACK: yes, CoreMIDI: no, MME: no, MidiShare: no
#-------------------------------------------------------------------
# Audio Output Drivers:
# ALSA: yes, JACK: yes, ARTS: no, CoreAudio: no, ASIO: no
#-------------------------------------------------------------------
# Building sampler as plugin for following host standards:
# DSSI: yes, LV2: no, VST: no, AU: no
#-------------------------------------------------------------------#

Esto significa que tengo soporte MIDI y audio para alsa y para Jack, pero no puedo lanzar linuxsampler como un plugin LV2 ni como un plugin VST. Lo segundo no me interesa, ya que si bien podría hacerlo funcionar con vsthost de dssi-vst (por ejemplo), me parece absurdo ya que ese host de VST lo tengo precisamente para los que no tengo opción nativa para linux. ¿Pero, sería interesante tener linuxsampler como plugin LV2? ¡No parece mala idea!

Inciso: Soporte para LV2


Hace falta lv2core, que podemos instalar siguiendo las instrucciones que se dan aquí. Volvemos al directorio de linuxsampler y otra vez:

./configure
...
# Building sampler as plugin for following host standards:
# DSSI: yes, LV2: yes, VST: no, AU: no

Ahora sí, ya podremos tener linuxsampler en un host de LV2 (y también en un host de dssi, como Rosegarden, esto es porque en ubuntustudio-audio-plugins viene instalado el soporte para dssi y ya teníamos las librerías instaladas).


5. Gigedit:

./configure

me ha dado el siguiente error:
configure: error: Your intltool is too old. You need intltool 0.35.0 or later.

Voy a synaptic y busco intltool. Lo instalo. En el segundo intento de configure me dice:

No package 'gtkmm-2.4' found
No package 'gthread-2.0' found

Los busco en synaptic e instalo libgtkmm.-2.4-dev y sus dependencias.

Sin embargo, configure me advierte que no encuentra linuxsampler (?). No sé por qué ocurre esto pero pruebo a volver al directorio de linuxsampler y hacer otra vez ./configure, make y sudo make install.

Otra vez al directorio gigedit. "configure", ahora sí, me dice:
checking for LINUXSAMPLER... yes
Found linuxsampler 0.5.0

make y sudo make install, terminan con éxito (no hay mensajes de error).

5. liblscp


./configure
make
sudo make install

Como la seda

6. qsampler
./configure

checking for Qt library version >= 4.1... no; Qt 4.1 or greater is required

¿Qué hace falta aquí? Como ya deberíamos haber leido en el README, necesitamos qt 4.
Vamos a ir a synaptic y hacer una búsqueda por qt. Instalaremos libqt4-dev

"configure" termina bien. Sólo veo una cosa rara:
libgig supports fast information retrieval . . . .: no
No creo que sea importante. Seguimos con make y sudo make install... EXITO.

"""""""""""""""""""""""""""""""""""""""""

Vale, se supone que ya hemos terminado. Vamos a lanzar qjackctl y después qsampler. qsampler aparece en el menú de sonido y video... Parece que no va. Si lo lanzamos desde terminal:

~$ qsampler
qsampler: error while loading shared libraries: liblscp.so.6: cannot open shared object file: No such file or directory

Problemilla. Vamos a localizar liblscp:

$ sudo updatedb
$ locate liblscp

Entre otros:
/usr/local/lib/liblscp.so.6

En realidad existe pero no la encuentra. Esto es porque qsampler espera esa librería en /usr/lib, no en /usr/local/lib. Podemos solucionarlo con un enlace simbólico:

sudo ln -s /usr/local/lib/liblscp.so.6 /usr/lib/liblscp.so.6

Solucionado.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

qsampler, con qjackctl

Nota 1: Si seguiste el método de instalación de LV2 que dí en la revisión 0, borra las librerías de slv2 en /usr/local/lib después de haber seguido el método referenciado en la revisión 1 (sudo rm /usr/local/lib/libslv2* será suficiente)

25 comentarios:

  1. Bueno Pablo, por fin alguien postea como instalar este fabuloso sampler desde el principio. Versiones como 64 studio lo llevan integrado y ubuntu nunca. Supongo que serà por alguna razón. Voy a seguir tus pasos a ver si llego a buen puerto.

    Gracias Pablo.

    ResponderEliminar
  2. Muchísimas gracias, me has ayudado mucho. Nunca había logrado compilarlo al no tener conocimientos sobre el tema. Tengo Ubuntu 64bits y éste era el único programa que me faltaba por instalar y no sabía al no tener los debs. El próximo paso será saber optimizarlo para mi máquina, como explica Luis Garrido.

    ResponderEliminar
  3. Por fin tengo en mi ubuntu el qsampler funcionando. La verdad es que da pena que te lo ofrezcan y que luego no funcione. Muy agradecido pablo. Al igual que Paco me funciona en 64 bits. Muchas gracias por tu inestimable ayuda

    ResponderEliminar
  4. He colgado el post en otro sitio Pablo. Pido disculpas por mi error.

    ResponderEliminar
  5. Xavi dijo:

    Saludos Pablo, sobre el qsampler a mí me aparece en jack cuando creo los canales sobre el mismo programa. El problema lo tengo cuando cargo un instrumento sobre jack 0 y no puede crearlo. Puede que sea por usar jack en el audio y midi en el alsa? En otros ordenadores si funciona. Akí karmic 64 bit i jack sobre driver fireware. Éste es el mensaje que ofrece

    19:58:34.464 Could not get current list of channels. Sorry.
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    _lscp_client_evt_request: send: Broken pipe
    19:58:49.049 Channel 0 Some channel settings could not be set. Sorry.

    6 de enero de 2010 11:05

    ResponderEliminar
  6. Hola Xavi, he borrado el comentario del otro lado y lo he puesto aquí. No pasa nada.

    La verdad que no te puedo decir nada seguro. Puede ser que sea el mismo problema que aparece aquí:

    https://bugs.linuxsampler.org/cgi-bin/long_list.cgi?buglist=115

    Puedes probar lo que dice Dominic, con una de estas dos opciones:

    Recompilar linuxsampler con la opción CXXFLAGS=-01:

    make clean
    ./configure CXXFLAGS=-01
    make
    sudo make install

    Recompilar linux sampler con la versión gcc-4.2 del compilador:

    Instalar gcc-4.2
    make clean
    export CC=gcc-4.2
    make
    sudo make install

    A Paco: De nada, me alegro de que funcione. Gracias por tu comentario

    ResponderEliminar
  7. Gracias por solucionar mi error de publicación Pablo.

    He recompilado de las dos maneras y sigue sin querer funcionar. De todas formas, muchísimas gracias por tu interés. Seguiré peleando a ver si suena la flauta :)

    ResponderEliminar
  8. Xavi,

    A ver si así soluciona:

    Cuando estás en la ventana de Qsampler:Devices, no la cierres si el panel de abajo a la derecha ("Channel" en Audio o "Port" en MIDI) está activo. Para desactivarlo, pincha a la izquierda en 'Audio Devices' o en 'MIDI Devices'. Con eso, ya se apaga y ya es seguro cerrar esa ventana. Esto es independiente de si el driver midi es jack o es alsa.

    He comprobado que si no lo hago así, a mí también me da error, que normalmente no es crítico. Pero a veces qsampler se cierra con un fallo de segmentación.

    Lo he visto de pura casualidad aquí:

    http://wiki.archlinux.org/index.php/Linuxsampler

    ResponderEliminar
  9. La cosa sigue igual amigo Pablo. Gracias compañero por tu interés y por tu tiempo. Seguiremos probando.

    Saludos

    ResponderEliminar
  10. Hey! hola, muchas gracias por la publicación, he seguido todo paso a paso y ahora ya tengo sonando linux sampler con qsampler... intenté instalar también jsampler pero no me resultó...
    por ahora comienzo a probar con qsampler.
    ¿alguna recomendación de librerías gig? ya me baje un piano de la página de linuxsampler, está muy bueno.
    saludos y gracias nuevamente!

    ResponderEliminar
  11. hola, ante todo muchas gracias por este excelente tuto sobre como instalar linuxsampler, segui las indicaciones aqui dadas y logre instalarlo, pero te cuento que cuando lo inicio me tira el siguiente error: "Could not connect to server as client", en el campo que supongo es el destinado a los 'mensajes' del programa mismo dice: "lscp_client_create: cmd: connect: Conexión rechazada",


    te cuento que cuando hago ./configure sobre la carpeta: linuxsampler me tira esta información:

    checking for the pthreads library -lpthreads... no
    checking whether pthreads work without any flags... no
    checking whether pthreads work with -Kthread... no
    checking whether pthreads work with -kthread... no
    checking for the pthreads library -llthread... no
    checking whether pthreads work with -pthread... yes
    checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
    checking if more special flags are required for pthreads... no
    checking for NPTL bug... no
    checking uuid/uuid.h usability... no
    checking uuid/uuid.h presence... no
    checking for uuid/uuid.h... no
    checking for library containing uuid_generate... no
    checking alsa/asoundlib.h usability... no
    checking alsa/asoundlib.h presence... no
    checking for alsa/asoundlib.h... no
    checking Alsa version... 1.1.1
    checking for JACK... no
    checking for artsc-config... no
    checking for ARTS artsc - version >= 0.9.5... no
    *** The artsc-config script installed by ARTS could not be found
    *** If ARTS was installed in PREFIX, make sure PREFIX/bin is in
    *** your path, or set the ARTS_CONFIG environment variable to the
    *** full path to artsc-config.
    checking for ASIO headerfile: ./ASIOSDK2/common/asio.h ....no
    checking MidiShare.h usability... no
    checking MidiShare.h presence... no
    checking for MidiShare.h... no
    checking CoreMIDI/CoreMIDI.h usability... no
    checking CoreMIDI/CoreMIDI.h presence... no
    checking for CoreMIDI/CoreMIDI.h... no
    checking CoreAudio/CoreAudio.h usability... no
    checking CoreAudio/CoreAudio.h presence... no
    checking for CoreAudio/CoreAudio.h... no
    checking for mmsystem.h... (cached) no
    checking dssi.h usability... no
    checking dssi.h presence... no
    checking for dssi.h... no
    checking for LV2... yes
    checking AudioUnit/AudioUnit.h usability... no
    checking AudioUnit/AudioUnit.h presence... no
    checking for AudioUnit/AudioUnit.h... no
    No supported MIDI input system found!
    Sorry, LinuxSampler only supports the following MIDI drivers at the moment:
    ALSA, JACK, MIDIShare, CoreMIDI, MME.
    If you think you have one of those available on your system, make sure you
    also have the respective development (header) files installed.

    y, cuando hago un ./configure sobre la carpeta 'gigedit' arroja estos datos:

    checking for LINUXSAMPLER... no
    Required liblinuxsampler version not found!
    You need to have liblinuxsampler version 0.5.0
    installed. Support for on-the-fly editing with LinuxSampler will
    be disabled.

    la instalación de 'linuxsampler' la estoy haciendo sobre ubuntustudio 9.04, ya tengo composiciones con los programas de esta distro y estoy mas que satisfecho, ahora quiero usar las librerias .gig con este programa (segun he leido en foros -mediante los cuales llegue {de nuevo} a "semicorchux") y aqui estoy trabado

    te pido ayuda por favor si fueses tan amable

    desde ya gracias de nuevo por las instrucciones que has compartido y espero tu respuesta (cuando puedas)

    Saludos.
    te pido ayuda -por favor si fueses tan amable-

    ResponderEliminar
  12. Hola Marcelo,
    Te faltan algunas librerías de desarrollo.
    Para esta explicación, yo ya tenía instaladas de antes varias de ellas, las más básicas. En total, necesitas, al menos y además de los nombrados en la explicación, los siguientes paquetes :
    libasound2-dev
    libjack-dev
    uuid-dev
    dssi-dev (no estrictamente necesario pero no hace mal)

    Puede que me deje alguno. Los instalas con synaptic o apt-get y vuelves a intentarlo. Si algo va mal, para pegar las salidas de terminal extensas te ruego que uses www.pastebin.com o similar, y dejas aquí la dirección.
    A veces suelo estar en IRC, canal #musica-linux en el servidor irc.freenode.net y si no estoy liado puedo ayudar a través de chat.
    Ya contarás. Saludos.

    ResponderEliminar
  13. hola Pablo

    * pido disculpas por haber pegado una salida de terminal extensa

    * instale las librerias que me sugeriste y cuando volvi a ejecutar ./configure sobre la carpeta 'linuxsampler' me devolvio el mensaje:

    checking for LINUXSAMPLER... yes
    Found linuxsampler 0.5.0

    * pero sigo sin poder ejecutar al programa, una de las lineas que me devuelve ./configure sobre la carpeta 'linuxsampler' dice esto:

    checking for SQLITE3... no
    *** Required sqlite version not found!
    *** You need to have sqlite version 3.3 or higher

    de sqlite3 tengo instalada la version 3.6.10, busque en la pagina web de los repositorios de ubuntu y en el directorio 'sqlite3' no figura ninguna version 3.3 or higher (segun lo pide linuxsampler), y: aca me quedé

    * agradezco enormemente la ayuda que me has brindado Pablo, y -por favor- te pido si pudieses darme una idea de como seguir

    gracias y saludos

    ResponderEliminar
  14. hola Pablo

    * instale las librerias que me sugeriste y al volver a ejecutar ./configure sobre la carpeta 'linuxsampler' me devolvio este mensaje:
    checking for LINUXSAMPLER... yes
    Found linuxsampler 0.5.0
    -> gracias

    * pero sigo sin poder ejecutar al programa (linuxsampler), hice nuevamente ./configure sobre la carpeta antes dicha y una de las lineas que devuelve el mensaje del terminal es esta mira:

    checking for SQLITE3... no
    *** Required sqlite version not found!
    *** You need to have sqlite version 3.3 or higher
    me fije en la pagina web de los repositorios de ubuntu y en la carpeta 'sqlite3' no figura ninguna version 3.3 (tengo instalada la version sqlite3_3.10.26), y aquí me quedo varado...

    * te pido por favor (cuando tengas tiempo y ganas) una sugerencia de como seguir

    gracias por tu valiosa ayuda Pablo
    saludos

    ResponderEliminar
  15. Pablo:

    * hice nuevamente todo lo que aqui has indicado pero teniendo especial cuidado en seguir los pasos tal y como lo has especificado y : ARRANCO EL PROGRAMA!! estoy re-contento

    * 2 cosas: 1) te pido que sepas disculpar mi poca prudencia al pedir ayuda sin antes hacer las cosas que tenia que hacer 2) muchisimas gracias por tu ayuda desinteresada, gracias Pablo, has sido muy amable

    cordialmente. Marcelo Regazzoni.

    ResponderEliminar
  16. Me alegro de que ya funcione :) No tienes que pedir disculpas. Has hecho muy bien en pedir ayuda, yo también me he quedado atascado muchas veces y por desgracia, no enseñan Linux en las escuelas. Estamos aprendiendo.
    Saludos y a disfrutar de linuxsampler! Pablo

    ResponderEliminar
  17. Hola, a mí me da el "fallo de segmentación" que nombras, Pablo, pero es que me da nada más arrancar qsampler. Cuando termina de arrancar, sin darme opción a poder hacer nada se cierra con ese fallo. ¿Alguien sabe la solución? Jsampler sí me funciona, es la alternativa que me queda, pero prefería qsampler.

    Gracias de antemano.

    ResponderEliminar
  18. Trigue,a mí me pasaba igual, desinstale el Qsampler con sudo make uninstall, y luego lo volví a instalar desde los repositorios, y ya funcionó.

    ResponderEliminar
  19. Muchísimas gracias, sí se me ha solucionado con sudo make uninstall, es que no conocía este comando.

    Saludos

    ResponderEliminar
  20. hola Pablo

    tuve que desinstalar (entre otros programas) linuxsampler (por la actualizacion que habia hecho del repo de falk). Volví a gestionar la compilación e instalación de libgig,
    linuxsampler, gigedit, liblscp y qsampler, al tipear por consola ./qsampler la salida dice: Fallo de segmentación y se cierra. Linuxsampler anduvo de diez hasta el 'desastre' = actualizacion.

    Te pido ayuda por favor como solucionar este fallo.

    Saludos

    ResponderEliminar
  21. Hola Marcelo, perdona la tardanza. Puedes probar dos cosas. La primera es jsampler en lugar de qsampler. Básicamente hace lo mismo y creo que esta KXstudio. La segunda es, si tienes el repo oficial de lucid activado, en synaptic seleccionas qsampler, menú paquete, forzar versión, y eliges la del repo oficial. Bueno, y si compilaste / instalaste qsampler, prueba a desinstalarlo e instalarlo por repos.

    Saludos, Pablo

    ResponderEliminar
  22. hola Pablo

    * gracias por la indicación, ya esta funcionando "Qsampler" nuevamente
    * aprendí (vía línea dura mediante) lo que sugerís en una entrada en hispasonic: "andar con pies de plomo luego de activar una repo...", pero lo importante es que retomé la configuración anterior (o al menos parecida) y funciona el aparato-producción-musical.

    1) te pregunto: Ismale (ivalladt) sugiere los kernels de Tapani, tenes idea si los kernels de Musix son compatibles con Ubuntu Studio Lucid?. Trate de instalar el 2.6.31.1.rt4 y no arrancó

    gracias Paul.
    Saludos.

    ResponderEliminar
  23. fe de erratas: Ismale es -en realidad- Ismael, disculpas Ismael Valladolid.

    ResponderEliminar
  24. Ismael sugirió hace un montón de tiempo. Los tiempos cambian. Nunca te fíes de nada que sea muy concreto, de hace más de un año y encima muy complicado. Sólo intenta ser el primero en probar algo así cuando estés seguro de que te gusta el solo hecho de probarlo.

    Saludos, Pablo

    ResponderEliminar
  25. Magníficas instrucciones para ubuntustudio 12.4 también. En mi caso libgig y lv2core los he instalado desde los repositorios.
    Mil gracias, amigo.

    Javier desde Elche.

    ResponderEliminar