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

Technical history of Signal version 7

Freely downloadable for version 7 users.

Date Version Summary
05/2022 7.07 New
  1. There is now a check box in the DuoMag settings to disable checks on triggering.
  2. You can now specify the output pulses for dual DuoMag MP devices in either order.
  1. The level dialog for virtual channel expressions now accepts negative values.
  2. Standard display now turns on channel numbers.
  3. You can now undo showing channel numbers.
  4. Modifying a virtual channel expression from within the virtual channel dialog now causes the channel to be redrawn in other views.
  5. Modifying the virtual channel expression from a script will now cause dependent virtual channels to update.
  6. Previously, it was possible to interactively carry out a process such as waveform averaging or measurement generation during sampling when this processing was already executing as part of the sampling. This is now prevented.
  7. The PulseAdd() script function now works for digital channels.
  8. Marker times are kept quantised, and duplicate markers at the same (quantised) time are now prevented.
  9. The ViewList() script function now lists sequencers views correctly.
  10. The copy pulses to states operation in the Pulses dialog is now detected as a change and so enables the OK button.
  11. Importing ADI data files with high section counts could cause the importer to fail.
  12. The YRange() script function now works in grid views as documented.
  13. Signal no longer fails if the sampling configuration dialog is closed while browsing for a folder in the Automation tab.
  14. Signal could lose keyboard markers if the PC had been left on for many days; this is now fixed.
  15. When sampling without multiple states, the auxiliary states control bar might be visible and the auxiliary states items in the sample menu could be available. This has now been fixed.
  16. Changing a TMS stimulator RMT value using the auxiliary states control bar would not affect the actual device settings. This has now been fixed.
  17. The information on available 1401 firmware versions was incorrect so that Signal might suggest that an update was available when it was not.
04/2021 7.06 New
  1. The FilePath$() script function allows a parameter of -6 for the path to application data.
  2. The Copy button in the About dialog now generates text showing path information.
  3. The BinZero() script function can now be used to set the start time for a frame in a file view.
  4. The ToolbarEnable() script function can count enabled buttons, report if Idle set.
  5. The DS8R auxiliary states device now stores stimulus parameter information in data section variables when being manually controlled.
  6. A new SampleClampHP() script function has been added to allow control of the holding potential during sampling.
  7. The ChanKey() script function has been extended to allow a key to be moved outside the visible area of the view.
  1. Line drawing mode now draws correctly with a square root axis.
  2. Signal attempts to create any missing key data paths on startup; a message will be generated in the log window if this does not succeed.
  3. It was possible to inadvertently disable writing to disk by using SamplePause() when sampling was already paused.
  4. The error message for the next step in a states protocol being wrong now quotes the correct range.
  5. Sampling very large numbers of 1401 ports could cause errors due to an excessively long string being generated. This is now fixed for 0 to n port lists.
  6. Large port counts in a sampling configuration could cause setting-up for sampling to take an excessively long time.
  7. FrameTag(0) could crash Signal.
  8. The debug output generated for command 8 of the MagPro stimulator has been corrected.
  9. Importing some data files with channel comments could cause a complete crash.
  10. The script compiler could get very confused by illegal characters.
  11. When trying to read clipboard text, Signal will retry several times after any failure in case the clipboard is unavailable.
  12. The ViewColourSet\Get script functions now work on an info view.
  13. Sliders in user dialogs use integer steps with integer values.
  14. Slider tooltip displays while dragging avoid duplicate tooltips.
  15. Signal is now protected against a possible crash when opening a corrupted resource file.
  16. Saving a grid view clears the modified (*) marker in the view title.
  17. Digital outputs, generated using the pulses system, are correctly positioned before marker generation so that they are synchronous.
  18. Info and grid windows came up as "Unknown" in global debug window.
  19. Grid documents were previously always saved, even when the user said not to save them.
  20. The timing calculations for output pulses have been improved to avoid possible erroneous rounding effects.
  21. The Cursor() and CursorLabelPos() script functions now record correctly. Previously, creating user dialogs or using the Message() script function with the main window hidden could jam-up Signal.
  22. Creating user dialogs or using the Message() script function with the main window hidden could jam-up Signal.
  23. The PowerMAG support now ensures that powers are multiples of 0.5% MSO.
  24. Signal conditioner controls are once again available online if sampling was started directly from the sampling configuration dialog.
  25. If, while sampling, you deleted virtual channels and then duplicated the view, previously the deleted virtual channels would re-appear.
  26. Data view Y axes now behave sensibly if big ticks are turned off using YAxisMode(); previously this caused channel titles to be drawn horizontally.
  27. Sampling with the PowerMAG stimulator in ppTMS mode could miss the first trigger after switching to a new sampling state.
  28. When sampling using the PowerMAG or Neurosoft stimulators, the power levels stored in frame variables in the new data file were incorrect.
  29. The pulses dialog would show a spurious timing fault at the end of an arbitrary waveform output using more than one DAC.
  30. The TRIG output sequencer instruction has been adjusted to prevent possible problems with external trigger pulses.
  31. The font dialogs now initialise the Style field correctly.
  32. The POINTS and XOR sequencer instructions for the Micro1401-4 did not work correctly.
  33. The behaviour of the File information dialog while sampling has been improved; you can now change the column widths without them being immediately reset.
  1. Waveforms are no longer rectified when drawn in dots mode with a square root axis.
  2. The TDT importer will not fail outright if some .sev files are missing, but will import any files that are present and record the missing ones.
  3. Data view X axes now still show the time units if big ticks have been turned off using XAxisMode().
  4. The units for TMS stimulator power levels saved in frame variables are now either "% MSO" or "% RMT" according to the device configuration.
02/2020 7.05a New
    Commands for the original micro1401 now included.
12/2019 7.05 New
  1. Support for the Neuro-MS transcranial magnetic stimulators from NeuroSoft has been added.
  2. Automatic Y axis optimisation of data channels at the end of a sampling sweep is now supported via a check box in the sampling configuration.
  3. A new SampleAutoOpt() script function has been added to give scripted access to this feature.
  4. The XY view axis optimisation mechanisms has been much extended with a new Autoscale Axes system.
  5. The new Micro1401-4 hardware from CED is now fully supported; this type of 1401 supports dynamic clamping unlike previous types of Micro1401.
  6. When sampling with a Power3A or Micro4 system, the 200 MHz system clock available in these systems will be used to obtain higher timing precision, for example of ADC sampling rates.
  7. A new HCursorVisible() script function has been added to control horizontal cursor visibility.
  8. The System() function has been extended to return GUI thread timing info.
  9. The System$() function has been extended to provide Signal command line access.
  10. A new FileTimeDateSet() script function has been added; this can be used to set the sampling start time for a data file.
  11. A new ChanKey() script function has been added; this can be used to control the position and appearance of keys in XY views.
  12. A new XYSetData() script function has been added; this can be used to edit the data in an XY view.
  13. Real marker channels can now use secondary marker values to decorate the displayed data with error or confidence range bars.
  14. A new ChanDecorate() script function has been added to provide scripted access to this feature.
  15. The dialogs used to edit script variables have all been enhanced.
  1. EditCopy() leaked a GDI handle when used to place a bitmap on clipboard.
  2. CursorVisible() with -1 cursor number to select all cursors now works correctly.
  3. Large channel background bitmaps are now handled much more efficiently.
  4. SampleSeqWave() did not work correctly with only one arg.
  5. Previously, MagStim auxiliary stimulator settings failed to load correctly from an old-style sgc file.
  6. The dynamic clamp setup dialog now correctly shows the 'zero DACs between frames' state during sampling.
  7. The Selection$() script function now works correctly on grid views.
  8. In the pulses dialog, the step value for a square pulse with varying length was being corrupted if the pulse times were not displayed in seconds.
  9. The data buffer size for imported files is now limited to a safe value; this fixes some cases where huge buffers were being used, causing memory problems.
  10. The MagStim auxiliary device support was failing to correctly convert power values specified as a percentage of RMT to the actual power levels wanted.
  1. Signal has been converted to use new-style XML file access mechanisms by using a newer much improved XML support library.
  2. The XML information for HH(A/B) dynamic clamping models was illegal according to the full XML standard and this data was refused by our new, faster, better library. Old XML cannot be read without editing the sampling configuration file manually; a version of Signal version 6 which automatically fixes this XML will be released soon.
  3. The MagStim support software now automatically attempts to restore remote control if it is lost; a warning message will be generated in the log window if this occurs.
  4. The mechanisms used to ensure that the colours drawn are clearly visible have been tidied up so that they are a bit less fussy.
  5. The MagPro TMS device support now works with some older versions of MagPro firmware though we would recommend anyone using a MagVenture system to update their firmware to the latest version.
10/2019 7.04a New
    The Micro1401-4 is supported.
09/2019 7.04 Fixes
  1. Sampling configurations are now read back correctly from disk, version 7.03 failed to read the information relating to windows and views, online processing and virtual channels.
  2. The installer now installs the correct importer for Spike2 data files.
04/2019 7.02 New
  1. Measurement generation using Expression mode will accept Y value expressions such as "H1" (and measurement expressions such as Mean(t1, t2{, c}) if the optional channel number is provided); previously only expressions relating to an x axis position could be used.
  2. The auxiliary states device settings dialogs can now all be used during sampling. In general only the per-state settings may be changed while online.
  3. A new dialog has been added to simplify copying auxiliary state device settings; this is accessed using a Copy to ... button which replaces the Copy all and Copy above buttons previously present in all auxiliary states settings dialogs.
  4. Auxiliary device support for TMS devices now allows power levels to be optionally specified as a percentage of resting motor threshold (RMT). The SampleAuxStateParX() script function has been extended to match.
  5. A new auxiliary states control bar has been added to simplify use of these devices during sampling. This provides a single quick access variable (resting motor threshold (RMT) for TMS devices) along with a button to open the main settings dialog.
  6. The title and units of virtual or memory channels can now be changed during sampling.
  7. A new Chan() script function has been added; this turns strings into channel numbers.
  8. You can now type time interval expressions such as 1/200 as a sample interval for virtual channels.
  9. You can now allow external text files to be opened as Unicode, using the FileOpen() script language function, by adding 32 to the mode% parameter.
  10. The support for the MagStim Rapid TMS stimulator as an auxiliary states device now includes a recharge delay parameter to reduce possible noise.
  11. A new colour scale dialog is available from the Display preferences; this can be used to define colour scales to be used for colour mapping.
  12. The EditPaste() script command has been extended to support moving a bitmap into an integer array.
  13. The EditCopy() script command has been extended to copy real and integer arrays to the clipboard as bitmaps.
  14. A new EditImageSave() script command has been added; it saves bitmap images held on the clipboard to a file.
  15. The Spline2D() script command has been extended to use the colour scales to define mapping colours and to generate a rectangular grid of result values in addition to the current bitmap-format output.
  1. The Measurements to trend plot settings dialog now enables and disables the New button correctly, especially when using an Expression measurement.
  2. If the DS8R auxiliary states device support was used with no DS8R device connected (and with use without hardware enabled) previously this would crash Signal.
  3. The day of week conversion carried out by the TimeDate() script function used to fail for Saturday and Sunday; it now works correctly.
  4. The MeasureToChan() script function now accepts points mode for cursor 0 iteration.
  5. The MeasureY() script function is now recorded with the correct measurement type code.
  6. The Channel to match option now records correctly for virtual channels.
  7. "File information..." no longer appears twice in the right-click popup menu for memory views.
  8. Changing the state label in the Pulses dialog is now correctly detected as a change to the pulses data.
  9. Signal no longer crashes if you attempt to apply a FIR filter to a frame which does not contain any data.
  10. Spinners now work correctly for the pulse delay item in the Pulses dialog when not using absolute times.
  11. A single DAC and 8 digital outputs will now render correctly in the Pulses dialog.
  12. Script functions with more than 20 arguments are now handled correctly.
  13. A leak of Windows resources when setting up for sampling has been corrected.
  1. The option to allow sampling with a missing auxiliary states device is now in the Sampling preferences instead of the Settings dialog for the individual auxiliary states devices.
  2. The number of auxiliary states devices is now limited to 10; previously the relevant settings dialog was not accessible for any devices beyond this limit.
  3. When exporting an XY view to a MATLAB data file, a MATLAB variable is now generated for any XY channels with no visible data.
08/2018 7.01 New
  1. Signal can now make use of multiple auxiliary states devices; any mix of different (or the same) types of device can be used. A label can be assigned to the individual devices to allow them to be distinguished.
  2. New SampleAuxStateNew() and SampleAuxStateRemove() script functions have been added to allow manipulation of the list of auxiliary states devices in use.
  3. New SampleAuxStateParX(), SampleAuxStatePar$() and SampleAuxStateValX() script functions have been added to give access to the settings of multiple auxiliary states devices.
  4. The error messages generated by the auxiliary states system are much more informative, particularly as regards failure to set up the device at the start of sampling.
  5. A new progress bar control has been added to the controls available in script-generated dialogs.
  6. The FileTimeDate(), FileTime$() and FileDate$() script functions now all work on any view with an associated file and can return a number of different times and dates.
  7. The FileName$() script function has been extended to allow it to return useful sections of the complete path and file name such as the entire path and the whole file name.
  8. Accelerator keys (single keystrokes) for the sample pause at sweep end and sample trigger options have been added.
  9. The X axis and Y axis dialogs adjust and disable controls as appropriate when the axis is set to be a scale bar.
  10. An extra bit has been added to the mask parameter in the ViewList() script function so that you can get the view handle of the currently running script and include files included by the running script.
  11. New SampleAbsTime() and SampleMaxWaveRates() script functions have been added.
  12. New SampleXConv(), SampleXCUnits$() and SampleXCPointsPerUnit() script functions have been added to give access to the controls for sampling driven by an external ADC convert pulse.
  13. Active cursor searches will now operate on data from the frame buffer when the buffer is displayed.
  14. When a sampling configuration is added to the sample bar, the initial state of the Write to disk option is set by reading this option from the configuration file.
  1. Grid controls in the customise display dialog are disabled when the corresponding axis is drawn as a scale bar.
  2. The current sampling state as displayed by the states control bar is restored when the membrane analysis window closes.
  3. The Load configuration right-click option in the sample bar now works again.
  4. The script menu Turn Recording Off command was not bringing the new script view to the front; this is now fixed.
  5. The MeasureToXY() and MeasureToChan() script functions now allow virtual channels to be used for Cursor 0 iteration.
  6. The PowerMAG auxiliary states support could hang if a state cycle started with the same state as the previous cycle ended with.
  7. Use of the DS8R stimulator support could crash Signal if no DS8R hardware was present.
  8. Scripted control of the secondary power levels and recharge delays in the DuoMAG stimulator now works correctly.
  9. The Compile Script menu item is now correctly greyed out for non-script views.
  10. Measurements to XY view analysis that used expression mode for the cursor 0 iteration would give up after processing a single frame.
    As part of the changes needed to support multiple auxiliary states devices, the auxiliary device selector has been removed from the Sampling page of the Preferences dialog. Instead, the devices to be used are defined in the States section of the Sampling configuration dialog.
03/2018 7.00 New
  1. Support for the PowerMAG transcranial magnetic stimulators from MAG & More has been added.
  2. Support for the DuoMAG transcranial magnetic stimulator from Deymed has been added.
  3. The MagPro transcranial stimulator support now includes a recharge delay option which can be used to reduce noise during evoked responses.
  4. Support for the DS8R biphasic constant current stimulator from Digitimer has been added.
  5. An information window has been added to provide displays that can be used make timings and other information visible from across the lab.
  6. Clamping membrane analysis is carried out on all states if the state to be analysed is set to -1.
  7. Screen prints now draw fonts at a size proportional to the available space, the view titles now draw in the same font as on screen and at a similar size to the screen.
  8. Screen prints can now draw Grid views much more satisfactorily; the font is scaled by the physical width of the output rectangle to get the best column count.
  9. The virtual channel, script evaluation, script debug edit variable, set colours, open/close shortcuts, DC models, customise display and windows dialogs are now all resizable.
  10. Auto-averaging by states now allows you to not generate an average for state 0.
  11. The communications port selector used in various places now shows better names for the ports.
  12. The channel information dialog now shows the expression for virtual channels.
  13. The file information dialog now shows the channels used in clamping sets.
  14. New ArrCWT(), ArrRange() and ArrMapImage() script functions have been added.
  15. Error information is now logged if a conditioner, auxiliary state or auxiliary telegraph support file fails to load.
  16. A new SampleMembAna() script function has been added which allows a script to display or remove the clamping membrane analysis dialog.
  17. A new SampleConfig$() script function has been added to retrieve the file name from which the current sampling configuration was loaded.
  18. Finishing-off of arbitrary waveform output is now done in such a manner that the post-waveform level is always correct.
  19. The script language has new numeric operators for bitwise not (~) and for shifting integers (<<, >> and >>>) and allows the use of & for band, && for and, | for bor and || for or, % for mod and ! for not.
  20. The script language allows you to use * to multiply a string, for example "+-"*3 is "+-+-+-".
  1. Using the DlgEnable() script function on an image item now hides or shows the image.
  2. Integer variables in the script language are now 64 bits in size, which allows a vastly greater range of integer values.
  3. The 1401plus data acquisition system is no longer supported - if you wish to make use of a 1401plus you will have to use Signal version 6.
  4. Marker times are now all quantised to 1/100 of the smallest waveform data interval (or 1 microsecond if there are no waveform channels) to match what happens when marker data is saved in a CFS file. Because if the way marker data is stored, this change has reduced the maximum number of points in a frame to 40 million per channel.
  5. The times of digital markers that are logged while sampling are now quantised to 1/100 of the sequencer clock interval. Again because of the way that marker data is stored this has the effect of forcing the sequencer clock period to be no less than the sampled frame length divided by 40 million.
  6. Time views now offer the original file name in the File SaveAs dialog rather than the view title.
  7. The MatLabOpen() script function now returns an error code on failure rather than halting the script.
  8. Overdrawn channels only fade 75% of the way to the background colour so that they always stay visible.
  9. The Len() script function now operates on multi-dimensional arrays.
  10. The data file handling has been adjusted to handle reading very large amounts of data much better.
Cambridge Electronic Design Limited

Registered in England: 00972132

Registered office:

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

VAT: GB 214 2617 96

Producer registration number: WEE/BD0050TZ

Terms and Conditions of Sale

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

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

By email:


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

(Int.+44) (0)1223 420186

From North America (Toll Free):

1 800 345 7794