- Dumping of marker channels to text (file or clipboard) was failing to dump the last marker channel; this has now been corrected.
- The text format dialog for dumping of idealised trace data had the controlling checkboxes mixed-up; this has now been corrected.
- The internal random number generator is initialised with a value derived from the date and time to avoid repeating the same state sequencing and varying fixed-interval sweeps.
- Any attempts to fit a function to data in frame 0 is now blocked; doing this used to cause Signal 4 to fail abruptly.
- The SerialXXX script functions can use COM port numbers up to 256, while the various dialogs that include a COM port number allow up to 19.
- Version 4.10 is the earliest version 4 release that works with the Power1401-3.
- Data exported to MatLab includes the state label string in the frame information structure.
- The recording of ProcessFrames() when processing frames with a specific state code has been corrected.
- The ChanFitShow() command has been fixed so that it correctly returns the end of the draw time range when opt% is -2.
- The script and pulse sequence keyword colourisation and code folding have been corrected, they were broken in version 4.09.
- Pulse outputs can now be generated on DACs 4 to 7 on the Signal top box - previously Signal said the DACs were not available.
- We have got rid of a memory leak occurring when sampling using a text sequence file fails due to no 1401 being connected.
- When saving a data or XY document the checks on the file name have been corrected so that Signal reliably detects when the existing file is being updated.
- The initial view title displayed when a data file is opened is always correct.
- Uses registry information to hold signal conditioner settings in preference to CEDCOND.INI.
- If cursor 0 iteration in measurements to XY is stuck, the processing will stop.
- Any file selection dialog provided by FileConvert$() will have the initial file type correctly set if possible, the file type chosen by the user cannot get overridden by automatic type detection.
- The fit probability calculations now avoid generating arithmetic overflows in extreme circumstances.
- Script-created dialogs now treat the Esc key as cancel if no cancel button key is set.
- Adjusted to allow XY data files generated by version 5.02 of Signal to be read.
- The MagStim support has been adjusted to work with version 9 of the Rapid firmware.
- Added support for the Digitimer D360 to the available signal conditioner support.
- Corrected the layout of script-created dialogs that contain only buttons.
- Restarting sampling does not force the X axis to the left-hand edge position.
- BiStim support does not round pulse intervals down by 0.1 ms in HiRes mode.
- Pulse system limits to DACs have been adjusted to always allow full-scale pulses.
- The timing of outputs generated during gap free sampling previously showed a small difference between the first sweep and subsequent sweeps.
- The use of table values in output sequences has been corrected for the Power1401.
- Virtual channels now behave correctly during sampling to avoid transient irregularities.
- Varying sample rates are detected in tests on data before copy and export operations.
- Virtual channel information is saved correctly when the sampling data window is duplicated.
- Added a types% value to exclude disk channels from ChanList() and similar functions.
- ChanTitle$() and ChanUnits$() correctly updates all frames of virtual channel data.
- ChanValue() does not give spurious error with waveforms drawn as splines.
- The slope threshold searches for cursor 0 iteration in measurements to XY views use the threshold level correctly.
- Slope peak and trough searches use correctly scaled minimum amplitude - was being divided by the sample rate.
- Fixed a problem that if a script-created dialog button or change function opens another dialog, the return value from the function was not used correctly.
- DlgCreate() can set a string help ID successfully.
- Initial string values in user dialogs and strings set by DlgValue$() will obey the string length limit.
- Horizontal & vertical cursor position commands now work correctly - they were getting mixed up with other actions.
- Closing a sampling document by clicking on the top-right corner is now clearly handled as aborting sampling with a suitable warning dialog.
- Fixed the behaviour of the maintain ADC range online item in the sampling preferences - it was forgetting the selection.
- Scripted trend plot or measurements with user checks do not block subsequent window position changes and other operations.
- Removed a possible memory leak in scan fitting of idealised traces.
- Scan fitting of idealised traces auto-merges if below critical amplitude.
- Fixed a program failure that could occur when auto-average processing a file whose channel point counts fluctuate between frames.
- Overdrawing of all sampled sweeps while sampling now works a lot better.
- Drawing of short data sweeps online when using variable sweep points has been adjusted to improve visibility.
- Overdrawing of frames has been adjusted to avoid invisible frames, particularly when fading to the background colour.
- ADC port calibration information read from a MC700 amplifier using the button on the Clamp page of the sampling configuration dialog is adjusted to take any amplifier gain into account - to match what happens during sampling.
- A message is generated if Signal reads an old sampling configuration without ADC and DAC range information and it appears possible that this might lead to problems.
- The documentation on MeasureToXY() has been changed to show the correct usage of the level and hysteresis parameters.
- The clamp control bar can either display total electrode resistance or access and membrane resistance.
- Error bar values generated during waveform averaging are now correct when processing is done more than once to the same average; a single process gave correct results.
- Cursor position values provided by %p in user label mode take any zero offset set in the axis into account.
- Cursor label generation using a position value (supplied by the axis) ensures that all the axis information is up-to-date, thus avoiding very occasional incorrect labels.
- The burst timing in a Power1401 mk II has been adjusted to get rid of occasional crosstalk issues.
- The ChanDelete() script function can now be used on virtual channels.
- Axis drawing and label generation code prevents possible recursive behaviour which might hang Signal.
- Slightly improved initialisation of pulse outputs in fast modes at the start of sampling, so outputs are reliably stable by the time sampling begins.
- Sampling setup avoids resetting sequencer variable values when limits to the number of sampled frames are in use.
- Output sequencer execution was being disabled when all outputs (for the pulses style of outputs) were turned off.
- Changes made to DAC scalings in the outputs page of the sampling configuration dialog are not lost if user disables the DAC.
- Time$() now correctly uses the system setting for 12 or 24 hour display.
- The membrane analysis dialog avoids potentially hanging up with particularly bad data, and the analysis of membrane resistances and capacitance has been made more robust.
- Maximised script and pulse views are no longer un-maximised when an error is generated on compilation.
- The number of states set for auxiliary states systems, such as the MagStim, is immediately updated when the number of Signal states is changed, in particular by a script.
- MagStim and CS3304 auxiliary states support now work correctly with 256 states.
- The script debugger global variable display now copes correctly with resized arrays.
- The name of new XY documents was not being initialised correctly but left blank.
- A fault which caused the SetCopy() function to generate channels with zero points when used with online data has been corrected.
- Peri-trigger levels and scaling for modified frame 0 data that is written back both now take any telegraph-based changes to the channel calibration into account.
- Threshold, repolarisation percentage, slope threshold and turning point active cursor searches now behave sensibly when searching backwards.
- The behaviour of CursorActiveSet() (and the recording thereof) when the X axis units are not seconds has been corrected.
- Y axis ranges set by dragging are remembered correctly in the saved channel settings.
- The Magstim control system works correctly with Rapid systems with the newer firmware fitted as well as with the older units.
- Corrected telegraph information for Axopatch 200 amplifier - was *2 out from the POV of the amplifier settings.
- Improved protection against incorrect telegraph information.
- The appearance of the membrane analysis dialog has been much improved.
- Controls in the find and replace dialogs are positioned correctly.
- A New horizontal cursor button has been added to the bottom left corner of the data view window.
- An optional parameter has been added to the U1401Open() function to select the 1401 unit number.
- The ArrSpline() function has been extended to do non-uniform splines and may be slightly faster for uniform splines.
- The Grid() script function has been extended to allow display of only the X or Y axis grid.
- XY views created by processing can be cleared by using the Edit menu Clear command. Both these and result views have Clear added to right-click context menus.
- During clamping experiments the membrane holding potential can now be adjusted by using the mouse wheel or keyboard on both the clamp control bar and the membrane analysis dialog, the Ctrl and Shift keys act to modify the potential step size.
- Data file frame variables now hold all three clamping membrane analysis resistances plus membrane capacitance instead of just the total resistance.
- The clamping membrane analysis now uses a dual-exponential fit to find the membrane capacitance and reverts to a single exponential fit if that fails.
- The BiStim setup dialog avoids intervals between 0 and 1 millisecond and only provides a single power setting when the stimulus interval is set to zero.
- The trend plot process settings dialog now has a 'User check positions' checkbox to allow cursor positions to be manually inspected, an additional bit has been added to the MeasureToXY() flags for the user check.
- The Modified() function has been added to the script language. This function allows you to detect if view data has been changed, in some cases to change the data changed flag, and to detect read-only data.
- The FileTime$(), FileDate$(), FileTimeDate() and FileSize() functions have been added to the script language.
- Two new buttons have been added to the Y axis dialog to set symmetrical axis ranges about zero.
- The System() script function now allows 1000 to be added to the screen number to get the screen work area without any edges occupied by toolbars (as much as is possible).
- The virtual channel dialog sample interval and time alignment fields both show and adjust for the X axis units in use.
- Fixed the update and maintenance of result view window titles, so result view titles should always correctly reflect the title of the source document.
- Cursor zero will now correctly iterate data points on an idealised trace in both directions.
- Cursor iterations will now scroll the data view correctly.
- X value selection boxes in dialogs will now correctly identify the first visible cursor.
- The XY Measurements dialog can now iterate cursor 0 on an idealised trace channel in points count mode.
- The drawing code for waveforms has been changed so that negative full scale is much more likely to be drawn when Show All is used.
- The axis drawing code has been adjusted to fix a failure to draw Y axis numbers correctly in 3D overdraw mode.
- The file close checks have been corrected so that pressing cancel on the 'Save data' query does not simply dump the file without any saving.
- We have again adjusted the stop and abort sampling behaviour to prevent failures that could occur since version 4.05.
- Changing the limit to the number of points in processed XY view channels now works correctly.
- We have fixed a failure that occurred when aborting sampling with virtual channels in use along with a duplicated window.
- The integrated BiStim control now works correctly when the stimulus interval is set to zero - in this circumstance both power levels must be the same.
- Any controlled MagStims will be stopped and rearmed as necessary after settings have been changed to avoid Ready bit misreads that made the unit appear to be ready too soon.
- The ports list parsing in the sampling configuration dialog now detects if too many ports have been specified.
- The virtual channel time constant entry dialog now shows the current expression and the value entered is used correctly.
- Very large (unreasonably so) time constants entered into the virtual channel processing options such as smoothing or DC remove will not cause Signal to fail.
- Virtual channels don't cause Signal to fail when the sample interval is reduced.
- Virtual channels handle non-zero frame start times correctly.
- The channel information dialog now displays X spacing for non time-based X axes; previously no X interval information was shown.
- In the membrane analysis dialog for clamping experiments the Y axis was previously inverted.
- View creation has been adjusted to allow annotated window titles; at present this consists of an asterisk to indicate modification.
- The default script outdent flags in the autoformat dialog have been adjusted to include wend, until and next.
- Window duplication has been disabled for memory views created by processing, as deleting the first window while keeping the duplicate will cause Signal to fail.
- The sampling shutdown code has been slightly adjusted so that SampleStop() will not return until sampling is properly over.
- The default timeout while waiting for a MagStim auxiliary states device to become ready has been increased to 15 seconds.
- Calibration information for current data channels that are retrieved from MC700 amplifiers are automatically adjusted to force nA units to pA.
- The display of resistance and capacitance in the membrane analysis dialog and clamp control bar has been improved.
- Previously generated sampling configurations that set the BiStim stimulus interval to between 0 and 1 milliseconds will now use either a 0 or 1 millisecond interval (whichever is closest) as these intermediate values can damage the BiStim hardware. Similarly, configurations that use a zero BiStim stimulation interval will use the main power setting to control both units and ignore the secondary power setting.
- Resistance measurements in clamping experiments will use the first suitable pulse found in the relevant pulse outputs rather than just trying the first pulse available.
- Trend plot processing does not give up if a measurement fails, just does not produce that data point.
- Pressing cancel in the User check dialog in measurements processing cancels all further measurements, not just the current frame.
- We have adjusted the use of screen information so that we can get work areas that avoid toolbars where possible.
- The virtual channel and channel information dialogs now display any error messages in red.
- Virtual channels have been added, these hold waveforms derived from other channels by using a user-supplied expression. The channel data is automatically recalculated for each frame. Channel list string parsing has been extended to allow "v1" and the like to specify virtual channels.
- The sequencer language that is used to generate outputs during sampling or interact with data acquisition has been extended to provide more variables, indirect jumps, logical and ABS instructions, defined constants and the ASz(), VSz(), TabPos() and DRange() expression functions. Defined constants and constant expressions can be used anywhere that would previously have only accepted a simple integer number.
- Added support for making use of the mouse and manipulating the mouse pointer while script toolbars and dialogs are in use. This support consists of the ToolbarMouse(), DlgMouse() and MousePointer() script functions, plus the ChanPixel() function which is used to obtain the size of a pixel in terms of the channel X and Y axes.
- The interface between the sequence editor and the help system has been improved so that the help obtained by pressing F1 should go directly to the required help page.
- The script language has been extended to support array resizing, the break and continue statements have been added to manipulate loop execution.
- The MultiClamp telegraph support is now fully integrated with the clamping support. In addition to retrieving the ADC port names, units and calibrations, the clamping mode and the external command DAC units and scaling can now be retrieved; options in the clamp setup page allow the current MultiClamp settings to be retrieved without sampling.
- There is a new preference to enable the display of decorated view titles - the text added to the title to show the progress of sequencing through the various states. If an auxiliary states device is in use this sequencing information was replaced by the auxiliary device settings, but this can now be disabled, so you have complete control of what or any view title decoration is done. In addition, the view title decoration (being associated with the currently sampled sweep) is not shown if any frame other than frame 1 is being viewed and is never shown in the main Signal window title.
- All text-based views can optionally display line numbers. The new ViewLineNumbers() script function can be used to show or hide line numbers.
- All text-based views have view menu items for Show gutter, Show line numbers and Standard display.
- The script language has a new function, ViewZoom(), which increases or decreases the displayed font size in text-based views.
- All text-based views now have a maximum lines limit which can be used to ensure that they do not become too bulky, the new ViewMaxLines() script command provides access to this limit. The Edit menu Preferences dialog provides control over the maximum lines allowed in the Log window in the Scripts section.
- The Val() script function has an extra argument that can be used to get it to accept hexadecimal (base 16) input.
- There is a new sampling preference to select the 1401 ADC voltage range. This is used to check and (when appropriate) automatically adjust sampling configuration information and is checked against the 1401 hardware in use at startup and whenever sampling is started. The items in the telegraph configuration dialogs that previously set the ADC range now display the ADC range in use.
- Reloading a script include file will restore the breakpoints to their previous state if this was closed while the script was running.
- The outputs page of the sampling configuration now contains a checkbox to adjust the sampling to maximise the arbitrary waveform output rates possible. The SampleOutClock() script function has been altered to give access to this feature.
- There is a new item in the display preferences to prevent the generation of compressed metafiles, which can give problems in some situations.
- An over-type mode indicator has been added to the status bar for use with all text-based views.
- Signal attempts to deal better with the memory and view handle shortages that can occur when viewing many documents each containing many channels.
- The Seconds() script function can now take two parameters and is more accurate.
- The DebugList() script function has been extended to provide extra information, including timing of function execution.
- The DlgValue$() script function gives access to the prompt string for checkbox items when used with both the item number and the item number plus 1000 - previously there was no access via either route.
- The DlgButton() and ToolbarSet() script functions can be used to get the number of the last button pressed.
- The new XYInChan() script function detects which points in an XY channel lie inside a polygon defined by another XY channel.
- The XYInCircle() and XYInRect() script functions have been extended to return an array holding the indices of the data points that lie inside the circle or rectangle.
- Signal tries harder to prevent Windows going into standby or hibernation mode while sampling is in progress.
- Copying and pasting frames of data now also copies the frame state code and associated label.
- The active cursor dialog only updates the cursors when OK is pressed, and displays the appropriate channel units rather than the channel name.
- Processing to a memory view online does not set the frame state code if LastN mode is being used.
- Online processing sets the destination frame state if states-based processing is used.
- Processed memory and XY view titles do not include any states sequencing information or other decoration taken from the source view title.
- The control of data acquisition has been adjusted so that the display of previous sweep data is not cleared too early when there are pre-sweep outputs.
- Initial DAC levels set at the start of the sweep using the pulse outputs now correctly take any built-in pulse variations into account. Start-of-sweep outputs initialisation has been improved.
- Replacing values in a fixed-length XY view that was sorted (either by the X or Y values) now works, previously this would have crashed Signal.
- Faults that could cause Signal version 4.05 to crash when finishing sampling (if no data was saved to disk), or when closing a sampled data view by clicking on the "x" in the top-right corner, have been corrected.
- The signal names that are retrieved from the MultiClamp 700A by the auxiliary telegraph support have been corrected.
- Resetting the sampling configuration parameters now also initialises the signal conditioner, auxiliary telegraph and auxiliary states settings.
- Pressing the Escape key will not halt an executing script if Signal is not the active application.
- The pulses dialog now avoids incorrect 'value out of range' messages from the vary steps or trigger time items that were seen in some circumstances.
- The display of incorrect and meaningless error messages such as "CallAsProc" in the filter dialogs has been prevented.
- FiltCreate() and FiltApply() now work correctly with a filter index of -1 for the special filter not in the bank.
- Frame list strings including the number zero are handled correctly when used online.
- XY views in earlier versions did not redraw correctly when data was changed if the y axis was inverted.
- When a script is run by the ScriptRun() command and the script was not already open in Signal, when the script terminates it is closed. However, such scripts were closing even if there was an error. Now the script will stay open, with the error line highlighted. If you have set the flag in ScriptRun() to continue running even if an error occurs, the next script will run, as before.
- If you compiled a script, closed it and reopened it, Signal assumed it was unchanged and did not recompile it when it was run (Signal keeps the last compiled script in memory to avoid unnecessary recompiles). Now, unless the script is running when you reopen it, the previously compiled version is deleted, forcing a recompile. This does not apply to included files, which are assumed not to have changed if they are opened.
- The ternary script operator now works correctly even if the first item is a constant.
- The SetPower() script function now correctly rounds FFT sizes down to the next integral power of 2.
- The draw mode dialog now copes correctly with idealised trace channels once again.
- A script editor folding error when proc or func is used to introduce an argument in a function definition is now fixed.
- Y-axis labels now redraw the bottom tick label if it is only partly covered then uncovered again.
- XY views generated online by processing a memory view (itself generated by online processing) now work correctly for all types of memory view. Previously only Auto-average and Leak subtraction memory views would behave sensibly.
- The script recorder for trend plots now correctly records Maximum measurement mode, no longer records unused parameters and records start and end times the right way round.
- Using SetMemory() to create a memory view then using Alt-click-drag to measure will now use the correct font to show the measurements.
- The cursor menu section for vertical cursors always shows only the cursor position regardless of the label mode.
- The subsidiary frame selection item (such as un-tagged) is obeyed when processing a frame list string that specifies frames with or without specified states.
- The serial-line support used in the script language & elsewhere has been altered to use new, advanced, serial-line I/O mechanisms. This should not cause any significant effects, but the SerialWrite() command has changed slightly.
- Frame state information shown in the status bar shows the state label first, if available.
- Scripts run from a command line are not closed if a compile error occurs.
- The new document selection dialog has been adjusted to remove the annoying scroll bar and to behave better when sampling is already in progress.
- The control for synchronised pulses in the outputs page of the sampling configuration dialog has been removed as it was redundant.
- The control in the script preferences for saving modified scripts before running them now also controls the saving of output sequence text before starting sampling.
- Signal is now built using Visual Studio settings that create applications requiring at least Windows 98 to run.
- The default initial filter type selected in the FIR filter dialog is now a low-pass filter.
- The maximum ADC port number allowed in a sampling configuration is now 127.
- The limits to the number of keyboard and digital markers per frame (128 and 1024 respectively) have been removed.
- The text editor has changed to allow multiple selections and virtual space, so may behave differently.
- Time strings using the e (exponential) number format will now parse correctly.
- The upper limit for the FFT size for power spectra has been increased to 262144, both for the SetPower() script function and for integrated power spectrum processing.
- The dialog used to select a directory in the preferences, sampling configuration and FilePathSet() has been changed to a new-style resizable version.
- When importing text data, the FileConvert$() script command now searches the import folder for a configuration file called Txt_Def.cim. You can create this file by using the interactive data import.
- When importing a binary data file, the FileConvert$() script command now searches the import folder for a configuration file called Bin_Def.bib. You can create this file by using the interactive data import.
- The Neuroscan data importer has been extended to convert 32-bit SynAmps2 data and can now handle up to 128 channels.
- The Bionics/Cyberkinetics data importer can now save events with additional attached values as Marker data.
- All file save operations now check that the path used for saving is legal.
- The XRange() command is now recorded correctly using seconds as the units.
- Text inserted into a user -defined dialog from a script will now take into account any tabs in the string when auto-formatting.
- Cursor searches for maximum excursion now work correctly.
- The state information text shown in the window title has been corrected for BiStim and dual 200 MagStim use.
- State information text (in the window title) is synchronised with the data shown.
- Time value edits created using DlgXValue() now work correctly when time is shown as milli- or microseconds.
- User cursor labels showing a channel value now work better with an XY view.
- Key presses are now always ignored if Signal is not the current application.
- Tooltips no longer appear directly under the mouse pointer for some field types.
- XRange() and Draw() now behave correctly with log axes.
- Script recording of HCursorLabel() from the horizontal cursor label dialog now uses the correct cursor number.
- SampleStop() and SampleAbort() script functions no longer return until sampling has actually stopped. This can cause scripts to fail if they previously assumed that the sampling window was still open and no data was written to disk.
- User dialog channel selectors now show channel numbers with the 'Selected' item.
- Breakpoints set in callback functions (e.g. the fit function used by FitNLUser()) in scripts are now ignored as they could cause script debugging to go wrong.
- Trying to call Interact() or Yield() in a callback function now halts the script with an error.
- The pulses configuration dialog sets output length limits correctly when varying sampling sweep points are used.
- Stopping sampling then clicking "More" now removes "[Stopped]" from the window title.
- It is now possible to halt a script using Esc, which has become stuck in an infinite loop whilst evaluating a user-defined fit function.
- The EDF (European Data Format) data importer now correctly imports BDF data. Previously it imported the data with incorrect amplitude resolution.
- The Process() function start time argument is now used correctly.
- The spinners for the tick subdivisions in the Y axis dialog now work correctly.
- Scrolling with 3D overdraw now no longer leaves parts of the trace undrawn.
- Filter banks are now saved to disk correctly.
- The green/amber/red LEDs in the details of the FIR and IIR filters now have their background adjusted for changes in the system colour scheme.
- A script putting up a modal dialog now closes any menus which may be open. Failing to do this was stopping the dialog from accepting mouse clicks.
- Setting legal$ for a DlgString() item no longer prevents cut and paste from working correctly.
- The text data importer now imports data with a sampling rate of less than 4 Hz. Previously the sample interval was incorrect.
- ProcessFrames(0) no longer crashes Signal if used off-line.
- All forms of threshold searches on slopes now interpolate for maximum accuracy.
- The help button has been removed from file selection dialogs as it didn't provide any useful help.
- Signal and Try1401 now make use of Windows XP styles & themes if they are enabled.
- Square root y-axes have been added.
- The spelling of "Maximim" has been corrected to "Maximum" in the fit dialog.
- A y-zoom with a log axis now works correctly.
- Time edit fields in a dialog created using DlgXValue() now correctly obey the preferred time units.
- Changes to the check boxes for tick behaviour in the axis dialogs now undo correctly when cancel is pressed.
- Overdraw All Sampled Frames now works again. It is not possible now to select 3D overdraw with All Sampled Frames though.
- Scrolling and zooming by dragging the X axis when 3D drawing is in use now works correctly.
- The Cursor : Display All menu item no longer considers invisible cursors for the display range but does now work correctly if there is only one cursor.
- The Duplicate window menu item is now greyed for script windows.
- Averaging on more than one channel now sets the number of points in all channels correctly when a sub-section of the frames are averaged.
- The sequencer control panel can be resized in X if it is not docked.
- The DlgAllow() script function can now be called upon a dialog that is currently in use to change allow flags, change or idle functions.
- The memory allocated in the 1401 for the sequencer has been increased to 8191 instructions for 1401s with large amounts of memory. A better error message is now given if the sequence generated by the pulse outputs is too large.
- We now digitally sign the 1401 device drivers. This change allows you to install the drivers on 64-bit Vista systems.
- Log-binning has been added as an option to Open/Closed time and Burst duration histograms.
- SetOpClHist() and SetOpClBurst() now have an extra parameter for the number of bins which forces log binning.
- The DlgMouse() script function has been added.
- DlgReal() and Input() now have an extra argument for precision.
- 3D drawing has been added as an overdraw option.
- The Overdraw3D() script command has been added.
- The Overdraw() script command has been extended to allow for 3D drawing.
- A negative precision argument to Str$() causes fixed-point format to be used.
- The output from the Eval bar can now be selected and copied using CTRL-C.
- Points mode has been added to active cursors.
- A compatibility page has been added to the preferences dialog. This contains an option to revert to switching to frame 1 instead of the last filed frame when sampling finishes.
- A frame spec string can be "ST:m,n" to specify all frames whose state is equal to m or n, "!ST:m,n" for frames with state not equal to m or n.
- X-axes now render correctly for metafiles output at a higher than screen resolution.
- Collapse/Expand all folds now works reliably first time in the script editor.
- Choosing not to save a new file will no longer leave a SGR file behind.
- The ScriptRun() flags% argument now works.
- The FIRMake() and FIRQuick() script functions documentation now correctly quote the maximum number of coefficients as 512.
- The shortcuts dialog now copes with re-defining shortcuts previously used for something else.
- Closing the conditioner setup dialog by using the X in the top right corner could sometimes cause Signal to fail.
- Problems with drawing whilst using variable sweep points have been fixed.
- The XY Drawmode dialog "Visible channels" option now works.
- XY view text export via EditCopy() no longer causes a crash.
- The DlgReal() script command no longer overrides user-defined field widths due to width expansion needed to provide a reasonable precision.
- The script system's conversion from floating point numbers to integer now copes with the value -2147483648. Previously it could only cope down to -2147483647.
- CTRL-C now works for copying text in the Fit dialog.
- Help opened with F1 or from a dialog is now always on top.
- The "Overdraw frame list" menu item is now "Overdraw frames".
- The "Frame display list..." menu item is now "Overdraw settings...".
- Pulse dialog with varying points uses points for state zero to set initial limits to frame length and fixed interval timing. It was using limits from the main page sweep points.
- Leeway has been added for arithmetic error in x (time) script parameters - values close to limits are now accepted.
- Saving filter banks to a read only destination now gives a better error message.
- The CONSAM importer will now set the file comment to give the -3 dB cut-off frequency stored in the source file.
- ATan() will now allow an array as the second argument.
- Conversion of floating point data to DAC values was truncating towards zero. This was causing a bias at zero so values are now rounded to the nearest integer.
- Slope measurement widths for searches (chiefly active cursors) are now limited to 2000 points rather than the previous limit of 200.
- The limits for numbers of symbols allowed in scripts have been changed to 10000 global symbols and 12000 local. They were 15000 and 7000 respectively.
- If showing frame zero when sampling finishes, Signal now switches to displaying the last filed frame.
- The error message generated when sequencer ticks are lost has been improved.
- An infrastructure to support data file export to other formats has been added, plus an exporter DLL that writes MATLABTM files.
- FileExportAs() has been extended to support external exporters and to provide an export parameters string.
- FileExportAs() has an extra flag argument used to control the data exported from XY views.
- XLow() and XHigh() can now be used in a text view to get the first visible line and the line after the last visible line.
- Draw(n) can be used in a text view to scroll the view to make line n the top line.
- App(-4) now returns the number of system handles held by Signal (for debugging purposes). App(-5) returns the number of system graphical objects in use by Signal.
- A new DebugHeap() script command has been added for system debugging.
- Changes made to a text view by a script set the modified flag, so you will be asked if you want to save the changes when the window is closed.
- There are new importers for Delsys EMG data files, Mindset 16/24 format data files (NeuroPulse-Systems LLC) and MindWare MW data files (MindWare Technologies Ltd).
- Signal now copes better with situations where memory or system resources are low.
- The cursor regions window now has a point count measurement. This counts sample points for a waveform or marker channel and transitions in an idealised trace.
- The MeasureX(), MeasureY() and ChanMeasure() functions all support the new point count measurement.
- A preferences option has been added to override the mechanism that prevents drawing in colours very similar to the background colour.
- The EDF file importer has been extended to import event channels with triggers as used by BIOSEMI.
- The MC_Rack file importer can now import event channels from digital data stored as a waveform.
- The Bionic importer now reads the NEURALCD continuous channel format.
- The Plexon importer can now import STROBED type data channels.
- The WAV file importer can now import 24-bit data as floating-point channels. 8 and 16-bit data are still imported as Waveforms.
- The ASCII text importer has been extended to recognise gaps in the data and use these to separate the data into separate frames.
- The Apply to All button in the Script, Sequence and Text editor settings dialogs now works.
- Threshold crossing open/closed analysis now sets the baseline value correctly in the event structure.
- Horizontal cursor positions selected in a dialog (for example Y range limits in amplitude histograms) are now parsed correctly.
- Horizontal cursor positions are remembered correctly when re-opening a file.
- The pulses information has been made much more robust, particularly in coping with damaged or corrupted resource files.
- Filled XY view drawing has been corrected when there are more than 3999 XY points.
- ProcessFrames() now records correctly.
- Idealised trace information created using threshold analysis in Signal version 3.09 onwards contained uninitialised (and usually very large) baseline values. These incorrect baseline values are now synthesised using the closed level.
- Compressing an x-axis no longer sometimes causes one big tick per pixel.
- Extra information will be provided if the problematic error -544 occurs when sampling.
- Idealised traces are now drawn in the colour set for fitted data; previously black was used.
- Idealised trace drawing now avoids drawing in colours very close to the background, unless this mechanism is overridden.
- The default XY channel colours for lines and filling were white and red respectively, they are now black and white.
- Pulses can be copied in the pulse editor by holding down Ctrl and then dragging. Without the Ctrl key down dragging moves pulses as in previous versions.
- The horizontal scroll bar in text views now adjusts for the length of the longest line of text.
- Open/closed amplitude histogram processing can now measure amplitudes relative to the baseline.
- The SetOpClAmp() function has been extended with an additional flags argument to select measurements relative to the baseline.
- The ProcessFrames() function now has an extra parameter controlling update if the source data changes.
- In the curve fitting dialog, the Results tab now displays the relevant units for each coefficient.
- Signal can now export idealised trace data to the HJCFIT and EKDIST analysis programs.
- Users can backup the current .sgr file data to filename.backup.sgr so that changes, in particular idealised trace generation, will not be lost in the event of a failure.
- The WindowGetPos() script command has extra optional arguments to match the Window() command.
- Both the Window() and WindowGetPos() script commands are now functions returning 1 if they succeed.
- There is a new script command DlgGetPos() to return the position of a user-defined dialog.
- Include files are now also automatically saved when a script is run if preferences are set to save.
- There is a new baseline measurements dialog which is used to characterise a patch clamp signal. This must be used before SCAN analysis is carried out.
- The standard amplifier telegraph configuration dialog has a list of known amplifiers for which it can fill in the list of telegraph voltage levels. Our thanks go to to John Dempster for helping us with the amplifier data.
- Lists of idealised trace events can now be displayed.
- The event time resolution that corresponds to the trigger level is now shown in the view and modify event details dialog.
- The View File information dialog now displays the number of sweeps accumulated into the buffer as well as the sweeps processed into the current frame.
- A new preference has been added to prevent y-axes being dragged through zero.
- && is now converted to & in print headers and footers.
- The pulse interval for pulse trains and cycle length for sine waves can now both also be specified as a frequency in Hz.
- Signal now warns you if you try to edit a read only script or sequence file.
- Y-axes now automatically switch to scale bars if heavily compressed, axis tick labels of very large numbers are now much neater.
- The App() script function can now retrieve view handles for the states and clamping control bars.
- The show channel numbers option, set using the Customise display dialog, is now saved in the .sgr file so that it is remembered when the file is re-opened.
- You can now save edits to a script even if you have a syntax error in an include file.
- Breakpoints are no longer deleted when there is a syntax error in a compile operation.
- Copy and paste of XY data now copies the correct number of points.
- The automation page in the sampling configuration dialog does not generate filename template when limit enable checkboxes are clicked.
- CursorLabel() and HCursorLabel() now record correctly.
- Channel lists specifying non-consecutive channels as a string now parse correctly.
- Idealised traces can be exported as text again.
- Saving a file after an automatic save failed (because the folder did not exist) and now works.
- Any errors that may occur in formatting headers and footers for printed output are now trapped without causing Signal to fail.
- Using Fit Visible in the middle of an idealised trace no longer moves the event selection on past the edge of the display.
- Signal no longer crashes if an overdrawn channel is deleted.
- The behaviour of the Window() function has been corrected when used with docking toolbars.
- Disabled DlgXValue() items in user-defined dialogs are no longer enabled if a cursor is moved.
- % characters in Print(), Print$() and Message() format strings are no longer stripped out if they are not part of a format specifier.
- Dragging a y-axis whilst scrolling in x direction no longer leaves bits of horizontal cursors behind.
- SCAN analysis now works in a result or memory view.
- The online help (this display) could jam up if you searched for some topics.
- Multi-frame averages generated either by Append Average or Auto-average processing will now display error information in frames 2 upwards.
- Append frame copy will now copy any error information as well.
- Changes to pre-trigger points in peri-triggered sweep mode are now reflected in the pulse configuration dialog.
- A script that closed itself might have failed to run a second time.
- Recording of the ProcessOnline() script function has been corrected.
- Text dumps to files and the clipboard can include error bar information.
- The Measurements to XY and Open/closed amplitude histogram settings dialogs update the Y units shown when the selected channel changes.
- The fit dialog no longer blanks out the function template if the fit range is invalid.
- String entry items with a list of selections in dialogs generated by a script could get confused if the text was changed using DlgValue$().
- Idealised traces now render correctly in metafiles, with horizontal and vertical lines properly joined up.
- A blank label can no longer appear on an axis instead of the zero that should be shown, nor will "0." be used as a label.
- The Y axis tick spacing will not change as the axis is scrolled, all axes have a large tick at zero.
- The Edit menu Cut command is disabled for file views (it never did anything).
- The Area for DC measurement dialog now initialises with the correct area end.
- HCursor set position dialog now initialises correctly.
- HCursorLabel dialog now no longer truncates user defined labels when read back.
- Horizontal cursors now preseve the full length of their labels when changing channels.
- The checks on clamp options when starting sampling now check channel numbers rather than ports.
- Sampling setup warns against 1401-based telegraphs used with fast sweep modes as this cannot work.
- Changed "Sensitivity for multiple transitions vs sublevel" to "Sensitivity for sublevel vs multiple transitions" in the SCAN analysis settings dialog.
- The SetOpClScan() script function now insists on OpClNoise() being called first, will generate an error if not.
- Show All in the Y axis dialog now shows the available data range for channels that have no inherent limit, as does the YRange() function if the parameters for the axis limits are omitted.
- The Open/Closed fitting used in SCAN analysis has been substantially enhanced so that it almost never fails to fit.
- If you resize the Signal application window, any iconised (minimised) windows are now arranged at the bottom of the window. Previously these windows kept their original positions.
- The default number of decimal places for text export has been increased to 6 for data values and 8 for times.
- Single channel (SCAN) analysis provides incremental processing of single channel data to produce an idealised trace by reverse convolution fitting of the amplifier':s step response function with the raw data.
- Enhanced multiple states sequencing with automatic cycling and protocol execution at start.
- Multiple or averaged measurements, generated using active cursor iteration across data frames, can be placed in an XY display.
- Gap-free sampling records sweeps continuously with no missing points.
- Variable number of points can be sampled in different sweeps to match experimenters’ requirements.
- New script editor with options including intelligent hiding of blocks of script, auto formatting, auto complete and call tips.
- Capability added for script code sharing and re-use through include files.
- Interactive IIR filtering and improvements to the FIR filtering dialog.
- Enhanced Power-Spectrum analysis, up to 16384 point FFT and windowing.
- Extended header and footer customisation for printed output.
- Improved XY plot display options including fill of looped areas.
- User defined keyboard shortcuts for use with single channel analysis.