ba0eb858bc
Often one needs to make sure that all the relevant settings are made before one actually starts recording. The Lua interface can take care of this task easily, that the operater by just one action can make sure that the relevant settings (e.g. recenables, playhead position, etc.) are ready for recording. This example was written with a quasi live podcast scenario in mind. See `scripts/prepare_record_example.lua` for details.
63 lines
1.8 KiB
Lua
63 lines
1.8 KiB
Lua
--[[
|
|
|
|
# Example script to prepare the Ardour session for recording
|
|
|
|
Usually there's a certain state needed to actually start the recording. This example
|
|
script treats the situation of a podcast recording. When starting the recording the
|
|
following settings have to be ensured.
|
|
|
|
* Session has to be recenabled
|
|
* Tracks have to be recenabled
|
|
* Gain automation have to set on write in order to record events from mute buttons
|
|
* The playhead has to be at 00:00:00.000
|
|
* The last (failed) capture has to be cleared
|
|
* Location markers have to be cleared
|
|
|
|
So this script automizes away the task and lets the podcast moderator by just one
|
|
action (for example triggerd by a Wiimote) prepare the session for recording.
|
|
|
|
It can be used for example with the python script of the Linux podcasting hacks:
|
|
https://github.com/linux-podcasting-hacks/wiimote-recording-control
|
|
|
|
Not that this script is more meant as an demo script to demonstrate the
|
|
possibilities of the Lua interface.
|
|
|
|
--]]
|
|
|
|
ardour {
|
|
["type"] = "EditorAction",
|
|
name = "Prepare recording for podcast",
|
|
author = "Johannes Mueller",
|
|
description = [[
|
|
Prepares the Ardour session for podcast recording.
|
|
|
|
* Sets the gain automation to "Write" so that muting buttons work.
|
|
* Recenables all tracks.
|
|
* Clears all markers.
|
|
* Erases the last capture (assuming that it was a failed one)
|
|
* Rewinds the session to starting point.
|
|
* Recenables the session.
|
|
]]
|
|
}
|
|
|
|
function factory (unused) return function()
|
|
if Session:actively_recording() then
|
|
return end
|
|
|
|
for t in Session:get_tracks():iter() do
|
|
t:gain_control():set_automation_state(ARDOUR.AutoState.Write)
|
|
t:rec_enable_control():set_value(1, PBD.GroupControlDisposition.UseGroup)
|
|
end
|
|
|
|
for l in Session:locations():list():iter() do
|
|
if l:is_mark() then
|
|
Session:locations():remove(l)
|
|
end
|
|
end
|
|
|
|
Session:goto_start()
|
|
Editor:remove_last_capture()
|
|
Session:maybe_enable_record()
|
|
|
|
end end
|