Ardour doesn't start with FFADO

Hello friends,

I’m running Ubuntu 18.04 LTS without additional ppas and I use a Focusrite Saffire 24 PRO (Firewire) as sound-interface. I installed Ardour 5 and the ffado-mixer using the regular ppas too.

Ardour with JACK and ALSA-drivers works excellent!
When I try to start Ardour with JACK and FFADO-drivers I get the message “could not reconnect to Audio/Midi”’ (translated by myself…maybe another wording in english).

A start of Ardour out of the terminal und trying to create a new project with JACK and FFADO (what not works, see above) and closing Ardour gives the following reply:

$ ardour5 > ardour-ffado-test.log

bind txt domain [gtk2_ardour5] to /usr/share/ardour5/locale
Gtk-Message: 22:34:20.276: Failed to load module “canberra-gtk-module”
Farbe shuttle bg nicht gefunden
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Found nothing along /home/ryan/.config/ardour5/templates:/usr/share/ardour5/templates
run dialog
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JACK command line will be: /usr/bin/jackd -t 200 -p 2048 -R -T -d firewire -n 2 -r 44100 -p 1024
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
no message buffer overruns
no message buffer overruns
no message buffer overruns
1586378118258576: (ffado.cpp)[ 92] ffado_streaming_init: libffado 2.3.0- built Feb 6 2018 19:14:14
05535629324: Warning (dice_eap.cpp)[1811] read: No routes found. Base 0x7, offset 0x4000
05535661589: (dice_avdevice.cpp)[ 713] showDevice: DICE Parameter Space info:
05535661620: (dice_avdevice.cpp)[ 714] showDevice: Global : offset=0x0028 size=0380
05535661653: (dice_avdevice.cpp)[ 715] showDevice: TX : offset=0x01A4 size=0568
05535661654: (dice_avdevice.cpp)[ 716] showDevice: nb= 1 size=0280
05535661661: (dice_avdevice.cpp)[ 717] showDevice: RX : offset=0x03DC size=1128
05535661663: (dice_avdevice.cpp)[ 718] showDevice: nb= 1 size=0280
05535661667: (dice_avdevice.cpp)[ 719] showDevice: UNUSED1 : offset=0x0844 size=0016
05535661668: (dice_avdevice.cpp)[ 720] showDevice: UNUSED2 : offset=0x0000 size=0000
05535661674: (dice_avdevice.cpp)[ 722] showDevice: Global param space:
05535663010: (dice_avdevice.cpp)[ 725] showDevice: Owner : 0x00000000FFC00001
05535664407: (dice_avdevice.cpp)[ 728] showDevice: Notification : 0x00000040
05535668031: (dice_avdevice.cpp)[ 731] showDevice: Nick name : Pro24-0050d7
05535669452: (dice_avdevice.cpp)[ 735] showDevice: Clock Select : 0x01 0x0C
05535671084: (dice_avdevice.cpp)[ 739] showDevice: Enable : false
05535672758: (dice_avdevice.cpp)[ 743] showDevice: Clock Status : locked 0x01
05535674181: (dice_avdevice.cpp)[ 746] showDevice: Extended Status : 0x00000000
05535675859: (dice_avdevice.cpp)[ 749] showDevice: Samplerate : 0x0000AC44 (44100)
05535678095: (dice_avdevice.cpp)[ 752] showDevice: Version : 0x01000C00
05535679779: (dice_avdevice.cpp)[ 761] showDevice: Version : 0x01000C00 (1.0.12.0)
05535681221: (dice_avdevice.cpp)[ 764] showDevice: Clock caps : 0x112C001E
05535683068: (dice_avdevice.cpp)[ 767] showDevice: Clock sources :
05535683096: (dice_avdevice.cpp)[ 773] showDevice: AES1
05535683118: (dice_avdevice.cpp)[ 773] showDevice: AES2
05535683129: (dice_avdevice.cpp)[ 773] showDevice: SPDIF-OPT
05535683143: (dice_avdevice.cpp)[ 773] showDevice: SPDIF
05535683152: (dice_avdevice.cpp)[ 773] showDevice: AES_ANY
05535683168: (dice_avdevice.cpp)[ 773] showDevice: ADAT
05535683180: (dice_avdevice.cpp)[ 773] showDevice: ADAT_AUX
05535683193: (dice_avdevice.cpp)[ 773] showDevice: Word Clock
05535683203: (dice_avdevice.cpp)[ 773] showDevice: Unused
05535683216: (dice_avdevice.cpp)[ 773] showDevice: Unused
05535683227: (dice_avdevice.cpp)[ 773] showDevice: Unused
05535683240: (dice_avdevice.cpp)[ 773] showDevice: Unused
05535683249: (dice_avdevice.cpp)[ 773] showDevice: Internal
05535683264: (dice_avdevice.cpp)[ 776] showDevice: TX param space:
05535683274: (dice_avdevice.cpp)[ 777] showDevice: Nb of xmit : 1
05535683288: (dice_avdevice.cpp)[ 779] showDevice: Transmitter 0:
05535684761: (dice_avdevice.cpp)[ 782] showDevice: ISO channel : -1
05535686178: (dice_avdevice.cpp)[ 784] showDevice: ISO speed : 2
05535688181: (dice_avdevice.cpp)[ 787] showDevice: Nb audio channels : 16
05535689844: (dice_avdevice.cpp)[ 789] showDevice: Nb midi channels : 1
05535691235: (dice_avdevice.cpp)[ 792] showDevice: AC3 caps : 0x00000000
05535692879: (dice_avdevice.cpp)[ 794] showDevice: AC3 enable : 0x00000000
05535694466: (dice_avdevice.cpp)[ 797] showDevice: Channel names :
05535694484: (dice_avdevice.cpp)[ 802] showDevice: IP 1
05535694491: (dice_avdevice.cpp)[ 802] showDevice: IP 2
05535694500: (dice_avdevice.cpp)[ 802] showDevice: IP 3
05535694509: (dice_avdevice.cpp)[ 802] showDevice: IP 4
05535694516: (dice_avdevice.cpp)[ 802] showDevice: SPDIF L
05535694523: (dice_avdevice.cpp)[ 802] showDevice: SPDIF R
05535694529: (dice_avdevice.cpp)[ 802] showDevice: ADAT 1
05535694536: (dice_avdevice.cpp)[ 802] showDevice: ADAT 2
05535694543: (dice_avdevice.cpp)[ 802] showDevice: ADAT 3
05535694549: (dice_avdevice.cpp)[ 802] showDevice: ADAT 4
05535694556: (dice_avdevice.cpp)[ 802] showDevice: ADAT 5
05535694561: (dice_avdevice.cpp)[ 802] showDevice: ADAT 6
05535694568: (dice_avdevice.cpp)[ 802] showDevice: ADAT 7
05535694574: (dice_avdevice.cpp)[ 802] showDevice: ADAT 8
05535694581: (dice_avdevice.cpp)[ 802] showDevice: Loop 1
05535694586: (dice_avdevice.cpp)[ 802] showDevice: Loop 2
05535694597: (dice_avdevice.cpp)[ 806] showDevice: RX param space:
05535694603: (dice_avdevice.cpp)[ 807] showDevice: Nb of recv : 1
05535694610: (dice_avdevice.cpp)[ 809] showDevice: Receiver 0:
05535696144: (dice_avdevice.cpp)[ 812] showDevice: ISO channel : -1
05535698365: (dice_avdevice.cpp)[ 814] showDevice: Sequence start : 0
05535700003: (dice_avdevice.cpp)[ 817] showDevice: Nb audio channels : 8
05535701419: (dice_avdevice.cpp)[ 819] showDevice: Nb midi channels : 1
05535703059: (dice_avdevice.cpp)[ 822] showDevice: AC3 caps : 0x00000000
05535704741: (dice_avdevice.cpp)[ 824] showDevice: AC3 enable : 0x00000000
05535706367: (dice_avdevice.cpp)[ 827] showDevice: Channel names :
05535706383: (dice_avdevice.cpp)[ 832] showDevice: Mon 1
05535706385: (dice_avdevice.cpp)[ 832] showDevice: Mon 2
05535706387: (dice_avdevice.cpp)[ 832] showDevice: Line 3
05535706388: (dice_avdevice.cpp)[ 832] showDevice: Line 4
05535706390: (dice_avdevice.cpp)[ 832] showDevice: Line 5
05535706391: (dice_avdevice.cpp)[ 832] showDevice: Line 6
05535706393: (dice_avdevice.cpp)[ 832] showDevice: SPDIF L
05535706393: (dice_avdevice.cpp)[ 832] showDevice: SPDIF R
Could not register ourselves as owner of Pro24-0050d7.
If the snd-dice kernel driver is present, either use the device via ALSA instead of FFADO, or unload snd-dice before using FFADO.
firewire ERR: Could not prepare streaming device!
Cannot attach audio driver
JackTemporaryException : now quits…
JackServer::Open failed with -1
no message buffer overruns
Failed to open server
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Butler drops pool trash
Here are the errors associated with this failed session:

Errors/Messages:
INFO: Lade 88 MIDI Patches von /usr/share/ardour5/patchfiles


run dialog
Cannot get session parameters.

and the file ardour-ffado-test.log:

Ardour5.12.0 (kompiliert mit Version 1:5.12.0-3 und GCC Version7.3.0)
ardour: [INFO]: Ihre Systemkonfiguration beschränkt Ardour auf nur 4096 offene Dateien
ardour: [INFO]: Lade Systemkonfigurationsdatei /etc/ardour5/system_config
ardour: [INFO]: Lade Benutzerkonfiguration /home/ryan/.config/ardour5/config
ardour: [INFO]: CPU vendor: GenuineIntel
ardour: [INFO]: AVX-capable processor
ardour: [INFO]: CPU brand: Intel® Core™ i5-4690K CPU @ 3.50GHz
ardour: [INFO]: Using SSE optimized routines
ardour: [INFO]: lade voreingestellte UI-Konfigurationsdatei /etc/ardour5/default_ui_config
ardour: [INFO]: Lade benutzerdefinierte UI-Konfigurationsdatei /home/ryan/.config/ardour5/ui_config
ardour: [INFO]: Lade Farbdatei /usr/share/ardour5/themes/dark-ardour.colors
ardour: [INFO]: Loading ui configuration file /etc/ardour5/clearlooks.rc
ardour: [INFO]: Loading ui configuration file /etc/ardour5/clearlooks.rc
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is “Don’t restrict self connect requests”

Do you have any idea, what the problem is or what to do, to se the FFADO-drivers correctly with ardour? Every idea would be great!

greetings
Rüttelplatte

Have you unloaded or blacklisted the ALSA/Firewire module (snd-dice)?
see also https://linuxmusicians.com/viewtopic.php?t=16919


Since you said

why not use it instead of FFADO?

No I didn’t hear about that before. What is that (snd-dice) and where/how to unload or blacklist it?

Because I have a latency and I hoped I can reduce it with the FFADO-driver. By the way, till two days ago, I thought FFADO-drivers are the only way to control a firewire-soundcard, why does it at all start without them?

It is the ALSA driver (kernel module) that provides direct access the firewire device.
While that driver is loaded, FFADO cannot be used.

The linuxmusicians page has information about how to unload it. I don’t have any firewire devices, so I cannot provide first hand information.

1 Like

That changed about 2-3 years ago. Firewire audio support is being added directly into the Linux kernel, with the goal to eventually supersede FFADO. So far with mixed results. but it’s still work-in-progress.

1 Like

That is the info that I needed! Thanks, I hope I can fix it now with a little bit of googling!

I didn’t know, I think it’s about 2-3 years ago, when I tried to setup ardour the last time - without success. Nice to hear that there are now two working solutions out there!

Is snd_dice used for all firewire sound devices or for a special type?

Only those with a DICE™ chipset.

have a look at https://github.com/takaswie/snd-firewire-improve#readme
others include snd-bebob snd-firewire-motu, etc etc.

Thanks a lot! You beat the records of time for me to get good answers to this kind of disheveling questions! Since firewire sound devices are supported out of the box, is there a built-in method for ardour (or a desktop-specific program) to control the internal routing/mixing of the sound devices?

I don’t know, so I hope someone else may answer.

I hazard a guess that the default alsa-mixer (or alsa-mixer-gui) might work for some devices, at least to access the raw controls.

I hoped so too, but very strange thing is, that the alsa-mixer recognises the interface, but it shows no controls. I don’t know why…

Sadly, this is not strange. It simply means that either (1) there are no controls that ALSA can manipulate or (2) there is no ALSA support for the controls at this time.

The implication for you is the same in either case.

Firewire audio is dead. It might live on in Linux longest of all, but only because of the haphazard efforts of a tiny number of individuals. Apple killed Firewire audio (and firewire in general) between 2008 & 2012.

is there a built-in method for ardour (or a desktop-specific program) to control the internal routing/mixing of the sound devices?

I have a Saffire Pro 40 from about 2014 in one of the systems I work with. I haven’t had to do anything with it in probably 3-4 years now (thankfully, it’s been dutifully doing its job), but IIRC FDADO also provided a control interface – ffado-mixer perhaps – that I used to configure it. I remember hearing there was a new driver coming out, but I’m guessing that didn’t replace FFADO’s user-space programs.

That answer also reminds me of another small point: Ardour deliberately does not involve itself in the state of the hardware mixer/controls for your audio interface(s). So even if the ALSA API provides a mechanism to control this (it does, for many/most devices), Ardour itself does not (and will never) use it. That’s left to applications designed expressly for that purpose (such as alsamixer).

That’s really sad. It’s a solid interface and I think it will still work for the next 10 years. So I’m glad about the linux-philosophy.

For me, the problem began when I connected the interface to the computer. The Line In 1 was directly routed to all line-outs. So If wanted to make a record with ardour or if I used an analog instrument with ardour sound-effects I permanenty heard the instrument twice - clean (directly routed by the interface) and dry (out of computer/ardour with a little latency). So problem was, that I couldn’t find a way deactivate or control this internal routing with ardour itself (I was wondering about it but Paul Davis said it’s the intended behavior of ardour.

That is exactly right. I use the ffado-mixer for that job and it works great but I thought (in the past) that the ffado-mixer urgently needs the FFADO-drivers to work. Since I learned from @x42 that the FFADO-driver never got access to my interface (because snd_dice was loaded) I’m wondering why the mixer works so well…I have only two possible ansers:

  1. the ffado-mixer uses the snd_dice directly (which is strange, because alsa-mixer doesn’t provide faders for the interface) or
  2. there is a mechanism which allows the ffado-mixer to use the ffado-driver to control the internal faders but not to work with the normal routing functions which Ardour in the JACK and FFADO modus needs.

Does anybody know the answer?

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.