Igor Pro 8.03 Beta 1 Released

A new beta release of Igor Pro 8 is now available for all platforms. A list of notable changes for this release is included below. If you've reported an issue to us and we've told you it's been fixed, the fix will be included in this release, even if it's not mentioned below.

If you have enabled checking for beta releases (select the Misc→Miscellaneous Settings menu item to open the Miscellaneous Settings dialog, select the Updates category, then select the "Also Check for Beta Releases" checkbox) you can select the Help→Updates for Igor Pro menu item within Igor Pro 8 to get the latest beta release. Otherwise you can go to the Downloads page to download the installer manually.

Macintosh users: When you drag the Igor Pro 8 Folder from the new installer into your Applications folder, the OS may ask you whether you want to merge the folders or replace the existing folder. You should select "Replace".

Notable Changes in Igor Pro 8.03 Beta 1



  • Under very limited circumstances the FIFO2Wave operation will work even when FIFOStatus returns a bogus value of V_FIFOChunks because the 32-bit counter has overflowed. The call to FIFO2Wave must have /S=0 and no /R flag and it must be operating on a FIFO that is not connected to a file. To enable this change, you must first execute this command:
      SetIgorOption unboundedFIFO2Wave=1
    That setting is not remembered- you must use that command every time you launch Igor.
  • Added a new BeforeUncompiledHook; you can use the hook to stop processes that depend on compiled procedures, and AfterCompiledHook to restart them.
  • Added the ModifyProcedure operation.
  • Added Execute/P "AUTOCOMPILE ON " and Execute/P "AUTOCOMPILE OFF " to the Operation Queue feature. (Note trailing space inside the quoted command.)


  • Greatly improved performance of internal code that manages objects that can depend on other objects. This includes global objects (waves, variables, and strings) as well as user-defined functions in procedure windows and controls that depend on global objects. The most visible symptom of this problem was lag when typing in procedure windows with the navigation bar enabled or the procedure browser visible. Users typically noticed this only when an experiment contained "lots" of waves. "Lots" usually meant more than 1000 to 10000. 
  • Now both SVAR and NVAR display an error dialog if they are NULL when #pragma rtFunctionErrors= 1 is set (previously only SVAR failures showed an error dialog).
  • Windows: When exporting as Bitmap (either to the clipboard or a file), Igor now stores the data of the image in bottom-up order. Previously it stored the data as top-down. Both orders are valid, but some other applications do not properly handle top-down data. As a result of this change, copying as bitmap and pasting into a web application (e.g. Google Docs) works correctly when using the Chrome browser.
  • FilterFIR can calculate a notch that is about 10 times narrower than before (but it may require as many as 100 times more coefficients).
  • Matrix contour plots: changed how the Z value for the boundary is calculated. Now the calculated Z value is stored the boundary wave's note using a "BoundaryContourZ=zValue" key-value string. Also changed the drawing order for the fill-to-boundary polygons in filled contour plots: now they are drawn first instead of last.
  • XYZ contour plots: ModifyContour contourInstanceName perturbation can be set to a seed value to perturb the xy data by tiny random values consistently each time the triangulation is updated. Use a perturbation value greater than 1 and less than 231-1. Different seed values may be helpful in improving the rendering of filled contours.
  • The Z value of contour traces is once again shown in the cursor info panel, as it was for Igor 6.
  • Debugger: Holding down the option key (Mac) or the Alt key (Windows) while clicking the Go button closes the debugger window immediately instead of when execution ceases. The Debugger window will reappear if a breakpoint is encountered.


  • Macintosh: Fixed a bug that caused Igor to crash on startup if the user changed the case of the name of the hard drive, e.g., from "hd" to "HD". The problem went away after a restart. This fix prevents the crash even before a restart.
  • Macintosh: Added workarounds for several MacOS 10.14 bugs. The worst caused Igor to sometimes crash when Igor was started by double clicking on an experiment file.
  • Fixed Resample output wave often being one point too short.
  • Fixed failure of layout slide show settings dialog to generate correct command when changing presentation screen number.
  • Fixed failure to correctly remember the layout slide show screen number after restarting Igor.
  • Fixed behavior of layout slide show when displaying the slide show on a non-primary screen.
  • Starting a layout slide show now stops any currently running slide show, avoiding a BUG message and potentially unexpected behavior.
  • Killing a layout associated with the currently running slide show now stops the slide show.
  • Macintosh: Igor 8 introduced several layout slide show bugs due to using a newer version of the Qt framework. The most problematic bug was that after a slide show was finished, it was sometimes difficult to get out of presentation mode. These bugs have been fixed.
  • Windows: Ctrl+Shift+G and Ctrl+Shift+H search backward in a table, as documented.
  • Fixed a bug in the Replace Wave dialog: if you make a graph with the same wave name for two traces, but the first instance uses a user trace name (see the description of the /TN flag for Display or AppendToGraph) the dialog generated a command erroneously using the #1 instance number when that trace name was not on the graph.
  • Fixed a crash if you attempted to use the Find or Replace dialogs on a table subwindow.
  • Fixed a crash that could result when you had crazy parameters for Computed Manual Ticks on a Date/Time axis.
  • Fixed a bug in Cityscape trace mode that resulted in "horns" sticking out of the top of zero-width blocks in the trace. The horns were longer with thicker lines, so no one had noticed until recently.
  • The draw tools Distribute command now treats grouped draw objects properly as single objects instead of arranging all the individual objects in a bizarre arrangement.
  • Fixed a bug that caused HDF5DatasetInfo and HDF5AttributeInfo functions to truncate the datatype_str field.
  • HDF5LoadData now works with references to datasets, groups, and datatypes. Previously it worked with references to datasets only. See Loading Reference Data for details.
  • HDF5SaveData can now save references to datasets, groups, and datatypes. See Saving Reference Data for details.
  • Image plots that used a color table wave having transparency and using Before First Color no longer disappear.
  • XYZ contours now return identical results when given the same data; the tiny random perturbations added to the xy coordinates are now always the same values when ModifyContour's perturbation value =1 (the default).
  • Fixed filled contours bug that happened when first updating a matrix contour plot where the fill-to-boundary was corrupted.
  • Fixed a mistake in saving the ModifyContour perturbation recreation macro command:
  • ModifyContour contourInstanceName perturbation=0, 1, or random number seed.
  • Also fixed a long-standing off-by-one error in assigning contour line colors, most visible with small color tables.
  • ContourInfo() now properly reports the values for equalScaling and perturbation.
  • Using Ctrl + or Ctrl - to change the expansion of a graph containing a filled contour plot no longer crashes.
  • Automatically rotated contour labels no longer fail to be tangent to the contour when attached to a trace point whose next or previous point has the exact same x,y screen coordinates.
  • Fixed a crash that happened when the Debugger opened during a resize hook event.
  • The Find feature in the Debugger's procedure widget no longer works only the first time the user presses Command-F (Ctrl+F on Windows).
  • The Debugger no longer locks up if you quickly press the Go button repeatedly.
  • SoundSaveWave's /I flag now works as documented.
  • GetDimLabel no longer crashes if the dimIndex is less than -1.
  • Now both SVAR and NVAR display an error dialog if they are NULL when #pragma rtFunctionErrors= 1 is set. (Previously only SVAR failures showed an error dialog.)
  • If you paste search text containing a carriage return into a Find Bar in a notebook or procedure window, you no longer get an unending string of error alert dialogs.
  • On Windows, if you have several windows with tool palettes and/or info windows open, the layering no longer gets scrambled if you minimize, then normalize Igor.
  • Fixed an obscure crash if you have a SetVariable in edit mode with an action procedure that calls ControlInfo followed by SetVariable Activate.
  • On Windows, Igor would allow you to try to open a new experiment by double-clicking a file even when you had a modal dialog open. If the dialog referenced data in the current experiment file (for instance, the Modify Trace Appearance dialog) Igor was likely to crash.
  • Improved precision of numeric find criteria on Edit→Find Selection and Edit→Use Selection for Find. Fixes failure in some cases to find numeric values matching the selected table cell.
  • When you did Edit→Find Selection or Edit→Use Selection for Find while in All Table Windows mode, it set the find criteria from the first cell in the table instead of from the selected table cell.
  • Box Plots and Violin Plots use Igor's Axis Standoff feature to avoid having the box or violin extend over the vertical axis when they are plotted on a numeric horizontal axis. The computation of the standoff did not take into account any expansion factor, resulting in vanishing standoff if you used magnification, or if you exported a graph at high resolution.
  • Fixed a small error in the Blackman492 and Blackman474 window values in the WindowFunction and FFT operations: the last term of w(n) was incorrectly calculated as
  • -a3cos(8*pi*n/N) instead of -a3cos(6*pi*n/N).
  • Replacing a string in a table using Edit→Replace was broken and is now fixed.


  • Changed the Ternary Diagram package's contours to no longer create two conflicting dependencies that caused Igor to become sluggish due to unending dependency updates. When you open old experiments that contain a Ternary contour the new package will fix the dependencies to restore Igor's normal responsiveness (this problem does not affect Ternary Diagram traces, only Ternary contours). Other changes to the Ternary Diagram package include improved control of the lists' sorting order and better management (deletion) of data folders and dependencies when they are no longer needed.
  • Changed the 2D Pie Chart Procedure to work with long wave names and long data folder names. If you use short names, the saved experiment will work with earlier versions of the procedure file.





Igor Pro 8

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More