Igor Pro 4.0 New Feature Details
Below are the details of Igor Pro 4. Click here for the highlights. On Macintosh, Igor Pro 4 requires Mac OS 8.5 and later. It does not run on Macintosh 68K machines.On Windows, Igor Pro 4 runs under Windows 95, Windows 98, Windows NT4, Windows 2000, and Windows Millennium Edition (Windows ME). Version CompatibilityIgor Pro 4 can read files created by all earlier versions of Igor. If you don't use features new in Igor Pro 4, then experiment files that it writes are readable by earlier versions (except that to read Windows files on Macintosh you need Igor Pro 3.1 or later). Once you use features added in Igor Pro 4 and save an experiment file, that file may cause errors if you try to read it in an earlier version of Igor. Just in case you need to go back to an earlier version of Igor, it is a good idea to make backup copies of all your Igor files now. There is a slight incompatibility between Igor Pro 4 help files and help files from previous versions. For most people, this is of no consequence. This is described in the Igor online help files under Help System Improvements. When you open an old experiment, you may see a dialog complaining about "extra text" and asking if you want it to be considered an error. If you are not an Igor programmer, you should answer that it not be an error. Programmers, however, should fix their code. This is described in the Igor online help files under Legacy Code Issues. IMPORTANT: All users should be aware that when Igor opens an old (pre Igor4) experiment, it enters a compatibility mode that allows legacy code to continue to use a vertical bar (|) as a comment character in procedures. New experiments do not operate in compatibility mode and | is then the bitwise OR operator while || is logical OR. This distinction will be of little consequence until you start to mix old and new procedures. However this mixing can happen very easily when you choose certain items from a Packages menu. Don't worry about it now, see the online help topic Packages if you run into trouble. Improvements have been made to the methods Igor uses when printing and exporting. This should not cause problems but just in case, techniques are available to revert to older methods. This is described in the Igor online help files under Printing and Export Changes. Guide To Igor Pro 4 ImprovementsHere are the Igor Pro 4 improvements discussed on this page.
Packages FeatureWaveMetrics has long provided handy procedure files that extend Igor's capabilities using Igor's own programming language. However, to use a provided procedure, you had to first find it in the WM Procedures Index help file, copy a line or two into your main procedure window, close the procedures window and finally chose an item from a menu. Now, for select procedure packages, this can all be accomplished with a single selection from a Packages menu. This is explained in the online help topic Packages. Documentation ImprovementsWe have revamped the part of the manual that covers programming with the goal of making it easier for someone learning Igor programming to separate the signal from the noise. As a result:
If you are an Igor programmer, reading the new documentation may clarify some murky issues for you. The new material starts with Chapter III-2. We have also reorganized the help files, splitting analysis, graphics, and programming into their own help files. Help System ImprovementsThe new Help Browser includes:
See The Igor Help Browser online help topic for details. Previous versions of Igor included a FAQ help file and a Known Problems help file. We have removed both of these help files. In their place, we have created a support web page where you can search for the kinds of information previously in the FAQ and Known Problems files. Using a web page rather than a help file ensures that you get the latest information. To access the support web page, choose Support Web Page from the Help menu. In Igor Pro 3.1 for Windows, WaveMetrics included an online manual and two kinds of help. One type of help used Igor's own help system and the other type of help used the Windows help system. Maintaining the manual plus two kinds of help was very time consuming. Also, Microsoft is phasing out the old Windows help system. Consequently, in Igor Pro 4, WaveMetrics no longer includes Windows help system files. Igor Pro 4 help files are slightly different from previous help files in that links are blue and underlined. Previously they were black and bold and not underlined. If you open a help file from an earlier version of Igor in Igor Pro 4, Igor Pro 4 will ask if you want to convert the help file. If you open an Igor Pro 4 help file in an earlier version of Igor, the links will not work. If you are an author of an Igor help file, see Help Link and Subtopic Formatting in Chapter II-1 of the manual for further information. Data Browser ImprovementsThe new Data Browser allows you to preview your data graphically, to view and edit properties of waves and variables, to sort objects alphabetically (use the Preferences button), and to focus on deeply buried data folders Graphing ImprovementsThe Modify Axis dialog was revamped. You can now make all axis-related changes in one dialog. You can change multiple axes at once, enter axis range as date/time, set axis colors in the dialog. Dialog includes a live update mode that allows you to see changes on your graph as you make them. Date/Time axes have been greatly improved. You can display date axes using a wide variety of date formats, you can now use manual ticks, you can now use the Round to Nice Values axis autoscaling modes and date/time axes have been revised to give rational minor ticks. Igor now supports elapsed time, fractional seconds and negative time in time axes You can now cause axes to be drawn with purely user-defined tick mark positions and labels. See User Ticks from Waves in the online help. This capability is used extensively in the TransformAxis procedure file. Igor can now create true waterfall plots using the NewWaterfall command line operation. There is no built-in dialog for creating waterfall plots but a user interface is provided via the Packages mechanism. Choose Windows->New->Packages->New Waterfall. The Add Annotation dialog was revamped. You can create color scale annotations (those spiffy image or contour legends you see in the scientific journals). Annotations can be hidden. See the Textbox /V flag. You can specify the thickness of a legend symbol. You can attach tags to images. Igor's cursors are now much more capable. You can now have crosshair cursors instead of icon cursors, you can attach cursors to images and cursors can now be "free", meaning they are not constrained to be on an existing data point. Cursors can now read out date/time values. You can move two cursors at once by dragging if you press shift before clicking one of them. You can press shift-arrow-key to move cursors 10 times as fast using the arrow keys. See Cursors and Info Box. You can create graphs containing arrows for each data point instead of markers. See ModifyGraph arrowMarker. You can now exercise greater control over graphs containing multiple plot areas. See ModifyGraph axisClip. More new ModifyGraph keywords: prescaleExp, tickExp, tickUnit & linTkLabel. Added SETAXISFLAGS keyword to the information returned by AxisInfo. The ReplaceWave operation can now be used to convert a trace from waveform to XY or XY to waveform. Printing and exporting of images is much faster in most cases. See Printing and Export Changes for details. On Windows, Igor now pays attention to the scaling control that appears in the properties dialog for some printers. Igor can now print to large paper sizes that previously caused problems. This was an issue with HP DesignJet printers/plotters. Table ImprovementsYou can display date data using a wide variety of date formats. Use the Table Date Format item in the Table menu. You can display and edit elapsed time, fractional seconds and negative time in time-formatted columns. You can view and edit dimension labels. Use the Append Columns To Table dialog. You can display data in hexadecimal and octal You can now cmd-click (Macintosh) or right-click (Windows) anywhere in a table column to get a popup menu. Before you had to click in the column name. Page Layout ImprovementsYou can now select and operate on multiple objects in the layout layer. The new Align submenu in the Layout menu allows you to align objects in the layout layer. The new Make Same Width, Make Same Height, and Make Same Width and Height menu commands in the layout menu make it easier to format the page. The new Make Plot Areas Uniform menu command in the Layout menu makes it much easier to stack graphs. You can now tell Igor to print graphs in Layouts using a high-res bitmap rather than the usual object draw method. This is provided only for emergency use when a printer driver has bugs that affect normal operations. It may also be useful for printing graphs with very large numbers of data points. See Printing as Bitmaps in Chapter II-15 of the manual. Added the LayoutInfo function for getting information about layouts from procedures. This is intended to allow a programmer to write a procedure that acts on all layout objects or just selected layout objects. GetWindow also returns information about the printable area of a page layout. Added NewLayout, AppendLayoutObject, and RemoveLayoutObjects operations. You should use these instead of the old Layout, AppendToLayout, and RemoveFromLayout operations which can not be invoked from user functions. The ModifyLayout and PrintLayout operations can now be invoked from user functions. You can set a page layout to hide or be killed without a dialog. See Layout's /K option. Notebook ImprovementsYou can do a find across multiple windows. See Finding Text In Multiple Windows in the online help. You can export a notebook as an HTML file using the File->Save Notebook As menu command. See Exporting a Notebook as HTML in the online help. The SaveNotebook operation allows you to export as RTF or HTML. You can set a notebook to hide or be killed without a dialog. See NewNotebook's /K option. You can retrieve information about a notebook using the WinRecreation function. You can adopt a notebook using the Notebook operation. Drawing ImprovementsYou can select drawing elements and controls simultaneously. There is a Distribute command in the drawing tools palette. Pressing the shift key while resizing can now constrain to rectangular rather than square. Pressing the option or Alt key while resizing does a proportional resize. Control ImprovementsThese new and improved features are for Igor programmers who create control panels. The new TitleBox operation creates a static text readout with fancy text and optional hookup to a string variable. The new Slider operation creates slider controls. You can visually group controls using the new GroupBox operation. You can create lists using the new ListBox operation. You can create a tabbed control panel using the TabControl operation. You can create a non-editable SetVariable control using SetVariable noedit. You can associate a Checkbox with a global variable and checkboxes can now take on the appearance of radio buttons. Several new keywords have been added to the ValDisplay control. You can change the style of the frame, set colors and can even make it look like an LED. When creating or modifying a control panel, you can select multiple controls at one time and you can select drawing elements and controls simultaneously. You can cut, copy and paste selections of controls. (If you hold down the option/Alt key while copying a single control, you can paste the commands that recreate it into a procedure or notebook.) You can disable or make invisible any control using the disable keyword. You can create a PopupMenu control that displays colors or dashed-line styles. You can get a list of controls in a window with the new ControlNameList function. The new bodyWidth keyword can be used with SetVariable, PopupMenu and ValDisplay controls to make it easier to keep a set of controls aligned. The default font for controls is now independent of the graph default font and some sizes have been reduced from 12 to 10 points. On the Mac, some controls previously drawn with a white background color are now drawn with the window color. The default window color is now grey. To compensate for this non-backwards compatible change, a new keyword, labelBack, is now available in certain controls to allow explicit background colors. You can prevent a panel or graph from being resized by the user with the ModifyPanel fixedSize=1 command. You can constrain the size and shape of a panel or graph resized by the user with the new resize event passed to the window hook function. See the SetWindow operation. Analysis ImprovementsNew Operations And FunctionsWaveMeanStdv Enhanced Operations And FunctionsThe resolution and accuracy of enoise and gnoise were improved. Matrix ImprovementsNew Operations And FunctionsMatrixDet (determinant) Enhanced Operations And FunctionsMatrixSVD Curve Fitting ImprovementsCompletely revamped the Curve Fitting dialog, adding new functionality. Added a subdialog to assist in creating or editing user-defined functions. Curve Fitting dialog now handles multivariate fits, you can specify initial guesses inside the dialog, you can specify simple coefficient constraints in the dialog. Added the following built-in curve fitting functions, which are accessible through the Curve Fitting dialog: HillEquation, Sigmoid, Power, lognormal, Gauss2D, Poly2D Auto-destination will now plot log-spaced X values if data is graphed on a log axis. You can exclude points from the fit using a mask wave. You can command Igor to calculate parameter confidence intervals. You can hold parameters in line fits and in polynomial fits. You can now specify your own coefficients wave with a built-in fit with kwCWave keyword. Special comments in a user-defined fitting function allow you to associate mnemonic names with each fit coefficient. Added the FitFunc procedure sub-type for user-defined fitting functions so that only actual fitting functions are listed in the function menu in the Curve Fitting dialog. You can return all model values in one call to the user function using the all-at-once mode. Image Processing ImprovementsWaveMetrics has created an Image Processing Tutorial. The tutorial covers the basics of image processing and shows how to do image processing in Igor. See "Igor Pro Folder:Learning Aids:Tutorials:IP Tutorial". New OperationsImageRemoveBackground Enhanced OperationsImageTransform 3D Analysis ImprovementsNew Operations And FunctionsBoundingBall Data Import And Export ImprovementsThe LoadWave operation supports "fixed-field" (FORTRAN-style) files. The LoadWave /B flag allows you to specify wave names, data type, and other parameters on a column-by-column basis. The LoadWave operation now accepts column labels that don't start with a letter. LoadWave can now handle a wide variety of date formats LoadWave now supports elapsed time, fractional seconds and negative time in time-formatted data The new ImageLoad and ImageFileInfo operations handle various graphics file formats including GIF, JPEG and TIFF. Some of these formats require QuickTime 3.0 or later. The new ImageSave operation saves waves in various graphics formats. ImageSave requires QuickTime 4.0 or later. The Save operation can now save an unlimited number of waves using a single command. The Macintosh-only SndLoadWave XOP adds the SndSaveAIFF operation and corresponding dialog. Graphics Export ImprovementsAdded many graphics export formats (see SavePICT). Most of these require QuickTime 4.0 or later. QuickTime is available from http://www.apple.com/quicktime/. Be sure to do a full install (but the QuickTime Pro version is not necessary). Miscellaneous ImprovementsInternet support - write notebooks as HTML files, summon your web browser from a procedure (BrowseURL operation), do FTP transfers (FTPUpload and FPTDownload operations). You can enter dates and times in the Change Wave Scaling dialog. Igor's behavior is improved when data files, especially image files, are dropped on the Igor icon. On Windows, added support for the mouse wheel in notebooks, procedure windows, command window, help windows and the help browser. On Windows, Shift-Delete now does a cut, Ctrl-Insert now does a copy, and Shift-Insert now does a paste. The Secs2Time function can handle elapsed times. Holding down the option key (Macintosh) or Alt key (Windows) while Igor launches automatically opens the most recently opened experiment. New And Improved Example ExperimentsCheck out these new and improved example experiments in your Igor Pro Folder. Select the Load Examples item in the File menu to create a menu of example experiments. This provides easy access to the examples. This menu item is created using a mechanism similar to the Packages mechanism. Igor Pro Folder:Learning Aids:Tutorials:IP Tutorial:IP Tutorial Igor Pro Folder:Learning Aids:Tutorials:Data Folder Tutorial Igor Pro Folder:Examples:Analysis:Gaussian Filtering Igor Pro Folder:Examples:Example Igor Procedures:XCEL Drag&Drop Igor Pro Folder:Examples:Graphing Techniques:Arrow Plot Igor Pro Folder:Examples:Programming:AutoGraph Igor Pro Folder:Examples:Sample Graphs:Contour Demo ColorScale Demo Igor Pro Folder:Examples:Visualization:Surface Plotter Demo New And Improved WaveMetrics Procedure FilesHere are the WaveMetrics procedure files added or enhanced in Igor Pro 4. Igor Pro Folder:WaveMetrics Procedures:Analysis:ANOVA.ipf Igor Pro Folder:WaveMetrics Procedures:Analysis:DSPCross Spectral Density.ipf Igor Pro Folder:WaveMetrics Procedures:Graphing:ColorsMarkersLinesPatterns.ipf Igor Pro Folder:WaveMetrics Procedures:Image Processing:All IP Procedures.ipf Igor Pro Folder:WaveMetrics Procedures:Utilities:ProcedureBrowser.ipf Igor Pro Folder:WaveMetrics Procedures:Utilities:String Utilities:File Name Utilities.ipf Obsolete WaveMetrics Procedure FilesThe following WaveMetrics Procedure Files are obsolete. The same functionality is now available either built-in or by a newer and better procedure file. The files are still provided for backwards compatibility. Igor Pro Folder:WaveMetrics Procedures:Analysis:WM_MDFitFunctions.ipf. These functions are now available as built-in curve fitting functions. Igor Pro Folder:WaveMetrics Procedures:Graphing:Drawing Axes.ipf. New TransformAxis.ipf procedure file does the same thing in a new and better way. Igor Pro Folder:WaveMetrics Procedures:Image and Contour Plots:Path Profile.ipf. The same thing and more is done by the built-in ImageLineProfile operation. Obsolete WaveMetrics XOP FilesThe following WaveMetrics Procedure Files are obsolete. The same functionality is now available either built-in operations and functions. The XOPs are still provided for backwards compatibility. Igor Pro Folder:Igor Extensions:TiffReader Programming ImprovementsExtensive changes have been made to Igor's programming environment but the biggest change is the one that is the least visible. Igor's procedure window compiler was changed to use separate compile and link stages. The upshot is that only those procedure windows that have been changed need to be recompiled, resulting in much faster program development. As of Igor Pro 4, we now suggest that all programming be done with functions and that macros and procs not be used. Prior to version 4, you had to use a macro in order to get the missing parameter dialog. But now you can do the same thing from functions using the DoPrompt statement. See The Simple Input Dialog in the online help for details. You'll love the new symbolic debugger. Ambitious programmers swamped by a huge number of user-defined functions or procedure files should try the Procedure Browser (implemented using still more user-defined functions!). New flow control structures: elseif (See Body Code) Previous versions of Igor did not check for junk after a flow control test. For example, Igor would not complain if you wrote: if (<text>) <junk> Igor now detects this and brings it to your attention. For years, we have warned Igor programmers to stop using | as a comment symbol. We hope you have heeded these warnings because.... ....Igor now uses the following C-like symbols: // Starts a comment If you still have procedure files that you wrote using | for comments, change them to use // instead. You don't need to do this immediately, as explained next. However, you should do it without undue delay. Because previous versions of Igor accepted | or || as the start of a comment, experiments not created by Igor Pro 4 are opened in compatibility mode. In this mode, | still starts a comment. If you want to use the new symbols in old experiments, you have to explicitly tell Igor to switch out of compatibility mode. See the "Note for Users of Igor Legacy Code" under Command Line Operations in the online help. The previous symbols for bitwise AND, OR and complement (%&, %| and %~) are still available, but new programming should use &, | and ~. Previously, when a complex wave was used in a real number context, Igor would silently throw away the imaginary part. Now a runtime error is reported. You can send results in one function back to the calling function using Pass-By-Reference. You can pass a reference to a function to another function. A programmer can define constants for use within procedure files. You can now create functions that are private to a given procedure file. It is possible to override a user function with another user function. #pragma IgorVersion can be used to prevent use of a procedure file with a version of Igor that is too old. The WAVE, NVAR, and SVAR keywords can take an abbreviated format. For example: WAVE wave0 is equivalent to WAVE wave0=wave0 The new /Z option to WAVE, NVAR, and SVAR defeats the new debugger's NVAR SVAR WAVE Checking feature, which normally drops into the debugger when a null NVAR, SVAR, or WAVE reference is created. You can/should use WAVE/Z if you subsequently check the reference yourself with WaveExists or the new NVAR_Exists, and SVAR_Exists functions. The NVAR_Exists and SVAR_Exists functions tell you if an NVAR or SVAR references an existing global variable. You can save an experiment from a procedure. See the SaveExperiment operation. The new sscanf operation makes parsing strings easier. It works in user functions only. You can do a find across multiple windows. See Finding Text In Multiple Windows in the online help. Text in procedure windows is displayed with syntax coloring. The Edit menu contains commands for commentizing and decommentizing procedure text as well as for adjusting indentation. You can insert a template for a user-defined function by typing or selecting the function name and pressing shift-help (Macintosh) or Ctrl-F1 (Windows). The contextual menu (cmd-click on Macintosh, right-click on Windows) in procedure, notebook and help windows includes items that allow you to insert a template, find help for the selected term, or find the definition of the selected user function. You can jump to the definition of a user-defined function by typing or selecting the function name and pressing shift-option-help (Macintosh) or Ctrl-Alt-F1 (Windows). For a complete list of procedure window shortcuts, see Procedure Window Shortcuts in the online help. You can now add items to the Help menu using a Menu declaration in the Procedure window. For unknown reasons, submenus added to the Help menu on Macintosh do not work. When you do a New Experiment or an Open Experiment and elect to not save the current experiment, Igor now prompts to ask if you want to save standalone procedure files that would previously have been closed without saving A help file can contain a link to a web page or FTP site. See Creating Links in Chapter II-1 of the manual. The DisplayHelpTopic operation allows procedures to display help topics. The GetWindow operation returns more information about windows. The BackgroundInfo operation returns more information about the background task. New keywords, dialogOK and noBurst, have been added to CtrlBackground. The ControlInfo operation returns more information about controls. The ControlUpdate operation causes the named control to "take" any value currently being edited. The new FastOp operation can be used to get improved speed out of certain wave assignment statements. This makes the FastWaveOps XOP obsolete. The SetIgorOption operation allows you to fine-tune various Igor behaviors. The NewPath operation now sets V_flag to zero if it succeeded or to non-zero if it failed. Operations that create windows (Display, NewImage, Edit, NewLayout, NewPanel, NewNotebook, OpenNotebook) take a /K flag that allows you to determine what happens when the user clicks the window's close box. The following operations now take a /W flag which tells them to operate on a specific window. AppendText, ReplaceText, TextBox, Tag, Legend The Execute/P operation allows an advanced programmer to post commands to be executed after procedure execution finishes. This can be used to load or unload packages of procedures. See Operation Queue in the online help. The PauseForUser operation allows an advanced programmer to suspend execution of a function to allow the user to make manual changes. See Pause for User in the online help. Advanced programmers can hide procedure files from novice users. See Invisible Procedure Files in Chapter II-23 of the manual. New Operations And FunctionsHere are the built-in operations and functions added in Igor Pro 4. New Graph Operations And FunctionsColorScale New Layout Operations And FunctionsAppendLayoutObject New Control Panel Operations And FunctionsControlNameList New Programming Operations And FunctionsAddListItem New Analysis Operations And FunctionsFastOp New Matrix Operations And FunctionsMatrixDet New Image Processing Operations And FunctionsImageBoundaryToMask New 3D Analysis Operations And FunctionsBoundingBall Printing and Export ChangesYou do not need to read this section unless you encounter problems with printing and exporting. Mac and Win: Image printing and exportAn attempt has been made to improve the speed of image printing and exporting in certain modes. This improvement is active only when the image is evenly spaced (no log axes or user supplied x or y waves) and only when the image is free of holes (usually caused by NaN in floating point data). A side effect of the new technique is that the quality of the image color or gray scale now depends on the current screen depth. Igor's native EPS export is not affected (yet). The export modes that are affected (improved) are PICT on Mac and emf on Win. If you encounter problems, you can cause Igor to revert to the old method like so (on the command line): Variable/G root:V_UseOldImageCode= 1 Be sure to let us know if you need to revert to the old method. During testing, a quirk of the Epson Stylus Photo was encountered. It appears that if the only use of color or grayscale on a page is in the interior (not periphery) of an image, then the whole page will be printed in black and white (not even grayscale). NOTE: if you do not get fast image printing and think you should, try setting the following option to cause information about the drawing (or printing) of an image to be sent to the history window. As long as the option is in effect, the info will be printed each time an image is updated, exported or printed. SetIgorOption imagedraw,bmdata=<1 or 0>// puts info in history about image draw using bitblit of data method Mac and Win: PageLayout printing using bitmapsYou can now tell Igor to print graphs in Layouts using a high-res bitmap rather than the usual object draw method. This is provided only for emergency use when a printer driver has bugs that affect normal operations. It may also be useful for printing graphs with very large numbers of data points. There are drawbacks to the bitmap method. A large amount of memory will be needed and on the Mac, patterns will be too small to be useful. Also, the quality of lines (especially dashed lines) may be inferior. To cause Igor to print graphs in Layouts using the bitmap method, execute the following on the command line: Variable/G root:V_PrintUsingBitmap= 1 Windows only: Printing and exportingAn attempt has been made to use printing and exporting methods resembling those of MS Word97 in hopes of improving Igor's compatibility with printers (especially fill patterns under Win95/98). The compatibility of EMF export to MS apps should be improved but we were not able to figure out what to feed MS Word97 so that emfs with filled shapes could be edited in Word. If you run into problems that you think may be caused by these changes, you may revert to the original Igor method like so: |
SetIgorOption WinDraw,UseWord97Fill=0 // turn off new method of pattern fill SetIgorOption WinDraw,UsePrinterRes=0 // Turn off use of printer resolution in emf export SetIgorOption WinDraw,UsePrinterDC=0 // Turn off use of printer as reference device in emf export |
Note 2: UsePrinterRes only affects graphs. |
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More