Changes Since Igor Pro 4.0 Japanese
This file describes significant changes
made to Igor Pro 4 J and supporting files since the first
version of Igor Pro 4 J, which was version 4.01AJ. Here, in
reverse chronological order, are the updates:
November 19, 2003: Update 4.09AJ
October 24, 2003: Update 4.09J
June 23, 2003: Update 4.08J
December 24, 2002: Update 4.07J
July 25, 2002: Update 4.06AJ
February 28, 2002: Update 4.05AJ
September 18, 2001: Update 4.04J
July 8, 2001: Update
4.03J
April 13, 2001: Update
4.02AJ
March 27, 2001: Update
4.02J
February 15, 2001: Released 4.01AJ CD.
How to Update Igor Pro 4 J
These downloadable updaters convert any version of Igor
Pro 4 Japanese into the current version. If you have a
problem updating, please re-install from CD-ROM and run the
updater again.
Download
Windows Updater
For Macintosh only, if you have Igor Pro 4.01J to Igor Pro 4.05AJ, you must first update to 4.06AJ. Then you can update to the latest version.
Download Macintosh 4.06AJ Updater
Download Macintosh 4.09AJ Updater
Update 4.09AJ
Igor Application
WINDOWS: Restored compatibility with Windows 95 and
NT.
Fixed numerical error in ImageLineProfile standard
deviation calculation.
Fixed bug in Sort where negative values very close
together would sort backwards.
Fixed areaXY bug introduced in Igor 4.09, where reversing
the x range no longer negated the area (which it should, and
now does again). FaverageXY correctly doesn't do this.
Fixed bug in Curve Fit dialog: In a user-defined fit
function, entirely blank lines containing space or tab
characters (and nothing else) could cause errors in parsing
the function, in turn causing incorrect information about
number/names of fit coefficients.
Procedures
Minor correction to GizmoRotation.ipf.
Update 4.09J
Igor Application
Fixed crash in Modify Traces dialog when zwave is NULL.
Also added test for NULL zwave in compiled ModifyGraph for
zColor, zmrkNum and zmrkSize.
Fixed possible crash in the Date Format dialog that could
occur if you chose a date format with four elements.
areaXY and faverageXY no longer return negative values
when the x range is reversed.
SavePICT can specify the window to be saved with the new
/N flag.
Drawing objects in layouts no longer draw outside the
layout window during Export Graphics.
The mask wave now works properly with Poly2D curve fit
function.
Fixed bug in IntegrateODE/M=1 (Bulirsch-Stoer method).
Previously, the answers were correct, but the bug fix gives
an increase in speed of one or two orders of magnitude on
suitable systems.
Fixed bug: FindRoots failed to mark certain waves as
modified so tables and graphs failed to update properly.
MACINTOSH OS X: Made some changes to dialogs to fix
disappearing dialog items under OS X 10.3 (Panther).
MACINTOSH OS X: reduced CPU hog behavior of the Curve Fit
progress window after a fit was finished.
WINDOWS: Fixed a rare crash that occurred if you called
ExecuteScriptText and the OS returned unknown error
codes.
WINDOWS: Fixed a problem where graphs were created really
small and mostly out of sight if Igor was minimized.
WINDOWS: Fixed a problem where tables were created too
small on two-monitor computers.
WINDOWS: Fixed bad abbreviated Japanese date (month
symbol was missing).
WINDOWS: Fixed the Common Format popup menu in the Date
Format dialog. The third and fourth items from the bottom
did not work correctly.
XOPs
MACINTOSH Carbon: XLLoadWave 3.62, which shipped with
Igor Pro 4.08 Carbon, was missing support for the /J flag.
This has been fixed by XLLoadWave 3.63.
WINDOWS: Fixed HDFLoader XOP so that it accepts
Macintosh-style paths as well as Windows-style paths.
Procedures
Added Transpose Waves In Table procedure. If you have 3
waves with 10 rows in the top table, choosing "Transpose
Waves In Top Table" from the "Table" menu creates 10 waves
with 3 rows in the current data folder.
Added /Z flag to Wave statement in SaveTable.ipf.
Added the PixelFromLinearAxisVal() function to Axis
Utilities.ipf.
Igor Application
Igor no longer crashes if a fit function uses the Override keyword.
The LayoutInfo function previously returned a string containing a "NUMOJBECTS" keywords. This misspelling has been corrected so the returned string now contains "NUMOBJECTS".
ImageRotate/O scramble of rows and cols has been fixed.
Igor no longer crashes when trying to modify an image or contour plot named 'something#other'.
PopupMenu mode limit raised from 1000 to 0x7FFFFFFF.
ListBox max number of columns raised from 20 to 100.
ControlInfo returns the horizontal and vertical scrolling distances for a ListBox.
A panel whose size is locked with ModifyPanel fixedSize=1 is temporarily unlocked in any drawing tools mode, or in the temporary selector mode (command+option keys on Mac or Ctrl+Alt keys on Windows).
Fixed a crash that occurred if you used LoadWave/F/B and the number of columns specified by /F was less than the number of columns specified by /B.
Fixed a crash that occurred if the history grew beyond about 30 MB without saving.
When exporting RTF files, Igor now includes the \fcharset RTF control. This optional control appears to be necessary for some RTF readers to recognize Japanese text.
Fixed a problem in importing some RTF files that used decimal, center or right-justified tabs.
Fixed a bug which caused the front layout to be used instead of the specified layout in a Notebook picture={$layoutName} operation.
Changed the Write Row Positions and Write Column Positions feature of the Save operation to write up to 15 decimal digits instead of 6.
Fixed memory leak when copying text wave cells in a table.
Fixed the ModifyGraph dateFormat command. It was ignoring the language parameter.
Window hooks (see SetWindow) can now intercept command-clicks (Macintosh) or right-clicks (Windows) and prevent Igor from displaying the usual contextual menus. The window hook can provide it's own contextual menu by using the new PopupContextualMenu operation.
WINDOWS: Fixed bug in random number generator initialization that caused the same sequence to be generated every time Igor started up. See SetRandomSeed. This was fixed previously, but the fix made it into Macintosh code only.
WINDOWS: Fixed a problem that caused procedure windows and notebooks to print blank pages on some non-PostScript printers under Windows 98.
WINDOWS: Improved mouse wheel behavior in text windows. Implemented mouse wheel support for tables and page layouts.
MACINTOSH Carbon: Fixed potential crash involving rotated text.
MACINTOSH Carbon: If you tried to resize a panel with the tools showing to be narrower when it's size had been locked with ModifyPanel fixedSize=1, the panel would become wider by the width of the tool palette.
MACINTOSH Carbon: ModifyPanel fixedSize=1 keeps the panel the same size instead of growing by 1 pixel when the user attempts to make it bigger.
MACINTOSH Carbon: If you double-clicked a column name in a table, sometimes the digits popup menu was disabled. This is fixed.
MACINTOSH Carbon: Fixed problem whereby the list of numeric formats in the Modify Columns dialog did not update correctly when you moved from one column to another.
MACINTOSH Carbon: Copy/paste of a single blank cell in a table did not work. This is now fixed.
MACINTOSH Carbon: Fixed a problem that caused page setups to not be loaded from an experiment sent as an attachment using Microsoft Outlook Express on OS X.
MACINTOSH Carbon: Fixed the batch file mechanism. It did not find the "Igor Batch Init File" or the "Igor Batch File" in the Igor Pro Folder.
MACINTOSH Carbon: Fixed event-handling to avoid hogging CPU in certain cases, notably when the Curve Fit progress window is displayed.
MACINTOSH OS X: Put in a workaround for a problem apparently caused by Norton Antivirus that causes Igor to leave temporary files (Filename.pxpT0, Filename.pxpT1, . . .) after a save.
MACINTOSH OS X: Put in a workaround to prevent user from activating the wrong window when a modal dialog is displayed. This occurred if the user put Igor in the background and then activated Igor by clicking on a target window while a modal dialog was displayed.
XOPs
Added code to allow the XLLoadWave XOP to recognize built-in date format codes added in Excel 2000.
MACINTOSH Carbon: The GWLoadWave XOP has been ported to Carbon and is not part of the Carbon distribution.
XLLoadWave now sets the S_worksheetName variable even if the /S=worksheetName flag is omitted from the command.
Fixed crash in Interpolate operation if using Dest X Coords From Dest Wave and destination wave has fewer than 2 points.
Windows: The VDT XOP can now support more than for COM ports.
Procedures
The Transform Axis package has a bug fix: the Tick Editor was using incorrect values for the axis ends, causing a tick to be misplaced in certain cases
The Transform Axis package now puts up an alert when a graph window is closed asking if you want to keep the tranform axis information. If you click Yes, you can use the recreation macro that you may have saved in a previous alert to recreate the graph with the transform axes.
Added FolderFromPath(filePath) function to File Name Utilities procedure file.
Added WMImageLogColorTable.ipf, which implements log color table for images by creating a logarithmic lookup wave for the image.
In WMImageInfo.ipf, fixed bug in WM_ImageColorLookupWave(), added WM_ColorScaleForImage() and WM_MakeImageLogLookupWave().
Axis Utilities.ipf has new AxisLabelText() function.
Examples
Added SearchProceduresInFolder.pxp, an experiment that searches procedure files for Igor commands that don't take advantage of features that explictly set the window name; namely control statements like Button and Checkbox and window-related statements like ModifyGraph and DrawText. Also includes a general stringmatch-like searching method. An Igor programmer can add other search methods.
Igor Application
MACINTOSH Classic: Improved detection of symbol-style fonts when exporting eps files.
MACINTOSH Carbon and Windows: Added ability for the user to specify that a font is to be treated as a symbol-style font when exporting EPS files. A new text wave named PSSymbolNames is used to hold the PostScript font names of such fonts. If you are adding a symbol-style font (MathematicalPi-One for example), to the font translation and naming tables (TTtoPS and TTPSFNames), also add the name to PSSymbolNames. See the "PostScript Font Names" section in the "Exporting Graphics (Windows)" chapter for information about TTtoPS and TTPSFNames.
MACINTOSH Carbon: Added code to automatically detect PostScript font names when exporting eps files so the user does not have to edit the above mentioned font translation and naming tables. However: this only works if the screen font is a TrueType font and will not work for legacy bitmap fonts. If, when exporting an EPS file, you see a message in the history that the PostScript font name could not be found, then you will need to set up the TTtoPS and TTPSFNames waves.
Added new flag, /G=g, to AppendImage and NewImage. g=1 supresses the autodetection of 3 plane images as direct (rgb) color. When used with NewImage, it also supresses detection of explicit mode. g= 0 is the default and the same as no /G flag.
Increased by a factor of 10 the size of the stack that limits function recursion. Also provided a mechanism for the user to change the stack size. Use
SetIgorOption memory,rStackSize=s
where s is the number of bytes for the new stack. The minimum size is 16000 (which was the previous fixed size). You can read the current size using
SetIgorOption memory,rStackSize=?
and then reading the V_Flag variable. Because the stack can only be changed while nothing is executing, you must either set the size manually on the command line before executing code that needs the new size or you must start your code using Execute/P after setting the size. This mechanism is currently considered experimental and is not documented except in these notes.
Changed the behavor of the histogram bar display mode when a zero height bar is encountered. They now allign with the base of the preceeding bar and are not quite so thin (this change is visible only on a high resolution output device.) If you prefer the old behavor, let us know.
Fixed rare crash involving string SetVariable controls, dependency objects and the use of the Abort command.
Added documentation for fStyle and fColor keywords as used in the GroupBox control. These keywords have long been available but the the following documentation was missing:
- fColor=(r,g,b) sets color of the title text. r, g and b can range from 0 to 65535.
-
- fstyle=fs Sets the font style of the title text. fs is a binary coded number with each bit controlling one aspect of the font style for the tick mark labels as follows:
-
- bit 0: bold.
- bit 1: italic.
- bit 2: underline.
- bit 3: outline (Macintosh only).
- bit 4: shadow (Macintosh only).
- bit 5: condensed (Macintosh only).
- bit 6: extended (Macintosh only).
Fixed bug in RemoveFromGraph that (rarely) caused a bogus "can't remove same wave twice" error.
Fixed a bug that could cause a crash if more than one trace is removed from a graph and more than one of the removed traces use the same X wave.
Pressing the "stop" button in the debugger while debugging a background task now stops the background task.
Stepping the debugger to the end of a string function when called as the value of a PopupMenu control no longer crashes Igor.
Changed the warning that is issued if Igor can not initialize the printer to be displayed in the splash screen on Macintosh (non-Carbon only) or in the status bar on Windows instead of using a dialog.
Fixed a bug that could cause DoIgorMenu "Load Waves", "Load Waves" to crash when a second dialog was displayed.
WINDOWS: Fixed problem when exporting large emfs where fill patterns would be missing if they were outside the bounds defined by the default printer.
MACINTOSH: Fixed a problem in image plots when axes are reversed from the default and the image size on the screen exactly matches the data size.
MACINTOSH: On OS X, fixed a crash that occurred in the Open or Save File dialog. If you hover the mouse over a file or folder name that did not fit in its column, the OS displays a help tag showing the full name. This caused Igor to crash.
MACINTOSH: Fixed a problem that caused layouts to display strange colors under Mac OS X 10.2 in millions of colors mode.
MACINTOSH: On OS X, if you did a Save Experiment As to an unpacked experiment, overwriting an older experiment folder of the same name, Igor saved the wave and miscellaneous files to the wrong place.
Fixed off-by-one bug in FuncFit that caused incorrect X scaling for the Y wave in an all-at-once fit function.
ImageRotate no longer adds 0.5 to round the result when the source wave is single or double-precision floating point. Also, when performing rotations that are multiples of 90 degrees the data is now copied precisely rather than going through interpolation code. A new flag, /S, when used with 90 degree multiple rotations only, causes the coordinate system (i.e., x and y wave scaling) to be rotated with the data.
Previously, pictures in notebooks and help files were drawn transparent. Now they are drawn opaque. This change makes a difference only if the notebook background is other than white. It was done because the transparent drawing was slow and was often not appropriate.
Fixed bug where error bars were the wrong size when used on shrunken axes and when ModifyGraph axisClip=1 was in effect.
Allowed more room in the Error Bars dialog for the wave popup menus.
Fixed a crash triggered by clicking the Go Back button in a help file that you arrived at by clicking a link in the Help Browser.
Fixed endless updating problem with DrawPoly when used with waves when the polygon was in a graph that was displayed in a page layout. This problem was discovered when using the Polar Graph "fill to origin" option.
MACINTOSH: On OS X, added a workaround for what appears to be a Mac OS X 10.2.x bug. The bug causes Igor to crash when you save certain experiments on certain machines. There is no obvious pattern as to which machines are affected but most are not. Igor crashes when it calls the OS X PMSessionMakeOldPrintRecord routine to make a pre-Carbon-compatible page setup record. Igor stores both Carbon and pre-Carbon page setup records in experiments so that they can be opened when running on a pre-Carbon system.
Also, the pre-Carbon page setup record is used when you open a Macintosh experiment on Windows to determine the orientation of the page. If you have a crash when saving and if the "Igor Pro Carbon.crash.log" file contains the word "PMSessionMakeOldPrintRecord", you are probably a victim of this bug. The workaround is to execute the following:
SetIgorOption printing, SavePreCarbonPageSetups=0
You must do this each time you start Igor Pro Carbon. It tells Igor to NOT save the pre-Carbon page setup record, thus avoiding the crash. However, if you take the experiment to a pre-Carbon Macintosh or to Windows, you will get default page setups, so that your paper size and page orientation will be lost.
XOPs
MACINTOSH (Carbon only): The XLLoadWave XOP now works on Mac OS X.
The XLLoadWave operation now has a /J flag which allows a programmer to determine what worksheets exist in a workbook and what cells are defined in each worksheet.
MACINTOSH (Carbon only): The VDT XOP, used for serial port control, has been removed from the Carbon distribution. It never worked under Carbon and was included by mistake. If you need to use VDT, you will have to use the pre-Carbon Igor.
MACINTOSH (Carbon only): Removed some code that made the Surface Plotter print warning statements to the history under some obscure conditions.
MACINTOSH (Carbon only): Fixed a crash in the Data Browser that occurred when a user tried to rename a data folder with a name that was already in use. The crash took place on dismissing the error dialog.
New GISLoadWave XOP- loads USGS Digital Elevation Model and Digital Line Graph files. Digital Elevation Model files contain matrix data of topography; Digital Line Graph files contain information on things like rivers and lakes, roads, geopolitical boundaries, and more. For more info, see new example experiment, HalfDomeDemo.pxp, in Examples:Feature Demos. A procedure file, GISLoadWaveProcs.ipf, helps handle DLG files.
Procedures
The Global Fit package has been enhanced to create a separate coefficient wave for each input Y data set. The waves are named "Coef_yname" where "yname" is replaced with the name of each Y data set wave.
Modified Axis Utilities to compile with experiments still in Igor 3.1-mode (Silent 100).
Power Spectral Density.ipf's NormalizedPSD macro was replaced with PowerSpectralDensity, which corrects the PSD scaling. The DC-removal feature of NormalizedPSD is part of PowerSpectralDensity and the new fPowerSpectralDensity function. An exhaustive explanation of how the PSD is computed is in the new PSD Demo experiment.
Added Image Saver.ipf and SaveFloatingPointTIFF.ipf to the Image Processing procedures.Image Saver.ipf adds a "Save Image..." menu item to the Data:Save Waves submenu. The menu item invokes a panel-based Save Image "dialog". SaveFloatingPointTIFF.ipf adds the WMSaveFloatingOr16BitTIFF procedure to save single-precision floating point TIFFs. The obsolete TIFF Saver and TIFF Loader procedures have been removed.
New GISLoadWaveProcs.ipf contains procedures that aid in handling Digital Elevation Model files loaded by the new GISLoadWave XOP. For more info, see new example experiment, HalfDomeDemo.pxp, in Examples:Feature Demos.
Examples
The Trace Graph demo experiment (in the Examples:Techniques folder) was modified to work on Windows by the conversion of its sample graphic to PNG.
The new PSD Demo experiment (in the Examples:Analysis folder) contains an exhaustive explanation of how the Power Spectral Density (PSD) is computed, and sample data with which to test the algorithm.
The new HalfDomeDemo (in the Examples:Feature Demos folder) demonstrates the GISLoadWave XOP by loading elevation and hydrography data for a portion of Yosemite National Park and making a map in a graph window.
Igor Application
Macintosh users installing the "Carbon" version of Igor, you will need your serial number and activation key.
Fixed bug in random number generator initialization that caused the same sequence to be generated every time Igor started up. See SetRandomSeed.
All-at-once fitting functions now work properly with a data mask wave and with a weighting wave containing zero values.
FindRoots/P (which finds roots of a polynomial) no longer creates the unneeded W_Roots wave.
MACINTOSH (Carbon only): Fixed problems with text submenus in the Drawing Environment Pop-Up Menu and Graph Pop-up Menus not displaying promptly.
MACINTOSH (Carbon only): Choosing Select All in a table caused a crash. This bug was introduced in version 4.06 and fixed in 4.06A.
Procedures
Modified the WMMenus procedure file to check our web site for updates to only the currently running version of Igor. Also added the "Delete XY Points" package to the Data menu.
Modified the New Polar Graphs procedure files to add a programmatic interface, fix a bug with Left radius axes orientation, added an angle multiplier for angle axes labels (to print a value proportional to the angle instead of printing the angle).
Modified Axis Utilities to no longer require obsolete "Strings as Lists" include file, added AxisForTrace() and AxisUnitsInGraph().
XOPs
MACINTOSH: An XOP named NIGPIB_OSX.xop is now shipping in the Carbon Extensions and Support:More Extensions:Data Acquisition folder. This is for use on Mac OS X only. As of this writing, National Instruments supports only the GPIB-ENET/100 hardware on Mac OS X.
Update 4.05AJ
Igor Application
Fixed a bug in Curve Fit dialog that prevented XFUNC all-at-once fitting functions from appearing in the Function menu.
Fixed a bug in the Curve Fit dialog that could cause a crash if you try to edit a fit function using the Edit Fit Function dialog at a time when procedures cannot be compiled. You still can't edit them, but at least it doesn't crash!
(Windows only) Fixed a bug that could cause Igor to close Igor Procedures files by mistake if you opened an experiment that used an XOP that added a window to Igor (e.g., VDT).
Added a new operation, MarkPerfTestTime.
This is an aid for programmers who wish find out where their
programs are spending the most time. This operation is used
in conjunction with SetIgorOption debugTimer. Instructions
for use can be found in a new example experiment,
PerformanceTesting.pxp.
Added code to suppress the wait cursor
when a graph is updating until the update has taken a half
second or more. This is to prevent cursor filcker when
graphs are updating due to live data. User can change the
delay using SetIgorOption supressWaitCursor=val where val is
the delay in ticks (60 ticks to the second). This lasts only
for the life of the Igor session.
Sleep/C=-1 will not change the cursor in
any way; all other incantations will.
Changed Sort's sorting method to treat
all NaN patterns the same. Previously, negative NaNs would
sort to the opposite end as positive NaNs.
Changed Igor's parser to treat names
starting with a single quote but not ending that way as just
the single quote char itself. This causes such situations to
be properly treated as an error.
Fixed problem using user tick labels on
waterfall plot. See NewWaterfall.
New feature: ModifyGraph can now change
arrow markers to display as standard meterological wind
barbs by adding a column to the arrow marker wave and giving
it a column label of windBarb. Values are integers from 0 to
40 representing wind speeds up to 4 flags. Use positive
integers for clockwise barbs and negative for the reverse.
Use NaN to suppress the drawing. Example:
- make/O/N=50 jack= floor(x/10),jackx= mod(x,10)
- display jack vs jackx
- make/O/N=(50,3) jackbarb
- jackbarb[][0]= 40 // length of
stem
- jackbarb[][1]= 45*pi/180 // angle
(45deg)
- jackbarb[][2]= p // wind speed
code
- SetDimLabel 1,2,windBarb,jackbarb
- ModifyGraph
mode=3,arrowMarker(jack)={jackbarb,1,10,0.5,0}
- ModifyGraph margin(top)=62,margin(right)=84
Fixed potential crashing bug when
KillVariables/A is called twice.
Fixed recreation macro involving mirror
axes and image plots and another involving colors in
SetVariable controls.
Fixed problem in SetVariable where
height did not autoscale if bodyWidth was in use.
Fixed another SetVariable problem that
crashed Igor (usually on Windows) if the SetVariable had no
value assigned, KillStrings is called for a string in the
current data folder, and the SetVariable control is
updated.
Fixed recreation macro involving mirror
axes and image plots and another involving colors in
SetVariable controls.
Fixed bugs in ListBox introduced when
zero rows changed to not be an error.
Double-clicking axes, annotations, table
columns, layout objects now honors the corresponding
SetIgorMenuMode setting. For example, if Modify
Annotations... is disabled with SetIgorMenuMode,
double-clicking an annotation won't open the dialog
either.
FindPeak's /Q flag now allows FindPeak
to proceed without generating an error for a bad or
too-small input range. V_Flag now returns an Igor error code
if something went wrong rather than just setting V_Flag to
1.
FindLevel with /R set to search
backwards while smoothing with /B was smoothing the wrong
values using the new (Igor 4.02+) code. This also affected
FindLevels, EdgeStats, and PulseStats.
Made XWaveName work with category
plots.
Fixed rare and hard-to-explain problem
involving stale WAVE reference variables.
Removed an old limit on the size of the
history file in unpacked experiments. It was limited to
1,000,000 characters.
Fixed a problem whereby, if you opened
an experiment other than through the File->Open
Experiment menu item (e.g., by double-clicking or via
Execute/P LOADFILE), and if you said you did not want to
save the current experiment, and if you had modified an
auxiliary procedure file, Igor would fail to ask if you
wanted to save the auxiliary file.
Execute/P now accepts the /Q (quiet) and
/Z (no error dialog) flags.
Fixed a bug in LoadWave/B. Specifying an
explicit field width over multiple columns (e.g.,
/B="C=3,W=5;") did not work.
WaveStats wasn't setting V_maxloc and
V_minloc properly for unsigned integer types when the first
wave value was the min or max.
Fixed some problems with the debugger:
clicking the debugger stop button during a curve fit without
the progress dialog no longer crashes, the debugger stack
list no longer omits the function that called the function
that has the FuncFit call in it, attempting to edit a string
longer than 253 characters no longer crashes on Windows, and
breakpoints stranded beyond the last line can now be clicked
off.
A graph with a tag containing one of the
other dynamic escape codes such as \{pcsr(A,''Graph0'')}
would fail in window recreation macros because the cursors
weren't added to the graph until a later statement. Cursor
statements have been moved to before the annotation
statement(s).
Attempting a Tag command while a layout
is the top window no longer crashes Igor.
A window hook function (see SetWindow)
that doesn't explicitly return a value is presumed to return
0 instead of NaN. The hook function also receives a new
modified event.
Also fixed a crash that happened if you
kill the window and then create another window like it
during the kill event for the window you killed.
Fixed a crash in FuncFit that occurred
if the procedure window containing your fit function is
altered between the time FuncFit starts and when it
finishes. This can happen if you use Ctrl-Enter to execute a
FuncFit command in a procedure window.
Fixed crash in Modify Axis dialog
brought on by the following sequence: select Live Update
mode; Select Multiple Axes and select all or some subset;
de-select Live Update Mode; crash.
Fixed some minor cosmetic bugs in the
Modify Axis dialog.
Fixed a bug that could cause a crash if
you cut or copied and pasted an annotation in a page
layout.
Fixed a crash when using wfprintf from a
function and you supply a reference to a non-existent
wave.
Igor no longer stops responding when a
menu-invoked macro uses ExecuteScriptText to send an
AppleEvent or DDE event back to Igor.
SetIgorMenuMode can now enable or
disable items in the Graph menu even if the Graph menu is
not displayed in the menu bar at the time.
ImageAnalyzeParticles now creates
boundary waves for one-pixel-wide particles that are
parallel to the y-axis.
ImageLineProfile now supports wave
scaling.
ImageGenerateROIMask supports wave
scaling with a new keyword scalingWave.
IgorInfo(3) returns a collection of more
detailed information about the operating system,
localization information, and the actual file version of the
Igor executable. The keywords are "OS", "OSVERSION",
"LOCALE", and "IGORFILEVERSION":
|
Keyword
|
Information following keyword
|
|
OS
|
Description of operating
system.
On Macintosh the OS value is
"Macintosh Classic", "Macintosh Carbon", or
"Macintosh OS X".
On Windows, it is something like "Windows 95
OSR2", "Windows 98 SE", "Windows Me", "Windows NT
Personal (Build 1234)", "Windows 2000 (Build
1234)", "Windows XP (Build 1234)". Of course, the
actual build number and format of the text will
vary with the operating system.
|
|
OSVERSION
|
Operating system number.
On Macintosh, this is something
like "9.1.0" or "10.1.2".
On Windows, this is something
like "4.10.1998".
|
|
LOCALE
|
Country for which this version of Igor is
localized. "US" for most versions of Igor, "Japan"
for the Japanese versions of Igor.
|
|
IGORFILEVERSION
|
The actual version number of the Igor
application file expressed as a floating point
number. Igor 4.05, for example, returns "4.05".
Igor 4.05A will return "4.051" on Windows but
"4.06" on Macintosh (because the actual Macintosh
file version will be 4.06b1 and the beta part is
trimmed off).
|
New (preliminary) feature:
GetRTStackInfo(0) returns a semicolon-separated list of the
names of the macros and functions currently in execution,
with the name of currently running macro or function last in
the list. Absolutely useless on the command line.
MACINTOSH: FindPeak, Smooth, UnWrap (and
some other analysis routines I don't remember) were made
faster by not always moving the entire wave to the best part
of the memory partition. The speed improvement can be
startling for large waves.
WINDOWS: Fixed hang with minimized
windows.
WINDOWS: Using MoveWindow to position a
panel at the top of Igor's frame resulted in the panel being
positioned many pixels lower than requested. The error was
larger when window title bars were made larger in the
Display Properties control panel's Appearance tab. Fixed a
similar bug in AutoPositionWindow.
WINDOWS: added ability to specify a
literal file name extension in the /T flag of the Open
operation. That is, Open/T=".dat" myref will cause the
resulting Open File dialog to show all files with file name
extension ".dat". NOTE that the extension MUST have three
characters.
WINDOWS: Put in a workaround for problem
of ugly text with Windows 2000/XP ClearType feature.
WINDOWS: The limit of 31 items in
user-defined menus is handled a tiny bit better: rather than
setting the menu item to a non-functional "More..." it is
set to "_too many items_" and is disabled.
WINDOWS: Fixed a bug that caused text
areas in dialogs to be invisible if the Igor frame window
was not maximized.
Fixed a bug in ImageLoad which could
cause errors when reading a packedbits compressed TIFF
file.
WINDOWS: Fixed memory leak if a
minimized window was the active window.
XOPs
Added a beta version of Gizmo, an OpenGL
visualization tool. This is available under Windows and the
Carbon version of Macintosh Igor but is not available for
classic Macintosh Igor. Example experiments were also
added.
The JCAMPLoadWave XOP has been revised
to properly handle files with multiple data sets.
Fixed a bug in the IGOR Graphical Slicer
that affected the reading of values using the eyedrop
tool.
Fixed a minor problem in the Data
Browser XOP's Browse Experiment feature. If you clicked a
wave which had a dependency formula while the info or plot
panes was displayed, a harmless error message was displayed
in the history area.
Fixed a bug in the Data Browser's Browse
Expt feature which caused it to fail if you tried to browse
a folder that contained an alias/shortcut to a data
file.
Fixed a bug in the IGOR Surface Plotter
cloud mode that under some rotations flipped x and y
axes.
MACINTOSH: the SndLoadWave XOP now
displays files with types WAVE, MPEG, and MPG3 in the open
file dialog.
WINDOWS: Fixed a bug in the Data Browser
that would crash on Windows on using the Find dialog. Also
fixed a bug on Windows where a line in a wave note (after a
CR) was displayed in bold face.
WINDOWS: the LoadWAVFile XOP no longer
crashes when using /R to load a subset of a stereo sound
file.
MACINTOSH: Fixed a Macintosh-only bug in
MLLoadWave that caused an error if you tried to skip
variables or strings when loading a Matlab 4 file without
having the Mathworks libraries installed.
Procedures
Remove Tags, when removing only offscreen tags, now also removes tags whose y attachment value is above or below the vertical (usually left) axis range.
Revised GraphMagnifier.ipf to avoid controls already present in a graph's control bar.
Revised AxisSlider.ipf to more intelligently restore the control bar in a graph when the axis slider is removed.
Added ControlBarManagerProcs.ipf to WaveMetrics Procedures:Utilities. Provides some functions to help a procedure that adds controls to a graph be a good controlbar citizen.
A new WaveMetrics procedure file,
AxisSlider.ipf, makes it easy to scroll through long
records. This procedure can be easily accessed via the
Packages item in the Graph menu.
A new WaveMetrics procedure file,
PerformanceTestReport.ipf, provides support for the new
performance testing operation, MarkPerfTestTime. For
details, see comments in the procedure file and the new
example experiment, PerformanceTesting.pxp.
Sonogram.ipf implements the Gabor
spectrogram (aka the "Gaussian Weighted Wigner
Transform").
TransformAxis.ipf has been revised again
to improve the handling of transforms with high curvature at
the ends (specifically aimed at the probability transform).
Also significant changes were made to the control panels to
improve the ease of use.
A new WaveMetrics procedure file,
SaveTable.ipf, allows you to save a table, including its
data and formatting, to an Igor Text file. You can then load
the table and its data into another experiment. For details,
see comments in the procedure file.
Modified ImageLineProfile.ipf to account
for a factor of 2 in the width of the calculated profile
when using the Line Profile panel.
Examples
A folder of example experiments for the
new Gizmo XOP was added in the Visualization folder.
New example experiment,
PerformanceTesting.pxp, provides documentation for
MarkPerfTestTime and the PerformanceTestReport.ipf procedure
file.
The Sonogram Demo implements the Gabor
spectrogram.
Update 4.04J
Igor Application
The SetVariable operation can now attach
to a point in a wave as an alternative to a variable. The
syntax is the same but with a wave name in place of a
variable name and with the point number specified using
standard bracket notation with either a numeric point number
or a row label, e.g., value=awave[4] or
value=awave[%alabel]
Fixed crash when an image with number of
rows between 8192 and 32768 was displayed in a graph.
Secs2Date has new -1 format code which
results in a string that is independent of the operating
system and the Date & Time control panel.
Added new activate keyword to the
SetVariable operation.
Adjusted position of ListBox's title
divider line by 1 pixel and, for Windows only, fixed
incorrect coloring of same.
The GroupBox's interior is correctly
updated when drawn outside of the graph's control bar
area.
The ControlInfo operation accepts a new
kwSelectedControl keyword that sets S_Value to the name of
the selected (active) control.
Added new SetMarquee operation.
GetMarquee's V_marquee global has a new
bit flag that causes S_marqueeWin to be updated when the
marquee is created or killed.
Fixed a bug in the Macintosh version of
the JPEGQ method of ImageTransform. If the version of
QuickTime on your machine did not support this feature, it
could cause a crash.
(Windows-only) Fixed a problem that
caused Igor to take a very long time to open help and
procedure files that were already open for writing. This was
evident only if you launched more than one copy of Igor or
if you shared help or procedure files over a network. The
problem was introduced in 4.03 which included a workaround
for another problem. The other problem was that some users
got the error message "File Already Open" when saving an
experiment to a network volume. We suspect that this is
caused by Norton anti-virus software. The workaround added
in 4.03 is still in 4.04, but it is smarter so as not to
interfere with normal operations.
(Windows-only) Added a workaround for
the problem of Symbol font not rotating.
(Windows-only) A marqueed graphic copied
from a layout is now drawn only within its bounds when it is
pasted into a drawing layer.
Fixed bug in Curve Fit dialog: Duplicate
commands failed to properly quote liberal source wave names.
See Liberal Object Names.
Fixed mouseup, mousedown, mousemoved
events in hook function for PageLayouts, and replaced the
copy event with a more general menu event (see
SetWindow).
Fixed a bug that caused Igor to report
an error when opening an experiment containing a hidden
notebook to which a hook function had been attached using
the SetWindow operation. In some cases, Igor would attach
the function to a window other than the hidden notebook. The
bug fix is in the code that saves the experiment, so
existing experiments with this rare problem will have to be
fixed manually by opening the experiment, reassigning the
hook to the notebook(s), and saving the experiment.
Fixed a bug (or missing feature):
SetIgorMenuMode and DoIgorMenu would not compile string
expressions or string constants for the various
parameters.
Fixed a bug in ImageLoad where the
operation printed information about unsupported TIFF tags in
the history despite the /Q flag.
Added to ImageLoad support for
uncompressed 48-bit TIFF images.
Fixed AppendLayoutObject. It was
incorrectly accepting a null object ($"") which could lead
to a crash.
Added keyword scalingWave to
ImageBoundaryToMask in order to support wave scaling.
Fixed a potential crash in LoadWave/F if
the number of columns specified in the /B flag exceeded the
number of columns specified in the /F flag.
Added additional bits to V_FitError to
report out of memory and fit function returned NaN or INF
error conditions from a curve fit.
Fixed bug in Curve Fit dialog that could
prevent using the Graph Now button with a built-in fit
function.
ImageRemoveBackground/O now retains
original wave scaling.
Fixed a bug that affected the ImageLoad
operation on the PC.
XOPs
(Macintosh only) the SndLoadWave XOP has
can load WAVE, MP3, and movie audio tracks.
Examples
Added the new MD Root Finder Demo
experiment, promised in the Using Igor manual in the
Analysis chapter, Finding Function Roots section, subsection
Roots of a System of Multidimensional Nonlinear Functions
(in the Examples:Analysis folder).
Added new Sonogram Demo example
experiment (in the Movies & Audio folder). It displays a
sonogram of already-acquired (non-realtime) data.
Changed Web Page Demo to use a new user
account when doing FTP upload.
Procedures
ProcedureBrowser.ipf now has a Copy
Template button. Including <ProcedureBrowser> will
create a Procedure Browser menu item in the Misc menu.
New procedure file:
DrawEllipseOnGraph.ipf. Allows you to draw and edit ellipses
with axes that are other than horizontal or vertical.
New procedure file: Sonogram.ipf. It
provides a panel to select a time-series wave to compute the
sonogram of. See the new Sonogram Demo experiment for
documenation.
Revised WMMenus.ipf to add the Sonogram
package to the Windows:New:Packages menu.
Fixed a bug in Image Line Profile
procedure that created multiple nested data folders when
dragging the profile line across the image.
Revised Transform Axis package to fix
bugs and improve the ticking algorithm.
Revised Decimation.ipf to correctly
X-scale the decimated result wave.
Technical Notes
Added a guest technical note PTN006
"Using IGOR's Particle Analysis Feature for turning scanned
data into IGOR Waves" by Clemens Kühn.
Update
4.03J
Igor Application
Fixed a one pixel offset bug in
ImageGenerateROIMask.
Fixed a bug in AppendXYZContour. Now any
triplets with X and Y infinite values are ignored.
Fixed a bug in BinarySearch where it
returned the wrong index when the data was in decreasing
order.
Added new features to the
stopMSTimer(timer) function. If timer is -2, return
microseconds since system startup. If timer is -1, returns
frequency of timebase clock (which determines the
resolution). Note: On Macintosh, the first call to
stopMSTimer after Igor is started will take an extra long
time (0.1sec) in order to calibrate the clock. This can also
be done by calling stopMSTimer with a value of -1. Also,
these changes to the microsecond timer allow it to work when
running in emulation under under MacOS X.
Increased maximum size of a wave from
134 million points to as much as 2147 million depending on
data type. Data size is limited to 2.147GBytes rather than a
strict limit on the number of points.
Increased limits for marker size and
thickness by a factor of 10.
Fixed bug where opaque markers would not
appear correctly in legends.
Added new /R flag to IFFT to force real
result when power-of-2 size would automatically give complex
result.
SavePICT has new /Z flag (proceed on
error) and V_Flag output variable (0 or error code).
SetWindow updated to describe new copy
event and hookevent bit flags.
Added the GetScrapText function and
PutScrapText operation.
New DoIgorMenu operation invokes Igor's
menu items. Use wisely.
(Windows only) Fixed problem with
colorscales in layouts when using EPSF export.
Fixed readout of free cursors when using
log axes.
Fixed crash on Windows reloading with
minimized waterfall plot.
Fixed rare crash involving
AppendToGraph/Q and image plot.
Fixed a problem with Histogram/B=1. When
the data being histogrammed wasn't floating point, the
automatic bin calculation failed to include values equal to
the maximum in the last bin.
Eliminated New Fit Function dialog
insistence on having a space before and after the equals
sign in the "f(x) =" in the fit expression.
Fixed a bug in Curve Fit dialog: if an
XFUNC was selected as the fitting function, the X wave
wasn't included in the generated command.
Fixed a bug in IntegrateODE that could
result in the message "UpdtDisplay: recursion attempted"
being printed in the history many times if IntegrateODE was
used in a curve fitting function.
Added tests to all matrix operations
that would reject input waves that contain either NaNs or
INFs.
Fixed a problem in the Japanese version
of Igor only which prevented the user from changing the
current drawing layer by using the drawing layer popup
menu.
Fixed a problem in the Windows Japanese
version that caused a search of Igor help files to fail.
Fixed a bug in the sscanf operation that
resulted in incorrect output if you used a maximum field
width with the e, f, or g conversion types (e.g.,
"%5f").
The documentation for sscanf said that
it does not tolerate an 'l' after the '%' character, but in
reality, it did tolerate "%le", "%lf", and "%lg". It no
longer tolerates the 'l'.
Fixed a rare bug in the Curve Fitting
dialog in which an empty assigment to the T_Constraint wave
could be generated under certain circumstances.
Fixed AxisInfo so that the font(x)
keyword in the RECREATION string quotes the name of the
font. This is required to pass a font name with spaces to
the Execute command as documented in the Igor Reference for
the AxisInfo function. NOTE: if your procedures parse this
string, they will now have to look for quotes!
Fixed crash in New Fit Function dialog
if the fit expression was longer than 400 characters.
It is now impossible to enter illegal
dimension labels in a table.
FindLevel, FindLevels, EdgeStats, and
PulseStats now ignore any (possibly smoothed) NaN value.
Procedures
CmplxToMagPhase.ipf's FFTCmplxToMagPhase
correctly scales FFT results, has a non-FFT version named
CmplxToMagPhase.
Fixed a problem in New Polar Graphs.ipf
that occurred after a user renamed a polar graph window and
then clicked "New Polar Graph".
Added the new Bivariate Histogram 2.ipf
procedure file. It calculates a bivariate histogram with
equally-space bins in X and Y, log-spaced bins, or bins with
arbitrary spacing specified by a wave.
XOPs
Bug fix for Wavelet XOP (PC version
only) where dialog would generate garbage for the number of
coefficients of Coifman wavelets.
Technical Notes
PTN001 has been updated to note that the
technique described is obsolete, since it can be done much
more easily using all-at-once fit functions.
Update
4.02AJ
Igor Application
Fixed a problem that caused large PNG
graphics in notebooks to be corrupted in certain
circumstances. The corruption occurred if you opened a
notebook on a platform (Macintosh or Windows) other than the
platform on which it was created and if the notebook
contained PNG graphics larger than 51200 bytes and you saved
the notebook on the new platform.
Differentiate and Integrate could crash
on either Mac or PC if fewer than two points were in the
wave. Igor is now protects itself against this by returning
an error for waves with no points and by handling waves with
one point correctly.
ControlInfo wasn't computing V_Top
correctly: it was returning the (negative) offset from the
bottom of the control bar rather than the positive offset
from the top of the control area.
(Windows-only) Fixed a bug that was
introduced in 4.02. It caused an error if you tried to
create symbolic paths that point to the root directory
(e.g., "C:").
Igor Help Files
Fixed the Windows version of the Image
Processing help file. It contained corrupted PNG
graphics.
Procedures
Append Calibrator.ipf displays a panel
that creates calibrators (scale bars), instead of the
outdated missing parameter dialog.
Update
4.02J
Igor Application
Point-scaled traces on log axes with an
x offset applied were, on rare occasions, offset by the
wrong amount.
Fixed bugs in several image processing
routines (ImageLineProfile, ImageAnalyzeParticles,
SphericalTriangulate, and ImageRotate) which could result in
wrong outputs or even a crash.
(Windows only) Fixed bug where the
cursor info box in a graph that also had a control panel
area would not function properly until the graph was
resized.
FindLevel, FindLevels, and PulseStats no
longer use cumulative sliding averages, which makes them
more accurate, but a bit slower. To use the algorithm used
in earlier versions of Igor, assign Variable/G
root:V_UseOldFindLevel=1.
(Windows only) Fixed bug where markers
would be displaced in EPS export of a page layout containing
a legend.
Fixed bug where printf "%08X\r",
0xffff0000 would give wrong results in a function.
Smooth/B inf waveName crashed Igor, now
num is limited to about 67 million and doesn't crash.
FindPeak has new /I flag useful for
finding impulse peaks.
ImageStats/R now returns correct values
for V_sdev, V_adev, and V_rms.
FunctionList("*",";","KIND:1") now
returns all built-in function names again, not just the
first 25.
(Windows only) Fixed bug: 10^NaN
returned 1.0; cmplx(1,0)^NaN returned (1,0).
After SetRandomSeed, gnoise() was
returning one of two cached values. Igor now clears the
cached value when SetRandomSeed is called so that you get
the same value every time after SetRandomSeed is called with
a particular value.
Fixed memory leak that ocurred when
doing curve fits with constraints.
Increased the number of digits printed
in graph recreation macros for the crossing position of a
free axis attached to another axis. This was done to
accommodate the case where an axis is attached to a
date/time axis.
Added an option for curve fitting: set
bit 3 (value of 8) in V_fitOptions to get a matrix wave
M_iterates. This matrix contains the values of the fit
coefficients at each iteration. The matrix has a row for
each iteration and a column for each fit coefficient. The
last column contains the value of chi square for each
iteration.
Added new /E flag to Redimension:
/E=e e=0 for no special action (default),
e=1 to force reshape without converting
or moving data,
e=2 to also perform endian swap.
(See FBinRead for a discussion of
endian byte ordering.)
Added new keywords for PlayMovie
Action:
gotoBeginning moves movie to beginning
gotoEnd moves movie to end
step=s moves movie by s frames (0 is same as 1, neg
goes backwards)
getTime reads current movie time into variable V_Value
(in seconds)
extract=e with optional e parameter, extracts e frames
in to a single mult-frame wave named M_MovieChunk.
This will have 3 planes for R, G & B and will
have e chunks.
Operations are performed in the
following order:
- kill, stop, gotoBeginning, gotoEnd, frame, step,
getTime, extract, start.
- kill overrides all others
Example, determine number of frames in a
simple movie:
PlayMovie
PlayMovieAction stop,gotoEnd,getTime
Variable tend= V_Value
PlayMovieAction step=-1,getTime
Print "frames= ",tend/(tend-V_value)
PlayMovieAction kill
Fixed bug in image display for
multi-plane RGB images.
The FTPDownload operation sets
S_FileName to the full path of the downloaded file. This is
especially useful when the /I (interactive) flag is
used.
(Windows-only) Fixed a problem that
caused Igor to fail to recognize when you changed a page
layout to landscape orientation when using the HP DeskJet
840 printer driver.
Fixed bug in New Fit Function dialog: if
an independent variable was named "w", incorrect function
code was generated and a hang resulted when the dialog tried
to parse the incorrect code.
(Windows-only) Fixed bug that caused
curve fitting on Windows to ignore NaN's in the weighting
wave. That behavior is not correct- NaN's in the weighting
wave probably result from a bad calculation, and you should
investigate the cause. A case in point is weighting
proportional to the square root of the data values- a NaN
will result if the data are negative. Square root weighting
is only appropriate if the values are always positive.
Multiple Submenu definitions can now add
items to a single submenu. Previously, each Submenu
definition created a new submenu, even if this resulted in
two submenus with the same name in the same parent menu. See
User-defined Menus.
Fixed bug in Page Layout menu. It
allowed you to move the front object to the front or the
back object to the back, both of which should not have been
allowed. If you tried this, it usually crashed.
(Windows-only) the most recently defined
ruler was being omitted from the Notebook Ruler popup
menu.
(Windows-only) the Object Status dialog
would crash after displaying an object whose name was longer
than 28 characters.
(Windows-only) ImageTransform cmap2rgb
now correctly maps grayscale values that exceed the color
index wave's X scaling range to the correct color.
The Debugger no longer prints "string
too long" over and over into the history window.
Boy, is it a good thing no one tried to
use an XFUNC with FindRoots, Optimize, or IntegrateODE! It
is now possible...
Procedures
Global Fit package now supports
all-at-once fitting functions, has a checkbox to request a
covariance matrix, and lists XFUNCs in the fit function
menu.
New FITS Loader.ipf file. Now supports
multi-row BINTABLE format. Not compatible with previous
versions of the Igor application.
New WaitForFileProcs.ipf procedure file.
These procedures are useful for synchronizing with another
application. If the other application writes a file as part
of its processing, you can make sure that Igor waits for the
other application using these procedures.
See the procedure file for details on
usage.
The WMMenus.ipf procedure file now adds
a "Check Latest Igor Version" menu item to the Help menu. It
contacts the WaveMetrics web site where information about
Igor versions is published.
Scatter Plot Matrix enhanced:
- Marker selector panel selects a marker, doesn't just
show you the marker numbers.
- Options to plot with no ticks or tick labels.
- Option to make colored boxes behind each little
plot.
- Fixed bug- the current data folder was not restored
after making a scatter plot matrix.
New procedure file Rational.ipf. The
function calculates two integers whose ratio approximates
the input parameter within the specified error range.
Revised Global Fit.ipf procedure file.
Global fits now support weighting and constraints. See the
Global Fit Demo experiment for details.
Revised New Polar Graphs.ipf procedure
file. Previously it would quietly fail if the wave names
were too long or if the data folder of the input data was
too deeply nested. The new procedure works with longer names
and warns if they are too long.
XOPs
Bug fix for the Macintosh IGOR Surface
Plotter XOP: the bug would cause a crash on some computers
when specifying constant rotation from the rotation
dialog.
Changed a random number generator for
the gammanoise() function in StatFuncs XOP.
(Macintosh-only) Changed the default
wave type created by the SndLoadWave XOP from
single-precision floating point to 8-bit or 16-bit,
appropriate to the sound format.
|