Hello and welcome to the unofficial manual, Introduction to IGOR Pro Programming. This manual was developed under a grant from Wavemetrics, Inc.
The manual was written in order to facilitate the transition from being a competent IGOR Pro user to being a competent IGOR Pro programmer. Why? Because IGOR Pro is the swiss army knife of data analysis, instrument control and data visualization, and the key to unfolding this potential is programming.
So, if you wish to start programming with IGOR Pro, then download the two files that make up the manual (the manual itself and the companion experiment) below, and begin.
Please feel free to add comments below or to send me email if you find any errors or if you have any suggestions.
The collection of resources at the end may also be of use.
Payam
The Files:
The Manual: View/Download pdf version (33 pp, 460 Kb)
The Companion Experiment:
Igor_Programming_Intro.pxp (IGOR .pxp file, 544 Kb)
Wavemetrics Resources:
- IGOR Pro Updaters The fastest route to standalone updaters
- Listing of User Created Resources at Wavemterics The “Tools for IGOR Users” and the “IGOR Mailing List” are especially useful. The mailing list is perhaps the most useful community support list in existence.
- User submitted algorithms via the Wavemetrics FTP server
IGOR Pro User-created Resources:
These are links (hopefully) not cited in the above resources.
- Igor Exchange What promises to be the ultimate IGOR support and development portal by Adam Light
- Using LaTeX with IGOR Pro by Jesús Martínez Blanco
- Irena 2 package of small-angle scattering data evaluation and modeling macros for Igor Pro
- Freiburg Evoked Potentials Recording and analysis of visual evoked potentials, be it from the retina (ERG, PERG) or the cortex (VEP)
- How to run two versions of IGOR concurrently, from Asylum Research
- PulseQ electrophysiology package (commercial)
- Igorian Chant Software. IGOR consulting by Jim Prouty
- IGOR Functions by Jeremy Bergsman A variety of utilities (such as loading files, automating image analysis)
Companies using IGOR Pro

Hello Sir:
There is a bug in your example, on page 24 of 33, Introduction_to_Igor_programming.pdf.
The line says:
ExtractedRow[p] = theMatrix[i][p]
It should say
ExtractedRow = theMatrix[i][p]
or
ExtractedRow[0,(numpnts(extractedRow)-1)] = theMatrix[i][p]
Respectfully,
Harald Herchen, Ph.D.
Dear Harald,
Thank you very much for bringing this to my attention. I just uploaded the corrected pdf file to the server.
Payam
Hello Sir,
What a pleasure to (re)discover the basis of igor programming in this tutorial ! You make me more comfortable with writing igor function, and I’m waiting for the next episode
! Thank you for all !!!
Sincerely yours
Guillaume
Payam,
Nice job on the manual. Thanks for putting this out there.
Hi Jeremy,
Thank you very much. Actually, it’s been out for quite some time now. I should probably plug it more aggressively.
Payam
Hi Payam
I just realized I didn’t have a link to this yet on IgorExchange, so I’ve added a link from the support page (http://www.igorexchange.com/support).
Nice work.
Adam