Recent technical history of Spike2 version 7 for Windows

See also: Script library, History menu, Spike2 data sheet

Freely down-loadable for version 7 users now.

Date Version Summary
10/11 7.08 New
  1. Added support for the Digitimer D360 amplifer.
  2. The interactive curve fitting dialogs now include the R-square statistic. The ChanFit() script command can return this value.
  3. MemChan(4,1) can now be used to create a Level event channel that starts in the high state. You can also do this when creating a Level event channel from a dialog.
  4. If you read in an old-format sampling configuration that does not contain ADC and DAC range information, you are warned to check the channel scaling. If the old configuration was used with a 1401 with ±10 Volt ADC and DACs and you are currently using a ±5 Volt system the scaling will need manual adjustment.
  5. Scripts run from the Script bar are no longer added to the recent files list.
  6. Recording of the Draw Mode dialog now handles Sonograms and adds a comment describing the drawing mode.
  7. When debugging a script you can step over a user-defined Proc or Func that contains a Yield() command. Previously the script would break on the statement after the Yield().
  8. The IIRxxx() family of commands now allow you to save the filter state. This allows the same filter to be used incrementally on multiple data streams.
  9. ChanList() now returns -1 if a channel specification string contains a syntax error.
  10. Output sequencer CHAN command now allows access to 8 DACs (was previously limited to 4).
  11. The measurement dialogs now allow access to fit coefficients by name rather than by number and sets the result units to the coefficient units.
Fixes
  1. The colours dialog now starts up with the channel primary colour page; this was inadvertently changed in version 7.07.
  2. If you used MeasureToXY() or MeasureToChan() script commands, enabling user checks of cursor positions could prevent subsequent changes to a window.
  3. The virtual channel spectral functions added at version 7.07 did not allow for the FFT size when invalidating the display. If you used this feature during sampling, the display did not update correctly as new data arrived.
  4. The ProgRun() script command could cause Spike2 to crash when used multiple times if a program that was previously launched had terminated.
  5. In ChanFitShow(), setting opt% to -2 to return the range end did not work.
  6. When debugging a script, the arrow marking the next script statement was not hidden when you hit the run button in the Debug bar.
  7. It was possible to crash Spike2 by processing a Result view that contained raster data when sorting on an auxiliary variable value.
Changes
  1. If you use ArrFilt() with an even number of coefficients (for example for a full differentiator), the result is now delayed by half a sample, which matches what happens when applying FIR filters to a data channel.
  2. The MatLab exporter no longer skips over data channels with no data. It now exports the channel with zero length.
  3. Buttons with pictures in Spike2 now match the current desktop theme more closely; this is particularly evident in the WaveMark dialogs.
06/11 7.07 New
  1. You can now set the colours of all data view items as RBG colours independently of the colour palette. The palette is still available as a convenient set of colours, but you are not confined to it.
  2. We have separated the marker code colours (often used for spike shapes) from the colour table and you can increase the number of them.
  3. The new script commands to control colours using RBG values are: ColourGet(), ColourSet(), ChanColourGet(), ChanColourSet(), ViewColourGet() and ViewColourSet().
  4. There are new Virtual channel functions to calculate power, spectral edge, mean frequency and dominant frequency. These are particularly useful in EEG and EMG analysis.
  5. Y axis titles draw horizontally when the axis changes to compact mode due to lack of vertical space.
  6. You can set horizontal Y axis titles and units. The YAxisMode() script command controls this feature.
  7. There are new channel processes: Fill gaps and Skip NaN.
  8. The Virtual channel Ch(n) function can convert the first trace of a WaveMark channel to a waveform.
  9. You can now open user-defined dialogs within a change function of a user-defined dialog. Previously there was nothing to stop you doing this, but the result was not defined.
  10. The DlgSlider() script command adds a horizontal or vertical slider control to a user-defined dialog.
  11. In a user-defined dialog, when using dialog units to position items, you can now position relative to the right-hand side of the dialog with a negative x position.
  12. Sonogram draw mode has been recoded to be both faster and more accurate.
  13. Script recording of opening a new sampling document now creates variables to hold the handles of additional views that open due to the sampling configuration.
  14. We have improved script recording of new memory, virtual and duplicate channels where the generated channel number is not fixed.
  15. Script recording of the Add Items to Memory Buffer command now records any added data values and text strings.
  16. Previously, if a Windows Metafile was generated with non-circular dots, the dots were likely to vanish when the Metafile was manipulated by external programs due to an 'optimisation feature' in a Microsoft security fix. We now draw the dots using a different method.
  17. Background drawing of a grid is neater in 3D drawing mode.
  18. You can undo an interactive change to the font of a time, result or XY view.
  19. The BetaI() script command implements the incomplete beta function. This enables simple computation of the Student's t-test, the F-test and the binomial distribution.
  20. The ViewLink() script command can report processes attached to the current time view.
  21. The Measure to Channel and Measure to XY dialogs allow longer strings to be entered for the expression.
  22. If you abort sampling, or save or export a data file on top of an old file with the same name, we attempt to save the discarded file in the recycle bin. This should make it easier to recover from accident file loss. This is experimental; let us know if it causes you any problems.
  23. The Talker interface security system has been revised to make it easier for external systems to connect.
  24. The Result view Info... dialog now contains more information.
  25. The script debugging windows for local, global, watch and call stack can be positioned outside the Spike2 application window and are always on top of other windows.
  26. In a text-based view you can use Alt+Up and Alt+Down to move the selected text lines up and down.
Fixes
  1. You could not undo the effect of Standard Display on a Channel Image and not all changes in the Show/Hide Channel dialog would undo.
  2. If a user dialog had a button function and the button function opened another dialog and then returned 0 to close the original dialog and update any DlgShow() arguments, the original dialog closed but the arguments did not update.
  3. In a user-defined dialog, the Cancel button was not activated by the Esc key.
  4. SampleAbort() did not record as a script action.
  5. Reading a sampling configuration from a data file ignored waveform channel titles and comments.
  6. In the X or Y Axis dialogs, if you set the tick subdivisions to the maximum value (25), it was ignored.
  7. In versions 7.05 and 7.06, if you set a user-defined label for a horizontal cursor that included %n for the cursor number, the displayed number was 1 too large.
  8. Using Maxtime() on a virtual channel derived from a RealMark channel could cause a crash.
  9. LastTime() when used on a virtual channel that used the RM, RMC, IF or IFC expressions assumed that the RealMark or instantaneous frequency data had no gaps.
  10. There were drawing glitches when sideways scrolling Level Event data drawn at high magnification.
  11. Graphical sequencer ramps did not output sufficient significant figures for the per-tick increment.
  12. If the ChanShow() and ChanHide() script commands were used with multiple arguments, some specification types (for example a channel list as a string) reset the list before adding their channels.
  13. If a script window 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.
  14. The documentation (both on-line and printed) did not include the FitSigmoid() script function.
  15. The display of a large channel background image was not always correct.
  16. Illegal characters in a script (for example, i% != 1) were detected by the compiler, but the offending character (! in this case) was incorrectly identified.
  17. The script compiler was not flagging a vertical bar as an illegal character in an expression.
  18. In the Process Settings dialog, if you changed only the number of channels in a result view, the first result view channel was left with the previous contents.
Changes
  1. In version 7.06, the New Result View menu listed the commands in a reversed order (compared to all previous versions). The original order is now restored.
  2. The File importer now switches to the large file format if the new data file is estimated to be 1 GB or larger. The previous limit was close to 2 GB, which caused problems if the size was under-estimated.
  3. The Spike2 colour model has changed from palette-based (all colours specified by an index into a palette) to a RGB colour model (all colours specified by red, green and blue colour combinations). The script commands: Colour(), ChanColour(), ViewColour(), XYColour(), PaletteGet() and PaletteSet() use the old model and are now deprecated, but there are no plans to remove them.
  4. The maximum length of an output sequencer input line has been increased from 100 to 256 characters. If you create lines with a long comment, the sequence will not be accepted by older versions of Spike2.
  5. The script debugging windows are now independent of the application window and no longer support printing from the main menu. To print a debug window, select all and copy to the clipboard, then paste to the log window and print.
02/11 7.06 New
  1. Time, Result 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 new ChanImage() script command.
  2. In a text file, the regular expression search now allows ? to mean 0 or 1 of the previous character.
  3. When the clustering window identifies the current event by flashing it on and off, it now flashes a circular dot if circular dots are selected. Previously it always used a square dot.
  4. You can now copy a horizontal cursor position without units from the right-click context menu. Copying with units now matches the unit scaling options set for the y axis.
  5. You can now run the x axis of an XY view from right to left. This can be blocked on an axis drag by setting an Edit menu Preferences option.
  6. Extra data is displayed in the fitting dialog results page for sigmoid (Range and Slope50 fields) and sinusoid (frequency field) fits. An estimate of the sigma for the new fields is given for the range and frequency fields.
  7. SampleSeqVar() now allows variable numbers up to 256 (the 1401plus is limited to 64).
  8. Virtual channels now allow Ch(n) where n is a level event channel. The generated waveform is 1 where the event is high and 0 where it is low.
  9. The script compiler and execution system has been revised and script operations run up to twice as fast as previously. This does not halve the time for a script to run as this is dominated by the time taken to execute the built-in commands.
  10. When you create a horizontal cursor interactively, the cursors now space themselves out across the first visible channel with a y axis. Previously they were all placed half-way up the y axis.
  11. You can use the keyboard shortcuts Alt+1 to Alt+9 to fetch or create horizontal cursor n.
  12. The ScriptRun() command has a new flag option that keeps loaded scripts in memory.
  13. The Heka file importer has been extended to support old format data files from Apple Macintosh computers. The Heka importer no transfers the time of file creation; this supports the Spike2 time of day display mode.
  14. The DSI importer now supports data files with 4 character file extensions.
  15. The Alpha Omega importer now imports WaveMark data from an old file format.
Fixes
  1. If the clustering window was set to use colour fade and to show variable sized dots and the source data did not have a z dimension, then no dots were visible.
  2. Opening the PCA analysis dialog online could crash Spike2 depending on the previous use of the PCA dialog.
  3. Changing the channel title from the Talker Dialog now works.
  4. Disabled fields in some Process dialogs were being checked; this could cause correct setting to be rejected when processing measurements to a channel or an XY view.
  5. The ChanSearch() script command was searching backwards if sT and eT were set to the same value. Now it does nothing if the values are the same.
  6. It was possible to hang Spike2 when using a virtual channel to convert RealMark data to a waveform using the Rm or Rmc commands.
  7. If a time view only displayed channels in Overdraw WM mode, the data did not update correctly when the view was scrolled.
  8. The script commands ChanProcessClear() and ChanProcessClear(-1) to remove any channel processing from all channels did not clear the channel modified indicator from the channel numbers.
  9. 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.
  10. In the graphical sequencer dialog, the Write as text sequence button did nothing if you had just switched to graphical mode.
  11. When debugging a script with a #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.
  12. The EDF importer now handles dates correctly to allow time of day display mode.
Changes
  1. The Clear Graphical Editor option now clears the keys associated with all the sections.
  2. The Cursor menu command to Fetch a horizontal cursor now always places it on the first visible data channel with a y axis to match the new Alt+n keyboard commands. Previously, the horizontal cursor was moved to the vertical centre of the channel it was attached to, unless it was hidden, when it was moved to the first visible channel with a y axis.
10/10 7.05 New
  1. You can now output sinusoids and ramps on up to 8 DACs with a Power1401 mk I (to match the Power1401 mk II).
  2. The return value from the FileNew() script command has a new error code for "1401 not capable of sampling this configuration".
  3. Spinners in user-defined dialogs now blend with the associated field more neatly.
  4. The graphical output sequencer editor will generate code for a section if only a key is set; previously you had to also set some output.
  5. Overdrawn channels draw the channel number using the channel primary colour if one is set. This can help you to identify multiple overdrawn channels.
  6. New ZeroFind() script function to find a zero of a user-defined function.
  7. The Alpha Omega file importer can now read old format event data.
  8. Biopac version 4 files can now be imported.
  9. The Delsys importer can now read EMG version 4 files.
  10. The Heka importer now reads continuous gap free data.
Fixes
  1. The Timing Fault markers in the output sequencer graphical editor were not always redrawn when text was changed in the dialog.
  2. When creating a result view, if you set a source channel list of 3,801,802 where 801 and 802 were channels 3a and 3b, this was internally translated to 3..3b, which was later expanded to all the channels between 3 and 802. This generated an unexpected list of channels in the result view.
  3. The Y axis auto-units option is now remembered when a data file closes.
  4. In Aero drawing mode (Vista and Windows 7), horizontal cursors used during sampling left pixel dust behind when dragged.
  5. Attempts to use the Position Horizontal Cursor command for cursors 4 and 5 opened the wrong dialog.
  6. The return value from the FileNew() script command gave the same return value for "user cancelled sampling" as for "no 1401 available".
  7. User-defined dialogs containing only buttons did not get sufficient height.
  8. Illegal debounce values for non-event channels could cause permanent "out of range" values in the sampling configuration dialog.
  9. The MinMax() script command could hang up if used on an event channel to find the minimum and maximum intervals when the selected time range held 8000 or more event times.
  10. The MemChan() command variant with two arguments to create a channel based on another channel did not copy the channel units for waveform, RealWave or WaveMark channels.
  11. When a channel list was passed in an array to SetAverage(), SetPower() or SetWaveCrl(), there was no check that all the channels had the same sample rate.
  12. In 3D overdraw mode when X axis space for 3D effect was not 0, the area to the right of the x axis was not filled.
  13. If you setup sampling for a Power1401 or a Micro1401 mk II or -3 in such a way that the sampling required the dummy channel optimisation, then sampled with the original micro1401, the sample rates for waveform channels would be incorrect. Now you are told to adjust the sampling configuration.
  14. In 7.04, we inadvertently changed the Edit WaveMark dialog so it always opened with Track Cursor 0 enabled.
  15. If a channel scale factor was set to a very large value (1e37, for example), Copy As Text could crash Spike2.
  16. The File Information dialog complained if a comment was more than 71 characters long; the limit should have been 79 characters.
  17. A failed Talker connection now generates a more useful log message if the Talker is already connected.
  18. You are not allowed to forget a Talker that is currently connected.
  19. Using the Sampling configuration Talker dialog to change the channel title now works.
  20. The context menu for horizontal cursors now has an option to copy the cursor position without units.
  21. Copy horizontal cursor position with units now takes account of any SI unit rescaling in the Y axis.
Changes
  1. In xy views, we have removed code that limited line co-ordinates to the maximum for Windows 9x systems (as Spike2 no longer supports these operating systems). This allows you to zoom in further before lines cease to be drawn; we do not think it causes any problems, but please let us know if it does.
  2. The ASCII and Binary file importers have changed the names of the files they use to store import settings.
07/10 7.04 New
  1. Spike2 can now sample data from Talkers. A Talker is a software module that interfaces between an arbitrary data capture device and Spike2.
  2. If you sample WaveMark data with a Power1401, Power1401 mk II or a Micro1401-3, you can now reject spikes that exceed an amplitude limit. An optional extra pair of horizontal cursors set the limits.
  3. The debounce option for Marker channels now takes the marker code into consideration. You can also set a negative debounce value for Event and marker channels to preserve simultaneous events by giving them times that differ by a single clock tick.
  4. There are new script commands PlayWavePoints() and PlayWaveKey2$() to make it easier to use an arbitrary waveform area for different waveforms of different lengths.
  5. There are new time (%T) and date (%D) specifiers in the Automation tab of the Sampling configuration dialog.
  6. The ChanOrder() script command can now return channel lists in screen order.
  7. The new CursorOpen() script command opens the Cursor Regions and Cursor Values dialogs.
  8. There is less Y axis flicker when resizing a time, result or XY view.
  9. The Clustering dialog is easier to use. There are more toolbar buttons and the events displayed in the associated interval histogram can be restricted to those in the selected user ellipse or user shape.
  10. Clustering dialog short-cuts Ctrl+A (Autoscale), Ctrl+Q (Equal scales) and, Ctrl+R (Rescale) also have A, Q and R as alternatives.
  11. The Clustering dialog allows you to use the event times as the Z axis value in all analysis modes.
  12. The Clustering display now allows a 0 dot size, meaning as small as possible (1 pixel).
  13. In the Clustering dialog, if short intervals are displayed, clicking close to an arrow will locate the event that starts the interval.
  14. Channels in an interval histogram linked to a Clustering dialog now hide when the corresponding code is hidden in the cluster dialog if the Track class and time range changes box is set. The interval histogram now displays the X axis in milliseconds.
  15. The Clustering dialog Copy As Text command can now include the cluster summary information.
  16. Warnings and error messages from the 1401 interface or from Talkers are now logged during sampling to help diagnose problems.
  17. There are new script commands Trim(), TrimLeft() and TrimRight() to remove white space and user-defined characters from the front and back of strings.
  18. The SSButton(), SSTempInfo() script commands now support spike collision analysis.
  19. The new SSColArea(), SSColApply() and SSColInfo() script commands support collision analysis.
  20. Both the script editor and the output sequence editor now highlight matching braces and mark unmatched braces when the text cursor is next to them.
  21. When debugging, the displays of global and local variables and the call stack are faster and support wrap-around text searches.
  22. When debugging, there is a new Watch window that displays the value of variables selected from the Globals and Locals windows.
  23. You can now copy Time, Result and XY views to the clipboard as bitmaps even if they are off screen or minimised. Previously, areas that were not visible on-screen were black in the bitmap.
  24. There are now keyboard short-cuts for Sample Start/Stop (Ctrl+Alt+S), Sample Reset (Ctrl+Alt+R), Sample Abort (Ctrl+Alt+A) and Toggle Writing to disk (Shift+Ctrl+W). This allows the use of a remote keyboard to control sampling, following a recent user request. The key combinations are deliberately awkward to prevent accidental activation.
  25. There is a new Edit menu Preferences option in the Sampling tab to prevent Sampling toolbars being made visible automatically when you open a file for sampling.
  26. The Neuralynx file importer now includes the codes of WaveMark data channels.
  27. The Binary file importer saves the last import configuration used as BinLast.bib in the import folder. If Bin_Def.bib exists it is always used, otherwise BinLast.bib is used.
  28. FilePath$() can now be used to get paths to some of the users system folders.
  29. When sampling, the last used configuration last.s2c, which is saved when sampling ends, is now saved before the view is resized to display available data. This preserves the displayed width for the case where sampling does not reach the end of the display window.
  30. MaxTime(chan%) where chan% is a virtual channel now returns the time of the last waveform point on the virtual channel; previously it always returned 0.
Fixes
  1. With a script running, a user was allowed to use the Edit WaveMark, New WaveMark, New NTrode, Spike monitor, Cursor Regions, Cursor Values and Multimedia menu commands without regard to the current set of allowed actions. Now, the appropriate menu and the ability to change the current window must both be enabled to use these menu commands.
  2. Dialogs (for example the X Axis Range dialog) where times were accepted in hh:mm:ss formats did not accept exponential formats for numbers, for example 1e2 meaning 100 seconds.
  3. The X Axis Range dialog allowed you to set a logarithmic axis when the current display range was entirely negative. Likewise, setting logarithmic axes from the script with a negative axis range caused display problems. Now, if the x axis is entirely negative, logarithmic requests are ignored. If the current range is negative, changing to log mode changes the axis range so that the display makes sense.
  4. When using the output sequencer in all 1401 interfaces except the 1401plus, the front panel Clock output would generate one cycle of an incorrect time period (typically too short) each time the sequence was commanded to jump to a new location.
  5. The Time$() script command did not use the system settings for 12/24 hour clocks correctly.
  6. If you changed the axis pen width in the Edit menu Preferences, then opened a time, result or XY view that was last used with a different axis pen width, the first display of any cursors could use the wrong width, leading to 'ghost' cursors on the screen if the cursors were moved.
  7. The histogram fill colours set for an INTH created from the Clustering window did not match the clustering colours.
  8. When a virtual channel was converted to a Waveform, the real data was truncated to the underlying integer values. Now it is rounded to the nearest integer value, which is more accurate.
  9. If a clustering display was set to variable dot size, this was not restored on the next use of the dialog.
  10. The counts of events in the selected ellipse or user-defined shape in the cluster window now changes if the time range changes.
  11. If a sampling configuration caused a result view that was outside the screen area to be created, the application could behave very strangely as all idle time was being devoted to repeatedly not drawing the off-screen view.
  12. When exporting a virtual channel to a MatLab file, one point less than requested could be written at the start of the file or just after any gap in one of the channels used to create the virtual channel.
  13. If you used a maximum gap with the RM, RMC, IF or IFC Virtual channel commands, points after a gap were not always displayed.
  14. It was possible to crash Spike2 by attempting to open a result view using a file that was not a result view or was corrupted.
  15. In large data files, Event correlations, PSTH analysis and Phase analysis could take a long time when the events were sparse compared to the trigger times, especially when the events used a Marker Filter and a large proportion of the events were filtered out.
  16. The documentation for DrawMode() did not mention setting mode% to -16 to return the as% setting; this was added at version 7.01.
  17. If you created a duplicate label in an output sequencer file, the error message was not helpful in locating the problem. Now the offending line is highlighted with a useful error message.
  18. In version 7.03, it was possible for a WaveMark (spike shape) channel drawn in WaveMark mode to draw forever if sufficient data was displayed that the channel took a long time to draw.
  19. Running a Principal Component analysis with a single spike in the time range could crash Spike2.
Changes
  1. Result view raster displays now optimise to show all the rasters, even if they contain no data. Previously, the Y axis optimise only included rasters with visible events. Script commands that return the maximum and minimum y axis value for a channel in raster mode also include all rasters.
  2. When drawing, we now check in more places that items are visible against the background. The replacement colour used in low-contrast cases is now chosen to be closer to the original; previously it was always a shade of grey.
03/10 7.03 New
  1. The maximum number of horizontal cursors in a view has been increased from 4 to 9.
  2. You can now output sinusoids and ramps on up to 8 DACs with a Power1401 mk II.
  3. With a Power1401 or a Power1401 mk II arbitrary waveform output and offline waveform output can use up to 8 DACs with a maximum of 4 at a time.
  4. There is a new Modified() script command to get and set the modified and read only state of views.
  5. When positioning the application or dialogs we now try to avoid collisions with the system taskbar.
  6. The Cursor Regions dialog now opens with the measurement mode set to the last mode set in the current session.
  7. Screen updates of a region with a rounded edge are faster and drawing huge amounts of data is less likely to cause the program to be marked as "Not responding".
  8. EditPaste() can now get clipboard text into a variable.
  9. You can now override the default pen width used from drawing channel data in time and result view both from an interactive dialog and from the script language.
  10. X axes in all views that have units of seconds ("s" or "seconds") can now choose to display in milliseconds. This is purely for display purposes, all internal values are still in the original units (seconds). The XAxisStyle() script command is extended to match.
  11. X and Y axes can be set to scale the axis units automatically to make axes easier to read.
  12. The Y Axis Range dialog accepts a list of channels and can apply channel ranges based on the channel units.
  13. The Process setup dialogs allow you to set values for widths and offsets in milliseconds by appending ms to a number, for example 100ms. The dialogs now check field contents as you type and disable the New or Change button if a field is invalid.
Fixes
  1. Result view raster displays did not optimize the Y axis correctly unless the entire X axis was displayed.
  2. Result view raster displays where the X axis included negative values did not display correctly when the X axis was changed to log mode.
  3. The Graphical Sequencer Editor timing error messages have been corrected for pulses very near the start of a segment.
  4. It was possible to write beyond the maximum allowed file size in some situations, resulting in data files that could not be opened by Spike2.
  5. The Error$() script command gives more useful results with error codes from the SON filing system.
  6. ChanSave() and MemSave() return negative error codes (as documented) for file system problems.
  7. The 1401 percentage busy value reported in the Sample Status bar was incorrect, especially when a WaveMark channel with a slow sample rate was used.
  8. After a Print Screen command, Time, Result and XY view contents lost track of where they were until the views were resized.
  9. Printed channels in Overdraw WM mode could show different events from those displayed on screen, especially when Print Screen was used.
  10. In printed data views, the background colour did not fill the entire background area.
  11. In triggered display mode with the Zero x axis at trigger option checked, vertical cursors that display a position now match the X axis.
  12. The script debugger displayed resized global arrays with their original dimensions.
  13. The FIR and IIR digital filters did not report an error if the system ran out of memory when filtering to a memory channel.
  14. If you clicked the [X] button at the top right of the application windows with a modified document open, then clicked Cancel when you were offered the opportunity to save the document, Spike2 would close down some features, but keep running, leading to strange effects, such as the Evaluate bar no longer being available.
  15. The binary importer now gets the correct scaling for double precision floating point data input.
  16. The ASCII (text) importer can now import a file with gaps.
  17. The DSI importer can now import files with 4 character file name extensions.
  18. The Codas file importer now detects input files with packed data.
  19. The Igor importer has been extended to import packed files stored as doubles.
  20. The Alpha-Omega importer now correctly detects the end of file when reading events (markers) with no attached data.
  21. The Heka importer has been extended to accept an old type of data file.
Changes
  1. The Channel Information dialog no longer has Close as the default button as this meant you could edit a value, then use the Enter key and the dialog would close and not save your change. OK is now the default.
  2. When vertical markers are drawn under the data, they are now placed on top of any drawn grid or channel background colour.
  3. The gray bar that separates Overdraw WM data from other channels has been replaced by a hatched bar. The height of this bar now scales with the font size and it also prints correctly. The bar no longer crosses the channel title area.
11/09 7.02 New
  1. Resizing a Time or Result view with a lot of channels is now significantly faster.
  2. We have speeded up scripts that manipulate large numbers of time or result view channels. If you work with large numbers of channels, the speed up can be dramatic.
  3. You can now create new folders in addition to selecting existing folders in the Edit menu Preferences and in the Sampling Configuration dialogs.
  4. The FilePathSet() script command lets you create new folders interactively.
  5. The text editor now allows the caret to be moved into virtual space (empty space beyond the last character in a line). This has no effect unless you type, when new text is added at the caret position (padded with spaces). The editor also allows multiple selections with the mouse (hold down Ctrl and click and drag).
  6. The DebugList() script command has new options to report usage statistics for built-in script commands as an aid to debugging and optimizing scripts..
  7. The time resolution of the Seconds() script command is now 1 millisecond on most systems (it was previously around 10 milliseconds at best). There is an optional high-resolution mode, with some caveats, with a resolution of better than 1 microsecond.
  8. In the graphical sequence editor, the maximum pulses in a pulse train has been increased from 100 to 400.
  9. The Ctrl+Alt+Mouse click used to select WaveMark items in Overdraw WM mode has been extended to WaveMark, Waveform and Cubic Spline drawing modes.
  10. The "Slow update" warning in a window title bar (to remind you to use Ctrl+Break to interrupt drawing) now appears if a screen update takes more than 1 second.
  11. The Power Spectrum analysis and the SetPower() script command now allow FFT block sizes up to 262144 points.
  12. There are four new measurements in the Cluster on Measurements dialog.
  13. You can now control the display of x and y grid lines independently through the Show Hide Channel dialog or with the Grid() script command.
  14. Arbitrary waveform output in the Power1401 mk II and Micro1401-3 will now take advantage of a DAC Silo firmware upgrade (if present). This reduces the load on the 1401 during arbitrary waveform output, especially when an output sequence is running and allows DAC output at higher rates than was previously possible.
  15. Result view channels now support channel comments. When a result view is created by a New Result view function, the channel comments are set to indicate the source channel in the associated time view.
  16. Result views now have a Channel Information dialog that allows interactive editing of the channel title, units and comment.
  17. The highest ADC channel number that can be set in a sampling configuration has been increased to 127 (to allow for a Micro1401-3 with two 64-channel expansions). There is still a limit of 64 waveform channels.
  18. The sampling configuration channel setup dialog for Event data and Digital Marker data now includes a Debounce field that can be used to filter out unwanted events caused by mechanical switch bounces. There is a new SampleDebounce() script command to support this new feature.
  19. You can fade the data colour to the secondary colour in an overdrawn time view.
  20. If the Edit WaveMark dialog is open and you are not sampling, unclaimed keypresses in the time view are sent to the dialog and activate it.
  21. In the output sequencer, you can now use constant expressions in more places, in particular you can use a constant for the channel in a CHAN command.
  22. ArrSpline() can now generate equal interval data from non-equal interval sources.
  23. You can use HCursor() in an Edit WaveMark view to read back the last set of cursor values used with the New WaveMark command. There are improvements in the Bionic, NeuroScan, Plexon, MED64 and Mc_Rack data file importers.
Fixes
  1. A channel list that would accept v1 to mean the first virtual channel would not accept V1.
  2. In the Virtual channel pop-up menus, the Min() command displayed the text for the Max() command.
  3. When the sampling configuration is copied as text, TextMark channels no longer display serial line information when set to Manual mode.
  4. The ternary operator expr ? expr1 : expr2; caused a script error if expr was a constant expression.
  5. The script language DlgValue$() command can now access a checkbox prompt.
  6. In a script, the use of proc or func to describe a function argument caused incorrect indentation in the automatic formatting option.
  7. Labels on big ticks that overhung the end of a Y axis did not always repaint when an object was dragged over them.
  8. If you called SetPower() with a block size that was not a power of 2, the result view was created based on this number and the Power spectrum was incorrect. Now the block size is reduced to the next lower power of 2 (as documented).
  9. PlayWaveRate() limited the maximum allowed rate to 200 kHz, but 250 kHz is a legal value for a Power1401.
  10. The MeasureToChan() and MeasureToXY() script commands did not allow modes 19 and 20. Also, these two modes did not record correctly.
  11. The Cursor Regions dialog and curve fitting always used index 0 of a RealMark channel when it was drawn in a waveform mode. They now use the data index set in the drawing mode.
  12. The DrawMode() as% argument was not recorded correctly.
  13. A backwards cursor search on a waveform memory channel with gaps could cause Spike2 to stop responding.
  14. There was not enough space for the "Mean error:" text field in the Edit Wavemark dialog when the Spike collision mode was selected.
  15. Vertical and horizontal cursors were generating too much code when recording.
  16. If you clicked in the data area of a time, result or XY view that was partially covered by another view, the zoom lines did not draw correctly.
  17. In an XY view, the zoom lines that appear when you click the mouse in the drawing area could draw over the XY key when they should not.
  18. If you used the SetResult() script command then Alt+mouse click in the result view to measure, the wrong font was displayed.
  19. If you used DlgMouse() or ToolbarMouse() commands and did not supply all 3 mouse down, up and move functions, the dialog or toolbar could close unexpectedly
  20. The Igor file importer now works correctly when two input channels of different types have the same name.
  21. Clicking and dragging the y axis to scale the display while the data scrolls sideways during sampling no longer causes horizontal cursors to display multiple times.
Changes
  1. The text editor has changed to allow multiple selections and virtual space, so may behave differently.
  2. FilePathSet() now opens the user interaction dialog if a prompt is supplied, even if the path$ argument is not an empty string.
  3. In Offline waveform output, missing data before the start of a block is set to the first value rather than 0 (which could cause discontinuities when a block was looped).
07/09 7.01 New
  1. The MMRate() script command has been modified so you can use it to count the number of attached s2video or other listener devices without changing the video frame rate.
  2. A new option in s2video in Settings->Configuration may give access to more camera features in the Video Device Properties menu.
  3. There is a new application, avicomp, that can be used to compress .avi files generated by s2video.
  4. The Multimedia window can track the position of cursor 0 as an alternative to tracking the display window.
  5. The Offline waveform output dialog has more control over cursor 0. The PlayOffline() script command has been extended to match.
  6. The Marker Filter dialog now has the option to display codes as decimal numbers.
  7. The Channel Draw Mode dialog now lets you set the size of dots interactively. Previously, you had a choice of small dots (1 pixel) or large dots (2x2 pixels).
  8. You can now choose to draw instantaneous frequency as dots, lines or as a skyline. The DrawMode(), MinMax() and ChanValue() commands have been extended to match the new functionality.
  9. RealMark data can now be drawn as a waveform using dots for each data point.
  10. Dots drawn in time and result views can now be drawn as circles. Circle drawing is slower, and is enabled by a new Edit menu Preferences option in the Display tab.
  11. The Clustering dialog has been reworked to improve the drawing speed and include new drawing effects including colour fade, circular dots, variable dot size, and a quick method to locate events that are closer than the minimum interval. The axis drawing in Z Buffer mode has also been improved.
  12. The new ToolbarMouse() script command links mouse movement over data channels in Time, Result and XY views to script functions when a toolbar is active.
  13. The ToolbarSet() script command can now be used to get the number of the last toolbar button used.
  14. The DlgMouse() script command links mouse movement over data channels in Time, Result and XY views to script functions when a user-defined dialog is active.
  15. The DlgButton() script command returns the number of the last dialog button used.
  16. The new MousePointer() script command defines mouse pointers for use with the toolbar and user-defined dialogs.
  17. The tooltip displayed when the mouse hovers over a y axis in a time view now includes the channel number.
  18. The new XYInChan() script command detects which points in an XY view channel lie inside a polygon defined by another channel.
  19. The XYInCircle() and XYInRect() commands have been extended to return the indices of the data points that lie inside the circle or rectangle.
  20. The new ChanPixel() script function returns the x and y axis equivalents of a 1 pixel position change.
  21. The mouse pointer position displayed in the Status bar for a channel in WaveMark OD display mode now shows the offset from the start of the WaveMark rather than the unrelated x axis position.
  22. All dialogs have been set to use a font that should generate smooth outlines on systems that support it and have smooth outlines and ClearType enabled.
Fixes
  1. The Offline waveform output was moving cursor 0 regardless of state of the Cursor 0 tracks the waveform output check-box.
  2. If you stored a sampling configuration that included view overdrawing, the list of trigger times was not cleared before sampling started, leading to unexpected overdrawing.
  3. The s2video program is more tolerant of data input devices that implement the DirectShow interface in unexpected ways.
  4. Some of the saved parameters of the Clustering dialog (for example the minimum interval), were truncated to integers when saved.
  5. If you did not supply the sep$ argument to the ExportTextFormat() script command, the delimiter was set to the Tab character.
  6. The SampleText() script command did not work if there was a TextMark channel in the sampling file and the TextMark channel had been removed from the sampling configuration.
  7. When you save a sampling configuration as text using Copy As Text or Log, the Units field is now empty for channel types that do not have units.
  8. The X Axis dialog did not allow you to enter a negative or zero value for the right-hand end of the axis (for example in an XY view).
  9. In the X Axis dialog, if you changed to a log axis, then changed back, you could no longer set a negative axis start time.
  10. XY views did not redraw correctly when data was changed if the y axis had larger values at the bottom than at the top.
  11. The X Axis dialog will now accept 1E-015 and similar floating point values as times.
  12. If a sampling configuration set for a Micro1401 or Power1401 was run on a 1401plus or a micro1401, and it used the copy channels optimisation, the waveform sample rates were wrong. This is now detected and you cannot sample until the configuration is corrected.
  13. Online measurements to a channel with Y axis optimise checked in the Process dialog redrew all the data for every measured point, even when the y axis range did not change.
  14. The OVR indicator in the Status bar was not linked to the Insert/Overtype state of the text editor.
  15. The Copy Cursor Value command in the Horizontal cursor context menu did not work.
  16. A script run by the ScriptRun() command that is not already open is closed when it ends. However, such scripts were closing even if there was an error. Now the script remains 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.
  17. A non-zero edge% argument in the DrawMode() script command was applied to non-level event channels.
  18. In the Measurements to an XY view or Measurements to a channel dialogs, if you chose the User entered value measurement type, the Prompt field was flagged in error if it contained anything that could not be interpreted as a number.
  19. If you compiled a script, closed it and opened it, Spike2 assumed it matched the compiled version and did not recompile it when it was run. 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 to be unchanged when reopened.
  20. It was possible to crash Spike2 in the Sampling Configuration dialog by setting more than 53 waveform channels.
Changes
  1. The Sonogram Colours button has been removed from the Edit menu Preferences and can now be found in the View menu or by right-clicking on a time view sonogram and selecting Sonogram Colours from the context menu.
  2. The initial selection in the FIR digital filter dialog is now the third entry (usually Low Pass), which seems a better choice than the first entry (usually All Stop).
  3. If you open a .s2c file while Spike2 is running by double-clicking it or by dragging it to the Spike2 window and dropping it, this now opens the Sampling Configuration dialog as if you had used the File menu Load Configuration command.
06/09 7.00 New since version 6
  1. The maximum size of a data file has been increased from 2 GB to 1 TB if you choose to use the Big file format. Such files can be read (but not modified) by Spike2 version 6.11 or later and cannot be read by earlier versions of Spike2. There are check-boxes in the Sampling Configuration and File Export dialogs to enable big files plus script language extensions for Big file support. The SonFix application has been extended for the new file format.
  2. When drawing becomes slow due to displaying a lot of data, the title of the updating window changes to remind you that you can break out of drawing with the Ctrl+Break keyboard command.
  3. You can now apply Vertical Markers to time views. These can be thought of as extra fixed vertical cursors with positions set by event or marker channel items. If the source channel is a TextMark, the text can also be displayed. There is a new script language command, VerticalMark() to support this.
  4. The Sampling Configuration dialog is now resizable, displays the count of Waveform and Event channels and has options to render the sampling configuration as text or to the Log window (in a suitable format for a laboratory notebook).
  5. The SampleConfig$() script command can now return the sampling configuration as text.
  6. The Sampling Configuration dialog Play waveform tab no longer needs confirmations of updates; changes are applied immediately.
  7. The script command EditCopy() can now be used with a string argument to place a string on the clipboard.
  8. There is a new FileSize() script command to return the size of a data file.
  9. You can open a text sequence from the Sequencer tab of the Sampling Configuration dialog by double-clicking the displayed sequence.
  10. The Sample Status bar now includes the percentage of sample time and disk space remaining.
  11. The SampleClear() script command can now optionally clear a single channel.
  12. The File menu New File dialog has been made easier to use.
  13. The new ViewZoom() script command can be used to get and set the zoom factor, in points, for text views.
  14. The new LinPred() script command can be used to predict data and to generate power spectra using the Maximum Entropy method.
  15. The Output Sequencer has new DRange(), ASz() and VSz() expressions.
  16. You can load an Output Sequence while sampling. The SampleSequencer() script command has been extended to support this.
  17. The Output Sequencer can now set a minimum number of instructions and a minimum table size to allow loading a sequence during sampling. The SampleSeqCtrl() script command has been extended to support this.
  18. The maximum number of instructions in an Output Sequence has been increased from 1023 to 8191 for all 1401 types except the 1401plus and the original micro1401.
  19. The number of variables allowed by the Output Sequencer has been increased from 64 to 256 for all 1401 types except the 1401plus.
  20. The Output Sequencer has new instructions TABADD, TABSUB, ABS, AND, ANDI, OR, ORI, XOR, XORI. The JUMP instruction can now jump using a variable to make it easy to program a state machine.
  21. The Output Sequencer has a new = directive to define numerical constants; you can now use a label in constant expressions.
  22. The Output Sequencer can now use >" to display the same output as the previous line and >= for no display change.
  23. The Output Sequencer supports the use of #include.
  24. Virtual channels now support comparison operators and the new functions Min() and Max().
  25. The script language now allows you to resize arrays, both at the global level and inside user-defined procedures and functions.
  26. The script language supports the break and continue statements to jump out of loops.
  27. The script language now allows you to assign non-constant values to variables in a var statement.
  28. You can now display line numbers in text-based views with the View menu Show Line Numbers command. There is a new script command ViewLineNumbers().
  29. You can Show and Hide the gutter in text views using the View menu Show Gutter command.
  30. You can limit the number of displayed lines in the Log window with a new Edit menu Preferences option. You can limit the number of lines in any text-based view with the new ViewMaxLines() script command.
  31. The new ViewZoom() script command can be used to get and set the zoom factor, in points, for text views.
  32. The View menu Standard Display command and the script language ViewStandard() command can now be applied to text views to restore a standard state.