

                             Warble / Pulse Commands
                                    05/02/97 -med

        Warning: These commands are specific to the FA10 series 
        audiometers. They may change in the future.

        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Warble Table                                           *** 16 
        --------
         1010 H            The number 16 + 1000H
         0001 H            One data word follows
         nnnn              Table number (0=left, 1=right)
         zzzz              Inverted checksum

        Response
        --------
         9010 H            The number -28656
         cccc              Size of message (variable)
         nnnn              Table number (0=left, 1=right)
         eeee              Number of entries in warble data
         xxxx              Warble data
         ....
         zzzz              Inverted checksum

        This command returns the contents of the warble control table. 
        The warble table can be variable in size. Any calling program 
        should allow for the variance. The maximum possible size is 123 
        words (246 bytes). Each warble entry consists of two bytes, an 
        octave number (low byte) followed by a tone number (high byte). 
        This is provided primarily as a diagnostic tool, and is not 
        intended for general purpose operation. The format and operation 
        of the warble table may change in future instruments.

        The warble table numbers are feed directly into the SAA1099 sound 
        generator. This is provided primarily as a diagnostic tool, and 
        is not intended for general purpose operation. The format and 
        operation of the warble table may change in future instruments.

        Equations used to compute tone and octave numbers are as follows:

                                       (octave number)
                              36000 * 2
        Frequency in Hertz = -------------------------  
                                511 - tone number 
        or:
                                       (octave number) 
                              36000 * 2 
        Tone number = 511 -  -----------------------
                                Frequency in Hertz

        *** Warning: This command may change in the future ***




                                        1


        ----------------------------------------------------------------- 
        Set Warble Table                                           *** 17
        --------
         1011 H            The number 17 + 1000H
         cccc              Size of message (variable)
         nnnn              Table number (0=left, 1=right)
         eeee              Number of entries in Warble data
         xxxx              Warble data 
         ....
         zzzz              Inverted checksum

        This command allows you to change the contents of the warble 
        control table. The warble table can be variable in size. The 
        maximum possible size is 124 words (246 bytes). Minimum size is 
        one (two bytes). 

        Each warble entry consists of two bytes, an octave number (low 
        byte) followed by a tone number (high byte). The Octave must be a 
        number between 0 and 7. The numbers are feed directly into the 
        SAA1099 sound generator. This is provided primarily as a 
        diagnostic tool, and is not intended for general purpose 
        operation. The format and operation of the warble table may 
        change in future instruments.

        The equations used to compute the tone and octave numbers are as 
        follows:
                                        (octave number)
                              36000 * 2^
        Frequency in Hertz = -------------------------  
                                511 - tone number 

        or:
                                        (octave number) 
                              36000 * 2^
        Tone number = 511 -  -----------------------
                                Frequency in Hertz




















                                        2


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Warble/Pulse Control Registers                          ** 18
        --------
         1012 H            The number 18 + 1000H
         0000 H            No data sent
         EFED H            Inverted checksum

        Response
        --------
         9012 H            The number -28654
         0007 H            Seven data words follow
         xxxx              Warble/Pulse control register data
         ....
         zzzz              Inverted checksum

        This command allows you to read the current pulse and warble 
        control parameters in the audiometer. 

             Register  Index  Description
             PONTIM    [0]    ;normal pulse on time 
             POFTIM    [1]    ;normal pulse off time
             LWBCNT    [2]    ;Left Warble step count
             LWBDEV    [3]    ;Left Warble frequency deviation 
             RWBCNT    [4]    ;Right Warble step count 
             RWBDEV    [5]    ;Right Warble frequency deviation 
             ABLBLT    [6]    ;Left ABLB/MLB pulse off time
             ABLBRT    [7]    ;Right ABLB/MLB pulse off time
             SONTIM    [8]    ;SISI pulse on time
             SOFTIM    [9]    ;SISI pulse off time

        PONTIM, POFTIM: The pulse mode on and off time is controlled by 
        these registers. The pulse on time is controlled by PONTIM, and 
        the off time is controlled by POFTIM. The time is in 8ms 
        increments. The default value used is 25 (200ms on and 200ms) 
        off. The minimum allowed value is 6 (48ms). The maximum allowed 
        value is 7500 (60sec).

        LWBCNT, RWBCNT: The number of warble steps that will used during 
        warbling is controlled by these registers. Care must be used when 
        changing these registers to insure that the proper warble 
        frequencies (deviation) and step count will be used. 

        The warble count must be an even number to insure a balanced 
        warble around the center frequency. If an odd number is given it 
        will be truncated to the next lower number. i.e. if a warble 
        count of 25 is given, the actual warble count will become 24. 
        There is no error given, it is simply converted to the lower 
        number. 

        The warble count should be an even number and must be in the 
        range of 2 to 60. Each warble step takes 8mS to complete (this is 
        a fixed value). That gives a possible warble rate of 16mS to 1 
        second. The default (power on) warble step count is 24 (192mS).


                                        3


        LWBDEV, RWBDEV: The warble deviation is controlled by these 
        registers. The warble deviation can be up to +-5% within the 
        limits of the filters inside the audiometer. The value given is 
        the reciprocal (1/x) of the percentage of warble deviation 
        desired. The deviation is given as a +- value around the chosen 
        center frequency. If a deviation of +-5% around the center 
        frequency is given, the total deviation would be 10%.

        The minimum deviation allowed is 10 (+-10%). The maximum 
        deviation allowed is 250 (0.4%). Warning, the audiometer pure 
        tone filters are designed for a maximum flatness of +-5% warble. 
        It is not recommended that you exceed the +-5% warble since the 
        warble will no longer be flat.  

        Examples: +-5% warble deviation would be a value of 20. +-1% 
        deviation would be a value of 100. Minimum warble deviation 
        allowed is +-0.4%. Additionally, care must be used to insure 
        that the warble deviation is not smaller than 1Hz per warble step 
        (see LWBCNT, RWBCNT). The minimum warble resolution is 1Hz. If 
        the table entries are smaller than 1Hz, the warble resolution may 
        be reduced which may cause audible side effects in the warble 
        output. The Default warble deviation is 20 (+-5%). 

        ABLBLT, ABLBRT: If the audiometer has the ABLB and/or MLB option 
        installed, the ABLBLT register will control the Left Channel 
        ABLB/MLB on time, and the ABLBRT register will control the right 
        channel ABLB/MLB on time. The time is given in 8mS increments. 
        Thus setting ABLBLT to 125 would result in an on time of one 
        second in the left channel when the ABLB or MBL option is enabled 
        and the pulse toggle is on. The minimum allowed on time is 6 
        (48ms). The maximum allowed on time is 250 (2 sec). The Default 
        ABLB/MLB on and off times is 63 (504ms).

        SONTIM, SOFTIM: If the audiometer has the SISI option installed, 
        the SONTIM register will control the on time of the SISI option 
        level increment, and the SOFTIM register will control the off 
        time of the SISI option level increment. The time is given in 8mS 
        increments. Thus setting SONTIM to 125 would result in a level 
        increment on time of one second. The minimum SISI on/off time is 
        6 (48ms). The maximum allowed on/off time is 7500 (60 sec). The 
        default on time is 25 (200ms). The default off time is 600 
        (4.8 sec).

        Special note: The Warble and Pulse generation is specific to the 
        FA1x series audiometer. It can and may change in future models. 
        Especially the warble function which is dependent upon the 
        SAA1099 sound generator. Future audiometers will most likely use 
        a different (more flexible) sound generator chip. 








                                        4


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Warble/Pulse Control Registers                          ** 19
        --------
         1013 H            The number 19 + 1000H
         000A H            Ten data words sent
         xxxx              Warble/Pulse control register data 
         ....
         zzzz              Inverted checksum

        This command allows you to change the pulse and warble control 
        parameters in the audiometer. These parameters will remain in 
        effect until new values are loaded, or the audiometer is turned 
        off. If any value is in error, the whole command set will be 
        ignored and a command error will occur. 

        After giving this command, you must use the Get Command Status 
        (33) to verify whether the command was properly processed or not. 

        Default values will always be loaded on power-up. 
        See the Get Warble/Pulse Control Registers function for a 
        description and format of the Warble/Pulse register array.

        Note: The Pulse on/off ABLB, and SISI times are updated 
        immediately when this command is processed. The actual warble 
        data table is not updated until the channel frequency is changed. 
        Thus to update the warble table after using this command, you 
        must change the current frequency in the audiometer. Note that 
        this will overwrite any data loaded into the Warble tables via 
        the Set Warble Data command. If you want to change one of the 
        registers besides the warble registers and still use your own 
        warble data table, you must give the Set Warble Data command 
        after this one. 























                                        5


        =================================================================

                                 Warble Control


        *** Special Note: The Warble and Pulse control commands are 
        specific to the FA1x series audiometers. These commands may very 
        likely change in future instruments. 


        Automatic Table Generation:

        The warble is controlled by a lookup table. The lookup table is 
        regenerated automatically when the audiometer is turned on or 
        anytime a new frequency is selected in the audiometer. The 
        information used to generate the warble table is found in two 
        registers. The warble step count register, and the warble 
        deviation register.

        The warble step count register contains the number of frequency 
        steps that will be performed for one complete warble cycle. Each 
        step takes exactly 8mS of time. Thus if the count is 24, the 
        total time for the warble cycle would be 192mS.  

        The warble step count can be changed with the Set Warble/Pulse 
        Control Register command, or read with the Get Warble/Pulse 
        Control Register command. If the warble step count number is 
        changed, all new warble table generations will reflect the new 
        count value when the frequency is changed. 

        The warble cycle is implemented as a triangle warble. The warble 
        table defines one complete warble cycle (four slopes). The warble 
        will visit the center frequency twice, the upper frequency once, 
        and the lower frequency once in a complete cycle. This means that 
        the minimum table length (warble step count) is four steps. The 
        maximum table length is related to the maximum table size 
        allowed, which is 124 entries. The table size must be set to an 
        even value, and it is recommended that the table size be adjusted 
        in increments of four to maintain a balanced warble.

        The warble deviation register contains the deviation value that 
        is used to generate the frequencies for each step of the warble. 
        The value given is the reciprocal (1/x) of the percentage of 
        warble deviation desired. The deviation is given as a +- value 
        around the chosen center frequency. If a deviation of +-5% around 
        the center frequency is given (5% above and 5% below), the total 
        deviation would be 10%. The warble deviation can be up to +-5% 
        within the limits of the filters inside the audiometer. The 
        Default warble deviation is +-5%. 







                                        6


        As an example, +-5% warble deviation would be a value of 20. 
        +-1% deviation would be a value of 100. Minimum warble deviation 
        allowed is +-0.04% (250). Additionally, there is a minimum 
        frequency resolution which the SAA1099 can handle. The table 
        generator will select the closest SAA1099 frequency that can be 
        used. Selecting a small deviation may result in a warble 
        deviation too small to create a valid warble table. In that case, 
        no warble will happen. Warble deviation values greater than 5% 
        should be avoided since the filters are not capable of managing a 
        warble much wider than 5%.

        The pure tone audiometeric center frequency presented by the 
        audiometer is as exact as the crystal is able to make it. The 
        internal dividers in the SAA1099 are set to create the exact 
        frequency. Frequencies outside the standard audiometeric 
        selections may not be exact. This in part is the result of the 
        frequency tolerance specification for the instrument. The 
        frequency tolerance for the audiometer is rated at +-0.5% from 
        the selected frequency. 

        The frequency is selected in the SAA1099 with two registers. A 
        tone register, and an octave register. The equations used to 
        compute the tone and octave numbers are as follows:

                                       (octave number)
                              36000 * 2
        Frequency in Hertz = -------------------------  
                                511 - tone number 

        or:
                                    (octave number) 
                              36000 * 2 
        Tone number = 511 -  -----------------------
                                Frequency in Hertz


        Note that the actual warble frequency used may not be the same as 
        the desired frequency value. This is because the SAA1099 sound 
        generator, which is used to generate the tones, is limited to the 
        frequencies it can generate. 

        The pure tone center frequency that is selected has a resolution 
        of 1Hz increments. Any frequency between 125Hz and 8000Hz can be 
        selected through the RS232 interface in 1Hz increments. The 
        warble table will be created based on the selected frequency.  
        Warble calculations are performed at 0.25Hz resolution for 
        frequencies equal to or above 1024Hz, and at 0.0625Hz at 
        frequencies below 1024Hz. However, the actual frequency used is 
        dependent upon the closest frequency selectable by the SAA1099.







                                        7


        The algorithm used to create the warble table is as follows:  

              Frng = Fc/Dev
              Flow = Fc-Frng
              Fstep = Frng/(Step/2)
              for i = 0 to (Step/2) do
                Fwt[i] = Flow+Fstep
              for i = (Step/2)-1 to 1 do
                Fwt[i] = Flow+Fstep

        Where:
          Fc    : Selected center frequency
          Dev   : Deviation value
          Step  : Warble Step Count (table length)
          Frng  : Frequency range (+-)
          Fstep : Step frequency increment 
          Flow  : Lowest selected frequency
          Fwt   : Warble table

        Note that in the actual computer code, several of the numbers are 
        scaled up and down to maintain resolution indicated above in the 
        integer math.

        If the Warble step count or the warble deviation numbers are 
        changed, the warble table itself will not be updated until the 
        frequency for the selected channel has been changed. Thus if you 
        wish to change the warble, you must change the frequency after 
        uploading the new warble count and or deviation. 

        You should turn the stimulus off before changing the pulse 
        numbers. Changing the pulse numbers with the sound on may cause a 
        blip as the new pulse numbers are loaded into the system. 
        Changing the warble count or warble deviation numbers will not 
        cause a problem if stimulus is on since the warble table is not 
        updated until a frequency change occurs.





















                                        8


        Alternate Loading of the Warble Table:

        You can read or write the warble table directly with the Get 
        Warble Table command or Set Warble Table command. 

        The Get Warble Table command allows the current contents of the 
        warble table to be read. The table contents will change each time 
        a new frequency is set in the audiometer or as a result of a 
        previous Set Warble Table command. 

        The Set Warble Table command allows the warble table to be loaded 
        directly with new values bypassing the automatic table generator. 
        This might be useful for example if you want to try implementing 
        a sine warble rather than the standard triangle warble. 

        Each time the frequency is changed the table is always updated 
        automatically, so any table changes made previously are 
        overwritten. Thus if you want to install your own table values, 
        you must load the table each time after the frequency has been 
        changed.

        There are two tables, one for each channel. Each table consists 
        of two values per entry, the Tone (frequency) and the Octave. 
        At the start of the table is a single word indicating how many 
        entries are in the table. 

        -----------------------------------------------------------------

        04/28/93 -med : Split off of main manual file
        05/02/97 -med : Merged responses with get commands
        <eof>

























                                        9
