sábado, junio 27, 2015

Ubuntu y la Interfaz de audio Motu Ultralite MK3

Comparto con la honorable audiencia como hice funcionar la interfaz de audio Motu Ultralite MK3 en Ubuntu.

Un breve paso a paso (que pretendo complementar en algún momento):
  1. Desinstalar jack y todos sus derivados, los volveremos a instalar pero no aún.
  2. Instalar los repositorios de KXStudio
  3. Instalar ffado, procure utilizar los paquetes que provee Ubuntu. Evite ponerse creativo tratando de instalarlos desde las fuentes.
  4. Instalar jack2, no olvide instalar jack2-firewire (por eso es importante instalar ffado primero)
  5. Reiniciar el equipo con la interfaz conectada al Firewire (tristemente no funciona por USB)
  6. Después de reiniciado y nuevamente habiendo ingresado a su sesión de usuario, verificar que se haya creado un nuevo dispositivo Firewire, en mi caso fue el /dev/fw1 y que su grupo sea audio.
  7. Si el grupo no fuera audio (y fuera root), ejecute:
    • id , para saber a que grupos pertenece su usuario
    • Si audio no fuera uno de los grupos, agréguese al grupo audio. Si el grupo audio no existiera, creelo y después agréguese.
  8. Edite el archivo /etc/udev/rules.d/z95_firewire.rules de modo que contenga lo siguiente:
# /etc/udev/rules.d/z95_firewire.rules

# Set GROUP="video" for some IEEE 1394 device types, driven by the new firewire stack.
# We cannot use the GROUP directive because the significant device type attributes
# live in child devices. So change the group after the fact with chgrp.

# IIDC devices: industrial cameras and some webcams
KERNEL=="dv1394*|video1394*|raw1394*|fw[0-9]*",    GROUP="video"

# libraw1394 older than v2.0.1 and some special-purpose applications also need
# access to the local node(s).  Alas there is no simple way to tell local nodes apart
# from remote ones; here is a simple hack.

#SUBSYSTEM=="firewire", ATTR{vendor_name}=="Linux Firewire", GROUP="video"
# Or if your application needs access to all nodes, simply use:

SUBSYSTEM=="firewire", GROUP="audio"
  1. Liste los dispositivos que tiene instalados
    sudo ffado-test ListDevices
    -----------------------------------------------
    FFADO test and diagnostic utility
    Part of the FFADO project -- www.ffado.org
    Version: 2.2.1-
    (C) 2008, Daniel Wagner, Pieter Palmers
    This program comes with ABSOLUTELY NO WARRANTY.
    -----------------------------------------------

    === 1394 PORT 0 ===
      Node id  GUID                  VendorId     ModelId   Vendor - Model
       0       0x0001f200000a65ff  0x000001F2  0x00107800    -
       1       0x001e8c00002be2e7  0x00001E8C  0x00000000   Linux Firewire -
    no message buffer overruns
  2. Ajuste el archivo /etc/udev/rules.d/60-ffado.rules para que incluya la línea exacta a su interfaz. Yo hice la actualización de Firmware a la versión 1.07 así que edité el archivo agregando la línea correspondiente:
    ATTRS{vendor}=="0x0001f2", ATTRS{model}=="0x000000", GROUP="audio", ENV{ID_FFADO}="1" # Motu, All of them
    ATTRS{vendor}=="0x0001f2", ATTRS{model}=="0x107800", GROUP="audio", ENV{ID_FFADO}="1" # Motu Ultralite
  3. Actualice las reglas (y así se evita reiniciar)
    sudo  udevadm control --reload-rules
    repita el paso 6, y si ha realizado todo como corresponde el grupo debiera ser audio.
  4. Pruebe la interfaz:
    1. Active el ffado-dbus-server
    2. Active jack con jack -d firewire
    3. Active qjackctl. Debiera abrirse un panel con todos los canales de la interfaz . Ahí puede jugar a hacer mapeos y pruebas varias.
Lo único que de momento no me ha agradado mucho es que no he encontrado una manera de controlar el volumen de cada canal, y que contrario a una tarjeta de sonido USB "plug & play" no se puede rutear el audio de aplicaciones hacia la interfaz si pasar por jack.

Espero que esto le sirva a alguien más aparte de mi.