From 59940ceb806e8cba7545f03c33d4814321158c5d Mon Sep 17 00:00:00 2001
From: Robin Gareus
There are cases that a Ardour cannot reasonably cater for with core functionality by itself, either because they're session specific or user specific edge cases.
@@ -24,7 +24,7 @@ but if you have the means buy a copy of the book, it not only helps to support t but provides for a much nicer reading and learning experience.
-The core of ardour is a real-time audio engine that runs and processes audio. One interfaces with than engine by sending it commands. Scripting can be used to interact with or modify active Ardour session. Just like a user uses the Editor/Mixer GUI to modify the state or parameters of the session. @@ -61,7 +61,7 @@ A script can orchestrate interaction of lower-level components which take the bu At the time of writing Ardour integrates Lua 5.3.2: Lua 5.3 reference manual.
-Like Control surfaces and the GUI, Lua Scripts are confined to certain aspects of the program. Ardour provides the framework and runs Lua (not the other way around).
@@ -85,7 +85,7 @@ There are is also a special mode: Be aware that the vast majority of complex functionality is provided by the Editor UI. -
Ardour searches for Lua scripts in the scripts
folder in $ARDOUR_DATA_PATH
,
@@ -107,7 +107,7 @@ Apart from scripts included directly with Ardour, this includes
ardour
descriptor table. Required fields are "Name" and "Type".Action scripts are the simplest form. An anonymous Lua function is called whenever the action is triggered. A simple action script is shown above.
There are 10 action script slots available, each of which is a standard GUI action available from the menu and hence can be bound to a keyboard shortcut
-Session scripts similar to Actions Scripts, except the anonymous function is called periodically every process cycle. The function receives a single parameter - the number of audio samples which are processed in the given cycle
Action hook scripts must define an additional function which returns a Set of Signal that which trigger the callback (documenting available slots and their parameters remains to be done).
@@ -238,7 +238,7 @@ end
See the scripts folder for examples for now.
Some notes for further doc:
The top most object in Ardour is the ARDOUR::Session
.
Fundamentally, a Session is just a collection of other things:
@@ -270,7 +270,7 @@ Documenting the bound C++ methods and class hierarchy is somewhere on the ToDo l
Meanwhile luabindings.cc is the best we can offer.
Apart from the scripts included with the source-code here are a few examples without further comments... -
print (Session:route_by_remote_id(1):name())
@@ -376,7 +376,7 @@ ARDOUR.LuaAPI.set_processor_param (proc, 2, 1.0)
The standalone tool luasession
allows one to access an Ardour session directly from the commandline.
Interaction is limited by the fact that most actions in Ardour are provided by the Editor GUI.