Time-series Photometry Using Quilt9 R. E. Nather October 1991 INTRODUCTION Time-series photometry (sometimes called high speed photometry) is an observing technique that uses sensitive photoelectric detectors to observe and record the brightness variations of astronomical objects. Common targets for study are intrinsically variable white dwarf stars or interacting binary stars. Their variations in brightness, when analyzed in detail, provide information about the underlying physics of the objects that can be obtained in no other way. The technique makes use of modern computer technology to acquire, record and display the variations, and therefore requires specialized hardware and software to be effective. It also requires that a time base of considerable accuracy be recorded along with the incoming data, so observations taken at more than one location can be combined. This document describes a specialized computer program designed for time-series photometry and provides guidance in its use. THE PROGRAM ENVIRONMENT Quilt9 is the latest in a series of computer programs designed for time-series photometry. It runs on an IBM PC or clone. When used in conjunction with a specialized interface and a multi-channel photometer, it provides a complete system for the acquisition of time-series photometric data for astronomy. It is written primarily in the C programming language, supplemented by a few subroutines written in assembler to obtain the required performance. To gather data at a telescope it must have a special-purpose interface (called the Clemens interface after the designer) that counts incoming photons in one or more input channels for specified time intervals, and displays them in real time as light curves on the PC display screen. Data can be recorded onto whatever disk drives the PC has available while acquisition proceeds. The PC must have 640K of internal memory, one or more disk drives, a CGA graphics display card (or a card that emulates the CGA), and a serial port. The Clemens interface can plug into one of the expansion slots of the PC, but it can also be mounted externally since it is self-contained except for the power it needs to operate. It communicates with the PC via the standard serial port. The interface can also change the filters in each of the input channels by driving the stepping motors that control them, obeying commands from the program in the PC. The Quilt9 system is controlled entirely from the PC keyboard. SETTING UP TO TAKE DATA: SETMODE When you first start up the Quilt9 program (by typing the command "q9") it will display a window of names and parameters that allows you to identify a data run and establish conditions for it. A specialized editor is built into the program so you can enter names and values, or alter those already present. The editor knows the allowed ranges for the important parameters and will tell you what they are if you try to enter one that is out of range. It checks the values when you give a command that would move the cursor off of the line you've been editing. Before starting a data run you should make sure that all of the names and values in the setmode window are correct, and are what you intend them to be. The setmode editor places printable characters at the cursor position, either instead of those already present (overstrike mode) or inserted in front of existing text (insert mode) -- the Ins keyboard key toggles between these two modes and tells you which one is currently active. The arrow keys move the cursor around as you might expect, but with motion limited to defined data fields. The Del key deletes the character indicated by the cursor. These are all the basic actions you need to get started -- there are other operations (delete a whole line, delete the previous character, etc) that you can find out about by using the F1 key in setmode, which will show you a help screen listing all of the editor's keystroke actions and what they do. Let's go through the lines in the setmode window, in order from top to bottom. The top two lines hold the current date and time; they look like this: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º 13:14:15~ UT º º 17 Jul 88 º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ except that the display is "live," so the time will increase its value each second. Quilt9 reads the PC clock (set to local time) and uses values from its initializing file, q9.ini, to convert local time to Universal time (UT). There are two values: "tzone" is the number of hours your observatory is east or west of the Greenwich meridian, and "dst" is 1 if daylight saving time is in effect, 0 otherwise. You may need to edit this file, using your text editor, to get them right for your observatory. The values are near the end of the q9.ini file, and must be separated from their names by spaces. You should use negative integers for "tzone" if you are east of Greenwich, positive if your observatory is to the west. The time shown just after program startup may not be accurate enough for time- series photometry (PC clocks are not terribly accurate) so you will probably need to correct it by bringing it into synchronism with your observatory clock. The timing system for the Quilt9 program relies on a precision, temperature-compensated crystal oscillator that is part of the Clemens interface, and it will use that time base so long as the program is running. You should use the time and date format shown in the example above, even if it's not the way you might normally write it, so the program can understand. You can edit the time line just like any other line in the window; it will stop "ticking" whenever you make a change, and will wait until your cursor leaves the time line (use the Return or Down Arrow keys) before it starts ticking again. You should always set the time and date to Universal Coordinated Time (UT or GMT). It's very important that the time and date be set correctly. When a data run is started the current time is recorded as the start time for the first reading, and all later times for the run are computed from the start time. If the current time is set wrong then the time for all the data runs will be wrong. The Clemens interface has an input for a 1 Hz (TTL) synchronizing signal from your observatory clock. If it's hooked up when you edit the clock line, the program will watch for it and set its internal clock to within 1 millisecond of the same time. It's not essential, however, and a careful observer can usually set the time manually to within a small fraction of a second, which is good enough for all but the most exacting time-series photometry. The "~" character at the end of the time display indicates that the 1 Hz synchronizing pulse was not seen; it disappears if electronic synchronization was accomplished. It often happens that you get the clock set precisely, and then find it's ticking away just 1 second too fast or too slow. Should this happen you can put the cursor back on the time line and use the PgUp key to add 1 to the indicated time, or PgDn to subtract 1 from it. Neither key will cause the clock to stop ticking, so if it's off just a few seconds this may be easier than editing the time line. PgUp and PgDn also increment and decrement the date by 1 day whenever the cursor is anywhere on the date line. The date changes when the time runs from 23:59:59 to 0:00:00 or vice versa. The program's calendar understands about leap years, but will be wrong on March 1, 2400. Month abbreviations the program understands: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec The next box in the window lets you record information that identifies the observers, the observing site, and the telescope, photometer and program used to gather the data; they are not checked by the program. ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º Who TMKM º º Where Kavalur º º Telscp 1 meter º º Progrm Quilt9.13 º º Photom ISRO 2-chan º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ Who: initials or name of the observer(s). Where: name of the observatory Telscp: size or name of the telescope used Progrm: name and version of the data acquisition program used. Photom: identification of the photometer used. Other information concerning the observatory, telescope, weather or any other conditions that might be useful in reducing and understanding the data should be kept in a separate log book. Quilt9 may one day contain a "log mode" that will let you use the keyboard to write an observing log, but the wisdom of including one is not clear. It might serve to divert the observer's attention from the data acquisition process, and might do more harm than good. Some method of looking at log entries for a previous night, or previous observing run, would be needed, and could become very complicated. Sometimes the older ways are better than the newer ways. The run parameters that affect how Quilt9 operates are shown in the third window: ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º Run KAV-0040 º º Object V471 Tau º º Drive A º º º º F1 1.000 º º F2 0.000 º º F3 0.000 º º F4 0.000 º º º º Motors 1,3 º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Each run is designated by a name or number, which must be unique, and also is used as the name of the file in which the data are stored on disk, so it must be a filename acceptable to MS-DOS. Thus it may not contain the any of the characters . , " / \ [ ] : * | < > + = ; ? nor may it contain spaces, but characters such as "-" or "$" are OK. One common pattern is shown in the example above: the initials of the observer or observatory followed by a sequence number. The program increments the displayed run name or number whenever the data are written to the disk for the first time. PgUp will also increment it, and PgDn will decrement it. Special characters are left unchanged when this happens, so the name abc-9999 would be incremented to abd-0000. If a second copy is written (of data stored in memory) the same run number is used with ".a" appended, then ".b" for the next copy, etc. The program will not overwrite an existing file, nor will it write two files of the same name on any one disk. The name of the target object can contain any character available, including spaces, and may be up to 19 characters in length. The name is not checked by the program for accuracy; all photons look alike to Quilt9. The drive parameter indicates which of the PC's drives will be used to write the data to disk. If you name two of them, a separate copy of the data will be written on each one, and each will have the same file name. An error message will be displayed if a named drive is not present in your PC; if it is present but not ready to write data you can enter it, but you'll get an error message when you try to write to it (keystroke F9 in RUN mode). No harm is done; just fix it (e.g. put in a formatted floppy disk) and try again. The next four window lines hold the integration times, in seconds, for each of four possible filters. A time of 0.000 tells the program not to use that filter at all, and if only one filter has a non-zero time entered, the filter wheel will not be moved between readings. In this case the interval between readings is very small (about 1 microsecond) so the readings can be considered to be contiguous. Unless color information is specifically needed, the most common way of operating Quilt9 is with filter #1 (F1 above) set to an integration time in integral seconds, and the other three entries left at 0.000. The F1 filter position in the photometer is usually left empty; using it alone yields "white light" time-series photometry. Quilt9 also supports multi-filter operation. The final window line allows you to select the channels (1, 2 or 3) in which you want filters to be changed by the filter-wheel motors. If the channel number is present Quilt9 will try to change the filter position after each integration, starting with the first filter position with a non-zero integration time, and stopping on each filter in sequence where it finds the integration time is non-zero. To avoid complicating things, we'll concentrate on white-light photometry for now, and come back to multi-color photometry later. The F1 function key will cause a help screen to be displayed instead of the setmode window; it can be called up any time you are in set mode, and will remind you of the editor commands. Any key (including F1) will return the normal setmode display. The help screen will tell you, for example, that function keys F2 and F3 will show you (in a subwindow) things of interest if you are taking multicolor data, and that F7 and F8 can be used to read in a data run for display, or to simulate real-time operation even without the presence of a telescope, photometer or a Clemens interface card. The key combination Ctrl-Shift-Esc is the only combination that will stop the Quilt9 program. Ctrl-C or Ctrl-Alt-Del, combinations often used to stop other MS-DOS programs, will not work. All "dangerous" keystrokes and combinations have been trapped so they won't stop a run if you should hit them by accident. Should you ever find one that does, please let me know so I can fix it. When you ask Quilt9 to stop (using Ctrl-Shift-Esc) the program will save your last set of window parameters, along with some internal parameters, in a text file named "Q9.ini". It will read this same file when you start up the program again, so the setmode window should look just the way it did when you last stopped the program, except for the date and time. If Quilt can't find the Q9.ini file it will use built-in default parameters (and tell you it is doing so). When you stop the program, Quilt will write out a new Q9.ini file for you, for future use. If you started up the program from a floppy disk that you later removed, so the program can't find the Q9.ini file when you stop the program, it will ask you to put that disk back so it can update the q9.ini file, and ask you to strike a key to say you've done that. It won't insist, however, and will quietly quit even if you don't. It only writes out a "default" Q9.ini file if it didn't find one when you started the program. TAKING DATA: RUNMODE The key marked "Esc" on your keyboard switches the program between setmode and runmode. It may cause some momentary funny business on your display screen because the program is switching the display card between text and graphics mode, two very different kinds of display, and few PCs do this gracefully. The runmode display shows two lines of text, a large box where the light curves grow, and can show two more text lines below the box. The bottom lines display information or error messages, while the top two lines keep you up to date on what the program is doing. You can go back and forth between setmode and runmode at any time, but remember that the keyboard does different things depending on which mode you are in. Wherever possible, keys have been assigned similar operations in each mode (arrow keys move the cursor around in setmode, and move the light curves around in runmode). The F1 key in runmode calls up a different help screen that lists all of the keystrokes available in runmode and what they do. Most of them deal with how the data are shown on the display. Before you start a run the program is "idling" and will show you, on the second line from the top, the counting rate of any input channels that are connected. If it still shows the dark count rate when you are ready to start, you have probably left a dark slide in somewhere. The displayed count values change once per second. The second line disappears when you start a run. You start a data run with the F10 function key. The program resets itself, clears away any old data it was displaying, and then waits for the next even second to start. It tells you the start time when it begins the first integration. If you use the F10 key a second time, while data are still coming in, the program will remind you of the original start time, but will take no other action. You stop the run with Ctrl-F10. Writing data to disk is not automatic: you must tell the program to start it, using the F9 function key. Once a run is started, and you have satisfied yourself that all is well, you should use F9 to start writing. After a half hour of taking data but not writing it, the program will warn you (once) that you are not recording the data on disk -- maybe that's what you want to do. When writing starts, the character "W" will appear on the top line, and stay there whenever writing is in progress. The data header, with the window information, start time, etc. is written to disk immediately; the data readings may not be, even though they show up as dots on the display screen. The readings are collected internally until there are about 25 of them, then they are written to disk in a block and the file is closed. When another 25 accumulate the file is opened, the block written at its end, and the file is closed again. This action preserves data on the disk in case of power failure during a run -- MS-DOS throws away any data in a file that has been written, but not closed. Should a power failure occur you will lose, at most, the last 25 readings accumulated. When you stop the run with Ctrl-F10 any data remaining in memory are written to disk and the file is closed one last time. Opening and closing the file is safe, but slow, so if you choose an integration time less than 0.100 seconds, the file is not closed after each block, but only when you stop the run. Writing data while running is the recommended way to operate the program, but Quilt9 will not insist you do it that way. After a run has stopped, but while the data are still in memory (still displayed on the screen), F9 will write out whatever data it can find, in a new file. You can make a second copy of the run after stopping if you want to. To save time, the new file is left open when writing while idling, and is closed only when all the data in memory have been written to disk. Quilt9 will modify the file name, to avoid name conflicts, by appending a letter to it. You can write the data to disk any time after you stop the data run, up to the time you start another run with F10. Internal memory can hold 16,383 readings in each channel, but if you collect more than that before you write you will lose the early ones. Quilt 9 displays a warning when it overwrites data not yet written to disk. The file name is automatically incremented whenever a data run is written completely to disk the first time; copies of that run made later will still have the earlier run number and proper window parameters. For example, you can change which drive will be used to write the copy by changing the "drives" line in the setmode window, but all the other window parameters will stay just as they were when the run was accumulated in memory. The program checks the space left on disk each time it writes a block of data, and if there isn't enough left to hold the next block, it will suspend the writing process and display a warning message at the bottom of the runmode screen. You must correct the problem in some way before writing can be resumed. For example, if a floppy disk has become full, just put in a new (formatted) disk and press F9 to resume writing. The run will be recorded in two pieces in this case, with the first piece on the original disk and the rest on the new one. The filename on the new disk will have ".01" appended to the original filename to remind you it is a continuation of the original run; a subsequent piece would have ".02" appended, etc. Each piece will have its own header, and the FC line will show the first and last reading numbers on each piece. Should you also be writing the same run to hard disk, the file on that disk will be all in one piece. While writing is suspended, the writing indicator on the top line will show "W*", and if you return to set mode you will find the cursor on the "drives" window line. You can change the drives selected if you choose, and the new entries will be used when writing is resumed. If a drive fails, for example, you could change to another one. Be careful: if you remove a drive letter that was in use, no more data from the run in progress will be written to it. You can manually suspend the writing process with the key combination Ctrl-F9, if you want to do so, should you want to change the drives in use for any reason. If you resume writing and the original files are still present, the rest of the run will be appended to them. If you start a run and then return to setmode (using Esc), you will find the cursor won't move to any line whose value cannot be safely altered. If you have not started writing, you'll be able to change the site parameters, the run number, the object's name or the drive to use for writing. You won't be able to change the date, the time, the integration times or which motors are active, since these values are already in use. If you have started writing as well, you won't be able to change any of the values, although you can look at them to see what they are. You must suspend writing to change the drive letters, or you must stop the run and start it again if parameters that affect the run are wrong in the window. If an information parameter is wrong you can wait and edit the data header later to correct it, since all data files are written in ASCII text. The runmode data display allows any two light curves to be chosen for display at any one time. For white light photometry any two input channels can have their light curves displayed, and if filters are used, the light curve through a particular filter can be displayed and manipulated independently of the others. By far the majority of the runmode keystrokes are concerned with the data display. The light curves can be moved up or down, and can be magnified or reduced in scale by powers of 2, together or independently. Earlier data that has flowed off the left of the screen can be recalled to view at its original horizontal magnification, or the two light curves can be condensed so both early and more recent data can be seen at the same time. All data points are shown even when the light curves are condensed, except when you are moving them around -- in that case only some of them are shown, to make the motion faster. In multicolor operation, each filter has its own light curve, and you can display any two of them at a time -- including two colors from the same input channel, if you wish. The four arrow keys step the light curves up, down, right and left. If you hold an arrow key down it repeats, so the curves scroll. Both curves are affected with the arrow keys alone, but you can move one curve up or down without moving the other one: use the shift key and an up or down arrow to move Curve A, Alt + arrow to move only curve B. If you "double-click" one of the arrow keys you invoke continuous scolling, which stops when you press the same key again. Scrolling up causes the light curve(s) to move continuously, while scrolling down stops when the Y vertical displacement becomes zero. "Double-clicking" a left or right arrow key invokes continuous scrolling left or right. It will be easier for you to learn these display operations by performing them, rather than reading about them, referring to the runmode help screen whenever you need to. The light curves cannot be moved left or right with respect to each other, since they are "time-locked" by the very nature of the time-series process. You can move them up or down or magnify them independently, or suppress one light curve entirely if you choose. Use the help screen in runmode (function key F1) to remind you of what the different keystrokes do. You can read in a previous run to give you something to work with, and try out the manipulations until you become familiar with them. Experiment; you can't hurt anything. SUSPENDING QUILT WITHOUT STOPPING Sometimes, after you start Quilt, get the clock set, etc. you may want to run another program without having to start Quilt up again. Quilt writes the data into whatever directory you are in when you start it up, and you might want to change to another one, or make a new one. You might have forgotten to format a disk. You might want to check the last run number you used, to be sure the one shown in the setmode window is correct. The F6 function key in setmode will ask you for an MS-DOS (or PCnix) command, and will run that (one) command for you if it is safe to do so, suspending Quilt but not stopping it. There is an internal list of commands known to be safe, and the command you type must be in the list. If it isn't, Quilt will display a list of commands you can use. They include the common ones you might need: cd, mkdir, format, etc. You can run another program even while you are taking data (you must go to set mode first) without losing any, but you must suspend writing first. Quilt will remind you if you forget. SIMULATING A DATA RUN If a previous data run is located where Quilt9 can find it (e.g. in your current MS-DOS directory), and you use the F7 function key in setmode, the window will be filled with the earlier parameters and the data values will be stored in the data buffer, as if you had just stopped taking the data for that run. You can move to runmode (Esc), manipulate the data displayed on the screen, and watch what happens. The F1 key will recall the help screen that shows the various keystroke actions available. Once you are familiar with the runmode display operations, you can arrange to simulate a run, even if your PC has no Clemens interface installed and you are not attached to a photometer. The F8 function key in setmode instructs Quilt9 to read in a data run just as F7 did, but to store the data values in a separate buffer. If you now move to runmode (Esc) the displayed values are those that were there before, but now the incoming count rates are simulated on the second text line displayed. When you start a (simulated) run with F10 the display is cleared and the new data values will appear, one at a time, just as they did at the telescope when the original run was made. The F9 function key will tell the program to start writing data (to a renamed file if need be) -- in fact, the whole Quilt9 program will behave just as if the data were arriving in real time. If you are impatient you can shorten the integration time (in setmode) before starting the simulated run, and the altered integration time will be used for the simulation. This is an excellent way to learn how the program works, without the pressure you would feel if important, real data were coming in rather than a ghost copy of data past. You'll see subtle hints that this simulation isn't real: the setmode time will be labeled "ST" (for simulated time) rather than UT, the characters "SIM" will show on the top display line in runmode, and data written to disk will be headed "Quilt 9 fake" instead of "Quilt 9 data." These changes should help you avoid confusing simulated runs and data with real ones. But with these few exceptions, all of the Quilt9 program operates on the simulated data just as it would if they were arriving from the telescope, via the Clemens interface. MULTI-COLOR OPERATION WITH FILTERS If more than one integration time was set non-zero, then the program will move the filter wheel to each filter in turn that has a non-zero value, and the counting interval between readings will be the time entered. This will not be the total counting time on that filter, however, because it takes some time to move the filter wheel to the next filter position, and the filter motion time is subtracted from the entered time to keep the intervals as requested. If you want to know the true integration time under these conditions, as well as the time taken to move the filter wheel, the F2 key in setmode will show these pairs of values in a sub-window. This information is automatically recorded in the data header, along with the photon counts, for later analysis. The editor will usually allow you to edit only the parameters, not the names that identify the window line you are on. You can, however, change the names of the four filters if you choose, and the new names will be written to disk, along with the other window parameters in the header. To get the cursor to enter the filter name box, first put the cursor on one of the four filter time lines, then hold down the Ctrl key and hit the left arrow key. The cursor will move into the filter name box so you can edit the filter names. Hold down Ctrl and hit the right arrow key to move the cursor out of the filter name box. Quilt9 is designed so it adapts automatically to the number of photometric channels sent to it by the interface, or present in a simulated data run. If the interface has two counters (and can then accomodate at most two input channels) the program can sense this condition and adjust its operation accordingly. At present it sets itself for 1, 2 or 3 channel operation. By convention, channel 1 is usually assigned to the target star, and channel 2 to a monitor star that measures sky transparency. Channel 3, if one is available, is set on a dark patch of sky to measure any changes in sky brightness. On some two-channel photometers, the second channel can be moved to measure alternately the comparison star and the sky brightness. Each of the photometer channels has a filter wheel, but they need not always rotate together. The last line in the setmode window allows you to indicate whether or not the motor in a given channel should be active during your multicolor measurements. If the channel number is present the motor will be driven; if the channel number is absent it will not be changed. If the "Motors" line is blank the motors will not move between integrations, even if more than one integration time is non-zero. When the program first starts up, it assumes all filters are in the F1 positon. The F3 function key will create a sub-window and show you what it thinks the filter positions are: º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º F1 º Filter Positions º º º F2 º Chn1 Chn2 Chn3 º º º F3 º º º º F4 º F1 F3 F1 º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º While this window is shown you can press the "1" key to advance the channel 1 filter motor, the "2" key to advance the channel 2 filter wheel, and so on, to set the filter wheels where you want them to be. You can move them this way whether or not their number appears on the "Motors" line, but if their number is not shown there they will stay where you put them even during multicolor measurement. At the end of a multicolor measurement all the active motors will return to their starting positions. In the example window shown earlier, the motors in channels 1 and 3 will move their filter wheels during multicolor measurements, but the filter wheel in channel 2 will remain where it was initially set. The filter wheels are usually moved by stepping motors, which have a bit of trouble starting up when they are attached to something with inertia, such as a filter wheel. They can step along fairly fast once they get going, however. To minimize the time lost in changing filters, Quilt9 ramps the motors up to speed by using a relatively large interval between the first and second step, a smaller one between the second and third, and so on, until it reaches running speed. It uses the same teachnique to slow down just before it stops. The motors are described to the program by text lines at the end of the Q9.ini file, and the ramp step intervals (in integer milliseconds) are stored there as well. They might look something like this: s/rev1 200 fpos1 4 rmp1 6 5 4 3 0 s/rev2 200 fpos2 4 rmp2 6 5 4 3 0 s/rev3 400 fpos3 8 rmp3 7 6 6 5 5 5 4 4 4 4 3 0 There is a funny character just before and just after the text lines; they are line-feed characters used by Quilt9 to find things in the q9.ini file. They must be there, so if you edit the file please don't remove them. The text words remind you what each following parameter means: s/rev2 means steps per revolution for the stepping motor in channel 2 (200 in the example above), and the second text word reminds you the next parameter is the number of filter wheel positions. Quilt9 is designed to operate with four filter positions in the wheel, but it can be coaxed into using an 8-position wheel if only 4 of the positions are used on a given run. The third text word indicates the stepping ramps follow, which are small non-zero integers indicating the stepping intervals to use (in milliseconds). The final integer in each ramp series must be zero. The ramps are sent to the Clemens interface, which issues the detailed signals to the stepping motors. As shown above for channel 1, the interval between motor steps 1 and 2 will be 6 ms, between steps 2 and 3 will be 5 ms, between steps 3 and 4 will be 4 ms, and then the motor will run at 3 ms per step until just before it stops. The last three intervals will be 4 ms, 5 ms and 6 ms. If you edit the ramps, be sure the longest one has no more than 16 entries, excluding the ending zero. It doesn't matter much what the text words say so long as they are there, in the locations shown. If the number of filter positions (in fpos above) is 8, Quilt9 will use the first, third, fifth and seventh (still calling them F1, F2, F3 and F4) in that order. You can gain access to the other filters (the second, fourth, sixth and eighth) by using the Shift key along with the channel number to advance a filter wheel. In that case it will advance a "half-step" -- to the next actual filter position -- and will call that filter set F5, F6, F7 and F8. You can get back to the original filter set by advancing another "half-step." These commands are ignored for filter wheels with 4 positions. CURRENT PROGRAM LIMITATIONS The current version of the program (Q9.13) is still under development, but it is not likely to change much in the future, as bugs are found and fixed, and error recovery is improved. The program now exhibits all of the capabilities planned for it.