• UK
  • US
  • Français
  • Deutsch
  • Español (precios €)
  • Portugal
  • Polski
  • 日本人
  • 中國傳統
  • 简化中国

Technical history of Spike2 version 4

Freely downloadable for version 4 users.

Date Version Summary
12/2005 4.24 New
  1. The importer for Axon files now recognises TextMark data channels.
  2. The importer for Plexon files now recognises library version 105 files and has been extended to import RealMark and Keyboard channels.
  3. The BIOPAC file importer now recognises version 42 files.
  4. The Alpha Omega file importer now imports .MAP files.
  5. There is a new file importer for .HLR version 3 and 4 files.
  1. If you read a sampling configuration from a data file, ADC channels were only accepted if they had a port number of 0-15. Also ports 8-15 were mapped to 0-7.
  2. If you used the ChanWriteWave() script command to replace data at the start of a channel, then created or deleted a different channel, it was sometimes possible to read the old waveform data.
  3. If you set a waveform for output using the Play Waveform feature of the Sampling Configuration or with the PlayWaveAdd() script command, if the number of channels and points were both odd, an extra point was output.
  4. If you used the Power spectrum command on a channel that had the down-sample channel process attached, it was possible to get a spurious error if the data area selected for analysis was an exact multiple of the FFT block size.
  5. It was possible to crash Spike2 by changing the channel of a dragged horizontal cursor from a script within a toolbar idle routine.
  6. If you had an event at the maximum possible time, it was possible to hang up Spike2 in some event drawing modes.
  7. If you deleted data points from an XY view channel that was sorted by x or by y, this would cause drawing and sort order problems.
  8. The file importer did not deal with very slow waveform sampling rates correctly.
  9. XYSetChan() did not work correctly or return the correct value when used with multiple channels.
  10. The colour dialog now displays channel numbers in the same form as the time view.
  11. XYInCircle() and XYInRect() failed when the pixel size of the circle or rectangle was 0.
  12. Both the Play offline dialog and the waveform output section of the Sampling configuration now display the correct number of bytes. In the Play offline dialog, the byte count updates if you change the sampling rate selector.
  13. You could crash Spike2 if you managed to generate a cursor position that took more than 20 characters to display.
  14. If you used the XRange() script command to change the displayed x range, then used a Print command, the original x axis range was printed.
  15. The MC_Rack file importer now reads channel titles correctly and scales WaveMark data correctly.
  16. It was possible to crash Spike2 if you opened an XY view file that had an associated resource file that was set for sorted data when the XY file held non-sorted data.
06/2005 4.23 New
  1. The text file importer has been revised so it can import a wider range of input formats.
  1. When Result views were loaded for sampling from a configuration file that had duplicated channel numbers in the time view, the result view channels were also duplicated.
  2. Online signal conditioner changes and memory channel changes to TextMark channels now cause the TextMark dialog to update.
  3. It was possible for a sampling configuration (.cfg) file to preserve information that was not used. This could lead to the .cfg file becoming much larger than was necessary.
  4. In the Rerun dialog, if you used MaxTime() as the end time, recording the dialog action gave an end time of 0.
  5. The View menu Standard Display command cleared the selected set of channels, but did not tell the channel numbers, so the channels still looked as if they were selected.
  6. SampleMode(-1) and SampleMode(-2) did not convert the time and every values from minutes to seconds when they were set as minutes.
  7. In the New WaveMark dialog, when the data source is a waveform channel, the template width is now restored from the saved settings. Previously it was restored, but limited to a maximum of 28 points.
  8. The script compiler now gives an error if you define a func or a proc with an array argument and give an array size, for example func fred(myArr[23]) is now flagged as illegal. Use func fred(myArr[]) instead. Previously, no compiler error was flagged and the script would probably stop with an unexpected error.
  9. The graphical sequence editor now correctly generates branch on response with timeout, branch on time comparisons and variable/time arithmetic. All were using sequencer ticks instead of file ticks in value conversion.
  1. If you use the Analysis menu Calibration command or ChanCalibrate() script command in "Set scale from mean of time range" or "Square wave amplitude (Size) only" modes, the results could be non-intuitive if the channel had a non-zero offset value. These modes now preserve the user y axis zero, which will change the channel offset if the original channel offset was not zero. You will see no change if the channel offset is zero.
12/2004 4.22 New
  1. The Axon file importer is updated to version 1.83 of the Axon library.
  2. The Data Sciences International (DSI) file importer now works better with frame-based files.
  3. The Plexon file importer now accepts library version 104 files.
  1. If you set Triggered display mode and set the x axis to be zero at the trigger point, any change to the display layout caused the x axis to display the original time axis.
  2. The output sequencer expressions sTicks(), msTicks() and usTicks() now work correctly when a Power1401 or Micro1401 is using a time resolution that is not an integral number of microseconds.
  3. Passing a waveform with a negative or zero area to EventToWaveform() is now reported as an error and no longer hangs Spike2.
  4. The enhanced metafile image export set the image size based on the nominal pixels per inch value reported by the system, resulting in an inaccurate size. It now calculates it more accurately.
  5. The 1902 signal conditioner support for unity gain rectification did not work correctly.
  6. Changes made online in the 1902 conditioner control panel for AC coupling and the notch filter were not passed on to the 1902 until the next file was sampled.
  7. The text file importer produced incorrect y offsets for data that was asymmetric about the y axis zero.
  8. The Igor file importer no longer crashes when reading a channel that is held in blocks of different data types.
  9. The DataWave file importer copes better with EWB files.
  10. Clicking the Add Horizontal Cursor button at the bottom left of a time view moved the input focus to the button, which disabled keyboard markers.
  11. It was possible to hang Spike2 by setting a font size that was large when compared to the screen resolution and then sampling with certain sampling configurations.
  12. Scrolling a time or result view while selecting a region with the mouse no longer leaves bits of the selection box behind on the screen.
  13. The Read() script command no longer truncates the last line of text in a text window if it does not end with end of line characters.
  1. In a time view, if you set the x axis to "Time of Day" mode, this stops the x axis displaying 0 at a trigger point in Display trigger mode. Likewise, setting Display trigger mode to show the x axis as 0 at the trigger point will change Time of Day mode into "Hours, Minutes and Seconds".
09/2004 4.21 New
  1. The ChanNew() script command will now accept a channel number of 0, meaning the first unused channel.
  2. The BIOPAC file importer now supports file formats up to version 3.7.3.
  1. The documented return value for the ChanNew() script command was incorrect.
  2. The CED CFS file importer now converts multiple frame files with Y scales that change between frames. Previously it assumed all frames had the same scaling.
  3. If you invalidated data drawn in Overdraw WM mode, for example by changing marker codes, the full time range of the invalidated data was added to the display. Now only invalid displayed data is redrawn.
  4. If you used the Channel process Down-sample command on a waveform channel, data after a short gap might not display..
  5. The DIBEQ sequencer instruction in the 1401plus did not work.
  6. If you print a data view that spans multiple pages and you have set left or right printer margins, the pages now join together correctly.
  7. The Print Screen command now pays attention to printer margins.
  8. In the graphical sequence editor, "branch outside levels" and "branch within levels" operations now work correctly.
  9. If you dragged channels on top of each other and then hid the y axes, it was possible for a hidden y axis to draw on top of the data area.
  10. You could crash Spike2 by creating a result view with multiple channels and raster displays, then going back to the Process Settings dialog and reducing the number of channels.
  11. High-numbered channel primary and secondary colours were not preserved when the view was saved and restored or when a time view was duplicated.
  1. If you have a non-scrolling Overdraw WM channel, it now redraws completely whenever the view scrolls by half the view width or more. It also redraws completely for each trigger in triggered display mode.
06/2004 4.20 New
  1. The Print Screen command now clips waveforms so they don't draw outside their rectangles.
  1. The SonFix application, which checks and repairs data files, could list the "lost blocks" in a damaged waveform channel in the wrong order. This limited data recovery.
  2. The SonFix application now displays times in seconds correctly for files with a time base that is not microseconds.
  3. PlayWaveStatus$() returned the pos% argument as the point offset into the channel area, not as the point offset per channel into the area. This made no difference for a single channel area, but if there were n channels, the value of pos% was n times too large.
  4. In the graphical sequence editor, the wait for Cosine phase 0 command generated incorrect code and a sequence using this would not load.
  5. In the graphical sequence editor, asking for a branch with a probability very close to 1 would generate an error that stopped the sequence from loading.
  6. Waveforms drawn as large dots did not always refresh properly when an object was dragged over the window.
  7. Time view raster displays did not draw if the y axis was reversed.
  8. Waveform correlations could produce incorrect results in some circumstances. If this happened, the returned values were huge numbers (not in the range -1 to 1).
  9. The MemSetItem() script command did not invalidate the display if a new item replaced an existing item.
  10. DrawMode() no longer sets rising or falling edges for non-level event channels.
  11. Recording drawing mode changes no longer uses the raster mode flags for non-raster channels.
  12. With a 1401plus, the output sequencer command DELAY 0 or DELAY Vn with Vn equal to zero set a very long delay.
02/2004 4.19 New
  1. The RasterGet() script command has been extended to return the number of sweeps stored for a channel.
  2. The ViewKind() script command now accepts a negative argument to test the type of the window that a result or XY view was created from. This allows a script to test for a parent window before using View(-1). This avoids a fatal error if the window does not exist.
  1. If you used the View(-1).Cursor(1) syntax in a dialog expression when there were no duplicate views, the expression was not accepted.
  2. If you ran Interact() or Toolbar() script commands and did not enable the Cursor menu, you could still add a new horizontal cursor by clicking the button to the left of the x axis scroll bar.
  3. If you created a new waveform channel by duplicating an existing channel or as a memory channel and then set sonogram drawing mode, Spike2 could freeze during drawing.
  4. In the graphical sequence editor, a key character at the start of a segment was omitted if a control item was set at time zero.
  5. If you right clicked on a channel in a duplicated time window and opened the marker filter or a memory channel dialog, the correct channel was not selected automatically.
  6. Backwards searches now work on RealWave and event channels draw as mean frequency or rate.
  1. If you recorded the use of the Process dialog, and used expressions that referred to positions in the time view, for example Cursor(1), the recorded script did not run correctly as it should have recorded View(-1).Cursor(1). To work around this, if you are recording your actions, the Process dialog drop-down lists now display times as View(-1).Cursor(1). As this looks clumsy, we don't use this format if you are not recording.
10/2003 4.18 New
  1. Spike2 checks data files for errors more thoroughly. SONFix will repair files that fail the new checks.
  2. The text importer is easier to use and you can choose to import waveform channels as RealWave or waveform and event channels as Event-, Event+ or Level.
  3. The BinError() script command now supports array access to result view error information.
  4. The ChanKind() script command returns 0 if you use it in the wrong type of view; it no longer gives a fatal error. This saves testing for the view type before using it.
  5. The file importer now supports the Bionic NSx format.
  1. The MeasureToXY() script command now pays attention to a request for user checks of cursor positions.
  2. If you split a line in the script editor, the new line could lose characters and the line indent was often incorrect.
  3. The PlayWaveCopy() script command had problems with transfers that wrapped around the end of the target area and that started at an offset that was not a multiple of 4 samples.
  4. Changing the last bin of a result view from the script did not cause a redraw.
  5. In a result view, ChanMeasure() did not allow you to process the last bin.
  6. In the Spike shape dialogs, when you double click on a template to change the size, the last matching spike is now displayed.
  7. If you used a programmable signal conditioner, for example the CED 1902, the conditioner settings saved in the Spike2 configuration were not always applied the first time you sampled data after starting Spike2.
  8. If you use the File menu with Ctrl held down to close a time view with associated result views, and the result views has duplicated channels and raster data, the result view data is saved correctly.
  9. If you open a time view that has an associated resource file holding result view data that includes duplicated channels and raster data, the duplicated channels are not applied to the time view and the result view bin and raster data are restored correctly.
  10. It was possible to set 3 traces for WaveMark data in the Create Memory buffer dialog.
  11. You could crash Spike2 by importing a WaveMark channel to a memory buffer WaveMark channel if the number of data points and pre-trigger points did not match.
  12. WaveMark data with a single waveform point is no longer invisible when drawn as a waveform.
  13. The BinError() script command did not allow access to the error information if the errors were not displayed.
  14. When the DupChan() script command returned values that were not channel numbers, they were 1 too small.
  15. The Debug(msg$) script command writes msg$ to the script source window, as documented.
  16. The DrawMode() command with mode% set to 0 now sets the standard drawing mode for the channel, as documented. Previously it did nothing.
  17. MarkInfo() did not return 0 when used on a marker channel.
  18. The ScriptBar() and SampleBar() script commands did not accept all documented argument combinations.
  19. The Neuralynx file importer for continuous waveforms now ignores the sample rate in the data blocks. The sample rate is calculated from the data block time stamps.
  1. In a result view, ChanMeasure() in slope mode included the end bin in the calculation. This was different from all other modes. It now does not include the end bin.
  2. The script language MaxTime(chan%) command now returns -1 if the channel does not hold any data. Previously it returned 0 (which could have meant that there was data at time 0).
  3. When you import a WaveMark channel to a memory buffer WaveMark channel with a different number of waveform points or pre-trigger points, the trigger points of the output and input are now aligned. Previously, the first point of the output and input were aligned.
06/2003 4.17 New
  1. You can now use ChanSelect() in a result view.
  2. Previously, imported data files had 32 channels or the number of channels in the imported file if this was larger. Now, if the file has n channels, and n is more than 32, we create a file with n * 1.25 channels to make room to save processed data.
  3. The DOS script converter now uses Yield() when it translates the Delay command.
  1. If you used FitLine() in a result view, and the finish bin number was beyond the end of the result view, the results were incorrect.
  2. If you exported a file created by a very old version of Spike2 to a new data file, it was possible to crash the program.
  3. Sequences set by the SampleSequencer() script command did not appear in the sampling configuration.
  4. The Process() script command changed the result view contents, but did not cause a screen update.
  5. Modifications to a result view channel did not cause duplicates of the channel to update.
  6. If you moved the mouse pointer over a vertical cursor, the pointer did not change.
  7. If you created a WaveMark channel offline with the maximum allowed number of points (1024) and set the maximum template size (1020 points), you could crash Spike2 in the template dialogs.
  8. The script FileSave() command no longer asks if it is OK to overwrite its own data file when used with text, result and XY views.
  9. The Process dialogs could display times to 15 decimal places if the associated data file had a time base that was not an exact multiple of microseconds. This made them difficult to edit.
  10. If you used the script ChanKind() function in an XY view, it always reported an XY channel, even if the channel number was out of range. It now returns 0 if the channel does not exist.
  11. If you use the Edit WaveMark dialog on-line and change the trigger levels, but do not use the Online Update button, the levels are now remembered.
  12. Active cursor searches on event channels in "Points" mode no longer ignore the minimum step value.
  13. TextMark data read from a serial line during sampling no longer includes characters that were received before sampling started.
  14. Toolbar buttons linked to the characters A-Z with ToolbarSet() are not activated if the Ctrl key is down. For example a button linked to the C key was also linked to Ctrl+C.
  15. If the MinMax() script command was used on RealMark data, it searched one data point before that start of the time range.
  16. If you used the Read() script command with no arguments to read from a text window, it did not skip a text line.
  17. The Draw() script command did not update a text-based view.
  18. In Windows 95 and 98, it was possible to cause drawing problems when displaying data in rate mode if you zoomed in so that the x axis displayed a small fraction of a bin.
  1. The Process dialogs now remove trailing 0s before displaying times. Previously, with a data file with 10-microsecond time resolution, 0.1 seconds was displayed as 0.10000 seconds.
  2. Time view channel units are now read back from the displayed channel, not the underlying data file. This means that event channels displayed as frequency have units of Hz.
05/2003 4.16 New
  1. In a result view, drawing data as lines when there are many points per pixel now looks less "chunky".
  2. The XY view Show/Hide channels dialog now lists user-defined channel titles.
  3. The template displays in the spike shape dialogs now show the number of events that matched each template, not the number of events added to the template. In the large template display mode, both numbers are shown as: matched/added.
  4. File importers try harder to create files that are compatible with older versions of Spike2.
  5. If you move the mouse pointer over a .smr (data) file in Windows Explorer, you now get pop-up information about the file. This includes the time resolution and duration, the number of channels and any file comment.
  6. If you move the mouse pointer over a .s2s (script) file in Windows Explorer, and you have set a script file comment, the comment appears in the pop-up information.
  7. If you are running Windows NT2000 or XP, you can now display the comments associated with a data file (.smr) and script file (.s2s) in the details view.
  1. The maximum allowed width of user-defined dialogs has been increased.
  2. The y axis title and units of a result view channel now track changes between raster and non-raster drawing modes.
  3. The script DrawMode() command only causes a redraw if the drawing mode changes. Previously it always caused a redraw.
  4. In a result view, line drawing with many points per pixel could occasionally not draw a point.
  5. In a time view, waveform data draw as lines with many points per pixel could sometimes show a very narrow feature as 1 pixel wider than it should have been.
  6. Off-line waveform replay and on-line arbitrary waveform output now deal correctly with data files time bases that are not integral numbers of microseconds. This was an issue with imported data files.
  7. If you dragged a cursor over a screen area that was updating, the cursor did not always draw correctly.
  8. A 1401plus with a fast ADC samples up to 8 channels of WaveMark data, but on-line template matching worked for the first channel only. Now it works for all WaveMark channels.
  9. It was possible to crash Spike2 by printing a very large number in %f format. For example: PrintLog("%8.0f", 1e300);
  10. There was no error reported if you used SetResult() with the chans% argument and omitted the xU$ argument.
  11. Scrolling a waveform in Cubic Spline mode could cause imperfect data display.
  1. If you output a 2D array using Print(), PrintLog(), Print$() or Message(), the output now uses the first index as the rows and the second as the columns. This is to match changes in version 5 for matrix support in scripts.
  2. The File menu Print Screen command no longer uses the default printer font to set page titles. It now explicitly sets Courier New 10 point. We had a report of a printer using an unexpected font to render the title; this may fix that problem.
03/2003 4.15 New
  1. The New WaveMark dialog now remembers the displayed points and pre-trigger points.
  1. The Graphical Sequence Editor crashed if you reduced a section length and clicked on a pulse beyond the end of the frame.
  2. The New WaveMark dialog did not save its configuration if you closed it with the Done button.
  3. TextMark and keyboard marker logging during sampling now adjusts the marker times if a channel receives multiple markers at the same time. This could happen with TextMark data read from a high-speed serial line.
  4. In the Spike shape dialogs, the count of spikes added to templates no longer changes when templates are locked.
  5. Spike2 now has more chance of surviving when you try to open a damaged XY view.
  6. If you click on the x axis of an XY view, but do not drag, the axis does not redraw at a slightly different scale.
  7. Text lines copied from the Cursor Values or Cursor Regions dialogs no longer end in a Tab. This could clear an extra cell when pasting into a spreadsheet.
  8. Level event memory channels drawn as levels now redraw correctly when extra events are inserted or events are deleted.
  9. SetResult() did not set up the tick count for use with raster displays.
  10. RasterSet() could overwrite memory.
  11. ProcessAuto() did not use the last argument correctly. When processing to an XY view it ignored the leeway argument.
  12. You could crash Spike2 in the Process Settings dialog by clicking the New button when "No channel" was selected for analysis. This could only occur if the data file held no channels of the required type and at least one channel was selected.
  13. If there is no suitable channel to act as a trigger, the Process dialogs no longer offer "No channel" as a choice.
  14. Pasting multiple lines of clipboard text into Spike2 could cause a crash if the lines were terminated by LF rather than the Windows standard of CR LF.
  15. Recorded window positions did not match the WindowGetPos() script function.
  16. The centre line of events drawn in Line mode didn't always draw properly if the x axis was zoomed in to display a very short time range.
  17. You could crash Spike2 if you used the FilePrintVisible() script command on a text-based view with no selection.
  18. It was possible to crash the Process Settings dialogs by typing an illegal channel number, or by setting a zero bin width, then pressing the Enter key.
  19. It was sometimes not possible to delete the last event from a memory channel.
  1. The number of points and pre-trigger points set for a WaveMark channel in the sampling configuration are not modified by the New WaveMark or Edit WaveMark dialog.
  2. The New WaveMark dialog no longer opens in the running state. This is at the request of a user. If sufficient people object to this we can change it back!
  3. The default drawing mode for event data has been changed to lines. This is because dots can be hard to see on modern, high-resolution displays.
02/2003 4.14 New
  1. The File menu Open and Import dialogs remember the type of the last file you opened in the current session.
  2. The script functions RasterSort() and RasterSymbol() have been added and should be used in preference to RasterAux(). This is to match Spike2 version 5.
  3. The last two arguments of the ExportTextFormat() script function are now optional, to match Spike2 version 5.
  4. If you use the NextTime() or LastTime() script functions on a level event channel and no events are found, the optional val argument now returns the level at the start of the search.
  5. The file import system has been upgraded to save the date and time when recording started if the source file format supports this. If this information is not stored in the source file, the operating system file date and time are copied into the Spike2 file.
  6. The file import system can now cope with files that require a basic time unit that is not a multiple of microseconds.
  7. The file import system has been extended to support Neuralynx NTT, NCS, NEV, NSE and NST files.
  8. The file import system can read Igor files that use the packed record header format.
  1. In 4.12 and 4.13, Result view traces drawn as lines could be clipped in Print Screen.
  2. It was possible to crash Spike2 with the FiltCalc() command if it was applied to an unsuitable or undefined filter.
  3. When processing to an XY view, if you return to the XY settings dialog and change the Points field, the new value is used.
  4. The Cursor Value and Cursor Region dialogs now update correctly if a cursor for a column acting as a zero reference is deleted.
  5. When a script runs an idle function and the allow% value does not permit the user to use the cursor menu but does allow the user to use the View menu, the View Standard command does not delete any cursors.
  6. If a script uses FileClose() to close a modified XY or result view and the query% argument is not set to ?, the user will now always be queried. Previously, if the Edit menu preferences option to not query was set, the user was not asked regardless of the query% value.
  7. If you debugged a script and single stepped past a line that held only endif, the debugger also skipped the next statement. In fact, the statement was executed correctly, the stepping indicator was wrong. Now, the debugger skips the line holding endif (as it has no executable code).
  1. In Windows 2000 and XP, when FileOpen() and FileSaveAs() commands open a File dialog to let you choose a file name, they now honour the current directory. Previously, they tended to open whatever directory you last used from a file dialog in Spike2 (even from a previous session).
12/2002 4.13 New
  1. A message is displayed if the File menu Load Configuration command cannot read the selected file.
  2. XY views now save and restore axis, grid, drawing and cursor settings in the associated resource file.
  3. There are 4 new file import filters.
  1. In the graphical sequence editor, if you set a section to repeat 0 times (forever), and the section contained pulses with a changing amplitude, the amplitude did not change.
  2. The text sequence compiler accepted one argument too few for several commands. For example, NEG V1 was accepted when it should have caused a syntax error.
  3. The text sequence CHAN instruction did not accept channel numbers above 32.
  4. Online processing of Stimulus or Phase histograms in Automatic mode with All data selected only generated output for the first result view channel.
  5. Printing could run off the bottom of the page for text files with long lines containing tab characters that wrapped around.
  6. In version 4.12, when drawing result view data as lines, there could be gaps in the lines.
  7. If you scrolled a result view drawn as a histogram with error bars, the error bars did not always draw perfectly.
  8. Processing to an XY view no longer resets the join mode and channel symbol if you change the process settings.
  9. Processing to an XY view no longer clears the data when the settings dialog is used but the settings are not changed.
  10. If you calibrated a RealWave channel, and the calibration changed the scale of the data but not the offset, no calibration was applied.
  11. Cursors in metafiles created by Spike2 should now print in the correct colour when the metafile is read by another program. The cursors would usually display correctly but often printed in white.
  12. The XY view key is now correctly sized when the view is saved or copied as a metafile.
  13. When processing to an XY view, if you set the active cursor mode for cursor 0 to Expression and set the expression to Cursor(0), only 1 value is added to the XY view when you process data. Previously, the same value was added twice.
  14. The horizontal cursors in the Spike shape dialogs now work correctly when the channel has a negative scale factor.
  15. Documentation error. If you omit the text sequencer SET directive, the sequencer step interval is 10 milliseconds, not 1 millisecond as listed in the manual.
  16. The file importer now reads *.ACQ files created by AcqKnowledge versions before 3.5.x.
  17. The file importer can now read *.WDQ files with multiple data blocks.
  18. The improvements to on-line triggered processing in version 4.11 allowed on-line triggered-mode PSTH processing to accept sweep triggers that fell within the previous sweep.
  19. You can edit the Keyboard channel rate in the Sampling Configuration dialog.
  20. There was a resource leak when you displayed a result view with SEM or SD data displayed.
  1. The signal conditioner log file (CEDCOND.LOG), which is enabled in the Edit menu Preferences option, is now written to the folder that contains the Spike2 application. Previously it was written to the current folder.
  2. We release more time to the system when a script is waiting for the user to press a button in response to an Interact() command or a Toolbar() command with no idle routine.
10/2002 4.12 New
  1. In a result view, the drawing method for Standard Deviation andStandard Error of the Mean (SD and SEM) now matches the display mode. Previously, errors were always drawn as lines.
  1. In the Spike shape dialogs, if you used the Copy command with no templates, it was possible to crash Spike2.
  2. In the template settings dialog, the Waveform interpolation method was not saved.
  3. If you closed the New WaveMark or Edit WaveMark dialogs by clicking the X at the upper right corner, changes made to the current channel were not saved.
  4. In the New WaveMark dialog, clicking on the x axis of the raw data display could cause a spurious scale change.
  5. The Cursor Regions dialog could display incorrect values if the Zero region box was checked and the cursors were out of order.
  6. The Cursor dialogs added data for cursor 0 when it was made visible, but did not remove it when cursor 0 was hidden.
  7. The y axis Optimise command in a result view could set the display scaling based on more bins than were visible.
  8. The y axis Optimise command on a result view could set an incorrect y axis range if the data was drawn as a histogram with SD or SEM data.
  9. Scrolling a result view drawn in line mode by 1 pixel, for example with a mouse wheel, could cause drawing glitches.
  10. The Measurements dialog User check positions option is now ignored while the data file is sampled, as documented. If you used this option on-line it was possible to crash Spike2.
  11. Using SampleSeqVar() to read a sequence variable no longer causes a delay if the output sequencer is not in use.
  1. When cursor labels include a position, the position now adopts the format of the associated axis and is displayed with 2 more decimal places than the axis uses.
  2. The number of significant digits displayed in the cursor dialogs has been increased from 6 to 8.
10/2002 4.11 New
  1. In the Spike shape dialogs, if you use the time range button and click OK or type Ctrl+A, the current position moves to the first spike in the time range.
  2. Result view SEM and SD line colour can now be set as a secondary channel colour.
  1. If you used ChanWriteWave() to overwrite data after sampling, but before you saved the file, the new data was written to disk but might not be displayed.
  2. In the Spike shape dialogs, changing channel no longer turns off circular replay.
  3. In the New WaveMark dialog, running in non-circular mode no longer searches the entire file without returning a background trace. If you had a large file and trigger levels set outside any data the search could take a long time.
  4. In the New WaveMark dialog, the "Real time" speed setting now works when the trigger levels are set outside any data.
  5. In the New WaveMark dialog, when you drag a spike from the waveform display area and drop it in the template area, you now always drop the last event that triggered. Previously it was possible to drop the background trace.
  6. Processing data to an XY view now stops if cursor 0 attempts to move before the start or past the end of the file. Processing also stops if cursor 0 active mode is set to Expression and the expression does not move cursor 0.
  7. In the Measure to XY setup dialog, if the Cursor 0 method was Expression, the Expression field was not always set to the correct value.
  8. If you change the scale or offset of a waveform channel that has a duplicate with a channel process applied that modifies the scale or offset (for example DC remove), the y axis of the duplicate is now modified correctly.
  9. If a waveform channel had an attached channel process with a time parameter (for example DC remove) and data was fetched closer than the time parameter to the start of the file, fewer points than requested were read. This could cause unpainted screen areas.
  10. On-line Power spectral processing was always starting from the beginning of the sampled data. It now works incrementally through the data.
  11. The EDF data file importer read waveform values correctly. However it set the y axis limits so that smaller values were at the top and larger at the bottom.
  12. In the on-line Process dialog in Triggered mode, the state of the "Clear result view before process" was not remembered.
  13. If you reset sampling with result views that are generated by on-line processing with the "Clear result view before process" checkbox unchecked, these result views are now cleared.
  14. An on-line process with the Automatic/Triggered/Manual fields set to Triggered now responds better to trigger events that are closer together than the Trigger sweep length.
  15. You could crash the script editor by typing Message("I haven't done ...") then adding a backslash before the single quote to make "haven\'t".
  16. In version 4.10, the MemSetItem() command gave a fatal error if argument 5 was the wrong type. This is contrary to the documentation and could break existing scripts. We have restored the old behaviour, which was to ignore such arguments.
  17. The IGOR file importer could crash if you imported a waveform that had the maximum and minimum values set.
  18. You can save memory buffers holding event-derived data as different event types. For example, you can save Marker data as Event data. This ability was lost in 4.10.
  19. If a script deleted a data channel, re-used the channel to store new data and then read the new data, it was possible to read data from the deleted channel. The exact sequence of operations to produce this error was only likely to occur in a script that tested correct operation of Spike2 (which is how we detected the problem).
  1. We have limited the text editor tab sizes to the range 1 to 20. Previously you could type in values (such as 0) that could crash Spike2.
08/2002 4.10 New
  1. If you try to reclassify Spikes in a file that is write-protected an explanatory message now appears. This happens a lot because such files are often stored on CD-ROM; when CD-ROM files are copied to a hard disk they are marked write-protected.
  2. The warning about dual use of the digital inputs as a digital marker channel and by the output sequencer is now suppressed if the 1401 firmware has been upgraded to fix the problem. Firmware upgrades are being tested for both the Micro1401 mk II and the Power1401 now; they will be placed on our web site in due course.
  3. The version 4.08 change to fix online sonogram displays made all on-line screen scrolling slower. There is a new Edit menu preferences option: Use fast online auto-scroll display update (may not draw all data). If you set this option, the fix is removed. We have also made the online scrolling a little faster, even if you do not set this option.
  4. Script and display support added for WaveMark data with multiple traces per spike (for stereotrode and tetrode data). You cannot sample this data type with Spike2 version 4. Script commands changed include: ChanNew(), MemChan(), MemGetItem(), MemSetItem(), MarkEdit(), NextTime() and LastTime(). All changes are backwards compatible.
  1. Duplicating a time window or a channel no longer clears the channel processing settings.
  2. The 1401 USB device drivers have changed to fix a bug that was introduced in the 1.94 drivers that could cause commands to the output sequencer to be ignored. The 1.94 drivers were included with Spike2 version 4.09. This was also fixed in the 4.09a release.
  3. If you used PlayWaveCopy() after SampleStart(), but before sampling had begun, this could cause sampling to fail. The command now returns a negative error code if you do this.
  4. If the Cursor 0 stepping mode was set to Expression, and the expression included Cursor(0), measurements made to an XY view did not start from the correct time.
  5. The spike shape dialogs that use horizontal cursors to set trigger levels can now cope with input channels that have non-zero offset values in the channel scaling.
  6. Corrected import of ACQ files containing waveform channels with different sample rates.
  7. We have fixed a problem that could stop spikes matching templates during sampling. Spikes continued to be sampled correctly, but they all had code 00. The Online update button in the Edit WaveMark dialog would restore the templates, but they would be likely to stop matching again.
  1. Printing time or result views over multiple pages no longer always shows channel numbers on all pages. They now display on the first page if they are turned on in the original window. This allows "strip chart" type output to dot matrix printers in landscape mode.
  2. The x axis dialog box now changes the default button (the one that is activated by the Enter key) from Draw to Close if the Draw button is used. This means that if you make a change to a field, then hit Enter twice, the first Enter applies the change and the second one closes the dialog. This is in the nature of an experiment. We are open to suggestions if you have a better idea.
  3. This release uses a new version of the SON library. As usual, it is backwards compatible with previous versions. Select "Additional documentation" in Custom install to extract a PDF of the updated documentation to the ExtraDoc folder.
  4. The definition of on-line and off-line templates has changed. On-line templates are those that have been copied to the 1401 during sampling. Off-line templates are the templates displayed in the template windows.
07/2002 4.09 New
  1. Script users can now hide the "gutter" area of text-based views with the Gutter()command.
  2. The /M command line option allows multiple copies of Spike2 on one computer.
  3. The sampling configuration now allows you to set up to 32 WaveMark channels and use ADC ports from 0 to 63. However, only a Power1401 allows you to sample with 32 WaveMark channels and the number of ADC ports is checked when you sample.
  1. The output sequence commands DIBNE, DIBEQ, DISBNE and DISBEQ did not accept a variable in place of the first argument.
  2. Script syntax colouring now works correctly for: a$ := "C:\folder\"; 'comment.
  3. ChanValue(), Count(), FitLine() and MinMax() script commands no longer ignore the chan% argument in result views.
  4. The start of the graphical editor Comment field had a spurious numeric field on top of it. If you clicked at the left of this field, you could only enter numbers.
  5. If you set circular update in the on-line Edit WaveMark dialog, then set "at End" mode, the window would show the first spike on the channel when there were no new spikes to display.
  6. During on-line sampling, with new data automatically scrolling onto the screen, it was possible for WaveMark data items to be recorded but not displayed. Missing data would reappear when you refreshed the display.
  7. If a script deleted an XY channel while the XY draw mode dialog was active, you could crash Spike2 by applying a change with the dialog.
  8. You can now use the ChanList() script command types% argument in a result view to filter duplicated channels.
  9. If you sampled with a duplicated time window and saved the sampling configuration, information about duplicated channels, channel processing and the positions of sampling control windows was omitted from the s2c file.
06/2002 4.08 New
  1. You can now print templates from the Analysis menu Edit WaveMark window.
  2. You can copy templates to the clipboard either as text or as an Enhanced Metafile image.
  3. You can select circular replay when forming templates in the Edit WaveMark and Create WaveMark dialogs.
  4. You can now open the Marker Filter dialog from the Edit WaveMark dialog
  5. If the marker Filter dialog is open, changing channel in the Edit WaveMark and New WaveMark dialogs now changes the channel in the marker filter dialog to match.
  6. A new button in the Edit WaveMark dialog creates a duplicate channel for each template code.
  7. You can adjust the width of a templates in the Edit WaveMark and New WaveMark dialogs.
  8. In many dialogs where you must select a channel, we have made the channel you are offered by default more likely to be the one you would want.
  9. Duplicated channels can now be given their own titles.
  10. There is a new Analysis menu option to set the marker codes of marker, WaveMark, TextMark and RealMark channels. The new script command, MarkSet(), does the same.
  11. The menus that open when you right click in a data window are more compact and have more options.
  12. The Start button in the sampling control panel flashes when Spike2 is waiting to start sampling.
  13. When you click the Start button in the sampling control panel, the keyboard focus now moves to the sampling window. Previously it remained in the sampling control panel, which could cause unintended actions if the spacebar or Enter key was pressed next.
  14. If you open a new data file, ready to sample, with the x axis in time of day mode, the x axis now updates with the current time of day until sampling begins.
  15. You can access the Spike2 area in the registry with the new Profile() script command. This is an easy way to preserve data and it allows script access to the Preference settings.
  16. There is a new FileCopy() script command to copy external files.
  17. The new ScriptRun() script command lets you set a script to run after the current script ends.
  18. The Memory buffer Create dialog has a button that creates a channel and opens the Import dialog.
  19. The Memory buffer Delete items dialog now gives you a choice of delete modes.
  20. There is a new file importer to convert text files that contain columns of data.
  21. The ProcessAuto() script command has a new argument, leeway, for use with XY views.
  22. If you sample the digital marker channel and use an output sequence that holds the DIGIN, WAIT, DIBEQ or DIBNE instructions, you are warned that this could cause digital markers to be missed during sampling. You can disable the warning for the remainder of the sampling session.
  23. Mouse wheel support has been added to Time, Result and XY views. The Shift and Ctrl keys change the scroll amount. The mouse control panel sets the number of lines that a mouse wheel click scrolls a text view (if your system supports this option).
  24. You have more control over the mapping of ADC channels to Axon CyberAmp channels .
  1. You can scroll XY views using the standard keyboard commands (left and right arrow keys etc.).
  2. Print Preview now has the correct mouse pointer.
  3. Various time range dialogs, for example in the spike shape dialogs, had the wrong title.
  4. ChanDuplicate() in a result view made the new channel visible; it is now invisible, as documented.
  5. The size of buttons in the Spike shape dialogs is now governed by the size of the dialog font. Previously it was controlled by the scroll bar height.
  6. You can now click and drag the x axis when the thumb is at the end of the data unless you are sampling or rerunning. In version 4.07 you could never drag the axis if the thumb was at the right hand end of the x axis.
  7. Previously, if you renamed a Spike2 resource file (*.s2r) or configuration file (*.s2c), Spike2 would often refuse to load it. This was by design to prevent the use of unrelated resource files. This now seems an unnecessary restriction and it was not applied consistently in any case. There is now no restriction on renaming such files.
  8. The System$() command now knows about more version of Windows, including XP. The values returned by System() are now documented.
  9. ProcessTriggered() and ProcessAuto() can now be used in XY views as well as result views.
  10. The MemDeleteTime() command mode% argument now adds 4 to ignore any marker filter (previously the documentation said to add 4 to use any marker filter). This change will not affect any existing scripts because previously the marker filter was always used and the command gave an error if mode% was not 0 to 3.
  11. The Memory buffer Delete items dialog ignored any marker filter set for a channel. This meant that you could delete items that were not displayed on screen.
  12. Active cursor searches used during sampling, could occasionally miss a feature.
  13. Minimised dialogs are now restored if you select them from a menu.
  14. If your use of active cursors made a cursor invalid because a search failed, any use of this cursor in a dialog was treated as an invalid position. Now, invalid cursors only affect the active cursor searches and measurements made when processing data into an XY plot.
  15. Saving a RealWave memory channel as a waveform channel could crash Spike2 if RealWave data values exceeded the full range of the waveform channel.
  1. We have removed the Template time range and Template parameters items from the Sample menu.
  2. The initial estimate of template width now smoothes the data so that artefacts that are a small fraction of the template width don't cause very wide templates that then grab all the spikes. This will tend to reduce the initial template width. The smoothing is a moving average over 1/8th of the number of points in the template. The smoothing width could be made a parameter if it seems worthwhile.
  3. You no longer need to hold down the Ctrl key to drag axes in the Spike shape dialogs.
  4. ChanDuplicate() in a time view now copies the source channel settings.
  5. ChanTitle$() behaviour with duplicated channels has changed. The original channel title is no longer changed.
  6. The standard line width for axes and data (set in the Edit menu Preferences) is now 0.5 point, not Hairline. If you have never set the line width, your printed output will now have thicker lines.
  7. The number of items in the Most Recently Used file list has been increased from 4 to 10.
  8. The Tip of the Day is suppressed if Spike2 is started with command line arguments.
  9. If you move a cursor that has previously been marked as invalid, it becomes valid.
04/2002 4.07 New
  1. You can now read serial line data directly into a TextMark channel during sampling and optionally set the marker code. The SampleTextMark() command has additional optional arguments.
  2. The SerialRead() and SerialWrite() commands can now handle binary data, including character 0.
  3. The new Yield() script function generates a delay during which time the system can idle and update the screen.
  4. You can now use a mouse wheel to scroll text windows in Windows 98, Me, NT 4, NT2000 and. XP.
  1. In 4.06 (only) in some circumstances the x axis range could revert to a previous range if you resized the window.
  2. You can no longer click on the x axis and drag it when a time view is auto-scrolling during sampling or during a Rerun command.
  3. Using Ctrl+Shift+L with a selected event channel to jump to the previous event could refuse to jump if multiple events fell in the same screen pixel.
  4. It was possible for the digital filter dialog to display the wrong data after opening and closing the dialog repeatedly.
  5. The BurstRevise() script command could hang up when working on a data range that extended to the last event in the channel.
  6. Cursor() is no longer accepted as valid in a dialog expression; you must supply a cursor number, for example Cursor(1).
  7. If you edited a data file created by an older version of Spike2, then deleted the changes, it was possible to leave the file in a state where the older version could not read it. The SON library now always sets the file back to the oldest possible format that is compatible with the data.
  8. Using FileConvert$("") no longer crashes Spike2
  9. In 4.06 in the New WaveMark dialog, if you selected 4 horizontal cursors the original 2 cursors disappeared.
03/2002 4.06 New
  1. If you move the mouse pointer over a TextMark item, the text associated with the item "pops up".
  2. TextMark items with a first marker code that is not 00 are now coloured using the same colour map as WaveMark data.
  3. On-line template matching in the 1401 is no longer temporarily suspended due to short time delays in the host computer. Previously, at very high spike rates, it was possible to get gaps in template matching if you dragged a desktop window.
  4. You can now change the y axis title of an XY view with the ChanTitle$() script command.
  5. If sampling would overwrite an unsaved temporary data file from a previous sampling session you are now given the opportunity to save the old file.
  6. If you have changed your system colours away from the "classic" Windows colours, buttons with images now change their background colour to match.
  7. The File menu Import option now imports floating-point waveforms as RealWave data to preserve accuracy.
  8. The File menu Import option now supports Dataquest A.R.T. format files from Data Sciences International.
  9. The maximum number of buttons in the ToolbarSet() script command has been increased to 40.
  1. Cursor drawing has been revised to remove problems that could leave cursor images behind.
  2. The x axis scroll bar is now set to the correct position when you click the Stop button in the View menu Rerun dialog.
  3. The spike shape template dialog no longer allows the trigger levels to cross the zero line.
  4. If you sampled WaveMark data with no spike templates set, changes made in the template setup dialog were ignored.
  5. In Spike2 versions 4.04 and 4.05, if you have a Power1401 or Micro1401 mk II and used a sampling rate for WaveMark data for which the sampling interval was not an integral number of microseconds, the template setup dialog created templates with a sampling interval of an integral number of microseconds. Data was sampled correctly, but the initial templates were stretched in time.
  6. If you enable automatic file naming in the Sampling configuration dialog, you can now sample a series of files without closing or saving them.
  7. The Sample Bar no longer causes a crash if it includes sampling configurations that contain arbitrary waveforms or output sequences created with the graphical editor.
  8. In the graphical output sequencer, a section set to repeat a fixed number of times now repeats at the expected rate. Previously it was 2 sequencer clock ticks too short.
  9. When you open a file, channel processing options for duplicated channels are now restored.
  10. If you use a Power1401 or Micro1401 mk II with a PCI or ISA interface card and have a fast host computer, it is possible to hang up Spike2 in the on-line Edit WaveMark dialog. This is fixed by a new release of the Power1401 (revision 22) and Micro1401 (revision 3) monitor code. You can check your monitor version in the Help menu About Spike2 dialog.
  11. The EDF (European Data Format) file importer no longer truncates files with a very long time base. It now works for files with frames less than 1 second in length.
  12. The sinusoidal output option of the graphical sequence editor no longer forces the sine wave cycle length to be an integer multiple of the sequence step time.
  13. If you added single points to an XY view in auto-expand mode, the axis limits were set 0.5 beyond the extreme data points.
  14. There were problems in MarkEdit() script command when changing TextMark text or RealMark data values.
  15. The Optimise() script command could set too wide a y axis range in some cases.
  16. The MinMax() command on a RealMark channel drawn as a waveform could search outside the specified time range.
  17. If you imported a TextMark channel from a file format that used less than 4 marker codes per TextMark, the last two marker codes were not set to zero.
  18. Off-line replay of very slow waveforms through the 1401 no longer causes Spike2 to stop responding.
  1. The results of expressions, for example 3/2+1, in text-based output sequences are now rounded to the nearest integer; previously they were truncated. This gives results that are as accurate as possible, however it may cause text sequences to give slightly different results.
02/2002 4.05 New
  1. The off-line TextMark dialog now shows all TextMark entries as a list. You can jump to a marker in the file by selecting it in the list. You can copy the TextMark data to the clipboard in either printer or spreadsheet format.
  2. You can open the TextMark dialog by a right click on a TextMark channel.
  3. The auxiliary channel value for raster sorting in the Stimulus histogram, Event correlation and Phase histograms can now be the first event before the stimulus time as well as the first event after the stimulus time.
  4. The File menu Page Setup dialog that prepares text views for printing now includes fields to set printer margins.
  5. The file import system can now import *.nev and *.rnd files from Bionic Technologies.
  1. It was possible to get a "Sampling timed out" message when you used a script to start sampling with SampleStart() immediately followed by a script command that used sampled data.
  2. In 4.04 the on-line Edit WaveMark dialog was not seeing any spikes.
  3. RealMark and event channels drawn in line mode did not always respond to per-channel colour settings.
  4. XY view x axis units were being reset to "s".
  5. If a down-sampled wave channel was duplicated, the duplicate appeared to have an incorrect sample rate.
  6. The View menu Rerun dialog was grabbing the input focus during rerun with active cursors. This made it very difficult to use other menu items.
  7. The Cursor Regions and Cursor Values windows now update in all cases when cursor 0 moves.
  8. You can now turn off the high pass filter in the New WaveMark dialog.
  9. Printed symbols in result view raster displays were very small; they now scale correctly.
  1. When you set a y axis range, for example -5 to 5, both limits now appear on the axis.
  2. In the Active Cursor searches, the word "inflection" has been changed to "turning point". There is no change to the functionality; we had used the wrong mathematical term!
01/2002 4.04 New
  1. You can design output sequences using a graphical editor.
  2. With the new Channel processing options you can smooth, rectify, AC couple and down-sample waveform and RealWave channels without changing the data on disk.
  3. The maximum number of memory channels has been increased to 100.
  4. New ChanWriteWave() and ChanNew() script commands allow you to add new wave channels to a data file and write (and overwrite) wave data in the file.
  5. The Calibrate dialog and ChanCalibrate() script command now work for RealWave data in addition to waveform and WaveMark. When used with RealWave data, the entire channel is rewritten.
  6. App(-3) now returns the program serial number.
  7. The output sequencer allows sTick(expr), msTick(expr) and usTick(expr) in expressions. These convert a time in seconds, milliseconds or microseconds into Spike2 clock ticks as used by the sampling system and as returned by the TICKS instruction.
  8. The Stimulus, Event and Phase histograms can measure auxiliary values from an event or waveform channel. You can reject sweeps if the measured value is outside a range. If raster data is enabled you can sort the sweeps in the raster based on this value. There are matching extensions to the SetPSTH(), SetEvtCrl() and SetPhase() script commands.
  9. You can sort raster displays and display additional sweep markers with the RasterAux() script function.
  10. Owners of Power1401 and Micro1401 mk II can set timing units in multiple of 0.1 microseconds rather that units of 1 microsecond. This allows waveform sampling rates that take full advantage of the speed of the ADC converters. Files written with non-integral microseconds per time unit are not compatible with old versions of Spike2.
  11. You can now open Spike2 data files with non-integral microsecond time units.
  12. DupChan() script function returns information about duplicates of a channel.
  13. The time and date at which sampling starts has been written to data files since version 4.02. You can now see this time and date in the View menu File Information dialog and script writers can read them with the new FileDate$(), FileTime$() and FileTimeDate() functions.
  14. The View menu Rerun command now lets you specify a time range and a time scaling factor. The script Rerun() command has been extended to match.
  15. You can set colours by channel to override the colours for drawing modes. This is particularly useful with waveform channels, especially when they share a y axis. The Colour dialog shows additional pages depending on the current window. There is a new ChanColour() script command to support this.
  16. You can now request a time axis in seconds, hh:mm:ss, and as time of day from the x axis dialog. This is supported from a script by the XAxis() command.
  17. You can set scale bars rather than axes from the Show/Hide dialog for both the x and y axes in time and result views.18. You can now set the spacing and number of subdivisions between big ticks on both x and y axes for time and result views. There are new script commands XAxisStyle() and YAxisStyle().
  18. The file import system has been extended to support CODAS files (*.wdq). It also will now read IGOR binary files that contain a single wave with a header. The BIOPAC importer (*.acq) now recognises AcqKnowledge 3.7.x data files.
  19. There are new short-cut keys in data views. Ctrl+A selects all channels unless they are already all selected, in which case it unselects all channels. Ctrl+Q optimises the y axes of all selected channels. If there are no selected channels, it optimises all channels.
  1. Active cursor searches running backwards that use level crossings now work.
  2. The calibrate dialog now calibrates all selected channels. Previously it calibrated only the first channel in the list.
  3. The on-line Edit WaveMark dialog now works correctly if you Reset sampling with the dialog open.
  4. The ProgStatus() command now exists. Previously it was present, but had been named ProgState() by mistake.
  5. If you used the arbitrary waveform output with a Micro1401 mk II or a Power1401 as part of an output sequence, sometimes the DAC outputs would stick at the last arbitrary value and could not be changed by sequence instructions.
  6. CursorVisible(-1,x) now selects all cursors. Previously it did nothing.
  7. Optimise for WaveMark channels drawn in rate and Mean frequency modes now works.
  8. The on-line real-time template matching in the 1401 is now skipped if the spike rate becomes so high that the 1401 cannot keep up. Previously the 1401 would attempt to match all spikes, leading to sampling stopping with buffer overflow messages.
  9. The spike shape dialogs now let you delete all on-line templates.
  10. Duplicate channels can now be deleted on-line from a right mouse click on the channel.
  11. It is no longer possible to crash Spike2 by duplicating a time view with an open dialog, then deleting the original window and using the dialog.
  12. After sampling or rerunning a data file where the data does not reach the end of the visible time axis, the data is now redrawn. Previously the time axis could be drawn incorrectly.
  13. It was possible for the 1401plus to refuse to load sampling commands if spike shapes, the output sequencer and arbitrary waveform output were all used.
  14. The number of "FF" markers added to the keyboard channel to show that sampling is overloaded has been restricted to a few per second.
  15. BurstRevise() was occasionally causing problems on some systems.
  16. The on-line triggered display only triggered occasionally if write to disk was off when sampling started.
  17. View menu Standard display command in XY windows no longer leaves a gap below x axis.
  18. Keys attached to toolbar buttons by a script are disabled when a dialog is active. Where possible, the toolbar is greyed out when a modal dialog is active.
  1. If you use MemChan() to create a WaveMark channel, you must supply the pre% argument.
  2. The code for ProgRun(), ProgStatus() and ProgKill() has been updated to release handles to external applications when Spike2 closes or when the status call reports that the application is no longer running.
  3. The Spike shape template dialogs no longer list channels with less that 6 data points per event; a minimum of 6 points is needed to form templates.
  4. Following requests from several users, error bars in result views are now drawn as lines.
  5. Sequencer variable changes made with SampleSeqVar() after FileNew() but before SampleStart() now take effect from the very start of sampling. Previously they took effect after sampling started.
10/2001 4.03 New
  1. You can now create data files with up to 100 channels. You can sample with as many data channels as your hardware can cope with. For example, a Power1401 with 32 waveform inputs could sample 32 analogue channels as waveforms, 16 channels as WaveMark, 8 channels as events, a digital marker channel plus a keyboard marker and a text marker channel. Files with more than 32 channels cannot be read by versions of Spike2 before 4.02.
  2. The FileNew() script command can create files with more than 32 channels.
  3. The Sampling Configuration dialog is now larger and has a new button to set the maximum channels in the file. The new SampleChannels() command does the same for script users.
  4. There is a new waveform channel type, RealWave. This data is stored as 32-bit floating point in user units. In version 4.03, RealWave channels can be created as memory channels. They have the benefit that they can hold a very wide range of values, but they occupy double the memory and disk space of the equivalent waveform channel. You cannot sample data in this format, but we plan to use it to store the results of cross-channel calculations. You cannot calibrate or digitally filter RealWave data yet, but all other waveform features work.
  5. If sampling ends unexpectedly, for example due to power loss, you are prompted to save the data the next time you run Spike2. You always could do this, but many users did not know where to look for the temporary files that held the sampled data.
  6. There is now a limit to the size of a Spike2 data file of 2 GB. In previous versions of the library, if you wrote past this size you would make the file unusable (and difficult to recover).
  7. The File Export dialog has a new control to set the number of channels in a created data file and you can now export memory channels to free channels in the output file. FileSaveAs() has been modified for script users.
  8. The File Export dialog has a new check box to force RealWave channels to be written as waveform channels for backwards compatibility with previous versions of Spike2. ExportChanList() has been modified to support this.
  9. You can now obtain much slower waveform sampling rates than in previous versions of Spike2: previously the ratio of fastest to slowest channel sample rate was about 30,000. It can now be as high as 2,000,000,000. Files that use this feature cannot be read by old versions of Spike2. You can disable this by setting version 3 compatibility in the Resolution tab of the Sampling configuration.
  10. The Sampling menu has a new option to Clear the sampling configuration. This kills off all duplicate time windows and result view windows associated with sampling and clears any memory of sampling windows positions, drawing modes, spike templates and x axis view triggering.
  11. To see if there is more recent firmware available for your 1401, use the Help menu About Spike2 command with your 1401 connected and powered and check for warning messages. Most firmware updates are not essential. However, if your 1401 requires a firmware update to sample properly a dialog box will open to warn you each time you run Spike2.
  12. The sample frequency of channels created with the MemChan() and EventToWaveform() script commands can be set to a higher precision.
  13. DlgChan() now supports RealWave channels and allows "Visible" and "Selected" as options in result views.
  14. The Type of 1401 field in the Resolution tab of the Sampling Configuration allows you to optimise for more 1401 types. SampleOptimise() is extended to match.
  15. Waveform power spectrum and cross-correlation analysis are significantly faster.
  16. Waveform power spectrum now allows transform sizes up to 16384 points.
  17. The ToolbarSet() and Interact() script commands now support keyboard commands. Buttons can be linked to specific keys with & in the button title or you can specify other key codes, for example function keys. You can now specify a toolbar Escape key as previously documented but not implemented.
  18. The time view channel information dialog now displays the range of waveform channels and has a new Rescale button to optimise the scale and offset values of RealWave channels.
  19. There are new import filters for European Data Format (.edf) and BIOPAC (.acq) files.
  20. The documentation for the SON filing system (as used by Spike2) is included as a PDF file. Select "Additional documentation" in Custom install to extract it to the ExtraDoc folder. There is also a TechNote.pdf file with more information on the FFT and waveform correlations.
  21. There is a new Help menu option that runs a Getting started tutorial script to familiarise new users with basic Spike2 features.
  1. The Play offline dialog now has Sound as an option on the first output button only. Previously you could select a DAC on the first button and Sound on the second.
  2. The Play offline dialog Stop button is now always enabled when playing. Moving cursors during data output no longer changes the start time field to Cursor(0).
  3. Power spectrum result views linked to sampling windows are now remembered correctly in the sampling configuration.
  4. In version 4.02, it was possible to set a combination of waveform channels that the 1401 could not sample (this usually needed more than 28 waveform channels). The symptoms were all channels displayed data from channel 0 and sampling could time out. This effect is removed for all except a 1401plus with an old analogue card, and you are no longer allowed to sample with an impossible configuration.
  5. A cursor 0 search that finds a feature at time 0.0 is no longer treated as a failed search. This was fixed in 4.02a.
  6. It is no longer possible to crash Spike2 by redefining a field with a different data type in a dialog created with DlgCreate().
  7. MarkMask(chan%,1) now sets the filter mode when the filter is set to accept all codes. Previously, it had no effect. However, setting mode 1 and accepting all codes is inefficient as every item is filtered, even though the end effect is to accept all items.
  8. SampleWaveform() did not let you set a channel as waveform if it was already set as WaveMark.
  9. Script commands SampleEvent(), SampleWavemark(), SampleTitle$(), SampleComment$(), SampleWaveform(), SampleCalibrate() did not allow channel numbers greater than 16 or waveform ports above 15. Spike2 now allows waveform ports up to 31 and channels up to the number set for the file by SampleChannels().
  10. The Points active cursor search mode now skips gaps in waveform and RealWave data. This was fixed in version 4.02a.
  11. Spike2 version 4.02 changed the date and time of data files to the current date and time. This no longer happens unless the file has been changed.
  12. You can no longer hang up Spike2 by exporting a data file with event channels with the "time zero shift" option and large zero shifts.
  13. The waveform correlation with the remove DC option now deals correctly with waveform data with a non-zero offset. Previously it assumed that the offset was zero when remove DC was selected. See the Changes section, below.
  14. Power spectrum analysis now deals correctly with a waveform channel with a non-zero offset. Previously the value returned for the DC component did not allow for the offset in the data. Sampled data normally has a zero offset.
  15. Process and Process Settings dialogs now close when the result view closes.
  16. Cursor 0 now moves to the time view trigger position when enabled in the View Trigger dialog.
  17. You cannot open the Trend Plot creation dialog unless the current view is a time view or an XY view attached to a time view.
  18. It is no longer possible to crash Spike2 by using the Process Settings dialog to change the number of channels in a result view.
  19. If you select Black and White displays and use Print Screen, the view titles print as black text on a white background, not as black text on a black background.
  20. The Optimise() script command now works on a channel drawn in WaveMark Overdraw mode.
  21. The output sequencer Format buttons don't report spurious errors when you edit the name of a variable.
  22. The documentation for the output sequencer TICKS command now describes the optional expr argument.
  1. In a dialog created with DlgCreate(), the default width of the edit field for integer data has been increased to match the field width for a real number.
  2. The Waveform cross-correlation time axis now runs in the opposite direction from all previous versions; this is to make multi-channel correlations make sense. If you previously correlated single channels, swap the channels over to restore the old direction. If you used version 4.00 through 4.02 scripts for correlations of multiple channels, you will need to modify your script.
  3. The correlation has been recoded to match the results of correlations performed using FFT methods. The difference is small when the number of bins in the result is small compared to the number of data points in the correlation. The changes are described in more detail in ExtraDoc\TechNote.pdf; select Custom Install and then "Additional documentation" to extract this documentation from the installation disk. There is a new example, FFTCrl.s2s, in the Scripts folder that demonstrates how to perform waveform correlations using the ArrFFT() command.
07/2001 4.02 New
  1. The import filters now support WAV files. For example, you can convert files created with the Windows Sound Recorder.
  2. The output sequencer window now looks up the text under the caret when you press F1 for Help.
  3. The Channel information window includes the channel number of duplicated channels.
  4. You can now share read-only access to Spike2 data files. If multiple users attempt to open the same data file, the first user gets full read-write access and subsequent users get read-only access.
  5. Duplicated time views now inherit channel selection, order, size and grouping from the original view.
  6. Modeless dialogs (dialogs that allow you to perform actions outside the dialog) now all remember their screen positions.
  7. The XY Draw mode dialog is now modeless.
  8. The Draw mode dialog now accepts a channel list and display the channel settings of the first channel in the list. To copy drawing settings from one channel to others, type the channels as a list with the source channel first and click OK.
  9. The Export as Spike2 data file dialog has a new option to time shift the exported data so that the first exported time range appears at time 0 in the new file. ExportChanList() has been extended to support this new feature.
  10. Edit Preferences has a new option for metafile output that stops waveform output being compressed to vertical lines when there are more than 3 data points per logical output pixel. You can now set the output rectangle to be up to 16,000 logical pixels wide.
  11. Waveform correlation setup warns you if channels do not have matching rates.
  12. We think we have trapped all the places that gave error messages as numbers; we now display them as explanatory text.
  13. The Process dialogs now all remember their last position and have new buttons to apply settings without closing the dialogs.
  1. The SampleSeqVar() script command did not allow you to access variables above number 16. Now you can read and set all 64 variables.
  2. The HCursor() script command now works correctly if you set both position and channel.
  3. HCursorNew() and HCursor() now work with multi-channel result views.
  4. CursorSearch() will now accept ? as an argument.
  5. Read() and ReadStr() no longer interpret a number that starts with 0 as octal. Now only hexadecimal (0x at the start) and decimal are accepted. 010 is now read as ten and not as eight.
  6. The Channel Information dialog now displays Scale and Offset. It does not refer to Volts as this made assumptions about the source of the data and was very confusing if you had a ?0 Volt input 1401.
  7. When you read a sampling configuration from a data file, the sampling configuration matches the actual sample rates, not the "ideal" rates that the user originally asked for when the data file was created. This is an issue because Spike2 version 4 has better methods for optimising rates than previous versions.
  8. Raster drawing in a result view now works with inverted y axes.
  9. Send Mail now works for a Spike2 data file (but not for one that is sampling).
  10. The SetXXXX() family (for example SetAverage()) and MeasureToXY() script commands now work with a result or XY view current. They use the parent time view as the source.
  11. The DlgChan() script function now works correctly for result views.
  12. Spike shape templates are now copied correctly for sampling when there is more than one Spike shape channel.
  13. The memory buffer import of waveform data to event channels using peak and trough mode no longer generates spurious peak and trough positions if you set the amplitude to detect a peak or trough to more than half the full range possible for the underlying 16-bit waveform data.
  14. Horizontal cursors now behave correctly when moving to or from a hidden channel.
  15. You can now set the Time units per ADC convert in the sampling configuration to more than 32767 without the 1401 refusing to sample.
  16. The FileConvert$() script command return value is now as documented. Previously it was always an empty string.
  17. The output sequencer now really does allow 1023 instructions.
  18. When docked, the output sequencer control panel correctly displays a sequence created by and run from a script. Previously it could fail to show buttons.
  19. Cursor 0 is now available in XY Plot and Active cursor dialogs even if it is not visible.
  20. The Play offline dialog now updates the byte count as time fields are edited.
  21. Play offline dialog DAC output doesn't cause the USB device driver to fail.
  22. Using WindowVisible(3) in a script could cause multiple sets of window icons to appear in the menu bar.
  23. A script that sampled data and generated a memory channel and then saved the memory channel to a disk channel while sampling could crash Spike2.
  24. The SampleOptimise() script command would give a spurious error when the optimise method was set to 0, and could corrupt timePerAdc.
  1. This version uses a new revision of the SON library to read and write Spike2 data files. It reads all previous versions and writes files that are backwards compatible as long as no new features are used. Version 4.02 does not include any feature that will make your files incompatible with previous versions of Spike2, so you should see no change. The new version allows more data channels, has a new floating point waveform channel type and supports WaveMark data with multiple channels (for example for tetrodes). It also supports time and date stamping of files and a time base that is not tied to microseconds. We will take advantage of the new features in future releases.
04/2001 4.01 New
  1. The maximum number of filter coefficients allowed for the digital filters is now 511; it was previously 255. This allows sharper (narrower) filters to be obtained.
  2. You can now save and restore spike shape templates for duplicate channels. The channels are coded with the original channel number plus a, b, c?unless Spike2 cannot determine the original channel, in which case they will have a channel number from 201 to 299.
  3. Most 1401s have 5 Volt analogue systems. Spike2 now detects 10 Volt Power1401 and micro1401 analogue systems and adjusts scale factors automatically. There is a new Preferences option where you can force 5 Volt, 10 Volt, or "Last seen hardware".
  1. Saving and loading of spike shape templates in 4.00 was not working in a useful way and has been re-coded based on suggestions from several users.
  2. If you recorded WaveMark (spike shape) data channels and started sampling with no templates defined, you could never add templates on-line and you would get a spurious error if you had an output sequence running.
  3. If you add new channels to the sampling configuration, they are added to the list in sensible places based on the channel number and the channel order preference.
  4. The maximum number of data values that ChanData() will read from a memory channel is no longer artificially limited to around 30000.
  5. Cursors were not always printed from the Print Screen command and channel numbers were mis-positioned.
  6. If you used the CursorNew() script function to add a specific cursor n, it added cursor n-1.
  7. Channel numbers in result views now have the correct background colour.
  8. Copy as Text now produces a warning message if Spike2 runs out of memory and stops the operation.
  9. Measurement processes that add data points to an XY view are now more robust in low memory situations.
  10. Cursor(0) is not displayed as an option in drop down lists if the cursor is not visible.
  11. Import of UFF files containing out of order events now works correctly.
  1. FiltApply() no longer attempts to delete an existing channel. It has no Query argument to check that this is OK and was getting into a muddle such that an existing channel always caused an error. You must delete any existing channel before using this script function.
  2. The digital filters no longer convert filter types, e.g. from low pass to all pass, if the sample rate of the waveform is too slow for the originally defined filter. Now they will display a warning message if the sample rate of a target wave is not compatible with a filter. However, late testing showed that the filters can still be modified, so we will review this code for version 4.02.
Cambridge Electronic Design Limited

Registered in England: 00972132

Registered office:

  • Cambridge Electronic Design Limited,
  • Technical Centre,
  • 139 Cambridge Road,
  • Milton,
  • Cambridge CB24 6AZ

VAT: GB 214 2617 96

Producer registration number: WEE/BD0050TZ

Terms and Conditions of Sale

For our US customers, we can provide tax form W-8BEN, that identifies us as a UK company.

DUNS: 219151016
NAICS: 423490
Commodity codes
Hardware: 84716070
Software: 85235190

By email:


By post:
  • Cambridge Electronic Design Limited,
  • Technical Centre,
  • 139 Cambridge Road,
  • Milton,
  • Cambridge CB24 6AZ
By telephone:

(Int.+44) (0)1223 420186

From North America (Toll Free):

1 800 345 7794