Extent — Extending the Active Region
By default an audio-family cue's active region is its element's bounding box: the playhead entering the box triggers it, and leaving the box stops or re-arms it. The extent parameter widens that region beyond the visible element, with a draggable, score-visible line marking where the region ends.
This mirrors the extent handle on session-layer audio objects, but lives entirely in the score's DSL — nothing outside score.svg is needed.
Applies to: audio, audioPool, audioImpulse, synth.
Syntax
audio(src:drone.wav, loop:0, extent:1200)
audioImpulse(path:"sfx/rain", rate:30, lifetime:region, extent:800)
synth(freq:~A3, lifetime:region, extent:600)
| Key | Value | Description |
|---|---|---|
extent |
number | Active-region width in score units, measured from the element's left edge. Omit it for plain bounding-box behaviour |
Units are the score's authored coordinates — the same units you see in Inkscape. An element 300 units wide with extent:900 sounds for a region three times its visible width.
The boundary is computed live from the element's current position, so it stays correct when the score scrolls or zooms and when the element is dragged.
The Extent Line
A cue with extent:N draws a line in the score so performers can read the active region:
- a dashed line from the element's right edge to the extent end, at the element's vertical centre
- a vertical end bar marking the boundary
- the dashes animate while the cue's voices are sounding (direction follows playback speed)
The dash pattern identifies the cue type:
| Cue | Pattern |
|---|---|
audio |
dots 2 6 |
audioPool |
4 4 |
synth |
3 3 |
audioImpulse |
dashes 6 4 |
Dragging the Handle
With DSL inspector mode enabled (the inspector toggle in the top bar), the end bar becomes a drag handle:
- drag right/left — resize the region. The change applies live and is written to
score.svgon release, no editor panel needed - drag back to the element's right edge (or inside it) — clears the
extentparameter entirely, returning the cue to plain bounding-box triggering and removing the line
When the DSL editor panel is open on the element, a grip above the element does the same job, and the extent (score units) field in the form can be typed directly; Save to SVG persists either.
Saved Into the Score
The extent line is not just a runtime overlay — on save it is written into score.svg as a real element:
<g class="dsl-extent-line" id="dsl-extent-<elementId>" data-extent-for="<elementId>">
<line … stroke-dasharray="2 6"/> <!-- dashed region line -->
<line …/> <!-- end bar -->
</g>
That makes the extent part of the score document itself: visible in Inkscape, in SVG exports, and in print, with no application running.
At load time the runtime adopts the saved group rather than drawing a duplicate, and re-normalizes its geometry from the extent:N parameter — the parameter is always the source of truth. Clearing the extent also removes the saved group from the file.
Relation to pin
extent and pin solve different problems:
extentwidens the trigger region — how long the playhead keeps the cue activepinkeeps the element visible at the playhead for a duration — a display behaviour
They combine freely: audio(src:long.wav, extent:2000, pin:30).
Examples
// Drone that keeps sounding for 1500 units after its element
audio(src:drone.wav, loop:0, fadeOut:2, extent:1500)
// Rain texture active across a whole page-width region
audioImpulse(path:"sfx/rain", rate:40, lifetime:region, extent:3000)
// Synth pad gated by an extended region
synth(freq:[220, 330], lifetime:region, extent:900)
Tip: use ← → or ↑ ↓ to navigate the docs