mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
Also move Lua scripts to share subfolder
This commit is contained in:
parent
bf649cd68a
commit
180843f9bd
129 changed files with 2 additions and 2 deletions
58
share/scripts/_split_benchmark.lua
Normal file
58
share/scripts/_split_benchmark.lua
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
-- [disable CPU freq scaling for benchmark]
|
||||
-- create a session
|
||||
-- add 16 mono tracks
|
||||
-- record 2-3 mins on each track starting at 00:00:00:00
|
||||
-- rewind the playhead to 00:00:00:00
|
||||
-- run this script in Menu > Window. Scripting 10 times
|
||||
ardour { ["type"] = "EditorAction", name = "Split Benchmark" }
|
||||
|
||||
function factory (params) return function ()
|
||||
|
||||
function split_at (pos)
|
||||
local add_undo = false -- keep track if something has changed
|
||||
Session:begin_reversible_command ("Auto Region Split")
|
||||
for route in Session:get_tracks():iter() do
|
||||
local playlist = route:to_track():playlist ()
|
||||
playlist:to_stateful ():clear_changes ()
|
||||
for region in playlist:regions_at (pos):iter () do
|
||||
playlist:split_region (region, ARDOUR.MusicSample (pos, 0))
|
||||
end
|
||||
if not Session:add_stateful_diff_command (playlist:to_statefuldestructible ()):empty () then
|
||||
add_undo = true
|
||||
end
|
||||
end
|
||||
if add_undo then
|
||||
Session:commit_reversible_command (nil)
|
||||
else
|
||||
Session:abort_reversible_command ()
|
||||
end
|
||||
end
|
||||
|
||||
function count_regions ()
|
||||
local total = 0
|
||||
for route in Session:get_tracks():iter() do
|
||||
total = total + route:to_track():playlist():region_list():size()
|
||||
end
|
||||
return total
|
||||
end
|
||||
|
||||
for x = 1, 3 do
|
||||
local playhead = Session:transport_sample ()
|
||||
|
||||
local step = Session:samples_per_timecode_frame()
|
||||
local n_steps = 20
|
||||
|
||||
local t_start = ARDOUR.LuaAPI.monotonic_time ()
|
||||
for i = 1, n_steps do
|
||||
split_at (playhead + step * i)
|
||||
end
|
||||
local t_end = ARDOUR.LuaAPI.monotonic_time ()
|
||||
|
||||
Session:request_locate((playhead + step * n_steps), ARDOUR.LocateTransportDisposition.MustStop, ARDOUR.TransportRequestSource.TRS_UI)
|
||||
print (count_regions (), (t_end - t_start) / 1000 / n_steps)
|
||||
collectgarbage ();
|
||||
ARDOUR.LuaAPI.usleep(500000)
|
||||
end
|
||||
|
||||
|
||||
end end
|
||||
Loading…
Add table
Add a link
Reference in a new issue