- DlgValue$ will give you access to the checkbox prompt for both the item number and the item number plus 1000 - previously there was no access.
- The ports list parsing in the sampling configuration dialog will detect if too many ports are used.
- Corrected generation of error values when generating waveform averages by using multiple process calls - single process gave correct results.
- MagStim and CS3304 auxiliary states support now work correctly with 256 states.
- Magstim support avoids timeout problems, allows use without hardware, BiStim behaviour corrected.
- The start time argument to Process() was not being used correctly.
- Replacing values in a fixed-length XY view channel that is sorted now works (was crashing).
- Reverted to an earlier version of the conditioner support so that conditioner access works again.
- If the directory for sampled data set in the automation tab of the sampling configuration does not exist, you will be warned rather than the data being potentially lost.
- Text export & copy as text simply use the set number of decimal places for times.
- Channel lists specifying non-consecutive channels as a string now parse correctly.
- Disabled DlgXValue() items in user-defined dialogs are no longer re-enabled if a cursor is moved.
- Append frame copy will now copy any error information to the new frame as well as the data.
- Multi-frame averages created by either append average or auto-averaging will now display error bars in frames 2 and above.
- Changes to pre-trigger points in peri-triggered sampling are now reflected in the frame length in the pulses configuration dialog.
- String entry items with a list of possible selections in user-defined dialogs cope correctly with new text from DlgValue$().
- The checks on clamping options made when starting sampling now correctly checks the channel numbers in use.
- Checks are now made when starting sampling for fast-triggers along with 1401-based telegraphs as these will not work.
- Old idealised trace data made with threshold crossings now synthesizes a baseline value from closed levels when the data is read.
- Time value edits created using DlgXValue() now work correctly when time is shown as milli- or microseconds.
- The recording of ProcessFrames() has been corrected.
- The state information text shown in the window title has been corrected for BiStim and dual 200 MagStim use.
- Cursor searches for maximum excursion now work correctly.
- Text inserted into a user-defined dialog from a script will now take into account any tabs in the string when auto-formatting.
- All file save operations now check that the path used for saving is legal.
- XY view text export via EditCopy() no longer causes a crash.
- PulseWaveformGet() now only updates the array with the available points.
- The XRange() command is now recorded correctly irrespective of the time units being used.
- Support for the Power1401 mk 2 is included.
- The membrane analysis dialog will generate resistance measurements even if the trace is too noisy for capacitance analysis.
- A fault in the text editor that could cause very occasional corruption of text files has been fixed.
- The draw mode dialog works correctly again on channels with error information.
- The values used by the SetTrend script function for measurement types have been changed to allow for future expansion; this will require existing scripts to be adjusted slightly.
- The SCAN method of generating an idealised trace of open and closed times for ion channel data has been added.
- The SetOpClScan() command has been added to perform the above analysis from a script.
- The Idealised trace edit dialog has been extended to allow events to be split into two and merged with just one neighbour. There are also Scroll buttons for smooth scrolling through the data and a Fit Visible button to allow a convoluted trace to be fitted to the raw data by adjusting the idealised trace to match.
- The Channel Information dialog for an idealised trace has been extended to allow the filter cut-off frequency to be changed. This is used in the drawing and fitting of a convoluted trace.
- There are now more draw modes for an idealised trace to allow a convolution of the idealised trace with the filter step response to be drawn.
- The closed states of an idealised trace are now shown in a different colour.
- Burst duration analysis has been added.
- The SetOpClBurst() command has been added.
- The OpClFitRange() command has been added for fitting convoluted idealised traces to raw data from a script.
- The OpClEventChop() and OpClEventMerge() commands have been added to allow better idealised trace editing from a script.
- The DrawMode() command has been extended to cope with the new draw modes for idealised traces./li>
- It is now possible to break out of drawing very long idealised traces by pressing CTRL-Break.
- DlgCreate() now has extra parameters to allow a dialog to be places on a particular monitor when multiple monitors are being used.
- System$() now knows about XP x64 edition and Vista.
- A new example file "SCANexam.cfs" is now provided for trying out SCAN methods. It has a filter cut-off of 4 kHz.
- There is now an importer for the CONSAM file format.
- Histograms drawn on multiple channels with locked axes and offset now draw correctly for all degrees of zoom.
- Signal no longer crashes when running a fit with more parameters than points.
- SetTrendChan() now correctly tests channel numbers against the source data file, not the destination XY view.
- SetTrendChan() also now works when 0 is given as the channel number when plotting a fit coefficient and the last channel in the view is not the one with the fit.
- Optimising overdrawn channels with a shared locked axis now works correctly.
- A fit is now drawn offset correctly when drawn on offset channels with locked axes.
- DlgChan()scr_DlgChan now sets the channel number to 0 if there are no channels in the field. Previously it would set it to 1 which could be confusing.
- Window() and WindowVisible() now work correctly for the sampling control dialog.
- Fitted curves that have silly values no longer crash the system when an attempt to draw the fit is made.
- The width parameter for active cursors is now used in the correct units. Before, it would always assume seconds.
- Backward searches for level crossings with active cursors now work.
- The progress dialog now shows the percentage as text as well as a progress bar.
- Setting the units to "s" in a file or memory view using XUnits$() now allows the preferences to convert this to "ms" or "us" if that is what the prefered time units are.
- The channel draw mode dialogs for waveforms and markers have been combined into one and draw modes for idealised traces added.
- On-line processing and clamping options are no longer available whilst using fast sweep modes. Before, they simply didn':t work.
- SetTrend() and SetTrendChan() will now accept times as a mixture of numbers and strings rather than requiring all one or the other.
- Ternary operator has been added.
- The signal conditioner support now fully supports the new 1902 mk 4 with digital filtering and optional digital features. The script language functions used to access the signal conditioner settings have been extended to support the new features.
- The pulses configuration dialog now has a Copy button that can be used to copy selected output information between states.
- Optional labels for states can now be set with the pulse configuration dialog. These are used in the buttons in the states control bar instead of the default names and will be used elsewhere in the future. The script language function SampleStateLabel$() has been added to give access to the state labels.
- Support for auxiliary (external) states hardware has been added, this has been implemented for MagStim and CED 3304 stimulators initially. The script language functions SampleAuxStateParam() and SampleAuxStateValue() have been added to give access to auxiliary states hardware.
- Added Floor() and Ceil() functions for values and arrays.
- The MaxTime() and MinTime() script functions will both now take a channel number of zero to mean the overall frame limit.
- The Sweeps() script function now has an optional argument to set the sweep count.
- SampleStatesOrder() can now take 3 as an argument.
- The GammaP and GammaQ functions no longer return incorrect values when the second parameter is less than one greater than the first.
- The drawing of arbitrary waveforms in the pulses configuration dialog is not quantised to the overall timing resolution.
- The pulses configuration dialog now correctly informs the user if a time limit is exceeded.
- States sequencing in non-protocol mode was not stopping correctly.
- FileClose(1) now closes associated memory and XY views correctly.
- Mouse pointers now always correctly indicate the possible operation, when over a cursor or cursor label in particular.
- Dialog and toolbar button functions now preserve the button number if they create another dialog (or toolbar) and later return zero.
- Trend plot measurements of time are now taken as milliseconds or microseconds according to the preferences for displaying time.
- The script array support has been corrected to avoid stupid errors with zero-length arrays.
- The XYJoin() function now always returns the correct result.
- The amplifier telegraph system was not using the checkbox that specifies a 10-volt 1401, it now works correctly on 10-volt units.
- SetCopy() now sets up the X axis label and units correctly.
- The Window() function now handles multiple monitors correctly.
- The state selector in the multiple states control bar now works correctly.
- The maximum number of toolbar buttons is now 40.
- View handle numbers (from views that have now been closed) are reused much less frequently.
- The SampleOutLength(), SampleOutTrig(), SampleFixedInt() and SampleFixedVar() script functions now all operate on the on-going sampling if used during sampling.
- Sampling control panel now shows �Waiting (TR)� if waiting for a trigger on the 1401 front panel trigger BNC.
- The array used to transfer sampled data from the 1401 to Signal is allocated and set up for use much earlier, which gives Signal a better chance of sampling successfully when available memory is low.
- Clamping support options have been added. Clamp setups can be defined in the sampling configuration and used during sampling to generate resistance measurements, allow easy control of holding potentials and provide an online membrane analysis dialog.
- The state protocols has been enhanced. It is now possible to "chain" protocols together as well as each protocol having a repeat count.
- The states control bar has been enhanced to make it easier to run a protocol and to allow execution of a protocol or sequence of states to be paused. Docking of the control bar has been enhanced.
- The maximum number of dimensions an array can have is now 5.
- New script commands: ProtocolRepeats(), ProtocolEnd() and SampleStatesPause() have been added.
- An extra trend plot option has been added to allow the difference between a single point value and an averaged baseline to be taken.
- Printing waveforms with a log x-axis now works correctly.
- ChanFit() now both records correctly and compiles without error.
- ExportTextFormat() now records correctly. A tab delimiter is now recorded as “\t?
- ExportChanFormat() now records with a ; at the end of the line.
- AppendFrame() now records with "Frame(FrameCount());" after it to match interactive program behaviour.
- Trend plots now have a call to XYJoin() recorded by the script recorder to match a change in the default behaviour made in version 3.03.
- User entered values with an XY plot no longer assume that values entered are time values in the preferred units.
- The documentation for the maximum function orders that can be fitted with ChanFit() has been corrected.
- Data is now clipped correctly when a Print Screen is done.
- Metafile output is now clipped correctly.
- Having thicker axes set no longer causes the key to leave bits behind when dragged in an XY view.
- A bug has been fixed which could sometimes cause a cubic spline not to be drawn when log axes are used.
- Using Process() wrongly while sampling will no longer crash Signal.
- A drag cursor no longer appears on the x-axis when fully zoomed out.
- Digital output pulses (display and output) with a high initial state now work correctly.
- The pulses dialog now copes with sine waves which are interrupted by other pulses.
- ProcessOnline() now has an extra argument for clearing bins.
- Help() can now be used to set a new help file.
- Changes to the number of points in an XY channel now take effect even when the channel already exists.
- Fixed interval sampling no longer extends the interval by one clock tick too many.
- Chan$() now indexes the correct channel of an XY view.
- Drawing now works correctly while a query for saving changes to disk is pending.
- Copy as text now records with the correct type code.
- The "Value product" and "Value ratio" options have been added to the SetTrend() documentation.
- On-line processing of idealised traces now works again. This fixes a bug introduced in version 3.03.
- Changes to sampling configuration that show or hide pages in the dialog no longer lose any edits that have been made in the later pages of the dialog
- The concept of channel specifier has been added to the documentation.
- Chan$() no longer halts a script if used for a non-extant channel.
- Opening a file using the file menu now gives better error messages.
- More menu options are now available by right clicking in an XY view.
- The pulses dialog "Apply" button is now enabled when a change is made.
- Strings in scripts are no longer limited to 255 characters.
- The 1902 support in version 3.06 has been improved and updated. There are no other changes in this version.
- Logarithmic axes have been added.
- Linear axes can now be set to adjust the units at high zoom to keep the numbers displayed in a sensible range.
- XAxisAttrib() and YAxisAttrib() commands have been added.
- User dialogs allow button text changes with DlgValue$.
- XAxisStyle() is now recorded correctly by the x-axis dialog.
- Attempting to run Signal without suficient user privelege to extend the working set size will no longer cause Signal to crash.
- Fitting initial guessing was going wrong when the fit area start was a long way before the first fit point X value.
- The fit dialog is no longer reset every time the cursors are moved.
- The colour dialog now allows the fit colour to be set.
- Peri-trigger levels now work correctly with -ve channel scale factor.
- Very large scripts (>18000 lines) now compile correctly.
- Changes to fit coefficient number 4 made in the fit dialog are now reflected in the data view.
- Amplitude histograms are now generated correctly when a limited range of the data is processed.
- MATTrans() could sometimes produce incorrect results.
- Passing an array into DlgShow() could sometimes produce erroneous results.
- The axes now display very large or very small values more sensibly.
- The Dos utility programs have been dropped as their functionality is now incorporated into the main program.
- The sampling control panel is now a docking toolbar.
- Trend plots now have a common X selector so multiple channels can all have the same x values.
- Frame 1 was being skipped by on-line processing in version 3.04 only.
- Check boxes in the y-axis dialog are no longer greyed for an XY view.
- Cursor windows with larger fonts now have a correct initial size.
- Channel background colours can now be set individually.
- Non-flicker drawing has been implemented.
- Update scheduling options for on-line script optimisation have been added to the preferences.
- It is now possible to undo colour changes.
- It is now possible to set a view colour; specific to that view.
- The ViewColour() command has been added.
- The YieldSystem() command has been added.
- DlgEnable() can now set the focus in a dialog.
- The telegraph support has been extended and now supports the Axon Multiclamp telegraph system.
- Sigmoid fitting has been added.
- The FitData() function has been added.
- The Chan$() command has been added.
- ChanList() has been extended to allow a string specifier.
- Logging of digital markers is now possible.
- New sequencer commands MARK and REPORT have been added.
- It is now possible to add an offset to the zero position on the x-axis displayed during sampling.
- SampleZeroOffset() script command added.
- Added the SampleDigMark() script function.
- Digital filtering apply dialog now has a frame subset.
- Memory views can be created from other memory views offline.
- A reset button has been added to the sampling configuration dialog.
- Dialogs can no longer be lost off the edge of the screen.
- The Interact() command can now take 17 buttons as documented.
- The script compiler now flags an error if you define a func or a proc with an array argument and give an array size, for example func fred(myArr) is illegal.
- XYDelete() could get confused when indexing into sorted data.
- On-line processing of memory views now always checks the frame sub-set.
- On-line processing of memory views now correctly resets the next frame to be processed if sampling is restarted.
- Digital filtering application no longer uses a frame state code unless frames of a particular state are specified.
- Fitting from the fit dialog no longer uses a frame state code unless frames of a particular state are specified.
- ToolbarEnable() no longer returns 0 for any button when called from a toolbar button routine. It was doing so as all toolbar buttons are disabled whist in such a routine. It now gets/sets the state the button will be restored to on return from the routine.
- The channel primary colour is now used correctly in histogram drawing.
- If a grid is displayed it will be redrawn if the axis tick spacing is changed.
- The documentation for XYSetChan() described the return value wrongly.
- Sampling no longer halts if you attempt to sample with pulses enabled but no outputs enabled.
- The channel information dialog for an idealised trace in a memory view now works.
- The Process and Process Settings dialogs produced by right clicking on an idealised trace in a memory view and chosing the appropriate menu item from the channel sub-menu are now the correct dialogs for the channel process and not the memory view.
- The Export As dialog now correctly uses the frame list specifier for files with multiple states.
- The initial units quoted in the idealise trace settings dialog are now for the correct channel.
- The FileSave() command now only offers XY as a file type when the dialog is invoked for an XY view.
- The XY Key is now updated whenever the channel titles are changed from a script.
- A second idealised trace on a given channel no longer has "(idealised)" added a second time to the channel title
- Horizontal cursors created after a right mouse button click are now more accurately positioned.
- Trend plot processing no longer halts at a frame where no value can be obtained.
- "Tip of the day" now works when a data view is selected.
- It is no longer possible to set a colour which would make a cursor, an axis or data invisible. If you try, a visible colour is chosen for you.
- Signal is now much friendlier to other applications when it is sampling and when idling with a script running. If you have an on-line script that depends on the previous behaviour you may need to change the settings in the Edit Preferences Scheduler. To emulate (not quite exactly) the previous settings, set all the fields to their minimum values (1, 0, 0). This is not recommended.
- Buttons on toolbars created by scripts now take up less space.
- In scripts, user dialog change & button functions are disabled while in the idle function.
- The two thresholds are now allowed to be equal for idealised trace formation.
- The process dialog now has a frame subset in the same way that the overdraw frames dialog does.
- The multiple frames dialog now also has a frame subset to allow a more specific frame list to be specified.
- The second variant of ChanFitCoef() can now be used in a script.
- The selected event in an idealised trace is now redrawn correctly when partially uncovered and using thick lines.
- The process dialog now no longer remembers the frame state code when not using Frame state = xxx.
- Tagged frames are now drawn with white backgrounds when using black and white drawing.
- XYGetData() can now be used to retrieve single data points.
- The Cursor() command can now be used to set cursor positions to times where data has not yet been sampled when on-line.
- It is now possible again to copy and paste from one XY view to another.
- Channel data shift is now done by specifying a reference time and a new time rather than number of points.
- The focus indicator for the check boxes in the automation tab of the sample configuration dialog no longer appears. It had been too small to see properly before.
- The Trend Plot dialog now displays units for times and reference times.
- The protocol dialog has been made more intuitive and easier to use.
- External binary file access can now be specified as either big endian or little endian using the BRWEndian() command.
- Power down and screen saver requests from system are now trapped and refused if a script is running or sampling is in progress.
- OverdrawFrames() now adds and removes frames from the overdraw list correctly.
- A minor drawing artefact during on-line overdraw has been fixed.
- Various edge effects in the drawing when using thick lines have been corrected.
- Attempting to open a file which is already open in Signal no longer causes a message to appear asking you to choose another file if you are using Windows 98.
- BWriteSize() returns a better error code if the file opened for read only.
- DlgXValue() no longer uses "0" as a default value rather than "0.0".
- ArrSort() command has been added for sorting arrays.
- Keyboard accelerators have been added to the cursor dialogs.
- A new print screen dialog has been added allowing orientation and a better title to be set.
- ChanOrder() extended to have a 2 argument variant mainly for reading information about channel grouping.
- Right clicking on a horizontal cursor now allows the level difference between it and other horizontal cursors to be measured.
- After pressing Alt before selecting an area the selected area can be copied to the log window or clipboard by releasing Alt and pressing L or C respectively.
- The local and global variables windows in the script debugger now remember their positions from one run of the software to another.
- Copy As Text now allows non burst mode sampled data to be interpolated so that when dumped in columns, values are adjusted to a common time across each row.
- ExportTextFormat() has been extended to allow interpolation to be specified.
- FileExportAs() has been extended to allow exporting as bitmap.
- IIR filtering has been added with new commands IIRBp, IIRBs, IIRHp, IIRLp, IIRNotch and IIRReson.
- Dialogs created from scripts can now have tooltips for individual items.
- The last N sampled frames can now be overdrawn.
- It is now possible to undo changes to the draw mode in data views.
- User-defined cursor label strings are stored when a file is closed and reloaded when it is opened again.
- Sequencer variables can now be set and read before sampling starts.
- Active cursors no longer iterate when an event in an idealised trace is selected but not modified.
- ChanOrder() would give incorrect error if only 2 arguments were supplied.
- DlgString() was documented as having a maximum width of 20. In fact it is 60.
- Printing in text views no longer sets a large right margin when using small fonts.
- Text view printing has been modified to give the correct date format for the locale in the header.
- Undoing changes to the draw mode in XY views now correctly redraws the data.
- Split script windows no longer appear twice in the Window menu.
- Enhanced Metafile format is now more likely to paste into another application at the correct size.
- FileExportAs() now allows XY views to be exported explicitly as XY type.
- X-axis values entered in dialogs are now taken to be in x-axis units. Some dialogs had been interpreting values in seconds regardless of the preferences.
- The sequencer control dialog is now active at any time when the sequencer is active.
- The file importer now deals correctly with 4 byte integer data.
- Maxima and minima searches now work correctly if the last point is the maximum or minimum respectively.
- Using a mouse wheel while selecting an area no longer leaves bits of the selection rectangle behind.
- Editing of script variables now works correctly.
- Renumbering cursors no longer causes Signal to loose track of cursor information.
- Text views render much better when using print screen.
- If a sampling configuration is loaded from a script while the allow% parameter prevents window position changes, Signal will now "allow" the configuration to set the position of sampling windows.
- Frame lists are now stored as "specifications" rather than simple lists. This means for example that if you specify "Tagged frames" then subsequently tag a frame it will be added to the list used by Signal. Previously it would calculate the list on closing the dialog and not update it.
- Direct access to the text sequencer underlying the graphical interface gives maximum flexibility and control of pulses and waveform output
- Enhanced amplifier telegraph data support and usability
- Optional trigger polarity inversion
- External convert sampling input for arbitrary or varying sample rates
- Improved curve-fitting facility: fit to polynomial, exponential, sine and Gaussian functions on single or multiple frames
- Patch clamp analysis generates idealised current traces
- Analysis and editing of idealised traces
- Idealised trace import from CED DOS Patch software
- Improved amplitude histogram analysis
- Enhanced auto-average measurements
- Copy and paste traces to and from XY views
- Matrix functions built into script language
- Multiple monitor support
- Channel information dialogs
- Cubic-spline drawing mode in result views
- New window dialog for easy selection and clean-up
- Overdrawn channels with optional locked Y axis and offset
- Independent colours for channels