- The script language now allows the use of the underscore character (_) in symbol names, new built-in constants _Version, _VerMinor, _pi and _e have been added.
- The File menu Save As and Export As commands both now copy all the available frame variables to the new file.
- The SampleTriggerInv() function has been added to the script language so that the sample trigger can be set to a rising edge.
- You can now use DlgValue$() to select the first list item which matches the string.
- Processing was not handling virtual channels correctly so generating an average of just a virtual channel would overwrite memory and often cause Signal to fail.
- The ColourSet() script function with size args of 0 or -1 now behaves as documented.
- We have added fixes for possible SerialRead() failures when reading very long strings.
- The IIRInfo() result is now the filter type as documented.
- The script ternary operator now insists on a numeric expression before the ?.
- Curve fitting did not cope correctly with times in milliseconds.
- The script ternary operator did not allow you to choose between two arrays.
- The fitting code for non-linear fits with all points assumed to have the same variance (least squares error) could calculate the r2 value as "Not a number".
- Fits in XY views are printed and shown in bitmaps & metafiles corectly.
- Clamp sets - and thus frame variables holding clamping information - are now correctly detected when a file is opened.
- Measurements to XY view now handle the averaging flag correctly.
- Script variables initialised within a loop are now handled correctly.
- The View menu Standard display command now protects against possible failures.
- Overdrawing sampled frames could cause problems when sampling finished or when the data file was re-opened as this overdraw mode was handled badly offline.
- Overdraw time limits that removed all overdrawn frames could previously hang Signal.
- Y axis changes when overdrawing sampled frames were not always causing a complete redraw.
- New behaviour has been added to the MagStim support to get rid of the occasional E83 error.
- A MagStim device used to automatically disarm if the wait for a sweep trigger exceeds 60 seconds, it will now be automatically re-armed.
- Forward references to the name of a user function were often being accepted as a numeric value (evaluating to 0 at runtime), this now gives an error.
- Various rare BiStim errors during sampling are now prevented; setting Hi-Res timing when current interval is zero and setting a zero interval when it is already zero.
- We have corrected the behaviour of semi-random states ordering which was generating random state numbers repeated the set number of times.
- We have corrected the behaviour of the active cursor dialog - it was overwriting the hysteresis/amplitude, width and minimum step values with values from the previous cursor when the cursor changed.
- Membrane analysis is done earlier so that use of results in an online trend plot works.
- The calculation of safe timings for the MagStim Rapid are now more accurate.
- Signal can now read CFS waveform data types other than INT2 and RL8.
- Corrected behaviour of frame selection in export dialog, previously it was not possible to directly enter a frame list.
- The Modified() script function used on a text view now tests for unsaved changes, not undoable changes.
- FiltAtten() now returns a negative value, the FiltInfo(x, -1) result has been changed to match.
- Curve fitting for the membrane analysis now uses half the stimulus pulse width rather than a fixed time - so the user gets a lot more control.
- PulseTimesGet() now returns the individual pulse length for pulse trains, not the overall length of the train (so now matches PulseTimesSet()).
- The sampling configuration dialog has been altered to avoid incorrectly increasing the outputs length when the sample rate is changed.
- The cursor label dialog used to specify a single channel from which a measurement is taken no longer includes a ’Selected channels’ item.
- The FrontView() script function would attempt to bring external text and binary files without associated windows to the front, it now does nothing when used with these files.
- When recording user actions, clicking on a text-based view did not always record a FrontView() command or add ViewFind("view title..."); to the start of the script.
- Frame selectors in dialogs now react correctly to the user entering an arbitrary list of frame numbers.
- The ’At end’ item in the multiple states protocol settings is now handled correctly; previously it was always being reset to ’Finish’ so protocol chaining would not work.
- The Print header and footer settings dialog avoids a possible resources leak.
- Measurements using frame variable values now always use the correct frame to read the variable value.
- CondSourceList() will now return the correct information when used with a D360 amplifier.
- The locale save & restore code used in text export has been corrected to avoid possible loss of the previously set locale.
- The MATLAB exporter would previously have crashed if you exported a frame holding idealised trace data with no data points.
- The FileList() script command now uses both file extensions (*.sgcx and *.sgc) when searching for sampling configuration files.
- Output resets in a sampling configuration are applied (if the Apply when sampling configuration is loaded option is selected) when the sampling configuration is loaded by any means including the sample configuration bar.
- The About Signal dialog tries to read the latest Signal version number from the CED web site and displays suitable information on the availability of upgrades.
- The software used to control the MagStim Rapid TMS stimulator has been extended by adding mechanisms to check for excessive power dissipation in the hardware; it checks for problems while setting up for sampling and when necessary holds off the next sweep in order to protect the hardware by increasing the interval between stimulations.
- The software used to control MagStim TMS stimulators always reads back the current settings after they have been set to make sure that they are correct.
- The software used to control MagStim TMS stimulators will now read back and display any error codes generated by the MagStim system.
- The ProcessOnline() script command was using parameter 6 (chan%) instead of the clear% parameter, now fixed.
- Using the Ctrl+Shift+Left key combination to iterate active cursor 0 backwards now works again.
- The If(n) virtual channel instantaneous frequency of markers expression now always returns zero if there are no markers.
- The strings displayed for errors associated with CFS data files have been corrected, CFS file error codes are more generally understood.
- Data file export to a new CFS file now deals correctly with different waveform sampling intervals on different channels.
- The recording of the DrawMode() script function has been corrected.
- The script compiler now detects the reuse of a built-in function name at the global level of a script.
- Frame overdrawing now works correctly when the buffer is being shown.
- The point count measurement now always returns a result - even for 0 points.
- XY view Y axis optimisation now takes any X offset into account.
- The manual control option in the MagStim Rapid setup dialog has been removed as it is unusable - the UI used to control the stimulator manually has to be disconnected in order to use Signal control.
- The help button (and F1 key) in the output reset dialogs now works correctly.
- When sampling using outputs frame or fixed interval mode with outputs extending after the end of sampling but no pulses defined there, the sweep does not finish at the end of sampling but continues until the end of the (empty) outputs.
- Attempts to fit functions to data in frame 0 are now blocked - this used to cause Signal to fail abruptly.
- When using the virtual channel dialog while frame 0 is the current frame, the virtual channel data is now zeroed if the virtual channel expression is bad.
- The tests carried out on the filename extension made when dropping a sampling configuration file onto the Signal application have been corrected and made case-insensitive to increase robustness.
- The MATLAB DLLs installed with Signal to support file export to MATLAB-format .mat files have been updated to the latest (R2013b) available versions. This should make the data export operation more robust but otherwise have no effect.
- Online processing now avoids repeated checking of the same unwanted frames, this redundant behaviour used to cause the sampling to slow down as the number of sampled sweeps increased when processing to e.g. an average.
- The IFc() virtual channel expression now behaves as IF() if there are only two markers as cubic splining will not be possible.
- Support for the Heka EPC-800 amplifier as an auxiliary telegraph device has been added.
- The auxiliary telegraph system detects unused amplifiers much faster.
- There are enhanced arrangements for closing documents and Signal saves all open windows when the application is closed.
- A preference to use system settings for number formatting in text export and copying text to the clipboard has been added.
- The FileOpen() script function has a new flag value that can control how the initial directory for any file selection dialog is chosen.
- The Reset sampling configuration button now resets all aspects of the sampling configuration.
- The membrane analysis system has been made more robust and any error messages generated have been improved.
- The FitValue() script function has been corrected, and a new parameter added to indicate success.
- A minor flaw when splitting the first open/closed trace event in a file has been corrected.
- The behaviour of the cursor values and cursor regions windows when channels are reordered has been corrected.
- The power-spectrum processing settings dialog now correctly shows the maximum FFT size - the next lowest power of 2.
- Signal now ensures that newly-created or restored derived documents are marked unmodified.
- The previous expressions list in the virtual channel dialog now retains the expressions list in the correct order.
- Any errors occurring during the initialization of the script language built-in functions are now handled better.
- The search for include files used in scripts and output sequencer files now correctly looks for the file inside include directories within the current user and all-users data directories.
- The CursorActiveSet() script function has been corrected so that it will accept non-waveform channels.
- If a data view is closed with the cursor values or cursor regions windows visible, the window position and settings are now saved.
- Drawing of histograms with log axes has been corrected, particularly if a group offset was applied with overdrawn channels with locked axes.
- The undo of changes made to axes has been corrected.
- The script compiler has been rewritten to allow us to expand the language. This has fixed a few anomalies that might cause some scripts that previously were incorrectly accepted to now (correctly) report errors. For example the new compiler generates an error if you use the halt keyword with brackets thus: halt(); while the previous script compiler ignored this error. It has also made the compiler less insistent that semicolons separate all statements. It also allows you to declare global arrays with a size set by a variable.
- A mechanism to defer stopping of sampling until the end of the sweep is reached has been added, plus a preferences compatibility option to revert to the previous behaviour.
- The maximum size of a script array is now 100,000,000 points.
- Script array sizes of zero are now allowed.
- View(h%,c%). now allows a default c% value of 1 to match the behaviour of Spike2.
- Any changes made to dynamic clamp models during sampling will not cause the current sweep to restart. This might cause a greater level of instability but it will avoid any loss of data.
- Signal and its installer have been adjusted so that installation inside C:\Program Files (to conform with modern practice) is supported.
- New dialogs have been added to the Signal preferences and the sampling configuration to manage output reset settings so that spurious or unwanted outputs can be avoided wherever possible. The new OutputReset() script function provides scripted access to this functionality.
- The FilePath$() script command has been extended so that it can return the current user's Signal5 directory (inside My Documents) and also the Signal5Shared directory inside the Documents folder for all users.
- The Windows DDE command handling has been adjusted so that a sampling configuration file can be opened by double-clicking on it in Windows.
- The open/closed times editor shortcuts information is now saved in and (by preference) read from the current user's application data directory. This means that the shortcut settings can be different for each logged-in user.
- Dynamic clamp internally-generated synapse waveforms can now be up to 32000 points long, the user-defined synapse waveform data can be up to 4 million points long.
- Notifications of changes to cursor positions or settings are handled more efficiently by only acting when a relevant change occurs.
- An Apply button has been added to the cursor labels dialog so that you can try out changes without leaving the dialog.
- The active cursor dialog now allows strings such as the expression to be up to 240 characters long.
- Signal data exported to MatLab includes the state label string in the frame information structure.
- The dynamic clamping system is now compatible with sequencer outputs.
- Y values in the cursor values window and in cursor labels use interpolation between waveform points, the ChanValue() script function can optionally use interpolation.
- The clamping bar and the membrane analysis dialog selects all of the text in the holding potential control after the user presses enter to apply changes.
- The sampling configuration dialog displays a * character at the end of the configuration file name if the configuration contains changes that have not been saved to disk. Saving the sampling configuration data as the last-used configuration data does not count as saving them to disk for this purpose.
- The various text editor settings held in the preferences now include a virtual space check box which can be used to enable or disable this editor feature.
- The fit probability calculations now avoid generating arithmetic overflows in extreme circumstances.
- Sampling configurations that are saved during sampling now contain entirely current information taken from the current sampling operation.
- The channel information dialog sets all editable fields to be read only if it is used during sampling.
- The directory path used to load signal conditioner, amplifier telegraph and auxiliary states DLLs is forced to be the path where the Signal application is installed, thus avoiding possible problems in using them.
- The preferences & fit dialogs now always provide the correct help for the page that is currently being displayed.
- CursorActiveGet() now retrieves the correct end time value when a numeric variable is used to hold the result.
- Overdrawn frames fading to the channel secondary colour now behave correctly when drawn in black and white.
- The Ctrl-1 to Ctrl-9 shortcut keys used to create & show vertical cursor numbers 1 to 9 now work in an XY view.
- The Open/Closed amplitude histogram dialog now recalculates the number of bins when the bin size is changed.
- Changing a channel title or units used to change the Y axis for the front-most channel if the channel in question was part of an overdrawn group, this has now been fixed.
- User-defined cursor label strings longer than 20 characters are now saved and restored correctly.
- Changing the sweep mode in the general tab of the sampling configuration dialog no longer re-initialises all the check boxes in that tab.
- The online states control bar now records any button clicks that are made.
- Sampling configurations now include the window number to use as the source for online processing, avoiding possible confusion with e.g. cursors in duplicated windows.
- Scripts that are automatically saved before execution do not put previous versions of the script into the Windows recycle bin.
- If a script procedure or function used a local array (one that is declared in the procedure or function) before the array was declared the script compiler could cause Signal to crash, this has now been fixed.
- The right mouse-click context menu for an XY view now does not include 'Info...', as this option causes Signal to crash.
- The holding potential control in the clamping control bar now accepts - characters from the numeric keypad.
- Corrected copy as text and text export of marker channels, was failing to generate data for the last marker channel.
- The copy as text configuration dialog has been corrected; the check boxes controlling idealised trace data were mixed up.
- Sampling using the Power1401-3 previously failed when the 'maximum waveform rates' option in the sampling configuration outputs page was selected, this has now been fixed.
- Copying text to the clipboard is now a lot faster for very large amounts of text.
- The FileOpen() script function has been corrected - previously the document resources were always used regardless of the mode% parameter value.
- XY documents created by processing are now added to the recently-used files list when they are first saved.
- Signal now stores extra information (principally file resources and sampling configuration files) in XML resource files. This should not make any difference to Signal or its users, but it will allow further improvements and extensions to Signal in the future. Old resources and sampling configurations can still be read and are converted to the new format automatically, but new XML sampling configurations and resource files will not be readable by older versions of Signal. Old-style sampling configurations cannot be converted to the new XML format by simply reading them in and writing them out again; you have to sample using the old data to convert it to XML before saving it again.
- The random-number generator used for multiple-states sampling and for variations in fixed interval sweep timing is initialised using the current date and time to ensure that it always generates a different sequence of numbers each time Signal is started.
- Script include files are searched-for in the current user's include directory and the include directory for all users before looking in the include directory inside the Signal installation directory.
- If the directory for new files specified in the sampling preferences is not set or does not exist, the current user's Signal5 application data directory is used, not the Signal installation directory path.
- The default & last-used sampling configuration files, the default digital filter settings and the open/closed shortcut settings are all saved in the current user's Signal5 application data directory and are searched-for in this directory first. This means that these files can be different for each logged-in user.
- The system folders that are searched for a global resources file are firstly the current user's data directory and secondly the all-user's data directory, and only finally the directory where the application is installed.
- Measurements of waveform values at a given position (values at cursor locations & measurements with a width of zero) take a measurement using interpolation, not the nearest waveform point.
- The FileOpen() script function tries both the .sgc extension for old-style resources and the .sgcx extension for XML resources if used to open a sampling configuration file.
- The FileExportAs() script function will only save sampling configuration data using the new-style .sgcx file extension. If you use this function to save an old-style sampling configuration that has not been converted to XML by using it for sampling, the function will do nothing and return an error code.
- The WSWP sequencer instruction has been adjusted so that it terminates the wait immediately if the specified time within the sweep has already been passed.
- Support for the Power3 is included.
- Scaled Ornstein-Uhelenbeck noise has been added to the dynamic clamp system capabilities.
- 3D frame overdrawing with the colour set by frame state uses the state colour for the current frame as well as all the others.
- The MagStim support is now able to interrogate the MagStim hardware to which it is connected and detect a number of configuration errors.
- Corrected the drawing of waveforms as histograms with very fine point spacing - the zero line position was being incorrectly calculated.
- The checks on the frame specification in the overdraw settings dialog has been improved, a bad specification string will not cause the view menu to jam up with error messages.
- User dialog fixed text items created using DlgText() can now be right-justified by using a negative X position.
- The output pulses dialog handles editing of the sine wave period and the pulse train interval much better.
- Keyboard and digital marker channels are now never created when using fast sampling modes, which avoids possible failures when sampling is restarted.
- The menu items to hide and show the docked sampling control panel are always available.
- The list of commands stored by the script Eval bar is no longer reversed in order after closing and re-opening the program.
- To help new users to become acquainted with Signal, I have added a Signal overview topic at the start of the Getting Started chapter in the help.
- XY view channels can now be drawn as histograms.
- XY view channels now have individual X and Y offsets which can be used to display channels as a 3-D stack or a grid, these offsets are controlled using the new XYOffset() function which has been added to the script language.
- The active cursor dialog now shows the cursor labels in the time selection dropdowns and has a button to give quick access to the cursor labels dialog.
- The virtual channel dialog now has a checkbox for auto-optimising the display Y axis as the expression is changed.
- We have added a new colour mode for frame overdrawing which sets the draw colour according to the frame state.
- A divide by zero error (causing Signal to crash) that occurred while aborting multiple states sampling has been fixed.
- Cursor 0 is now restored correctly (hidden or visible) when a data file is re-opened.
- The use of serial line port numbers above nine in scripts, signal conditioner support and auxiliary states hardware control has been fixed and fully tested - the changes made in version 5.05 did not work correctly.
- Generating measurements to an XY view no longer prompts the user to check cursor positions in a frame where it found no measurements to take.
- ChanOrder(n, 1, m) will now work correctly when channels m and n were previously drawn on top of each other.
- We have corrected the storage of information on XY channel drawing, XY fit parameters and XY background images in Signal sampling configurations.
- The window title shown for duplicated views has been corrected.
- Disconnecting or switching-off the 1401 between sampling sweeps no longer causes Signal to hang.
- Virtual channels using channel processes such as Smooth() will now draw correctly during sampling.
- The signal conditioner setup dialog now always displays a data preview window when Signal is not sampling, previously it could get confused after sampling has finished.
- Interactive measurements to an XY view using a horizontal cursor on the wrong channel as a trigger level can no longer hang Signal.
- Waveform averaging processes avoid problems if you manage to set the end of the averaged data beyond the end of the source file.
- Waveform average and power spectrum processing both show processing offsets correctly in the settings dialog when time is shown as milliseconds.
- The MatLabGet() script function will now accept both n*1 and 1*n MATLAB arrays as matching a single-dimensional Signal script array.
- The MatLabGet() script function will now allow the last dimension of a Signal script array to exceed the size of the corresponding MATLAB array dimension. The return value of the function is now the number of last dimension rows transferred when getting array data successfully, previously it was zero - getting simple variables still returns zero for success.
- Fitting a convoluted idealised trace to measured data now uses improved techniques, resulting in a five-fold speed increase.
- Memory view windows can now be duplicated in all circumstances.
- This version of Signal has been built with newer development tools and as a result will not run on Windows 2000 or Windows XP prior to SP2.
- A number of spectral analysis mechanisms have been added to the virtual channel system.
- Virtual channels are now able to use lower-numbered virtual channels as a source.
- User-defined leaks and table-driven Hodgkin-Huxley (Alpha/Beta) models have been added to the dynamic clamping capabilities.
- The MultiClamp 700 auxiliary telegraph support is now able to connect to up to four amplifiers.
- It is now possible to select a jpg, png or tif file for use as a channel background image.
- Data and XY views can now be exported as jpg, png or tif files.
- 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.
- The ChanFit() script function can now return R-square values indicating goodness of fit.
- The auxiliary telegraph systems supporting the MultiClamp 700 and AxoClamp 900A amplifiers can now define the external command DAC used.
- The IIRxxxx script functions can now return stability information.
- Selecting overdrawn frames with no frames in the frame display list sets all frames.
- We have adjusted the limits used in IIR filtering to allow IIR filters (generated interactively or by a script) to work with much lower frequencies.
- The cursor values and cursor regions windows fonts are changed when the corresponding data view font is changed.
- The open-closed trace event display font is changed when the corresponding data view font is changed.
- Buttons containing a picture have been improved and tidied and been made compatible with Windows themes.
- It is now possible to paste an image held on the clipboard into a channel as a temporary background channel image.
- Export of CFS file data to a data file, a text file and to MATLAB, plus copying CFS data to the clipboard, now display a progress dialog with cancel button.
- Signal now uses the Windows registry to store signal conditioner settings in accordance with the requirements of modern versions of Windows (previously the CEDCOND.INI file was used).
- The dynamic clamping system now takes any gains telegraphed by external amplifiers into account when building models.
- A failure (when using Aero graphics in Windows 7) to draw all of the initial application window when initial help is shown has been fixed.
- Dynamic clamping user-defined synapse waveforms are now always read from file on clicking OK or Apply even if the file name has not changed.
- The run to the cursor location operation available within the script debugger now works again.
- The parsing of constant values by the script language has been improved so that will accept 1. as well as 1.0.
- The scroll bar behaviour in debugger windows has been improved.
- The FiltApply(coeffs, ....) script function now works as documented - previously it did nothing.
- The error code generated when a script array is illegally resized is now known to the error message generator.
- We have removed a memory leak that occurred when sampling (with a pulse sequence) failed due to no 1401 being available.
- The ChanColourSet() script function is now recorded correctly.
- The dynamic clamping system now updates all models after a change to input signal gains or offsets.
- We have adjusted text view drawing to avoid the occasional retention of part of the text image in overlying windows when they are moved.
- The channel information dialog has been corrected so that it updates all information when the current frame is changed.
- We have corrected the generation of error messages related to CFS file problems.
- The MATLAB data exporter now works correctly when used with data files with varying sweep points per frame.
- Setting the channel primary colour either manually or by using ChanColourSet() now works correctly with marker data drawn as a rate histogram.
- The time alignment in calculations used by the If() and IfC() marker kernel virtual channel functions has been corrected, previously the results could have been slightly skewed.
- A very occasional failure in the median filter virtual channel function has been corrected.
- The accuracy of data produced by the Es(), Eg() & Ee() virtual channel marker kernel functions has been improved.
- When saving a data or XY document the file name checks have been adjusted to correct a failure when saving a modified data file.
- The initial view title displayed when a data file is opened is always correct, the generation of window titles containing extra information such as the frame number and sampling status has been generally improved to remove occasional erratic behaviour.
- The channel number shown in the Edit menu Undo channel image option has been corrected; previously it was 1 too low.
- The pulses configuration dialog now always updates the limits to other items after the outputs frame length has been changed.
- The pulses configuration dialog now always checks the fixed interval period against the allowed limits.
- The Cancel button in the progress dialog provided by the data import system now works correctly.
- The FileSaveResource() script function is now recorded correctly.
- Signal can now detect that the cursor 0 iteration used to generate measurements in an XY view is stuck (most probably because of a faulty expression) and will terminate stuck processing.
- Any file selection dialog provided by FileConvert$() will have the initial file type set correctly if possible, and the file type selected by the user cannot be overridden by the automatic file type detection.
- The MATLAB data exporter now generates information for any channels for which no points of data are being exported and includes a point count in the frame information.
- Real (floating-point) script variables are now shown with 15 decimal places in the script evaluate bar and the script debuggers.
- Any vertical cursor positions copied to the clipboard will include the X axis units.
- The directory returned by FilePath$(-3) is now ...Local\CED\Signal and the user-specific data directory for application use is in AppData\Local not AppData\Roaming.
- The names of data section variables created by the MC700 support have been improved to include the amplifier number.
- The data section variables created by auxiliary telegraph or states support modules are now added to the end of the standard array of data section variables, previously the user data section variables were used to hold this information.
- The virtual channel dialog now imposes a minimum manually-set sample interval.
- This version of Signal needs Windows 2000 or later and will not run with earlier versions.
- The IIRxxx() family of commands are now capable of saving their state so that multiple channels can be filtered piecewise, for example when sampling.
- FIR filtering of arrays adjusted so that operations with an even number of coefficients delay the result by 1/2 sample rather than advancing it 1/2 a sample to match the channel filtering.
- The script debugging windows behave better and highlight any items changed by a step.
- The FrameVarInfo() and FileVarInfo() script functions have been extended with an optional extra units parameter.
- The multiple states protocol sequencing has been extended to provide per-step control of writing to disk, the ProtocolStepSet() and ProtocolStepGet() script functions have been extended to match.
- File frame variables (for example membrane measurements or MagStim parameters) have been added to the possible trend plot measurements.
- The trend plot & measurement dialogs now allow you to select fit coefficients by name and the resulting XY plots use the coefficient name and units in the Y axis.
- The SampleAbort() and SampleReset() script functions now have an extra optional parameter to defeat the normal user query.
- The file information dialog is much improved & contains separate tabs for file and frame information.
- The digital filter dialogs now use the application overdraw colour when drawing the unfiltered data.
- The application colour names shown in the colour selection dialog have been corrected after they went wrong in version 5.03.
- The ChanFitShow() script function has been fixed so that it correctly returns end of draw for a -2 parameter.
- The DrawMode() script function is now recorded with the correct channel number.
- Added support for the Digitimer D360 to the available signal conditioner support.
- Scripts loaded and run using the script toolbar are not added to the recently used files list.
- The MagStim support has been adjusted to work with version 9 of the Rapid firmware.
- The pulses dialog now has a separate control for setting the variable sweep points as time, the behaviour of the sweep points item has been improved and corrected to avoid annoying effects while typing - the value is now only forced to be even when the edit focus leaves the control.
- The amplifier telegraph system and automatic clamp setup now supports the AxoClamp 900A amplifier.
- Scripted access to external files should be much faster, particularly over a network.
- In the various text editor windows, Alt+Up/Down moves the lines containing the selection up/down by one line.
- The script debugging windows (Locals, Globals, Call stack and Watch) are now based upon a dialog class which means that they will always stay on top of the script being debugged.
- The Edit toolbar now includes a button for Replace.
- New horizontal and vertical cursors are now created at evenly spaced-out positions rather than on top of one another.
- Showing and hiding the sampling control panel can now be done while not sampling.
- CFS files overwritten by exporting as data to the same file name are saved in the Windows recycle bin.
- The maximum line length in pulse sequence files has been increased to 250 characters.
- The curve fitting dialog now displays the R-square and adjusted R-square values which can be used to assess the quality of the fit.
- Scan analysis processing and scan fitting when a merge is involved both now undo correctly.
- You can now select list items using DlgValue() if a DlgString() item has a list and can use DlgValue$() to change the string directly.
- The script language has new BetaI() and BinomialC() functions.
- The MatLab script interaction system now logs error information to help debugging.
- A deblock button has been added to the online dynamic clamping controls to temporarily disable all active models.
- A problem that occurs if a script-created dialog button or change function opens another dialog, when the return value from the function was not used correctly, has been fixed.
- Script debugging can now step across a Yield() function call without problems.
- Errors generated by a script function will not cause problems within the local variables window.
- Initial string values in user dialogs and strings set by DlgValue$() will obey the string length limit.
- Closing a sampling document by clicking on the top-right corner is now clearly handled as aborting sampling with a suitable warning dialog.
- The behaviour of the maintain ADC range online item in the sampling preferences has been fixed - it was forgetting the selection.
- Scripted trend plot or measurements with user checks do not block subsequent window position changes and other operations.
- A program failure that could occur when auto-average processing a file whose channel point counts fluctuate between frames has been fixed.
- 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.
- The colour selection dialog now starts off showing the channel primary colours (as was the case before version 5.02).
- The minimum width of a button in a script-created dialog has been restored to the value in versions before 5.02.
- The standard 1401 amplifier telegraph setup dialog was incorrectly treating a blank volts or gain field as an error and giving incorrect information about the cause of the error.
- The clamp page in the sampling configuration now redisplays information correctly after loading values from the MC700 commander.
- Cursor positions copied to the clipboard use the correct time units and are correctly terminated.
- Deleting a channel using the context menu is now recorded.
- The list of pulse sequence keywords, which is used for highlighting & help support, has been corrected - it got switched to the Spike2 list in version 5.02.
- Overdrawing frames while fading the colour to the channel secondary colour has been corrected after it was broken by the colour changes in 5.02.
- The Compile script item in the Script menu is no longer enabled for non-script views.
- Changing the frame start time display mode in the preferences and pressing the Apply button now works.
- Setting a frame comment in a data file and then moving to a different frame now always updates the dialog with the new frame's comment.
- Scan analysis of virtual channel data is now blocked.
- 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 or AC900 amplifier using the button on the Clamp page of the sampling configuration dialog is now adjusted to take any amplifier gain into account - to match what happens during sampling.
- The script system no longer gets confused when it breaks in a dialog change or button function and while in this break you set a break in the dialog idle function and then run.
- A failure in ProgRun() which would cause a crash if used after a previously spawned program had terminated has been corrected.
- The System$() script function result has been tidied up for Windows 7.
- Opening the About Signal dialog when sampling is in progress does not cause a sampling failure.
- A bug which would cause a newly created virtual channel to behave as if it had been dragged if it was first selected, then another channel also selected and then unselected, has been fixed.
- Corrected DlgString() - if the dialog control had a selection list then the initial value was the first item in the list, not the string that was passed-in.
- Fixed the recording of ProcessFrames() when processing frames with a specific state code.
- 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 channel names read back from MultiClamp 700 amplifiers have been shortened to keep the Y axes looking tidy.
- Data view and XY channels can now have a background bitmap image. This is mainly for use in XY views (for example, in tracking experiments). The images can be controlled interactively from the View menu Channel Image command or with the ChanImage() script command.
- The internals of the colour control system has been redesigned to use absolute colour values rather than palette indexes. Existing colour setups will be automatically converted to the new system, colour information saved in data file resources is still compatible with older copies of Signal.
- The colour selection system has been augmented with a variable-sized table for colour-cycling in overdrawn frames, an overrideable XY channel background colour and overrideable defaults for the primary and secondary XY channel colours. Extra colour table entries for the XY key, open-state idealised trace data and fitted convoluted traces have been added.
- New ColourSet(), ColourGet(), ChanColourSet(), ChanColourGet(), ViewColourSet() and ViewColourGet() script functions have been added to provide access to the new colour mechanisms. The existing Colour(), PaletteSet(), PaletteGet(), ViewColour(), ChanColour() and XYColour() script functions still work, but in a slightly limited manner and should be avoided if possible.
- Controls for horizontal Y axis labels have been added to the customise display dialog, the YAxisMode() script function has been extended to control this feature.
- Separate controls for X and Y grids have been added to the customise display dialog.
- MatLabOpen() and other associated script functions have been added to provide access to MatLab as a computational engine.
- The ZeroFind() script function has been added.
- The FitSigmoid() script function has been added.
- The FilePathSet() script function can now use a dialog prompt along with the option to allow creation of a folder.
- You can now copy or paste to or from a string variable using the EditCopy() and EditPaste() script functions.
- The LinPred() script function has been added.
- Dialog item functions (except for DlgGroup()) can now use a -ve left position for right-justification of the dialog item.
- The new DlgSlider() script command adds a horizontal or vertical slider control to a user-defined dialog.
- Added a global resource file system to allow all files to be handled similarly, plus the associated FileGlobalResource() script function.
- Added menu items that allow you to apply a given resource file to a view and to save a view's resources, plus the associated FileApplyResource() and FileSaveResource() script functions.
- The ViewLink() script function has been extended to allow you to find the processes associated with a given view.
- The ScriptRun() function has a new flag option that keeps loaded scripts in memory.
- When saving a large file to disk, a progress dialog which also allows cancellation of the operation is now provided.
- When using Auto-average or Leak subtraction processing to produce a memory view, a progress dialog which also allows cancellation of processing is now provided.
- When the user fails to save a newly sampled CFS data file or saving a CFS data file overwrites an existing data file, the deleted data file is now moved to the Windows recycle bin so that it can be recovered. Note that this can result in a rather full recycle bin, but we feel that preserving CFS data files against accidental loss is of paramount importance.
- Previously you could not undo changes to a view font, and not all changes made using the customise display dialog would undo.
- A different mouse pointer (an arrow leaning to the right) is now shown when the pointer is in those parts of text-style view margins where line selection is active.
- Recorded filter specifications have been corrected.
- Channel optimise from the right-click context menu now defers optimise to the sweep end if the preferences are set to do this.
- Setting the tick sub-divisions in the axis dialogs to 25 now correctly changes the display.
- Measurement generation to an XY view and MeasureToXY() now work in situations that don't need a successful cursor 0 iteration to get a valid value.
- If a script windows was active while a script ran and the user typed Ctrl+Break to cancel a long drawing operation, it was possible for ETX (character 3) to appear in the script window.
- In a user-defined dialog, the Cancel button was not activated by the Esc key.
- When debugging a script with an #include file, if you attempted to Run to the text caret in an included file, it ran to the text caret in the original file.
- If a user dialog had a button function or a change function and this function opened another dialog and then returned 0 (meaning close the original dialog as if OK was clicked and update any DlgShow() arguments), the original dialog would close, but the arguments were not updated.
- Illegal characters in a script (for example, i% != 1) were detected by the compiler, but the offending character (! in this case) was incorrectly identified.
- Issues with the scroll bar thumb still being present when the entire X axis range is shown and the X axis refusing to zoom when dragged with the mouse have been fixed.
- The IF and IFc virtual channel commands no longer incorrectly multiply their result by the data sampling rate.
- The use of newer Windows functionality has been adjusted to ensure that Signal version 5 will still run under Windows 98SE.
- The value returned by FilePath$(-3) has been corrected - previously it returned the Spike2 directory.
- The MagStim system logs error & information strings to help with debug.
- Much more work on the script recorder to allow channel variables to be recorded so that the recorded scripts do not (incorrectly) use constant channel numbers.
- Checks on 1401 driver and monitor versions tidied and checks on the FPGA version have been added.
- Colour information and initial application window position is saved in the registry.
- Using FrameFlag(), FrameState(), FrameTag() or FrameUserVar() to change a read only file or FrameSave() to save changed data to a read-only file will now halt a script with a run-time error.
- The Eval Bar message area will now word wrap.
- Signal conditioner dialogs limit themselves to sampled channels when used online.
- Extra checks for valid window positions have been added to avoid generating windows that are inaccessible because they are outside of the available screen area.
- Script-created dialogs now treat Esc as cancel button if no cancel button key set.
- The Colour(), ViewColour(), ChanColour() and XYColour() script functions still function with the new colour regime, but can only access colours in the palette and will not necessarily read back the precise colours in use. The PaletteSet() and PaletteGet() functions operate on the colour palette as before but as this palette is now only a convenient set of colours to make interactive colour selection easier, any changes made to the palette will not cause any changes to the colours actually used for drawing.
- The OpClEventMerge(), OpClEventChop(), OpClEventSplit() and OpClEventDelete() functions all mimicked the behaviour of the interactive event editing dialog by not operating on events (or areas of events) that were outside of the displayed time range in the view. They now operate irrespectively of the displayed area by default; an optional argument can be used to obtain the previous behaviour if that is required.
- Sampling automatically stops when the new data file size reaches 2,000,000,000 bytes to avoid CFS library problems at somewhat larger (2,147,483,647 bytes) file sizes.
- The channel information dialog is now modeless, this allows you to change the current data view frame while the dialog is up and thus see settings for different frames much more easily.
- An undocumented experimental feature in the script language treated the vertical bar character as an alternative form of the logical or operator, it is now treated as an illegal character.
- The Destexhe synapse has been added to the available dynamic clamping models.
- The Alpha function, the single exponential and the exponential difference models have been added to the available dynamic clamping models.
- A dynamic clamping synapse model that uses a user defined waveform to generate the postsynaptic current profile has been added.
- It is now possible to have an inverted (left end greater than right end) x-axis in an XY view.
- The delete channel dialog now offers an option of all selected channels if appropriate.
- An extra possible value has been added to the flags in the ChanList() and DlgChan() script functions to exclude disk-based channels, allowing virtual channels only to be selected.
- The use of MagStim devices with multiple states sampling would often fail in version 5.00.
- The mouse pointer now changes to the correct pointer for Alt-drag measuring.
- The use of pulse outputs with overlapping or swapped (during sampling) waveforms would cause sampling errors.
- Large dots now draw correctly even if a hairline draw width is specified for data.
- Dialogs generated by a script can now set a help context string successfully.
- Script debugging can now run up to the caret in an included file.
- A logic error which would claim a very old driver was present when the 1401 was switched off has been fixed.
- Virtual channel information is now saved correctly in file resources and sampling configurations when the data window has been duplicated.
- The SetCopy() script function now ignores any idealised trace channels in the view being copied.
- It was possible to get Could not open Clipboard messages when a script loop repeatedly wrote to the clipboard. This can be due to the previous clipboard operation still running on a separate thread of execution. If the clipboard fails to open, we now suspend our thread for a few milliseconds, then retry the operation up to 10 times before displaying an error message.
- ChanTitle$() and ChanUnits$() could fail to set information in some circumstances when used online with virtual channels.
- ChanValue() does not fail with a spurious error when used on waveform channels drawn as splines.
- Axis grids are drawn correctly when 3D overdraw is in use.
- The slope threshold searches used for cursor 0 iteration when generating measurements to XY views now make correct use of the threshold level.
- All searches for slope peaks or slope troughs now correctly scale the minimum peak or trough amplitude value, this affects active cursors whether set up using a script or interactively, cursor 0 iteration searches used for generating measurements to an XY view, and the ChanSearch() script function. Previously the amplitude value supplied was being divided by the waveform sampling rate in Hz. This change means that active cursor settings and scripts that made use of slope peak or trough searched will need to have the peak or trough minimum amplitude value divided by the waveform sampling rate to obtain correct behaviour again.
- We have added extra information in the fit results for sigmoid and sine fits.
- Sampling configurations update their associated file name when they are saved.
- The documentation on MeasureToXY() has been changed to show the correct usage of the lv and hy parameters.
- The clamping support has been extended to allow 8 clamp sets - a clamp set comprises a pair of sampled channels and a controlling DAC.
- Dynamic clamping support has been added. Up to 15 dynamic clamping models can be used - these emulate the behaviour of ion channels in mathematics and inject or subtract corresponding currents to effectively add or remove ion channels from the membrane.
- The pulses configuration dialog has been re-written to make it easier to use, provide better timing information and a digital marker generation item.
- Multiple arbitrary waveform output items are available for each state in the pulses outputs and with the sequencer.
- The Y axis for a channel can rescale itself to give more convenient units by using SI prefixes.
- You can specify the width of the pen used to draw data for a data channel.
- The script and sequencer editors indicate matched and unmatched braces.
- The new CursorOpen() function in the script language can open and configure the cursor values and regions windows.
- New Trim(), TrimRight() and TrimLeft() functions which are used to remove white space from the ends of strings have been added to the script language.
- The script debugger incorporates a Watch window which can be used to track the value of particular variables.
- To make it easier to tell which channel is which, overdrawn channels sharing a common Y axis will draw their channel number using the channel primary colour if one is set.
- When starting sampling the input selection of any 1902 amplifiers used is checked and the user is warned if any grounded inputs are used.
- New help pages have been added to give the user extra information on the possible problems that can occur when starting sampling and problem reports that are generated when finishing sampling off.
- The context menu obtained with a right mouse click includes a Clear buffer item if the frame buffer is being displayed.
- You can zoom much further into data and XY views.
- Missed triggers in Fast fixed interval and Fast triggers sampling modes are now detected and reported at the end of sampling.
- Optimising channels drawn with cubic splining now gives better display ranges.