Recent technical history of Spike2 version 3 for Windows

Freely down-loadable for version 3 users.

Date Version Summary
10/01 3.21 Fixes
  1. Strlist.cpp adjusted to prevent stupid failures with sequence without any steps.
  2. Calculation of channel data times improved - sometimes rounding errors might have been unnecessarily large and have given incorrect ADC sample rates in memory channels, filtered data and EventToWaveform results.
  3. The MarkMask command to set the filter mode will still work before the marker filter has been set.
06/01 3.20 Fixes
  1. 30000 point limit in data reads from the memory buffer classes now removed.
  2. Sequencer Fixes done for version 4 copied into version 3 commands.
  3. OnInitMenuPopup adjusted to avoid resource leaks
  4. Memory buffer dialogs for delete item and add items now handle Enter key correctly.
  5. XYDrawMode script command accepts -1 for all channels.
  6. Copy as text memory management & error detection improved.
  7. Strings starting with 0 are not interpreted as octal in Read & ReadStr script functions. Only decimal and hex supported.
  8. Text marker dialog checks for changed data on OK, acts as cancel if none.
  9. Text marker corruption after dialog use fixed
  10. Send mail for SON data files now works correctly, SON library opens files allowing shared reads.
  11. Many tidy-ups and minor robustness changes inspired by BoundsChecker.
  12. Fixed HCursor() when changing both the channel and the position.
04/01 3.19a Fixes
  1. Signal conditioner support now installs correctly! No change to the executable code.
01/01 3.19 New
  1. Debug windows now attempt to maintain the top line when you step.
  2. Output sequencer CRINC and DRINC will start cosine output if previous rate was 0.
  3. Overlapping WaveMark data now reads as continuous data when treated as a waveform.
  4. More checks for corrupted or damaged data files when reading data.
  1. The output sequencer could run too quickly if the step period was set to more than 262 ms.
  2. If you recorded the action of starting to sample with arbitrary waveforms in the sampling configuration, this produced incorrectly formatted output, set the links between arbitrary waveforms incorrectly and could cause Spike2 to hang in a loop.
  3. If you attempted to create waveform or WaveMark memory channels with very slow sample rates, Spike2 could fail to create the channel or might set the wrong sample rate.
  4. You can now use Power1401s with top boxes containing ADC channels. Previously there were problems if you attempted to use channels higher than 7 for WaveMark data.
  5. On-line use of Edit WaveMark now displays raw data for channel numbers above 8 for the micro1401 and the 1401plus and for channel numbers above 16 for the Power1401.
  6. The MarkMask()scr_MarkMask script command now erases and redraws changed channels. Previously the changed data was drawn without erasing.
  7. Output sequencer CRATEW 0 and DRATEW 0 no longer cause cosine output to stop immediately. However, they do not remove the penalty for using cosine output.
  8. In 3.18 only, a waveform average in sum (not mean) mode never added any data into the average.
  9. If you used the Load... button in the templates dialogs, change to a different channel and return to the original channel, you no longer see loaded templates plus original templates.
  10. If you have a 1401-18 event discriminator card, you no longer get an error message unless there is a real error.
  11. It was possible to crash Spike2 if you used the "Order by code" button in the templates dialogs with more than 20 templates and an invisible template was out of order.
  12. If you have more than 20 templates in the template dialog and you delete one, the waveform of the 20th template is now drawn correctly.
  13. If you set a file path and file name in the Automation tab of the Sampling configuration, and the file path is invalid such that the File menu Save option fails, Spike2 now lets you choose a file name if you use Save a second time. Previously you got an error message each time and the only way to save the file was to use File Export!
09/00 3.18 New
  1. The script language EventToWaveform() command now allows you to set the waveform intervals as small as you like (previously you were allowed values down to 0.001 seconds). However, the value that is actually used will depend on the data file settings.
  2. Spike2 warns you if you are not using the most up to date 1401 device drivers. The latest drivers are included with Spike2. Spike2 will not stop you sampling unless the drivers are dangerously out of date.
  1. This version ships with an updated Windows NT 2000 device driver for the PCI and ISA cards. This Fixes a problem where the driver would refuse to load on some systems.
  2. Show All/HideAll in an XY view did not update the display correctly in all cases.
  3. Offline waveform replay could crash Spike2 if you set the replay start time and end time to the same value.
  4. In the script debugger when editing an array with more than 1000 elements, the spin control no longer inserts commas into the array index.
  5. PaletteSet() now cannot set colours 2-6 (these were intended to be fixed).
  6. When waveforms with a non-zero channel offset were averaged with the sum displayed (rather than the mean), the sum was incorrect when a process action added more than one sweep to the sum. The effect was to offset the entire result by the same value. As most waveforms have a zero offset, and most users display the mean, this is unlikely to have been a problem.
  7. It was possible for a digital marker recorded with a 1401plus to be assigned a time 65535 clock ticks ahead of the correct time. This was unlikely to occur and no user has ever reported it.
  8. If you worked with split text windows and deleted lines of text in one window, it was possible to crash Spike2.
  9. The output sequencer compiler limited the length of numbers to 10 characters and also forced all numbers into the range of 32-bit signed integers. This meant than you could not set a variable to numbers like -1500000000 (too many characters) or set unsigned hexadecimal numbers greater than 0x7fffffff as the range 0x80000000 to 0xffffffff was set to 0x7fffffff. You can now set any number in 32-bit signed or unsigned integer range.
  10. If you set the output sequencer in the 1401plus to run at 0.027 or 0.045 ms, it would run very slowly. It now runs at the specified rate.
  11. The DRATEW output sequencer command in the micro1401 and Power1401 did not always wait for the cycle end.
  12. The WAVEST T output sequencer command for the 1401plus did not always trigger output.
  13. The BRANDV output sequencer command for the 1401plus did not work correctly.
  14. The CRINC, CRINCW, DRINC and DRINCW output sequencer commands used with an angle increment, changed the sinusoidal output rate by half the angle. There was no problem when used with a variable.
  15. The Clock signal on the micro1401, which should run at the output sequencer step rate when the output sequencer is used, was stopping when the sequencer reached a HALT instruction.
  16. In the documentation for the BRANDV output sequencer command, the example of calculating the probability was incorrect.
  17. The 1401 sampling code for the 1401plus, micro1401 and Power1401 has been made more robust when the overall event input rate exceeds the maximum possible rate.
07/00 3.17 New
  1. Includes the latest W2K and NT drivers.
  2. Support for Power1401 top boxes.
  3. ADC channels 0-31 allowed, but limit of 16.
  1. Corrected error in Y Regions Dialog in the Time difference for result views where the X axis starts at a non-zero value.
  2. If a script resized an array to make it smaller, then made it larger, but not larger than the original size, this could crash Spike2.
  3. SerialWrite works (again).
  4. XY view X axis changes, ChanValue() fix.
  5. Arbitrary wave out with plus fix.
  6. On-line Process in triggered mode improved.
  7. Multiple 1902 timeout fix.
  8. Y axis setup now fully saved.
  9. DOS to Windows Script converter a/(b/c) fix and fix for routines added so no "Wrong view type" error.
  10. DEMO.PLS had an erroneous change so output was too slow.
05/00 3.16 New
  1. PSTH and event correlation result views can also include a raster display of the events that generated the histogram. There are associated script command changes in DrawMode(), SetEvtCrl(), SetPhase() and SetPSTH().
  2. You can now select Big dots for result views.
  3. PSTH and Event correlations now have the option of Spikes per second as well as Count for the y axis scale.
  4. The Sweeps() script command now lets you set the number of sweeps.
  5. If you hold down the Control key and then use the File menu Close command to close all associated windows of a time view, any associated result views are now saved in the .s2r file and are restored from the resource file when the time view is opened. This is something of an experiment - the documentation always said this is what should happen, but it has never worked until now. If no-one has a use for this it may well be removed (again, but this time on purpose)!
  6. You can now control if the horizontal line in event Line draw mode is drawn or not.
  7. There are new short-cut keys for data windows to scroll the window and to move to, fetch and create vertical cursors.
  8. There are new short-cut keys to jump to the next or previous event on any selected event channel. This is somewhat experimental, so we'd like feedback if you use it.
  9. There is a new option in Edit Preferences to force metafile output to use lines in place of rectangles when drawing axes. This is to work around problems importing into some graphics programs.
  10. Edit Preferences now has a Draw button so you can see the on-screen effect of axis and data line width changes.
  11. The digital filter dialog now warns you if you type a filter frequency but do not use the Set button before using Apply. This is done because the displayed frequencies may not match the actual filter in these circumstances.
  12. The CursorNew() command has been extended so you can add a vertical cursor with a pre-set number. This was added so we could record the new Ctrl+1, 2, 3 and 4 keyboard shortcuts.
  1. DrawMode() documentation had Cubic spline mode as 12, should be 13.
  2. Script errors such as App("some string constant"); caused a fatal error on the second compile!
  3. If you set Manual in the on-line Process dialog, you no longer get a process at 100 seconds or when you stop sampling.
  4. If you set a non-zero offset for the start of an INTH x axis, this offset was negated when the offset was read back from a configuration file.
  5. It was possible for the Spike shape template dialogs to use a seemingly random font on some systems; they should no longer do this as long as your system has MS Sans Serif installed.
  6. The template dialogs drop down both lines when changing the size of a template.
  7. There is no longer the equivalent of RenumberCursors() send to each window when a script terminates or after a command is given from the command line.
  8. If you use the FileSaveAs() script command in a result view with a blank file name or one containing wild-cards, it no longer saves the file as a result view regardless of the actual save mode requested. For example, FileSaveAs("",1,1,"Set text file name"); would write a file with the extension .txt, but the file was really a .srf file.
  9. The Online update button in the Edit WaveMark dialog (when used on-line), did nothing except flash the 1401 test LED if used on a channel that had not been setup when the data file opened.
  10. Various script functions reported that the current view was "not an XY view" when they meant "Wrong view type".
  1. The Channel Display Mode dialog is now used to control the drawing characteristics of Result views as well as time views.
  2. Waveform channels with a negative scale factor are now treated more logically when setting levels for importing a waveform channel as events and for optimising axes.
  3. If you have set a Y axis with increasing values running from top to bottom, Optimise now preserves this. Previously it would have made the increasing values run bottom to top.
  4. The markers in an XY view are now somewhat smaller than before. If you set a size, this now sets the marker diameter rather than the marker radius. This was because a user complained that the smallest marker size was still quite large when printed.
  5. The on-line Process dialog now has a more sensible default setting and the order of the options is now Automatic, Trigger and Manual (which is in order of likely use).
  6. If you open a data file with an associated read only .s2r file (for example on a CD), the .s2r file is now opened in read-only mode rather than being ignored.
  7. Axes are drawn slightly differently. The axis thickness set in Edit Preferences now applies to the main axis line and major ticks. Minor ticks are drawn at half this thickness.
03/00 3.15 New
  1. This version ships with drivers for Windows NT 2000.
  2. If you use the FileNew(0,1) command from a script and a sampling document already exists, there is now a separate error code (-1579) for this situation. Error$(-1579) returns "A data file for sampling already exists; close it first".
  3. The maximum length of a string has been increased from 65535 to 1000000 characters, memory permitting. We don't recommend that you have strings this long! This was done so a particular script could read very long input lines from a text file. Beware that the limit for Spike2 version 2 and the Macintosh versions is still 65535 characters.
  4. The Window() script command can now be used from a Toolbar() idle routine or function linked to a button, even when the allow% mask prevents the user from moving the window. Previously the function had no effect in this circumstance.
  5. There is a new Load... command in all the spike shape windows to load templates from .S2R and .S2C files.
  6. This version supports the Power1401 Programmable Gain option as a new signal conditioner option. When installing you must choose Custom installation, then ask for a signal conditioner and set Power1401. Of course, your Power1401 must also have the ADC Gain option!
  1. If you zoomed in a great deal on an event channel drawn in mean frequency mode in Windows 95 or 98, it was possible to get incorrectly drawn data due to graphic co-ordinate overflow.
  2. Both ChanValue() and MinMax() used with Level data could give incorrect values when only one edge was requested.
  3. Digital filtering from a script now invalidates the destination channel to force a redraw. Previously if you filtered data incrementally to a memory channel the data might not be drawn (though it was filtered correctly).
  4. The Sample Bar List and Script Bar List dialogs do not enable buttons and fields when the list is empty.
  5. ChanMeasure() used on a result view could return the wrong value.
  6. It was possible to crash version 3.14 if you had horizontal cursors active.
  7. There were cursor drawing bugs associated with having more than 1 cursor at the same place and then using a menu or script command to move a cursor.
  8. In the spike shape dialogs, when merging templates, the merged template outline is now always updated immediately.
  9. In the spike shape dialogs, when changing channel, the cursors that mark the template position could appear in strange positions.
  10. Amplification changes made in the conditioner control panel are now allowed for in the Sampling Configuration.
  11. On-line signal conditioner changes now result in useful messages in the TextMark channel (if it is enabled).
  12. The Optimise() script command used in an XY view no longer ignores start and finish values of -10000.
  13. Repeated clicking on the horizontal scroll bar in a time or result view no longer causes the window to scroll.
  14. Several drawing bugs associated with the key view in an XY window have been fixed.
  15. FileClose(-1) now closes open external text and binary files correctly. Previously they were left open until you closed the Spike2 application.
  16. The new feature introduced in version 3.11 that allowed FileOpen() to set complex file filters in modes 8 and 9 stopped FileOpen("*.txt",8) from showing files with just a .txt extension. Now both old and new methods work.
  1. Optimise y axis now notices 0 at the top as well as the bottom of the y axis.
  2. Digital filtering commanded from a script no longer displays the filter progress dialog. We may adjust FiltApply() in the future so that script writers can choose to show the progress dialog.
  3. The documentation for Read() wrongly stated that data is read starting at the current cursor position. Data is read from the start of the current line.
  4. You are not allowed to save changes made in the Sampling Configuration Dialog while you are sampling. This is so that the last.s2c file records the correct information. For the same reason you are no longer allowed to load configurations from the File menu during sampling. You can still load a new configuration from a script during sampling.
  5. In the Digital Filter dialog, the minimum width of any feature (pass band, stop band or band gap) has been reduced to 0.005 of the sampling frequency. Previously it was 0.012. This allows sharper filters to be generated, but it also makes filters more likely to be unrealisable.
02/00 3.14 New
  1. Power1401 users can now have 16 channels of WaveMark data. We now allow up to 8 on-line templates per channel (previously only 8 were allowed for all channels).
  2. WaveMark manipulation dialogs can change channel with a single mouse click as well as by selecting from a drop down list.
  3. The WaveMark control dialogs have many improvements including a single button click to change channel, on-line changing of trigger levels and templates, on-line display of raw data and more consistent use of the control.
  4. The USB device driver is now supported.
  1. CursorNew() and HCursor() use with XY views (new in 3.13) has a few fixes and the on-line script documentation has been updated for horizontal cursors in XY views.
  2. To help reduce memory thrashing when sampling, the memory buffers used to hold data from the 1401 are now allocated the first time you sample and are not released until Spike2 quits. This removes the danger of a sampling failure because memory has become fragmented and a large buffer is not available.
  3. Y axis optimise of an event channel in a frequency drawing mode can no longer generate a stupid Y axis range if there are no events to optimise.
10/99 3.13 New
  1. We have identified one source of the Exception 10H problem described in the version 3.12 release notes, and we have added code to reset the floating point co-processor after any use of a printer (HP printer drivers are one source of this effect).
  2. We have changed the way that screen updates happen when scrolling on-line. This is to help users with slower computers or graphics adapters. In these cases, the mouse could become very unresponsive and it could be difficult to close down sampling. The changes are somewhat of a compromise; if you have a fast machine and find that the on-line scrolling feels worse let us know. We may be able to add a user setting in the Edit preferences to optimise the updates.
  3. A new mode has been added to the marker filter so that users can give WaveMark data (spikes) more than one identifying code, for example when two spikes collide. The MarkMask() command has been extended to match.
  1. The SampleStart() script command was always returning an error code (even though it was working) unless there was an error, when it returned no error!
  2. The installation of the device driver for Windows 95 and 98 failed to copy the driver into the system folder, so it had to be installed by hand.
  3. In version 3.12 (only) it was possible to destroy a data file by deleting a channel then re-using the channel data space (for example by using New WaveMark to overwrite an existing channel).
  4. This only happened if the first block of the deleted channel was more than 65535 bytes into the data file.
  5. As part of extensions to the marker filter dialog, we have made it update correctly (it was possible for the masks to appear in the wrong order). We have also made sure that duplicated channels and duplicated windows update correctly in more situations.
  1. Selecting channels by shift-clicking on a channel number does not select channels in-between this selection and the last selection unless they are visible. Previously intermediate invisible channels were selected, which could cause unexpected results, for example when deleting selected channels.
09/99 3.12 New
  1. XRange(-1) now sets automatic scrolling mode when Sampling or re-running a time view. Previously there was no way to enter automatic scrolling mode from a script.
  2. XY views now can have cursors. The Cursor menu is now active in an XY view, but there is no Cursor Regions or Cursor Values dialog. This is mainly for use from scripts.
  3. The Help menu About Spike2 dialog box now includes the message "WARNING: FP exceptions were unmasked" if any code called by Spike2 changes the state of the maths co-processor. If you suffer from Exception 10H messages in system crashes, please check this dialog from time to time, especially after printing. Exception 10H should never happen in Spike2, and can only occur if code external to Spike2 corrupts a register in the maths co-processor. Please let us know if you ever see this message.
  4. SonFix has more features for detecting (and fixing) corruption of data files.
  5. PlayWaveSpeed() has been extended with an additional argument so that a speed change will wait for the current cycle to end.
  6. ChanMeasure() has an additional argument that allows you to force a WaveMark channel to be treated as a waveform or as events.
  1. The 1401 device driver for Windows NT has a fix that stops a possible system crash if you use the arbitrary waveform output. Spike2 will complain if you try to use an older driver.
  2. The bug that caused channel numbers to vanish on some systems has been fixed.
  3. The "Stop sampling when file size reaches" option in the Sampling Configuration dialog Automation tab now works much better. It was broken around version 3.05 when much larger memory buffers were used and Spike2 was not allowing for data held in these memory buffers.
  4. Editing a marker code in a channel that had just been sampled or created could cause the system to be confused about which marker code to display. The file on disk was correctly edited, but a memory copy was not.
  5. It was possible for a channel created by saving a memory channel to be displayed in the wrong colour until the file was saved. Now it displays correctly.
  6. Opening a read-only file (for example from a CD-ROM) and closing it again no longer causes a memory leak. You can also open and close the file as often as you like; previously once you opened it you could never open it again until you closed Spike2.
  7. XY view Draw mode dialog now cannot close with illegal values. If you set a bad value and attempt to close the dialog you will be prompted to set a good value.
  8. Since version 3.10, if you used the output sequencer DELAY instruction with a 1401plus and you broke out of a DELAY by re-routing the sequencer with a keyboard character, the next DELAY in the output sequence could be of unexpected length. This has been fixed.
  9. If FileSaveAs() was used after sampling with an illegal file name or path it was possible to cause a crash (though the file would be safe in the folder set for Edit preferences). Now you will get a message asking you to save the file with a legal name.
  10. A 1401 with a discriminator card could cause starting to sample to fail with error code 3. This no longer happens.
  11. If sampling stopped before any channel filled a buffer and the data was not being displayed, it was possible for the data file to think it was empty and to close.
  12. Cursor regions and Cursor values windows vanish when Esc or Enter keys pressed, but the windows were still updated which could cause slow responses, especially for Cursor Regions.
  13. You can now duplicate a channel in a read-only file.
  14. The Cursor regions and values windows now update (again) when a channel is deleted or added. This was lost when they were made floating windows in version 3.08.
  15. The Cursor regions window only calculates changes once per cursor or channel change.
  16. On-line drawing of mean frequency tidied up when scrolling at end of file.
  1. The way that the digital output mode is stored for on-line spike shape matching has been changed. This is because the mode was stored separately for each channel leading to confusion about which mode to use. If you use this feature, please check that the mode is set correctly, then save your configuration.
  2. Spike2 will complain if the 1401 device driver is older than revision 1.17 for NT or 1.84 for Windows 95/98. Please install the driver provided with Spike2.
  3. Context menus (right mouse click) are now only shown when you click on windows and the application background. Previously they also were activated when you clicked on "non-client" window areas.
  4. The documentation for View() used to say that it returned -1 if you tried to change to a view that did not exist. In fact, this is and has always been a fatal error that stops the script.
  5. The Cursor Regions window now treats WaveMark channels as waveforms if they are drawn as WaveMark, waveform or Cubic spline. If this is a problem for you, let us know.
08/99 3.11 New
  1. There is a new Script toolbar. You can associate a button with a script using the Script menu Script List... command and with the ScriptBar() script command. If the first line of a script starts with: '$label|comment text the label and comment are loaded automatically when the script is added to the list from the dialog. You can also set labels and comments automatically. The label is used for the button, the comment is used for pop-up help when the mouse is over the button.
  2. There is a new Sample toolbar. You can associated a button with a sampling configuration file with the Sample menu Sample Bar List... command and with the SampleBar() script command.
  3. There are two new buttons on the main toolbar to open the sampling configuration and to sample immediately.
  4. The Sampling configuration dialog Mode page has new fields for a label and a comment that can be used to set the Sample toolbar label and comment when a configuration file is loaded from the Sample Bar List dialog.
  5. The Sampling control panel is now a dockable toolbar. This means it occupies less desktop space when it is docked. When sampling stops, it is hidden if it is floating (not docked). If you disable writing with this control, the Write text moves from side to side to draw your attention to the fact that you are not saving data.
  6. There is a new colour in the View menu Change colours... option called Not saving to disk. All data except WaveMark (spike shapes) use this colour to draw in when sampling and Write to disk is disabled. The colour is only used when the time window is showing the most recently captured data at the right hand edge of the window. If you set this colour to the same colour as the time view background, the data is drawn in the original colours.
  7. The Sequencer control panel is now a dockable toolbar and can be sized when floating. It occupies a lot less space when docked and is also disabled when it cannot be used. When sampling stops it is hidden if it is floating. Each time a sequence is loaded, the floating window size is set large enough to show all the keys (up to a maximum of 40).
  8. The main toolbar, edit toolbar and debug toolbar now have the "flat" look. They are also sized to match the other dockable toolbars. If you set very large screen fonts, they may look ridiculous. You can also resize these bars when they are floating.
  9. The script debug mode edit local and global variables dialogs have been tidied up and made easier to use. The window for editing values of arrays has been considerably improved.
  10. The script command CursorDelete(-1) now deletes all vertical cursors to match HCursorDelete(-1).
  11. You can now save memory channels to unused and non-sampling channels during data capture, both from the Analysis menu and with the MemSave() script command. The EventToWaveform() command can also be used online as long as the destination channel is not a sampling channel.
  12. The FileOpen() script command now lets you specify a filter for external text (type 8) and binary (type 9) files. Previously you always got *.* for binary and the list of text file types known by Spike2 for text files. If you use the new feature in an older copy of Spike2, you will get the old behaviour, so there are no backwards compatibility problems.
  1. The data for each channel in a .smr file is held in a list of blocks. Each block holds a pointer to the next block and the previous block on disk. Since version 3.05, if you used auto commit, or if you used the sample control panel to pause writing to disk then un-paused, it was possible for the backwards pointer in a block to be set to point at the block itself, rather than the previous block. This could cause Spike2 to hang up when searching backwards through a marker channel with a marker filter set. If you have such a file, SonFix will now repair the file for you. Also, there is a new script, FixBack.s2s, installed in the Scripts folder that will scan and fix all files in a folder.
  2. If you use the digital filter on a channel in a file that is sampling, Spike2 no longer crashes.
  3. Documentation errors in DlgList() and MarkMask() corrected.
  4. One user reported frequent crashes when using result views after printing. We have located the offending code and changed it. No-one else has reported this, nor could we reproduce the crash, however, the code was at fault, so if you had a similar problem, it may now be fixed!
  5. The debug Global variable display now edits the correct variable when you double click in the window. Previously it was one adrift.
  6. The Sampling Configuration dialog Resolution tab Longest run time (minutes) field did not display the correct value the first time it was displayed.
  7. The Cursor regions dialog now gets modulus and area (scaled) correct when a zero region is set.
  8. An obscure bug has been fixed that could cause the ChanValue() command and the Cursor dialogs to report that the very first value on a data channel extended backwards slightly further than it really did.
  9. The FrontView() command now also sets the focus (the window that gets keyboard and mouse input). This means that if you use the Toolbar() command during sampling you can now include a FrontView() in the routine associated with a button to set the focus back to the sampling document so that keypresses are in the keyboard channel. Previously, once you had clicked on a button, all key-presses went to the toolbar, not to the sampling document, so were not saved.
  10. During sampling, you can no longer delete a channel that is actively recording data! You can delete channels created by saving a memory channel.
  11. You can now load information from write protected .S2R and .S2C files (for example files on a CD-ROM). Previously they were ignored.
  12. If you added n data points to an XY view, only the final n MOD 1000 points were used to set the automatic x and y axis scaling. Now all points are used.
  13. DOS script converter now admits that FilePrintScreen() has an extra argument in version 3.
  14. The View menu Show/Hide dialog now shows and hides channels in an XY view. It was broken in version 3.10.
  15. Result view context menu (right mouse click) now has Process and process Settings as options.
  16. If Cubic spline drawing mode is requested for a waveform or WaveMark channel and the image is saved as a metafile, the drawing mode is changed to WaveForm so that the channel is visible. Previously nothing was drawn. Cubic spline drawing can only be saved in an enhanced metafile.
  1. If you rename a Spike2 configuration file (*.s2c) you can now load it both interactively and through the script FileOpen() command. Previously, if the name had changed Spike2 would refuse to accept it. However, resource files (*.s2r) associated with data files will refuse to load if renamed.
  2. The File menu Export dialog for data files now enables and disables the Delete and Export buttons as appropriate.
  3. The maximum number of duplicates of a window from a script has been increased from 10 to 20.
  4. When you start sampling interactively (not from a script), the sample and sequencer control panels are made visible. If the sampling configuration was saved with these windows floating and the current window is invisible or floating, they are restored to the floating position. Otherwise they are left where they are. Previously, the saved position was always restored. We made this change because moving a docked window to another docked position can cause unexpected results due to the positions of other docked windows.
  5. The WaveMark Overdraw mode window now get new data appended to it whenever you scroll the time window. Previously it was updated during scrolling when sampling. As before, we do not remove data for sections scrolled off the screen due to the time this could take when there was a lot of data on the screen.
  6. ChanValue() for a waveform channel now reports the value of the nearest waveform point within half a sample time of the position.
  7. App() can be used to get the view handle of more windows. If you need to hide (and restore after a script) all the floating windows you can use App(-2) to get the window count and then write a loop to get window handles and hide the windows and later restore them.
  8. We have tried hard to make the times returned by NextTime() and LastTime() to agree exactly with those returned by ChanData(). Previously they could differ by about 1 part in 10 to the power 16 due to floating point rounding effects.
06/99 3.10a Fixes
  1. The WAVEGO output sequencer command did not work in 3.10 and has been fixed in 3.10a.
06/99 3.10 New
  1. Arbitrary waveforms can now be replayed during sampling on a Power1401, micro1401 or 1401plus. See the Sampling control panel documentation for more information. From the script, see the PlayWaveAdd() command. From the Output sequencer, see the WAVEGO command. There is a new "Play waveform" control panel.
  2. Recording of "start sampling" improved by removing unnecessary window updates in the generated script and adding recording support for automatic file naming and file commit.
  3. A Tip of the Day is displayed each time you start Spike2. This can be disabled with the checkbox in the Tip of the Day window. Many of the tips have links into the Help system where more information can be found. Click the Details... button for further information.
  4. More context options (right mouse button) are available in time windows. Marker filter and Digital filter can now be activated.
  1. A bug that could cause a decrease in free system memory, each time data is sampled, has been fixed. Sampling many times without closing Spike2, might have slowed the system. In extreme cases, or on machines with not very much memory, the system might have failed.
  2. Using the Help menu About Spike2 command during data sampling no longer causes sampling to hang up.
  3. Closing a time view with the draw mode dialog open, may have caused Spike2 to crash.
  1. The restriction that script language strings could be no longer that 65535 characters has been removed. If this feature is used, scripts will no longer work in Spike2 version 2 or on the Macintosh versions of Spike2.
05/99 3.09 New
  1. The 1401 monitor ROM version is checked when the program starts, and a message generated if it is too old for comfort.
  2. Axis numbering survives very large numbers.
  3. FilePath$ with opt% of 2 gets the application path, 3 is now used gets the path for automatic file saving. Similarly use 3 to set the auto save path in FilePathSet - was 2.
  4. The conditioner settings in the preferences dialog are greyed if there is no conditioner support installed.
  5. The context menus have been further improved, including a new 'New Cursor' item to add a vertical cursor at the point that was clicked.
  1. Prevents spurious '1401 is not responding' timeouts when sampling is started.
  2. Prevents illegal memory accesses when spike shape dialog is initialized.
  3. Some wavemark data points didn't show up in the cursor values window, this is now fixed.
  4. Deleting a cursor always clears the corresponding cursor values column.
  5. Unwanted 'open as read-only' checkboxes in file open dialog removed.
05/99 3.08 New
  1. Sampling configuration Automation now allows you to have automatically incrementing file names. You can also choose to be prompted for a file comment each time data sampling completes. The script language commands FilePath$() and FilePathSet() have been extended to handle the path for these new operations. SampleAutoName$() and SampleAutoFile() have been added.
  2. The Cursor measurement windows now stay on top of all other views. The commands to Print and Copy the cursor view are now activated by a context menu; click the right mouse button on the window to print, Copy to clipboard or copy to Log window. The positions of any Cursor windows are now remembered in the .s2r resource file, but the windows do not open automatically when a data file is loaded. There are now many more measurements for the cursor regions window and these are supported by the new ChanMeasure() script command.
  3. Horizontal cursors can now be activated from the Cursors menu and their positions are remembered in the .s2r resource file.
  4. The selectable area for selecting a channel has been increased in height to be the height of the y axis (previously it was only the height of the number). You can now select a channel by clicking anywhere in the channel axes area as well as on the channel number. The selected channels are indicated by a grey background to the channel number and Y axis region. You can deselect all channels by clicking in the rectangle below the y axes and to the left (right if y axes on the right) of the x axis. Please let us know what you think about the new way of showing selections.
  5. The SONFIX program copes with a wider range of disasters, and fixes the most common faults (caused by loss of power during data capture) much more reliably.
  6. The Edit menu Undo button is now multi-level for data display changes. Operations via X and Y dialogs and buttons are saved as well as dragging operations.
  7. Abort during sampling does not query if no data has been written to disk and ALWAYS queries if data has been written. Stop during sampling will delete the data file if no data has been written (as previously).
  8. You can now double click on a channel with a Y axis to hide all other channels and display this channel using all the available vertical space, double click again to revert to the previous state. If the data file is closed in this state the revert information is not saved.
  9. The channel duplicate command no longer insists on you selecting a channel first. It opens a dialog in which you can select the channel to duplicate. Of course, any selected channels are top of the list.
  10. If you create a new channel from the New WaveMark dialog the new channel is made visible immediately. All spike shape dialogs contain more checking for conflicts in settings.
  11. When a memory buffer is written to a new disk channel, the new channel is made visible and, if appropriate, the channel display settings are copied from the memory channel.
  12. Data views now have context menus. This means that if you click the right-hand mouse button in a time, result or XY window a pop-up menu appears with commonly used options.
  13. The dialog that lets you customise the display (show/hide channels, x and y axes and the grid) has been extended so you can now have y axes on the right and show and hide channel titles units and channel numbers. There are also new script functions YAxisMode() and ChanNumbers() to support the new features.
  1. We fixed an obscure problem that could cause spike shape setup dialogs to hang (although no user has reported it). We also fixed a problem that could cause a crash when opening the setup dialog, possibly associated with a corrupt configuration.
  2. The sampling changes introduced in 3.05 could cause a 1401plus running in triggered sampling mode to time out. This is now fixed, and a 1401 time out is detected again (this was lost in 3.05). The same fix seems to have cured a problem reported by a few 1401plus users of the screen freezing, then unfreezing some seconds later with no data loss.
  3. The time of the very first WaveMark on a channel is forced to be 0 if it was negative. It was possible to get a negative time if a WaveMark is recorded with a long pre-trigger time at slow waveform sampling rates.
  4. Several more dialogs now have their own Help available (for example the XY draw mode and XY options dialogs).
  5. All y axis optimisation mechanisms now handle the case where there is no variation in the data so that the constant data is visible. Previously, no change was made to the display.
  6. Result view files (.srf) will now open when there is no associated .s2r file. This bug was caused by over-enthusiastic error checking in version 3.05.
  7. If you attempt to open a damaged result view file, a message box now tells you that there was a problem. Previously nothing happened at all.
  8. We now detect more sampling error conditions in the 1401 and stop sampling as soon as they are detected. In particular if you run a 1401plus with the old 80 kHz ADC block at more than 80 kHz, you now get an immediate warning, rather than very strange data. A 1401 time out is detected again (this was lost in 3.05).
  9. Since version 3.05, on-line screen updates have happened no faster than the rate of the slowest waveform channel. The vast majority of users sample quite quickly, but our apologies to those with 1 Hz sampling! This is now fixed.
  10. The script language SampleWaveMark() expected event rate argument now works as documented.
  11. If the range of the result of a digital filter did not include 0, and re-scaling was requested, the resulting data would be clipped. This no longer happens.
  12. In the Output sequencer SET command, if the DACs were given a non-zero offset, the offset was used in the calculation of values for the ADDACn command when it should not have been.
  13. In some circumstances it was possible to crash Spike2 by writing data to a channel, then deleting the channel, then writing data of a different type to the same channel. As part of this fix we also commit the newly written data so that if system power is lost after writing new data, the file will be complete.
  14. If an error occurred when communicating with the 1401 when sampling starts, it was possible to get into a state where Spike2 would not let you talk to the 1401 unless you closed Spike2 and opened it again.
  15. It was possible to crash Spike2 from the script language if some script functions were used just as Spike2 was closing down sampling.
  16. The PSTH and Event correlation routines could crash Spike2 if the event times in the data file or returned from the 1401 became corrupted.
  1. From this version onwards, each time you run a version of Spike2 that is different from the last version that you ran, the toolbars will not be restored to their previous state.
  2. This is because we will be adding more toolbars in the next release and this works around a bug in the system software we use that would cause a crash if having loaded a new version with extra toolbars you reverted back to an older version with fewer bars.
02/99 3.07 Fixes
  1. Horizontal cursor drawing in a scrolling window fixed, was being erased & lost.
  2. Now discards unwanted sampled data reliably, data that was wanted was being saved OK though.
  3. Sampling buffer linkages tidied up, ensures that data is drawn & analysed correctly during sampling.
  4. Drawing of data as dots has been improved to work more reliably.
  5. Will not query user to save a new data file containing no data.
02/99 3.06 New
  1. The Digital filtering dialog has been made easier to use by removing the need to save any filter before it could be used. If you change a filter, you can apply it immediately. When you close the filter dialog you can choose to save any changes you have made. The filter dialog now uses much less memory. The filter dialog is now linked to the on-line help.
  1. The initial display of options when importing into a waveform memory channel has been fixed.
  2. A problem introduced in 3.05 when saving a data file to a file name that was already in use has been fixed.
  3. A problem introduced in 3.05 associated with Editing (re-classifying) a newly created WaveMark channel leading to a GP fault has been fixed.
  4. Text markers can now be saved with the time pre-set. There have been reports of occasional spurious errors from the 1902 signal conditioner when the conditioner dialog is closed. We have tidied the code up, and may have corrected the problem (however we were never able to reproduce it, so we cannot be sure). If you suffer from this problem, please email us with the exact error message.
  5. We think it was possible for users with large amounts of free disk space (more than 2 GB) to have sampling shut down with a warning message about disk space. We have changed the code for calculating the free space in this situation.
  6. In version 3.05, the SON library was using up 7.5 MB of memory to store data for the maximum number of channels and files that could be open simultaneously. It now only uses memory space for channels and files that are actually used.
  1. The Digital filtering dialog has been simplified and has fewer buttons.
01/99 3.05 New
  1. Digital filtering added to the Analysis menu and commands for digital filtering added to the script. Scriptwriters can deal with filters defined in terms of frequencies with the Filtxxx() family of commands or in terms of fractions of sampling rate with the FIRxxx() commands. Digital filters output can be to a new or existing memory channel or to a disk-based channel.
  2. The Power1401 is now supported for data capture. In this version, you can set the ADC rate at 250 kHz (this will very likely be increased in future versions). The limit for the micro1401 and the 1401plus remains 166 kHz. Planned future enhancements for the Power1401 include: up to 16 channels of spike shape data and more on-line templates, and faster waveform sampling rates.
  3. The code for transferring data to the host from the 1401 has been considerably improved for the 1401plus, micro1401 and Power1401. For best results, we recommend you use a PCI interface card. You should find that the system is much more responsive during data capture, especially with multiple data channels. If the computer is being somewhat slow writing data to disk, Spike2 will cancel screen updates (filling in the missing areas with grey) and cancel long calculations to update cursor windows.
  4. It is possible that standard 1401 users may suffer from marginally worse performance. It is also possible that users with DMA disabled on their 1401 interface cards may find that the system responds more slowly (however we think it will feel better). We strongly recommend using DMA for data transfer if at all possible. If you have any comments on the sampling performance with this version compared to previous versions, please let us know.
  5. If a 1401plus, micro1401 or Power1401 detects data buffer overruns (the host is too slow writing data to disk and data has been lost), sampling will stop immediately. Previously you got a warning message after sampling had completed; as this could be several hours later, this was not particularly useful.
  6. If event data or Spike shapes are lost inside the 1401plus, micro1401 or Power1401 during data sampling due to high data rates, a marker code of FF is added to the keyboard channel. Sampling is not stopped as this is likely to be a local effect and will not cause any loss of data integrity apart from the missing events or spikes. You will also get a warning message when you stop sampling. If you suffer from this problem, try setting a more realistic mean event rate in the sampling configuration.
  7. The sampling configuration is now a tabbed dialog to create more space for future features and to make it easier to use. There are also new features, for example, a Suggest button on the Resolution page to suggest a suitable Time per ADC convert value and you can now see the first few lines of any sequencer file you have selected.
  8. From Edit preferences you can now control the thickness of lines used for axes and data. The main purpose of this is to improve the printed output which previously looked very thin on modern, high-resolution printers.
  9. You can abandon long drawing operations with the Ctrl+Break key combination. Break is usually the same key as Pause and is often in the upper right hand corner of your keyboard. This same combination will abandon long operations associated with Cursor dialogs, which will then give incorrect results. If your system has sounds enabled, you will hear a sound to acknowledge that drawing was abandoned. Screen areas that should have been updated are set to grey.
  10. Script execution speed has increased (again).
  11. When running a script with an idle procedure active, the idle routine will now run (albeit at a maximum rate of 18 times a second) when you click on the menu bar. Previously the idle procedure did not run at all in these circumstances.
  12. When the debug bar appears due to a break point and you have a sound card, the system plays a tone to alert you. If you have the "Menu Popup" sound set, this is played when the debug bar is visible and gets control.
  13. Previously, if you sampled data and the displayed data was scrolling and there was another window on top of the displayed data (for example the sampling control dialog), the screen updates would be very slow. Now the screen updates are faster in these circumstances.
  14. The memory buffer dialogs in the Analysis menu have been improved:
    a) The default format option when writing a channel is more sensible.
    b) You can now save a memory channel in any compatible format.
    c) With script recording on, the correct sampling rate is shown for creating a new memory waveform channel.
  15. The About Spike2 box now displays the 1401 device driver revision and when you start Spike2 you will be warned if you have a 1401 device driver that is out of date.
  16. If you try to sample with an out of date SP2DIG command, you are told and sampling is abandoned.
  17. The YAxis range dialog now has a Show All button. YRange(chan) is now allowed to set a standard display range for the current drawing mode (if possible).
  18. With a Power1401 you can run the output sequencer with a time step down to 10 microseconds in units of 1 microsecond. You can also set much faster rates for the micro1401 and 1401plus, but we strongly suggest that you do not set step times less than 50 microseconds. The step resolution for the micro1401 and 1401plus is not as good as for the Power1401. Step times that are multiples of 4, 6, 9, 10 or 15 microseconds are set exactly. If the step size is not a multiple of these values, the nearest possible value is used. If you try to set output sequencer step times less than 1 millisecond for the standard 1401, the result is not guaranteed!
  19. There is a new option is the Sampling configuration Automation page that will commit sampled data to disk at regular intervals during sampling. Although there is a speed penalty associated with using this option, it makes data files much more likely to survive a power loss or other system disaster. You may still need to run SonFix to tidy up such a file.
  1. If you have multiple channels of WaveMark data with different numbers of data points or pre-trigger times, changing channel in the Sampling setup section no longer causes a corrupt display. You can no longer zoom in so far that an illegal number of pre-trigger points are set and the program refuses to display data.
  2. ChanValue() on a RealMark channel displayed as a waveform now works.
  3. XY View Print Preview now displays what you see on the screen.
  4. Print Screen for result view in line mode draws correctly (previously it would clip data if the view was shifted from top left of the screen).
  5. When SetEvtCrlShift() set a shift in an auto-correlation data was subtracted from the bin at time 0 rather than from the bin at the correct time shift.
  6. Print("\ttext") used to leave the text caret in the wrong place.
  7. FrontView() returns -1 (as documented) if the view number is illegal. Previously the script stopped with an error.
  8. View(-1000) compiled twice no longer causes a corrupt script to be generated.
  9. If you sample data, reset sampling and then resize the window, the old data is no longer drawn!
  10. The ADC sample rates now display correctly in the Sampling Configuration dialog after reading the configuration from a data file (normally you read it from a configuration file).
  11. Keypresses with the output sequencer control dialog selected are now logged.
  12. The SonFix program (to repair damaged data files) has been enhanced to make it much more likely to recover data files that are damaged due to power loss when sampling. Previously, it would recover small files damaged due to disk accidents, but it tended not to work with huge files. You can make your chance of recovery almost 100% by using the new Commit feature in the Sampling configuration.
09/98 3.04 New
  1. Off-line data replay. You can replay waveform and WaveMark data through the 1401 DACs and also through any sound card you have fitted to your computer. To use this, open a data file, then use the Sampling menu Output Waveform... option. To output to a sound card select Sound in the drop down list for the first output channel. As yet, there is no script support for this feature.
  2. The Sound() script command can now replay a .WAV file on disk through a sound card.
  3. Template matching:
    • Dialog is now resizable so that the templates can be much bigger.
    • If you have a Sound card installed, Spike2 now uses the sound card to play the sounds for spike matching.
    • You can change the channel from within the dialog.
    • You can now optionally disable template limits when gathering data and match solely on error, this can improve spike matching in some cases.
    • Most controls previously only in the Edit WaveMark section are now in all template dialogs.
    • There is a new control button that will keep the "special" template cursor in the centre of the associated time window.
    • You can now use the Cursor menu "Fetch" and "Move to" items on the special cursor.
    • You can now use the Analysis menu Edit WaveMark option on-line to monitor sorting and to get sound feed-back.
    • Changes to templates made in the Edit WaveMark option when on-line are saved to the sampling configuration. This means you can build your templates with the output sequencer running, then restart and these templates will be sent to the 1401 for on-line matching.
    • The template dialogs now remember the last position, as does the parameters menu.
    • The parameters menu has been reorganised to make it easier to understand.
    • The link to the Marker filter dialog is better and changes in the marker filter are now all acted upon immediately.
  4. There is a new Cubic spline drawing mode for waveforms and WaveMark data. This will join waveform data with a smooth curve which is likely to be a better approximation to the data between the points than a straight line as long as there are no frequency components present in the data above half the sampling rate.
  5. The Edit preferences now lets you use Enhanced Metafile format for storing data to the clipboard. You must use this format if you want to export images holding cubic splines or sonograms. However, many older software packages do NOT support this format. If you do not use this format, cubic splines and sonograms will not appear in the output.
  6. You can now export images in Enhanced Metafile format (*.EMF) in addition to Windows Metafile format (*.WMF). To select this format you must give the file name the extension .EMF or the output will be in Windows Metafile format. We have discovered that some graphics programs which claim to have import filters for EMF produce rubbish when importing EMF files from Spike2. However, we have tested EMF files with Word 97 and they work correctly.
  7. ViewKind() now allows an argument which is a view handle so you can test if a view exists before swapping to it.
  8. The Evaluate toolbar has a new button Eval(...) which attempts to print the result of the last statement typed in. This is just a shorthand for typing Eval() around an expression before using the Execute button.
  1. XY view Y axis range is now restored when a .sxy file is loaded.
  2. It was previously possible for Memory buffer Marker channels created by a script to not display until the window was resized. This is now fixed.
  3. Using the Conditioner button in the Sampling configuration menu no longer produces a spurious "Unknown 1401 error 2".
  4. Script view no longer sets a break on the line after the line where you double click in the left margin.
  5. If you have a CD-ROM with a Spike2 file and a matching .S2R file, Spike2 doesn't hang up when you close the file.
  6. If you manage to break into the Evaluate toolbar while it is executing a typed in script, you can no longer crash Spike2 by attempting to step or run to cursor. All you can do is look at variables and the call stack and abort.
07/98 3.03 New
  1. You can now open Read only data files (for example files backed up on CD-ROM). The title bar for these files includes [Read only] to remind you that you cannot change the file on disk. We do not stop you changing channel scales or comments, for example, but these changes are not saved with the file. You cannot delete channels or write memory channels to such files.
  2. The 1401 device drivers shipped with this version and Spike2 itself have been changed to remove as many 1401 hardware resets as possible. This is done so that 1401plus output sequencer users do not get spurious digital output pulses just before sampling starts. We cannot remove them all, however. Hardware resets will occur the very first time the 1401 is opened, and if you Abort or Reset sampling. PLEASE UPDATE YOUR 1401 DEVICE DRIVER.
  3. The Preferences dialog has a new option so that Micro1401 users can route events 0 and 1 to the rear panel digital connector (for compatibility with the standard 1401 and the 1401plus).
  4. If you have one or more selected channels, more dialogs now attempt to offer the first appropriate selected channel instead of the first channel in the list (usually the keyboard marker). Also, when selecting a channel for overwriting, the lists now select the first unused channel by default.
  5. You can now set a dialog title for the Message(), Input(), Input$() and Query() script commands.
  6. Scripts now run up to 20% faster.
  7. You can now inspect and edit the five lines of file comment that are stored in a SON file. These comments were always accessible from a script; now you can view and edit them from the View menu File Comment command.
  8. You can display instantaneous frequency and mean frequency as per minute as well as per second. The units changes to "bpm" from "Hz". A new field "Per minute" appears in the channel display mode dialog. The DrawMode() and ChanValue() commands now accept modes 11 and 12 for time views to accommodate this new feature.
  9. In the Sampling Configuration dialog, the actual waveform sampling rate is coloured red if it is more than 20% different from the ideal rate for the channel.
  1. If you print to a text view or the log with no \n character at the end of the string, the view will update. Previously, it didn't update until the end of line character was sent.
  2. Time and result view cursors are no longer displaced upwards when printed.
  3. Documentation: ArrIntgl() is a proc, not a func.
  4. The Match case check box in a text search now works.
  5. The Analysis menu Power spectrum command was returning the DC power a factor of two too large. It is now correct. The power at other frequencies was correct.
  6. It was previously possible to hang up Spike2 if you had an XY view with fixed sized channels and an unlucky combination of the channel size and added data points.
  7. You are no longer allowed to Export a data file on top of the original file.
  8. Undo of an indented text block (select more than 1 line and press the Tab key to indent) now redraws correctly. Previously it worked, but only redrew the first line of the indented block.
  9. Several bugs were fixed associated with changing a time view channel drawing mode. All channels now pick up the correct axes limits and WaveMark OD mode cancels correctly.
  10. If you move a vertical cursor from the script, any open cursor region or value windows now update.
  11. Memory channels holding level event data now redraw correctly when the data is changed (e.g. deleting an odd number of events causes the data to redraw to the end of the file).
  12. If you delete a data channel which is duplicated more than once, Spike2 no longer crashes. SampleTitle$() used with a new title of more than 8 characters no longer trashes the configuration.
  13. It is no longer possible to crash Spike2 when using MemImport() to import to a Wavemark channel from a WaveMark channel using an event channel as a trigger.
  1. The ArrFFT() command and associated documentation has been changed. The major change is that the power (mode 5) is now a factor of two smaller. This means that given an array of data, the sum of the power from ArrFFT() is now equal to the sum of the squares of the original data values divided by the number of data values. Previously the results were simply the squares of the amplitudes. A MS-Word document explaining how the ArrFFT command relates to a complex time series to complex frequency series transform is available. Email to request it.
  2. XY views with many data points are now much quicker when deleting points.
  3. Script view Function drop down list is wider so that long function names are not truncated.
  4. The spacing in of items in user-defined dialogs and message boxes has been made more rational. When you create a Waveform or WaveMark memory channel interactively, the scale, offset and units of the "template" channel are also copied. Previously the scale was set to 1.0 and offset to 0.0. As the most likely next action is to import data from the template channel, it is important that the scale and offset are the same, otherwise data clipping or loss of resolution can easily happen.
  5. The algorithm for spacing channels vertically has been changed to divide the space up more equally (there will be at most a one pixel difference in size between channels with Y axes). Also, channels are packed more tightly to maximise the space for data, in particular when the Y axes are turned off.
  6. In the output sequencer, the CRATE output DAC is now not updated if the output rate is 0. This reduces the time penalty when DRATE is used and the CRATE DAC is not used at the expense of a small overhead when both are used. It also means that when the DRATE sinusoid is used, the CRATE DAC does not change value. For most people this will be an improvement, but it may be a problem if you rely on the CRATE DAC changing value when DRATE is used.
05/98 3.02 New
  1. Spike shape capture can now provide a digital output when a spike template is matched. This is a much requested feature, but please read the warnings about likely time delays between the time of the spike and the corresponding pulse in the on-line help.
  2. The script compiler now allows four new operators +=, -=, *=and /= for real and integer types and += for strings. These are more efficient (faster) when the script runs.
  1. WaveMark channels sampled on-line redraw only as much data as needed. If you display a WaveMark channel in WaveMark mode, all marked codes are displayed, even if they overlap. You can suppress the marker codes (for faster drawing) by selecting Waveform mode. Dot size is no longer scaled by font size when output is to screen. The dot size is scaled for printing, and then the size set (from the script) is in points (1/72 of an inch).
  2. Waveform channels can only be set to Waveform, Dot or Sonogram draw modes.
  3. Triggered display mode: fixed crash when level channel used for display trigger. Level channels will trigger the display on either edge. Display trigger hold time is now from end of sweep which makes it much easier to use the display trigger feature.
  4. Histogram Metafile output works better with CorelDraw.
  5. Miscellanies: Result and XY view X axis labels are now limited to 51 characters when saved to avoid problems. Long output sequencer file names are now truncated for display purposes before they cause problems. Long file names that include spaces can now be opened from Windows Explorer. XLow() and XHigh() in XY view now give sensible values. In user-defined dialogs, a drop down list can be up to 15 items before scroll bars appear (was 4). You are now warned if you try to empty a memory channel with data in it. It is no longer possible to crash Spike2 by deleting an element of the path set in the Edit preferences. New WaveMark command no longer lets you overwrite the real channel when a duplicate of that channel is being analysed. If you didn't provide low and high filter arguments to the CondSet() command, instead of using the defaults, random values were used.
  6. Output sequencer MOVI and ADDI did not work with some integer values.
03/98 3.01 New
  1. The Evaluate bar now has a drop down list of old commands. The memory of old commands has been increased from 5 to 10. The commands are saved in the registry. Different log-ons have different remembered sets of commands.
  2. The Debug bar now vanishes at the end of a script.
  3. The Page Setup menu is now different for text-based views and for Time, Result and XY views. In text-based views, you can now set the header and footer for each printed page. &P in a header or footer is replaced by the page number, &F is replaced by the file name and %c is replaced by the time. You can choose to see either the time of day or the file time. For Time, result and XY views you can now set printer margins.
  4. The warnings in the Analysis menu that you are about to overwrite a data channel from the New WaveMark, Edit WaveMark and Memory buffer commands has been made much more forceful and the default action changed to not overwrite the existing channel. Remember, actions made to Spike2 data files are permanent.
  5. You can now save a result view as a bitmap from the File menu, and you can now Save an XY view as a metafile or a Bitmap. These got left out of version 3.00.
  1. If you open a result file with an associated .s2r, but the .s2r file really belongs to a different view, the x and y axes are now set to sensible values. Previously they were arbitrary and generally wrong. This can happen if you call an XY view and a result view the same name.
  2. The text editor has had a few Fixes:
    Drag 'n Drop of text from another application or Help now works,
    typing characters with the mouse button down can no longer crash Spike2,
    syntax colouring of quoted strings holding a single quote mark is now correct,
    opening a text file with lines >2084 characters long doesn't crash Spike2,
    Print Preview with text selected now shows all text not just selected text,
    You can now choose not to keep tabs (previously it always kept them),
    and a few screen updating bugs are repaired.
  3. SerialRead() was not waiting up to 1 second for data to arrive, now it does.
  4. Print Preview has been disabled for Cursor values and Cursor Regions windows (it crashed Spike2). You can, of course, still print these windows.
  5. ViewUseColour() now works.
  6. The Format button in the output sequencer window now leaves the vertical scrollbar in a useful state.
  1. Saving any view as a bitmap has been recoded so that it works for systems with 16-bit colour (previously you got a nasty mess), and also so that the output is much more compact. Spike2 restricts views to a limited number of colours, so now we always save bitmaps as 256 colours. We also use RLE encoding to make the bitmaps much smaller on disk (and on the clipboard).
  2. Metafile output (picture output). Somewhere around version 2.18 we changed the metafile output so that waveforms that extended beyond their assigned rectangles were clipped properly when imported into graphics programs. Unfortunately, some graphics programs then insisted on treating every line they imported as a separate object, leading to long import times and the graphics programs falling over (no names, but you know which programs we mean). In version 3.01 we now test to see if the waveforms need clipping. If they don't, we use the old format.
  3. We have made it more difficult to throw away a data file while you are sampling and have a script running. Previously, if a script was active, it was assumed that any command to close a sampling data file came from the script, and the user was not asked if this was the intended effect. This may break some scripts that use FileClose() on a sampling data file as the user will now be asked if they want to abort sampling. You can get the previous behaviour back by calling SampleAbort() instead.

Cambridge Electronic Design Limited

Registered in England: 972132

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: 85234945

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


Privacy policy

CED, through this site, does two things that relate to privacy. We would like to explain them.

Emails from down-loads

We offer free down-loads of many files on our site, from test programs to complete install files for updated versions of major packages like Spike2 and Signal.

When customers wish to take a down-load of a major package, we ask a few questions, including their name, email address, the serial number of the software for which they seek an upgrade and whether they would like an automatic email whenever we update the product. This information is emailed back to CED when they access the final down-load screen. Within this email, your browser transmits the type and version of browser you are using, and the screen resolution you are running.

The reasons why we take and keep this information are that it is useful for our software development team to know who has taken the latest versions, and it is useful for our web site development team to know which browsers people are using to view our site, and what resolution they have their screens set to.


When people down-load a major package, we try to write a cookie, a small file in your computer, that records your name, serial number of the software package, and the version you are down-loading. These files have a lifetime of one year.

The reasons for storing this information are firstly that if you ask for another down-load some other time, your details are read from the cookie and are pre-written into the form, to save you looking them up again. The other reason is that next time you access our site, your browser looks through your CED cookies and compares the versions down-loaded with the latest version numbers read from our site. If there is a later version of a product you have already down-loaded, we tell you on the home page screen, so you know that it is worth going to the down-load page again.

None of this information is ever given to anyone outside CED. ×