Difference between revisions of "Programmer Guide/General Descriptions/Segment Expressions"

From STX Wiki
Jump to navigation Jump to search
Line 46: Line 46:
Each part (''bexpr'', ''eexpr'' and ''lexpr'') of the segment expression specifies a time in samples and may consist of one or more time values which are joined with the operator '''+''' (add) or '''-''' (subtract).
:{|class="einrahmen" style="margin-left:1.5em;"
!value !!description !!value in samples !!comment
!label expression!!description!!value in samples !!comment
|<var>x</var> ||<var>x</var> samples ||<var>x</var> ||
|<var>x</var> ||<var>x</var> samples ||<var>x</var> ||
Line 73: Line 73:
|with: ||<var>x</var>||=||a number
|with: ||<var>x</var>||=||a number

Revision as of 20:09, 28 April 2014

STx uses a special syntax to address a segment of a sound file. The syntax allows for the mixed use of segment names and time values in a complex expression known as a "segment expression". Segment expressions can be used in all commands and dialogs where a signal segment (or position/duration) can be specified (exceptions are described in the Command Reference). In dialogs, the supported value formats/types are always described in the control/dialog caption.

Segment expression
A segment expression addresses a part of a soundfile with a non-zero duration. It can consist of (1) a segment name, or (2) of two label expressions (see below) specifying the beginning and the end of the segment, or (3) of two label expressions (see below) specifying the position of the segment and its duration.
segment expression explanation
labelexpression_labelexpression (beginning and end)
labelexpression_+labelexpression (beginning and duration)
labelexpression_-labelexpression (end and duration)
A label expression is a position in a sound file (e.g. the begin/end of a segment) or the duration of a segment. A label expression may consist of a sign (+/-) and one or more values formatted as described below and combined with the operators + (add) or – (subtract). If a label expression contains blanks, it must be quoted when used as an argument.
label expression explanation
segmentname:B start time of segment segmentname
segmentname:E end time of segment segmentname
segmentname:L duration (length) of segment segmentname
numberS time in seconds
numberMS time in milliseconds
number number of samples

label expression description value in samples comment
x x samples x
xs x seconds x * sr
xms x milliseconds x / 1000 * sr
xHz periode of a signal with x Hz sr / x
xkHz periode of a signal with x kHz sr / (x * 1000)
x% x percent of the signal length l * x / 100 usage 1 and 2 only
x%% x per mill of the signal length l * x / 1000 usage 1 and 2 only
segid begin and length of the segment with id segid usage 3 only
segid:b begin of the segment with id segid usage 3 only
segid:e end of the segment with id segid usage 3 only
segid:l length of the segment with id segid usage 3 only
with: x = a number
sr = signal sampling rate in Hz
l = signal length in samples (e.g. soundfile length)
segid = id of a segment defined in the xml-file item



addresses 0 samples to 4 seconds


addresses 100 samples after the beginning of SegmentB for a duration of 10 seconds


addresses SegmentB


addresses the beginning of SegmentA to the end of SegmentB


addresses 100 milliseconds before the end of SegmentB to the end of SegmentB

Notes: For some expressions, the values number% (percentage of the full duration) and number%% (thousandths of the full duration) can be used, but only if the 'full signal' is available/defined (e.g. for envelopes of sequence signals).A segmentname can only be used if a sound file or an audio-element of an XML-file is involved in the expression evaluation.Segment names are case sensitive!