User Contributions from the FTP Archive

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

Enterprising Igor users offered their solutions for loading specialized data formats and procedures for specialized data analysis, and uploaded them to the User Contributions directory of the WaveMetrics FTP site.

Many of these solutions are tightly linked to the period in history when they were developed; they worked with the versions of Igor they had at hand.

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

Newer User Contributions are at Igor Exchange

New user contributions are available on the WaveMetrics forum and project web site

User contributions there are divided into "projects" and "snippets":

  • Code snippets are pieces of code (usually short and simple) that serve a specific purpose. Larger pieces of code with multiple functions, etc. should usually be created as a project instead.
  • Projects include individual Igor procedure files or collections of Igor procedure files that are related, as well as external operations (XOPs).

INDEX of User Contributions FTP Archive




    Written by: John A. Marsh <>

    1DMotion is a set of macros for Igor Pro which allows elementary physics students to view x-t, v-t, and a-t plots of 1D motion. A control panel allows students to set initial position and velocity and fix the acceleration at some constant value. ALso included is a method for letting students draw the x-t function on the graph, and Igor automatically generated the v-t and a-t plots.

    Note: for Igor Pro 3.0 or later only


    Jan 2001

    Co-written by: Kevin Boyce <>
    Co-written by: AG <>

    AutoSave is an external operation that allows you to cause Igor to save automatically at specified intervals.

    AutoSave adds the AutoSave command line operation to Igor.

    Note: AutoSave requires Igor Pro 4.00 or later on Macintosh, 4.02 or later on Windows

  • ax_marquee.ipf

    January, 2007

    Written by: Francis Dalaudier, Service d'Aéronomie du CNRS, <>

    Center, expand and shrink using graph marquee on a single-axis basis.

    This procedure file provides some equivalent of built-in expand/shrink on an axis-by-axis (A-b-A) basis. A single level A-b-A Undo is provided..

  • Backgrounder.ipf

    November, 2006

    Written by: Jamie Boyd, Medical University of South Carolina, <>

    Backgrounder is a simple background task manager, soon to be made obsolete by Igor 6's improved background task.

  • BatchStringUtilsDutton.ipf

    July 1998

    Written by: Geoff Dutton, NOAA/CMDL, <>

    String functions to execute commands on multiple waves

  • BinaryReader.ipf

    May 22, 2007

    Written by: Jamie Boyd, Medical University of South Carolina, <>

    BinaryReader helps you peek into binary files on disk to see what is inside of them. Useful if, e.g., you are making your own file loader and need to read headers and find offsets and see what kind of data is in the file.

    It's similar in operation to the B.scan utility that used to exist for OS X.

  • Bluchert_122a_ReadMe.txt

    14 May 1997


    Written by: Kevin R. Boyce, <>

    Bluchert: AppleEvent/PPC library

    Here is version 1.2.2a of the Bluchert library for sending and receiving data from Igor Pro using Program-to-Program Communication (PPC). The only change since version 1.2.2 is the inclusion of the Pascal interfaces and sample application, which were kindly supplied by Erik Jensen <>.

    The Bluchert library is a C (and now Pascal too) library that allows you as a programmer to make your application communicate with Igor Pro, using the PPC toolbox calls. You can get and send waves, send commands and get the results of those commands. Works over the network, too (can talk to Igor Pro running on another machine).

    It still only does synchronous calls, so you have to wait while data is transferred. I may add async calls if I get a lot of requests for it, though that's what this note said on 13 Oct 1995, so you can guess how many such requests I've gotten....


    8 June 2007

    Written by: Holger Taschenberger, <>

    This Windows XOP can compress/decompress GZip files and also has some basic zip and unzip functions.

    Zip and unzip are based on Jean-loup Gailly's source code minizip.c and miniunz.c.

    It allows to create and append to zip archives (wildcards o.k.). But 'refreshing' existing files or deleting files within zip archives is not supported. Neither is automatic recursion into subfolders.

    If anyone is interested, please feel free to grab it from: <>

  • Bruker_ESR_ReadMe.txt

    Mar 20, 1999

    Written by: Mamoru Yamanishi, <>

    I made an XOP for loading EPR spectra from Bruker's file.

    Using my XOP, LoadBruker, you can load and/or transform your spectra on IgorPro. Included "Help file" will give you slight more detail.

    My develop/working environments are:

    • PowerComputing PowerBASE 180 (603ev running at 180 MHz)
    • MacOS 8.1 + Japanese language kit
    • IgorPro 3.13
    • MPW 3.5/MrC/SC

    Current version contains two XOP; one, "LoadBruker XOP", is for Power Macintosh. Another, "LoadBruker 68K", is for 68K Macintosh.

    You may use it freely. If you find any bugs, please notice me by e-mail.

    Note: This XOP requires followings:

    • Macintosh having 68020 CPU or later, or PowerMacintosh (FPU for 68K mac is not required, but highly recomended)
    • IgorPro 3.0 or later for Macintosh



    9 Apr 1999

    Written by: Bela FARAGO - ILL - Grenoble, <>

    Procedure: CursorReadback

    A little utility to read back data from your graph. It was strongly inspirated by the "Hook Peak Place" demo from WM and somewhat by the JEG Color Legend of Jonathan Guyer.

    So if you include it in your experiment it will add a Hierarchical menu to the end of the Graph menu with 2 items "Start Cursor Reading" and "Stop Cursor Reading".

    As it is in the Graph menu it is enabled only when the 2D graph or and Image is at the front.

    "Start Cursor Reading" will add a line on the top of the Graph and continously shows the x,y coordinates of the cursor (changes the cursor to a cross thingy) calculating back the real x and y values from pixels. If the Graph is an Image it shows x,y,z.

    Click on the graph will print x,y(,z) in the history area.

    "Stop Cursor Reading" will remove this control area and return to normal operation.

    Side effects:
    If you enabled it for more than one graph, they all show the same values. (not much a problem as long as we have only one mouse attached to the Mac...).

    Might interfere with J.G-s Jeg Color Legend as it uses the same area to show the information.

    I did not try with multiple axis situation or Image+2DPlot+contour as I wanted to avoid too much calculations in the functions to keep good responsiveness.

    That's all. Feel free to modify it, it is really short.

  • CursorTraceNameJPerkins.ipf



    Written by: John Perkins

    The following 3 functions are implemented via this procedure file:

    • Function CursorDisplayed(sWindowName, sAorB)
    • Function CursorActive(sWindowName, sAorB)
    • Function/S CursorTraceName(sWindowName, sAorB)

    This uses the techniques described in Version 4 Manual III pages 217-221 These routines should leave the state of the experiment unaltered, but exceptions can occur. sWindowName= "" is allowed for top graph.



    April 16, 2002

    Written by: Jamie Boyd, <>

    CustomFolderLoad is designed to simplify programming the loading of data from multiple files from a folder on disk. It provides code to wrap around your own pre-existing code (perhaps only a single line or two) for custom loading a single file, providing code for selecting and loading multiple files from a folder.


    Nov 7, 2001

    Written by: Zarbeco, LLC, <>

    The Customize XOP allows you to hide features or change the look of Igor to produce custom analysis solutions. This version of the XOP can be distributed and used freely for noncommercial use provided the XOP and help file are distributed "as is" without modification.

    For commercial distribution or for a customized version of this XOP, contact Zarbeco at

    Note: for Igor 4.xx and higher (some features require Win2k or greater)




    version 1.4

    Written by: Michael A. Johnson, <>

    This package includes: "Date-time axis control" v1.4 procedure file and "DateTimeStr2Secs" v1.2 procedure file.

    Adds control bar to a graph containing a date-time axis, that is, an axis internally represented as seconds since 1/1/04 but displayed as type "dat". Control bar displays axis limits in date-time format and user can use that format to change the axis limits. Optionally, the A and B cursor positions can be displayed in date-time format.

    User chooses any one axis per graph to control; no limit on number of graphs simultaneously having control bars; no limit on names or locations of axes to be controlled. Multiple graphs can be controlled from a single control bar.

    Note: Requires Igor Pro v3.1 or later (Not tested with all earlier versions) Tested on PowerMac; not tested on IBM compatible.


    Feb 13, 1996

    Written by: J. J. Weimer, <>

    Deconvolution Functions (Igor Procedures) contains the deconvolution routines. Put this somewhere in your Igor folder (typically in the User Procedures folder). Use the routines with an #include "Deconvolution Functions" at the top of your procedures.

    Note: Please see the ReadMe file inside for copyright and distribution notices.

  • DFGraphOrTable.ipf


    October 4, 2001

    Written by: John Geisz

    These Igor 4 procedures create a dialog to create or add waves to a graph or table that is data folder aware and can filter waves using wildcards.

    Also includes several useful functions converting between text waves and lists.



    Written by: Patrick Groenestein, <>

    These user procedures contain routines for loading DICOM format images.

    DICOM (Digital Imaging and Communications in Medicine) is a format popular in the medical imaging community. This code is in the public domain.



    June 9, 1999


    Written by: Varouj Chakarian

    Macintosh and PC implementation of the Kramers-Kronig (KK) program.



    Mar 20, 1999


    Written by: Mamoru Yamanishi, <>

    I made a file-loader XOP, "LoadDL708 XOP", that make you to access wave/trace from YOKOGAWA DL/AR series oscilloscope.

    Included "Help file" will give you slight more detail.

    Current version of LoadDL708 XOP is 1.4.1, and made as FAT-binary.

    You may use it freely. If you find any bugs, please notice me by e-mail. Please enjoy it.

    My develop/working environments are:

    • PowerComputing PowerBASE 180 (603ev running at 180 MHz)
    • MacOS 8.1 + Japanese language kit
    • IgorPro 3.13

    Note: This XOP requires followings:

    • Macintosh, having 68020 or later CPU, or PowerMacintosh (on Macintosh, FPU is not requied but recomended)
    • IgorPro 3.0 for Macintosh or later

  • DSP Filters.ipf

    Aug 14, 1996

    Written by: Michael A. Johnson, <>

    Igor procedures for filtering and displaying spectra of temporal 1-D waves. I have included low-pass, high-pass, band-pass, and notch rejection filters as well as a spectrum plotter. While I have banged on these routines pretty hard, no one else has and I cannot claim they are free from errors, even dumb ones. In any case, I welcome comments.




    Written by: John A. Marsh, <>

    EasyDataPlot is a set of macros for Igor Pro which essentially presents students and Igor Pro novices with a simplified user interface. The macros will surely evolve as I get feedback from students who will use it this semester.

    Note: for Igor Pro 3.0 or later only




    Written by: John A. Marsh, <>

    EasyFunctionPlot is a set of macros for Igor Pro which allows students to enter equations in and see them on the screen very easily. An automatically generated layout is printed showing user name and date. The printout has 6 individual plots of the functions plus a single plot containing all six. Students have found this very easy to use, and can investigate wave phenomina easily.

    Note: for Igor Pro 3.0 or later only

  • EigenSystem.ipf

    Oct 4, 1995

    Written by: David Niles, NREL, Colorado

    This is an Igor Pro 3 procedure that calculates EigenSystems. The algorithm is from Numerical Recipes in C.



    June 20, 1995


    Written by: John Boswell, <>

    EPRSim XOP implements the QPOW powder EPR simulation code, and can also generate isotropic spectra. I've successfully used the XOP to simulate the spectrum of PHM (a type-II copper protein), as well as the spectrum of a DMPO-S (thiyl) radical (spin trapped).

    I've also put together a demo experiment that shows how to use the simulation routines, and gives sample input and output.



    v 1.0

    Written by: Georg Klein, <>

    To start, select ExportToLatexTable from the Panel submenu.



    Wed, 5 Oct 2005


    Written by: Kevin R. Boyce, <>

    FITSLoad is an XOP to Load (and eventually to save) FITS files into (and eventually out of) IGOR. It's based on CFITSIO, and so should automagically do various things like gunzipping zipped files, etc. It is reasonably fast as long as there are no STRING (form A) columns in the file being loaded. If there are strings, it gets unbearably slow.

    You can abort by holding down command-period (sometimes you have to hold it for many seconds). If WaveMetrics provides a faster way of inserting points into text waves, I will make use of it. It adds the following operations to Igor:
    FITSVersion, FITSLoad

    CFITSIO is at

    I'm using version 2.510.

  • Fluke_Hydra2625.ipf

    February 3, 1995

    Written by: Jerry Eykholt

    Sample Macros for Controlling the Fluke Hydra 2625 from IGOR Pro using VDT.

    Please send any questions regarding these macros to <>

  • GetClipboardImage.ZIP


    Written by: Zarbeco, LLC, <>

    The GetClipboardImage XOP (Windows only) allows you to capture a clipboard image into Igor. This version of the XOP can be distributed and used freely provided the XOP and help file are distributed "as is" without modification.

    Note: for Igor Pro 4.0 or later only



    March 6, 1996

    Written by: Stephan Wenzel, <>

    This XOP was developed to control a Time Resolved Circular Dichroism spectrometer. It adds enough features to Igor to take control over a GPIB-Bus system.

  • HistoryArchive.ipf


    Written by: Bela Farago, <>

    Procedure to automatically save experiment history to a file so unlimited history is kept.

    I am doing data acquisition (during weeks) with Igor and I print lot of information in the History area. In the early times this did eat up all the memory untill WM introduced the limit in number of lines which is kept. It is commonly believed the discarded text is lost forever. WM was kind enough to introduce an "Easter Egg" (let me be pretentious and say it was for me) to avoid this.

    If a text file exist in the directory path "home" with the same name as the experiment + " History Archive", the discarded text goes there. Now with my limited brain capacity I frequently a) forget to create it b)misstype the name.

    So with a friend of mine (Georg Ehlers to credit him) we made a little function which is idiot-proof. Usually we start the experiment from template which has this function already in the Procedure window. Eachtime you save the experiment it checks for the existence of this file and if does not exist it creates it.


    1. This is an undocumented, unsupported feature, use at your own risk!
    2. I do not know if it works on the "wrong" (PC) platform or not.

  • Hodgkin-Huxley_Model.pxp

    May 2004

    Igor experiments that simulate the squid action, based on equations from Hodgkin and Huxley (1952) J. Physiol. 117: 500-544

    See also 'Axon Action Potentials' from Microcomputers and Physiological Simulation, by James E Randall (1980), Chapter 12

  • Igor_Chess_Clock.txt

    November 4, 2003


    Written by: <s t e v e c @ q i g u a n g . n e t >

    This program was written because the user often played chess after a long day of electrophyiology experiments in lab, but did not have a chess clock. Thus, in order to prevent games that would drag on and on, the user made this little program. The purpose is to function as a chess clock. If you don't play chess, or if you play chess but don't use a chess clock, then you can stop reading and forget all about this program now. Otherwise, enjoy.

    Download Igor Chess Clock from

  • Igor2HTML.txt

    October 25, 2003

    Written by: <s t e v e c @ q i g u a n g . n e t >

    This is basically a variant of the popular c2html. It is specifically made for Wavemetrics Igor .ipf files and includes the option to create hyperlinks to functions, macros and windows in a contents area. It is a Windows command line utility, and usage is explained in the readme file.

    Download Igor2HTML from




    Written by: Daniel Murphy, <>

    igorgraph2xml is a set of Igor Pro procedures which takes the top Igor graph and writes an XML-based description of the graph to a file. There are two procedure files: GetIgorGraphData.ipf, which extracts the information about the graph layout, and IgorGraphXML.ipf, which writes the information to a file in XML form.

    These procedures are meant as a demonstration of an XML format for the interchange of scientific graphs. The XML files generated by these procedures are well-formed, but not valid, since there is no DTD or schema for the file format.


    July 23, 2007

    Written by: Kevin Mader, Boston University

    Allows Igor to get input from a with a joystick on Windows.

    Note: Windows only




    Written by: Steve Rauseo, <>

    These are two scripts that use AppleScript to open old style Igor files, with their associated folders, and save them in the new Igor Pro style packed file.

    Both of these scripts require that you have obtained and installed AppleScript. The script marked for systems 7.1.2 and later also assumes the presence of a scriptable Finder. A scriptable finder is included in all Finders after System 7 Pro (AKA 7.1.1). I have not tested this script with System 7.5.

    The script that uses the finder is a droppable script. Drop a folder that contains old-style Igor files (type "IGSU") on the script, along with another *empty* folder to contain the new packed files. That should be it. Go and get a cup of coffee. This script will also run if double-clicked. You will then get two dialogs asking for source and destination folders.

    The other script does not use the scriptable Finder. As such it cannot filter for a specific file type, nor can it work in the drop mode. Run the script and you are asked to choose a source and destination folder. The script will then attempt to convert all the files in that folder. It will assume that all folders have the name "Folder" in them (the Igor default) and that all files are old style Igor files. I have not tested this for robustness, so take care to set things up as directed.

    A final caveat. I wrote these scripts as I am trying to learn AppleScript and it seemed like a good exercise. The kind folks at Wavemetrics have tested them some, but neither I nor they can be responsible for adverse outcomes.

    Note: Macintosh only, developed for System 7.

  • IgorThief.ipf


    9 Aug 2002

    Written by: Daniel Murphy, <>

    IgorThief.ipf is an IgorPro procedure file that provides an easy way to extract data from a scanned graph. It is similar to the program DataThief for Windows and Macintosh.

    IgorThief is a basic digitizer, in that you have to click on each data point: there's no autotrace. It works on arbitrarily rotated graphs, and because it uses Igor one can use almost any image format.

    Note: A newer version of IgorThief.ipf ships with Igor 6 and later.



    Feb 1997

    Written by: Masashi Kiguchi, Ph.D., <>

    ClipImage and RowLesImage are procedures for manipulating images with IgorPro 3.

    I wrote these procedures and functions for myself to manipulate images easily.

    ClipImage realizes to clip an image using a familiar mouse operation.

    LowResImage makes a image with a reduced resolution. It takes much time for a high resolution image to handle, for instance, filtering, FFT, etc.

    You can try any beforehand operations to the reduced resolution images to save time.

  • iplotFromMatlabReadMe.txt

    Jan 2000

    Written by: Steve Lewis, Laboratory for Ultrasonics, <> contains four Matlab files that allow a Matlab user to plot to Igor in Windows. Two of them are used by me. The other two may be of interest to you:

    • iplot.m - this is the main plotting routine. You call it with any number of arguments. The arguments occur in pairs. The first of the pair is a string or tag indicating what comes next. The second in the pair can be a number, a matrix, a string, or a cell array of strings, depending on the tag. It works a lot like setting the properties for figures and other objects in matlab. A complete list of tags is located in the m-file. Just type help iplot to see them.

      IMPORTANT: The same function can also make the graph in Matlab. The destination of the data is controlled with the 'destination' tag. Specify 'igor' or 'matlab' to control which program makes the plot.

    • isendwave.m - this is the function that sends a wave from Matlab to Igor. It is called by iplot. You can use if for other purposes if you wish. Originally this was a sub-procedure in iplot.m, but I took it so I could work around a bug in Igor or Matlab (no sure where the bug exists). If you have a matrix with Nan or Inf values in them, then when they get to Igor, they become 1's and -1's. So isendwave, which should have been only one line of code, suddenly becomes many more....
    • igorinit.m - can be used to initiate a DDE conversation with Igor.
    • igorterm.m - can be used to terminate a DDE conversation with Igor.

    Note: DDE is a Windows-only technology. Igor 7 and later do not support DDE.

  • IR_File_Loaders_2.1_Readme.txt




    IR File Loaders 2.1

    Written by: Jonathan Gutow, <>

    IR File Loaders 2.1 is an update from version 2.0 (see below).

    Primary Changes:

    1. An identical Windows version. Thank you to Donald Lavery for going through and setting all the /B to /B=0. It is now possible to use search and replace to alternate between /B=0 and /B=1 and not destroy the operation of any other functions.
    2. In addition to the already tested .abs, .spa and .spc file readers the Galactic .spc file reader has been tested and debugged.
    3. The routines now make sure that the x-values increase with point number to avoid problems with some IGOR operations and functions that expect that ordering of the wave scaling.
    4. Added read of section 107 data for the Nicolet files. Thanks again to Donald Lavery for the information leading to this.

    IR File Loaders 2.0


    This package consists of translators that will extract spectra and some of the associated parameters from some IR instrument manufacturer data files.

    The procedure should work on a PowerPC or 68000-powered Macintosh running IGOR 4.xx or above.

    The spectra are loaded into IGOR waves with proper scaling and axis labels. The parameters such as resolution that are extracted from the file are stored in the wave notes. As of this writing only the Mattson .abs format, Nicolet .spa and Nicolet .spg loaders have been completely tested. The other loaders that are included are: JCAMP .DX, Galactic .SPC and Paragon .SP files. If you test and fix any of the other loaders please let me know and I will update this submission.

    Important formats that are missing from this list are Bruker, Bomem and BioRad. If anybody can add these please do!

    Happy file reading!

  • ITC16DataAcqProgram.pxp


    17 Oct 1998

    Written by: Jilda Nettleton Dept. of Physiology and Biophysics University of Washington, <>

    DataAcqITC16 is an IgorPro 3 program written to do electrophysiological recordings in either current or voltage clamp with Instrutech's ITC16 computer interface. The program includes a short manual explaining more about how to use the program. In addition, there are some extra procedures for averaging a series of waves.

    This program was written to work with an Instrutech ITC16 board using ITC16_PPC_XOP_2.2, an XOP provided by Instrutech corportation. It has been used on a Macintosh Quadra 800 and a Macintosh G3.

    Note: for PowerPC or 68K Macintosh only.

  • JEG_Tools_Readme.txt

    14 March 1997

    JEG Tools

    Written by: Jonathan Guyer, <>

    Procedures to load Nanoscope II and III AFM files, and to process images.

    JEG Image Tools

    These packages consist of tools of use in viewing images:

    JEG Color Legend (formerly "JEG Z-Legend")

    Appends a live color bar to an image, indicating the data dimension.

    JEG Scale-Bar

    Appends a "nice" scale-bar to an image or graph.

    JEG Spectral Filter

    A rudimentary tool for spectral filtering of images (uses the FFT power spectrum to remove or focus on features of particular periodicity).

    JEG Zoom Graph

    Adds addtional routines to the marquee menu. The existing Expand and Shrink items don't do the right thing when there are multiple sets of axes in the plot (makes a mess of JEG Color Legend layouts). These items fix the discrepancies.

    JEG Load Nanoscope

    Loads and displays Nanoscope SPM images. Particularly tested with NSIII AFM images, but should work for others as well. Depends on JEG Image Tools, although it's separate, as it seems to be of more specific interest that the others.

    JEG Text Tools

    These are tools of use in processing strings:

    JEG Extract Dimensions

    Converts a string consisting of a number and an SI prefixed unit into a number and the base unit, e.g., "3.4 nm" is broken to 3.4e-9 and "m".

    JEG Keyword-Value

    Like WaveMetrics' Keyword-Value package, but allows specification of the field separator and record separator (rather than assuming ":" and ";").

    JEG Strip Whitespace

    Removes whitespace (spaces, tabs, etc.). Caller configurable; you can make double-u's whitespace if you like.

  • KGLoad21ReadMe.txt

    KGLoad_PPC_211.sit (Macintosh) (Windows)

    Dec. 26, 2000

    version 2.11

    Written by: Mamoru Yamanishi, <>

    KGLoadWave XOP to load KaleidaGraph files, with source code.

    Macintosh and Windows versions of an Igor XOP that loads KaleidaGraph files into Igor Pro.

    Note: The .sit file can be unpacked using The Unarchiver.

  • KillDisplayedWave.ipf

    November 2006

    Written by: Jamie Boyd, Medical University of South Carolina, <>

    KillDisplayedWave does exactly that, removing a wave from any graphs or tables it is displayed on and then killing it.

  • LabVIEW_to_IgorPro.sit.hqx


    Written by: Mike Young

    LabVIEW_to_IgorPro.sit.hqx contains:

    AE LV to

    This vi automatically transfers an array from LabVIEW to Igor Pro via a Igor binary format file written to disk. Apple Events are used to command Igor Pro to load the wave from the file.

    Before running this vi, Igor Pro must be open and the experiment must have a path defined to the same location used by LabVIEW to save the binary file. There must also be a procedure named "MyProc(wavename)".

    AE From LV to Igor

    A companion Igor Pro experiment, already set up properly with "MyProc(wavename)".

    LabVIEW vi as Word doc

    This Microsoft Word document briefly explains, with words and pictures, the use of the included LabVIEW vi and Igor Pro experiment.

    LabVIEW_to_IgorPro was provided by Mike Young, circa 1998.
    The AE vi is based on previous work by Gary Johnson.

    Note: Macintosh only (uses AppleEvents). The .hqx file can be unpacked using The Unarchiver.

  • LabVIEWIgorBinary400ReadMe.txt

    LabVIEW 4 or higher

    Written by: Gary W. Johnson , Electronics Engineer, Lawrence Livermore National Laboratory, P.O. Box 808, L-352, Livermore, CA 94551-0808, <>

    These LabVIEW 4 VIs read and save numeric arrays as Igor (WaveMetrics Inc.) binary-format files.

    The Igor file version is 2, for use with Igor 1.2 or higher. The newer version 3 format, featuring multiple waves in a single file, is not supported.

    All VIs are portable among all LabVIEW platforms (Mac, Windows, Sun, HP, Concurrent) without modification. Data files written on one platform are readable on any other platform. LabVIEW 4 or higher is required.

    There are five VIs to write data: for single (SGL) and double-precision (DBL) floating point, and for I8, I16, and I32 integer numbers.

    Read Igor Binary File reads all formats except complex.

    All of Igor's wave data features are supported ( including X and Y scaling and labels, and wave notes).

    Full documentation of the data structures in this file format is available in Wavemetrics' Technical Note 003, Igor Binary File Format.

    Information is also available through the Get Info ... command on each VI and through the Description... fields on each control, accessible through the LabVIEW Help window.

    Note: LabVIEW 4 or higher is required. Complex waves are not supported.

  • LoadAxonBinaryFile212.ipf


    15 Nov 1999


    Written by: C.S. Leonard, New York Medical College, Dept. of Physiology, Valhalla, NY 10595, <>

    This macro allows Igor Pro users on either the Mac or Win95 platforms to load Binary files created by the Axon Instruments PCLAMP and Axotape2 electrophysiology data acquisition software for wintel boxes.

    Changes in v2.1.2:

    1. Adds a separate pull down menu.
    2. Adds a Load Next ABF and Previous ABF files.
    3. Adds 2 graph control buttons to the graphs created from the loaded data.

    The first kills the graph and the waves (YES, removes the waves from memory). The second removes the Controls from the graph (to avoid accidentally killing graphs you may want to keep). These features facilitate "browsing" through many data files. A fourth Procedure under the ABF menu lets you add the two control buttons to a graph.

    Version 2.1 included several improvements and bug fixes:

    1. It now works fine on Win95 Machines.
    2. It is now compatable with ABF format 1.5 which is used in PCLAMP 7 along with previous ABF versions (original was ABF 1.2).
    3. It now computes waveform scaling correctly for data acquired with gain telegraphing between the amplifier (tested with Axopatch 200A) and the digidata 1200 board. Also accounts for programable gain on Digidata board.
    4. Is now able to open the same file multiple times. Macro assigns new wave names to each trace read. Scales and plots correctly.
    5. It now also checks for file version number and prints a warning and aborts if trying to read a non-ABF file.

  • LoadAxonBinaryFileStricker.ipf




    Written by: Christian Stricker, Institute of Neuroinformatics, ETHZ/UniZH, Gloriastrasse 32, CH-8006 Zürich / Switzerland., <>

    This is the function file loader for AxonBinaryFiles. It differs from the one by Chris Leonard (even though is was the starting point...) in that it is a function and does not require the XOP GBLoadWave.

    This file loader is therefore faster and takes care of the pretrigger delays as well as the timing offset due to the multiplexing of the AD converter. Also, it takes care of the SI units in the unitstrings and uses those for proper handling/scaling of the loaded waves.

    Included in this file is a utility to print the header out - in case somebody has to check it if the loader is not working according to specification. The problem with AxonBinary headers is that there are about 100 different possible versions - and I am sure that I have not accounted for all of them.

    Version 1.2 should work on both Wintel and Mac platforms. It also fixes a bug when the recording only consisted of a single record.

    In case the loader is not performing according to specifications, please contact the author at the address above.

  • (Macintosh) (Windows)


    April 2011


    Written by: Mamoru Yamanishi, Ph.D., <>

    The LoadBrukerESR XOP is an external operation that loads data from Bruker's ESR/EPR data files into Igor waves.

    Note: for Igor Pro 5.0 or later only



    Feb 4, 2004


    Written by: Mamoru Yamanishi, <>

    The LoadCARY100 XOP is an external operation that load data from Varian CARY 100 UV/VIS/NIR Spectrophotometer data files into Igor waves. It is the first IgorPro 5.0-aware XOP which the author made, and third one made at UNL.

    This XOP can deal, spectrum (*.dsw), spectra (*.bsw), scanning kinetics (*.bsk), kinetics (*.bkn), and enzyme kinetics (*.bek) data. Even if these data file contain some information such as kinetics results and reports, and/or some database in addition to the measured data, only measured data can be dealed.

    The LoadCARY100 XOP is free for use, but not a public domain. It is copyrighted by Mamoru Yamanishi, 2004. If possible, please send any coment to the author. If you feel it useful for your job, please cite it in any way: for example, you may declare the name of this XOP, or you may indicate the URL of the FTP site. Its sources can be distributed by request, and are also copyrighted by Mamoru Yamanishi, 2004.

    Note: This XOP requires IgorPro 5.0 or later for both MacOS and Windows. Other software- and/or hardware requirements are depending on the requirements of Igor Pro.



    Apr 1997

    Written by: Mamoru Yamanishi, <>

    LoadESPRIT is an external operation that loads JEOL Electron Spin Resonance (ESR) Spectrophotometer data into Igor waves. Such data is made by "ESPRIT" data station, that files are so called "ESPRIT" data files.

    This XOP copyrighted by Mamoru Yamanishi <>

  • (Macintosh) (Windows)


    May 2011

    LoadFCS XOP v1.0

    Written by: Mamoru Yamanishi, <>

    The LoadFCS XOP is an XOP for flow-cytometry users, which enables Igor Pro to load raw data in FCS3.0 compatible, list-mode files.

    LoadFCS adds the following to Igor:

    • A menu item in the Load Waves submenu.
    • A command line operation.
    • This help file.
    • Help in the Igor Help Browser Command Help pane.

    LoadFCS is designed for FCS3.0; its specification, "Data File Standard for Flow Cytometry, Version FCS3.0" is available from It has mainly tested with FCS2.0 type file.

    Note: requires Igor Pro 6.20 or later



    January 31, 2004

    Written by: Mamoru Yamanishi, <>

    LoadOlis XOP is a file-loader XOP for quite old Cray/Olis spectrophotometer.

    Macintosh and Windows XOPs are included.

    This XOP works satisfactory for the author. Please use it by your own risk.



    Jan 2004

    Written by: Mamoru Yamanishi, <>

    The LoadPEFL XOP is an external operation that load data from Perkin Elmer Luminescence spectrophotometer LS50 data files into Igor waves.

    This XOP can deal only spectrum (*.sp) data. The author does not know whether it can load file from other Perkin Elmer's spectrophotometer. If you can, please notice to the author.

    The LoadPEFL XOP is free for use, but not a public domain. It is copyrighted by Mamoru Yamanishi, 2004. If possible, please send any coment to the author. If you feel it useful for your job, please cite it in any way: for example, you may declare the name of this XOP, or you may indicate the URL of the FTP site. Its sources can be distributed by request, and are also copyrighted by Mamoru Yamanishi, 2004.

    This XOP requires IgorPro 5.0 or later for both MacOS and Windows. Other software- and/or hardware requirements are depending on the requirements of Igor Pro.



    April 2011

    version 2

    Written by: Mamoru Yamanishi, <>

    "SPECMAN" is an binary format for several spectrophotometers of JASCO; (

    I tested only UV-VIS spectrophotometer (model UV560). However, it may work with other apparatus.

    This XOP was made many years ago. Recently, JASCO allowed me open it to the public. If you wish to obtain other versions of this XOP, please contact me.

  • LoadTeac16File.ipf


    14 Nov 1998

    Written by: James Prouty, Igorian Chant Software, <>

    Contributed by: Dr. Barry R. Dworkin, Professor of Behavioral and Neuroscience, Pennsylvania State University, College of Medicine, Hershey PA 17033 (USA), <>

    LoadTeac16File.ipf contains the LoadTeacFile() macro which reads data from a TEAC DAT 16-channel data recorder saved to a binary files by TEAC's "QuickVu" program (a PC program).

    The QuickVu file header values are saved into variables and strings in the root:teacHeader data folder.

    Tested on the Macintosh version of Igor Pro 3.12, and should also work on the Windows 95/98/NT4 version.

    Note: for Igor Pro 3.12 or later




    LoadTIDA V5.0

    Written by: Dirk Dietrich, Dep. Neurosurgery, Bonn University, Sigmund-Freud-Str.35, 53105 Bonn, Germany, <>

    The small program described here was written to make Igor capable of reading data files that have been saved by the "TIDA for Windows" program.

    TIDA (by HEKA, Lambrecht, Germany) is a data aqcuisition and analysis package that is specialized for neurophysiological recordings. Its analysis features are, however, somewhat limited and I wished to process data that have been recorded (and saved) by TIDA with the powerful and programmable environment of Igor.

    To circumvent the time-consuming and annoying procedure of converting TIDA files to ASCII, I wrote "LoadTIDA". Any suggestions of improvements or extension are welcome. Just send as email.

    For usage the igor procedure file LoadTIDA_V5.0.ipf can be loaded into a particular experiment via the FILE menu or it can be put into the Igor Procedures folder; see Igor manual for instructions.

    Requirements: You have to use a later Igor Version that can handle the "modern global access method" (Igor 3.1 or later). TIDA files should be of V2.1 or later.

    Note: The procedures were developed with Igor pro 3.11 - 3.13 under Win 95. I have not tested it, but they should also work on the Mac platform.

  • LoadTIDA411_3.6.ipf


    TIDA 4.1

    Written by: Stefan Hinterkeuser, Bonn, Germany , <>

    Macro that supports loading of TIDA 4.1 (HEKA Electronic) files.

    The Macro inserts into "Data" → "Load Waves"

    For each file a separate datafolder is build containing the waves (called blocks in TIDA).

    The loaded file is displayed in a graph.

    By use of a separate panel the stimulation settings and the File-comment can be displayed.

    Since Version 3.5 rawdata is loaded completely (not sequential as done before) thus rawdata loading has become much faster.


    Loading supports only one channel (might be enough, otherwise contact me by e-mail).

    "Showdata" is very poor. It depends on the name of the blocks etc.

  • LoadVNMR Mac


    Apr 1997


    Written by: Mamoru Yamanishi, <>

    LoadVNMR XOP is an external operation that loads data into Igor from Varian's VNMR application, that data is saved by "svf" command of VNMR.

    This XOP copyrighted by Mamoru Yamanishi <>

    Note: for Igor Pro 3.0 or later only

  • MarkCsrRegions.ipf


    19 Mar 2002

    Written by: Jeffrey J. Weimer, Chemistry/Chemical & Materials Engineering, UAH Materials Science Bldg 125, John Wright Dr., Huntsville, AL 35899, <>

    MarkCsrRegions.ipf is a procedure file that contains four functions:

    1. ExcludeCsrRegion - sets values between cursors to NAN
    2. ExcludeExtCsrRegion - sets values outside cursors to NAN
    3. HiLiteCsrRegion - marks between cursors with 1 and outside with 0
    4. HiLiteExtCsrRegion - marks between cursors with 0 and outside with 1

  • MCmodalList

    14 March 1997

    v1.0, by Martin CANALS, 1997 CREGU

    Written by: Martin CANALS, CREGU, BP 23, 54501 Vandoeuvre les Nancy Cedex, FRANCE <>

    MCmodalList is a simple XOP that displays a list in a modal Dialog and returns the selected items.

    Note: Macintosh only

  • Minifit.ipf


    2 Sep 1999

    Written by: Thomas Hwang, Department of Ophthalmology, Box 0730, University of California, San Francisco, CA 94143, <>

    This procedure file uses an amplitude threshold algorithm to detect spontanoeous synaptic events recorded from neurons and then analyzes the kinetics of those events.

    The algorithm and performance are described in the following reference:

    Hwang TN, Copenhagen DR. "Automatic detection, analysis, and discrimination of kinetically distinct spontaneous synaptic events." J of Neuroscience Methods.

    Note: for Igor Pro 3.0 or later only

  • mkwaves_2.3.shar

    29 November 1994


    Written by: John Firestone, Alfred Wegener Institut, fuer Polar- und Meeresforschung, Postfach 120161, D-27515 Bremerhaven, GERMANY, <>

    This is a shell archive; edit the text file according to the comments at the beginning and execute the resulting script on a UNIX or Mac OS X shell.

    This UNIX program takes lines of commands from a script file or standard in and outputs an Igor text file (.awav file) to standard out. The program accepts four different types of lines: comment lines; string lines, which generate Igor string definitions; wave lines which generate Igor waves; and command ines, which generate Igor X commands.

    The program is provided as C source code.

  • MotoFitAbout.txt



    5 Jul 2005

    Written by: Dr. Andrew Nelson, <>

    I have developed a set of functions that aids the fitting of neutron and X-ray specular reflectivity data.

    Specular reflectivity is defined as the ratio of reflected intensity over incident intensity, where the angle of reflection (q) is equal to the angle of incidence.

    The specular reflectivity is calculated using the Parratt's recursion formula 1 for stratified thin films, as a function of the perpendicular momentum transfer, Qz.

    Qz = --- sin(θ)

    Motofit is an IGOR Pro macro that aids the fitting of specular X-ray and neutron reflectivity data.

    Motofit works within the analysis package IGOR PRO (Wavemetrics, OR). It was created in version 4 of IGOR, and should work in version 5.

    Why is it called Motofit? Well Moto is the name of a Parrot!

    Motofit was created with the aim of allowing a scientist to easily fit her/his reflectivity data. Other reflectivity packages are obviously out there, but sometimes they don't allow you to do what you want.

    The advantage with Motofit/IGOR is that if the user has a specific requirement for the fit then he/she should be able to code it rather simply.

    For example, if you want to fit an analytical profile, then you write a Fitfunc that will describe your profile. Or perhaps you want to fit with a different resolution function, it would be easy to include that as well.

    You can then send your special function to other users. If everyone does that then a wide variety of different capabilities can be built up.

    For more information, see the Motofit_reference.pdf file.

    For more about neutron reflectometry, see

    Note: for Igor Pro 4.0 or later only


    Oct 9, 2008

    1.10 (Win), 1.11 (Mac)

    Written by: Katsuhisa Kitano

    The Load_NetCDF operation loads data from the NetCDF file into wave.

    Further information will be obtained from the following web site:


    Load_NetCDF [ /P=pathName /D/I/T/S/Q/Z] fileNameStr

    Note: Macintosh version requires Igor Pro 4.09A Carbon or Igor Pro 5 or later. XOP is compiled as "universal" (for PowerPC and Intel processors).



    15 Oct 1998

    Version 1.6 of SpikeUtils

    Written by: Neil Berman

    Among other things, these procedures include a routine for dealing with a intracellular recording of the responses to injected pulses of current. An example experiment is included.

    Version 1.6: Data with seconds or milliseconds now supported. Zipped archive included for Windows users. Procedures NOT tested on Windows.


    Get Latencies: Produces ISI and Spike Frequency from raw spike train data.

    Convert Latencies to Freq: Produces ISI and Spike Frequency from latency data.

    Build Histogram: Accumulates latency data (e.g. from many trials) into single rate-histogram.

    Plot Mean+-SD lines: Superimposes error lines on whole trace. Errors derived from specified control period.

    TriFilter: Triangular filter suitable for spike rate estimations. Provide latency data - converts to filtered frequency data. (MG Paulin. Biol. Cybern. 1992 vol 66. 525-531)



    22 December 1997

    Version 2.1

    Written by: Frank Linseisen, <>

    Analysis package for broad-line NMR data (1 and 2 dimensional)

    • Runs on PowerPC using MacOS or X86 using Windows95/NT.
    • Can DePake NMR spectra (using different algorithms).
    • Can perform discrete Laplace transforms with and without non-negativity constraint and using a variety of algorithms.

    Note: for Igor Pro 3.0 or later

  • OpenMF-1.4-readme.txt

    May 19, 2005

    Version 1.4

    This XOP copyrighted by: Mamoru Yamanishi, Ph.D., <>

    The OpenMF XOP allows you to deal multiple files load into your experiment at once. This behaves like a front end processor and feeds specified files each by each to some commands.

    Macintosh and Windows XOPs are provided.

    Note: for Igor Pro 5.0 or later only



    October 8, 1998

    Version 2.01

    Written by: Mamoru Yamanishi, <>

    Contains OpenURL Light XOP, which connects to a file server to load remote file via FTP/HTTP.

    OpenURL Light XOP adds the following to Igor:

    • two command line operations
    • menu Item

    OpenURL can handle the following three protocols:

    Protocol                    Example
    file    local               file:///volume_name/directory_name/file_name
    ftp     anonymous-ftp       ftp://server_domein_name/directory_name/file
            non-anonymous-ftp   ftp://user@server_domain_name/directory/file
    http    web contents        http://server_domain_name/directory/file

    Macintosh PowerPC and 680x0 XOPs are provided.

    Note: for Macintosh Igor Pro 3.0 or later only. Requires OpenTransport 1.1.1 (maybe), or later.

  • PassDataThroughBox_About.txt


    Feb 6 1995

    Written by: Michael Blanpied, USGS, <>

    Several people have emailed in response to my offer to post a routine for doing "intelligent" decimation on parametric data, so I [have uploaded it here].

    The routine is useful for eliminating needless redundancy in your data while retaining all the interesting parts.


    August 1999

    Written by: David W. Niles, Agilent Technologies, Innovating the HP Way, <>

    These procedures perform Principal Component Analysis (PCA) and Target Factor Analysis (TFA).

    The Idea of PCA to take a set of related waves, and let the computer determine the number of distinct components comprising the wave set.

    The Idea of TFA is that once we have a set of principal components, we can make a physically reasonable set from them by a suitable transformation.

    An example use is to compute depth profiles in electron spectroscopy.



    18 Apr 2010

    version 5.03

    Written by: Patrick Groenestein, <>

    Procedures to load DICOM files.

    DICOM is a 'free form' protocol popular in medical circles for exchanging information. It is concerned with the exchange of information between various vendors and users.

    Since the DICOM 3.0 standard there is a formal layout for the file format, which older (NEMA) files did not have to follow (and were much more variable in their readability as a consequence).

    There is no format as such: the standard only specifies how data elements are to be organised. A lot of the most useful header elements are documented in the DICOM dictionary, but there are many vendor specific elements which are not so documented, and there is nothing to stop anyone defining their own header elements and contents.

    There is no guaranteed content in a DICOM file, either: the data does not necessarily contain any images.

    These vagaries accepted, most DICOM files do contain images, from such sources as computed radiography, CT, MRI, PET, or nuclear scans, and these routines can deal with them.

    Some of these routines were inspired by Pascal sources from:

    Dicom.p, by Jim Nash, Synergistic Research Systems <>

    Reads and decodes the DICOM header so that NIH Image can import DICOM images. DICOM (Digital Imaging and Communications in Medicine) is a format popular in the medical imaging community. This code is in the public domain.

  • ProgWindowXOPReadme.txt

    October 4, 1999

    Co-written by: Kevin Boyce, <>
    Co-written by: Jens Rumberg, <>

    Progress Window for Igor

    ProgWin is an XOP (external operation) that allows you to create and control a window with a progress bar, some text, and an optional button.

    There are two great things about using this progress window in your Igor procedures:

    1. The user can see how long something will take.
    2. You can provide a clean way of aborting complicated procedures.

    Number 1 is obvious, but let's look at number 2.

    Normally, to abort a procedure in progress, the user presses command-period (on a Mac) or clicks the "Abort" button (on Windows). But if you have a complicated system of procedure files that creates temporary waves or messes with the data folder structure then it can leave a big mess when someone aborts your procedure in the middle. Now you can use ProgressWindow instead! A new era in Igor programming begins! (Yadda yadda yadda...)

    For instructions refer to the online help, under the operation ProgressWindow.

    For examples, check out the ProgWin Demo.ipf procedure file.

    Note: ProgWin requires Igor Pro 3.00 or later

  • ProjectileMotion_Readme.txt


    Written by: someJohn A. Marshone, <>

    ProjectileMotion is a set of macros for Igor Pro which allows students to see the trajectory taken by a projectile. Up to 4 trajectories can be simultaneously viewed, each with independent controls for initial velocity and angle (or alternatively x and y components of initial velocity). Three lengthscales are supported: Physics Lab, Ballfield, and Artillery Range.

    A simple set of exercises demonstrating various aspects of the solutions is included.

    Note: for Igor Pro 3.0 or later only

  • PseudoDataThief.ipf


    Version 1.0

    Written by: Koichi MORI, <>
    Can be copied, modified, or distrubuted freely, but please give me feedback. Improvements are welcome (and needed).

    (Pseudo)DataThief converts picture of graph into numbers by "tracing" the curves in the picture. This is not as good as the the DataThief from, this is just a first step towards "DataThief a la Igor".

    Probably, and I hope, it's better than "Trace Graph" as WaveMetrics distributes in the Examples folder, but retouch with "Trace Graph" may be necessary after getting traces semi-automatically with this procedure. Depending on the quality of the graph image, there may be cases "Trace Graph" works better.

    1. Prepare a graph image as a 2-D wave (gray) or 3-D wave (full color with R G B planes) *1
    2. Display the image in a graph window (display; appendImage ImageWave)
    3. Set the scales and units of the graph image correctly so that the Igor's graph axes matches those in the image. *2
    4. Determine the color or gray level of the data line you want to trace. *3
    5. If its a color image, set the RGB values of the color into global variables gColorR, gColorG, gColorB. *3
      1. if it is a gray image, run "TraceGraphBW(imgWave, level)" with the "level" set to that of the line you want to trace.
      2. "TraceGraphBWreverse(imgWave, level)" would get you a traced wave from the other side (in case lines are thick).
    6. Run "TraceGraph(imageWave)" *4
    7. Traced data will be in two waves: imageWaveX and imageWaveY.
    8. "AppendTrace" (graph marquee) append the wave above as X-Y graph.
    9. Before tracing another data, select "RenameTrace" in order to save the result
    10. Step through between 4 and 9 for each trace.
    Works best with captured graphs with color or shades of gray. For scanned images, axes should be exactly horizontal or perpendicular (otherwise, take the axes data just like ordinary data and do some post-processing).
    If the graph has scalebars or properly labeled axes, "GetCalibrationBars" and "SetLeftBottomAsZero" in Marquee menu may be useful.
    "GetColor" (Marquee) may be useful. This sets gColorR, gColorG, gColorB as those of the image pixel at the left bottom corner of the marquee (skip step 5).
    Scanned color graphs may be problematic because lines become minutely different in color or shades of gray. You have to pre-process the image with graphic software.
    If all traces are in the same color or shade of gray, the graph image has to be processed beforehand so that each trace is uniquely colored. This should be probably done in a painting software, like GraphicConverter (R) or Adobe Photoshop (R).
    Alternatively, you could duplicate graph files and delete traces but one before using a TraceGraph* command. Axes should also be colored differently than traces, or they should be deleted before tracing.
    TraceGraphMQ in graph marquee instead can limit the trace area. This may be useful if the graph is crowded and you do not feel like pre-processing the graph image with graphic software.


    Apr 23 1997

    Written by: Vladimir Advonin, <>

    PULSE Loader is an external operation that loads data from files recorded with HEKA PULSE program into Igor waves. Along with data itself XOP loads information about sweeps and stores this information in wave note. Loading dialog allows also quick browsing over tree structure of HEKA data file. Some command line options are useful for macros.

    Note: Macintosh only: XOP is 68k, does not use floating point unit. It was only tested with Igor Pro v.3.02, but might work with other versions.


    April 12,1999

    Co-written by: Howard Rodstein, WaveMetrics, <>
    Co-written by: Mark Rand, Dept. of Neurology University of Washington, Seattle, <>

    RatioImg is an IGOR Pro 3.13 experiment file and a collection of procedures which were originally written to process and analyse ratiometric imaging experiments (i.e., A and B wavelength measurements of multiple ROIs).

    It was originally developed for use with the sodium indicator dye SBFI. It was subsequently modified to handle single-wavelength or already-ratioed data.

    RatioImg can perform background subtractions and can correct ratio values based on _in situ_ fluorescence measurements using ionophores and known concentrations of the ion in the perfusion bath.

    For single-wavelength dyes it can calculate and display F/Fo or delta_F/F. Data from each cell (ROI) can be browsed and displayed in a graph window, graphs can be copied to a notebook and annotated, and a variety of measurements may be performed.

    A detailed on-line help file is included as well as documentation in PDF format. There are also two sample data files for use with the documentation's tutorial section and an experiment file showing examples of annotation and measurement.

    RatioImg was tested on a Mac PPC 6400/200 with OS 8.1, and on a Dell Optiplex GXM 5166 with Win95.

    Note: Even though there are no XOP binaries, there are slight differences in the archive files due to differences in the Mac and Windows environments (mostly cosmetic); please download the file which is appropriate for your platform.

  • ReadLeCroyBinary.ipf


    Nov Feb 21 2001

    Written by: Charlie DeJoseph <> and Peter Bletzinger

    We have developed a "poor man's" (maybe "simple man's" is better) method for getting LeCroy digital oscilloscope data into Igor.

    Specifically, the late model LeCroy scopes will write binary data to a PC floppy (3.5") which can then be accessed by a program supplied by LeCroy.

    Also, LeCroy's "Scope Explorer" (Wintel only) can write a binary file from scope data which has been transferred to the PC by GPIB.

    We have written a simple Igor Macro which reads the important header information and the binary data directly from the IBM floppy using the GBLoadwave XOP.

    It will handle both 8 bit waveforms and 16 bit (processed) waveforms and prints out the most important scope parameters in the Command Window.

    It only handles single-trigger waveforms so will not handle "sequential" data.

    It was written with Igor Pro 3. It's not as nice as a custom XOP, but it's reasonably fast and very easily modified.



    Version 2.0

    Written by: Larry Hutchinson, WaveMetrics, Inc.

    Adds ability to write AIFF files to Igor.

    This experiment contains routines that can read an AIFF sound file. The demo macro is set up to read a particular file but it can act as a starting point for your own programming.

    Note: Igor 3.1 has the SndLoadWave XOP for the Mac which reads AIFF files.



    Jan. 4, 2000

    Version 2.2.0

    Written by: Mamoru Yamanishi, <>
    Please send me any suggestion or comment.

    Regex XOP is a library that adds functions relating regular expressions.

    During the course of my development, I wish to incorpolate regular expression functions. So this is made for test. However, I belive someone feel my XOP useful.

    Using these functions, you can search patterns around the string in addition to searching specified string.

    regcomp(pattern, flag)
    	stores regular expression pattern int internal buffer
    	returns length of matched sub-string
    regsearch(string,start, range)
    	returns position of matched sub-string
    	make internal buffer forgot
    	returns sub-string specified by index
    reggetinfo(flag, index)
    	returns several information specified by flag and index
    	is replacible function to Igor's strsearch(str,searchStr, start), give
    	much powerful search result.
    	returns substring that matche.
     rxs(str,pattern, substituent, start, flag)
    	returns substituted string

    Note: RegexFunc requires IgorPro 3.0 or later.

  • ReOrderBrowserStuff.ipf

    Sept. 5, 1996

    Written by: Michael A. Johnson, Lawrence Livermore Nat'l Lab, 7000 East Ave., P. O. Box 808, Livermore, CA 94550, <>

    ReorderBrowserStuff is an Igor Pro 3.0 procedure file that creates a graphical user interface for changing the order in which objects (waves, variables, strings, folders) are displayed in the Data Browser.

    I often have hundreds of data files arranged in several levels of folders and I use this macro to reorganize and clean things up when the mess gets out of hand.

    Note: for Igor Pro 3.0 or later only

  • SaveTable.ipf


    5 Nov 2001

    Written by: Sacha Nelson, <>

    SaveTable.ipf saves a table in exactly the same way that SaveGraph saves an existing graph.

    SaveTableSameDF.ipf saves the table into the root data folder (so that the waves are visible from the root). Note that this will overwrite existing waves with the same name.


    April 30, 1996


    Written by: Martin CANALS, BP 23, 54501 Vandoeuvre les Nancy Cedex, FRANCE, <>

    Use this macro package to easily add color scale bars or size scale bars to your X-Y plots. This is useful when the color or size is given as f(z).

    Put the procedure file into the User Procedures folder and add the line

    #include "Scale Bars"

    in your procedure window to use the macro package. This will add the item Scale Bars to the AppendToGraph menu.

    The Scale Bars menu item creates the Draw Scale control panel.



    Written by: Daniel Murphy, <>

    sciplot2igor is a set of Igor Pro procedures which read and write graphs in the SciPlot 4.01 format.

    SciPlot was a Nextstep scientific graphing and analysis program with a proprietary file format. SciPlot became Plot2 in 2007.

    SciPlot files are primarily based on graphs as opposed to data, so the Igor procedures for writing SciPlot files capture the contents of a specified graph, while those for reading SciPlot files generate graphs but also extract all unplotted data.

  • simplePeriodicTable.ipf


    Written by: David Niles, <>

    The simplePeriodicTable.ipf procedure file creates a panel that looks like the periodic table. 92 buttons, click on a button, shoot to a function.

    I wrote it for XPS, so currently each function returns XPS-type stuff.

    However, modifying it to work with other Igor experiments it is truly child's play. This will save you the tedium of making a panel with 92 buttons and a function for each button.




    Written by: Mike Young, <>

    The Slices2MOOV experiment is offered as an example of the capabilities of Igor Pro, in particular a technique for the creation of a number of rotating slices through a collection of sparsely scattered data points. The slices are used for data visualization in the form of a QuickTime movie (made by and viewed within Igor Pro), or as PICTs (viewed and/or animated with N.I.H. Image, for example). The slicing technique described here will probably work best for "volumetric data"; i.e., a cluster or "bee-swarm" of points in some 3-D space, possibly with an internal structure or outer boundary that can be further visualized with color information. It is probably least useful for viewing a continuous function such as a 3-D spiral.

    The examples contained herein, from the field of colorimetry, are introductory in nature and no guarantee is extended for their usefulness or applicability in serious colorimetric analysis.

  • SmithChart.pxp

    Aril 21, 2006

    Written by: Gary Johnson, WB9JPS

    Smith Chart experiment file.

    Append your real vs imaginary data sets, normalized to Zo.

    Data lifted from a LabVIEW example.

  • SNC DDG Calculator

    Sep 28, 2003

    Version 0.2

    Written by: <>

    SNC DDG Calculator is a patch data analysis tool developed for WaveMetrics' Igor Pro versions 4 and higher.

    The entire program is contained in a single procedure file, which can be downloaded from

    The main function of this program is to read in V_half and Slope values from Boltzman-fitted G-V curves and calculate DG and DDG values, average these values, and create graphs to represent the averaged DDG data.

    If you use this program, you are encouraged to e-mail questions, comments and suggestions to <>

    Note: for Igor Pro 4.0 or later only

  • SoundSynthesis.pxt



    Written by: John A. Marsh, <>

    The SoundSynthesis.pxt experiment file contains a set of macros for Igor Pro which allows students to view and hear a sound wave.

    The control panel allows students to set the frequency, duration and first few harmonics of the wave. A second (sine only) wave of different frequency can be added in to illustrate the phenomenum of beats.

    In the future, I'm hoping to improve the user interface (e.g. to allow more harmonics to be added) and to speed up the wave synthesis.

    Note: for Igor Pro 3.0 or later only



    May 1998

    Written by: Bob Wyttenbach, <>

    Each archive contains 7 files for A/D from the GW Instruments MacAdios series boards.

    There are three components to this package:

    1. GWCollect8dXOP - dialog-based acquisition of up to 8 channels of data with full support for triggering, gain setting, etc.
    2. MacAdiosXFUNCs - a set of XFUNCs allowing macro programming with all of the GWI TurboDriver functions. Includes utility functions to convert between binary and voltage.
    3. SpikeXFUNCs - functions useful for event analysis (originally developed for neurophysiology). Includes a versatile window discriminator, a function to find spike clusters, and functions to produce raster plots.

    All of these XFUNCs and XOPs are completely documented with Igor Pro online help files with built-in function templates and function help. There are also three sample experiments illustrating use of each of the functions.

    The set of XOPs costs $150, which includes unlimited technical support from the author (within reason). Purchasers of my old DigitizeXOPs package may upgrade for $50. Note that the new XFUNCs do require Igor Pro. Anyone with urgent need for an Igor 1.2x compatible version may contact me for an old slightly buggy version.

    For more information, or to receive a copy of the demos by email at





    Written by: Martin CANALS, CREGU, <>

    Use this package to split waves in smallest waves. This is useful when you import data from a Database (like a Microsoft Excel sheet).



    Versions 4.3

    Written by: Jeffrey J. Weimer, <>

    SpXZeigR is a collection of procedure files to analyze, manipulate, and layout spectroscopic data in an efficient manner using Igor Pro.

    Current Features
    • Quick display of one, all, or match-string selectable sets of scaled or unscaled waves in a given data folder
    • Quick selection of where to put multiple sets of waves (New, TopMost, or Separate)
    • Use of XML to set preferences, including
      • Spectrum Types: define axes labels, units, and graph title
      • Graph Modes: define axes, grids, and text parameters
      • Trace Styles: define style, mode, size, and color
    • Popup menu selection of spectrum type, graph mode, or trace style to change appearance of plot dynamically
    • Ability to write "plug-in" functions and select them to change the style of traces dynamically
    • Ability to define and switch between Paradigms to change preference sets
    • "Plug-in" compatible with the STANDARDIZED FILE LOADER panel

    Note: for Igor Pro 6.03 or later only




    Written by: Koji Yamanaka, <>

    The TEK_load XOP allows Igor to load Textronix's (.WFM) files. The (.WFM) is the internal format of the Textronix digitizing Oscilloscope TDS series. This XOP adds an operation which could be called from both a menu item and the command line. The loaded wave will be automatically adjusted the scaling and the units.

    I'm not sure this XOP will loads all the (.WFM) files or not.

    Note: This XOP is Macintosh version only.



    Mar 12 1998

    Written by: Jim Prouty, <>

    Igor Pro 3 procedures to load the *.WFA ASCII files created by software associated with Tektronix's DSA601 and DSA602A digital signal analyzers.

    Note: for Igor Pro 3.0 or later only



    May 11, 1999

    Written by: Jim Prouty, <>

    The archive contains a Windows command-line executable program that sets the current directory and launches another Windows application with that current directory

    Also in the archive is an experiment that launches this helper program.

    Note: for Windows Igor Pro 3.0 or later only

  • Transpose_Waves_Func.ipf

    Feb 28 1995

    Written by: Matthias Haury, <>

    This is an Igor Pro procedure file for transposing a group of 1D waves.

    Note that with Igor Pro 3, there is a built-in MatrixTranspose operation that works on 2D waves.



    Feb 21, 1997

    Video Grabber v. 1.5

    Written by: Nicolas Leclercq, Laboratoire LURE, Bat. 209D, Universite Paris-Sud, 91405 Orsay Cedex, FRANCE, <>

    Igor Pro 3.0 XOP to grab video frames using built-in video in PowerMacs.

    With VG-XOP (Video Grabber XOP) you can grab a single frame from the onboard video input of the macintosh (or other hardware?) and store it into an Igor's 2D wave, a PICT file or the clipboard. VG-XOP adds a menu item in Igor's main menu bar and an external operation which name is "VideoCapture". Using the menu you can load/quit VG-XOP and access its features. "VideoCapture" can be called from an user procedure.

    Note: Macintosh only, Igor Pro 3.0 or later

  • VoicePrint-SonogramDemo.pxp


    Oct 1997

    Written by: Charlie E.M. Strauss

    VoicePrint - Sonogram Demo

    This Demo Contains Two Features

    • A Voice Recording Utility which places a recorded sound in a wave.
    • An Analysis Function that computes the Sonogram of a waveform.

    Together, they allow you to make a "Voice Print", which is an image plot with axes Frequency and Time.

    Note: Requires Igor Pro with the Sound Input XOP, or Igor Pro 3.1



    April 10, 1995


    Written by: Tom Baring, <>

    The functions provided by the xBit64 XOP give IgorPro programmers bitwise access to 64-bit, double precision variables and wave elements.

    They provide the following single bit operations:

    SET, CLEAR, and TEST

    They provide the following bitwise operations on 64-bit masks:


    Note: Macintosh only: works with both Power Macs and 68K-based Macs



    April 10, 1995


    Written by: Tom Baring, <>

    The xStringArray XOP adds string arrays to Igor Pro.

    Note that Igor Pro 3 supports text waves. However, this XOP is still useful for Igor Pro 2 users.


    String arrays simplify the development of Igor stationery projects. They are used as a tool for organization, allowing the IgorPro programmer to invent consistent naming schemes, and manage large sets of data programatically.

    They are also useful in Igor's interactive environment. Macros included in the .zip archive provide batch wildcard operations. For instance, to make a graph of every "CO2" wave, you could simple type this command:

    batch ("WAVE", "display @",  "CO2*")

    To kill every window:

    batch ("WIN", "doWindow /K @", "*")

    To print the name of every wave which contains two or more "X"'s, and their lengths:

    batch ("WAVE", "print \"@\", numpnts (@)", "*X*X*")

    Note: Macintosh only: designed for Igor 2, which lacked text waves. Works with both Power Macs and 68K-based Macs.