What's Changed Since Igor Pro 6.1

This file describes significant changes made to Igor Pro and supporting files since the release of Igor Pro 6.10, culminating with the final 6.1 release (6.12A). Here are the updates in reverse chronological order:


Update Igor 6.12A

Note: Igor 6.12A is a Windows-only revision. Igor.exe's file version is now 6.1.2.1.

Igor Application

NEW FEATURES

Added DisplayProcedure /L=lineNo.

BUGS FIXED

Windows: PNG imges in notebooks are no longer drawn at the wrong size when printing.

Windows: Dashed lines in Legend annotations have the correct color when using New Graphics (the default).

Windows: Window hook functions were getting two moved events (event code 6) if the hooked window was moved using MoveWindow.

The WaveMin and WaveMax functions returned strange values if the range examined contained nothing but NaN.

Windows: The Dashed Lines dialog now draws an indicator above the ruler showing the current dash position.

If you showed an info box on a control panel, then resized the control panel, the info box didn't move to stay aligned with the edge of the control panel.

Procedures

Fixed bug in ColorWaveEditor.ipf that caused problems with the initial layout of controls in a client-mode editor panel.

Fixed bugs in AppendContourToGizmo.ipf and Extract Contours as Waves.ipf: Now the Gizmo procedures don't automatically add Extract Contours menu items to the Graph menu, and now if you do intentionally include Extract Contours as Waves.ipf into an indepdendent module with menus=1, the Graph menu items work.


Update Igor 6.12

Igor Application

NEW FEATURES

NewPanel/FLT=n; n can now be 2 to ask for a floating panel without a close box.

Changes to movie creation and reading:

Windows only: New flag for NewMovie, /A causes a native .avi to be created and does not need or use QuickTime. By default, the compression used is Microsoft Video 1. On Mac, /A is ignored. On Windows if QuickTime is not present, the /A flag is not needed and AVI files will be created.

Windows only: New keywords for PlayMovieAction: open=fullPath opens an AVI file using native support (no QuickTime) for reading frames. New ref keyword must be used when acessing an AVI file. To get more info if an error occurs, use:

SetIgorOption VerboseMode=2

Windows only: if QuickTime is not present, PlayMovie will call the operating system's movie player with the specified file.

You can now create movies from pictures in the picture gallery using the new /PICT flag with NewMovie and AddMovieFrame. This can be used to create moves from page layout windows.

You can now cause SavePICT to store the picture in Igor's picture gallery by using the magic path name "_PictGallery_" with the fileName set to the desired picture name. For example:

SavePICT/E=-5/B=72/P=_PictGallery_ as "myPicture"

Added experimental user function name colorization. Turn on via:

SetIgorOption colorize,UserFuncsColorized=1

and set color via:

SetIgorOption colorize,userFunctionColor=(r,g,b)

Added the following optional flag syntax to Concatenate:

/NP=dim Suppresses promotion and appends data along the specified dimension (0= rows, 1= cols etc). It is an error if the other dimensions in the wave source list do not match each other.

For example, using /NP=0 on matrix waves would append rows as illustrated here:

Make/O/N=(4,3) mat1= 1 + p + 10*(q+1)
Make/O/N=(2,3) mat2 = 1.1 + p  + 10*(q+1)
Concatenate/O/NP=0 {mat1,mat2}, dest
Print/F dest

Added a way for wfprintf to print waves into strings.

IgorInfo(5) returns (as a string) the serial number of the program, if registered, or "_none_" if the program isn't registered.

CHANGED BEHAVIOR

Mousewheel very near axis end now acts like it is exactly at the end.

Changed DataFolderRefStatus to return 0 for a killed global data folder.

Improved appearance of histogram bars when height is less than frame thickness. Can revert by SetIgorOption useNewZeroBar=2.

To avoid overflow, Integrate now redimensions integer type waves to a larger data type: /B (byte) and /W (16 bit) waves are redimensioned to /S (float), and /I (32 bit) waves are redimensioned to /D (double).

Differentiate redimensions unsigned integer type waves to a larger data type, as for Integrate. Signed integer waves are not redimensioned.

Changed FIFO routines to support very large files. Max size is 2G times size of data sample. i.e., 2 chans of 32 bit float means max file size of 2*2*4= 16GB.

For XOP programmers: ParseOperationTemplate uses "const char*" instead of "char*" in the RegisterOperation function of the starter code to avoid Xcode 3.2 warnings.

BUGS FIXED

FunctionList now returns user-defined DFREF or WAVE functions when VALTYPE is 16 or 32.

FunctionList now returns the correct list when both string functions and a number of parameters are specified.

Windows only: reverted to old grid drawing code due to problems with MS Office.

Fixed waterfall hidden lines in new graphics mode.

Fixed edit wave when both offset and multiplier are in use.

Fixed decolorization of fills when exporting graphics with the color checkbox off.

Added error check for free waves and the like being used in controls.

Added check for waves in use when moving global data folder to free.

Fixed problems with Data Browser when a free data folder is moved global (see Free Data Folders).

Fixed logic for Duplicate in functions when existing wave is found in a destination WAVE ref variable.

Fixed ImageGenerateROIMask to support rotated objects.

Made passing function to ThreadStart taking DFRef input illegal.

Fix crash when FFT is used in free data folder (see Free Data Folders). Also applies to other operations that may generate and kill temporary waves.

Now do a better job supporting KillWaves in free data folder (previously, wave was not killed until data folder went out of scope and was killed.)

Fixed experiment load byteswapping for reference waves.

Fixed up Duplicate and Extract to support overwrite when dest is a free wave.

Windows: Several dialogs (e.g., DoAlert dialogs) were changed to display ampersand characters correctly. Thanks to Holger Taschenberg.

Windows: The File→Recent Experiments and File→Recent Files menus now correctly display paths containing multiple ampersands.

Fixed a crash in page layouts when objects were set to "low fidelity". This would affect mostly Windows users.

IgorVersion was returning 6.1, not 6.11. (Now it returns 6.12, of course.)

Fixed some bugs involving embedded tables in page layouts. Right-most used column was sometimes blank when layout was at 50% magnification. Changing layout magnification from 200% to 100% caused embedded table size to change radically. Right-clicking on embedded table did not work when layout was at 50% magnification. Dragging column widths resulted in incorrectly-sized unused columns when layout was at 50% magnification. Undo after changing column width caused table to be displayed incorrectly when layout was at 50% magnification.

Fixed the Slider control's pointer being off by 1 pixel when in the horizontal position.

Windows: Fixed Magnification→Set as Default in text areas in the help browser and dialogs.

Windows: The "Ternary Diagram Help.ihf" file was corrupted and has been replaced with an intact version.

Windows: Fixed bug in which exterior panels were created slightly too small.

Fixed bugs in date/time display with fractional seconds. On Macintosh, the displayed time could be one second off. On Macintosh and Windows, date/times before 1904 with fractional seconds were wrong.

Fixed Save/F operation to correctly save 3D and 4D waves. A side-effect of the fix is that, when saving multi-column waves (1D complex waves or multi-dimensional waves), the table format for the first data column of a given wave is used for all file columns for that wave.

Fixed a bug in MatrixOP including bad order of execution on compound expressions that included convolve() or correlate() that resulted in wrong answers.

Fixed /TRIM flag in StatsQuantiles.

Fixed a potential crash in StatsRankCorrelationTest when the input contained multiple NaN values.

Fixed obscure crash triggered by changing a control's user data during code that causes calls to the control's action procedure. If this was done more than once before the queued action procedure calls were executed, a crash resulted from accessing stale user data.

FunctionInfo no longer crashes if the function name is null.

Macintosh Japanese: The Macintosh Japanese version of Igor Pro 6.0x did not support ODR curve fitting. This is now fixed. See Errors in Variables: Orthogonal Distance Regression.

XOPs

Windows only: Added an XOP that supports reading of the telegraph outputs of the Axon (now Molecular Devices) MultiClamp 700A and 700B patch clamp amplifiers. See AxonTelegraph XOP for details.

Windows only: FindPeaks.xop's operations can now be called from a function (just like with the Macintosh version).

SndLoadSaveWave.xop: Bug fix for "no sound data in movie". On Windows the "seconds" and "samples" popup items are no longer reversed.

Fixed a problem in Gizmo that affected conversion from rotation matrix to quaternion.

Procedures

Corrected WMMenus.ipf so that the Window Browser displays its window when you select either Misc→Packages→Window Browser or Windows→Control→Packages→Window Browser.

Fixed InsertSubwindowInGraph.ipf to work correctly when only one graph exists and to show only graph window names in the insert button.

Fixed Resize Controls.ipf and Resize Controls Panel.ipf to ignore subwindows that don't contain controls.

Enhanced the Window Browser package (WindowBrowser.ipf):

If you select Kill from the Act On menu, it kills only the selected sub-window, not the window's parent.

Added a refresh function that is used in a window hook to make sure the browser is up-to-date when it is activated. It also refreshes any time you use one of the menu actions that can change the contents.


Update Igor 6.11

Igor Application

NEW FEATURES

Macintosh: Sound input and output now uses core audio and supports hardware with more than two channels, high sampling rates and 32 bit floating point data. See SoundInStatus, SoundInStartChart and PlaySound.

Now support WAVE w= ModuleName#waveRefFunc() syntax.

Now support exterior subwindows when the host is a panel window and the host is resized.

Added to ImageAnalyzeParticles a new flag (/CIRC) which allows you to control the range of circularity of the detected particles.

Added to ImageAnalyzeParticles a new flag (/EBPC) which allows you to exclude particles that have one or more pixels on any of the image boundaries.

Added a new function Variance(inWave) that returns the variance of real input waves.

The DrawText dialog has 1-degree text rotation combo box.

Added /FREE flag to the Extract operation.

CHANGED BEHAVIOR

Clicking Stop in the Debugger stops at currently executing macro line instead of the first line of the macro.

Limited length of automatically-generated table titles to 40 characters as it was prior to Igor Pro 6.1. Otherwise long table titles mess up the Windows→Table submenu on Windows. Explicitly set titles can still be up to 255 characters.

BUGS FIXED

Macintosh: Put in a workaround for a bug in a pre-release version of Mac OS X 10.6 which caused the Igor custom controls in the Print Graph dialog to fail to work.

Macintosh: Fixed a problem that caused file reads and writes to fail for files greater than 2 GB.

Windows: fixed ValDisplay appearance with frame=5 missing right side of the frame.

Prevented crash when KillWaves is used on a free wave.

Fixed bug in color as f(z) when the wave has NaN at point 197 and when it has very long stretches of the same color.

Fixed doubling up on last point of wave[0,inf] += xx when executed from the command line.

sscanf now returns 0 rather than -1 if passed an empty string.

Added better error messages for attempts to use function-only flow control statements in macros.

FunctionPath now works correctly from an independent module even if SetIgorOption IndependentModuleDev=0 (the default setting).

Fixed a crash in ImageRegistration and MatrixSVD/B.

Fixed a problem in DSPPeriodogram that returned an error in default mode (no intervals).

SetVariable valueBackColor now works on Windows. Now valueBackColor is used even if frame is off, but only if valueBackColor isn't =0. On native Macintosh removed white border and color splash outside the frame.

Fixed independent module bug that resulted in changing SetWindow hook=$"" to be imName# when executed in an independent module #pragma independentModule=imName.

Macintosh: the appearance of a control placed inside a filled drawing rectangle is no longer marred by little white lines.

Fixed SetVariable dialog not accepting row dimension label change for a wave value.

Fixed a bug that caused various file-related errors if the name of the boot volume contained accented characters. One manifestation of this is that it prevented Igor from recognizing that it was correctly licensed.

Fixed a bug introduced in Igor Pro 6.10B01 that caused errors when loading Igor text files.

Fixed a crash if you tried to search help files while in the debugger.

Fixed crash in Save operation if a non-existent wave was specified. This crash was introduced in 6.10B05.

Fixed error when the Save Waves dialog generated a command that was exactly 400 characters before counting the CR at the end of the command.

XOPs

Updated the MLLoadWave XOP so that it will work with Matlab 2009a.

Updated Macintosh Data Browser to support horizontal scrolling with two finger trackpad gesture.

Procedures

Corrected WMMenus.ipf so that the Window Browser displays its window when you select either Misc→Packages→Window Browser or Windows→Control→Packages→Window Browser.

The Split Axis package now does the right thing with axes that participate in Swap XY (either through traces with the /VERT flag or via ModifyGraph swapXY). It also now restores the reversed-ness of reversed axes when un-splitting.

Updated Image Particle Panel.ipf.

Added optional reporting of background level and ratio of peak height to background in Multipeak Fit 2.

Fixed AppendContourToGizmo.ipf so that the contour and surface popup menus work.

KBColorizeTraces.ipf revised to improve panel's appearance on Windows (control placements).

Examples

Most of the sound input examples were modernized to support the new core audio support on Mac.

Added a Visual Studio 2008 version of the IgorClient example Windows Automation client program. This is in "Igor Pro Folder\Miscellaneous\Windows Automation\Automation Server Examples.zip".

Windows: updated demo experiment for Direct Show XOP (DSXOP).


Update Igor 6.10A

Note: Igor 6.10A is a Windows-only revision. Igor.exe's file version is now 6.1.0.9.

Igor Application

CHANGED BEHAVIOR

Starting in Igor Pro 5, a double-click on a listbox cell resulted in two cell select events (event 4), which represented both a redundant call to your action procedure, as well as a redundant selection. The extra selection and event have been removed.

BUGS FIXED

Windows: Launching a second instance of Igor (by starting Igor.exe while holding down the Ctrl key) no longer makes Igor take a very, very long time to start. This bug was introduced after 6.10B07 and in the 6.10 Release.

Restored the behavior of Duplicate in macros to ignore the type flags (/B/D, etc) which are useful only in functions.