EP1788553A1 - Conversion from note-based audio format to PCM-based audio format - Google Patents
Conversion from note-based audio format to PCM-based audio format Download PDFInfo
- Publication number
- EP1788553A1 EP1788553A1 EP05110863A EP05110863A EP1788553A1 EP 1788553 A1 EP1788553 A1 EP 1788553A1 EP 05110863 A EP05110863 A EP 05110863A EP 05110863 A EP05110863 A EP 05110863A EP 1788553 A1 EP1788553 A1 EP 1788553A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- note
- pcm
- audio object
- look
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
- G10H7/04—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories in which amplitudes are read at varying rates, e.g. according to pitch
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/005—Device type or category
- G10H2230/021—Mobile ringtone, i.e. generation, transmission, conversion or downloading of ringing tones or other sounds for mobile telephony; Special musical data formats or protocols therefor
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/011—Files or data streams containing coded musical information, e.g. for transmission
- G10H2240/046—File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
- G10H2240/056—MIDI or other note-oriented file format
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/621—Waveform interpolation
Definitions
- the present application relates to audio object processing and, in particular, to conversion from a note-based audio format to a Pulse Code Modulation (PCM)-based audio format.
- PCM Pulse Code Modulation
- Audio objects such as music files can come in a variety of different formats.
- an electronic communication device requires an audio object to be in a particular format in order to use it to generate musical sounds.
- certain cellular phones might not be able to play an audio file, in order to provide notification of an incoming call, unless that audio file is in a PCM-based format.
- the audio file is instead in a note-based format, the cellular phone might be programmed to convert the audio file from its note-based format to the required PCM-based format by carrying out a relatively large number of floating point mathematical calculations. These floating point mathematical calculations could result in a noticeable delay in the conversion process if the electronic communication device does not have a floating point unit (FPU).
- FPU floating point unit
- the present application preferably provides an electronic communication device.
- the electronic communication device includes a memory containing a note-based audio object and a lookup table containing trigonometric function evaluations.
- the note-based audio object contains note frequency information.
- the device also includes a conversion module for converting the note-based audio object to a Pulse Code Modulated (PCM) stream having a plurality of sample points, a processor for reading said memory and executing said conversion module, and a speaker, including a speaker driver, for receiving the PCM stream and outputting corresponding audio.
- the conversion module includes computer executable instructions for generating a PCM value for each sample point based upon the note frequency and the trigonometric function evaluations.
- the present application preferably provides a method of converting a note-based audio object to a (Pulse Code Modulated) PCM stream by an electronic communication device.
- the electronic communication device has a memory storing a lookup table of trigonometric function evaluations.
- the memory also stores the note-based audio object, which includes note frequency information.
- the PCM stream has a plurality of sample points.
- the method includes steps of accessing the note-based audio object to extract the note frequency information and generating a PCM value for each sample point based upon the note frequency information and the trigonometric function evaluations.
- Figure 1 shows a block diagram of an electronic communication device
- Figure 2A is a graph diagrammatically depicting sound data for an example PCM-based audio object
- Figure 2B is another graph diagrammatically depicting sound data for another example PCM-based audio object.
- Figure 3 shows, in flow chart form, a method of generating a ringtone using conversion from a note-based audio format to a PCM-based audio format.
- electronic communication device as used herein is not limited to those devices that are, for example, wirelessly enabled or, for example, mobile.
- object as used herein means a passive entity that contains or receives information, unless another meaning is clear from the context in which the term is used.
- Figure 1 shows a block diagram of an electronic communication device 10.
- the electronic communication device 10 is a two-way mobile communication device having data and possibly also voice communication capabilities.
- the device 10 has the capability to communicate with other devices and computer systems on the Internet.
- the device may be a data communications device, a multiple-mode communications device configured for both data and voice communication, a mobile telephone, or a Personal Digital Assistant (PDA), among other things.
- PDA Personal Digital Assistant
- the device 10 includes a wireless communications subsystem 11 for exchanging messages with one or more communications networks 50, 52.
- the subsystem 11 includes a wireless wide area network (WAN) communications subsystem 12 for communicating with a cellular (wireless) WAN 50 and a wireless local area network (WLAN) communications subsystem 14 for communicating with WLAN 52.
- the communications subsystems 12, 14 may each include a receiver, a transmitter, and associated components such as one or more, preferably embedded or internal, antenna elements, and a processing module such as a digital signal processor (DSP).
- DSP digital signal processor
- the particular design of the communications subsystem 11 will be dependent in part upon the communication network(s) in which the device 10 is intended to operate. For example, if the device is not intended to communicate over a WLAN, then the device might not include the WLAN subsystem 14.
- the device 10 includes a microprocessor 38 that controls the overall operation of the device.
- the microprocessor 38 interacts with the communications subsystem 11 and also interacts with further device subsystems/circuitry such as a graphics subsystem 44, flash memory 24, random access memory (RAM) 26, auxiliary input/output (I/O) subsystems (and/or devices) 28, serial port 30, keyboard or keypad 32, DSP engine 33, audio conversion component 35, a short-range communications subsystem 40, and any other device subsystems generally designated as 42.
- the graphics subsystem 44 interacts with a display 22 and renders graphics and/or text upon the display 22.
- the audio conversion component 35 is, in some example embodiments, one or more analog-to-digital and digital-to-analog conversion chips.
- the audio conversion component 35 converts an analog signal created by the microphone 36 from the user's voice, into digital signals. These digital signals are compressed by the DSP engine 33.
- the DSP engine 33 also removes any background noise.
- Some high end consumer electronics include a codec having very extensive conversion capabilities.
- the speaker 34 is an electro-acoustic transducer that translates received electrical impulses into audible sounds.
- the illustrated speaker 34 it needs to receive an appropriate analog signal from the audio conversion component 35 which, in addition to being able to convert an analog signal into digital signals, can also convert digital signals back into an analog signal. If the audio conversion component 35 includes a stereo digital-to-analog converter, then the device 10 may be able to play audio objects of an MP3 or greater quality.
- Operating system software 54 and various software applications 58 used by the microprocessor 38 are, in some example embodiments, stored in a persistent store such as flash memory 24 or similar storage element. Those skilled in the art will appreciate that the operating system 54, software applications 58, or parts thereof, may be temporarily loaded into a volatile store such as RAM 26. It is contemplated that received communication signals may also be stored to RAM 26.
- the microprocessor 38 in addition to its operating system functions, can enable execution of software applications 58 on the device.
- a predetermined set of software applications 58 which control basic device operations, including data and voice communication applications for example, will normally be installed on the device 10 during manufacture. Further software applications 58 may also be loaded onto the device 10 through the wireless networks 50, 52, the auxiliary I/O subsystem 28, serial port 30, short-range communications subsystem 40 or any other suitable subsystem, and installed by a user in the RAM 26 or a non-volatile store for execution by the microprocessor 38.
- Such flexibility in application installation increases the functionality of the device and may provide enhanced on-device functions, communication-related functions, or both.
- the serial port 30 which may be a universal serial bus (USB) port, would normally be implemented in a personal digital assistant (PDA)-type communications device for which synchronization with a user's desktop computer (not shown) may be desirable, but is an optional device component.
- PDA personal digital assistant
- Such a port 30 would enable a user to set preferences through an external device or software application and would extend the capabilities of the device by providing for information or software downloads to the device 10 other than through a wireless communications network.
- the short-range communications subsystem 40 is a further component which may provide for communication between the device 10 and different systems or devices, which need not necessarily be similar devices.
- the subsystem 40 may include an infrared device and associated circuits and components or a Bluetooth TM communication module to provide for communication with similarly enabled systems and devices.
- the WLAN 52 includes, in some examples, a number of wireless access points, and operates in conformance with one or more IEEE 802.11 protocols.
- the WLAN 52 is part of a corporate (or other organization) network.
- the wireless WAN 50 is, in an example embodiment, a wireless packet data network, (e.g. Mobitex TM or DataTAC TM ), which provides radio coverage to electronic communication devices 10.
- Wireless WAN 50 may also be a voice and data network such as GSM (Global System for Mobile Communication) and GPRS (General Packet Radio System), CDMA (Code Division Multiple Access), or various other third generation networks such as EDGE (Enhanced Data rates for GSM Evolution) or UMTS (Universal Mobile Telecommunications Systems).
- GSM Global System for Mobile Communication
- GPRS General Packet Radio System
- CDMA Code Division Multiple Access
- EDGE Enhanced Data rates for GSM Evolution
- UMTS Universal Mobile Telecommunications Systems
- the device 10 may be a handheld device; however at least some embodiments of the invention are not restricted to handheld devices.
- a non-portable, fixed telephone could include one or more example embodiments of the invention.
- phone communications in the context of embodiments of the invention are not restricted to those carried out over wireless networks.
- at least some embodiments of the invention are directed towards fixed telephones that can communicate with other fixed telephones over networks such as the Public Switched Telephone Network (PSTN) .
- PSTN Public Switched Telephone Network
- the electronic communication device 10 is a cellular phone, a phone communication would normally be received at the device 10 in the form of WAN communication signals, but as another example, if the electronic communication device 10 is a non-portable, fixed telephone, the phone communication would normally received at the device 10 in the form of electrical signals traveling through a wire. As yet another example, if the electronic communication device 10 comprised the handset of a portable telephone, phone communications would normally be delivered to the handset by way of short-range radio signals.
- the software resident on the device 10 includes at least one phone application 56.
- Phone functionality provided to the user of the device 10 is implemented in part through the phone application 56.
- the phone application 56 can permit the user to save and use speed dial numbers, record and view call logs, set call forwarding and voice mail options, select ringtones for incoming phone calls and other phone features.
- the illustrated phone application 56 includes an audio object conversion module 57 for carrying out format conversion in accordance with example embodiments of the invention. It will be understood that computer executable instructions of the conversion module 57 are also the computer executable instructions of the phone application 56 because of the fact that the conversion module 57 is a "module" of the phone application 56. Thus, it is convenient for the purposes of the present discussion to refer to the application 56 rather than the module 57. Those skilled in the art will appreciate that it may be an arbitrary decision to put certain code in one module rather than another.
- the phone application 56 is shown as a stand-alone application in the example embodiment shown in Figure 1, it will be appreciated that the phone application 56 may be implemented as a module or component of another application program or it may be implemented as a module or component of the operating system 54. It will also be appreciated that modules explicitly or implicitly described as being modules of the phone application 56 might alternatively be modules or components of another application program (or the operating system 54). Any references herein to the phone "application” are intended to include applications, modules, subroutines, and any other software-based implementations that may be used to give effect to the functions described herein. The suitable programming of such software-based modules will be understood by those of ordinary skill in the art having regard to the description herein.
- incoming phone communications would normally be received from the wireless WAN 50 and initially processed by the communications subsystem 11. Following the communications subsystem 11 providing indication to the microprocessor 38 that there is an incoming call, the phone application 56 causes the user of the device 10 to be notified of this incoming call. In some examples, the phone application 56 does this by "playing" music, meaning the phone application 56 attempts to read a stored audio object (for example, a ringtone file) in order that digital signals containing the music data of the audio object can be generated and sent by the microprocessor 38 to the audio conversion component 35 (or to the DSP engine 33 if any DSP-related processing, such as decoding, is necessary).
- a stored audio object for example, a ringtone file
- the generated digital signals can be translated by the audio conversion component 35 into an analog music signal consisting of electrical impulses. These electrical impulses are sent to the speaker 34.
- the speaker 34 translates the received electrical impulses into audible sounds so as to alert the user of the device to the incoming call.
- One or more audio objects 60 are stored in the flash memory 24.
- the phone application 56 may designate one or more of these audio objects 60 and/or one or more portions of these audio objects 60 to be played when there is any incoming call, a particular type of incoming call (e.g. a call where the calling party has blocked call identification) and/or a call coming from a phone having a particular phone number that is familiar to the user.
- a particular type of incoming call e.g. a call where the calling party has blocked call identification
- the designated music object 60 contains the music data for an entire song, it will be understood that perhaps only a portion of the designated music object 60 will be played by the phone application 56. This is because of the likely possibility that after a preset period of time, for example after 20 to 30 seconds, the call might receive alternative handling. For example, the call might be forwarded to voice mail. As the music tracks of mainstream music artists are commonly several minutes in length, it might
- PCM-based audio objects for example, files, streams
- the format is such that sounds are represented as digitally encoded sound waves.
- Examples of PCM-based formats include Wave, AU (or .au) format sound, and many others.
- the example PCM-based audio object depicted in the graph comprises a series of binary code words wherein each word represents an instantaneous value (point on the graph) of a periodically sampled and quantized analog signal.
- the depicted sound data possibly corresponds to a single musical note being played during the illustrated time interval, because the true analog signal for the interval portion appears to be a single sine wave rather than a sum of sine waves.
- the ringtone may be described as being a monotonic ringtone.
- the depicted sound data may correspond to multiple musical notes being played simultaneously during the illustrated time interval, because the true analog signal for the interval portion appears to be a sum of sine waves.
- any infinite signal can be decomposed into an infinite sum of sinusoids, though more importantly from a practical standpoint, those skilled in the art will appreciate that many signals can quite adequately be approximated as a finite sum of sinusoids.
- the ringtone may be described as being a polyphonic ringtone.
- the music data contained in the note-based audio object typically comprises an array of notes and durations.
- a very common example of a note-based audio object is a Musical Instrument Digital Interface (MIDI) file.
- MIDI file includes a note-based description such that the start and end of a tone and/or the start of the tone and the duration of the tone are recorded as a function of time.
- Other examples of formats for note-based audio objects include Scalable Polyphony (SP) MIDI, General MIDI (GM), Ring Tone Test Transfer Language (RTTTL) and various proprietary note-based formats.
- a note-based audio object may be converted into a PCM-based audio object such as, for example, a PCM-based stream.
- the generic musical notes founding in a note-based audio object may also be described in terms of sinusoidal audio signals of a certain frequency. The higher the note, the higher the frequency of the associated audio signal (and vice versa).
- the electronic device 10 is not capable of playing an audio object unless it is in PCM-based format. Accordingly, if the desired ringtone is found in one of the objects 60 that has been stored in the flash memory 24 in a note-based rather than PCM-based format, the note-based object will need to be converted into a PCM-based object (typically a PCM-based stream) in order for it to be played by the phone application 56.
- the microprocessor 38 performs the function of converting the note-based format audio object to a PCM-based object by calculating the appropriate code word for each sample point within the PCM-base object based on the note data.
- the device 10 may include a floating point unit (FPU), which is a device normally employed for the purpose of carrying out operations with floating point numbers, in order to carry out the conversion without a noticeable delay being incurred.
- FPU floating point unit
- the device 10 does not include an FPU and there are no DSP components practically accessible to carry out the needed mathematical calculations. Therefore, the microprocessor 38 may need to carry out the floating point mathematical calculations in software, which may result in a significant delay of one or more seconds before the application 56 is able to play the PCM formatted stream.
- the conversion of a note-based audio object to a PCM-based audio object is carried out through a method that minimizes the number of operations with floating point numbers.
- the conversion may be carried out with the use of a look-up table 62 (Fig. 1) stored within flash memory 24 (Fig. 1).
- the look-up table 62 may store a set of trigonometric function evaluations, such that when a trigonometric operation needs to be performed in the conversion process, the look-up table is used instead of performing the actual trigonometric operation.
- FIG. 3 illustrates a ringtone generation method 150 in accordance with at least one embodiment of the present application.
- the method 150 begins at step 152 with the recognition of an incom ing call.
- the phone application 56 may identify an incoming call on the basis of a message or indicator provided by the communications subsystem 11. By receiving this indication, the phone application 56, in some examples, is actuated to take the necessary steps to permit playing of the audio object.
- the phone application 56 may access the designated audio object.
- the particular audio object designated for alerting the user to an incoming call may be a default ringtone, or it may be specific to the caller identity, or otherwise configurable by the user.
- Step 154 may include reading the object or otherwise determining it format-type.
- step 156 the phone application 56 determines whether it is necessary to convert the audio object into PCM format. If not, then the method 150 proceeds to step 158 wherein the PCM-format audio object is output to the speaker. It will be understood that the phone application 56 may output a PCM-format stream from the audio object to the audio conversion component 35, which will generate the analog signal to drive the speaker and produce the audible ringtone.
- step 160 the conversion process is intiated.
- steps 160, 162, and 164 a PCM stream is constructed based upon the note information contained in the note-based format audio object.
- step 162 the sample point number, n , is incremented.
- step 164 if the conversion is complete, i.e.
- step 158 wherein the PCM-based stream is output to the speaker. Otherwise, the method 150 loops back to step 160 to generate the next PCM code word.
- Step 160 involves the generation of a PCM code word based upon the note (i.e. frequency) data and duration or timing information contained in the note-based audio object. This conversion may require trigonometric operations for determining the PCM sample value (code word) at various sample points of a given note frequency. Accordingly, in accordance with the present application, step 160 includes utilization of the look-up table 62 (Fig. 1) containing trigonometric function evaluations whenever a trigonometric operation is required in the conversion process.
- step 160 may include steps 160a, 160b, and 160c.
- a step size is determ ined based upon the note frequency, the sampling frequency, and the number of entries in the look-up table 62.
- the step size represents a 'distance' within the look-up table 62 traversed in each sample point increment when mapping a particular note frequency to PCM values.
- the sampling frequency may be configurable by a user or device manufacturer, but may be considered preset for the purposes of the method 150.
- step 160b the step size and sample point number ( n ) are used to identify an entry in the look-up table.
- the entry identifies a PCM code word.
- step 160c interpolation may be applied to pinpoint a PCM value falling between the entry identified in step 160b and the next entry in the look-up table 62.
- step 160c is not essential to obtain the trigonometric function values required by the instructions.
- the interpolation of step 160c is not essential to obtain the trigonometric function values required by the instructions.
- individual trigonometric function values required by the instructions can equal individual table entries.
- scaling and descaling operations may be applied within steps 160a, 1 60b, or 160c to facilitate easier manipulation and/or accuracy.
- the scaling and descaling operations are implemented by way of bit-shift operations, so as to ease the computational burden.
- the conversion is based upon a look-up table having a number of entries M.
- the example is based upon a sampling frequency f s .
- the sample point number, n ranges from 0 to the maximum, which is determined from the sampling frequency f s and the duration of the audio.
- the note-based file provides a note frequency f n .
- the step size within the look-up table is directly related to the ratio between the note frequency f n and the sampling frequency f s . This ratio, multiplied by the sample point number, n , will lead to a location within the look-up table.
- the look-up table may be based upon a single cycle of a sinusoid; accordingly, as the "location" calculation begins to result in placements outside of the table then there is a "wrap-around" to the beginning of the look-up table. This operation may be performed by subtracting the location result by the number of entries in the table if the location result exceeds the number of entries in the table. Other mechanisms for implementing the wrap-around will be appreciated.
- the location calculation is scaled by the scaling factor Y so as to produce a scaled location value that has a numerator K and a remainder R.
- the numerator K is used to pinpoint the selected entry within the look-up table for the given sample point number n .
- the remainder R is later used to interpolate between the selected entry and the next entry in the look-up table.
- the numerator K is then descaled by the decaling factor X.
- the result provides an entry within the look-up table (subject to dealing with wrap-around, as discussed above).
- the remainder R is used to interpolate between the selected entry and the next entry in the table.
- the PCM code word value of the selected entry is subtracted from the PCM code word value of the next entry and the difference is multiplied by the remainder R.
- the resulting product is then added to the PCM code word value for the selected entry and this provides the PCM code word for sample point number n.
- the look-up table includes 32 signed entries ranging from -32767 to 32767. This range may be suitable for 16 bit, signed code words.
- the sampling frequency f s in this example may be preset to 24 kHz. A PCM code word is produced for each sampling point. Accordingly, in a one second interval the number of code words that would need to be generated would be 24,000.
- the scaling factor Y may be 131,072 and the descaling factor X may be 4096. It will be noted that ratio of the scaling factor Y to the descaling factor X is 32, which is the number of entries in the look-up table.
- the selected scaling factor of 131 ,072 is selected on the basis that it may be implemented by way of a bit-wise left-shift operation (by 17 bits) and the descaling may be implemented by way of a bit-wise right-shift operation (by 12 bits), allowing the operation to be performed using shift registers.
- bit-wise shifting is a convenient way to implement multiplication or division by factors of 2.
- the factor of 131,072 is selected on the basis that it provides the largest scaling factor implementable within a 32-bit register having regard to the maximum expected note frequency f n .
- descaled K if the value of descaled K is greater than 32, then this value may be divided by the number of table entries, e.g. 32. It will also be appreciated that the division by 32 may be implemented by right-shifting the value by 5-bits.
- the 32 entry look-up table is as follows: 1. 0 9. 32767 17. -0 25. -32767 2. 6393 10. 32137 18. -6393 26. -32137 3. 12539 11 . 30273 19. -12539 27. -30273 4. 18204 12. 27245 20. -18204 28. -27245 5. 23170 13. 23170 21. -23170 29. -23170 6. 27245 14. 18204 22. -27245 30. -18204 7. 30273 15. 12539 23. -30273 31. -12539 8. 32137 16. 6393 24. -32137 32. -6393
- K is the whole number portion of (131,072 * 10 * 262)/24,000 or 14,308.
- R is the remainder portion of (131,072 * 10 * 262)/24,000 or 16,640/24,000.
- entry number 3 is the selected table entry, which shows a PCM value of 12,539.
- the interpolation amount to be added to the third table entry is given by (18,204 - 12,539)* 16,640/24,000 or 3928. Therefore, in this example, the PCM code word that would be used is 12,539+3928 or 16,467.
- the ringtone produced by conversion is polyphonic rather than monotonic.
- the lookup table implementation in such circumstances could, in some examples, be similar to the example implementation described above, with trigonometric function values associated with musical notes that are played simultaneously with other notes being appropriately added together with the trigonometric function values of the other notes (sum of sinusoids) at each sampling moment where there exists simultaneity. Suitable scaling down of individual trigonometric function values prior to the adding together would ensure that the resultant value is within the valid range for PCM data.
- Audio object conversion has been described in the context of ringtones. In some embodiments, audio object conversion is carried out for purposes other than for generating of a ringtone. For example, audio object conversion might be carried out for other types of notification (for example, preset alarm notification) or entertainment purposes, such as music listening.
- notification for example, preset alarm notification
- entertainment purposes such as music listening.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Telephone Function (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Mobile Radio Communication Systems (AREA)
- Amplifiers (AREA)
Abstract
Description
- The present application relates to audio object processing and, in particular, to conversion from a note-based audio format to a Pulse Code Modulation (PCM)-based audio format.
- Audio objects such as music files can come in a variety of different formats. Sometimes an electronic communication device requires an audio object to be in a particular format in order to use it to generate musical sounds. For example, certain cellular phones might not be able to play an audio file, in order to provide notification of an incoming call, unless that audio file is in a PCM-based format. If the audio file is instead in a note-based format, the cellular phone might be programmed to convert the audio file from its note-based format to the required PCM-based format by carrying out a relatively large number of floating point mathematical calculations. These floating point mathematical calculations could result in a noticeable delay in the conversion process if the electronic communication device does not have a floating point unit (FPU).
- Accordingly, it would be advantageous to improve systems and methods for converting from a note-based audio format to a PCM-based audio format.
- In one aspect, the present application preferably provides an electronic communication device. The electronic communication device includes a memory containing a note-based audio object and a lookup table containing trigonometric function evaluations. The note-based audio object contains note frequency information. The device also includes a conversion module for converting the note-based audio object to a Pulse Code Modulated (PCM) stream having a plurality of sample points, a processor for reading said memory and executing said conversion module, and a speaker, including a speaker driver, for receiving the PCM stream and outputting corresponding audio. The conversion module includes computer executable instructions for generating a PCM value for each sample point based upon the note frequency and the trigonometric function evaluations.
- In another aspect, the present application preferably provides a method of converting a note-based audio object to a (Pulse Code Modulated) PCM stream by an electronic communication device. The electronic communication device has a memory storing a lookup table of trigonometric function evaluations. The memory also stores the note-based audio object, which includes note frequency information. The PCM stream has a plurality of sample points. The method includes steps of accessing the note-based audio object to extract the note frequency information and generating a PCM value for each sample point based upon the note frequency information and the trigonometric function evaluations.
- Other aspects and features of the present application will be apparent to those of ordinary skill in the art from a review of the following detailed description when considered in conjunction with the drawings.
- Reference will now be made, by way of example, to the accompanying drawings which show example embodiments of the present application, and in which:
- Figure 1 shows a block diagram of an electronic communication device;
- Figure 2A is a graph diagrammatically depicting sound data for an example PCM-based audio object;
- Figure 2B is another graph diagrammatically depicting sound data for another example PCM-based audio object; and
- Figure 3 shows, in flow chart form, a method of generating a ringtone using conversion from a note-based audio format to a PCM-based audio format.
- Similar reference numerals may have been used in different figures to denote similar components.
- The following description of example embodiments does not limit implementation to any particular electronic communication device architecture. Also, it will be understood that "electronic communication device" as used herein is not limited to those devices that are, for example, wirelessly enabled or, for example, mobile. The term "object" as used herein means a passive entity that contains or receives information, unless another meaning is clear from the context in which the term is used.
- Referring now to the drawings, Figure 1 shows a block diagram of an
electronic communication device 10. In at least one example, theelectronic communication device 10 is a two-way mobile communication device having data and possibly also voice communication capabilities. In an example embodiment, thedevice 10 has the capability to communicate with other devices and computer systems on the Internet. Depending on the functionality provided by thedevice 10, in various embodiments the device may be a data communications device, a multiple-mode communications device configured for both data and voice communication, a mobile telephone, or a Personal Digital Assistant (PDA), among other things. - In the illustrated embodiment, the
device 10 includes awireless communications subsystem 11 for exchanging messages with one or 50, 52. In one example embodiment, themore communications networks subsystem 11 includes a wireless wide area network (WAN)communications subsystem 12 for communicating with a cellular (wireless)WAN 50 and a wireless local area network (WLAN)communications subsystem 14 for communicating withWLAN 52. In some examples, the communications subsystems 12, 14 may each include a receiver, a transmitter, and associated components such as one or more, preferably embedded or internal, antenna elements, and a processing module such as a digital signal processor (DSP). As will be apparent to those skilled in the field of communications, the particular design of thecommunications subsystem 11 will be dependent in part upon the communication network(s) in which thedevice 10 is intended to operate. For example, if the device is not intended to communicate over a WLAN, then the device might not include theWLAN subsystem 14. - The
device 10 includes amicroprocessor 38 that controls the overall operation of the device. Themicroprocessor 38 interacts with thecommunications subsystem 11 and also interacts with further device subsystems/circuitry such as agraphics subsystem 44,flash memory 24, random access memory (RAM) 26, auxiliary input/output (I/O) subsystems (and/or devices) 28,serial port 30, keyboard orkeypad 32,DSP engine 33,audio conversion component 35, a short-range communications subsystem 40, and any other device subsystems generally designated as 42. Thegraphics subsystem 44 interacts with adisplay 22 and renders graphics and/or text upon thedisplay 22. - The
audio conversion component 35 is, in some example embodiments, one or more analog-to-digital and digital-to-analog conversion chips. When a user of thedevice 10 speaks into themicrophone 36, theaudio conversion component 35 converts an analog signal created by themicrophone 36 from the user's voice, into digital signals. These digital signals are compressed by theDSP engine 33. TheDSP engine 33 also removes any background noise. In some electronic communication devices, instead of theDSP engine 33 and one or more separate conversion chips, there is a single component frequently referred to as a codec. Some high end consumer electronics include a codec having very extensive conversion capabilities. - In addition to the
device 10 having the capability for a device user to input audible sounds through themicrophone 36, so too is the emission of audible sounds possible. In particular, thespeaker 34 is an electro-acoustic transducer that translates received electrical impulses into audible sounds. In order for the illustratedspeaker 34 to emit intended audible sounds, it needs to receive an appropriate analog signal from theaudio conversion component 35 which, in addition to being able to convert an analog signal into digital signals, can also convert digital signals back into an analog signal. If theaudio conversion component 35 includes a stereo digital-to-analog converter, then thedevice 10 may be able to play audio objects of an MP3 or greater quality. -
Operating system software 54 andvarious software applications 58 used by themicroprocessor 38 are, in some example embodiments, stored in a persistent store such asflash memory 24 or similar storage element. Those skilled in the art will appreciate that theoperating system 54,software applications 58, or parts thereof, may be temporarily loaded into a volatile store such asRAM 26. It is contemplated that received communication signals may also be stored toRAM 26. - The
microprocessor 38, in addition to its operating system functions, can enable execution ofsoftware applications 58 on the device. A predetermined set ofsoftware applications 58 which control basic device operations, including data and voice communication applications for example, will normally be installed on thedevice 10 during manufacture.Further software applications 58 may also be loaded onto thedevice 10 through the 50, 52, the auxiliary I/wireless networks O subsystem 28,serial port 30, short-range communications subsystem 40 or any other suitable subsystem, and installed by a user in theRAM 26 or a non-volatile store for execution by themicroprocessor 38. Such flexibility in application installation increases the functionality of the device and may provide enhanced on-device functions, communication-related functions, or both. - The
serial port 30, which may be a universal serial bus (USB) port, would normally be implemented in a personal digital assistant (PDA)-type communications device for which synchronization with a user's desktop computer (not shown) may be desirable, but is an optional device component. Such aport 30 would enable a user to set preferences through an external device or software application and would extend the capabilities of the device by providing for information or software downloads to thedevice 10 other than through a wireless communications network. - The short-
range communications subsystem 40 is a further component which may provide for communication between thedevice 10 and different systems or devices, which need not necessarily be similar devices. For example, thesubsystem 40 may include an infrared device and associated circuits and components or a Bluetooth™ communication module to provide for communication with similarly enabled systems and devices. - The WLAN 52 includes, in some examples, a number of wireless access points, and operates in conformance with one or more IEEE 802.11 protocols. In some examples, the WLAN 52 is part of a corporate (or other organization) network.
- The
wireless WAN 50 is, in an example embodiment, a wireless packet data network, (e.g. Mobitex™ or DataTAC™), which provides radio coverage toelectronic communication devices 10.Wireless WAN 50 may also be a voice and data network such as GSM (Global System for Mobile Communication) and GPRS (General Packet Radio System), CDMA (Code Division Multiple Access), or various other third generation networks such as EDGE (Enhanced Data rates for GSM Evolution) or UMTS (Universal Mobile Telecommunications Systems). With respect to the illustrateddevice 10, incoming phone communications would normally be received from thewireless WAN 50 rather than, for example, theWLAN 52. It is possible however that communications somewhat analogous to phone communications could be received from theWLAN 52, and examples of such communications are known to those skilled in the art. - The
device 10 may be a handheld device; however at least some embodiments of the invention are not restricted to handheld devices. For example, a non-portable, fixed telephone could include one or more example embodiments of the invention. Also, phone communications in the context of embodiments of the invention are not restricted to those carried out over wireless networks. For example, at least some embodiments of the invention are directed towards fixed telephones that can communicate with other fixed telephones over networks such as the Public Switched Telephone Network (PSTN) . - If the
electronic communication device 10 is a cellular phone, a phone communication would normally be received at thedevice 10 in the form of WAN communication signals, but as another example, if theelectronic communication device 10 is a non-portable, fixed telephone, the phone communication would normally received at thedevice 10 in the form of electrical signals traveling through a wire. As yet another example, if theelectronic communication device 10 comprised the handset of a portable telephone, phone communications would normally be delivered to the handset by way of short-range radio signals. - In at least one embodiment, the software resident on the
device 10 includes at least onephone application 56. Phone functionality provided to the user of thedevice 10 is implemented in part through thephone application 56. For example, thephone application 56 can permit the user to save and use speed dial numbers, record and view call logs, set call forwarding and voice mail options, select ringtones for incoming phone calls and other phone features. - The illustrated
phone application 56 includes an audio object conversion module 57 for carrying out format conversion in accordance with example embodiments of the invention. It will be understood that computer executable instructions of the conversion module 57 are also the computer executable instructions of thephone application 56 because of the fact that the conversion module 57 is a "module" of thephone application 56. Thus, it is convenient for the purposes of the present discussion to refer to theapplication 56 rather than the module 57. Those skilled in the art will appreciate that it may be an arbitrary decision to put certain code in one module rather than another. - Although the
phone application 56 is shown as a stand-alone application in the example embodiment shown in Figure 1, it will be appreciated that thephone application 56 may be implemented as a module or component of another application program or it may be implemented as a module or component of theoperating system 54. It will also be appreciated that modules explicitly or implicitly described as being modules of thephone application 56 might alternatively be modules or components of another application program (or the operating system 54). Any references herein to the phone "application" are intended to include applications, modules, subroutines, and any other software-based implementations that may be used to give effect to the functions described herein. The suitable programming of such software-based modules will be understood by those of ordinary skill in the art having regard to the description herein. - For the illustrated
device 10, incoming phone communications would normally be received from thewireless WAN 50 and initially processed by thecommunications subsystem 11. Following thecommunications subsystem 11 providing indication to themicroprocessor 38 that there is an incoming call, thephone application 56 causes the user of thedevice 10 to be notified of this incoming call. In some examples, thephone application 56 does this by "playing" music, meaning thephone application 56 attempts to read a stored audio object (for example, a ringtone file) in order that digital signals containing the music data of the audio object can be generated and sent by themicroprocessor 38 to the audio conversion component 35 (or to theDSP engine 33 if any DSP-related processing, such as decoding, is necessary). The generated digital signals can be translated by theaudio conversion component 35 into an analog music signal consisting of electrical impulses. These electrical impulses are sent to thespeaker 34. Thespeaker 34 translates the received electrical impulses into audible sounds so as to alert the user of the device to the incoming call. - One or more
audio objects 60 are stored in theflash memory 24. Thephone application 56 may designate one or more of theseaudio objects 60 and/or one or more portions of theseaudio objects 60 to be played when there is any incoming call, a particular type of incoming call (e.g. a call where the calling party has blocked call identification) and/or a call coming from a phone having a particular phone number that is familiar to the user. If the designatedmusic object 60 contains the music data for an entire song, it will be understood that perhaps only a portion of the designatedmusic object 60 will be played by thephone application 56. This is because of the likely possibility that after a preset period of time, for example after 20 to 30 seconds, the call might receive alternative handling. For example, the call might be forwarded to voice mail. As the music tracks of mainstream music artists are commonly several minutes in length, it might not be necessary or desirable to play an entire music file. - For PCM-based audio objects (for example, files, streams), the format is such that sounds are represented as digitally encoded sound waves. Examples of PCM-based formats include Wave, AU (or .au) format sound, and many others.
- Figure 2A graphically depicts sound data for an example PCM-based audio object between the time interval of t=0 and t=tq. The example PCM-based audio object depicted in the graph comprises a series of binary code words wherein each word represents an instantaneous value (point on the graph) of a periodically sampled and quantized analog signal. It will be noted that the depicted sound data possibly corresponds to a single musical note being played during the illustrated time interval, because the true analog signal for the interval portion appears to be a single sine wave rather than a sum of sine waves. When a ringtone is such that only a single note is played at any one moment in time during the playing of that ringtone, the ringtone may be described as being a monotonic ringtone.
- Figure 2B graphically depicts sound data for another example PCM-based audio object between the time interval of t=0 and t=tp. The depicted sound data may correspond to multiple musical notes being played simultaneously during the illustrated time interval, because the true analog signal for the interval portion appears to be a sum of sine waves. According to Fourier's analysis, any infinite signal can be decomposed into an infinite sum of sinusoids, though more importantly from a practical standpoint, those skilled in the art will appreciate that many signals can quite adequately be approximated as a finite sum of sinusoids. When a ringtone is such that multiple notes (and/or multiple synthesized musical instruments) are played simultaneously at any one moment in time during the playing of that ringtone, the ringtone may be described as being a polyphonic ringtone.
- As contrasted to the PCM-based audio object, the music data contained in the note-based audio object typically comprises an array of notes and durations. A very common example of a note-based audio object is a Musical Instrument Digital Interface (MIDI) file. A MIDI file includes a note-based description such that the start and end of a tone and/or the start of the tone and the duration of the tone are recorded as a function of time. Other examples of formats for note-based audio objects (some being less complex and others being more complex than MIDI) include Scalable Polyphony (SP) MIDI, General MIDI (GM), Ring Tone Test Transfer Language (RTTTL) and various proprietary note-based formats.
- A note-based audio object may be converted into a PCM-based audio object such as, for example, a PCM-based stream. The generic musical notes founding in a note-based audio object may also be described in terms of sinusoidal audio signals of a certain frequency. The higher the note, the higher the frequency of the associated audio signal (and vice versa).
- In the example embodiment illustrated in Figure 1, the
electronic device 10 is not capable of playing an audio object unless it is in PCM-based format. Accordingly, if the desired ringtone is found in one of theobjects 60 that has been stored in theflash memory 24 in a note-based rather than PCM-based format, the note-based object will need to be converted into a PCM-based object (typically a PCM-based stream) in order for it to be played by thephone application 56. In one example embodiment, themicroprocessor 38 performs the function of converting the note-based format audio object to a PCM-based object by calculating the appropriate code word for each sample point within the PCM-base object based on the note data. However this conversion process involves a large number of mathematical (and other) operations with floating point numbers, in particular sine and cosine calculations. In some embodiments, thedevice 10 may include a floating point unit (FPU), which is a device normally employed for the purpose of carrying out operations with floating point numbers, in order to carry out the conversion without a noticeable delay being incurred. However in many embodiments, thedevice 10 does not include an FPU and there are no DSP components practically accessible to carry out the needed mathematical calculations. Therefore, themicroprocessor 38 may need to carry out the floating point mathematical calculations in software, which may result in a significant delay of one or more seconds before theapplication 56 is able to play the PCM formatted stream. - In some embodiments according to the present application, the conversion of a note-based audio object to a PCM-based audio object is carried out through a method that minimizes the number of operations with floating point numbers. In particular, the conversion may be carried out with the use of a look-up table 62 (Fig. 1) stored within flash memory 24 (Fig. 1). The look-up table 62 may store a set of trigonometric function evaluations, such that when a trigonometric operation needs to be performed in the conversion process, the look-up table is used instead of performing the actual trigonometric operation.
- Figure 3 illustrates a
ringtone generation method 150 in accordance with at least one embodiment of the present application. Themethod 150 begins atstep 152 with the recognition of an incom ing call. As previously explained, thephone application 56 may identify an incoming call on the basis of a message or indicator provided by thecommunications subsystem 11. By receiving this indication, thephone application 56, in some examples, is actuated to take the necessary steps to permit playing of the audio object. - In
step 154, thephone application 56 may access the designated audio object. As explained above, the particular audio object designated for alerting the user to an incoming call may be a default ringtone, or it may be specific to the caller identity, or otherwise configurable by the user. Step 154 may include reading the object or otherwise determining it format-type. - In
step 156, thephone application 56 determines whether it is necessary to convert the audio object into PCM format. If not, then themethod 150 proceeds to step 158 wherein the PCM-format audio object is output to the speaker. It will be understood that thephone application 56 may output a PCM-format stream from the audio object to theaudio conversion component 35, which will generate the analog signal to drive the speaker and produce the audible ringtone. - If the
phone application 56 recognizes that conversion is required, i.e. that the audio object is in a note-based format, then fromstep 156 themethod 150 proceeds to step 160. Instep 160, the conversion process is intiated. In particular, in 160, 162, and 164, a PCM stream is constructed based upon the note information contained in the note-based format audio object. Insteps step 160, note-based data is extracted from the note-based audio object in and a PCM code word is generated for a first sample point (n=1). Instep 162, the sample point number, n, is incremented. Instep 164, if the conversion is complete, i.e. if no further PCM code words need be generated to convert the note-based audio object to a PCM-based stream, then themethod 150 continues atstep 158 wherein the PCM-based stream is output to the speaker. Otherwise, themethod 150 loops back to step 160 to generate the next PCM code word. - Step 160 involves the generation of a PCM code word based upon the note (i.e. frequency) data and duration or timing information contained in the note-based audio object. This conversion may require trigonometric operations for determining the PCM sample value (code word) at various sample points of a given note frequency. Accordingly, in accordance with the present application,
step 160 includes utilization of the look-up table 62 (Fig. 1) containing trigonometric function evaluations whenever a trigonometric operation is required in the conversion process. - In at least one embodiment, step 160 may include
160a, 160b, and 160c. I nsteps step 160a, a step size is determ ined based upon the note frequency, the sampling frequency, and the number of entries in the look-up table 62. The step size represents a 'distance' within the look-up table 62 traversed in each sample point increment when mapping a particular note frequency to PCM values. The sampling frequency may be configurable by a user or device manufacturer, but may be considered preset for the purposes of themethod 150. - In
step 160b, the step size and sample point number (n) are used to identify an entry in the look-up table. The entry identifies a PCM code word. Instep 160c, interpolation may be applied to pinpoint a PCM value falling between the entry identified instep 160b and the next entry in the look-up table 62. - It will be appreciated that the interpolation of
step 160c is not essential to obtain the trigonometric function values required by the instructions. For example, where the function evaluations table in the particular circumstance has a sufficiently large number of entries to avoid the need for interpolation, individual trigonometric function values required by the instructions can equal individual table entries. - The use of the look-up table to obtain trigonometric function evaluations prevents the need to carry out floating point mathematical calculations
- In some implementations, scaling and descaling operations may be applied within
160a, 1 60b, or 160c to facilitate easier manipulation and/or accuracy. In at least one embodiment, the scaling and descaling operations are implemented by way of bit-shift operations, so as to ease the computational burden.steps - An example conversion is now described. The conversion is based upon a look-up table having a number of entries M. A scaling factor Y and a descaling factor X are chosen such that Y/X = M. The example is based upon a sampling frequency fs . The sample point number, n, ranges from 0 to the maximum, which is determined from the sampling frequency fs and the duration of the audio.
- The note-based file provides a note frequency fn . The step size within the look-up table is directly related to the ratio between the note frequency fn and the sampling frequency fs . This ratio, multiplied by the sample point number, n, will lead to a location within the look-up table. It will be appreciated that the look-up table may be based upon a single cycle of a sinusoid; accordingly, as the "location" calculation begins to result in placements outside of the table then there is a "wrap-around" to the beginning of the look-up table. This operation may be performed by subtracting the location result by the number of entries in the table if the location result exceeds the number of entries in the table. Other mechanisms for implementing the wrap-around will be appreciated.
-
- The numerator K is used to pinpoint the selected entry within the look-up table for the given sample point number n. The remainder R is later used to interpolate between the selected entry and the next entry in the look-up table.
- To determine the location in the table, the numerator K is then descaled by the decaling factor X. The result provides an entry within the look-up table (subject to dealing with wrap-around, as discussed above).
- Once the selected entry is identified, then the remainder R is used to interpolate between the selected entry and the next entry in the table. In particular, the PCM code word value of the selected entry is subtracted from the PCM code word value of the next entry and the difference is multiplied by the remainder R. The resulting product is then added to the PCM code word value for the selected entry and this provides the PCM code word for sample point number n.
- In at least one example embodiment, the look-up table includes 32 signed entries ranging from -32767 to 32767. This range may be suitable for 16 bit, signed code words. The sampling frequency fs in this example may be preset to 24 kHz. A PCM code word is produced for each sampling point. Accordingly, in a one second interval the number of code words that would need to be generated would be 24,000.
- In this example, the scaling factor Y may be 131,072 and the descaling factor X may be 4096. It will be noted that ratio of the scaling factor Y to the descaling factor X is 32, which is the number of entries in the look-up table. Here the selected scaling factor of 131 ,072 is selected on the basis that it may be implemented by way of a bit-wise left-shift operation (by 17 bits) and the descaling may be implemented by way of a bit-wise right-shift operation (by 12 bits), allowing the operation to be performed using shift registers. As will be appreciated by those skilled in the art, bit-wise shifting is a convenient way to implement multiplication or division by factors of 2. In the present described example embodiment, the factor of 131,072 is selected on the basis that it provides the largest scaling factor implementable within a 32-bit register having regard to the maximum expected note frequency fn .
- It will also be appreciated that if the value of descaled K is greater than 32, then this value may be divided by the number of table entries, e.g. 32. It will also be appreciated that the division by 32 may be implemented by right-shifting the value by 5-bits.
- To further facilitate understanding, the following is an example of the above-described manipulations carried out with n=10 (10th sampling point), note frequency fn =262 Hz (middle C), and sampling frequency fs = 24,000 Hz. The 32 entry look-up table is as follows:
1. 0 9. 32767 17. -0 25. -32767 2. 6393 10. 32137 18. -6393 26. -32137 3. 12539 11 . 30273 19. -12539 27. -30273 4. 18204 12. 27245 20. -18204 28. -27245 5. 23170 13. 23170 21. -23170 29. -23170 6. 27245 14. 18204 22. -27245 30. -18204 7. 30273 15. 12539 23. -30273 31. -12539 8. 32137 16. 6393 24. -32137 32. -6393 - In this case, K is the whole number portion of (131,072 * 10 * 262)/24,000 or 14,308. R is the remainder portion of (131,072 * 10 * 262)/24,000 or 16,640/24,000. When K is divided by 4096, the result is 3, so entry number 3 is the selected table entry, which shows a PCM value of 12,539. The interpolation amount to be added to the third table entry is given by (18,204 - 12,539)* 16,640/24,000 or 3928. Therefore, in this example, the PCM code word that would be used is 12,539+3928 or 16,467.
- One skilled in the art will appreciate that the manipulations described above in connection with the example lookup table implementation can be carried out without requiring floating point trigonometric evaluations. Accordingly, where delay in audio object conversion is attributable to mathematical (and other) operations with floating point numbers, the impact of removing the need for trigonometric functions to be evaluated by way of floating point mathematical calculations could be a reduction in delay for the conversion process to complete.
- It will be understood that in some embodiments the ringtone produced by conversion is polyphonic rather than monotonic. The lookup table implementation in such circumstances could, in some examples, be similar to the example implementation described above, with trigonometric function values associated with musical notes that are played simultaneously with other notes being appropriately added together with the trigonometric function values of the other notes (sum of sinusoids) at each sampling moment where there exists simultaneity. Suitable scaling down of individual trigonometric function values prior to the adding together would ensure that the resultant value is within the valid range for PCM data.
- Audio object conversion has been described in the context of ringtones. In some embodiments, audio object conversion is carried out for purposes other than for generating of a ringtone. For example, audio object conversion might be carried out for other types of notification (for example, preset alarm notification) or entertainment purposes, such as music listening.
- Certain adaptations and modifications of the described embodiments can be made. Therefore, the above discussed embodiments are considered to be illustrative and not restrictive.
Claims (20)
- An electronic communication device (10), comprising:a memory (24, 26) containing a note-based audio object (60) and a lookup table (62) containing trigonometric function evaluations, said note-based audio object (60) containing note frequency information;a conversion module (57) for converting said note-based audio object (60) to a Pulse Code Modulated (PCM) stream having a plurality of sample points;a processor (38) for reading said memory (24, 26) and executing said conversion module (57),said conversion module (57) comprising computer executable instructions for generating a PCM value for each sample point based upon said note frequency and said trigonometric function evaluations; anda speaker (34), comprising a speaker driver, for receiving said PCM stream and outputting corresponding audio.
- The electronic communication device claimed in claim 1, wherein said computer executable instructions comprise instructions for selecting an entry from said look-up table (62).
- The electronic communications device claimed in claim 2, wherein said instructions for selecting an entry are arranged to make said selection based upon said note frequency information, a sampling frequency, and a sample point number.
- The electronic communications device claimed in claim 3, wherein said conversion module (57) is arranged to determine said PCM value based upon interpolation performed between said selected entry and a next entry in said look-up table (62).
- The electronic communication device claimed in claim 3 or claim 4, wherein said instructions for selecting comprise instructions for determining a step size within the look-up table (62) based upon a ratio between said note frequency information and said sampling frequency.
- The electronic communications device claimed in claim 5, wherein said instructions for determining are arranged to apply a scaling factor to said ratio to produce a numerator and a remainder, and to apply a descaling factor to said numerator, wherein the ratio between said scaling factor and said descaling factor equals the number of entries in said look-up table (62).
- The electronic communications device claimed in claim 6, wherein said instructions for slecting an entry are arranged to identify said selected entry based upon said descaled numerator, and wherein said instructions comprise instructions for interpolating between said selected entry and a next entry in said look-up table (62) based upon said remainder.
- The electronic communications device claimed in claim 6 or claim 7, wherein said device (10) comprises shift registers and wherein said scaling and descaling operations are implemented through bit-wise shifting using said shift registers.
- The electronic communications device as claimed in any preceding claim, further comprising a phone application (56) for establishing a voice call service over a wireless link, wherein said phone application (56) is arranged to launch said conversion module (57) on notification of an incoming call request, and wherein said note-based audio object (60) comprises a ringtone.
- The electronic communications device as claimed in any preceding claim, wherein said device (10) comprises a mobile handheld wireless device.
- A method of converting a note-based audio object (60) to a (Pulse Code Modulated) PCM stream by an electronic communication device (10), the electronic communication device (10) having a memory (24, 26) storing a lookup table (62) of trigonometric function evaluations, the memory (24, 26) also storing said note-based audio object (60), said note-based audio object (60) comprising note frequency information, said PCM stream having a plurality of sample points, said method com prising steps of:accessing said note-based audio object (60) to extract said note frequency information; andgenerating a PCM value for each sample point based upon said note frequency information and said trigonometric function evaluations.
- The method claimed in claim 11, wherein said step of generating comprises, for each sample point, selecting an entry from said look-up table (62).
- The method claimed in claim 12, wherein said selection is based upon said note frequency information, a sampling frequency, and a sample point number.
- The method claimed in claim 12 or claim 13, wherein step of generating said PCM value comprises a step of performing interpolation between said selected entry and a next entry in said look-up table (62).
- The method claimed in claim 13 or claim 14, wherein said step of selecting comprises a step of determining a step size within the look-up table (62) based upon a ratio between said note frequency information and said sampling frequency.
- The method claimed in claim 15, wherein said step of determining comprises applying a scaling factor to said ratio to produce a numerator and a remainder, and applying a descaling factor to said numerator, wherein the ratio between said scaling factor and said descaling factor equals the number of entries in said look-up table (62).
- The method claimed in claim 16, wherein said step of selecting further comprises identifying said selected entry based upon said descaled numerator, and interpolating between said selected entry and a next entry in said look-up table (62) based upon said remainder.
- The method claimed in claim 16 or claim 17, wherein said device (10) comprises shift registers and wherein said steps of scaling and descaling operations comprises steps of bit-wise shifting using said shift registers.
- The method claimed in any one of claims 11 to 18, further comprising a phone application for establishing a voice call service over a wireless link, and wherein said steps of accessing and generating are performed after said phone application receives notification of an incom ing call request, and wherein said note-based audio object comprises a ringtone.
- A machine readable medium executable upon the processor (38) of the device (10) claimed in any one of claims 1 to 10, for implementing the method of any one of claims 11 to 19.
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE602005008078T DE602005008078D1 (en) | 2005-11-17 | 2005-11-17 | Conversion of note based sound format to PCM based sound format |
| AT05110863T ATE400868T1 (en) | 2005-11-17 | 2005-11-17 | CONVERSION FROM NOTE BASED SOUND FORMAT TO PCM BASED SOUND FORMAT |
| EP05110863A EP1788553B1 (en) | 2005-11-17 | 2005-11-17 | Conversion from note-based audio format to PCM-based audio format |
| CA2568117A CA2568117C (en) | 2005-11-17 | 2006-11-14 | Conversion from note-based audio format to pcm-based audio format |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP05110863A EP1788553B1 (en) | 2005-11-17 | 2005-11-17 | Conversion from note-based audio format to PCM-based audio format |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP1788553A1 true EP1788553A1 (en) | 2007-05-23 |
| EP1788553B1 EP1788553B1 (en) | 2008-07-09 |
Family
ID=35945216
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP05110863A Expired - Lifetime EP1788553B1 (en) | 2005-11-17 | 2005-11-17 | Conversion from note-based audio format to PCM-based audio format |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP1788553B1 (en) |
| AT (1) | ATE400868T1 (en) |
| CA (1) | CA2568117C (en) |
| DE (1) | DE602005008078D1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9467774B2 (en) | 2012-02-10 | 2016-10-11 | Infineon Technologies Ag | System and method for a PCM interface for a capacitive signal source |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0600639A2 (en) * | 1992-12-03 | 1994-06-08 | International Business Machines Corporation | System and method for dynamically configuring synthesizers |
| US20030150319A1 (en) * | 2002-02-13 | 2003-08-14 | Yamaha Corporation | Musical tone generating apparatus, musical tone generating method, and program for implementing the method |
| EP1580725A2 (en) * | 2004-03-04 | 2005-09-28 | Sanyo Electric Co., Ltd. | Active matrix liquid display device |
-
2005
- 2005-11-17 EP EP05110863A patent/EP1788553B1/en not_active Expired - Lifetime
- 2005-11-17 AT AT05110863T patent/ATE400868T1/en not_active IP Right Cessation
- 2005-11-17 DE DE602005008078T patent/DE602005008078D1/en not_active Expired - Lifetime
-
2006
- 2006-11-14 CA CA2568117A patent/CA2568117C/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0600639A2 (en) * | 1992-12-03 | 1994-06-08 | International Business Machines Corporation | System and method for dynamically configuring synthesizers |
| US20030150319A1 (en) * | 2002-02-13 | 2003-08-14 | Yamaha Corporation | Musical tone generating apparatus, musical tone generating method, and program for implementing the method |
| EP1580725A2 (en) * | 2004-03-04 | 2005-09-28 | Sanyo Electric Co., Ltd. | Active matrix liquid display device |
Non-Patent Citations (4)
| Title |
|---|
| CURTIS ROADS: "Part 2, Sound Synthesis", THE COMPUTER MUSIC TUTORIAL, 1996, Cambridge, Massachusetts, pages 90 - 111, XP002371851 * |
| F. RICHARD MOORE: "Table Lookup Noise for Sinusoidal Digital Oscillators", COMPUTER MUSIC JOURNAL, April 1977 (1977-04-01), pages 26 - 29, XP009063145 * |
| JOHN SNELL: "Design of a Digital Oscillator That Will Generate up to 256 Low-Distortion Sine Waves in Real Time", COMPUTER MUSIC JOURNAL, 1985, pages 289 - 325, XP009063154 * |
| PAUL FIELD: "Fixed-Point Arithmetic", 19 May 2000 (2000-05-19), Internet, XP002371852, Retrieved from the Internet <URL:http://web.archive.org/web/20000519005515/http://www.accu.org/acornsig/public/caugers/volume2/issue6/fixedpoint.html> [retrieved on 20050313] * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9467774B2 (en) | 2012-02-10 | 2016-10-11 | Infineon Technologies Ag | System and method for a PCM interface for a capacitive signal source |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2568117A1 (en) | 2007-05-17 |
| ATE400868T1 (en) | 2008-07-15 |
| EP1788553B1 (en) | 2008-07-09 |
| CA2568117C (en) | 2012-09-18 |
| DE602005008078D1 (en) | 2008-08-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7069058B2 (en) | Musical composition reproducing apparatus portable terminal musical composition reproducing method and storage medium | |
| US8175525B2 (en) | Conversion from note-based audio format to PCM-based audio format | |
| EP1180896B1 (en) | Sound generating device and method for a mobile terminal of a wireless telecommuniation system | |
| CN101099209A (en) | Normalize the loudness of audio recordings | |
| US6255577B1 (en) | Melody sound generating apparatus | |
| EP1788553B1 (en) | Conversion from note-based audio format to PCM-based audio format | |
| KR101011286B1 (en) | Sound synthesizer | |
| US7151215B2 (en) | Waveform adjusting system for music file | |
| JP3603705B2 (en) | Sound source circuit and telephone terminal device using the same | |
| JP2000349862A (en) | Telephone device and method | |
| EP1394768A1 (en) | Sound synthesiser | |
| JP4385893B2 (en) | Coefficient interpolation circuit in data processing circuit | |
| US6972362B2 (en) | Method and device for generating electronic sounds and portable apparatus utilizing such device and method | |
| JP4400373B2 (en) | Data processing circuit | |
| EP1855268A1 (en) | Midi file playback with low memory need | |
| JP2929570B2 (en) | Sound output device | |
| JP2002033816A (en) | Voice synthesis data delay circuit by memory and voice synthesis method | |
| JP2002111800A (en) | Data transmission / reception system and electronic equipment | |
| JP2003188943A (en) | Portable terminal device and real-time playing method thereof | |
| JP2003036077A (en) | Portable audio equipment | |
| JP2004348145A (en) | Terminal device loaded with effector | |
| HK1050758B (en) | Sound source circuit and telephone terminal using it | |
| JP2002051114A (en) | Tone signal generation circuit | |
| JP2009128727A (en) | Electronic device capable of playing back music data | |
| JP2003202867A (en) | Electronic sound generating device and portable equipment using the same |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20051117 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA HR MK YU |
|
| 17Q | First examination report despatched |
Effective date: 20060814 |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| AKX | Designation fees paid |
Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| AXX | Extension fees paid |
Extension state: HR Payment date: 20051117 Extension state: MK Payment date: 20051117 Extension state: YU Payment date: 20051117 Extension state: AL Payment date: 20051117 Extension state: BA Payment date: 20051117 |
|
| GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA HR MK YU |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
| REF | Corresponds to: |
Ref document number: 602005008078 Country of ref document: DE Date of ref document: 20080821 Kind code of ref document: P |
|
| REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
| NLV1 | Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act | ||
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20081109 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20081020 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20081209 Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20081009 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| 26N | No opposition filed |
Effective date: 20090414 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20081130 |
|
| REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20081117 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20081009 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20081117 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20090110 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20080709 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20091130 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20091130 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20081010 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 602005008078 Country of ref document: DE Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 602005008078 Country of ref document: DE Owner name: BLACKBERRY LIMITED, WATERLOO, CA Free format text: FORMER OWNER: RESEARCH IN MOTION LTD., WATERLOO, ONTARIO, CA Effective date: 20140925 Ref country code: DE Ref legal event code: R082 Ref document number: 602005008078 Country of ref document: DE Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE Effective date: 20140925 Ref country code: DE Ref legal event code: R082 Ref document number: 602005008078 Country of ref document: DE Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN PATENTANWA, DE Effective date: 20140925 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 11 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 12 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 13 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 602005008078 Country of ref document: DE Ref country code: DE Ref legal event code: R081 Ref document number: 602005008078 Country of ref document: DE Owner name: MALIKIE INNOVATIONS LTD., IE Free format text: FORMER OWNER: BLACKBERRY LIMITED, WATERLOO, ONTARIO, CA |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20241128 Year of fee payment: 20 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20241126 Year of fee payment: 20 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20241126 Year of fee payment: 20 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R071 Ref document number: 602005008078 Country of ref document: DE |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20251116 |