Problems using control surface with Ardour


After talking with some of the helpful guys on IRC I’m getting closer, but still have a few problems with using my Axiom 49 as a control surface with Ardour. I am running the latest 2.8 build from Subversion under Ubuntu Studio. The first thing I should say is that the faders for each track work perfectly, so that’s a good start, but after that things have become a bit hit and miss. I can assign the transport controls to the control surface, but these settings get lost each time I close Ardour. When I open Ardour again I get the following warnings that seem related:

[WARNING]: Generic MIDI control: controllable 6 not found in session (ignored)
[WARNING]: Generic MIDI control: controllable 0 not found in session (ignored)
[WARNING]: Generic MIDI control: controllable 4 not found in session (ignored)
[WARNING]: Generic MIDI control: controllable 1 not found in session (ignored)

At first I thought this was maybe because I hadn’t reconnected the Axiom to Ardour in Jack, but if I start Ardour, make this connection then open the session, I still get these warnings.

I’m not sure exactly what the Control Surfaces->Auto rebind controls menu option does, but I have noticed that if I check this is is unchecked next time I option Ardour. Not sure if that is significant.

Finally, I have also been unable to bind the “go to start of session” and “go to end of session” functions to the control surface and was wondering if there is something special about these, perhaps related to MMC?

Any help with this would be greatly appreciated,

Is anyone able to confirm that they don’t have this problem of loosing the transport control bindings? At the moment I am just leaving Ardour running permanently, but that probably isn’t the ideal solution. :slight_smile:


I haven’t tried messing with surfaces yet, but are you sure your .ardour2 directory and/or the files there aren’t read only or that your home directory partition isn’t full? That would explain why it doesn’t save the settings.

Thank you for the suggestion. I had a look and the ownership of .ardour2 and ardour.rc, and they appear to be correct. Looking at ardour.rc I can see that when I assign the key it is getting written to the file:

I presume this is what the start up warnings are referring to:
[WARNING]: Generic MIDI control: controllable 0 not found in session (ignored)

… being id=“0”. So it looks like it tries to rebind the controls on start up, fails, then removes them from ardour.rc.

Getting a bit closer (I think…),

I’ve been looking through the source and I think this is starting to make sense. Looking at this output:

~/svn/2.0-ongoing$ grep -R add_controllable * | grep .cc | grep -v svn
libs/ardour/ _session.add_controllable (&_solo_control);
libs/ardour/ _session.add_controllable (&_mute_control);
libs/ardour/ _session.add_controllable (&_rec_enable_control);
libs/ardour/ parent.session().add_controllable (&_control);
libs/ardour/ _session.add_controllable (&_gain_control);
libs/ardour/ _session.add_controllable (&_gain_control);
libs/ardour/ (Controllable* c)

It would appear that the transport controls never get added to the “controllables” list, so when Ardour starts up it is unable to find a control in the session with the id that matches the one written in the ardour.rc file so the warning gets displayed and the control doesn’t get rebound. I’m not 100% sure because I’m still very new to Ardour, but this is starting to look like a bug to me.

…Okay, so I just did what I should have done in the first place and found that bug 0002655 seems to relate to this issue. I’ll keep looking through and see if I can come up with a patch. Presumably just adding a “add_controllable” call for each of the transport controls on startup should fix things.