History of Changes

From STX Wiki
Revision as of 11:42, 19 September 2019 by Jw (talk | contribs) (→‎5.0.2)
Jump to navigation Jump to search



Compact Workspace Mode

The Workspace now has a compact mode. The compact mode is a simplified interface for new users. Although it was designed with linguists in mind, it can be used by anyone.


Automatic segmentation using the webMAUS REST API. This has been implemented in the toolbox runMAUSBasicDlg.


  • Correctly handle corrupt Workspace file (generate new one, rather than silently exiting)


Released: 19th September 2019

Revision: 9946

  • bugfix: The context menu Add Sound File now working from the Audio File list in the Compact Mode.
  • feature: The possible number of plots in XPlot was increased from 64 to 128


Released: 12th September 2019

Revision: 9935

Initial release.



Transcription Script SPExL 1.1.6

The transcription script SPExL has been simplified and improved.

  • Hotkeys can be defined by the user in the SPExL_SegTrans.hotkeys file
  • The number of available 'views' has been reduced to 3:
    • wave overview & spg. section (a waveform of the whole file in the top graph, with a section of the file as spectrogram below)
    • wave only (a waveform of a section of the file with scrollbar functionality)
    • wave and spg. section (a synced waveform and spectrogram of a section of the file with scrollbar functionality)
  • Segment selection between graphs and the list are now synchronised. If you select a segment in the graph, it is selected in the list and vice versa.
  • Changes made to the project (new segments, edited attributes) are now made directly in the project rather than the user having to explicitly press the 'save segments to project file' button to copy them from SPExL to the Workspace. Note that they are only written to disk, however, if the project is saved (press the 'Save' button).

Visible Segment Attributes Saved per Project File

If you choose to display other attributes other than the default attributes in the Workspace Detail View, these settings are now saved in the open project file. When a project file is then opened, the relevant attribute list is loaded and used, rather than the user having to search for them again. You can still modify which attributes are displayed using the General Settings 'Select "Segment" Attributes' dialog.

Global / Profile Sectioner Settings

The sectioner settings in the Spectrogram & Parameters Viewer analysis application were always global to STx. As of STx 4.4.0, you can choose to save your sectioner settings with your profile. The default is still the 'global' variant. To switch to profile sectioner settings, uncheck the use global sectioner settings checkbox in the Spectrogram & Parameters Viewer settings dialog.


Released: 17th January 2019

Revision: 9712

  • bugfix: playback gain factor - the playback gain is now working also for asio devices (see CSTXASIOEngine::Transfer())
  • bugfix: renumbering command did not update detail as expected.
  • bugfix: the update version dialogs now display the correct workspace path


Released: 25th September 2018


  • feature: don't ask user where to put sound file if there are no sets in the project.
  • feature: dragging and dropping a template onto {{ST}X} copies it to the templates folder.
  • feature: added 'Open Containing Folder' context menu for sound files and links. Improved contextualisation of context menu in detail (overview==root/set)
  • feature: 'txt2wav' script: Adding decimal symbol and field delimiter to parameters, as well as the ability to specify which extension to use to filter files (was hard-coded to 'txt'). Now this macro can be used to
  • feature: bdataset createwave and createwwaveex now take an openmode keyword: auto|create|read|write, which is passed on to bsf open. This means that we can now open files in modes other than 'auto'.

process CSV files.

  • bugfix: very long capture text for edit controls with 'text above' could lead to capture static being longer than the edit control and unintentionally overlapping with other controls (e.g. in Transcription Setup dialog).
  • bugfix: closing con log window no longer resets PARENT shell variable, unless it is set the the con log window itself.
  • bugfix: sound files now opened using the FILE_SHARE_READ dwShareMode. This should mean, that STx no longer prevents other processes from reading the sound files.
  • bugfix: viewer opens sound file in read mode, rather than read/write.
  • bugfix: the !PATH attribute (MakePath()) now returns the correct path for files in the root of a drive. Bug was introduced in r8998 (STx 4.2.19). This was, for example, was causing sound files in the root directory not to be unloaded, and hence was causing sharing violations.


Released: 25th July 2018

Revision: 9500

  • feature: Spectrogram & Parameters viewer sectioner window now remembers which function cursor is bound to when being replotted.
  • feature: The downsampling.sts script now has a ResampleCLI macro for automatic resampling of one or more files (see source). The old ResampleDialog was renamed to ResampleDLG.
  • feature: Adding help for "Import_PRAAT_TextGrid" toolbox.
  • feature: Adding ability to edit 'Sectioner Settings' from the profile dialog.
  • feature: Transcription 1.1.8 - removed segment 'refresh' button, since segments always reflect current project state.
  • bugfix: a window that was maximised will now be maximised to the correct monitor. It was always being maximised to monitor 1 on display creation.
  • bugfix: the profile version number is now imported with the profile. This means that, for example, the use global profile settings flag is now also set correctly on import.
  • bugfix: minor fix of position of two controls which were overlapping with controls beneath
  • bugfix: stop playback cursor if wave is stopped by starting playback in another graph. Beforehand, the playback cursor was stopped if it got to the end, or the ESC key was pressed.
  • bugfix: Y coordinate vector conversion was inaccurate by 1 pixel (bug introduced in r2536) This affects the XY, parameter, scatter, wave and waterfall functions.


Released: 21. March 2018

Revision: 9441

  • bugfix: some bugfixes and minor changes in BSeq
  • bugfix: BScript: logging of unhandled messages in msg-loop disabled // Conlog: /ton and /toff options implemented (timer on/off + show elapsed time)
  • bugfix: Viewer3 settings now being saved (bug introduced in r9318 - STx 4.4.0)
  • bugfix CShellFile::Status() - catch CTime exception if file time is illegal (avoid program crash)


Released: 19. February 2018

Revision: 9416

  • bugfix: in Viewer2 large asegtemplates (with many fields) are now displayed correctly - note: the same problem exists in Viewer1 if the segment dialog part (created by the macro call ""metasegment msdialog") needs more than 90 controls (around 40 segment attributes)
  • feature: the bscript.stx function loaddata (con loaddata) can now also load string tables (extenden tables) from csv-files. The file types TEXT/TEXTCONTINUATION (numeric parameter table), STRING/STRINCONTINUATION (extended string table) and BINARY (binary stx-data files) are available. Type ASCII/ASCIICONTINUATION has been removed.
  • feature: new feature (bugfix?): CShellTable::Read() - handling of field-separator tab has been changed - empty fields are now possible - warning: may have an effect on existing script/macro code!


Released: 26. January 2018

Revision: 9404

  • bugfix: combobox entries with underliners retain their underliners now in the workspace detail (reported by Anton Baotic), and in Spexl.


Released: 18. December 2017

Revision: 9391

  • bugfix: adding missing Transcription hotkey file and retisimo scripts


Released: 30. November 2017

Revision: 9377

  • bugfix: SPExL Transcription script V1.1.7: the /U ASegTemplate flag is now respected, and, if used, the last entered value for a segment attribute is used as the default for the next new segment.
  • bugfix: default profile names no longer have the invalid blank character in them. A check was also added, so new profiles cannot be created with blanks.


Released: 23. November 2017

Revision: 9369

  • bugfix: if zooming is turned off in Spectrogram & Parameters Viewer, segments are now correctly visible on the Y axis. This bug has existed since at least STx 4.2.


Released: 14 November 2017

Revision: 9350

Initial release.



Load or export parameters from super or sub segments

Parameters from super segments or from sub segments can now be loaded into the selected segment. For example, if you have analysed a word and corrected the parameters, you can use these corrected parameters when viewing phoneme segments within the word. This is achieved by selecting 'super segment data only' setting in the Viewer settings Parameter IO Configuration dialog.

It is possible to select which super/sub segment parameters should be used, filtering by time, attribute or ID.

This feature is also available in the parameter export dialog.

Parameter setting summary

A summary of the settings used for parameter analysis is now saved with the parameter in the project file. This information is displayed in the Parameter View.

Exact sample positioning in Spectrogram & Parameters Viewer

You can now select a position in the Waveform Zoom window in Spectrogram & Parameters Viewer and move the active time cursor to that position using the hotkey '1'. This is useful for exact positioning of the time cursors when segmenting, for example, words.


Released: 26. January 2018

Revision: 9407

  • bugfix: do not allow user to give a profile a name including blanks.
  • bugfix: renaming spectrum profiles (removing blanks)
  • bugfix: the correct most recently entered value in a listctrl is now saved (not the last in the list).
  • bugfix: passing delete, insert and back keys to static control.
  • bugfix: 'spexl*.hotkeys.default' 'retisimo.sts' 'retisimo_*.sts' 'HRTF_II_new.txt' 'downsample.sts' files are now being copied too (bug introduced in r8789)
  • bugfix: removing extraneous / from Editing segments help URL
  • bugfix: combobox entries with underliners retain their underliners now in the workspace detail (reported by Anton Baotic), and in Spexl.


Released: 23. November 2017

Revision: 9363

  • bugfix: if zooming is turned off in Spectrogram & Parameters Viewer, segments are now correctly visible on the Y axis. This bug has existed since at least STx 4.2.


Released: 14. November 2017

Revision: 9347

  • bugfix: zooming and replotting in the xplot class now working
  • feature: user is now informed about bugfixes in current release, and/or new major/minor releases. This means that you will be informed of bug fixes for your version of STx, not just for the newest STx.


Released: 19. October 2017

Revision: 9328

  • bugfix: stx no longer crashing on y zoom (bug introduced in r9293 - STx 4.3.6)
  • bugfix: binary_file_example.sts now working
  • bugfix: if navigating in file dialog using the keyboard, the edit box is now updated with the selected file.


Released 25. September 2017

Revision: 9297

  • bugfix: the spectrogram dataset now frees up memory once dataset is drawn
  • bugfix: adding specials folder to installer


Released: 6. September 2017

Revision: 9286

  • bugfix: auto-saving the project file no longer leaks memory
  • bugfix: editing segments in the workspace now uses the segment template by default
  • bugfix: a backup copy of the project file is now made when saving
  • bugfix: lists with one item are now selectable with the keyboard
  • bugfix: listview column width now calculated with correct font
  • bugfix: default values from aseg templates now written to new segment before editing
  • bugfix: correct default value written to segment, even if attribute value starts with a number
  • bugfix: combobox entries no longer replacing underlines


Released: 3. July 2017

Revision: 9214


  • feature: the conlog command can now log to a file.

Bug Fixes

  • bugfix: the conlog savedata command no longer fails silently if the file cannot be created.


Released: 19. June 2017

Revision: 9185

Bug Fixes

  • bugfix: segment address in the Transcription script is now rounded to 10th of a millisecond (4 decimal places) rather than 1 millisecond.
  • bugfix: saving the project file now resets the automatic save timer.
  • bugfix: the Transcription, Import Word List and Reorder Word List should now be working correctly again.


  • feature: new script: Anonymize.sts - anonymize segments (attributes and signal) - requested by the ARI phonetics group
  • feature: adding option to automatically save every minute.


Released: 13. June 2017

Revision: 9170

Bug Fixes

  • bugfix: The segment 'Signal.All' is now created when a new sound file is imported. This bug was introduced in version 4.3.1.
  • bugfix: the 'wave-only' view in the Transcription script is now available again.


Released: 8. June 2017

Revision: 9165

Bug Fixes

  • bugfix: clicking SPExL graph whilst editing segment in the segment list now draws the segment in the graph (previously needed an explicit refresh to draw the segment).
  • bugfix: the workspace is now saved even if the path contains spaces (bug introduced in r8843)
  • bugfix: searching using keyboard in listctrl now working in correct order (not backwards). Bug introduced in r9002.
  • bugfix: zooming out in SPExL on the y axis with Ctrl+Subtract is now working correctly. This appears to have been around since at least r4442 (STx 3.9)
  • bugfix: y position of cursors is now retained when zooming
  • bugfix: Viewers/SPEXL create segments at selected address and not with P=0 and L=0
  • bugfix: maximising whilst spectrogram is drawing no longer leaves the spectrogram in unfinished version on screen (set new 'm_bRecalculate' flag to force recalculation/redraw when dataset sync has finished).


Released: April 2017

Revision: 9149

Older Versions



Released: 24 August 2017 Revision: 9264

  • BUGFIX: correct font used for calculation of formant dialog column size in Spectrogram & Parameters Viewer


Released: 25 January 2017 Revision: 9064

  • BUGFIX: The following wildcard string comparison will now match:
if '*ha' =SI 'haha' then
   // it's a match :-)
  • BUGFIX: Changed behavior of comparisons in FIND-TABLE/XML: if a field/attribute is not defined all "notequal" and "notmatching" operators evaluates to "true" and all others to "false"


Released: 9 January 2017 Revision: 9023

  • BUGFIX: Edit segment dialog now referencing correct segment attributes (bug introduced in r8852 - STx 4.2.15)


Released: 23 December 2016

  • FEATURE: STx now informs the user of available update via the About dialog.
  • BUGFIX: Removing non-existent files from STX.INI when loading
  • BUGFIX: About dialog no long blocking workspace file.


Released: 12th December 2016

  • BUGFIX: Ctrl+U no longer the same as Ctrl+Shift+U in, e.g., signal view.
  • BUGFIX: Generating correct hotkey string for Ctrl+Shift+<key>
  • BUGFIX: Switching from long to short list of segments in the workspace should no longer lead to a blank detail.
  • BUGFIX: Transcription left cursor right bitmap now correct image
  • BUGFIX: Fixed bug in Viewer2 where setting the range did not work under all circumstances.
  • BUGFIX: Focus moving with selection for listview key navigation and single selection.
  • BUGFIX: Copy attributes in the Workspace overview now includes first value (bug introduced in r8297)
  • BUGFIX: Checkbox size increased because some strings were being cut off.
  • BUGFIX: Show Find Dialog menu now checked if Show Find Dialog is visible
  • BUGFIX: Occasional crash in Spectrogram & Parameters Viewer fixed by removing use of static with CString (r9010,r9012).


Released: 27 October 2016

  • FEATURE: adding PCM info to edit sound file dialog for editing existing project files too.
  • FEATURE/BUGFIX: Improved listview keyboard handling (up/down, page up, page down). Disabled scrolling of listview whilst editing.
  • BUGFIX: viewer2 no longer hangs if saved rmsb-data are loaded and displayed with autoscale-option
  • BUGFIX: detail sequence view now using Ctrl+Shift+U to move selected entry up and Ctrl+Shift+D to move selected entry down (rather than Ctrl+UP and Ctrl+Down - which conflict with internal listview keyboard handling).
  • BUGFIX: bscript log window no longer jumps in front of SPExL window when a dialog is opened.
  • FEATURE: releases are now digitally signed by the Österreichische Akademie der Wissenschaften
  • NOTE: the pole-zero sectioner in the Spectrogram & Parameters Viewer application is extremely slow for high frame rates. We are working on improving it.


Released: 26 September 2016

  • BUGFIX: Transcription (SPExL) segment list handling working correctly again (bug introduced in 4.2.16)
  • BUGFIX: Moving selected sequence entry up/down with keyboard now uses the hotkeys Ctrl+Shift+U and Ctrl+Shift+D (rather than Ctrl+Up and Ctrl+Down) and now works as expected.


Released: 30 August 2016

  • Support for Windows XP has been removed.
  • FEATURE: the XPLOT member "FORALLGRAPHS" is now a public function.
  • FEATURE: the XGRAPH function Zoom -> X-Sync was aded to apply the x-zoom of the current graph across all other graphs.
  • BUGFIX: the Automatic Segment Names dialog no longer allows invalid segment names.
  • BUGFIX: The palette import/export are working again.
  • BUGFIX: The Application and Setup tree now correctly stores it's state.
  • BUGFIX: Keyboard focus no longer disappears after pressing enter in the Workspace Detail.
  • BUGFIX: The selected entry no longer centers itself after editing.
  • BUGFIX: The Transcription script SPExL now plays single selections every time (not every second time).
  • BUGFIX: Tabbing through the entries in the Workspace Detail no longer goes backwards instead of forwards.


Released: unreleased

  • FEATURE: Improved sound file export performance
  • BUGFIX: The File->Workspace->Save As workspace menu command is now working (bug introduced in r4092)
  • BUGFIX: parameter and function now drawing (invalidating) correctly if being set whilst zoomed in.
  • BUGFIX: parameter export dialog no longer needs manual refresh (group box is now transparent - uses WS_EX_TRANSPARENT)


Released: 18 January 2016

  • Minimising GDI use
  • Projects files are now associated with STx
  • BUGFIX: one memory leak fixed
  • BUGFIX: all help menus associated with mediawiki online help


Released: 22 December 2015

  • Default help file now the STx Wiki (https://www.kfs.oeaw.ac.at/stx/docs/wiki/).
  • BUGFIX: Find Segments dialog no longer uses ASet search criteria for ASeg search criteria when ASeg criteria is empty
  • BUGFIX: Find Segments dialog can now search for segments within a time range.
  • BUGFIX: assigning number values to an integer field using table[,field] := eval $#num1 + $#num2 syntax now works
  • BUGFIX: growing table by assigning no longer corrupts heap.
  • BUGFIX: force context menu to display within dialog window, even if called directly from shell with 0,0 coordinates.
  • BUGFIX: edit segment dialog is now initialised with the segment channel
  • BUGFIX: context menu now rebuilt before being displayed to ensure that it reflects current state.


Released: 4 December 2015

  • Improved spectrogram 'overview' visualisation.


Released: 16 November 2015

  • Added pole-zero to Spectrogram & Parameters Viewer Sectioner
  • Bugfix: pane sizes are no longer reset in when sectioner settings dialog is closed.
  • Bugfix: list view control header now correct size and clickable, and entries now selectable with one, rather than two clicks.
  • Bugfix: copied attributes are no longer preceded by blank line


Released: 16 October 2015

  • Bugfix: saving to PNG working again


Released: 5 October 2015

  • Bugfix: the pole-zero method spectrogram overlay is now working correctly.


Released: 30 September 2015

  • Feature: the pole-zero method is now available as an overlay in the spectrogram and parameter viewer's spectrogram graph. Note however, that this is not bug free, so please wait for 4.2.6 if you're interested in this feature.


Released: 10 September 2015

  • Bugfix: added missing Visual C++ 2013 Redistributable Package


Released: 26 August 2015

  • Metasegment size modification now locks modification mode


Released: 15 June 2015

  • Viewer print font now legible


Released: February 2015

  • The speed of audio playback can now be set in the project interface
  • The menu shell item has been given the alias 'DIALOG' and will now be refered to as such in the documentation (r8578)
  • Pole-Zero SPAtom and EVAL methods are now available and are integrated into the Spectrogram and Parameter viewer.
  • Support for Windows 2000/XP has been removed
  • Pole-Zero SPU and EVAL methods
  • Multiple bug fixes



Released: 2012



Released: 15th October 2009

  • BUGFIX: real-time analyser drawing more smoothly


Released: 16th September 2009

  • BUGFIX: sequences now being saved.


Released: 30th July 2009

  • BUGFIX: segments no longer duplicated in un-linked datasets when importing metadata.
  • BUGFIX: user-defined amplitude range working in waveform viewer
  • BUGFIX: spectrogram amplitude floor now correct after using settings dialog
  • BUGFIX: recorder application now recording


Released: 3rd July 2009

  • BUGFIX: cmenu check/uncheck working for consecutive items
  • BUGFIX: text files items and the load command can now read files encoded with an "FE FF" byte order mark (encoded in UTF-16BE). The error message "unsupported byte order mark" is returned if a UTF-32BE or UTF-32LE byte order mark is found.Supported encodings specified using a byte order mark: UTF-8, UTF-16LE, UTF-16BE
    Other supported encodings:windows-1252
  • BUGFIX: wave files with chunks defined after the data chunk now have the correct length.
  • BUGFIX: saving dataset faster
  • BUGFIX: "load soundfile" options should no longer conflict with each other
  • BUGFIX: prevent stack overflow in XML files with many siblings (~ 20000)
  • BUGFXI: closing rtanalyser whilst it is running now exits shell correctly (without leaving ghost process).


Released: 15th April 2009

Graphical User Interface


S_TOOLS-STx now supports all fonts available on the host system.

Comboboxes in ASegTemplates can now be made editable using the flag /E.

You can enable/disable runtime error reporting in the Log Control dialog. It is disabled by default, and should only be enabled if you are having problems with S_TOOLS-STx.


The segment list can now be edited in the Workspace.

A summary of existing parameters can now be displayed in the segment list (see the Display and Layout Settings dialog).

The Workspace Detail cells can now display text in multiple lines (see the Display and Layout Settings dialog).

Spectrogram & Parameters Viewer

The Spectrogram & Parameters Viewer can now display a harmonic cursor in the spectrogram graph.

The Spectrogram & Parameters Viewer spectrogram method Wavelet has been extended, and a new Cohen's class distribution method has been implemented.

An amplitude legend is now available in spectrogram plots (via the context menu).


The band-pass filters now have a window parameter.


The toolbox AutoSeg is available in Spectrogram & Parameters Viewer (if loaded) to automatically segment using peaks, clicks or pauses.

A range of Klatt speech synthesis and resynthesis toolbox functions are available.

The toolbox file 'SegmentImEx.sts' implements toolbox functions to import and export segments in the PRAAT file format. These functions are available in the Workspace.


A script specifically designed for transcription and annotation has been developed and included in the default installation of S_TOOLS-STx. The script can be found in the script directory in the file SPExL.sts. There is also a new entry called transcription in the Workspace script tree, which calls the default segmentation routine. The SPExL macro documentation is still being written.

Macro Language


Modal window handling has now been moved to the NEW DISPLAY command. Use the option /O=$#ownerDisplay to set the owner (which is behind the new display in the z-order. You may also use the option /Modal to specify that the owner should be disabled whilst the new display exists.

The NEW command can create objects which are protected from deletion (option /U|u).

The command STXCONSTANTS now supports the keywords BITMAPS and BUTTONS.

The command TRANSLATE can now translate the contents of a variable or table.

The command EXIT -xLevel now returns to the first macro defining the label label "OnExitAll" or to the toplevel macro (1st called macro) (rather than to the first macro where the variable #EXITLEVEL = xLevel).

The new command TOKEN, an extended form of the command WORD, can tokenise a string using the specified delimiter.

The new command TRIM can be used to trim characters from the beginning and end of a string.

The new command QUOTE can quote all special characters in a string.

The new command LINELENGTH, although similar to LENGTH, returns the length of a line including delimiters.

The NAME command can now check XML attributes and S_TOOLS-STx XML IDs for syntactical validity. The NAME command can also return a UNC file name for a file on a mapped drive. This is useful, for example, for making DataSets portable in a network environment.

The new command ARG can be used to retrieve macro arguments.

The IREF command supports the option /I to simplify and suppress certain error messages.

The global variable @REPORTRUNTIMEERRORS can be set to 1 to display a dialog every time a error occurs when processing a command. Many commands can now take an option specifying that warnings should be generated, rather than errors (DRIVE, LOAD, UNLOAD, SET file LOAD|SAVE|STATUS|DELETE|RENAME|COPY|POSITION), READ, SEGMENT). If set to specify warnings, they will not cause a runtime error.

The READ command (and its variants READSTR, READTAB and READVAR) have a new option /E which can be used to escape characters in the input from being used as separators.

Format strings can now add a new line character (\n), using the tag %n. The standard C format tags %x and %X are now supported.

The KEYWORD command now supports the option /F which prevents abbreviations from being found and /C to make the comparison case sensitive.

The new commands SYSTEMCALL and SYSTEMCALLX are variants of SYSTEM and SYSTEMX which return warnings rather than errors on failure.

The command TGET can now return elapsed milliseconds, when the new option /ms is used.

The NAME command, when used with the new UNC subcommand can convert a file path on a mapped drive to its UNC equivalent. This help keep project files portable when accessed from multiple computers (E.g. when the z drive is mapped to \\server\data, the command "name 'z:\ds.xml' unc" will return "\\server\data\ds.xml".

The READ commands have a new option /T which prevents arguments from being trimmed.

The macro WINDOWSIZEDLG can be used to allow a user to set a window's size (width and height in pixels).


The new SPAtom MIXALL mixes up to eight input arrays/vectors into an output array/vector with gain scaling.

The new SPAtom WLANA performs a general wavelet analysis, and the SPAtom CCANA implement a Cohen Class distribution.

The SPAtoms PVANA and PVSYN no accept a windowing function parameter.

The new SPAtom KLATTSYN can be used to generate synthesised speech.

EVAL command

The EVAL command has the following new subcommands:
formants - a new formant tracking algorithm.
limit, limitlow, limithigh - limits values to within a range of values.
min, max - can receive more than one parameter.
cdot, ctrn, conj - complex dot product, matrix transposition and conjugation.
f0ac - F0 detection using autocorrelation.
The EVAL command now supports numerical (e.g. >=), logical (e.g. &&) and ternary (e.g. eval $#a > $#b ? $#a : $#b).

The Macro Library

The DATASETCMD has a new subcommand AUTOSAVE with which you can turn the DataSet autosave feature on and off.


The new CGRAPHSETUP command GRAPHLEGEND displays an amplitude legend in a spectrogram plot.

The new CGRAPHSETUP command GETCOLORPALETTE retrieves the print or screen palette in an extended table.

The new CGRAPHSETUP command GETPROFILELIST returns a simple table with a list of color profiles defined in the settings file (S_TOOLS-STx INI).


BXMLDoc class

The SETELEMENT function can now take a table containing attribute/value pairs.

CMenu class

The new CMenu function AddToolBoxMenu adds the standard toolbox menu items to the menu.

XPlot class

When constructing an XPlot instance, an owner window may now be specified.

Shell Items

Dialog Item

The dialog edit control has a new option '/F' which forwards KEY messages to the shell.

There are now four 'types' of edit control and a host of new parameters, which means it can display syntax highlighting, be used as a command line interface, etc.

A listview's cells can now be editable. The option /E which must be set for a ListView to be editable. The message CELLEDITED is sent if it is editable and its contents has been changed. If the user cancels editing, the message CELLCANCELLED is sent to the shell. If editing is ended because the user presses TAB or Shift TAB, the CELLEDITEDTAB or CELLEDITEDBACKTAB messages are sent. You can set the focus to a specific cell and enter editing mode using the new command SET dialogItem listviewIndex STARTEDIT.

The listview now supports the /F flag which forwards specific key types to the shell.

The listview supports a new option /R=n, which determines the maximum number of lines of text which can be displayed in the listview.

The new attribute !FOREGROUND returns 1 if the dialog window is in the foreground, 0 if it is not and -1 if the command fails in some way.

The new dialog attribute !EDITING can be used to ascertain if a listview is currently being edited or not.

File Item

The NEW FILE command can now take the option /S, to suppress error messages on creation failure.

The new file item command COPY /Z can be used to encrypt/decrypt a file, including optional password protection.

The new command TRYLOCK will try to get a lock on the file but will not block the script.

The !CHANGED attribute can now be explicitly set or reset. This functionality is new, in as much as versions previous to 3.9.0 could only reset the attribute. The meaning of assigning '1' to the attribute has changed, since assigning '1' now *sets* the attribute, whilst assigning '0' resets the attribute.

A new file item type - the GDX file item - has been developed, which can be used to create files containing graphic data which are passed directly to a graph item. GDX stands for "graphical data exchange". Currently, the spectrogram is the only plot which supports the GDX file type.

Graph Item

The command ADDMARKER can now be used to add a 'Box and Whiskers' metasegment.

The metasegment font can be specified on an individual basis using the ADDMARKER command.

A metasegment may be told not to change color on selection. This is only available using the "SET graph ADDMARKER table" command with the parameter "invertSelected" set to "true" if the metasegment color should be inverted whilst selected or "false" if not. The default is "true".

The key used to make a metasegment moveable can now be set using a 'modifyKeys' entry in the ADDMARKER table parameter.

A simple marker can now be displayed as a single vertical line (option /M).

The command OVERVIEW, which toggles between the 'view' and 'overview' modes, has been documented.

The graph supports a new attribute !CURSORMODE which returns the currently visible cursors, as set using the last CURSORMODE command.

The width of a graph's border can now be set using new AXIS command parameters. The default border width is 1 pixel.

The spectrogram palette can be changed at any time using the "SET graph Y * * SPECTROGRAM" function.

The DATASETLOADED message is now sent when a graph finishes loading data for a particular input.

Instance Item

The new command TRYLOCK will try to get a lock on the instance but will not block the script.

Table Item

A table item connected to a ListView must be configured to be editable using the CONFIG command or the !EDITABLE attribute. The CONFIG command has also been extended to allow for a restrictive set of values to be specified for a table field. If specified, the ListView will display a combobox in this column for each entry. All parameters set using the CONFIG command can now be queried via table field attributes.

The new command TRYLOCK will try to get a lock on the table but will not block the script.

The command NEW TABLE supports a silent error flag.

A table field can now display multirow entries, if the !MULTIROW attribute is set to 1, or the CONFIG command multirow parameter is set to ON.

The last user input for a particular column can now be used as the default for that column using the CONFIG command's setuserdefault parameter.

The DEFINE command can now be used to rename an existing field.

Wave Item

The wave item now supports the new attribute !PLAYSRATE which can be used to return the sampling rate currently used to for playback or set a new sampling rate for playback.



Graphical User Interface

F0 Test, F0Lookup, Amplitude Spectrum Statistics

The F0 Test, F0 Lookup and Amplitude Spectrum Statistics functions in the Spectrogram & Parameters Viewer sectioner have been moved to the toolbox file SpectrumTB.sts.

Macro Language

UNLOAD command

The command UNLOAD MACROCODE, UNLOAD SPUCODE and UNLOAD SOURCECODE take one parameter - the name of a sourcecode file (relative or absolute). The MACROCODE variant used to take a blank separated list of macro names and the SPUCODE version used to take a blank separated list of SPU names.

Display and Dialog DROPFILE message

The DROPFILE message sent to displays and dialogs when files are dropped onto them has been changed. The filePath parameter is not longer a string, but rather the id of a simple table with one absolute path per entry.


The string "123 456" is no longer a valid number.

Bug Fixes

Bug fixes

The waterfall graph now prints correctly.

The BDataSet member function AddASet now selects the new audio set if adding the set succeeds (r5534).

Shell commands using the return value RC now assign the value even if return code equals 0 (indicating success) (r5609).

Spectrogram & Parameters Viewer Sectioner copy to clipboard working again (r5625).

The 'view' graph mode now displays correctly when first drawn (r5643).

The asterisk character * is now officially an invalid hotkey, rather than being one which doesn't work correctly (r5500).

Loading an XML file which an unsupported character encoding now fails rather than asserting (r5614).

The Spectrum viewer can now saving CEPST parameters (r6470).

The color 'GRAY' is now defined as the RGB value 96:96:96, which fixes the bug where cursors were invisible on a 'GRAY' background (r6148).

The "SET graph XSCALE" flag "/I" is now working (r6187).

Using the correct normal/dual/tight phase vocoder pv filters (r5874).

All valid number formats (including mmmE /-eee) can now be used in time-expressions (r5746).


S_TOOLS-STx Version: 3.9

A list of documentation corrections since the last release (3.7).

The macro COBJ has been superseded by the COBJ class and no longer exists.

The command SYSTEM MKDIR and SYSTEM RMDIR were undocumented.

The SPAtom ASEG1 parameters are now in the correct order (TABS and TABM were swapped).

The SPAtom VSPLIT was mistakenly documented as VSPLIT1.

The macro DEBUGTB no longer exists.

The descriptions of the different formulas used by the SPAtom MORLET have been corrected.

The section FILE item command LOAD parameters were not documented as mandatory.


The AWEIGHT SPAtom has now been documented.

The WAVEOUT SPAtom has now been documented.

A list of documentation corrections since the last release (3.6.2).

The BUTIL FILEDIALOG no longer has a path parameter.

A list of documentation corrections since the last release (3.6.1).

The SET table FIND cexpr format uses colons, not commas as delimiters.

The SET value OUTPUT commands can take /Double options.

The description of the parameters for the NEW TABLE command where field definitions are possible has been corrected.

The SET graph CURSORMODE command now describes the bound and locked parameters correctly.

The VAR arithmetic operators DIV, MUL and SUB are actually called DIVIDE, MULTIPLY and SUBTRACT

The SET graph ZSCALE command parameters were incorrect.

Known Bugs

S_TOOLS-STx Version: 3.9

These bugs were known to exist at the time of the release and are proving difficult, if not impossible to fix.


Sometimes 44KB soundfiles are created, which are invalid. This bug has not proved easy to replicate, so if you can replicate it, please contact us ( \n This e-mail address is being protected from spam bots, you need JavaScript enabled to view it ).

Can't delete an entry in the DataSet if it has no ID. It is highly unlikely that you will ever have a DataSet entry with no ID. If this is the case however, you must currently delete it by hand (Close S_TOOLS-STx, open the DataSet in a text editor and either give the offending entry an ID, or remove it). Should you be able to reproduce any action which creates an entry without an ID, please contact us ( \n This e-mail address is being protected from spam bots, you need JavaScript enabled to view it ).

Spectrogram & Parameters Viewer

Interpolation of very short signals is incorrect (Deutsch - 2004-11-10 - since 1.0).


Copying a display graphic to the clipboard and pasting into a graphics program does not always achieve the desired results. This bug will not be fixed in the foreseeable future. Some graphics programs paste it properly (IrfanView, Microsoft Word), others don't (PaintShop Pro) - (Jonnie White - 2004-07-14).

Selected cursors is not visible if background is set to GRAY (White - 2004-07-12 - since 1.0).


The dialog control listbox does not handle displaying huge strings properly. This seems to be a problem with the underlying CListBox control (Becker/White - 2004-12 - since 1.0).

The DCOM command INVOKEMETHOD Evaluate always returns an error when communicating with the R DCOM server even if the command was actually successful (Deutsch/White - 2004 - since 3.6.0).



  • BUGFIX: zoom in in viewer3 now working when zooming around active cursor
  • BUGFIX: spectragram title display corrected (amin/amax)
  • BUGFIX: CDLGMAP now deletes window only if it has created the window during construction


  • BUGFIX: dataset path now displayed, even if it has spaces in it.
  • BUGFIX: Parameter plot explicitly redrawn when new data is sent. This fixes the bug (reported by Julia Brandstaetter) where Set Zero and Undo were not working properly in Spectrogram and Parameter plot.


  • BUGFIX: Warn user that more waveform samples are being sent than expected and refrain from crashing.
  • BUGFIX: CDlgMap now always uses the next free dialog index for a new entry. This means that multiple maps can reference the same dialog and still work. The functions fci and nc were removed since they are never used. Display now using second event to synchronise creation and variable initialisation. This fixes the mysterious bug where the window class was only sometimes used.
  • BUGFIX: If the polyline function is called with less than two points it no longer asserts, but rather ends gracefully.
  • BUGFIX: send keys not processed by dialog on to graph hotkey handlers
  • BUGFIX: spectrogram is now being initialised with the correct context menu when formants are displayed in it.
  • BUGFIX: giving dialog focus if there are no graphs
  • BUGFIX: buttons in dialogs in a graph no longer process normal mneumonics. This means that the graph can process them (for Moosmueller). Buttons can still be activated with return and the space bar and tabbed/arrowed to.
  • BUGFIX: preventing race conditions in Attach/Detach. This removes one possible cause of autosave crashing. It does not guarantee, though, there to be no other reasons for autosave to crash.


The STx downloads are available here: https://www.kfs.oeaw.ac.at/pub/stx