Igor Pro® 10 contains hundreds of improvements, including new operations and functions, and built-in support for Python. Some of these changes are highlighted below. Click here for a more detailed description of the Igor Pro 10 changes.

All Igor Pro 9 licenses (new and upgrades) sold on or after January 1, 2025 are eligible for a free upgrade to Igor Pro 10.


Python

Igor Pro® 10 introduces built-in Python integration, allowing you to directly execute Python code and exchange data between Igor and Python. Together, users can combine the power of Igor's numeric analysis, data visualization, and data management tools with the extensive set of third-party libraries that are available to Python programmers.

The igorpro Python module provides an API for accessing and manipulating Igor data, such as waves, data folders, variables, and strings. Execute Python code directly in our built-in Python Console, which is complete with syntax highlighting and code completion.

Execute Python code from the Python Console

In addition to the Python Console, Igor Pro® 10 provides the Python and PythonFile operations for use in Igor procedure code and from the command line. While the Python operation can be used to execute single Python commands, PythonFile is used to launch entire Python scripts from Igor. Of course, both operations can return Python objects such as NumPy arrays back to Igor and convert them into native Igor types.

Execute a Python script using the PythonFile operation

Camera and hardware control

The new MMI XOP, which uses the popular Micro-Manager project, allows you to control a wide range of hardware such as scientific cameras, light-sources, shutters, filter-wheels, XY- and Z-axis stages, etc.

A list of device adapters and an introduction to using them is available at micro-manager.org.  

For example, once MMI is set up, with only seven instructions, Igor can instruct Micro-Manager to acquire an image from a supported camera, load the image into a wave, and display it.

MMC_LoadDevice "myDemoCam", "DemoCamera", "DCam"
MMC_InitializeDevice "myDemoCam"
MMC_SetCameraDevice "myDemoCam"
make/O myImageWave
MMI_BindImageWave myImageWave
MMC_SnapImage
NewImage myImageWave

image acquired from camera by MMI displayed in Igor image plot

In addition to snapping individual images, both Micro-Manager and MMI support 'image-streaming' — the continuous acquisition, display, and (optional) storage of images in HDF5 files using the MMI_OpenH5file operation.

Procedure window improvements

Igor Pro 10 improves programming productivity through these new features:

  • Improved syntax highlighting
  • Improved code completionimproved code completion
  • Jump to a called user-defined function by clicking on its name in the calling functionjump to called function with Ctrl+click
  • Line continuation "nearly everywhere"; you can use arbitrarily long expressions by including the backslash line continuation character at the very end of a line:
  • Function/S LineContinuationDemo(String prefix, \
                                    String separator, \
                                    String suffix)
        String combined = prefix \
            + separator // a comment before line continuation \
            + suffix
        return combined
    End
  • Code Folding

Igor code editor showing where to click to fold a code block

Code editor with one end-if code block and two entire functions folded

Multipeak Fitting Package Improvements

  • Increased robustness in many areas by improved error handling, especially in regards to out-of-bounds data, empty waves, and NaNs
  • Added support for hold-strings waves
  • 100% and 200% display scaling now both supported
  • Copy/paste shortcuts now work directly in the table UI
  • Auto-locate no longer returns any zero-width peaks
  • Multiple alert and error message improvements

Drawing Tools Improvements

  • Editing of polygons and Bezier curves has improved with better constraints, vertex snapping, more contextual menus, and a hinting system to guide you.
  • Additional drawing layers ProgTop and UserTop in graphs allow drawing on top of annotations.

graph showing a drawing object that appears on top of an annotation

Page Layout Improvements

  • New user-defined guides aid alignment of objects.
  • New layout-only margin guides ML, MT, MR, and MB (Margin Left, Margin Top, Margin Right, and Margin Bottom)
  • Dragging a guide in a page layout indicates its position in the status readout at the bottom of the window. Fractions of the printable page width or height are displayed. Holding the Shift key down constrains dragged guides to some rational fraction of the printable page width or height.
  • Using the scroll wheel while holding down the Ctrl key changes the magnification level of the layout.
  • Holding down the Shift key while using the arrow keys to move a layout object accelerates the movement by a factor of ten.

Control panel layouts

Controls in a control panel can be anchored to "guides", making it much easier to create control panels that handle resizing well, with no need to write Igor code to do it. These are the same guides that previously worked only with subwindows.

In this control panel the Listbox control will have its right edge always at the center of the panel and its bottom edge always a constant distance from the bottom. The controls on the right will remain centered at one quarter of the panel width from the right edge of the window. The title will always be centered.

Control panel resizes sanely

 

 

Multiple languages

The language of Igor's user interface automatically switches to Japanese if the operating system's language is Japanese. Users can override this behavior in the Miscellaneous Settings dialog. It is no longer required to purchase a separate license for the Japanese version of Igor. Note that most documentation is still in English.

New Operations

  • Interp4D
  • Interp4DPath
  • MMC_* and MMI_* (82 operations added by the MMI64.xop)
  • Python
  • PythonEnv
  • PythonFile
  • Say

New Functions

  • graphemeLength
  • MMC_* and MMI_* (47 functions added by the MMI64.xop)
  • stringIsNull
  • UTF8CharLength

New MatrixOp Functions

  • subtractMin()
  • indexMatch()
  • removeCol()
  • removeCols()
  • scaleLayers()
  • scaleChunks()
  • subtractRows()
  • subtractCols()
  • quatFromSpherical()
  • quatInverse()
  • median()
  • zapZeros()
  • replaceInfs()
  • enoise()
  • setType()
  • rowDiff()
  • binMean()
  • binVar()
  • imit()
  • not()

Performance Improvements

  • Igor's compiler has improved the compile time of user procedures.
  • Improved performance of the NewPath and IndexedFile operations, particularly in code similar to the PrintFoldersAndFiles example function in the IndexedDir help topic.
  • When running on Windows 11, the MultiThread and ThreadGroupCreate operations can now use as many logical processors (threads) as the hardware supports. Previously Igor only used up to 100 logical processors even if more were available. Due to operating system limitations, when running on Windows 10 only 64 logical processors can be used.

Forum

Support

Gallery

Igor Pro 9

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More