

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.
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.
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
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 completion
- Jump to a called user-defined function by clicking on its name in the calling function
- 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
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.
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.
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