domingo, 28 de mayo de 2017

Cadence: paquetes y configuración para sacarle el máximo partido a Jack

Hacía muchísimo tiempo que no publicaba una entrada sobre audio en GNU/Linux (Linux Mint 18 en mi caso). Esta entrada tiene su origen con motivo de unas inquietudes, surgidas en el grupo de Telegram Home Studio Libre (@HomeStudioLibre), acerca del poder que tienen algunas aplicaciones, como Mixxx, de apoderarse de todo el audio del equipo mientras están funcionando.

Después del "Leer más..." continuamos

Cadence es un "centro de control" de múltiples herramientas de audio, entre ellas Jack y algunas utilidades relacionadas con el rendimiento del equipo. Se podría decir que es una alternativa a QJackCtl, pero como veréis, va mucho más allá.

Para instalarla, primero hay que cargar los repositorios de KXStudio, en el caso de usar Ubuntu o Debian, o derivadas de estas. Los usuarios de Arch y derivadas lo tienen más fácil, todo el software de KXStudio está en AUR. Para más información recomiendo visitar esta página o ver el siguiente vídeo.

Una vez instalada Cadence, paso a compartiros mis anotaciones personales sobre la configuración y paquetes necesarios para aprovechar Cadence y Jack al 110%.

Puente para Pulseaudio

Una de las mejores cosas que tiene Cadence es que permite establecer un puente entre Pulseaudio y Jack. Esto hace posible, por ejemplo, ver un vídeo de YouTube, mientras practicamos con la guitarra, usando Rakarrack o Guitarix como ampli, a través de Jack.

Para ello, además de Cadence, necesitamos instalar el paquete pulseaudio-module-jack (en Arch y derivadas es pulseaudio-jack).

Para no preocuparse de arrancar todo al encender el equipo, recomiendo marcar las casillas "Auto-start JACK or LADISH at login" y "Auto-start at login" del módulo de PulseAudio de Cadence (tal como está en la captura de pantalla).

Puente MIDI entre Jack y ALSA

Al igual que el puente para Pulseaudio, lo proporciona Cadence en su interfaz, desde donde se puede activar, pero para que funcione hay que tener instalado el paquete a2jmidid.

Sirve para conectar aplicaciones que usen el protocolo de ALSA para MIDI con las que utilizan el protocolo de MIDI de Jack, que no son compatibles entre sí. Este puente resuelve este problema.

CPU Scaling Governor

Para habilitarlo, hay que instalar el paquete indicator-cpufreq.

Según el manual de KXStudio:

This lets you select the CPU Scaling Governor, a property of the Linux kernel which controls the CPU speed. In 'performance' mode, your CPU will run at full speed all the time. This mode consumes the most power but ensures the best performance and minimum CPU-related sound issues. In many cases (especially on battery powered devices) using 'ondemand' makes more sense as this ups the CPU speed when its needed but clocks it back down when the computer is idle which helps save power. Note: to enable this option in KXStudio 12.04.1, you must first install “indicator-cpufreq” but this will be included on install in 12.04.2.

En resumidas cuentas, que te permite controlar el rendimiento de la CPU

Configuración adicional

Todo lo de este apartado lo he aprendido de blogs como el de Pablo F. Me limito a reproducir y sintetizar un poco lo aprendido por ahí.

Añadir al fichero /etc/security/limits.conf estas líneas:

@audio - rtprio 99

@audio - memlock unlimited

@audio - nice -19

Es necesario reiniciar el equipo para que estos cambios tengan efecto.

Una vez ha reiniciado, podemos comprobar si ha tenido efecto dando esta orden en una terminal:

ulimit -r -l

Con esto hemos modificado la manera en que el kernel hace uso de la CPU y la memoria, dando prioridad a los procesos que nos interesan, que son los de audio de baja latencia en nuestro caso.

Es recomendable instalar un kernel de baja latencia, pero no imprescindible según mi propia experiencia.

Además, hay que agregar nuestro usuario al grupo audio del sistema, si no lo estuviera ya.

sudo adduser usuario audio

Para que el cambio funcione también hay que reiniciar. Lo recomendable es editar el fichero limits.conf, añadir el usuario a audio y reiniciar. De esta manera lo hacemos todo de una sola vez.

Espero que esta entrada os sea de utilidad.

Puedes visitar la entrada original en www.JoseGDF.net, leer los comentarios e incluso dejar el tuyo, si lo deseas.

16 comentarios:

  1. Buena guía voy a seguirla paso a paso

    ResponderEliminar
  2. Todo iba de cine, el vídeo , genial
    Hasta que leí "instalamos Cadence" como? de donde? ya entiendo que será desde los repositorios que agregamos
    Pero cual es la sintaxis?
    el que no sabe tiene pánico de k...rla
    La otra, instalo Cadence. pero si no se usarlo es igual que no tenerlo, y he leído por alli "conectas..." si pero como. arrastras, abres primero lo que quieres conectar?
    los que saben terminan hablando como si los quie los leemos supiéramos lo mismo que ellos
    pero bueno gracias por lo que aprendí

    ResponderEliminar
    Respuestas
    1. En Debian y derivadas (Ubuntu, Mint...), tras instalar los repositorios de KXStudio y hacer "sudo apt update", pon esto para instalar Cadence:
      "sudo apt install cadence"

      La segunda parte no la he entendido.

      Eliminar
  3. Hola Jose,
    he seguido tus instrucciones al pié de la letra,... y no tengo sonido en absoluto
    tengo dos tarjetas, la de la placa base, con un i5 y una usb, 8 gigas de ram ubuntustudio 18
    cuando abro cadence me muestra sitema, pulse audio jack source pulse audio jack sink y system
    Lo que intento, (que en windows con las dos tarjetas me va perfecto) es usar Mixxx con un procesador de sonido
    en la salida de audio, cosa que en windows va perfecto para la música, pero no puedo hacer que lo haga con el micro
    intenté Asioall, VoiceMeeterBanana, sin éxito
    Como hace diez años que intento usar linux, probando montones de distros, (estuve años intentando hacer funcionar InternetDJConsole, (sin éxito) pero como Mixx funciona en linux, me encantaría abandonar windows en este tema
    Alguna sugerencia???
    Un cordial saludo

    emerson

    ResponderEliminar
  4. Lo unico que no pude/supe hacer es la modificacion del archivo limits.conf, no se como entrar como root, ya que no me deja guardar los cambios
    Cual sería la sintaxis para hacerlo con el terminal??
    graciassss

    ResponderEliminar
  5. Antes de nada quiero disculparme por no haber atendido antes los comentarios moderados. Tengo el blog parado hace meses y tampoco entro al panel de Blogger.

    Si Cadence/Jack no te funciona ni te da sonido, es posible que tu hardware de sonido no esté soportado. Te remito a la wiki de Home Studio Libre, donde puedes encontrar páginas con información sobre hardware soportado.

    En cuanto a la edición del fichero de configuración, suelo entrar con nano de la siguiente manera:

    sudo nano /etc/security/limits.conf

    Te pedirá la clave y entrarás. Haces los cambios, y para guardarlos hay que hacer Control+O (es la letra "o") y Enter, y para cerrar nano, Control+X y Enter.

    Tal vez debería incluirlo en la entrada. A partir del minuto 5:40 del vídeo "Instalación de Ardour 5.11 y configuración del sistema" se explica detalladamente.

    ResponderEliminar
  6. He vuelto al blog mas por si a otros les pasa lo mismo que a mi, para compartir mis experiencias
    Segui las instrucciones de GDF al pie de la letra en Ubuntu y funcionó perfectamente, despues de las normales idas y vueltas que tiene linux
    Lo que me llamaba la atención era que el equipo se quedaba sin recursos en el momento que abría Cadence, aun en el modo "Powersave" (a pesar de tener un intel i5, 12 megas de Ram y disco duro sólido
    No obstante con esas limitaciones llegue a funcionar
    Un dia se me ocurre que si pongo un escritorio mas ligero el consumo de recursos sería menor, y me ayudaría con el tema de cadence
    Craso error,
    En la red hay montones de "gurús" y cada uno te cuenta su historia, que muchas veces no es mas que un copia/pega de otro, el caso es que instale Plasma con muy malos resultados
    intentando quitarlo sin resultados, al final reinstalé Ubuntu, Focal Fossa, volví a instalar todos los programas y los paquetes que había tenido, de la misma manera, pero ahora Cadence ni siquiera arranca, y cuando jack se enciende, el equipo se congela
    A todo esto, cientos de horas perdidas para nada
    Asi que si tu eres uno de esos que le sobra el tiempo y tu vida es vivir en google, te lo recomiendo: usa linux
    Pero si no es asi, huye despavorido, es la manera mas efectiva de perder el tiempo

    ResponderEliminar
  7. bajo la cabeza
    pido disculpas, pero todavía me estoy entrenando en esto de la frustración
    He leído por alli que hay que instalar Jack2 para poder manejar dos tarjetas de sonido
    Pero tengo Cadence y me da la opción de modo duplex. Lo que no me da nadie, es la opcion de enrutar el audio de cada tarjeta, en Catia por ejemplo, porque solo veo System con dos canales. en un mundo ideal, tendría que poder usar el micro con una tarjeta y el playback con otra, de esa manera podría aplicar unos plugins a la voz y otros a la música, pero parece ser que eso en linux no se puede
    Instale Ardour, pero con ese programa no se puede usar mp3, asi que paso de el, por muy bueno que sea, en las conversiones siempre se pierde calidad, digan lo que digan los gurús
    Entonces instale Reaper para Linux, que en windows me va genial
    pero no tengo sonido en el micro, (en realidad no tengo sonido en nada, pero lo del playback espero solucionarlo) el caso es que parece ser que hay que instalar cosas para que jack "vea" dos tarjetas, y no se que jack tendré porque me imagino que es el que se instaló al instalar cadence...
    En fin, como Tarzán, en bolas y a los gritos

    ResponderEliminar
    Respuestas
    1. Si quieres usar dos tarjetas de sonido a la vez con Jack, olvídate de Cadence y prueba Ubuntu Studio Controls. Permite hacer este tipo de cosas y más. Te desinstalará Cadence, porque son incompatibles entre sí, pero si logras lo que quieres hacer, saldrás ganando.

      No te va a servir de consuelo, pero te lo digo igualmente: esta semana he estado peleando con una actualización de Calf Plugins que me ha dejado hechas mierda varias sesiones de Ardour, y hace escasos minutos la he tenido con el plugin de baterías DrumGizmo, que me bloqueaba la memoria. Hasta que lo he solucionado las he pasado putas.

      Estos son los inconvenientes que tiene el software libre. No los hace ninguna empresa potente ni ningún desarrollador que se dedique en exclusiva a satisfacer a todos y cada uno de los usuarios. Nadie nos ha mandado meternos en estos fregaos, así que creo que tampoco tenemos derecho a quejarnos si algo falla. Menos aún si no reportamos los errores que nos vamos encontrando, ni hacemos alguna donación de vez en cuando.

      Por otra parte,no deberíamos intentar usar un sistema operativo pensando que es otro, porque nos la vamos a dar en la frente seguro.

      A ver si te va bien con Ubuntu Studio Controls. Lo puedes instalar relativamente fácil si usas Ubuntu o una derivada, y viene preinstalado en Ubuntu Studio. Yo voy a pegar unos cuantos gritos a lo Tarzán también, que menuda tarde me ha dado Drumgizmo...

      Eliminar
  8. he dado un monton de vueltas para aplicar lo que enseñas para los podcasts a la radio online. No lo conseguí, me harté y lo abandoné
    Pero pasa el tiempo y se me pasa el cabreo y vuelvo a intentarlo: encontre un tutorial de "sargantana"donde explica un EQUIVALENTE A VOICEMEETER PARA LINUX yaunque no es tan completo como Voicemeeter en windows, parece que funciona.
    El caso es que instale Linux Mint 2020, que no acepta igual de bien las instalaciones de Carla, pero ya veremos; instalé Cadence, pero no me aclaro como instalar Jack Mixer, (aparentemente no esta en los repositorios de Mint)
    De acuerdo con el grafico del diagrama de conexiones que explica Sargantana, a mi me vendría de perlas
    Alguna idea de como instalar Jack Mixer en Mint?
    Gracias anticipadas

    ResponderEliminar
    Respuestas
    1. Lo tendría que mirar. Tengo una instalación reciente de Mint 20. Probaré a ver qué me encuentro, y a ver cómo se puede instalar alternativamente, en el caso de que se pueda.

      Disculpas por la demora en liberar los comentarios y responder. Tengo el blog un poco parado.

      Eliminar
    2. Efectivamente, no se encuentra jack-mixer entre los repositorios.

      Puede que haya algún repositorio que los tenga, pero yo para instalarlo he hecho lo siguiente:

      He entrado en esta página, que es el repositorio de Groovy. Es la lista de paquetes disponibles. Ahí he encontrado jack-mixer en la lista. He accedido haciendo clic en su nombre a esta otra página, he buscado más abajo la arquitectura de mi máquina y me he bajado el paquete deb, que he instalado manualmente. Lo he probado unos minutos y funciona.

      Espero que te sirva. Si no, le podría servir a alguien más que vaya buscando lo mismo.

      Eliminar
  9. No había leído bien tu repuesta
    instalare ubuntu studio controls a ver que tal, ya te contaré, (tu experiencia me tranquiliza, la verdad y la verdad como un templo es eso que dices de "uno no debe usar un SO pensando que es otro, Genial!!)

    ResponderEliminar
  10. Desde Mayo, si por Mayo, cuando viene la calor, cuando los enamorados van a servir al amor...."
    Chanzas aparte, desde mayo que intento que el sonido funcione como yo quiero, para una tarea tan simple como emitir on-line
    Experiencias Propias
    Sin la inestimable ayuda de JoseGDF, esto no hubiera sido posible, claro que hay que adaptar sus consejos para la grabación a la tarea de la emision
    Y ademas alguna cosa que he leído y visto en otros sitios como el del Yo-Yo
    De todas las distros que probé para esto la ÜNICA que no me dio fallos o falencias fue Ubuntu, y probé Mint, AVLinux, Y Manjaro
    Como Mixxx se quedaba con todos los recursos, probé Audacious, me encantó, pero no pude descubrir como se hace para modificar el sample rate de salida, asi que me quedé con VLC que funciona bastante bien
    Para lanzar la señal, claro, tuve que agregar Butt, pero no me dio problemas, de momento
    para Mezclar use Jack-Mixer, que aunque tiene una interfaz minimalista y no tiene las prestaciones de Voicemeeter de windows, tampoco tiene la pérdida de calidad ni los ruidos de esta
    El entorno gráfico de los pluguins de Calf funcionaban bien en AVLinux y Ubuntu, y mal en el resto
    Finalmente estoy satisfecho
    Para otros que lean, quiero compartir que he aprendido con los monumentales cabreos y frustraciones, y las eternas horas pasadas en Google, que al final lo consigues. Siempre pense que Linux era solo para escribir cartas, pero este proceso me ha enseñado que si persistes y hallas las personas indicadas para aprender de ellas, al final lo consigues. Y en el camino, te haces mas sabio
    Por último, Agradecer, El tiempo es algo muy valioso, y las personas que nos dedican el suyo para que otros podamos aprender lo que no sabemos, tiene mucho valor. Vaya por eso mi agradecimiento para Jose,

    ResponderEliminar
    Respuestas
    1. En esta vida, todo cuesta o dinero o tiempo... O ambas cosas. Y la segunda es más valiosa que la primera.

      Gracias por compartir tu experiencia.

      Eliminar

No hay normas especiales para publicar comentarios en este blog. Sólo las básicas: respeta, no insultes, y no hagas SPAM descaradamente. Tampoco se admitirán comentarios que vulneren la Ley. Cualquier aportación, consulta y crítica es bienvenida, a condición de cumplir estas normas básicas.

Si lo que quieres es ponerte en contacto directamente conmigo, dispones para ello de un formulario de contacto.