Edit Reference

When you run:

auto-editor example.mp4 --edit audio:0.05,stream=0

You're actually running a palet expression!
To be precise, you're writing the syntax-sugary equivalent of:

auto-editor example.mp4 --edit "(audio 0.05 #:stream 0)"

Isn't that neat.
You can use any syntax or procedure defined in the core language.

auto-editor example.mp4 --edit '(print "Hello World!")(audio 0.05 #:stream 0)'

And that command will indeed, print "Hello World!".
As long as that expression returns a boolean array, you can do anything.

All the edit methods are listed below:

Edit Methods

(audio [threshold] [stream] [mincut] [minclip]) → bool-array?  Procedure

 threshold : threshold? = 0.04

 stream : (or/c nat? 'all) = 'all

 mincut : int? = 6

 minclip : int? = 3

Auto-Editor's default. Provides a high level abstraction over audio-levels.

(motion [threshold] [stream] [blur] [width]) → bool-array?  Procedure

 threshold : threshold? = 0.02

 stream : nat? = 0

 blur : nat? = 9

 width : nat1? = 400

Motion analysis. Provides a high level abstraction over motion-levels.

(subtitle pattern [stream] [ignore-case] [max-count]) → bool-array?  Procedure

 pattern : string?

 stream : nat? = 0

 ignore-case : bool? = #f

 max-count : (or/c nat? void?) = #<void>

When pattern, a RegEx Expression, matches a subtitle line, consider that time the line occupies as loud.

Level Procedures

(audio-levels stream) → array?  Procedure

 stream : nat?

Analysis audio volume based on samples. Using a 2-pass method where all the values are adjusted based on the highest sample value. Returns an array of float64s.

(motion-levels stream [blur] [width]) → array?  Procedure

 stream : nat?

 blur : nat? = 9

 width : nat1? = 400

Scale the video to width pixels, convert to grayscale, apply a Gaussian blur of blur amount, then compare the difference with the previous frame. Returns an array of float64s.