Igor Pro Changelog

What's new in Igor Pro 6.34

Dec 4, 2013
  • New Features:
  • Added DoIgorMenu "Help", item, where item is one of: "Getting Started", "Igor Help Browser", "Help Topics", "Shortcuts", "Command Help", "Manual", "Support", "Show Igor Pro Folder", "Show Igor Pro User Files", "License", "WaveMetrics Home Page", "Support Web Page", "IgorExchange", "About Igor", or "Updates". On Macintosh, item can also be "Igor Tips" to toggle the state of Igor Tips.
  • Windows: The License dialog has a new "Install License for All Users" button to escalate Igor to run as Administrator to install the license activation for all users, whether on the computer or logged in over a network (a "server license"). This is effective only if the current user is also a member of the Administrator group. See Igor License Activation.
  • Changed Behavior:
  • PrintGraphs can now take /PD as first flag to get print dialog so user can print to file or preview.
  • PopupMenu popvalue and popmatch accept up to 255 character strings (previously the limit was 100 chars).
  • The cursor info panel 2D mover now responds to mouse wheel or pad action in the same direction as dragging the 2D mover.
  • Windows: Added a workaround for the problem some Windows users experienced of a long delay at startup with the message "Checking default printer" in the title bar. During this time Igor is asking Windows for default printer settings. This information is mostly used to determine the size, orientation and margins of the page in a new page layout. Some printer drivers attempt to access the printer when asked for default settings. If the printer is inaccessible (e.g., turned off or not reachable through the network), the system spends a long time searching for it. The workaround is that Igor notices that it has taken a long time and sets a preference which makes Igor use a cached version of the printer settings the next time it launches. To implement this, a new preferences file named "Igor Printing Prefs.txt" is created on Windows only. Once this problem is encountered, Igor will continue to used the cached settings until you change the default printer or tinker with the preference file.
  • Bug Fixes:
  • The Modify Trace Appearance dialog no longer hides marker stroke color when text markers are in use. Also fixed an obscure bug involving making changes to multiple fill modes when then first trace already used that fill mode.
  • The trace contextual menu's Send To Back, etc now properly adjusts the text of legends to maintain the correct trace style just like ReorderTraces did.
  • Tags on images now respect the "hide-if-off-scale" setting.
  • Fixed detection of two-byte characters in text labels.
  • Fixed possible memory corruption when Extract is used on text waves with overwrite.
  • Fixed size when exporting a subgraph, fixed overlapping tick labels when 3 or fewer will fit.
  • When fitting with the built-in poly_XOffset fit function, Igor failed to record the X0 constant in the W_fitConstants wave.
  • Applying Optimize to a univariate function that returns NaN no longer prints the BUG message, "fminbr got a bad tolerance value".
  • If you had a user-defined function called "line" that was not in the format of a user-defined fit function, Igor would hang the first time you tried to open the Curve Fit dialog.
  • SpecialDirPath("Igor Application", 0, 1,0) no longer returns a Macintosh OS-9 formatted path; it now correctly returns a native-formatted path as documented for the flags parameter.
  • Fixed failure to revert captured swapXY preference for Image and Contour plots when reverting Image or Contour preferences in the Capture Graph Prefs dialog.
  • Fixed problem of DoWindow/T not working with hidden window if there were no visible target windows.
  • Fixed problem of WinType("Procedure") returning 8. WinType is supposed to ignore procedure windows and work on target windows only.
  • Fixed failure to handle Windows paths in Execute/P LOADFILE and Execute/P MERGEEXPERIMENT.
  • Fixed rare crash during Merge Experiment if user hook functions are present.
  • Fixed Independent Module bug involving #including procedures that are already opened directly (not via #include) and have the same IndependentModule name as the file #including them.
  • Windows: The Object Status dialog can now correctly distinguish between identically named objects in the drop-down list, and no longer closes when the return key is pressed, allowing one to type in an object name as on Macintosh.
  • Procedures:
  • The Delete XY Points procedure detects problematic XY Pairs with differing numbers of points.
  • The Split Axis package now works correctly if you are splitting a category axis.
  • Fixed a bug in HierarchicalListWidget: if you removed the last row, it forgot that the ListWave and SelWave were multi-column waves.
  • The Power Spectral Density procedure sets Variable/G V_ENBW to the "Effective noise bandwidth", and presents longer segment lengths in the PowerSpectralDensity() popup parameter.
  • The Gaussian Filter procedure explicitly labels the frequency graphs with "Hz".
  • The Polar Graphs procedures implement simple radius error bars, and have more programming APIs for modifying basic properties of polar graphs including: WMPolarSetManualRadiusRange, WMPolarGetRadiusRange, WMPolarSetAutoRadiusRange, WMPolarSetZeroAngleWhere, and WMPolarSetAngleDirection.
  • XOPs:
  • Fixed garbling of 64-bit integer data in compound HDF5 datasets.
  • Fixed a bug in the GetString callback that was asymptomatic with XOP Toolkit 5 but symptomatic with XOP Toolkit 6. The GetString callback is used only by ancient non-Operation Handler XOPs.

New in Igor Pro 6.32A (Dec 4, 2013)

  • Bug Fixes:
  • Fixed a crashing bug in Igor 6.32 related to #undef and #define in the main procedure window.

New in Igor Pro 6.32 (Jun 10, 2013)

  • Changed Behavior:
  • Size of textboxes in Layouts is now more accurate when exporting at high resolution.
  • Changed PlaySound on Mac to support changing chans or rate even if /A is in effect.
  • Multiline DrawText no longer truncated at first \r character by the dialog.
  • Missing recent files or experiments aren't removed from their lists unless the user approves.
  • Tech Note TN003 was updated to explain that, as of Igor Pro 6.30, Igor no longer writes binary wave files using the version 2 format. It now uses the version 5 format as explained in that tech note.
  • Bug Fixes:
  • Fixed bug where passing a wave to a function with a WAVE/DF input parameter would damage the wave.
  • Prevented bogus P or X used outside of a wave assignment loop warning message when a := expression is defined in a user function. For details, see Wave Dependencies.
  • Fixed draw object resizing when the x axis coordinate is used and the axis is reversed.
  • Fixed very rare phantom line in graphs with magic combination of data and NaN.
  • Prevented crash in the Font Substitution dialog when an installed font's name is longer than 39 characters on Macintosh or 31 characters on Windows. Currently fonts with such long names can't be used in Igor. This will be corrected in a future release.
  • Fixed a potential crash of FuncFit if you use a threadsafe user fit function from the main thread (for instance, from the command line).
  • Removing #pragma hide=1 from a procedure file now properly reverts to (effectively) #pragma hide=0.
  • Fixed a bug in DrawBezier that caused the bezier to not draw correctly.
  • Fixed a crash that occurred if the search expression in the Search Igor Files tab of the Help Browser was longer than about 200 characters.
  • Fixed endless loop that occurred if Histogram /B=4 was passed a wave that contained only NaNs, or that contained just a single non-NaN value.
  • FTPDownload no longer fails when /O is not used or /O=0, the destination file or directory is fully specified, and the destination file or directory does not already exist.
  • ProcedureText no longer limits the length of the macroOrFunctionNameStr parameter to only 31 characters.
  • In the Modify Axis dialog's Range tab, the Expand 5 Percent button now works correctly with a log axis.
  • Fixed a bug that prevented /W flag in NotebookAction, MeasureStyledText and GetMouse from working in independent modules.
  • Fixed normalization in StatsNPMCTest for the case where the input groups do not have the same number of samples.
  • Fixed bug in Optimize: If you called Optimize in a function, the arguments to the /R flag were read in backwards.
  • Fixed a crash in MatrixOp when dividing a matrix by complex number where the imaginary part is zero.
  • Windows: Igor no longer becomes inactive and disabled after using the Debugger during a FuncFit with the fit results dialog.
  • Windows: fixed crash that occurred when user clicked a color popup menu, chose Other..., and clicked outside of the ChooseColor dialog, deactivating it. To avoid this crash the ChooseColor dialog is now closed if it is deactivated.
  • Windows 64-bit: printf "%d\r", NaN prints a plausible number instead of garbage.
  • Windows: Fixed a bug in ActiveX Automation that caused an error if you used the IDataFolder interface Variable method to create a reference to an Igor global variable and you specified a simple variable name for the varNameOrPath parameter rather than a partial or full path.
  • Procedures:
  • PeakAreasUnipolar.ipf (the procedure file that implements TN020-C UniPolar Peak Areas) works better with negative-going peaks.
  • Scatter Dot Plot.ipf: Fixed a bug which involved creating a graph as a Scatter Dot Plot, deleting it, then creating a new graph that gets the previous SDP graph's name but is not a scatter dot plot. If the Scatter Dot Plot package is still open you run the risk of a Scatter Dot Plot being superimposed on the other graph. Also added a button to remove a Scatter Dot Plot from an existing graph without killing the graph.
  • PieChart.ipf: Added PieChartForProgrammers() and ModifyPieChart() for programmatic creation and modification of simple 2D pie charts. Also made previously static (private) structures and constants public so current pie chart values can be read out.
  • XOPs
  • Interpolate2 now correctly handles free waves passed as X dest wave in "X from dest" mode (/I=3 flag). Also handles free waves passed as stdDevWave (/SWAV flag).
  • In the VISA XOP, added support for reading the VI_ATTR_USB_RECV_INTR_DATA attribute using the viGetAttributeString function. This permits reading USB interrupt data.

New in Igor Pro 6.31 (Jun 10, 2013)

  • Bug Fixes
  • BinarySearchInterp and Unwrap no longer truncate to integer (this was an Igor 6.30-only bug).
  • BinarySearchInterp is used in 3 WM Procedure files: New Polar Graphs Draw, Image Contrast, and Cross Hair Cursors.
  • Unwrap is used in 5: FilterDialog, Pole and Zero Filter Design, and CmplxToMagPhase, FTMagPhase, and FTMagPhaseThreshold.
  • DrawAction and SetDrawEnv now properly enforce non-liberal group names.
  • Procedures
  • Batch Curve Fitting package: added the ability to limit fits to a specified point range. The limit applies to all fits in the batch. Per-fit limits continue to use Mask waves.
  • XOPs
  • Data Browser XOP: on Macintosh and in the IGOR64 version on Windows, the Save Copy button saved unselected as well as selected objects instead of just the selected objects if anything other than a single data folder was selected.
  • Windows: Fixed a bug in Gizmo that affected the recreation of sphere objects.

New in Igor Pro 6.30 (Jun 10, 2013)

  • New Features:
  • TraceInfo returns the ErrorBars command for the trace in the to-be-documented ERRORBARS group.
  • Bug Fixes:
  • Finally tracked down and fixed a long-standing bug in the New or Edit Fit Function dialog: certain sorts of errors resulted in the dialog failing to revert properly when the Cancel button was clicked. That made it difficult to recover from the error, especially for non-programmers.
  • Fixed a bug in the Histogram dialog: if you choose a multidimensional wave as the source, the dialog thought the result would be multidimensional and the Display Result section of the dialog would offer inappropriate choices.
  • Fixed data swapping in MatrixOP correlate for 2D waves with opt=0.

New in Igor Pro 6.30B03 (Jun 10, 2013)

  • New Features:
  • Added the Batch Curve Fitting package.
  • Added the Scatter Dot Plot Panel.
  • Improved the detection of bugs in user-written code in functions. See Changed Behavior.
  • The escape code used in TextBox and Tag commands to display a specific marker, \Wtdd, can now also be \Wtddd and supports custom markers. Custom marker numbers start at 100 and can go up to 999. For more on custom markers, see "Custom Marker Hook Functions".
  • Added a new flag to the Cursor operation:
  • Set No Kill mode. Suppresses the normal removal of a cursor when it is dragged and released outside the graph plot area.
  • Added the GetMouse operation.
  • The FilterFIR notch filter length had been limited to 4001 points. Now the limit is 2147483647 points, which makes the minimum notch width 0.000107% of the sampling frequency.
  • Added WaveRefIndexedDFR. Use this instead of WaveRefIndexed when you want to iterate over the waves in a data folder without needing to use GetDataFolder and SetDataFolder.
  • Added the Scatter Dot Plot Panel. Scatter Dot Plots are one part category plot, one part scatter plot, and one part histogram. Like category plots they show total counts for multiple data sets, each labeled on the X axis. Like scatter plots they provide a sense of the data's distribution. Like histograms they sort data into bins of points in which all values fall into a range.
  • Windows: GetWindow kwFrameOuter wsizeRM returns the pixel coordinates of the MDI frame even when the frame is maximized (wsizeDC returns 2,2,2,2 in this case) or minmized (in which case it returns coordinates very far offscreen).
  • Windows: the AfterMDIFrameSizedHook(param) user-defined function that Igor calls when the "MDI frame" (the "application window" that Igor has only under Windows) is resized is now also called when the MDI frame is moved, in which case param = 3. Resizing the frame by the top left corner calls AfterMDIFrameSizedHook twice; first for the move (param = 3) and then for the normal resize (param = 0).
  • Changed Behavior:
  • Improved error checking when the wrong type of wave is used in a compiled wave assignment. For example, a complex destination wave but used in a real-only assignment expression.
  • New procedures files are now created with an initial line of text which turns on runtime lookup of globals, strict wave reference mode and wave index bounds checking:
  • #pragma rtGlobals=3
  • NOTE: #pragma rtGlobals=3 requires Igor 6.13 or later. Edit this line to rtGlobals=1 if the procedure will be opened by Igor versions earlier than that. Also see Update 6.20B01 for another suggestion on compatibility with earlier versions of Igor.
  • Also improved error checking of single-point Waveform Arithmetic and Assignment expressions in user-defined functions:
  • Since 2004, user-written function code that assigned an expression to a single point of a wave similar to this:
  • wave[index] = expression
  • compiled faster code than that used to implement a full wave assignment loop. In this case the usually varying p and x incrementers are not set and expressions that use them give unexpected results. So:
  • Variable idx= 3
  • wOutput[idx]= wInput[p]
  • would likely assign wInput[0] to wOutput[3].
  • Igor 6.3 now posts a run-time warning message:
  • WARNING: P or X used outside of a wave assignment loop. For details execute:
  • DisplayHelpTopic "P or X used outside of a wave assignment loop"
  • Or execute
  • SetIgorOption FuncOptimize, CatchIllegalPandX= 3
  • and recompile to find and fix the error.
  • or, if #pragma rtGlobals=3 is in effect, a compile-time error is generated. If you encounter this, you should fix the problem. However, if you are unable to do so, you can control the behavior:
  • SetIgorOption FuncOptimize, CatchIllegalPandX= 0, 1, 2 or 3
  • Use 0 to turn off, 1 to turn on warning, 2 to turn on error but only if compiling #pragma rtGlobals=3, 3 to turn on error always.
  • SetScale with no wave list now reports an error. Previously it would beep, emit a warning message and change the default scaling for new waves or Make/O. This was for compatibility with Igor 1.2.
  • Igor emits a "To invoke a built-in function you must print or assign the result" error for built-in string functions as well as numeric functions.
  • The functions mean(), area() and areaXY() now return a NaN when the input is a zero-point wave.
  • Legend text isn't rewritten if ReplaceWave's /X flag is specified.
  • If you used ImageTransform compress in IGOR64 on waves larger than 2 GB, such waves can not be decompressed in Igor Pro 6.30B02 or later. You will need to decompress them in Igor Pro 6.30B01.
  • #pragma hide previously took effect only if the procedure window containing it was write-protected or read/only. Now it takes effect regardless of the file's write-protect and read/only states. It is overridden only if SetIgorOption IndependentModuleDev=1.
  • This change allows you to hide packed and standalone procedure files, something previously not supported, in addition to #included procedure files which previously were hideable. The underlying change also affects packed and standalone procedure files that are part of independent modules. They will now be hidden from the Windows->Procedure Windows menu. Previously this worked reliably only for #included procedure files.
  • Windows: Retrieve Window and Retrieve All Windows no longer attempt to retrieve minimized windows. There is no good way for Igor to determine the size and position of a minimized window, so Retrieve Window can not do the right thing. When you resize the Igor frame window, the system automatically shifts minimized windows appropriately so there is no need to retrieve them.
  • Bug Fixes:
  • UniqueName("button",15,0,"host#subwindow") returns a unique control name for the subwindow instead of giving up and always returning "button0".
  • Fixed problem of leaving internally-used gWMSetNextTextFilesTextEncoding global around after loading an experiment written by IP630B01.
  • EdgeStats /L no longer causes /R=(x1,x2) to be treated as /R=[x1,x2].
  • FindRoots operation: FindRoots would report some errors, causing an error dialog to appear, in spite of the use of the /Q flag.
  • The Modify Trace Appearance dialog handles"Customize-at-Point" mode better when the trace's mode is text or arrow markers.
  • The Append Category Plot dialog did not offer vertical user-created axes in the axis list.
  • Fixed crash on merging experiments if the merged experiment's name exceeded 31 characters after removing the file name extension.
  • A Colorscale with no ticks still draws the axis label.
  • Resample handles very long integer waves without generating spurious errors.
  • RatioFromNumber no longer returns large numerator and denominator values for an input very close to a whole number.
  • Fixed failure of Sort /DIML to preserve the overall dimension label.
  • Fixed a problem in ImageTransform compress in Igor64. Wave extended units, dimension labels and note were not correctly preserved.
  • Fixed a problem in ImageTransform compress if wave had data units.
  • The IGOR64 #define was incorrectly defined in IGOR32. See "Conditional Compilation" for background information.
  • LoadData and the Data Browser's Browse Expt feature can now load large waves (>=100E6 bytes) saved from IGOR64.
  • Fixed the Select Control submenus.
  • Fixed a bug in the Curve Fitting dialog: if you chose a 4-D multivariate fit function, you couldn't choose a 4-D data wave.
  • Fixed a long-standing bug in the New or Edit Fit Function dialog: if you edited an existing fit function, made a mistake resulting in a compile error, and then cancelled the dialog, you ended up with two copies of the fit function in your Procedure window: the original plus the broken version.
  • Windows: The graph trace contextual menu's Text and Arrow Markers buttons now work.
  • Windows: Igor Command Line registration no longer crashes.
  • Windows: When running IgorE (English version of Igor) on a western Windows OS with the system locale set to Japanese, Igor used a western font for the entry line in tables. This caused the OS to improperly draw the table entry line characters with the result that nothing appeared in the table entry line. This is fixed. A side effect is that a Japanese font will be used in various places where an English font was previously used under these circumstances.
  • Procedures:
  • Fixed a bug in the GSHHS loader, ReadGSHHS_7.ipf, which caused the load to be truncated - not all data in the file was loaded into Igor. Thanks to Francis Dalaudier for finding and fixing this.
  • AppendContourToGizmo.ipf enables the Update Contour button if the surface data is newer than the contours.
  • SetIgorMenuModeProc.ipf was updated to reflect Igor 6 menus.
  • Added new TableOfGraphsTraces.ipf, which contains a "Graph" menu definition for creating a table containing the waves displayed in the graph. There are options for selecting hidden traces and traces in subwindows.
  • Global Fit now puts up the alert about running the template function only once per attempted fit.
  • The Multipeak Fitting 2 package now supports constraints on peak coefficients.
  • Added the ability to apply constraints to Batch Curve Fit, and to apply initial guesses as a 2D wave for per-fit initial guesses.
  • Examples:
  • Added the Open Color Table Control Demo experiment to demonstrate viewing data using a subset of a color table.
  • Added the Open Scatter Dot Plot Panel Demo experiment.
  • XOPs
  • In XLLoadWave, fixed a bug that caused erroneous reading of text from .xls files when the text had certain Excel formatting. This did not affect .xlsx files.
  • The SndLoadSaveWave XOP supports a wider range of frequencies.
  • Miscellaneous:
  • There is an issue using ActiveX Automation in recent versions of Windows (newer than Windows XP). This is explained under "Running ActiveX Automation in Newer Windows Versions".
  • Vector outlines of continents, borders and rivers are now available in packed Igor Pro experiment files. See "GHSSH".

New in Igor Pro 6.30B01 (Jun 10, 2013)

  • New Features:
  • New operation: ImageFromXYZ/AS xyzWave, dataMatrix, countMatrix. Places z values into a destination matrix as defined by the x and y values and the matrix x and y scaling. Z values will be added to the destination matrix while the countMatrix matrix will contain counts of the number of z values a given location (a 2D histogram).
  • Changed ImageGenerateROIMask. Added /L=layerNum to allow layer other than progFront. layerNum starts from 1, a value of zero results in the default progFront (layer 5).
  • Added features to support performance profiling of user code: string function GetRTLocation(sleepMs) and corresponding numeric function GetRTLocInfo(code). These are used in a new procedure file:
  • #include
  • This provides an easy way to find the bottlenecks in your user function code. See the comments at the top of the file for instructions.
  • NewMovie sets S_filename to the path of the created movie file.
  • Added /F flag to SaveExperiment operation. It permits control of the saved experiment file format.
  • New operation:
  • AdoptFiles [/I /A /NB /UP /WP /DF[=dataFolderOrWavePathStr]/WV=wavePathStr]
  • Added "WAVE" and "DF" options to the WaveList function to identify waves containing wave references or data folder references.
  • Added an option to the Integrate Dialog and Differentiate Dialog to display the output as an image or contour.
  • FunctionInfo returns "THREADSAFE:yes" for threadsafe functions.
  • Windows: Added the AfterMDIFrameSizedHook(param) user-defined function that Igor calls when the "MDI frame" or "application window" that Igor has only under Windows has been resized. AfterMDIFrameSizedHook can be used to resize windows to fit the new frame size.
  • Changed Behavior:
  • LoadPackagePreferences and SavePackagePreferences check for unsupported field types. String, Variable, WAVE, NVAR and SVAR field types have never been supported by these operations. Now an error is reported at compile time if they are used in structures passed to these operations.
  • If you try to invoke a built-in function without printing or assigning or otherwise using its result, Igor will now tell you To invoke a built-in function you must print or assign the result.
  • In some operations, using the same flag twice is now a compile-time error. Previously it was a runtime error. This affects all XOP operations and some built-in operations.
  • Changed the Add Annotation dialog to auto-fill new legends from the currently active subwindow. Also adds textboxes to embedded graphs in layouts at a reasonable location.
  • The New Image Plot dialog now recognizes that a 4-layer wave will be treated as direct color (now that NewImage supports alpha direct color), and shows the NewImage/G=1 checkbox.
  • ThreadGroupWait now tests for and finishes any threads that are ready to stop. Previously, it quit as soon as it found a still running thread. Also, using a wait time of -2 causes the first non-running thread to be returned rather than the first running.
  • If Debugging on Error is enabled, Igor will bring up the procedure window and highlight the offending line after the error dialog is dismissed.
  • Igor now accepts a colon character before the fractional seconds part of time formatted data (hh:mm:ss:fff) as well as dot (hh:mm:ss.fff) or comma if comma is selected as the radix character.
  • MoveFolder and CopyFolder now allow a trailing colon in destination folder path.
  • Added "SetIgorOption ScrollingMode=mode to allow you to disable the use of ScrollRect (Macintosh) or BitBlt (Windows) when scrolling text or tables. This is rarely necessary but can be used if your video hardware causes garbled scrolling. mode=0 is the default and enables ScrollRect/BitBlt. mode=1 disables ScrollRect/BitBlt.
  • The /T option to Grep was documented but not implemented until Igor 6.23.
  • ValDisplay controls whose value expressions previously caused runtime errors now simply print ""; no runtime error is raised.
  • WinList's INDEPENDENTMODULE:1 option no longer requires SetIgorOption independentModuleDev to list procedure windows in independent modules.
  • ProcedureText(functionNameStr, numContextualLines) with numContextualLines = -n retains at most n lines of context before the named function, and blank lines are not omitted.
  • Folders whose names begin with "." (such as .svn folders) are ignored when loading Igor Procedures, User Procedures, Igor Help Files, etc.
  • ThreadGroupWait now updates the internal state of each thread. Previously it stopped when it hit the first running thread. This has little or no impact on most procedures.
  • ThreadGroupWait can now return the index of the first free thread in a group. This may be useful in some multithreading projects. A demo is available in Open Thread-at-a-Time Demo.
  • FunctionInfo("doesntExist#doesntExist") now properly returns "" instead of generating a runtime error.
  • The IndependentModuleList function no longer lists disposed independent modules.
  • Bugs Fixed:
  • SavePICT/O/P=_PictGallery_/PICT=sourcePictName as "destPictName" now works as documented.
  • So does SavePICT/O/P=_PictGallery_/PICT=sourcePictName as "_string_".
  • PICTList error messages are more appropriate.
  • Fixed crash when SavePICT/SNAP is attempted on a subwindow.
  • Fixed Save Graphics dialog pict size when a subwindow is active.
  • Fixed the legend symbol for bars when a frame color is specified.
  • Fixed problems involving cursors in an external subwindow.
  • Make junk:jack now throws an error.
  • Fixed fill to next mode when next has a multiplier offset.
  • Fixed Concatenate when running in thread and using string list source mode.
  • Fixed memory leak in CustomControl involving user data.
  • Prevent killing waves used in draw poly in panels.
  • Made compile of AppendToGraph yy vs xx /TN=something illegal (bug allowed it but would crash). See User-defined Trace Names for more information.
  • Igor now checks trace names set via /TN in AppendToGraph or Display for illegal chars
  • Fixed Graph Browser panel when loading an experiment with minimized graphs.
  • Fixed show of hidden notebook subwindow.
  • Prevent hang on CtrlBackground period=0.
  • Prevent MultiThread from attempting to do threading when running in a preemptive thread.
  • Fixed func({1,2,3}) when func uses WAVE/Z.
  • Fixed waterfall plot in a layout, supports added normal traces in recreation macro.
  • Added more info for AVI open fail in verbose mode (SetIgorOption VerboseMode=2) during PlayMovieAction.
  • Fixed mask wave used with bars on category plots.
  • Fixed crash when free data folders obtained from a thread are moved into the main thread and then used again to send to a thread.
  • Igor no longer crashes after right-clicking a trace, choosing Duplicate Trace, and then later removing the duplicate or original trace, whether by Remove Trace or by closing the graph.
  • Fixed crashes in the Replace Wave dialog when there was no replacement wave selected for images or contours.
  • In a Dialog Wave Browser, sorting by creation or modification date no longer fails when waves have equal dates or when reverse sorting is selected.
  • Fixed a crash in the Histogram dialog when there was no source wave selected.
  • Fixed thread-safety of Save operation.
  • Fixed some un-threadsafe behavior in LoadWave /D.
  • Annotations dragged into a subwindow no longer become undraggable.
  • The Debugger prints more useful stuff for wave waves and data folder reference waves and prevents them from being edited.
  • ModifyControlList no longer sets only the first control's userData.
  • ListBox titleWave=$"" now works in a macro or on the command line, and Listbox special={0,0,1} properly auto-sizes the columns to fit the contents.
  • MoveFolder and CopyFolder no longer fail to cancel when you click Cancel in the Choose Folder dialog.
  • Fixed bugs in curve fitting error detection, making it more likely that fit functions that return bad values (NaN or Inf) will result in the correct error message. It is more likely that a fit resulting in a singular matrix error will correctly report the coefficient responsible (if possible), and more likely that a singular matrix error that results from wandering into bad parts of coefficient space will resolve themselves.
  • The fixes to curve fitting also mean that the MatrixInverse operation will give a singular matrix error rather than return a garbage inverse matrix. We still don't recommend using MatrixInverse for the most obvious uses.
  • Fixed crash using FuncFit/ODR= with an all-at-once fitting function.
  • Fixed crash in the Curve Fit dialog if you use the Graph Now button on a graph with linear X axis, and a pre-existing fit trace has an X wave.
  • Fixed a crash in sum-of-fit-functions feature of FuncFit: if a built-in fit function that requires a constant was used (such as exp_XOffset) but the CONST keyword was missing, a crash resulted. See also: Fitting Sums of Fit Functions
  • Fixed a bug that caused a failure to do a line break before a special character (e.g., picture) at the end of a formatted text notebook paragraph containing Asian text when the special character extended beyond the right margin.
  • Fixed a crash if an XOP file name exceeded 31 characters.
  • Fixed a rare problem whereby, if you opened a Macintosh experiment on Windows or vice versa, and if the experiment contained annotations using Symbol font characters in the range 0x80 to 0xFF, Igor would replace the characters with incorrect characters. For this fix to work you must introduce Symbol font using \F'Symbol' and restore the font to the original font at the end of the symbol characters. For example:
  • Textbox "\\F'Symbol'X\\F]0"
  • In this example, X represents some character in the range 0x80 to 0xFF. We switch to Symbol font for one character and then reinstate the annotation's default font.
  • ImageInterpolate with /U flag now forces the upper limit in each dimension to be the last data point of the corresponding dimension in the original image.
  • TableInfo now allows subwindow paths longer than 31 characters.
  • When interpreting a time value with fractional seconds, if the fractional part of the time exceeded 9 digits the resulting fractional seconds component was incorrect. No longer.
  • ColorScale/C/N=colorScale image=''#0, log=1 is now recreated properly.
  • Fixed the Open file dialog (Open/D/R/MULT=1) from command line or macro. It gave a spurious error. It worked OK from a user-defined function though.
  • The built-in #defines, MACINTOSH, WINDOWS and IGOR64, are now re-initialized on New Experiment. This will affect almost no one.
  • Fixed mode and fill pattern bug when displaying category plot traces when Repeat Wave Style Prefs is unchecked.
  • When loading packed experiments, data folder names containing non-ASCII characters are now translated between Macintosh and Windows text encodings when running as Roman/Western (not when running as Japanese).
  • Fixed two bugs that could cause a crash when running a curve fit in an Igor preemptive thread. The code that generates a wave note in the destination wave with curve fit results is not threadsafe, so threaded curve fits cannot use that feature. The other bug affects running polynomial fits in an Igor preemptive thread.
  • Added a check in curve fitting to prevent the use of internal threads if the curve fit is running in an Igor preemptive thread. Running too many threads can have a negative impact on performance.
  • Windows: Fixed a problem that caused character overhangs (e.g., the right tip of a lowercase f) to be erased in procedure windows and notebooks in some cases.
  • Windows: Using ActiveX Automation, the IgorApp.OpenFile, IgorApp.LoadExperiment, and IgorApp.SaveExperiment were broken in Igor Pro 6.1. This is fixed. Also, they now accept Windows paths as well as Macintosh paths (using colons) whereas previously they required Macintosh paths. See Path Separators for details.
  • Windows: Choosing Creation Order from the Sort option of a Dialog Wave Browser had no effect.
  • Windows: Using HideIgorMenus no longer permits a shortcut like Ctrl+J to work in spite of the corresponding menu item being disabled using SetIgorMenuMode.
  • Windows: Fixed crash that occurred in dialogs with a Display Output Wave option if a 2D wave was selected.
  • Windows: Added a workaround for a rare problem that causes copying to the clipboard to fail.
  • Windows: Floating panels (NewPanel/FLT=1 or =2) now work properly with MoveWindow and AutopositionWindow operations, even when Igor's MDI frame isn't on the main monitor.
  • Windows: IgorInfo(3) properly reports Windows Vista, Windows 7 and Windows 8, and Windows 2008 R2 Server.
  • Procedures:
  • In Multipeak Fit 2, changed the way graph curves are updated after editing coefficients in the list to make it more robust.
  • In PeakAutoFind.ipf, added a menu item giving access to peak finder parameters when using Automatically Find Peaks menu item.
  • Added FillBetweenContours.ipf, which replaces the still-present AppendImageToContour.ipf. FillBetweenContours.ipf implements a panel-based GUI to create an image which fills the regions between contour lines. You can also use this to create an image from non-uniform x,y,z values.
  • Added Color Table Control Panel.ipf, which adds a Color Table Control item to the Graph->Packages submenu, and implements a slider-based GUI for interactively setting the colors displayed in images, contours, and f(z) traces, whether based on a color table or a color index wave.
  • Added a Batch Curve Fitting package: allows you to fit batches of data to the built-in or user-defined fitting function of your choice. A "batch" is a collection of similar data sets stored in waves to which a common fitting function, initial conditions, and weighting and masking waves have been applied. Each data set may be stored in a waveform, an XY pair, or in the columns of a 2D wave.
  • Fixed bug in Ternary Diagram package: when initializing the Modify Ternary Labels panel, Side Labels tab, the right and bottom labels were swapped.
  • Added a feature to the Polar Graphs package where the angle and radius axis labels can be computed by a user-defined string function.
  • Fixed a bug in Transform Axis that could cause a tick on a transform mirror axis that was right at the end of the axis to disappear if you edited any ticks.
  • In the GIS Utilities package (Data->Load Waves->Packages->Install GIS Utilities), the vector file loader
  • Changed CallMicrosoftWord.ipf to use Igor Pro User Files instead of Igor Pro folder for script file. This should make it work on Windows Vista and Windows 7.
  • Examples:
  • Added the Multithreaded LoadWave programming example experiment.
  • Added the Thread-at-a-Time Demo multithreading programming example experiment.
  • Added the Fake Waterfall Demo example experiment.
  • Added the Batch Curve Fitting example experiment.
  • XOPs
  • Added the /WRIT flag to the HDF5SaveData operation. This is of use if you need to create very large datasets but you want to write to them later a piece-at-a-time.
  • NIGPIB2-64, the 64-bit version of the NIGPIB2 XOP, is now shipping for use with IGOR64.
  • Fixed crash in XLLoadWave when loading a .xlsx file containing an empty shared string.
  • The HDF5 XOP now supports loading a subset of a variable-length dataset.
  • The SetTextWaveData XOPSupport routine now returns an error if the wave is locked or if the wave was passed to a thread as a parameter to the thread worker function.
  • For XOP programmers: Igor's Operation Handler now supports "qualified keywords" such as:
  • ModifyGraph mode(wave0) = 3

New in Igor Pro 6.22A (May 12, 2011)

  • Changed behavior:
  • The DoAlert dialogs are a bigger to accomodate more of the allowed 253 characters of text.
  • Bug Fix:
  • Fixed hang when a time/date axis used autoscale and round-to-nice-values.

New in Igor Pro 6.2.1.0 (Dec 14, 2010)

  • New features:
  • Compound units now supported in log axis tick labels (i.e., when SI units are needed.)
  • Added Igor and IgorRecent keywords to ColorTab2Wave.
  • Windows: Added a rarely-needed option to change file caching behavior. This is almost never needed and should not be used except in very rare circumstances. See FlushFileBuffers.
  • The Histogram dialog Display Results now offers Top Graph as an option.
  • You can now suppress the Fit Progress window using /W=2 with CurveFit, FuncFit and FuncFitMD.
  • Changed behavior:
  • Changed NewMovie default to flatten as if the /L flag was provided. Must use new /L=0 syntax to not flatten.
  • Changed logic operand ~ to use 53 bits and fixed other logic operations to allow -1 or other negative numbers without overflowing 53 bits.
  • Windows: Speed up saving EPS and Igor PDF with large bitmaps.
  • FindValue/TEXT="" textWave can now find an empty element.
  • ColorScale is much smarter about reserving room for axis labels and tick labels offset from their normal positions. This will affect the position of elements in color scales with tick or axis labels that extend beyond the axes.
  • Changing a SetVariable control that is controlling an internal variable, internal string, or system variable (K0, etc) now marks the experiment as unsaved.
  • Bugs fixed:
  • Fixed annotation resize bug in layouts.
  • Fixed rare crash involving Duplicate and free wave.
  • Selecting more than one wave in various dialogs works again.
  • Fixed crash involving Draw to Next in graphs. Caused by bug introduced when allowing subranged data to work in this mode.
  • Fixed a crash when using Fill to Next mode in gaphs.
  • Resample and the Resample dialog handle large waves without generating spurious errors.
  • XYZ contours properly default to using perturbation again (bug introduced in Igor 6.20B03).
  • Colorscales with only one of First Color at Z= and Last Color at Z= set to manual values now draw with the correct range of colors.
  • The ColorScale dialog popup menus no longer duplicate liberally-named trace names.
  • The debugger's expressions pane no longer substitutes local variables for components of a data folder path.
  • The debugger no longer clips traces in the debugger graph when axes are hidden.
  • Fixed incorrect equation for dblexp_XOffset. An extra set of braces crept in while we weren't looking.
  • The Display Results boxes in various dialogs would let you select Top Table or Top Graph when there were no tables or graphs, resulting in a command execution error when you clicked Do It.
  • The Quick Fit items in the graph contextual menus (right- or control-click on a trace, or in the graph margins) failed to handle the new Poly_XOffset fitting function.
  • Leading spaces are now ignored when pasting numeric text into a numeric wave's cell in a table.