Abstract:
A sound generator apparatus that is configured to improve sound quality for a sound generator is disclosed. The sound generator apparatus includes a processing device and a memory coupled to the processing device. The a sound generator apparatus also includes a sound generator coupled to the processing device. Further, the sound generator apparatus includes a program residing in memory and configured to be run on the processing device. The program configured to vary the output amplitude of the sound generator depending on the sound generator frequency.  
     Further, a method of improving sound quality for a sound generator is disclosed. The method includes providing a signal indicative of a sound frequency to be generated. The method also includes calculating volume adjustment information according to the sound frequency to be generated. Further, the method includes providing the current volume setting and adjusting the volume based on the volume adjustment information.

Description:
FIELD OF THE INVENTION  
         [0001]    The invention relates to sound generators typically used in computing devices. In particular, the invention relates to a software pre-filter for a sound generating circuit, the pre-filter being a software pre-filter. Further, the invention relates to a compact sound generator circuit using a software pre-filter for a personal digital assistant. Yet further still, the invention relates to a method of improving the sound quality of a simple sound generator.  
         BACKGROUND OF THE INVENTION  
         [0002]    Hand held computing devices, “palmtops”, or “palmhelds”, personal digital assistants (PDAs), or hand held computers typically weight less than a pound and fit in a pocket. These palmhelds generally provide some combination of personal information management, database functions, word processing, and spreadsheets. Because of the small size and portability of palmhelds, strict adherence to hardware constraints, such as sound generation hardware, must be maintained. It is conventional to use a sound generator in a palmheld device which is configured to operate ideally at a particular single frequency, rather than across a broad audio frequency range. When the sound generator is used across the audio frequency range, it provides “poor sound quality” with a widely varying sound pressure level over the audio frequency range for the same user setting.  
           [0003]    Other conventional implementations of sound generation circuits include a dynamic speaker that is designed to operate across an audio frequency range having a substantially flat frequency response across the range. Such dynamic speakers are physically larger and cost many times more than sound generators. Further, the dynamic speaker drive circuit is also more complicated and expensive to implement than simple sound generators.  
           [0004]    Accordingly, there is a need for a compact sound generator circuit that utilizes a software pre-filter to improve sound quality over an audible frequency range. Further, there is a need for a method of pre-filtering sound generator circuit signals in order to provide improved sound quality using a compact sound generator circuit.  
           [0005]    The teachings herein below extend to those embodiments which fall within the scope of the appended claims, regardless of whether they accomplish one or more of the above mentioned needs.  
         SUMMARY OF THE INVENTION  
         [0006]    An exemplary embodiment relates to an apparatus configured to improve sound quality for a sound generator. The apparatus includes a processing device and a memory coupled to the processing device. The apparatus also includes a sound generator coupled to the processing device. The apparatus also includes a program residing in memory and configured to be run on the processing device. The program is configured to vary the output amplitude of the sound generator depending on the sound generator frequency.  
           [0007]    Another exemplary embodiment relates to a sound generator circuit. The sound generator circuit includes a processor and a memory coupled to the processor. The sound generator circuit also includes a modulator circuit coupled to the processor. The sound generator circuit further includes a transistor coupled to the modulator circuit. Further still, the sound generator circuit includes a sound generator coupled to the transistor. Yet further still, the sound generator circuit includes a program residing in memory and configured to be run on the processor. The program is configured to vary the output amplitude of the sound generator depending on the sound generator frequency.  
           [0008]    Further, an exemplary embodiment relates to a method of improving sound quality for a sound generator. The method includes providing a signal indicative of a sound frequency to be generated. The method also includes accessing a lookup table according to the sound frequency to be generated to obtain volume adjusted information. The method further includes providing the current volume setting and adjusting the volume based on the volume adjustment information.  
           [0009]    Further still, an exemplary embodiment relates to a method of improving sound quality for a sound generator. The method includes providing a signal indicative of a sound frequency to be generated. The method also includes calculating volume adjustment information according to the sound frequency to be generated. Further, the method includes providing the current volume setting. Further still, the method includes adjusting the volume based on the volume adjustment information. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]    The invention will become more fully understood from the following detailed description, taken in conjunction with the accompanying drawings, wherein like reference numerals refer to like elements, in which:  
         [0011]    [0011]FIG. 1 is a depiction of a hand held computer;  
         [0012]    [0012]FIG. 2 is an exemplary block diagram of a communications bus architecture for a hand held computer;  
         [0013]    [0013]FIG. 3 is an exemplary partial circuit diagram of a sound generator circuit;  
         [0014]    [0014]FIG. 4 is a graphical depiction of the frequency response of an exemplary sound generator; and  
         [0015]    [0015]FIG. 5 is a graphical depiction of the frequency response of an exemplary sound generator using an exemplary pre-filter and without using a pre-filter. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0016]    Referring to FIG. 1, a hand held computer  100  is depicted, being optionally detachably coupled to an accessory device  110  according to an exemplary embodiment. Hand held computer  100  may include Palm style computers such as, but not limited to, Palm Pilot™, Palm III™, Palm IIIc™, Palm V™, Palm VII™, and Palm M100™ organizers, manufactured by Palm, Inc., of Santa Clara, Calif. Other exemplary embodiments of the invention may include Windows CE™ hand held computers, or other hand held computers and personal digital assistants, as well as cellular telephones, and other mobile computing devices. Further, hand held computer  100  may be configured with or without accessory device  110  or optionally with any of a variety of other accessory devices.  
         [0017]    Preferably, hand held computer  100  includes interactive hardware and software that performs functions such as maintaining calendars, phone lists, task lists, notepads, calculation applications, spreadsheets, games, and other applications capable of running on a computing device. Hand held computer  100 , shown in FIG. 1 includes a plurality of input functions, keys  117  and a display  113  having graphical user interface features. Display  113  may be provided with an interface that allows a user to select and alter displayed content using a pointer, such as, but not limited to, a stylus. In an exemplary embodiment, display  113  also includes a Graffiti™ writing section  118 , or other handwriting recognition software, for tracing alphanumeric characters as input. A plurality of input buttons  119  for performing automated or preprogrammed functions may be provided on a portion of display  113 . In a particular embodiment, display  113  is a touch screen display that is electronically responsive to movements of a stylus on the surface of display  113 .  
         [0018]    Accessory device  110  may be one of several types of accessories, such as, but not limited to, a modem device for serial and/or wireless data communications, a Universal Serial Bus (USB) device, or a communication cradle having an extended housing. Accessory device  110  may include one or more ports for parallel and/or serial data transfer with other computers or data networks. Hand held computer  100  may use the accessory device  110  for the purpose of downloading and uploading software and for synchronizing data on hand held computer  100  with a personal computer, for example. Accessory device  110  couples to hand held computer  100  through an electrical connector located at a bottom portion of its front face. Button  155  on accessory  110  may effectuate an electrical connection between accessory device  110  and hand held computer  100  when the two are connected.  
         [0019]    Referring to FIG. 2, an exemplary block diagram of a communications bus architecture  200  for a hand held computer, such as hand held computer  100 , is depicted. Communications bus architecture  200  includes a processor  210  coupled to a communications bus  215 . A memory  220 , a sound generator circuit  230 , a display controller  240 , and various input/output (I/O) devices and ports  260  are all coupled to communications bus  215 . Further, a display device  250  is coupled to display controller  240  which is coupled to communications bus  215 . Processor  210  is configured to run programs stored in memory  220  and to selectively provide sound, as required through a sound generator circuit  230 . Further, display device  250  is configured to display information as necessary according to the program running on processor  210  and instructions from display controller  240 . Input/output devices and ports  260  are used to provide communication and access to any of a number of and/or a variety of input/output devices, such as, but not limited to, printers, network connections, storage devices, other hand held computers, wireless devices, cellular devices, modems, and the like. Sound generator circuit  230  may be any of a variety of sound generators generating circuits including, but not limited to buzzers, and other sound generating devices such as speaker-based devices and the like.  
         [0020]    Referring now to FIG. 3, an exemplary sound generator circuit  300  is depicted. Sound generator circuit  300  includes a buzzer  310 , such as, but not limited to a Bujeon BCT-03SR buzzer available from Bujeon Components Company, Limited of Ansan City, Gyunggi-do, Korea, a Citisound CHB-03F available from Citizen Electronics Company, Limited of Kamikurechi Fujiyoshida-shi Yamanashi-ken, Japan, or any of a variety of other buzzer or sound generation devices. Sound generation circuit  300  includes a battery high input  320  for providing a voltage input to buzzer  310  and a pulse width modulated current (PWM) input  330  receiving a modulated input from a PWM as controlled by a processor, such as, but not limited to a DragonBall™ processor, available from Motorola, Inc. of Austin, Tex. or any of a variety of other processor or processing devices (in an exemplary embodiment the PWM may be incorporated into the processor). Circuit  300  also includes a transistor, shown as darlington transistor  340  providing switching to buzzer  310  according to the PWM signal received. Transistor  340  is configured to alternately drive the current through buzzer  310  or to short buzzer  310  to ground  350 . Circuit  300  also includes a capacitor  360  for filtering out high frequency signals and a resistor  365  and capacitor  370  combination also for filtering out high frequency signals. Further still, circuit  300  includes a current limiting resistor  375  configured to limit high current signals received from the PWM. Circuit  300  is exemplary of any of a variety of sound generation circuits and is not included to limit the scope of the claims but has been included to show one possible implementation thereof.  
         [0021]    Referring now to FIG. 4, an exemplary frequency response graph is depicted for a sound generator, such as buzzer  310 . In particular, graph  400  is the frequency response for a CHB-03F Citisound sound generator. Line  410  depicts the amplitude (sound pressure level) of the tone generated on the Y axis at the frequency provided along the X axis. Inspection of graph  400  reveals that the sound amplitude generated varies widely over the frequency response range. A maximum sound pressure level (or amplitude) occurs at approximately 2.7 kilohertz. In a particular embodiment, sound generator circuit  300  is utilized in a palmheld device or hand held computer in which an exemplary audible range is used from about 500 hertz to 7 kilohertz, however, other audible ranges or frequency ranges of interest may be used.  
         [0022]    Without the improvement described herein, the volume for a hand held computer is set to a particular level by the user ranging, for example, from 1 to 7. Different tones are played in sequence by buzzer  310  at the fixed volume setting for different durations to create the hand held sounds or tunes. Because each tone has a different sound pressure level (or amplitude) with some widely varying, an inconsistent sound level is produced. For example, as depicted in graph  400 , a 1.6 kilohertz tone has a sound pressure level of around 81 decibels while a 2.7 kilohertz tone has a sound pressure level of around 96 decibels. This variation of sound pressure level over frequency degrades the sound quality by misrepresenting the tone being played. The use of a software pre-filter may be configured to change the volume at particular frequencies to provide a flatter frequency response curve. An exemplary implementation of the software pre-filter uses a look-up table of frequencies versus adjustment amount of volume to reduce. An exemplary look-up table for a hand held computer using the CHB-03F Citisound sound generator is shown below.  
                                                                 Frequency   Adjustment                                        0   0           256   0           512   1           768   1           1024   2           1280   1           1536   1           1792   0           2048   0           2304   1           2560   2           2816   3           3072   3           3328   2           3584   2           3840   1           4096   0           4352   0           4608   1           4864   2           5120   2           5376   3           5632   3           5888   3           6144   3           6400   2           6656   2           6912   1           7168   0           7424   0                      
 
         [0023]    In an exemplary embodiment, the table above is calibrated for a volume setting of 7. Because the volume can be changed by a user, the adjustment amount must also change by the same ratio. Accordingly, the equation to scale the adjustment amount over volume is provided in the program code below;  
                                   // Calculate the amplitude adjustment based on the amplitude and       frequency passed in.       // This attempts to level the frequency response.       // if ampAdjMapIndex is in the middle or greater then go to the       next ampAdjMapIndex.       ampAdjTableIndex = (Frq + 128) &gt;&gt; 8;       if (ampAdjTableIndex &gt;= AmpAdjTableSize−1)       //limit index to end of table        ampAdj = (ampAdjTable[AmpAdjTableSize−1];       else        ampAdj = (ampAdjTable[ampAdjTableIndex]*volume) / volumeMax;          // scale adjust over volume.       //The adjustment value is subtracted from the volume for that particular       tone as shown       //below in equation 2.       //Equation 2       adjustedVolume = volume − ampAdj;                  
 
         [0024]    Once adjusted volume has been calculated in equation 2, the use of the adjustedVolume gives a flatter frequency response. In an exemplary embodiment the frequency response may not be completely flat due to quantization error in the table and because of the limited volume steps, for example, 1-7, that are being used. However, improvement over the use of an unfiltered sound generator is affected. It should be noted that the quantization of the table and the number of volume steps may differ depending on the hardware configurations and software configurations used and the flatness of the frequency response desired. Use of the software pre-filter described above provides an audible improvement in sound for alarms, games, etc. in hand held computing devices and other devices using sound generators, such as buzzers  310  while not requiring complex or costly hardware improvements.  
         [0025]    Referring now to FIG. 5, an exemplary frequency response graph  500  is depicted. Frequency response graph  500  depicts the response of a buzzer, such as  310  without using a software pre-filter as described above. Frequency response  510  is seen as relatively choppy in comparison with frequency response  520 , which is the frequency response of a buzzer utilizing a software pre-filter as discussed above. Frequency response  520  is relatively flat having a response generally in the range of 75 decibels to 78 decibels in the usable range which is from approximately 1 kilohertz to 7 kilohertz in this example. However, any of a variety of usable ranges may be designed, depending on the hardware and software constraints and configurations used. Frequency response  510 , which does not use a pre-filter has a range of 75 to 84 decibels in the usable range of 1 kilohertz to 7 kilohertz, which is clearly a much larger range as compared with frequency response  520 . Accordingly, the example depicted in FIG. 5 shows the clear advantage of utilizing a pre-filter as discussed above to flatten the frequency response of the buzzer sound system for a hand held computer. Utilizing the pre-filter in the example depicted in FIG. 5, a range of 3 decibels is achieved whereas without using the pre-filter, the buzzer achieves a range of 9 decibels in the usable range from 1 kilohertz to 7 kilohertz.  
         [0026]    While the detailed drawings, specific examples and particular formulations given describe exemplary embodiments, they serve the purpose of illustration only. The hardware and software configurations shown and described may differ depending on the chosen performance characteristics and physical characteristics of the computing devices. For example, the type of computing device, communications bus, or processor used may differ. The systems shown and described are not limited to the precise details and conditions disclosed. Furthermore, other substitutions, modifications, changes, and omissions may be made in the design, operating conditions, and arrangement of the exemplary embodiments without departing from the scope of the invention as expressed in the appended claims.