About Igor Pro Carbon
Igor 4.5 was the first version of Igor that ran "natively" on Mac OS X. Owners of Igor 4.0 or later can update to this version for free by using the universal or standalone updaters. To install this "Carbon" version of Igor, you will need your serial number and installation code.
This page describes the differences between the Carbon and pre-Carbon (or "Classic") versions of Igor Pro 4 and discusses other related topics. It contains some important information, including features removed from Igor Pro Carbon and known problems.
Carbon is Apple's API (Applications Programming Interface) that allows a program to be written so that it can run native on both Mac OS 9 and Mac OS X.
Igor Pro Carbon runs on Mac OS 9.1 and later, including Mac OS X. On Mac OS 9.1, it requires CarbonLib 1.3.1 or later. CarbonLib is available from Apple Computer. Igor Pro Carbon does not run on Macintosh 68K machines.
We have noted known issues with Mac OS X 10.2.x (Jaguar) in our on-line Support database.
Igor Pro Carbon
Organization of Files
The Igor Pro Carbon files are comprised of the Igor Pro Carbon application and files stored in the Carbon Extensions and Support folder. Both the application and the Carbon Extensions and Support folder reside in the Igor Pro Folder:
Igor Pro Carbon (the Carbon application file)
The Igor Pro Carbon application use the same Igor Help Files, WaveMetrics Procedures, Manual, Igor Procedures, and User Procedures folders as your pre-Carbon Igor.
The Igor Pro Carbon application ignores your pre-Carbon Igor Extensions folder. Instead, it looks for the Igor Extensions folder in the Carbon Extensions and Support folder. This allows you to have a separate set of extensions for your Carbon and pre-Carbon applications. This is necessary because Igor extensions have to be rewritten to run under Mac OS X.
To launch Igor Pro Carbon, double-click the Igor Pro Carbon application icon. To launch your Classic Igor Pro, double-click the Igor Pro application icon.
On Mac OS 8 or 9, if you double-click an Igor file before launching Igor, the Mac OS might launch either Igor Pro (Classic) or Igor Pro Carbon. Consequently you need to explicitly launch the Igor that you want to run.
Experiment File Compatibility
Igor Pro Carbon experiment files are compatible with Igor Pro 3.1 and Igor Pro 4.0 on both Macintosh and Windows.
If you load an Igor Pro Carbon experiment file in Igor Pro 3.0 or earlier, some features of the experiment will be missing. In Igor Pro 3.0 and earlier, Igor stored pictures, page setups, command window and procedure formatting, custom dashed lines, help window positions, aliases for symbolic paths, and XOP settings in the resource fork of the experiment file. Igor Pro 3.1 and 4.0 save these settings in the data fork but also save a copy in the resource fork for use by earlier versions. Igor Pro Carbon does not save this data in the resource fork because it takes too long under Carbon.
Activating Carbon Extensions
The Igor Pro Carbon application ignores your Igor Extensions folder. Instead, it looks for the Igor Extensions folder in the Carbon Extensions and Support folder. This allows you to have a separate set of extensions for your Carbon and Classic Igor applications. This is necessary because Igor extensions have to be rewritten to run under Carbon.
To activate a carbon extension, place an alias pointing to an XOP file or to a folder containing XOP files into the Igor Extensions folder within the Carbon Extensions and Support folder.
You must restart Igor before the change takes effect.
WaveMetrics Carbon XOPs
Most WaveMetrics XOPs (also known as Igor Extensions) have been ported to Carbon and function exactly the same as before. The rest of this section describes those XOPs which are different from before Carbon.
The SndLoadSaveWave XOP now loads MP3, WAVE and movie audio tracks in addition to the already-supported sound resources and AIFF files. The ability to open sound resources in the system file and in Igor has been removed.
The following WaveMetrics XOPs have been ported to Carbon and work with Carbon Igor on Mac OS 9.1 but do not work on Mac OS X:
The following WaveMetrics XOPs have been not yet been ported to Carbon. The pre-Carbon version of these XOPs work with Carbon Igor on Mac OS 9.1 but do not work on Mac OS X:
A number of obsolete WaveMetrics XOPs are not available in Carbon Igor. See Features Removed From Igor Pro Carbon.
XOP Compatibility with Igor Pro Carbon
An XOP ("External Operation", also called an "Igor Extension") is a plugin that works with Igor Pro.
An XOP that has been written to work with Apple's Carbon system is referred to as a Carbon XOP. Old XOPs are referred to as pre-Carbon XOPs. Pre-Carbon XOPs come in two types: 68K and PowerPC, depending on which processor they were written for. Carbon XOPs are all written for PowerPC only.
Carbon XOPs are located in subfolders within the Carbon Extensions and Support folder, while non-Carbon extensions are in subfolders within the Igor Pro Folder. See Activating Carbon Extensions.
On Mac OS X, Igor Pro Carbon works with Carbon XOPs only. Most, but not all WaveMetrics XOPs have been ported to Carbon. A few remain to be ported and a handful will not be ported, either because their functionality is now built into Igor, because they are obsolete, or because technical problems prevent porting. See WaveMetrics Carbon XOPs.
On Mac OS 9.1, Igor Pro Carbon can run with Carbon XOPs or PowerPC pre-Carbon XOPs. It can not run with 68K pre-Carbon XOPs. While most PowerPC pre-Carbon XOPs run without problem, some may exhibit cosmetic or other problems.
A custom XOP is an XOP written by you, by a colleague or by a third-party, in other words, by anyone other than WaveMetrics. If you rely on a custom XOP and you want to use it under Mac OS X, the XOP must be ported to Carbon. This is discussed in the next section.
If you want to run a custom PowerPC pre-Carbon XOP on OS 9.1, you can do this using Igor Pro Carbon or a pre-Carbon version of Igor Pro. If you want to run a custom 68K pre-Carbon XOP, you must run it with a pre-Carbon version of Igor Pro.
Carbon XOPs do not work with pre-Carbon Igors.
For XOP Programmers
Porting a pre-Carbon XOP to Carbon or writing a new Carbon XOP requires a Carbon version of the Igor XOP Toolkit and CodeWarrior Pro 7.0 or later. As of this writing, the XOP Toolkit CD ROM contains a beta Carbon XOP Toolkit.
If you are an XOP programmer who wants to port an existing XOP to Carbon or to write a new Carbon XOP, first check your XOP Toolkit CD ROM to see if you have a Carbon XOP Toolkit. If not, send a request for the Carbon XOP Toolkit to email@example.com. Please include your XOP Toolkit serial number (if you can find it) and the name of the registered XOP Toolkit programmer.
Igor Pro Carbon Application Differences
In earlier versions of Igor, if you opened a procedure window and selected a menu item added by an Igor procedure file, Igor did not execute the selected procedure but instead displayed the procedure's code. This programmer shortcut feature confused new users so it was removed. Now to see the procedure code you must open any procedure window, press the option key, and then select the menu item added by an Igor procedure file. Igor will display the procedure code. If the active window is not a procedure window or if the option key is not pressed, Igor will execute the procedure.
Program-to-Program Communications (PPC) was removed because Apple abandoned this technology.
Balloon help was replaced with a home-grown version we call "Igor Tips" because Apple abandoned balloon help. Choose Help->Show Igor Tips or press option-Help for tips on icons, controls, menu items, and dialog items.
The Open File, Save File and Choose Folder dialogs have been replaced with Navigation Services dialogs. In Open File dialogs, an attempt is made to allow opening files by filename extension as well as by Type and Creator code. This supports both files from Windows Igor, and also it supports the fact that Apple encourages the use of extensions on OS X.
In Open File dialogs, instead of holding down Command and Option to allow selecting any file, simply choose All Documents in the Show Files of Type menu. This also allows you to navigate into packages (folders that the Finder presents as a monolithic document) to open the files hidden inside, although most people will have no reason to do this.
In Save File dialogs and Choose Folder dialogs, if you press the Command and Option keys as the dialog is being displayed you will be allowed to select packages and to peek inside them. If you do this, be aware that you can render a packaged document or application unusable by modifying the files or folders inside. Again, this is something that most people will have no reason to do.
In the Print Graph and Print Layout dialogs, the Use Highest Resolution checkbox has been removed. Igor always uses the highest resolution reported by the printer driver.
In the Print Graph dialog on OS X, if you change any of the controls relating to the size or position of the printed graph, you must click the Enter Igor Settings button. This is necessary because the OS X version of the print dialog does not provide a way for Igor to know when you have edited values in the Igor section of the dialog.
Because it was not feasible to support on Mac OS X, the page layout "color on screen" feature has been removed. Page layouts are now always drawn in color on screen.
Features Removed From Igor Pro Carbon
The SoundInput XOP is obsolete and has been removed. Use the built-in sound input routines (see SoundInRecord) instead.
The TiffReader and ImageWriter XOPs are obsolete and have been removed. Use the built-in ImageLoad and ImageSave operations instead.
The TDLoadWave XOP, which shipped on Macintosh only and has been obsolete for years, is not supported in Igor Pro Carbon. If you rely on the TDLoadWave operation, use LoadWave/G or LoadWave/D instead. If you rely on the TDSaveWave operation, use the Save/J operation instead.
The CGLoadWave XOP, which shipped on Macintosh only and loaded Cricket Graph files into Igor, is not supported in Igor Pro Carbon. If you rely on the CGLoadWave operation, you will need to use Igor Pro 4 pre-Carbon to load Cricket Graph files.
The GWLoadWave XOP, which shipped on Macintosh only and loaded GW Instruments files into Igor, is not supported in Igor Pro Carbon. If you rely on the GWLoadWave operation, you will need to use Igor Pro 4 pre-Carbon to load GW Instruments files.
The FileXOP 2.0 XOP, which shipped on Macintosh only and has been obsolete for years, is not supported in Igor Pro Carbon. If you rely on FileXOP 2.0, see FileXOP Replacements for alternative solutions. This can be found in the FileXOP 2.0 Help file which shipped with Igor Pro 4, pre-Carbon.
Also see WaveMetrics Carbon XOPs.
Igor Pro Carbon Known Problems
Carbon Igor is somewhat slower than its predecessor and Carbon Igor on Mac OS X is somewhat slower than on Mac OS 9. This is a result of overhead in Carbon and Mac OS X and can be addressed only by Apple.
Cmd-H On OS X
In Igor, cmd-H means Find Selection. OS X 10.0 usurps cmd-H and interprets it to mean "Hide the Current Application". Therefore, you can not use cmd-H for Find Selection on OS X 10.0. You can use shift-cmd-H, which means Find Selection In Reverse Direction.
OS X 10.1 does not usurp cmd-H so it means Find Selection in Igor as before.
No 'Bring All to Front' Menu Command
Igor does not have a Bring All to Front menu command. You can bring all Igor windows to the front by clicking the Igor icon in the dock.
Submenus Under Carbon in Mac OS 9.x
In Mac OS 9.x, submenus sometimes do not pop out when you move the cursor over them. You have to move away from the submenu item and then back to it to get the submenu to pop out. We suspect that this is an Apple CarbonLib problem.
HP DeskJet Printers On Mac OS 9.1
On Mac OS 9.1, using HP's DeskJet printer driver version 4.13 (the latest as of this writing), when you create a notebook, the page setup is set to 25% scaling. This appears to be a problem in the OS or in the printer driver. You can avoid the problem by setting the scaling to 100% and then choosing Notebook->Capture Notebook Prefs to capture set the default page setup for notebooks.
Page Setups Change When Changing Default Printer
If you set a page setup using one printer driver and then change the default printer, properties of the page setup, such as the orientation and the scaling, may be lost. We know of no solution for this.
Page Setups Problems When Moving From OS X to OS 9.1
If you create an experiment under OS X and then open it under OS 9.x, you may get errors when you try to print or do a page setup. If this occurs, Igor will give you the opportunity to replace the page setup with a default page setup. This problem has been reported to Apple.
Print Graph Dialog on OS X
In the Print Graph dialog on OS X, if you change any of Igor's custom settings, you must click a button labeled "Enter Igor Settings". Otherwise, Igor will not know that you changed any settings. This is due to a flaw in the handling of custom print items in OS X.
Print To PDF on OS X
Printing to a PDF file does not work under OS X 10.1.1 if the path to the target directory contains spaces or any other funny characters. This is an OS X bug.
FTPDownload and FTPUpload on OS X
FTPDownload and FTPUpload rely on the Mac OS URL Manager. On Mac OS X, we have observed inexplicable errors and crashes which appear to be due to bugs in URL Manager. This occurred both on Mac OS X 10.0 and 10.1.
Long File Names on Mac OS X
Mac OS X supports very long file names, up to 255 characters. However, Igor Pro supports file names up to 31 characters only. Mac OS X attempts to bridge this gap by creating a temporary short file name. This means that you should be able to work with files with long names, but there may be issues that we don't yet know about. The safe route is to avoid very long file names.
Select All In Lists In Dialogs on OS 9
If you choose Edit->Select All or press cmd-A while a list in a dialog has focus, the items in the list are selected but are not redrawn and appear de-selected. This problem does not occur in Mac OS X. It appears to be due to a problem in Apple's Carbon library.
Igor Pro 8
Igor XOP Toolkit
Igor NIDAQ Tools MX