How do I load and play an Ardour session from the command line? (headless)

I want to type something like:

“ardour5 -headless suchandsuch_session.ardour”

And have it load the session, all plugins, all soundfont files, and play it back, either without a GUI at all (preferred) or with the GUI, but autoplaying.

Possible? Google revealed some effort towards this (https://github.com/Ardour/ardour/tree/master/headless) but my system (Ubuntu (vanilla) 18.04) with Ardour 5 has nothing Ardour-related for “headless” and the latest github is Ardour 6 (alpha) right?

In any case, what’s the status of headless playback?

“headless Ardour” is called “hardour” and is not something we distribute.

You would need to build it yourself from source. It will be installed either… you run it via:

cd headless
./hardev /path/to/session/folder

It will not autoplay. You need a control surface (you can use oscsend to deliver commands) to drive it.

1 Like

Not headless, but auto-playback on load could be triggered using a Lua Script:

Save the following to ~/.config/ardour5/scripts/play_on_load.lua and load the script in Edit > Lua Scripts > Script-manager > Action Hook (in 5.12 this needs to be done per session)

ardour {
  ["type"]    = "EditorHook",
  name        = "Rewind and Roll on Load",
  author      = "Ardour Lua Task Force"
}

function signals ()
  return LuaSignal.Set():add ({[LuaSignal.SetSession] = true})
end

function factory () return function (signal, ...)
    Session:request_locate(0, true)
end end

There is a commandline interface, too (but also not distributed with default builds).

cd gtk2_ardour; ./arlua

That does however need a bit of setup – see bottom of http://manual.ardour.org/lua-scripting/ on how to start the engine, load a session and play it. Another script that may be useful for inspiration is https://github.com/Ardour/ardour/blob/master/tools/split_benchmark.lua