Data Collection Program
Users Guide
Table of Contents
  1. Introduction
  2. Acknowledgements
  3. Usage
  4. Command Macros
  5. List of Commands
  6. Notes
  7. References

Ravi Kochhar
Department of Physiology
University of Wisconsin
Madison, Wi. 53706
Technical Report no. 2
Sep. 3 1987
Rev. 2.07, Jan. 26, 2004
Back to Computing Page

The Data Collection Program (DCP) is a program that runs on the VAX/VMS computer and controls the running of all data collection, and some data analysis, programs.

DCP operates in Command Mode, i.e. it accepts commands from the user and takes appropriate action. Several commands can be grouped together into a "macro" which can then be invoked with a single command.

DCP commands are designed to be logical and English-like. For example, the command "SET XRANGE #1 #2" can be used to specify the range of the X-variable (i.e. from,to values). A list of the presently available commands is attached at the end of this report. The command list is frequently updated as new commands are added.

One of the goals of DCP is to make data collection easier and faster. This is achieved primarily by the use of command macros. The user can, in effect, specify his/her experimental paradigm in advance by constructing appropriate macros, and then, during the experiment, start data collection by invoking these macros from DCP.

DCP includes commands to start other programs. This allows the user to start a series of data collection programs in succession. Available soon will be the facility to start other programs asynchronously, i.e. control returns to DCP immediately upon starting the other program. This will allow, for example, data analysis programs to run in parallel with data collection.

Back to Top


This work was done under the direction of Dr. W.S. Rhode, and also benefited from the comments of the many users of the Physiology Auditory Laboratory. Support provided in part by a Grant from NIH.

Back to Top


The program waits for user input with the following prompt :


Commands may now be entered individually or a macro may be started by entering the "EM" command.

An alternate way of starting DCP (Windows only) is to double-click on a DCP macro (which must have the extension .mcodcp). For example, if you double-click on test1.mcodcp, it will launch DCP and automatically execute the macro.

Back to Top

Command Macros

A series of DCP commands may be combined into a Command Macro and then invoked by simply specifying the macro name in the "EM..." command.

Each macro is contained in a separate file on disc, and the macro name is the same as the file name. Any valid DCP commands can be used within a macro to tailor the macro for individual experimental paradigms. Comments may be inserted within a macro by preceding them with an asterisk (*). Comments may also be inserted anywhere within a comamnd line by preceding them by a double slash (//), Macros may be created and edited using standard text editors (such as EVE or EDT on the VAX). By convention, all macro file names should be given the extension .MCO or .MCODCP

At present there is a limit of 400 records per macro (including comments) and 72 characters per record. It is possible to invoke one macro from within another, thus extending the number of commands possible. Macros may be nested to three levels. This means that if macro A calls macro B, then B can in turn call macro C, and C can call D, but D cannot call any other macro.

Back to Top

Sample Macros

The following sample macros illustrate how DCP commands can be used to tailor experimental paradigms. Note the use of comments inside the macros.

        Single Tone Response Area

              // Single Tone Response Area using DSS-1
              MODE RA
              SET DSS 1
              SET DUR 250     //set duration time to 250 millisecs
              SET REP 500
              SET NREP 5
              SET XNAME FREQ
              SET YNAME SPL
              SET RT 4
              SET FT 4
              // Now set stimulus type
              SET STIM TONE
              // we will enter the Freq and SPL range each time
              FR 9 10 100
              // on-line displays will include Cycle histograms and PSTs
              SET DIS SPKX SPKY PST CH
              SET CH BF FREQ
              MASK @#-%
              NX SEQ
              XP RA 
              FR ALL          //restore all frames for next time

        Noise and Tone Rate Curve

              // This macro will produce noise from
              // DSS-1 and short tone pips from DSS-2
              MODE RA
              SET DSS 1 2
              SET MDSS 1
              SET DUR 800 800
              SET REP 1000 1000
              SET NREP 5 5
              SET XNAME NONE
              SET YNAME SPL
              SET YRANGE 90 110
              SET YINC LIN 10
              SET RT 4 4
              SET FT 4 4
              SET DELAY 0 100000
              // Now set stimulus type
              SET STIM GW TONE
              // Now set fixed parameters for tone
              SET TONE FREQ 1000 1000
              SET TONE SPL 80 80
              SET TONE PHASE 0 0
              // GW storage file and ID
              SET GW GWFIL NOISE.DAT
              SET GW GWID N50K
              SET DIS SPKY ISI PST
              // skip most of the query frames
              FR 100
              MASK @#-%
              NX SEQ
              XP RA            //start program to collect data
              FR ALL

Back to Top


Specify Commands

MODE @@@@@@	        Set program mode. Permitted values are: (30)
                           RA,TH,BC,FF etc...
DIAG ON/OFF             Enable or Disable diagnostic logging (46)
SET EXTYP @@@@  	Specify 4-char experiment type code (15)
SET DSS #1 #2      	DSS numbers to be selected
SET MDSS #           	Set Master DSS number
SET STIM @@1 @@2  	Set stimulus type. @@ can be any one of:
                           CP,GWP,CAM,CNO,SSF,VS,SYN,SHFTGW or MASK (12,18)
SET DUR #1 #2           Set Duration time (millisecs) (4,12)
SET REP #1 #2           Set Repetition time (millisecs) (4,12)
SET NREP #1 #2          Set number of repetitions (4,12)
SET DELAY #1 #2        	Set initial delay (microsecs) (4,12,13)
SET XNAME @@@@@@@@	Name of X-variable (e.g. FREQ) (28)
SET YNAME @@@@@@@@	Name of Y-variable (e.g. SPL) (28)
SET XRANGE #1 #2   	Range (low,high) for X-variable
SET YRANGE #1 #2   	Range (low,high) for Y-variable
SET XINC LOG/LIN #  	X-increment or steps/octave
SET YINC LOG/LIN #   	Y-increment or steps/octave
SET XVRAND Y/N          Randomize X-var order (Y/N) (39)
SET YVRAND Y/N          Randomize Y-var order (Y/N) (39)
SET RT #1 #2            Set Rise time (millisecs) (4,12)
SET FT #1 #2            Set Fall time (millisecs) (4,12)
SET ENV RT @@@1 @@@2	Set Rise Time Envelope shape (12,19)
SET ENV FT @@@1 @@@2 	Set Fall Time Envelope shape (12,19)
SET ISDEL #             Set Inter-Stimulus delay (millisecs) (4,21)
SET IXDEL #             Set Inter-Xvar delay (millisecs) (4,22)
SET TONE FREQ #1 #2	Freq. for pure tone stimulus (4,12)
SET TONE SPL #1 #2  	SPL for pure tone stimulus (4,12,29)
SET TONE PHASE #1 #2	Phase for pure tone stim. (4,12,14)
SET GW GWFIL @@@1 @@@2	Files containing waveforms for GW paradigm (12)
SET GW GWID @@@1 @@@2	DSID's of waveforms for GW (12)
SET GW SPL #1 #2      	SPL for general waveform stimulus (4,12,29)
SET GW UNFROZ @1 @2	"Unfrozen Noise" option of GW (12)
SET GW ESPL @1 @2	"Effective SPL computation" for GW (12,32)
SET GW CWIN #1 #2 [#3 #4]  Window for eff. SPL computation (12,33)
SET GW FLAT @1 @2	"Flatten waveform with Calibration" for GW (12,42)
SET GW FILT @1 @2	"Filter Type" for GW (12,43)
SET FILT KLATT CF @1 @2 "CF" for Klatt Filter (4,12,44)
SET FILT KLATT BW @1 @2 Band-width for Klatt Filter (4,12,44)
SET AM SPL #1 #2    	SPL for Amplitude Modulated stim. (4,12,29)
SET AM FCARR #1 #2  	Carrier freq for AM stimulus (4,12)
SET AM FMOD #1 #2    	Modulation freq for AM stimulus (4,12)
SET AM DMOD #1 #2   	Modulation depth for AM stimulus (4,12,31)
SET AM PHASE #1 #2  	Initial phase of carrier freq for AM (4,12,14)
SET AM PHASM #1 #2  	Initial phase of mod. freq for AM (4,12,14)
SET MASK DEL2 #1 #2	Delay-2 setting of Masked stimulus (4,12,24)
SET MASK DUR2 #1 #2	Duration-2 setting of Masked stim. (4,12,25)
SET MASK TONLVL #1 #2	Tone-level (dB) for Masked Stimulus (4,12,26)
SET MASK GWLVL #1 #2	GW-level (dB) for MASK stim (4,12,26)
SET MASK FREQ #1 #2 	Tone freq. for Masked stimulus paradigm (Hz) (4,12)
SET MASK ESPL @1 @2	"Effective SPL computation" for GW stim for mask (12,32)
SET MASK GWFIL @@1 @@2	GW storage files for MASK stim (12)
SET MASK GWID @@1 @@2	GW data set ID's for MASK stim (12)
SET MASK MSTIM @@1 @@2	Masking Stimulus type (TONE/GW) (12,27)
SET MASK PHASE #1 #2	Initial phase of tone for MASK stim (4,12,14)
SET GWAM FMOD #1 #2	Modulation Frequency for GEWAB-AM stimulus (4,12)
SET GWAM PHASM #1 #2	Modul phase for GEWAB-AM stim (4,12,14)
SET GWAM DMOD #1 #2	Modul depth for GEWAB-AM stim (4,12,31)
SET GWAM SPL #1 #2	SPL for GEWAB-AM stimulus (4,12,29)
SET GWAM GWFIL @@1 @@2	GW file names for GEWAB-AM stiimulus (12)
SET GWAM GWID @@1 @@2	GW DSID's for GEWAB-AM stim (12)
SET SHFTGW UNP #1 #2	Set Percent step size for Unfrozen Shifted-GEWAB (12)
SET SHFTGW ITD1 @@1	Set slave ITD1 for Shifted-GEWAB (microsec) (12)
SET SHFTGW ITD2 @@1	Set slave ITD2 for Shifted-GEWAB (microsec) (12)
SET VS CNODE @@1 @@2    Remote Computer node name for VS stim. (e.g. MVF) (12)
SET VS HRTF @@1 @@2     HRTF file name for VS (on remote node) (12)
SET VS TYPE @@1 @@2     Stimulus Type for VS (CLICK or GW) (12)
SET VS GWFIL @@1 @@2    GW file name for VS (on remote node) (12)
SET VS GWID @@1 @@2     GW dataset ID for VS (in remote GW file) (12)
SET VS AZIM @@1 @@2     Fixed Azimuth for VS (in degrees) (12)
SET VS ELEV @@1 @@2     Fixed Elevation for VS (in degrees) (12)
SET VS SPL @@1 @@2      Fixed SPL for VS (dB) (12)
SET EXSTIM #x #y #x #y...  Specify Stim points to be excluded (45)
			One or more on-line display types (16)
			Binning Freq. for on-line cycle-histogram (17)
			Binning Freq. for on-line sync. display (17)
SET TBASE #             Set UET time base (microsecs)
SET SPIK CHAN #1 #2 ..  Set UET Spike channel numbers to sample (41)
SET DTYP UET/AD/SORT	Set data type to be collected
SET HARDCOPY ON/OFF	Set option for automatic hardcopy plots (38)
FR ALL                  Select all query frames (10)
FR NONE                 No frames to be selected (10)
FR #1 #2 .... #n        Select specified frames (10)

Back to Top

Other Commands

RUN @@@@@@@@	        Run specified program (5)
XP @@@@@@@@   	        Execute program with specified name (34)
XC @@@....@@@       	Execute specified DCL command. (6)
EM @@@....@@@      	Execute specified macro. (2,3,11)
GO @@@                  Branch to specified record in macro
RETURN                  Return from macro, or Exit.
ID @@@...@@@        	Specify Data set ID (upto 12 characters) (7)
MASK @@@...@@@  	Specify ID mask (8,9)
NX UNIT                 Specify ID for next Unit number (7,8)
NX SEQ                  Specify ID for next Sequence number (7,8)
REC [@@..@@]       	Recover specified data set from file (20)
DATA SAVE/NOSAVE	Save (or Not Save) data in file (23)
V# #                    Set variable value (35)
C# @@@...@@@     	Set character variable value (35)
V#1 @ V#2           	Replace V#1 using arithmetic computation
                        (@ can be any one of +, -, *, /) (36)
CLOSE PSF        	Close parameter storage file (37)
GV V#/C#/S#/A#  @@..@@ [ERR=#]	Get value of specified 	
				variable and store in specified 	
				variable. Optionally branch to record 
				# in macro on error condition (40)
HELP                  	List all available commands

Back to Top

Terminate Commands

EXIT                    Exit from DCP
QUIT                    Same as Exit.

     Note : The numbers after the command description above refer to the 
     numbers of the notes on the next page providing more detailed 
     explanation of these commands.

Back to Top


(1) Most command words may be shortened to 2 letters. For example, the following commands are equivalent :

                        SET XINC LOG #
                        SET XINCREMENT LOGSCALE #
                        SE XI LO #

     In a few cases, three or four letters may be required.

(2) Each Macro may contain upto 400 records. Records starting with * or // are treated as comments and ignored by DCP. In addition, anything after a double-slash (//) within a command line is also treated as a comment and ignored.

(3) Macros may be nested to two levels, i.e. if Macro B is called by Macro A, then B can call Macro C but C cannot call another macro.

Back to List of Commands

(4) The values in this command can be specified either as numbers or as algebraic expressions. For example,

                     SET DUR 100 200
                     SET DUR 100 DUR*2
                     SET REP DUR*4 REPINT

In the first example, the duration for the master DSS is set to 100 millisecs and the duration for the slave DSS is set the 200 millisecs. In the second example the same result is achieved by specifying the duration of the slave to be twice that of the master. In the third example, we see how the repetition interval of the slave and master are each set equal to 4 times the duration of the master DSS.

Any expression (upto 32 chars in length) may be used, as long as it follows the rules of FORTRAN for legality and precedence. The FORTRAN functions SIN, COS, TAN, SQRT, LOG may be included in the expression. Of course, the variables used in the expression (e.g. DUR above) must follow a standard naming convention. The following is a list of currently permitted variable names :

                  FREQ      : Carrier (or pure tone) frequency (Hz)
                  FCARR     : same as FREQ
                  SPL       : Sound Intensity (dB)
                  DELAY     : Initial delay in microsecs
                  MDELAY    : Same as DELAY
                  DELM      : Same as DELAY
                  NREP      : Number of repetitions
                  NREPS     : Number of repetitions
                  RTIME     : Rise time (millisecs)
                  FTIME     : Fall time (millisecs)
                  PHASE     : Phase of carrier freq. (0 to 1)
                  PHASM     : Phase of modulating freq. (0 to 1)
                  PHASEM    : Same as PHASM
                  FMOD      : Modulating frequency (Hz)
                  DMOD      : Modulation depth (0 to 1)
                  TONLVL    : Tone level for MASK stim (0 to 1)
                  GWLVL     : GW level for MASK stim (0 to 1)
                  DSSN      : Current DSS number (1 or 2)
                  STMDUR    : Stimulus duration (millisecs)
                  DUR1      : Same as STMDUR
                  DUR       : Same as STMDUR
                  REPINT    : Repetition interval (millisecs)
                  DELAY2    : Masked stimulus delay (microsecs)
                  DUR2      : Masked stimulus duration (millisecs)
                  FRLOW     : Low frequency (Hz) (for FM)
                  FRHIGH    : High frequency (Hz) (for FM)
                  FMRISE    : Rise time for FM sweep (seconds)
                  FMDWELL   : Dwell (hold) time for FM sweep (seconds)
                  FMFALL    : Fall time for FM sweep (seconds)
                  ATNSET    : Attenuator setting (dB)
                  GWDS      : Data set number of GW waveform

The above list is in the process of being expanded.

Each of these variable names can be specified for either the master or slave DSS by appending #M or #S to them. For example, SPL#M means the SPL of the master DSS, while SPL#S is for the slave. No extension means master DSS. Thus SPL and SPL#M mean the same thing. These extensions have meaning only for two-DSS experiments.

The ability to specify expressions for values can be used to set up new types of experiments. For example :

                  SET TON FREQ 100 FREQ+10

In this example, if we vary the frequency of the Master DSS, the frequency of the slave DSS will also vary, and at each point be 10 Hz greater than the frequency of the master.

(5) Any program may be started with the "RUN ..." command. However, only certain data collection and analysis programs will return control to DCP when done. Other programs may exit directly to VMS. If you want those programs to also return you to DCP when done then use the "XC RUN ..." command.

(6) The "XC ..." command can be used to start any DCL command from within DCP. For example, you can use "XC DIR" to check the files in your current directory, and "XC SHOW USERS" can be used to check who is logged in. Control always returns to DCP when the command is done.

(7) If you use the "ID ..", "NX UNIT" or "NX SEQ" command before starting a data collection program, then that program will not query you for the Data Set ID but will instead use the ID specified in DCP.

(8) Before using the "NX UNIT" or "NX SEQ" commands you must specify the format of the Data Set ID by giving the "MASK ..." command.

(9) The DSID mask is specified as a wild card. In the mask, @ stands for "any character", # stands for Unit number, and % stands for Sequence number. Examples of DSID masks are :

                   Data Set ID           Mask

                    U1-1                 @#-%
                    2-13                 #-%
                    3-22-NDC             #-%-@@@

Back to List of Commands

(10) The "FRAME ..." commands are used to select which query frames will be displayed by the Data Collection programs. The Frame Numbers are determined by running the particular data collection program and noting the numbers which are displayed in the lower left hand corner of each frame display. These commands are useful in "tailoring" data collection programs so that variables whose values are specified by DCP commands or do not change for other reasons do not need to appear in query frames, saving time.

(11) Macro names are the same as the file names which contain the macros. Thus a macro name is any valid file name. By convention, macro files should be named with the extension .MCO If no file extension is included with the "EM..." command, then DCP will assume .MCO.

The following commands are equivalent :

                     EM TEST.MCO
                     EM TEST    

Back to List of Commands

(12) In commands where two values are specified on the same line, the first value is for the Master DSS and the second value is for the Slave DSS. For example :

                     SET DUR 100 200

sets the duration timer for the Master DSS to 100 millisecs and the duration timer for the Slave DSS to 200 millisecs.

If the second value is omitted then the first value is used to set the Master DSS, leaving the Slave DSS unchanged.

Back to List of Commands

(13) Note that initial delay is specified in microsecs, most other time values are in millisecs.

Back to List of Commands

(14) Phase values are specified in the range 0 to 1.0 (i.e. as fraction of a cycle).

Back to List of Commands

(15) The experiment type-code can be any 4-char combination. It's main function is to allow the user to keep track of different experimental paradigms after the fact. For example, the program EDITDF displays the experiment-type with each data set. With the analysis program, RAP, one can use the GV command to test the value of the experiment-type and do appropriate analyses.

Now that the experiment-type can be set by the user to anything he/she wishes, it is also the user's responsibility to make a note of what the different experiment types mean.

Back to List of Commands

(16) Upto six separate types of plots can be displayed on-line on the graphics screen during data collection. The choices are the following :

             SPKX      : Spike rate vs. X-variable (response area)
             SPKY      : Spike rate vs. Y-variable (rate curve)
             PST       : Post Stimulus histogram
             ISI       : Inter-spike interval histogram
             CH        : Cycle Histogram
             DOT       : Latency Dot display
             SYNX      : Sync. coeff. vs. X-variable
             SYNY      : Sync. coeff. vs. Y-variable
             ANALOG  : Analog data (from A/D converter)

The user may enable any number of display types (upto 6) from the above list. Note that CH (the cycle histogram display) may count for more than one display depending on the number of binning frequencies selected (see note # 17 below).

More display types may be added later.

Back to List of Commands

(17) For Cycle Histogram and Sync. coeff. displays, the user may select upto four binning frequencies (each). If more than one binning freq. if selected for cycle histograms, then the two or more cycle histograms are displayed as two or more separate plots on the graphics terminal. In that case you must count the CH as more than one display when selecting displays with the "SET DIS" command. The present options for binning freq. are :

              FREQ       : Current frequency for pure tones
              FMOD       : Modulation frequency (for AM)
              FCARR      : Carrier frequency (for AM)
              FIX        : Fixed frequency which is specified
              FC+FM      : Carrier freq + Modulation freq (for AM)
              FC-FM      : Carrier freq - Modulation freq (for AM)
              AFREQ      : Adapter freq (for SSF)
              TFREQ      : Target freq (for SSF)

More choices for binning freq. will be available soon.

Back to List of Commands

(18) The "stimulus type" can be specified as either MASK or MSK when selecting the Masked Stimulus paradigm.

Back to List of Commands

(19) The presently available rise/fall envelope shapes are :

              TRAP      : Trapezoid (Ramp)
              GAUSS     : Gaussian curve
              GAUS      : Same as GAUSS
              COSINE    : Raised Cosine
              COS       : Same as COSINE

More options will be added later.

Note that some stimulus paradigms do not allow for envelope shapes other than TRAP. For example, the AM option will use a Trapezoidal Rise/Fall envelope no matter what is specified in DCP. At present, the following stimulus types will support envelopes other than TRAP :

                   Tone Pips
                   Triangle-modulated Sine
                   Sine-modulated Sine
Check with your local system manager for more details.

(20) DCP will try to recover the most recently collected data set from the current data file and make an entry for it in the directory. This command is typically used after data collection aborts due to whatever reason (abort, system halt etc.), and the user wishes to recover the partially collected data upto that point. It is necessary to run DCP immediately after data collection is aborted, i.e. before any new data is collected.

Note that the REC command may fail to work under certain circumstances, and in others it may recover only partial data.

If no DSID is specified with REC then it simply looks for the most recent data set.

Back to List of Commands

(21) The Inter-Stimulus delay is an interval that is added between the presentation of every stimulus point (i.e. between every series of repetitions). No stimulus is presented during this interval. It is typically used to allow the unit to recover from the previous series of repetitions.

Note that the actual gap between stimulus points will always be somewhat larger than ISDEL because there are delays associated with loading the DSS with new parameters, setting attenuators etc.

Back to List of Commands

(22) The Inter-Xvar delay is an interval that is added at the start of each new X-variable setting. No stimulus is presented during this interval. For example, we our X-variable is FREQ and Y-variable is SPL, the IXDEL will be inserted at the end of each series of SPL presentations, i.e. before starting the next FREQ. It is typically used to allow the unit to recover from the previous series of SPL presentations, especially if the SPL is being varied from low to high.

The actual gap between new X-var presentations will always be somewhat larger than IXDEL because there are delays associated with loading the DSS with new parameters, setting attenuators etc.

Note the important difference between IXDEL and ISDEL.

(23) If the "DATA NOSAVE" command is given then the data collected in the next data collection run will not be saved in the data file. Default is "DATA SAVE".

This command is effective for only one run of the data collection program, after which it automatically reverts to the default setting of SAVE.

This command should be used infrequently and only after understanding its implications. Its main application is in cases where it is desired to run data collection in a search mode to explore a units response.

(24) DEL2 is the delay (in microsecs) between the start of the masking stimulus (e.g. GW noise) and the start of the masked stimulus (e.g. Tone). The value of DEL2 should always be non-negative. If it is desired to reverse the onset order of the Tone and GW, use the "SET MASK MSTIM ..." command.

(25) DUR2 is the duration of the masked stimulus (whether Tone or GW) in millisecs. The duration of the masking stimulus is specified by the "SET DUR .." command.

(26) TONLVL and GWLVL are specified in units of dB SPL. Note that the max SPL possible for either Tome or GW is 6 dB less than would be possible if either were presented alone. This is because we are presenting both from the same DSS channel in the MASK stim. mode.

(27) The value can be either TONE or GW to specify which of the components of a Mask Stim. waveform is the masking stimulus. If MSTIM is set to GW (the usual case), then the GW stimulus will be the masking stimulus and come on before the Tone.

Back to List of Commands

(28) The name of the X-variable or Y-variable can be upto 8 characters long. The list of possible variable names is as follows :

         FREQ        : Tone frequency (Hz)
         SPL         : Sound pressure level or Intensity (dB)
         DELAY       : Inter-aural delay (microsecs)
         PHASE       : Initial phase of tone or Carrier frequency(0-1)
         FCARR       : Carrier frequency (Hz)
         FMOD        : Modulation frequency (Hz)
         PHASM       : Initial phase of modulating tone (0 to 1)
         DMOD        : Depth of Modulation (0 to 1)
         TONLVL      : Tone level for Masking Stimulus paradigm
         GWLVL       : GW level for Masking Stimulus paradigm
         DELAY2      : Masked stimulus delay (microsecs)
         DUR2        : Masked stimulus duration (millisecs)
         REPINT      : Repetition interval (millisecs)
         STMDUR      : Stimulus duration (millisecs)
         RTIME       : Rise Time (millisecs)
         FTIME       : Fall Time (millisecs)
         GWRES       : GW playback resolution (microsecs)
         ICD         : Inter-click delay (millisecs)
         ITD1        : Inter-aural delay between first pair (microsecs)
         ITD2        : Inter-aural delay between second pair (microsecs)
         DSNUM       : Data set number
         ELEVTN      : Elevation (degrees)
         AZIMTH      : Azimuth (degrees)
         NOTCHCF     : Notch CF (Hz)
         NOTCHDEP    : Notch Depth (dB)
         PHASLSB     : Phase of lower side-band (0 to 1)
         PHASUSB     : Phase of upper side-band (0 to 1)
         CF          : Center Frequency (Hz)
         CF2         : Center Frequency of 2nd band (Hz)
         BW2         : Band-width of 2nd band (Hz)
         FMOD2       : Modulation frequency for 2nd band (Hz)
         PHASM2      : Phase of Modulation freq. for 2nd band (0 to 1)
         DMOD2       : Modulation depth for second band (0 to 1)
         BAND2LVL    : Level of 2nd Band (dB up from 1st Band)
         ITRATE      : ITD rate (microsecs per second)
         RMULT       : CF Ratio Multiplier (for 2-band noise)
         ASPL        : Adapter SPL (dB)
         TSPL        : Target SPL (dB)
         NONE        : None (do not vary)

Not all variables are appropriate for all stimulus types. For example, varying FMOD is not meaningful if presenting a pure tone stimulus.

Any of the variable names can be extended by specifying which DSS it is to be varied on. For example, to vary the SPL on the slave DSS, we can use SPL#S as the variable name, and to vary the modulation depth on the master DSS we can use DMOD#M. This only applies for two-DSS experiments.

By dafault, if no extension is specified for the variable name, the variable is assumed to apply to the master DSS. Thus in the above example, DMOD#M is the same as DMOD.

Back to List of Commands

(29) The units of SPL are in dB. It is controlled in the DSS by setting the attenuators after correcting on-line for the calibration curve generated at the beginning of each experiment.

Back to List of Commands

(30) The MODE command is usually the first one given. It is required to be given before many of the SET commands. For example, if the "SET DUR .." command is given after the "MODE RA" command it has a different meaning than if given after the "MODE TH" command.

(31) The units of Depth of Modulation (DMOD) are expressed as a ratio between 0.0 and 2.0, with 0.0 being no modulation (0 %), 1.0 being 100 % modulation and greater than 1.0 being "overmodulation".

(32) The "SET GW ESPL @1 @2" command specified whether the data collection program should do an "effective SPL" computation for setting attenuators. @1 and @2 can be either Y or N. "Y" means yes, use the effective SPL computation, "N" means no, do not compute an effective SPL and instead use 127 dB attenuation to mean 0 dB SPL.

The "effective SPL" is computed by summing energies for each frequency band after correcting for the current calibration. This option does not modify the waveform itself in any way.

(33) The "SET GW CWIN #1 #2 #3 #4" command can be used to specify a window (in millisecs) over which the "effective SPL" is computed.

#1 and #2 are for the master DSS, and #3 and #4 are for the slave DSS.

This command is optional, if it is not used then by default the entire waveform is used.

(34) The "XP ..." command is similar to the "RUN ..." command except that with XP, the data collection program that is initiated stays in memory as long as DCP is in memory. This results in much faster execution the next time that program is started with "XP ...".

The "XP ..." command should be used wherever possible instead of "RUN ...".

Back to List of Commands

(36) The "V#1 @ V#2" command can be used to do simple arithmetic manipulations on variables. For example, "V1 + V2" will result in the value of V1 getting replaced by the sam of V1 and V2. V2 will remain unchanged.

There must be a space on each side of the operator (+,-,* or /), and V2 can be a numeric constant ad well as a variable. For example, "V1 / 2.5" will cause V1 to be replaced by V1 divided by 2.5.

(37) This command is needed infrequently to close the PSF (parameter storage file) when it is needed by other programs that need to run at the same time as DCP.

The PSF is a file on disc that holds all parameters specified by any of the DCP commands. The PSF is re-opened by DCP automatically as needed, so there is no "open PSF" command.

Back to List of Commands

(38) If the "SET HARDCOPY ..." option is set to "ON", then certain on-line plots (e.g. the tuning curve) will be plotted automatically on the laser printer after each data collection.

Back to List of Commands

(39) The "SET XVRAND @" and "SET YVRAND @" commands are used to specify whether the X oy Y-vars are to be presented in random order during data collection. The value of @ can be Y or N. Note that if both variables are being varied, then any one (or both, or neither) can be specified to be in random order.

Back to List of Commands

(40) Values for the following variables can be obtained with the GV command :

	SERCF1	: Estimated CF from recent SER for first UET channel
	SERCF2	: Estimated CF from recent SER for second UET channel
	DSID	: Data set ID of current data set (char)
	FNAME	: Name of current data file (char)

Most variables are returned as a numeric (floating point) value except for those which are marked as "char" or "vector" above.

Back to List of Commands

(41) The "SET SPIKE CHAN ..." command can be used to specifiy that more than one channel of the UET should be sampled and recorded simultaneously. For example:

        SET SPIK CHAN 0 1 4      (Sample channels 0,1 and 4)
        SET SPIK CHAN 7 5 0 1    (Sample channels 0,1,5 and 7)
        SET SPIK CHAN 0          (Sample channel 0 only)
        SET SPIK CHAN 1          (Sample channel 1 only)

The default is "set spik chan 0" (i.e. channel 0 of the UET). The current UET (Unit Event Timer) has sixteen input channels, numbered 0 to 15. Channels 2,3 and 6 have special pre-assigned uses and cannot be used for spike time recordings. Thus a max of 13 separate channels can be used for multi-unit data recording.

Back to List of Commands

(42) The "SET GW FLAT ..." command determines whether general waveforms will (or will not) be flattened for the acoustic calibration just before playback by the the data collection program. If the option is set to Y (for Yes), then the data coll. program (e.g. RA) will flatten the waveform just before playback as needed, in near real-time. If set to N, then no flattening is done, and the waveform is played out unmodified. The flattening is done in the frequency domain, using the same technique as used by the GWE program.

If the value for this option is specified as A (for Amplitude) then only Amplitude correction is done, if it is specified as P (for Phase) then only Phase correction is done, and if it is specified as Y (for Yes) then both Amplitude and Phase are corrected.

Back to List of Commands

(43) It is possible to filter a General Waveform stimulus before it is presented during data collection. This filtering is done "on the fly" and does not modify the saved copy of the GW stimulus on disk. The "SET GW FILT..." command can be used to specify the filter type (or NONE if no filter is wanted).

The presently available choices for filter type are KLATT or NONE. For example, the command:

means that both the master and slave DSS stimuli will be filtered using the Klatt filter. (You should also specify the Klatt filter CF and BW using the SET FILT KLATT... commands).

The Klatt Filter is defined as follows:


The following figure explains this filter. Click on the picture for a larger view.

click to enlarge

(reproduced from: Dennis Klatt (1980) "Software for a format synthesizer", J. Acoust. Soc. Am., Vol. 67, No. 3, March 1980.)

Back to List of Commands

(44) Parameters for the Klatt Filter (see note 43 above) can be specified with the "SET FILT KLATT CF..." and "SET FILT KLATT BW..." commands, where the center frequency and band width are specified in Hz.

Back to List of Commands

(45) Upto ten stimulus points can be excluded during data collection by use if the "SET EXSTIM #x #y #x #y....." command. The points to be excluded are specified as pairs of X-var and Y-var values. For example:

       SET EXSTIM 1000 20 2000 30

In this case the stimulus points where X (e.g. freq) equals 1000 and Y (e.g. SPL) equals 30 will be skipped during data collection. Upto a max of 10 stimulus points can be excluded at a time.

For cases where there is only RA variable (e.g. a rate curve where we may only vary the SPL), the stim. points to be excluded must still be specified as pairs, except that the Y-value will be ignored in that case and should be specified as zero or a negative one. For example:

       SET EXSTIM 50 -1 60 -1

The "SET EXSTIM ..." is special in one way - it is cancelled automaticaly by the RA program after each run. Thus, if we used:

       SET EXSTIM 2000 30
       XP RA                     // Point (2000,30) will be excluded
       XP RA                     // Nothing will be excluded

then in the first run of the RA program the point (2000,30) will be excluded, but in the second run it will not be. To make sure that points are excluded for each run of RA in the above case, we would have to use:

       SET EXSTIM 2000 30
       XP RA                     // Point (2000,30) will be excluded
       SET EXSTIM 2000 30
       XP RA                     // Point (2000,30) will be excluded

Back to List of Commands

(46) The "DIAG ON" command is used to enable logging to a log file. The log file is named DIAG_DCP.TXT and is created in the c:\temp folder. If the c:\temp folder does not exist then the log file is not created. The main purpose of logging is to assist in tracking errors in the program. The log file is an ascii text file and can be examined by any text editor, such as Notepad.

The "DIAG ON" command also enables logging in any program started by DCP, such as RA. The RA log file will be named DIAG_RA.TXT and will also be in c:\temp.

Logging is disabled by default when DCP starts. It can also be disabled at anytime with the "DIAG OFF" command.

The "DIAG ..." command is available in the Windows version only.

Back to List of Commands
Back to Top


  1. "RA - Response Area Data Collection" , Tech. Report # 3, R. Kochhar, Oct. 1996.

Back to Top

If you have questions or suggestions about this document, please send them by e-mail to kochhar@physiology.wisc.edu

Return to Computing Page
Back to The Basement
This page last modified on : Jan. 26, 2004