Toolbox function definition

From STX Wiki
Jump to navigationJump to search

A Toolbox function definition defines the interface between the STx Toolbox management routines and the macro where the data processing takes place. If you want to program a Toolbox function for STx, you must first define the function in the Toolbox function format:

[FUNCTION name]
hotkey ; command ; type ; context ; applications
description
varname = varvalue

The parameters must be interpreted as follows:

name The name of the function. This appears in the Toolbox list in the S_TOOLS-STx GUI.
hotkey The default hotkey to associate with this function or an asterisk if no hotkey should be used.
command The command to call when the Toolbox function is called. This may be a macro function, a class name or an application name. The class or macro must be defined in the same file as the function definition.
type The type of command call (APPLICATION|CLASS|MACRO). An APPLICATION call means a new application is started. A CLASS call means the class is instantiated. The class must inherit from tbmgr. A MACRO call means the command call is made in the application shell.
context The blank separated list of contexts in which this function will be available (an asterisk means that the function is available in all contexts).
applications The blank separated list of application names in which this function should be available (an asterisk means that the function is available in all applications).
description The description to be displayed in the Toolbox function list.
varname = varvalue Variable definitions: assign the variable varname the value varvalue. These variables can be loaded and saved between function calls and edited in the Toolbox GUI.

Note that you do not end a FUNCTION section with the EXIT command! Please note also, that variable assignment uses neither a colon nor a semi-colon!

Toolbox contexts

The following Toolbox contexts are defined in STx:

SPECTRUM PARAMETER WAVEFORM DATASET

The Toolbox management routines allow Toolbox functions to interact with STx in these contexts. The data available to you when the Toolbox function is called is dependant on the context. Therefore you must program your Toolbox implementation to take the context into account.

SPECTRUM

The Toolbox context SPECTRUM.

Data: A table of spectra.
Call type: MACRO
Used in: Spectrogram & Parameters Viewer Sectioner and Spectrum Viewer
SPECTRUM variables and objects

The following variables and objects are available in the Toolbox SPECTRUM context:

#aset The source signal audio-set reference.
#aseg The source signal segment for current analysis.
#ach The source signal's channel.
#wave The wave item containing the section of the source signal used to calculate the spectra.
#data The table containing all spectra (one column per analysis method).
#defs The configuration table: every analysis method is described in one line in the format 'method unit ref'. The variables #methodX, #unitX and #refX (where X is the #defs row index) are assigned the method, unit and ref respectively. See below for details.
#methodX The transformation or analysis method (FFT, WAVE = Wavelet, CEPST, LPC, IRRTH, FFTP = FFT-Phase or WAVEP).
#unitX The value unit (dB or radPi).
#refX The reference value (only if necessary, e.g. for dB).

The return value is ignored for this context (i.e. any changes are not displayed). The frequency scale of the spectra is assumed to be an equidistant scale over the whole bandwidth (i.e. 0 -> samplingRate / 2).

PARAMETER

The Toolbox context PARAMETER.

Data: A table of parameters in time.
Call type: MACRO
Used in: Spectrogram & Parameters Viewer
PARAMETER variables and objects

The following variables and objects are available in the Toolbox PARAMETER context:

#aset The source signal audio-set reference.
#aseg The source signal segment for current analysis.
#ach The source signal's channel.
#wave The wave item containing the signal between the time cursors.
#data The table containing all parameters (one column per function).
#defs The configuration table: every parameter function is described in one line in the format 'Type Name Unit Ref Graph Index Line IFun'.
Type The parameter type.
Name The parameter name.
Unit The parameter unit.
Ref The reference value.
Graph The id of the graph item containing this parameter
Index The parameter index (zero-based).
Line The line this parameter is on (top down).
IFun The line color index (not zero-based).
#fpos The index of the first selected entry.
#fnum The number of selected entries.
#lfrm The analysis frame length in samples.
#sfrm The analysis frame distance in samples.
#cpos1 The position of the first time cursor in the format 'frameindex xpos ypos'. The values are also assigned to local variables (e.g. for cursor 1 the variables #c1i, #c1x and #c1y are available).
#cpos2 The position of the second time cursor. Cursor 1 always has a lower xpos value than cursor 2.
WAVEFORM

The Toolbox context WAVEFORM.

Data: Signal and metasegment information.
Call type: MACRO
Used in: Waveform & Segmentation Viewer
WAVEFORM variables and objects

The following variables and objects are available in the Toolbox WAVEFORM context:

#aset The source signal audio-set reference.
#aseg The source signal segment for current analysis.
#ach The source signal's channel.
#wave The wave item containing the signal between the time cursors.
#graph The name of the currently active graph item.
#mslist A list of the currently selected metasegments' ids.
#fpos The index of the first selected entry.
DATASET

The Toolbox context DATASET.

Data: References to DataSet elements.
Call type: MACRO and APPLICATION
Used in: Workspace
DATASET variables and objects

The following variables and objects are available in the Toolbox DATASET context:

#type The DataSet context (element, segment, aseglist, parameter, aparlist, set or signal).
#sref The XML reference for the selected set.
#stag The XML tag for the selected set.

If #type is segment, aseglist, parameter, aparlist or set then the following variables are defined:

#etab A table with the XML positions of the selected elements in the set.
#etag The DataSet tag of all the selected elements or * if they have different tags.

If #type is signal then the following variables are defined:

#etag A table with the indices of the selected sequence signals.

Please note that the table #etab should be deleted at the end of the function. You can use the BXMLDOC function RESETPOS for this.

An XML position is a value returned by the command POSITION.

Navigation menu

Personal tools