edytlab
Audio Tools Reference

Analysis

Measure and inspect audio, find silence, warp to a beat grid, and audition an effect before you apply it.

On this page6 tools
analyze_track

Detect BPM (with a confidence and the half and double as alternatives), musical key (with the runner-up key), a beat grid, an RMS curve and integrated loudness (LUFS). Downbeats are assumed every fourth beat and sections are one whole-track section: neither is detected. BPM is null for audio with no steady beat.

Example prompt: analyze track 1

Returns: bpm, bpm_confidence, bpm_alternatives, key, key_score, key_runner_up, beats, downbeats, sections, rms_curve, lufs_integrated

align_to_beat

Warp a track in time so its beats land on a target grid, without changing the pitch. Each segment between beats is stretched by its own ratio in one pass, so there is no seam at the beats. Get source_beats from analyze_track.

Example prompt: find the beats, then warp this onto a steady grid

Returns: node_id

plot_spectrum

Compute the FFT magnitude spectrum of a track region.

Example prompt: show me the spectrum of track 1

Returns: frequency/magnitude data

select_region

Resolve a description of a region into a concrete time range, using the session's transcript, a voice track's audio, or its tempo map. Give a phrase to find, a passage of speech (1 is the first, -1 the last), or a beat range. Returns start_sec and end_sec for any tool that takes a range. A phrase needs a transcript (see transcribe), because finding it needs the words. A passage of speech does not: name the voice_tracks and it finds the passages where those tracks' audio has voiced (pitched) sound, so -1 is the last thing said on them, and a breath, a click or hiss is not a passage. Beat ranges need neither. A voice track that carries music reads as speech throughout, so name the voice alone; loud low rumble reads as speech too, and a fan that runs for part of a track counts as speech while it runs. The detector's thresholds were set on synthetic recordings and have not been checked on real takes, so check the range it reports before a destructive edit.

Example prompt: select the last thing said on the voice track

Returns: start_sec, end_sec, duration_sec, matched, keyed_on, voice_tracks (when keyed on audio)

It refuses rather than approximating: a phrase that is not in the transcript selects nothing, and a track with no speech has no last passage, because the next call is usually a destructive edit and a range that is nearly right is worse than none. Passages are joined by the rule duck_under_speech uses: a pause shorter than join_gap_sec (a second unless you say otherwise) stays inside one, and both tools take join_gap_sec, so with the same value the third thing said is the same in both. Every range-taking tool became describable without any of them changing.

silence_finder

Analyse a track and return the time ranges of silent regions.

Example prompt: where are the silent bits?

Returns: list of {start_sec, end_sec}

audition_effect

Hear an effect on a track, on the master bus (scope "master") or on a bus (scope "bus") without applying it. Renders a few seconds of the session with the effect added to that chain and hands back a WAV to play — no session node, so there is nothing to undo. Call add_effect with the same arguments to keep it. The parameter names are add_effect's, and any other name is refused.

Example prompt: what would a 1 kHz low-pass sound like on the vocal?

Returns: path, cached, start_sec, end_sec, target, warnings (only when something was left out)

The audition includes gain, pan, mute, solo, sends and the master chain, so it sounds like the result will. Repeating settings you have already heard is instant.