Macintosh 64-bit XOPs and Igor Pro 8

There is an issue that will affect Macintosh 64-bit XOPs running with Igor Pro 8. We don't know when we will start beta testing Igor8, but it will be no earlier than the fall of 2017.

The short story is that, because of a change in Igor8, existing Macintosh 64-bit XOPs need to be modified and recompiled with XOP Toolkit 7.01 or later to run with the 64-bit version of Igor Pro 8 on Macintosh. Macintosh 32-bit XOPs as well as Windows 32-bit and 64-bit XOPs will run with Igor8 without modification.

The 64-bit Macintosh version of Igor7 uses Mac OS handles both internally and to exchange data with XOPs. Mac OS handles are limited to roughly 2^31 bytes, even in 64-bit applications. To overcome this limit, the Macintosh 64-bit version of Igor8 will use WaveMetrics handles - that is, handles created and manipulated using WaveMetrics code, as all Windows versions have always done.

XOP Toolkit 7.01 provides the necessary support to allow Macintosh 64-bit XOPs to use WaveMetrics handles. It adds WaveMetrics memory management XOPSupport routines that allow an XOP to use compatible handles no matter what version of Igor it is running with.

Although this change is critical only for Macintosh 64-bit XOPs, we recommend that all actively-developed XOPs be changed, when it is convenient, to use the new WaveMetrics memory management XOPSupport routines so that the source code will be compatible with any version of Igor on any platform. The source code changes required are minimal and amount mostly to changing NewHandle to WMNewHandle, DisposeHandle to WMDisposeHandle, and so on.

When you are ready to update your XOP, here is what you need to do:

  1. Download the latest XOP Toolkit. If you have an XOP Toolkit 7 license, use the download instructions that you previously received from WaveMetrics. If you have an XOP Toolkit 6 license, contact WaveMetrics sales for a free upgrade to XOP Toolkit 7.
  2. If you have not yet updated your XOP Toolkit 6 XOP for XOP Toolkit 7, follow the instructions in Appendix A of the XOP Toolkit 7 manual.
  3. See Appendix C of the XOP Toolkit 7 manual for an overview of changes since the release of XOP Toolkit 7.00.
  4. Follow the link in Appendix C to the section "WM Memory XOPSupport Routines" in Chapter 12. This explains the issue in greater detail.
  5. Follow the instructions in the section "Updating Old Code to Use WM Memory XOPSupport Routines" in Chapter 12.

The XOP Toolkit 7 manual is included in the XOP Toolkit 7. It is also available from

For an overview of the XOP Toolkit, see

Get to Know a Feature: Color Table Wave Creation

Get to Know a Feature: Color Table Wave Creation

In "Get to Know a Feature: Color Table Wave Basics", we showed how Igor 7's color table waves are more flexible than Igor 6's color index waves because multiple uses of the same color table wave can cover differing Z value ranges. This post discusses several ways that you can create your own color table waves such as including importing RGB values from a CSV file and recreating a color table from a screen capture,