Technical Notes from the FTP Archive

Before there was the Web, there was only FTP for sharing files such as Igor experiments, XOPs, and procedure files.

WaveMetrics engineers and occasionally "guests" wrote "Technical Notes"; articles describing technical details about Igor or about using Igor for a particular task.

These notes were uploaded to the Technical_Notes directory of the WaveMetrics FTP site as a .zip archive any may contain any combination of Igor help files, formatted notebooks, experiments, procedure files, source code, or executable files.

Many of these Tech Notes are tightly linked to the period in history when they were developed; they were relevant to the current version of Igor.

The downloadable files indexed on this page are drawn from that now-closed Igor FTP Archive.

The Technical Notes here may be useful for older versions of Igor and Igor Pro.

There are three kinds of Igor Technical Notes:

Igor Pro Tech Notes (PTN #nnn)
Developed after Igor became "Igor Pro", versions 2.0 or later.
Igor Tech Notes (TN #nnn)
Developed when Igor was named just "Igor", versions before Igor 2.0. Some of these have been subsequently updated for later versions of Igor.
Guest Technical Notes
Technical Notes written by Igor users. Though we have none archived, this template can be used to write one!

Newer Technical Notes are installed with Igor Pro

The Technical Notes folder inside the installed Igor Pro Folder contains the latest versions of still-relevant Igor Pro Tech Notes and Igor Tech Notes.

INDEX of Technical Notes FTP Archive


  • PTN #001: Fitting to a non-analytical equation

    PTN001.zip

    May 1994

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    Describes how a truly demented soul might exploit knowledge about the order in which a user defined equation is called by Igor's user curve fitting in order to fit to a function for which a simple equation can not be written. The case of a Gaussian pulse convolved with a Lorentzian is provided as an example.


  • PTN #002: Fitting with complex numbers

    PTN002.zip

    Oct 1993

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    Describes how to perform a curve fit when the data and fitting function involve complex numbers. The sample experiment can act as both a demonstration and as a template for your own function and data.


  • PTN #003: Writing Packed Files

    PTN003Mac.zip

    PTN003Win.zip

    Jan 1996

    Written by: Howard Rodstein, WaveMetrics, Inc.

    Describes how to write packed IGOR experiment files from your own program. Packed experiment files can contain waves, variables, strings, data folders and other information.

    Includes C source code for Mac or Windows.


  • PTN #004 Igor CGI on Macintosh

    PTN004.zip

    Jul 1998

    Written by: James Prouty, WaveMetrics, Inc.

    Describes how you can use Igor with a Macintosh-based web server such as MacHTTP or WebSTAR to dynamically create graphs displayed in a web page.

    Note: for Macintosh only


  • PTN #005: Igor CGI on Windows

    PTN005.zip

    Jul 1998

    Written by: James Prouty, WaveMetrics, Inc.

    Describes how you can use Igor with a Windows-based web server such as Microsoft's Personal Web Sharing 4.0 or IIS 4.0 to dynamically create graphs displayed in a web page.

    Note: for Windows only


  • PTN #0020-C: Unipolar Peak Areas Pro

    PTN020C.zip

    Oct 1994

    Written by: James Prouty, WaveMetrics, Inc.

    This Igor Pro experiment is a re-write of TN020-B Peak Areas to handle unipolar peaks (gaussian-like peaks). An older version of this re-write is TN020-C.

    There is no documentation other than TN020-B's technical note.

    The Unipolar Peak Areas experiment's automatic peak finder locates the peak start and end by using thresholds, and locates the peak maxima by finding the local maxima.


  • TN #001: Value report strings: Annotation of curve fits

    TN001.zip

    5/90

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    Experiment file illustrates how to generate and use a variety of result-reporting strings. The routines provided are particularly useful in annotating the results from a curve fit.


  • TN #002: FWHM & Area for Gaussians & Lorentzians

    TN002.zip

    Oct 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note and accompanying experiment provide support for calculating the Full Width at Half Max and area for Gaussian and Lorentzian peaks resulting from a curve fit. The estimated error is calculated and the results are used to annotate a sample graph.


  • TN #003: Igor binary file format

    TN003.zip

    Feb 1999

    Written by: Staff, WaveMetrics, Inc.

    This Technical Note provides the information that you need to write or read an Igor binary wave file.

    This technical note describes the Igor binary wave file format used in Igor 1.2, Igor Pro 2.0, Igor Pro 3.0, and Igor Pro 3.1.

    Igor Pro Tech Note PTN003 explains how to write an Igor Pro 3.x packed experiment file that can contain any number of waves and data folders.

    Accompanying files

    TestWave application source files, CodeWarrior and Visual C++ project files.


  • TN #004: FFT Q&A

    TN004.zip

    5/90

    Written by: Staff, WaveMetrics, Inc.

    This Technical Note and accompanying experiment answer common questions concerning the FFT circa Igor 1.2. Most of the restrictions mentioned are absent from Igor 4 and later.


  • TN #005: Statistical x-tests

    TN005.zip

    May 1990

    Written by: Staff, WaveMetrics, Inc.

    This Technical Note and accompanying experiment provide macros for performing Student's t-test and the F-test.


  • TN #006: DSP Support Macros

    TN006.zip

    6/94

    Written by: Jim Prouty, WaveMetrics, Inc.

    This Technical Note provides a number of useful macros and functions for digital signal processing.

    Included Procedure Files
    DSP support.pxp
    sample experiment
    Convolve.ipf
    procedure file containing MConvolve() and MCorrelate()
    DFT.ipf
    procedure file containing DFT()
    DFTMagPhase.ipf
    procedure file containg DFT-based DFTMagPhase()
    FTMagPhase.ipf
    procedure file containing FTMagPhase()
    FTMagPhaseThreshold.ipf
    procedure file containing FTMagPhaseThreshold()
    CmplxToMagPhase.ipf
    procedure file containing CmplxToMagPhase()
    Windows & PSD.ipf
    procedure file containing various window function + PSD()

    Igor 4 and later includes many of these macros in the WM Procedures:Analysis:DSP (Fourier etc) folder.

    The macros MConvolve() and MCorrelate() are built-in to Igor Pro 2.0 and later.


  • TN #007: Multi-variate Curve Fitting

    TN007.zip

    May 1990

    Written by: Staff, WaveMetrics, Inc.

    This Technical Note and accompanying experiment describe how to accomplish multi-variate curve fitting using iterative fits to user defined functions of the form: y=f(x1,x2,...xn).


  • TN #010: Igor Questions and Answers

    TN010.zip

    June 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    Here are answers to the questions most frequently asked about Igor.

    Where possible, the answers refer to the Igor manual, technical notes or sample experiments.


  • TN #012: Handy Macros & Functions

    TN012.zip

    April 1991

    Written by: Staff, WaveMetrics, Inc.

    This Technical Note provides a compilation of useful macros, functions and techniques.

    Note: Many of the included macros and functions are built into or included with later versions of Igor.


  • TN #013: Cubic Spline Interpolation

    TN013.zip

    October 1990

    Written by: Howard Rodstein, WaveMetrics, Inc.

    This Technical Note explains how to use the Cubic Spline Experiment, and some of the theoretical aspects of cubic spline interpolation.

    Note: We recommend using of Interpolate XOP instead of the macros described in this tech note.


  • TN #014: Synthetic Graphs: Tripartite

    TN014.zip

    Mar 1991

    Written by: John P. Marquis (guest writer)

    This Technical Note provides user documentation for a tripartite graph macro package.

    Tripartite graphs are four-axis log plots used by aerospace, mechanical and civil (structural) engineers, seismologists and other analysts involved with vibration and shock to plot a shock response spectrum (SRS).


  • TN #015: Import binary waves using symbolic paths

    TN015.zip

    June 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note describes the correct method of importing binary waves from other experiments or data folders.


  • TN #016: Instrumentation: RS232 to GPIB

    TN016.zip

    Oct 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note describes a technique for controlling GPIB equipment using Igor in conjunction with a serial to GPIB converter.

    This tech note merely provides a few hints and tips along with some simple code to get started. It is not a complete solution.


  • TN #017: Instrumentation: RS232 to Tek222 Scope

    TN017.zip

    Oct 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note will eventually illustrate how one might interface to an instrument using the VDT XOP.

    For now it just introduces a reasonably complete support experiment for the Tektronix 222 handheld scope as an example.


  • TN #018: Area & Integration

    TN018.zip

    Oct 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note introduces several extensions to Igor 1's area and integration capabilities. Included are routines for trapezoidal area for non-equally spaced data, a similar routine for use when the data is exponential in nature, a version that uses cubic spline interpolation plus support for integration of spectroscopic or chromatographic peaks. The cubic spline interpolation uses the interpolation XOP.


  • TN #019: Instrumentation: Tek 2440 Scope via GPIB

    TN019.zip

    April 1999

    Written by: Howard Rodstein, WaveMetrics, Inc.

    This Technical Note discusses controlling a Tektronix 2440 digital oscilloscope using a National Instruments NB-GPIB board and the NIGPIB external operation (XOP).


  • TN #020-INFO: Choosing the Right TN #020

    TN020s_Choosing.zip (Igor Notebook)

    TN020s_Choosing.txt

    Dec 2008

    Written by: James Prouty, WaveMetrics, Inc.

    This Technical Note explains the differences between several Technical Notes related to peak measurements:

    • TN020 "Peak Measurement and Fitting"
    • TN020-B "Peak Areas"
    • TN020-C "Unipolar Peak Areas"
    • TN020-H "Holding Peak Fitting Estimates Constant"

    Two TN #020-INFO modification technotes are also described.


  • TN #020: Peak Measurement and Fitting

    TN020.zip

    Nov 1999

    Written by: James Prouty, WaveMetrics, Inc.

    Note: An updated version of the Technical Note ships with Igor Pro 6.

    Explains how to use the included Peak Measurement Experiment. This experiment was created to address some of the common needs of spectroscopists. It fits the sum of multiple Lorentzian or Gaussian peaks to your data.

    Note: Peak Measurement requires Igor Pro 2 or later. The FindPeaks XOP must be installed before using Peak Measurement. To install, create a shortcut or alias to the FindPeaks XOP file located in the "More Extensions:Data Analysis:" folder.


  • TN #020-B: Peak Areas

    TN020B.zip

    July 1998

    Written by: James Prouty, WaveMetrics, Inc.

    Note: An updated version of the Technical Note ships with Igor Pro 6.

    This experiment is useful when you have data containing a large number of peaks and need "rough and ready" estimates of peak parameters.

    This experiment does not fit a peak function to your data; it just measures the amplitude, width, and areas of peaks.

    The Peak Areas experiment's automatic peak finder assumes the data has regularly spaced periodic bipolar peaks (peaks that have easily distinguished minima and maxima). The automatic peak identifier is crude, but can be modified by the knowledgeable user.

    If the automatic peak finder doesn't work with your data, you can still make peak measurements. Just use the cursors to identify the peak start, center, and end. The experiment does the rest: it can create and subtract a piece-wise linear baseline, and make the measurements automatically.


  • TN #020-C: Unipolar Peak Areas

    TN020C.zip

    4/13/99

    Written by: James Prouty, WaveMetrics, Inc.

    Note: An newer version of this Technical Note is PTN #0020-C: Unipolar Peak Areas Pro.

    This experiment is a re-write of TN020-B Peak Areas to handle unipolar peaks (gaussian-like peaks). There is no documentation other than TN020-B's technical note.

    The Unipolar Peak Areas experiment's automatic peak finder locates the peak start and end by using thresholds, and locates the peak maxima by finding the local maxima.


  • TN #020-H: Holding Peak Fitting Estimates Constant

    TN020H.zip

    Sep 1993

    Written by: James Prouty, WaveMetrics, Inc.

    Note: An updated version of the Technical Note ships with Igor Pro 6.

    The 'Peak Measurement' experiment provided by Igor Technical Note 020, estimates the position, width and amplitude of peaks automatically or semi-automatically. If you know any of these parameters and don't want Igor to vary them during peak fitting, TN020 does not provide an easy way to to that.

    This experiment (Peak Meas Enter Est & Hold) provides those capabilities, in addition to all of the capabilities of the original TN020 Peak Measurement experiment. Refer to the documentation for the 'Peak Measurement' experiment about the original features. The documentation for this technote describes only the differences.


  • TN #020-INFO: Continuing the Peak Fit (more iterations)

    TN020_Continue_Peak_Fit.ipf

    8/18/92

    Written by: James Prouty, WaveMetrics, Inc.

    Note: An updated version of the Technical Note ships with Igor Pro 6.

    This code extends TN020 Peak Measurement and Fitting to cause the fitting of peaks to proceed after Igor gives up trying to fit. Sometimes this results in a successful fit in very difficult situations.

    Often, though, if Igor hasn't converged after its usual 40 iterations, the data just doesn't fit very well.

    The enclosed macro text should inserted into your copy of the Peak Measurement experiment.


  • TN #020-INFO: Entering Peak Estimates Directly

    TN020_Enter_Estimates.ipf

    8/18/92

    Written by: James Prouty, WaveMetrics, Inc.

    Often you want to enter the peak parameters directly rather than have Igor automatically estimate them, or use the cursors to manually identify the peaks.

    This addition allows you to do that by invoking a new Enter New Peak Estimate macro.

    This addition can be made to three of the experiments in the TN020 family:

    TN020
    Peak Measurement.uxp
    TN020-A
    Custom Peak Measurement.uxp
    TN020-A
    Template.uxp

  • TN #020-INFO: Initialize Peak Macros

    TN020_InitPeakMacros_121.ipf

    V1.2.1

    Written by: James Prouty, WaveMetrics, Inc.

    This macro creates all the global variables and strings needed to use TN020's procedure file.

    Note: This InitPeakMacros procedure file replaces the version that shipped with Igor 1.28 or earlier, and that shipped with Igor Pro 2.0.1 or earlier.


  • TN #020-INFO: Rejecting Big Peaks

    TN020_Rejecting_Big_Peaks.ipf

    28 Jun 1995

    Written by: James Prouty, WaveMetrics, Inc.

    Contains a modified AutoIdentifyPeaks macro that rejects peaks above a certain amplitude.


  • TN #021: Ternary Graphs

    TN021.zip

    June 1990

    Written by: Jozsef Urmos, WaveMetrics, Inc.

    This Technical Note describes the creation of Ternary graphs with Igor.


  • TN #022: Reciprocal Axes

    TN022.zip

    Jan 1992

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note documents a group of macros that allow the user to create a 'fake' top axis that is ticked and labeled with values that are the reciprocal (or any other function) of the bottom axis.

    description

    Note: This Tech Note is obsoleted by Igor Pro Drawing Axes procedure, which is what more modern Igor versions use with the Transform Axis package.


  • TN #023: Level Crossings

    TN023.zip

    Oct 1990

    Written by: Howard Rodstein, WaveMetrics, Inc.

    This Technical Note documents a group of macros that allow the user to find level crossings in a time series waveform.

    Modern versions of Igor have a built-in version of FindLevels.


  • TN #024: Complex Functions

    TN024.zip

    Oct 1990

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note introduces a group of complex user functions.

    Igor 1.2 provides only the most basic complex functions. However, it is a simple matter to write user functions to provide almost any desired capability. In most cases all one has to do is look up the definition of the desired function in a reference such as Abramowitz and Stegun and then type the function into Igor's procedure window.

    To save the user some work, the accompanying file 'Complex.ipf' contains the following functions:

    • cabs(z):Absolute value of complex number z
    • csqrt(z):Complex square root of complex number z
    • cexp(z):Complex exp of complex number z
    • cln(z):Complex ln of complex number z
    • csin(z):Complex sin of complex number z
    • ccos(z):Complex cos of complex number z
    • cpowi(z, n) Complex power zn where z is complex and n is an integer

    Note: Igor Pro 3.0 and later has many of these built-in.


  • TN #026: The Voigt Profile

    TN026.zip

    Jan 1998

    Written by: AG, WaveMetrics, Inc.

    This Technical Note provides support for calculating the Voigt profile using an Igor user defined function.

    Note: Igor Pro 7 has a built-in VoigtFunc(x,y).


  • TN #028: Moving Experiments without Pain and Anguish

    TN028.zip

    June 1992

    Written by: Howard Rodstein, WaveMetrics, Inc.

    This Technical Note describes problems that can arise when you move "unpacked" Igor experiments from disk to disk and how you can avoid those problems.

    Note: Modern Igors save experiments using the one-file "packed" format, instead.


  • TN #029: The Mystery of Tag Placement

    TN029.zip

    June 1992

    Written by: Howard Rodstein, WaveMetrics, Inc.

    This Technical Note explains what the 'At x=' item in Igor's 'Add Annotation' dialog is all about.


  • TN #035: Modified Exponential Fitting

    TN035.zip

    May 1993

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    This Technical Note provides support for calculating two modified exponential functions that are useful for curve fitting. One function is the convolution of a Gaussian and an exponential and the other is the convolution of two exponentials. The cumulative density functions are also provided.