Recent technical history of Signal version 6 for Windows

Freely down-loadable for version 6 users.

Date Version Summary
10/16 6.04a New
    The installer has been improved; there is no change to Signal itself.
08/16 6.04 New
  1. A new type of view that displays a grid of values has been added to Signal along with associated GrdXXX script functions. At the moment Grid views can only be usefully used from a script but in the longer term they will be more generally used by Signal.
  2. You can now select the signal conditioner, auxiliary stimulator or amplifier telegraphing system to be used from the Edit menu Preferences dialog instead of having to re-install Signal.
  3. Signal now operates on systems with high-resolution (high dots-per-inch) displays much better.
  4. A new Window Title dialog has been added (with revert mechanism), it is available via a right-click on the view title bar or the Window Title item in the Window menu.
  5. A new dialog has been added to set XY view channel titles and units; it is available from the Channel information item in the View menu and by double-clicking in the title and units area of either axis.
  6. A new 'random repeated' multiple states ordering mode has been added to the sequencing modes available.
  7. The mouse pointer changes over the channel titles and units area of axes to indicate that you can double-click there.
  8. The mouse pointer changes when over the channel number part of a Y axis (click to change channel selection), or the rectangle below all the Y axes (click to clear all channel selections) if there are any selected channels.
  9. The Edit menu Preferences dialog Data tab has a new option for maximum possible numeric accuracy in text output.
  10. The DrawMode(chan, item, val) form of this script function can be used to set individual values for individual channels.
  11. The Copy pulses dialog (available within the main Pulses configuration dialog) shows a message & disables the OK button if the current settings mean that it will do nothing.
  12. The App(-7) script function returns the number of free user handles.
  13. The Read() and ReadStr() script functions can now cope with d:h:m:s format.
  14. The DlgValue$() script function can now be used to select a list item with a matching string.
  15. The maximum number of script and sample bar buttons has been increased from 20 to 40.
  16. The script #include statement now copes better with .. and . in paths when matching file names.
  17. View font sizes are now preserved when the screen resolution changes (for example, when moving files to a different system).
  18. Keyboard shortcuts for control of sampling have been added.
  1. The Measurements to XY view dialog was showing the wrong channel units for the cursor 0 iteration channel.
  2. The System() and System$() script functions now handle Windows 10 correctly.
  3. The D440 signal conditioner support used with no D440 amplifier available would previously cause Signal to crash on exit (if help used) as the D440 COM code was not properly stopped.
  4. The Draw(line) script function previously did not work correctly when used on a text view.
  5. Too many views would previously cause Signal to collapse due to exceeding the GDI handle limit, now the used GDI and USER handles are checked before any view is opened.
  6. The XRange() script function used on a grid view required 2 arguments, it now works correctly with 1.
  7. The mouse cursor handling has been corrected so that it no longer flickers when moving over axes.
  8. Threshold crossing searches have been made much more robust with a (very small) imposed hysteresis.
  9. The User defined leak dynamic clamping model now prompts for a scale value in the correct units of pA rather than nS.
  10. The File menu Close command used on a view showing a Print Preview previously leaked memory.
  11. Script language functions called by toolbars and dialogs (the idle function and those responding to user actions) could previously not change the frame if the Toolbar() or DlgAllow() settings prevented the user from doing so.
  12. Saving a file with spaces or the # character in the file name was previously being prevented.
  13. View titles read from the sampling configuration were overriding the title set up by automatic file name generation.
  14. Progress dialogs displayed during lengthy operations did not update frequently enough to work well.
  15. There is now better error checking in measurement dialogs especially when involving HCursors.
  16. The pulses dialog protects against arrow up/down used on the trigger item of the control track.
  17. The settings dialog for the Hodgkin-Huxley (Alpha/Beta) dynamic clamping model no longer uses the wrong input channel for testing units.
  18. The Unicode build of Signal did not read Font information correctly from old-style (.sgr, .sgc) resource files.
  19. Sampling error messages no longer mix ASCII and Unicode to give scrambled information.
  20. Signal will now save or copy views as an image correctly even if the view is hidden.
  21. The MagStim support has been adjusted to get rid of occasional E83 errors from the MagStim, a separate error that occurred if switching to a state with a zero BiStim interval when the current interval was already zero, and another error that occurred when enabling or disabling Hi-Res timing mode when the current pulse interval was zero. All of these have only been seen with the BiStim but the E83 error could might occur with other devices.
  22. MagStim devices will automatically disarm if the wait for a sweep trigger exceeds 60 seconds, Signal will now automatically re-arm them.
  23. The YAxisStyle() and YAxisAttrib() script functions are now recorded correctly by the Y axis dialog.
  24. The signal preview display for D360, D440 and Power1401 signal conditioners now draws correctly.
  25. The script compiler is now stricter about forward declarations to functions, previously a function name might be accepted in inappropriate circumstances.
  26. The font size is now correctly calculated for printing.
  27. The behaviour of the semi-random multiple states ordering mode has been corrected, previously it was doing what random repeated mode now does.
  28. Mixing / and \ characters in a file path used with #include no longer confuses tests for a modified file.
  29. Marker data is now correctly imported from foreign file formats.
  30. When the FilePathSet$() script function was used to generate a dialog with which the user could select a directory, any initial directory in path$ was being ignored.
  31. When the FileExportAs() script function was used with a blank name to save the sampling configuration with the file name set by using a dialog, it used to fail to create the file save as dialog and instead saved the sampling configuration as ".sgcx". This has now been corrected.
  32. The recording of the XRange() script function by the X axis dialog has been corrected.
  33. Standard Display was setting the y-axis limits before adjusting the Y axis style. So if the style was changed from non-linear to linear, the new limits might be wildly incorrect.
  1. Adding a single pair of values with the SampleTel() function will now replace an existing entry pair if the voltage level matches that in the existing entry - this matches the interactive behaviour of the dialog.
  2. The check for the latest downloadable version of Signal is now done inside the Signal application rather than the About Signal dialog box. Previously, with no internet access, using the About Signal dialog box would prevent Signal from being used for up to a minute. As it now stands, if there is no internet access, the program window will take up to a minute to close if an attempt to do so is made within about a minute of the program being run.
  3. Any sort of quiet startup now does not display the "splash screen" - the version of the About Signal dialog box that normally appears while Signal is starting up.
  4. The view title for new data that is being sampled is now not forced to upper case.
  5. The multiple states protocol, artefact rejection and waveform paste dialogs now handle any bad values entered rather better; displaying any error information in red at the bottom of the dialog.
11/15 6.03c Fixes
  1. Signal no longer uses the wrong input channel for testing the channel units in the alpha/beta dynamic clamping model.
  2. Saving files with file names containing the space and # characters is now allowed.
  3. When plotting the iteration count to an XY view, a zero value is now plotted when no iteration points are found when analysing a frame.
  4. Any changes made to a ramp pulse's step options are not lost when preview button clicked in the pulses configuration dialog.
  5. The peri-trigger sampling mode pre-trigger time now does not change when the sampling rate is changed.
  6. Digital markers are now logged at the correct time when sampling in peri-trigger mode.
  7. The messages indicating a sampling error have been corrected; previously ASCII and Unicode were mixed-up to give scrambled message text.
08/15 6.03b Fixes
  1. Text file document names and window titles were being changed when a changed document was automatically saved, so as to allow auto-recovery in the case of a Signal crash. This has been corrected.
08/15 6.03a Fixes
  1. The special 'Sampled frames' overdrawing mode could cause problems when sampling finished, or when data files sampled using this display mode were opened again, because this mode was not handled correctly offline. Signal now converts this overdraw mode to 'All frames' when not sampling.
  2. Overdraw settings with such a short time limit that no frames were left to be overdrawn could hang Signal; now just the current frame is drawn.
  3. Changes to the Y axis range always erases channels overdrawn using the special 'Sampled frames' overdrawing mode, so that all data shown is drawn correctly.
07/15 6.03 New
  1. Signal is now built in Unicode mode where all text uses the Unicode character set. If you take advantage of this to use extended (non-ASCII) characters in scripts and resource files, older version of Signal will be able to read the scripts and resources, but will not interpret the extended characters correctly. If you continue to use only characters from the standard ASCII character set, older versions of Signal will be able to read and use your new files without any problems.
  2. Signal now periodically saves text-based, memory and XY documents and in the event of a program crash, will attempt to recover the last saved state when it is restarted.
  3. The script language has been extended to allow arrays to be initialised and even declared as const: for example: const colour$[]:={"Red","Green","Blue"};
  4. You can declare an array passed into a user-defined func or proc as const. Built-in script functions that accept array arguments but do not change them also declare these array arguments as const.
  5. The Digitimer D440 amplifier has been added to the available signal conditioner devices.
  6. The MagVenture MagPro transcranial magnetic stimulators has been added to the available auxiliary states devices.
  7. Auto-averaging analysis now includes options to limit the maximum number of frames in the memory view holding the averaged data (when the frame limit is reached the analysis 'wraps round' and adds into the averages starting with frame 1 again) and to select the destination frame using the source frame state number. The SetAutoAv() script function has been extended to support this new functionality.
  8. The script language now allows you to use the underscore character (_) as part of a symbol name.
  9. The script language now has predefined constants for the Signal version and the mathematical constants π and e.
  10. The ternary (?) operator now optimises a branch away if the result is a constant expression, for example: const v := _Version >= 603 ? 1 : 0; This is more valuable than it immediately appears; it means that one of the two possible expressions that can generate the result will vanish during the compilation process, before it is actually compiled. This in its turn means that if you do something like: const v := _Version >= 603 ? InStrRE(...) : 0; the InStrRE() bit will be ignored if the Signal version is too low, so you can include new script functions into scripts in such a way that the script will still compile correctly in Signal versions that do not include the new script function. The if statement will behave similarly when used thus: if (_Version >= 603) then.....
  11. Signal now allows up to five file comment lines to be placed into a data file, each up to 72 characters long. The file comment dialog, file information dialog and the FileComment$() script function have all been altered as appropriate.
  12. The MemSetItem(), MemGetItem(), MemImport(), MemDeleteItem() and MemDeleteTime() script functions will all operate on ordinary marker channels if they are in memory frames - that is, frames appended to a file view or frames in a memory view.
  13. The FrameUserVar() script function has been extended to allow the name and units of a user frame variable to be read back or changed.
  14. The ChanPixel() script command has been extended to return the pixel co-ordinates of various screen rectangles.
  15. A Reload frame option has been added to the Edit menu to directly discard changed data or frame variables.
  16. The file information dialog and all relevant script language functions now have access to user frame variable information for memory views.
  17. The DebugList() script command in timing mode has new flags to list commands that were used in the timing session (and therefore have timing information), or to only list unused commands.
  18. The ArrFFT() script command can now specify the type of window to apply.
  19. A new preferences display option allows use of Direct2D for text view output.
  20. You can now resize a script array to 0 size (previously we trapped this as an error).
  21. The new ArrConv() script command performs discrete convolutions.
  22. The new Spline2D() script function performs 2D interpolation and can generate "heat maps".
  23. The new InStrRE() script function searches text string for regular expressions.
  24. The script editor can identify local and global variables; you can right-click a variable to go to its definition (even in an include file).
  25. Excessive script call stack usage is now trapped. This is usually caused by a script function recursively calling itself.
  26. You can now right-click on a fit and select "Copy fit for VC" to copy an equivalent virtual channel expression to the clipboard.
  27. The CursorLabel() and HCursorLabel() script functions have gained a new (&form$, num%) variant to read back the format string.
  28. The ToolbarEnable() script function allows an array to be given as the first argument so that you can enable or disable a list of buttons with a single function call.
  29. A new DlgImage() script function has been added to the script language as an experiment. This lets you add a bitmap image to a user-defined dialog.
  30. When Signal enters the script debugging state, it now reopens any previously open debug windows; initial scroll bars are correctly shown in all debug windows.
  31. The Windows dialog now pays attention to the selected window(s) properties when enabling and disabling buttons and can optionally show all windows.
  32. The copy as text settings dialog now includes an option to include channel units, and the ExportTextFormat() script function has a flags parameter bit that does the same thing.
  33. Changed view data will be redrawn in Yield() and on debug break.
  34. The new MarkInfo() script function returns the number of values attached to each item in a real marker channel.
  35. SampleAuxStateParam(6) will return Magstim device status information when used during the sampling process (and of course only if the MagStim support is installed and in use).
  36. The behaviour of Modified() has been tidied and corrected and the documentation made clearer. FrameSave() now saves changed frame variables as well as changed frame data.
  37. The variable edit dialogs provided within the script debugger now handles long strings better.
  38. The BinToX() and XToBin() script functions have been extended to operate upon all types of channel.
  39. The FileSaveAs() and FileExportAs() script functions now both copy all available frame variables to the destination file; file variable values are also copied where possible.
  40. A new SampleTriggerInv() script function has been added to control the rising edge trigger option in the sampling configuration.
  1. If a script ended in "if ... then ... halt endif", the resulting compiled script could crash Signal when used.
  2. The Read() function now correctly reads a full line of text and not just the first character.
  3. Changes have been made to text views to avoid possible loss of the folding controls.
  4. The text export process has been adjusted to avoid possible loss of the previous locale setting.
  5. The use of external exporters and the MATLAB access script functions have been adjusted to protect against spurious locale changes.
  6. The D360 signal conditioner support code now returns a correct list of possible sources.
  7. Bit 0 in the FileConvert$() script function flags argument is now interpreted correctly.
  8. The last line of the cursor values or cursor regions windows is no longer repeated when scrolling up.
  9. Previously, the FiltCalc() script function would fail if the corresponding filter hadn't been initialised.
  10. The CursorLabel(style, 0) script function now sets the style for cursor 0 (as documented), and not all cursors.
  11. Previously, a file comment set during the sampling could be inaccessible until the file was closed and re-opened.
  12. In a user-defined dialog, selecting an item in a DlgReal() or DlgInteger() drop-down list did not work. Typing a value worked correctly.
  13. The script compiler has been altered to prevent possible crashes when accessing view data as an array.
  14. Resizing the cursor values or cursor regions windows now no longer forces the display to show column and row 0.
  15. The IIRInfo() script function result is now the filter type as documented.
  16. The script compiler now does not keep included script files open once compilation is complete, previously this would make it impossible to write changes back into the include file.
  17. The curve fitting system now handles times in milliseconds correctly.
  18. If a script included multiple files, the debugger could get confused and show the step marker in the wrong file.
  19. Previously, saving an empty XY-view channel could cause Signal to crash.
  20. The ternary (?) operator now insists on a numeric expression before the ?; previously it would allow other things and then malfunction.
  21. The D360 signal conditioner control dialog now initialises correctly.
  22. A dynamic clamping user-defined synapse model using a table greater than 31488 points in size would exceed the available memory and sometimes crash Signal. Now any size of table up to the allowed maximum (4,096,000) can be used subject to available 1401 memory.
  23. The ColourSet() script function with size args of 0 or -1 now behaves as documented.
  24. The Help() script command would previously hang if the topic lookup required a choice of target items.
  25. The multiple states page in the sampling configuration dialog would cause Signal to fail if the number of states was increased in static output or external digital modes.
  26. The FrameGetIntVar(), FrameGetRealVar(), FrameGetStrVar$(), FileGetIntVar(), FileGetRealVar()and FileGetStrVar$()script functions now all correctly return the variable number in the second argument.
  27. The SerialRead() script function has been altered so that it deals correctly with situations where the external device supplies large amounts of text between each line terminator.
  28. Searches for channel features would often give up one point too soon, or start one point too early when searching backwards.
  29. Measurements to a data channel could think that it was stuck and stop processing when in fact all was OK; now it is more tolerant.
  30. Points mode cursor 0 iteration mode could miss out the first point in the frame; now it will not do so.
  31. The Power in Band virtual channel mechanisms have been adjusted so that the virtual channel draws correctly during sampling.
  32. The Measurements to XY view analysis settings dialog was broken so that previously all measurements were an average of points with a frame even when this option was not selected.
  33. Fitted curves in XY views are correctly printed and shown in bitmaps and metafiles. Previously not all of the fitted curve was drawn.
  34. Frame variables holding membrane analysis results from clamping experiments were previously ignored; they are now shown in the File information dialog and available for trend plot measurements.
  35. Script variables that were declared and initialised with a constant value within a loop were not being re-initialised each time round the loop. This is now handled correctly.
  36. Writing text to an external text file without a view has not worked since version 6.01; it is now done correctly.
  37. Previously, the View menu Standard display command or the ViewStandard() script function might have crashed Signal, or not worked correctly.
  38. Setting the minimum interval to zero when importing from a waveform to a memory marker now works correctly; previously the import mechanism would only find the first feature.
  39. If you tried to use the Edit menu Find dialog on a view that was iconised, the dialog would be mispositioned off the screen and could not be retrieved.
  40. In a number of places, most notably data export to MATLAB and the memory channel Add item dialog, real marker channels with more than one real value per item would be treated as though they only had one item.
  1. Paste has been added to the right-click context menu for file and memory views.
  2. An asterisk character (*) is now added to the data view title if channel data or frame variables have been changed.
  3. An active horizontal cursor now acts as if static when placed on a channel without a Y axis.
  4. If you chained scripts together using ScriptRun(), then broke into the debugger using the Esc key at the point where a chained script was compiling, compiling was aborted and the script halted (which was probably not what was intended). An Esc during compile now only causes an abort if the compiler has been running for a few seconds.
  5. The frame header generated when copying or exporting as text now includes the frame state number and state label (if not blank).
  6. The interact bar and script toolbar now use the standard Signal dialog font for message text.
  7. The FiltAtten() script function now returns a negative value as this is an attenuation. The FiltInfo(x, -1) function result has been changed to match.
  8. The default font for user-defined dialogs is now equivalent to DlgFont(1) rather than DlgFont(0). There is a new Preferences compatibility option to force the old behaviour.
  9. Signal conditioner error messages are now written (if enabled) to the log window instead of to the CEDCOND.LOG file.
  10. The SampleClear() script function now resets the channel calibration & conditioner settings.
  11. The SampleLimitFrames(), SampleLimitSize() and SampleLimitTime() script functions now all set the relevant limit to 0 and disabled if called with a zero argument.
  12. Threshold searches searches use linear interpolation to get the exact start level and use this to allow immediate (on first point) search success.
  13. The SetCopy() script function now ignores virtual channels, real marker channels and idealised trace channels when creating the new view.
  14. More space in the Leak subtraction settings dialog has been made available for error messages so that they are not truncated.
  15. The script language compiler used to allow floating point variables to be passed to functions which expected a reference to an integer variable. This has now been prevented; an option in the compatibility section of the preferences can be used to revert to the previous behaviour.
  16. The "Info..." command in right click context menus has been changed to "File information..." to match the equivalent View menu command.
  17. The File information dialog display has been adjusted to show only those variables whose values are not already shown in the general
  18. The Edit menu Find Again and Find Last commands for text based views are now called Find Next and Find Previous as this is the more common usage.
08/14 6.02 New
  1. It is now possible to set up horizontal cursors as active, normally by using measurements taken from the channel upon which the horizontal cursor is placed. The active horizontal cursor modes available include the channel value at a set point, the mean channel value over a time range and an expression string such as "HCursor(1) + 1.5" which is evaluated to generate the measurement.
  2. A new HCursorActive() script function has been provided to set and get active horizontal cursor parameters. A new HCursorValid() script function tests the validity of a horizontal cursor position.
  3. An experimenter’s notebook has been added to the data stored with Signal data files. This notebook automatically records the settings used to sample data, actions taken during sampling including changes to the pulse outputs and dynamic clamp models, offline modifications of the CFS data and notes made by the user.
  4. A new processing mechanism that generates interval histograms from marker data has been added, along with a matching SetINTH() script function.
  5. A new "Lock to cursor" item has been added to the pop up menus generated by right-clicking on a vertical or horizontal cursor.
  6. A new and more elegant CursorActive() script function has been provided, this replaces the messier (and now deprecated) CursorMode(), CursorActiveSet() and CursorActiveGet() functions.
  7. When sampling data while not writing the collected data to disk, the Write to disk at sweep end check box text in the sampling control panel will be shown in red to remind you that data may be lost.
  8. Any data frames appended to a file or memory view will have a reasonable absolute frame start time set.
  9. When debugging a script, the text caret moves to the start of each statement rather than the start of the line containing the statement; this is helpful when a script has multiple statements on one line.
  10. Synapse dynamic clamping models are not reset at the end of a sweep when using gap-free mode.
  11. The various dialogs provided to define details of modify channel operations (for example to set the scale factor) all show the channels that are going to be changed.
  12. The multiple frames dialog and filter apply dialog both show the frames and channels that will be changed and disable the OK button if the current settings mean that nothing will be done.
  13. An option to overdraw the Y source channel has been added to the settings dialog for measurements to a real marker channel. This option is also available via bit 3 (value 8) of the flg% parameter to the MeasureToChan() script function.
  14. The new FrameGapFree() function gives access to the flag indicating if the data file was sampled in gap-free mode and can set the gap free flag in memory views created by Signal.
  15. Right-clicking in the title bar of a view offers a popup menu where you can copy the path to the associated file to the clipboard.
  16. The standard error in the mean (SEM) and RMS error values have been added to the range of available cursor region measurements, the ChanMeasure() script function and measurements to XY views and data channels.
  17. The amplitude histogram and open closed amplitude histogram settings dialogs recalculate the bin width as necessary if the Y axis range of the relevant channel changes.
  18. An Import button has been added to the new memory channel dialog.
  19. The dialog used to select the channels, frames and time ranges for export to a CFS file now checks all fields dynamically are they are changed.
  1. The FrontView() script function would attempt to bring external text and binary files without associated windows to the front, it now does nothing when used with these files.
  2. The FileCopy() script function could fail in the 64-bit build of Signal due to a previous file operation still running, the copy operation is now retried to avoid this problem.
  3. Measurements making use of frame variable values now always use the correct frame number to find the variable value.
  4. Fitting events in SCAN analysis which became too short for the time resolution now correctly removes the events from the idealised trace. Previously the removal process would corrupt the idealised trace.
  5. Undoing a trace edit in the idealised trace editor could fail; corrupting the trace in the process.
  6. The range of trigger bit values allowed by the SampleAuxStateParam() script function for the MagStim has been corrected.
  7. Frame selectors in dialogs now react correctly to the user entering an arbitrary list of frame numbers.
  8. Script errors in a function linked to a toolbar, dialog or a dialog button did not indicate the script line that caused them.
  9. Moving the text caret to a line in a text-based view did not always scroll the view so that this line was visible.
  10. The behaviour of the Del key when used to hide selected channels has been corrected.
  11. Script errors that were not related to a specific argument, for example calling DlgShow() with too few arguments, reported an error number rather than a more helpful message.
  12. When recording user actions, clicking on a text-based view did not always record a FrontView() command or add ViewFind("view title..."); to the start of the script.
  13. The amplitude histogram, open closed time histogram, open closed amplitude histogram and burst duration histogram settings dialogs all recalculate the bin width, number of bins and histogram width as necessary when other relevant changes are made.
  14. Signal now copes correctly if you change the destination channel type in the measurements to data channel settings dialog and re-process.
  1. Data channel Y axes can become more compact before space is saved by ceasing to show horizontally drawn axis units.
  2. If the CursorMode() script function is used to set a cursor 0 mode that is not allowed for cursor 0, the mode is forced to zero.
  3. The multiple states protocol dialog now prevents entry of state numbers greater than those being used.
  4. Digital filtering and multi-frame analysis both ensure that the last frame modified is flushed-out to disk rather than allowing the changed data to remain in an unsaved or undiscarded state.
  5. The range of COM port numbers allowed by the SampleAuxStateParam() script function for the MagStim and CED 3304 have been extended to allow port numbers from 1 to 19.
03/14 6.01a Fixes
  1. In certain circumstances when using MatLabPut() to copy an array of integer data over to MATLAB too much data could be copied into the destination MATLAB array; this has now been corrected.
03/14 6.01 New
  1. The Hodgkin-Huxley (Alpha/Beta) dynamic clamping model has been extended so that it now has three components (the third one being identical to the original two), the output being the product of all three components.
  2. All of the general-purpose dynamic clamping synapse models (Alpha, Destexhe, Exponential, Exponential difference and User defined) have been extended to include a receptor type which can any of Linear, GHK, Boltzmann or User defined.
  3. The dynamic clamping noise model has been extended to provide GHK and Boltzmann scaling in addition to the unscaled and user-defined scaling forms already available.
  4. The dynamic clamping Hodgkin-Huxley (Tau) model has been extended by allowing user-generated tables to be used instead of the standard functions.
  5. An option to disable all DC models at the start of sampling has been added to the main dynamic clamping models dialog.
  6. A new option to always draw marker code values as two hexadecimal digits has been added to the draw mode dialog; the DrawMode() script function has been extended to match this.
  7. A new option to disable drawing of the centre line for markers drawn as Lines has been added to the draw mode dialog, the DrawMode() script function has been extended to match this.
  8. Markers drawn as Dots or Lines can now be drawn using colours selected by the marker code value in the same manner as real markers drawn as a Waveform.
  9. A new ArrStats() script command has been added to allow you to quickly calculate statistical measures from array data.
  10. A new ArrHist() script command has been added to generate a histogram by binning array data.
  11. A new MATTrace() script command has been added to calculate the trace (the sum of the diagonal) of a square matrix.
  12. The FitLine() script command now operates on real marker channels and XY view data as well as waveform channels.
  13. The Sample Bar and the Script Bar now both have a Remove button option in the popup menu provided by a right mouse-click on a button.
  14. The software used to control the MagStim Rapid TMS stimulator has been extended by adding mechanisms to check for excessive power dissipation in the hardware; it checks for problems while setting up for sampling and when necessary holds off the next sweep in order to protect the hardware by increasing the interval between stimulations.
  15. The software used to control MagStim TMS stimulators always reads back the current settings after they have been set to make sure that they are correct.
  16. The software used to control MagStim TMS stimulators will now read back and display any error codes generated by the MagStim system. In addition, the MagStim control system now logs a much greater amount of information to the log window to help with diagnosing errors.
  17. The script and text sequence views are now able to display tooltips when the mouse pointer hovers over the name of a known function.
  18. Output resets in a sampling configuration are applied (if the Apply when sampling configuration is loaded option is selected) when the sampling configuration is loaded by any means including the sample configuration bar.
  19. The Error$() script function is now able to generate a result for all error codes associated with resource files.
  20. The absolute frame start time is now set in sampled data collected using Fast fixed interval mode.
  1. The DebugHeap() script function has been adjusted to avoid possible problems with multi-threaded code.
  2. The drawing of fitted curves over XY view data has been adjusted so that the X range over which the fitted curve is drawn takes any XY channel offsets into account.
  3. The documentation of the FileConvert$() script function has been corrected to include the (already available) cmd$ parameter and the documentation of the various importers has been updated to give information about what can be put into cmd$.
  4. The manual control option in the MagStim Rapid setup dialog has been removed as it is unusable - the UI used to control the stimulator manually has to be disconnected in order to control the device using Signal.
  5. The help button (and F1 key) in the output reset dialogs now work correctly.
  6. The pulses dialog testing for timing errors has been corrected so that any timing problems with the sampling sweep trigger are shown.
  7. The Error$() script function now generates the correct result for all error codes associated with CFS data files.
  8. When using the virtual channel dialog while frame 0 is the current frame, the virtual channel data is now zeroed if the virtual channel expression is bad.
  9. The sampling configuration dialog could incorrectly increase the outputs length (for Extended and Fixed interval modes) when the waveform sample rate was reduced, this has now been corrected.
  10. In the 64-bit build of Signal 6.00, the frame state number field was not shown correctly in the digital filter apply dialog, the multiple frames dialog and the curve fitting dialog; these have all been corrected.
  11. The dialog used to select the channel whose value would be measured for a user-defined vertical cursor label previously included a 'Selected' item, which did not work correctly if used.
  12. Where a user-defined vertical cursor label includes a measurement from a channel, the label is updated when the relevant channel Y axis is changed in such a way as to change the formatting of the Y axis numbers.
  13. A vertical cursor label that makes use of a channel data value at the cursor position will be always be refreshed if the channel data at the cursor position is changed, previously this might not happen.
  14. The user dialog change function used to get called whenever the input focus moved away from a numeric field even if the field has not been changed, this has now been corrected.
  1. The rectification option in the dynamic clamping OU Noise model can now be set differently for different sampling states and can be changed while sampling.
  2. Multiple dynamic clamping model dialogs can now be opened simultaneously during sampling so that model parameters can be efficiently manipulated, opening a model dialog now does not minimise the main dynamic clamping setup dialog.
  3. The Y axis range optimise command will use the range of all grouped channels if the Y axis is locked.
  4. The ChanList() script function now returns -1 for a bad string parameter.
  5. The IFc() virtual channel expression now behaves as IF() if there are only two markers, as cubic splining will not be possible.
  6. The minimum preferred Power1401-3 monitor ROM version number has been updated to 4, as this release fixes a flaw in the data transfer mechanisms that could cause temporary corruption of dynamic clamp models when they are updated. Users with older Power1401-3 monitor ROMs are warned when Signal starts up that an upgrade is needed, but are not prevented from sampling.
  7. The information held in the XML resources file is not completely erased before the new information is added; this will not make any difference to users but it will ensure that any extra information added in later versions of Signal is not accidentally erased if the file is viewed with an earlier version.
  8. The order in which channels are shown in channel selectors in the various process settings and virtual channel dialogs now matches the channel ordering in the associated data view.
  9. The pulses dialog now always displays the time range for the outputs using sufficient precision based upon the outputs timing resolution.
12/13 6.00 New
  1. A new real marker channel type has been added to the repertoire.
  2. Various marker-related script commands have been extended to support this - for example MarkCode() can read the real value(s).
  3. The memory channel system previously used to store idealised trace data has been extended to allow marker and real-marker channels.
  4. New Memory channel dialogs have been added to allow you to interactively create, import into and add and delete items from memory channels. These dialogs are matched by new MemChanXXX script functions.
  5. A new processing mechanism that generates marker or real marker data in memory channels has been added. Like other processes, this works both on and offline and can be part of a sampling configuration (and, of course, scripted).
  6. Standard 1401 (voltage level based) telegraphs can now be used alongside any installed auxiliary telegraph system, rather than only being available if no auxiliary telegraph support is installed. This allows more flexibility for the more complex clamping experiments.
  7. The membrane analysis dialog has been re-designed to make it easier to use and to make the analysis more robust.
  8. Drawing options for marker data have been extended to allow selection of the marker code byte shown and the real marker value used.
  9. Extra options to start sampling immediately and to force write to disk on added to the sample bar list dialog, both the sample bar and the script bar provide useful right-click context menus.
  10. A duplicate model button has been added to the dynamic clamp models dialog and a rectification option added to the noise model.
  11. A number of extensions have been made to the FileExportAs() script function to provide greater flexibility.
  12. Both 64- and 32-bit versions of the software will be shipped and the user given the choice of what to install if appropriate. The 64-bit version requires a 64-bit version of Windows, is some 10 percent faster and will interface with 64-bit versions of MATLAB.
  13. The virtual channel system has been extended to provide mechanisms to generate a waveform from real marker channel data.

Cambridge Electronic Design Limited

Registered in England: 972132

Registered office:

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:
By telephone:

(Int.+44) (0)1223 420186

From North America (Toll Free):

1 800 345 7794

By Fax:

(Int.+44) (0)1223 420488 ×

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. ×