Hi there! I’m using Ardour 5.12.0 on Ubuntu Studio 18.04. So I used this code as a class reference: (link)
which is the code of the 5.12 release.
My problem is that many of the lua objects I try to use are nil. For instance:
I access the console using window -> scripting, then I pick snippets -> foreach track, which looks like this:
ardour { ["type"] = "Snippet", name = "Foreach Track" }
function factory () return function ()
for r in Session:get_tracks():iter() do
print (r:name())
-- see http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Track
-- for available methods e.g.
r:set_active (true, nil)
end
end end
which works fine. However, when I use r:playlist() instead of r:name(), I just get “attempt to call a nil value”. Same for r:can_record(). Those methods should be present, they are added in the luabindings.cc.
The bigger picture: I want to use Ardour for band practice and record everything. So for every take, I want to create a new empty playlist in multiple tracks, each having date and time in its name. And without having to click and type everything by hand. I am also open for alternative ways to do this (including OSC). But in the end I would like to learn the lua scripting as well.
Despite the name get_tracks() returns a Route object (a route is a base-class of everything that can route audio or midi data).
Cast it to a track first. e.g. r:to_track():playlist()
Sadly this is a somewhat tricky. One cannot directly create objects in a script. You’ll have to call existing methods to create a new playlist. For the case of playlists I don’t know if it can be scripted.
There’s https://github.com/Ardour/ardour/blob/master/scripts/new_playlist.lua - but that is interactive.
Thank you! I guess shifting inactive regions far to the right would also be an option… But that would be less convenient…
Can the click on [ P ] and [ New… ] be automated via OSC maybe?
Or is there a better option in general for the multiple takes on multiple tracks thing? A dropdown menu for layers or something…
I think what I’ll do is manually create a new playlist for every practice session and then use layers within one session, automatically naming newly recorded regions with the time of recording.