Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS AND METHODS FOR GENERATING HAPTIC OUTPUT FOR ENHANCED USER EXPERIENCE
Document Type and Number:
WIPO Patent Application WO/2019/234191
Kind Code:
A1
Abstract:
Systems and methods for generating a haptic output from an audio signal having a continuous stream of sampled digital audio data are provided. A haptic processing system receives the digital audio data, analyses the digital audio data for processing and extracts haptic signals for generating a haptic effect through an actuator. The method includes passing the digital audio signal on through one or more dynamic processors, adjusting the dynamic range of the digital audio signal, extracting the signal envelope of the audio data, synthesising low-frequency signals from the extracted signal envelope, and enhancing the low-frequency content using a resonator. The haptic output is generated by mixing the digital audio signal with outputs from the different modules of the haptic processing system. An analytics module monitors, controls and adjusts the processing of the digital audio signal at the noise gate module, the compressor module and the envelope module to enhance the haptic output. The processed digital signal passes on through a low pass filter, a limiter, and a bell filter to remove unwanted frequencies, gain, and extend the frequency response respectively. The output signal is provided to a Digital-to-Analog (D/A) converter and finally fed to the actuator for producing haptic output. A detection module receives a first input from the output of the bell filter and the second input from the input audio signal, probes the signals at the first and the second inputs, and in the absence of the audio signal at both the inputs disables the haptic processing system and enters power saving mode.

Inventors:
BÜTTNER DANIEL (DE)
ROOS SEBASTIAN (DE)
AP DAFYDD GWYDION (DE)
WEBER MAXIMILIAN (DE)
MAZUR JAMES (DE)
Application Number:
PCT/EP2019/064876
Publication Date:
December 12, 2019
Filing Date:
June 06, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
LOFELT GMBH (DE)
International Classes:
G06F3/01; G06F3/16
Foreign References:
EP2624099A12013-08-07
US5832444A1998-11-03
US7979146B22011-07-12
US8378964B22013-02-19
US20090189748A12009-07-30
US8717152B22014-05-06
US201514828954A2015-08-18
Attorney, Agent or Firm:
RUSCHKE, Hans E. (DE)
Download PDF:
Claims:
CLAIMS

1. A haptic processing method for producing a haptic output from an input audio signal, the method comprising:

receiving the input audio signal simultaneously in a digital signal processing chain and an analytics module;

processing the input audio signal in the digital signal processing chain comprising at least one dynamic processor;

determining at least one control parameter in the analytics module using an RMS value and a peak value to set the at least control parameter in the at least one dynamic processor;

mixing a processed signal in a mixer module, the mixer module characterised to receive a predetermined proportion of the processed signal from a dry/wet module, an oscillator module, and a resonance module; and

driving an actuator to produce a haptic output.

2. The haptic processing method of claim 1, wherein the analytics module is characterised by:

analysing the input audio signal to the peak values and the RMS values for a fixed time period with varying window size;

determining the at least one control parameter by:

(a) determining the difference between the peak amplitude value and a pre- determined constant;

(b) determining the sum of the RMS value and the pre-determined constant; and

(c) calculating the minimum value determined at the step (a) and the step (b); applying the minimum value determined at step (c) to dynamically modulate the at least one control parameter of the at least one dynamic processors.

3. The haptic processing method of claim 1, wherein the input audio signal is processed in real time or in non-real time.

4. The haptic processing method of claim 1, wherein the input audio signal comprises a transient.

5. The haptic processing method of claim 4, wherein the presence of the transient invokes a transient handling process, the transient handling process performing the steps of:

passing the input audio signal simultaneously on to a fast envelope follower and a slow envelope follower;

calculating the difference in output values between the fast envelope follower and the slow envelope follower;

calculating a transient score based on the difference in the output values;

receiving a transient threshold;

deriving a transient binary based on the transient score;

wherein the transient binary is set to one (1) when the transient score is above the transient threshold, and

the transient binary is set to zero (0), when the transient score is below the transient threshold;

calculating a transient output by multiplying the transient binary with the transient score; providing the transient output to adjust the processing of a haptic data in the digital signal processing chain.

6. The haptic processing method of claim 1, wherein the RMS value is set to zero, when a transient is detected in the input audio signal.

7. A haptic processing system for producing a haptic output data from an input audio signal, the haptic processing system comprising: a digital signal processing chain for processing the input audio signal comprising at least one dynamic processor, the at least one dynamic processor configured to receive at least one control parameter; and an analytics module associated with the at least one dynamic processor, the analytics module comprising:

an input signal analyzer and RMS generator module to calculate an RMS value of the input audio signal for a fixed time period;

a peak analyzer module to calculate a peak signal value of the input audio signal for a different fixed time period; and

the analytics module performing the steps of:

(a) determining the difference between the peak amplitude value and a pre- determined constant;

(b) determining the sum of the RMS value and the pre-determined constant; and

(c) calculating the minimum value determined at the step (a) and at the step (b); applying the minimum value determined at step (c) to dynamically adjust the at least one control parameter of the at least one dynamic processor.

8. The haptic processing system of claim 7, wherein the at least one dynamic processor is a noise gate or a compressor.

9. The haptic processing system of claim 7, further comprising an envelope follower module configured to receive the at least one control parameter from the analytics module.

10. The haptic processing system of claim 7, further comprising a preset module configured to set a control value to one or more modules comprising a bell filter module, a limiter module, a low pass filter module and a mixer module, wherein:

the mixer module is characterised to receive a predetermined proportion of the processed signal from a dry/wet module, an oscillator module, and a resonance module; and the predetermined proportion is set using the preset module.

11. The haptic processing system of claim 7, wherein the input audio signal comprises a transient.

12. The haptic processing system of claim 11, wherein the analytics module comprising a transient detection module, the transient detection module performing the steps of:

detecting the transient in the input audio signal by passing the input audio signal simultaneously on to a fast envelope follower and a slow envelope follower;

calculating the difference in output values between the fast envelope follower and the slow envelope follower;

calculating a transient score based on the difference in the output values;

receiving a transient threshold;

deriving a transient binary based on the transient score, wherein the transient binary is set to one (1) when the transient score is above the transient threshold; and

the transient binary is set to zero (0), when the transient score is below the transient threshold;

calculating a transient output by multiplying the transient binary with the transient score; and

providing the transient output to adjust the processing of the haptic output in the digital signal processing chain.

13. A computer readable medium having encoded instructions embodied thereon, that when executed by a processor, provides a haptic output based on an input audio signal, the encoded instructions embodied on a computer readable medium performing the steps of:

receiving the input audio signal simultaneously in a digital signal processing chain and an analytics module;

processing the input audio signal in the digital signal processing chain comprising at least one dynamic processor; determining at least one control parameter in the analytics module using an RMS value and a peak value to set the at least one control parameter in the at least one dynamic processor; mixing a processed signal in a mixer module, the mixer module characterised to receive a predetermined proportion of the processed signal from a dry/wet module, an oscillator module, and a resonance module; and

driving an actuator to produce a haptic output.

14. The computer readable medium of claim 13, wherein the input audio signal comprises a transient.

15. A computer readable medium of claim 14, wherein the presence of the transient invokes a transient handling process, the transient handling process performing the steps of:

passing the input audio signal simultaneously on to a fast envelope follower and a slow envelope follower;

calculating the difference in output values between the fast envelope follower and the slow envelope follower;

calculating a transient score based on the difference in the output values;

receiving a transient threshold;

deriving a transient binary based on the transient score;

wherein the transient binary is set to one (1) when the transient score is above the transient threshold, and

the transient binary is set to zero (0), when the transient score is below the transient threshold;

calculating a transient output by multiplying the transient binary with the transient score; providing the transient output to adjust the processing of a haptic data in the digital signal processing chain.

Description:
SYSTEMS AND METHODS FOR GENERATING HAPTIC OUTPUT

FOR ENHANCED USER EXPERIENCE

FIELD OF THE INVENTION

[0001] The present invention relates to haptic processing system to generation of a haptic response. More specifically, the invention relates to digital audio signal processing to generate a haptic output in an actuator.

BACKGROUND

[0002] Haptic usually refers to a sense of touch provided to a user as a feedback force or vibration on a user interface of an electronic device. The feedback force can provide information to the user. With technological advancement, user interfaces are now integrated with haptic interfaces that provide haptic feedback. Mobile devices, gaming devices, and automobiles are now integrated with haptics to provide a better user experience. An important element of providing user feedback is the processing of the audio signal to convert the audio signal into a haptic response. The haptic response drives an actuator to provide vibration in response to a touch on a user interface. Another application of haptics is to provide real time experience to a user by inducing vibration in the human body along with audio. This application is widely used in headsets, headphones, wearable straps, and other devices. All these applications require processing of the audio signal to extract a haptic response from the audio signal in real time. The user experience in haptics is widely influenced by the haptic processing system that converts the input audio data to generate a haptic response. User experience is usually controlled by the ability of the haptic processing system to process and generate a good haptic effect.

[0003] Several technologies provide different implementations to provide haptic output from the input audio signal, for example, US Patent 7,979,146 provides a system and method for automatically converting the received audio signal into haptic events by separating the audio signal into a number of sub-bands and segments. The sub-band signal is then converted into a number of events. The system assigns haptic events to specific sub-bands that generate a haptic response in an actuator. The system provides different parameters related to frequency characteristics, actuator parameters, and minimum time separation for generating a haptic response.

[0004] Similarly, US patent 8,378,964 extends the technology. It provides a structured representation of haptic events. The method calculates the event score for different channels and, based on cumulative score, assigns haptic events to specific channels to generate a haptic response in an associated actuator.

[0005] US patent application 20090189748 provides a method and an associated device for processing an audio signal and/or a video signal to generate haptic excitation. A haptic excitation generating unit generates haptic excitation on specific body parts of the user by generating airflow through a vent. Accordingly, the haptic excitation is conveyed to the user body.

[0006] US patent 8,717, 152 describes a haptic effect conversion system using a waveform.

Audio frames from an audio source are intercepted by the haptic conversion system to generate a haptic signal, which is passed on through an actuator to produce haptic effects. The haptic signal is based on a maximum value of each audio data frame, which defines a magnitude of the haptic signal.

[0007] The current state of technology provides different techniques to process audio signals to generate a haptic signal that can be passed on to the actuator to generate a haptic effect. However, no state of the art technology provides additional analytics and processing to amplify suppressed frequencies, handling of transients, dynamic updating of parameters in different dynamic processors for creating a haptic signal that enhances the user experience. [0008] The present invention uses several techniques to enhance the haptic experience of the user by using each digital audio data sample, utilizing side-chaining, resonance and physical modules, utilising the average value of amplitude and other associated modules to provide an improved and continuous haptic experience. Another problem associated with present haptic conversion system is the lack of haptic response in the absence of adequate low frequencies. If the audio signal has a stream of high frequency components, most of the high frequencies are attenuated during filtering of the audio signal, thereby producing no haptic response. In addition, certain low frequency components, although present, were eliminated during the filtering and the processing stages. This results in deprecated user experience. Ideally, the haptic processing system should provide a real time haptic effect in order to provide an enhanced user experience with an audio-tactile effect. A rich user experience can be provided if the audio signal is processed in real time with minimum delay, each audio signal data sampled is processed and analysed, and low-frequencies are amplified and/or appended to produce a haptic effect.

[0009] Accordingly, the technology in the present invention provides methods and systems of efficiently and effectively processing audio signals to produce haptic output by using one or more dynamic processors, physical resonance modules, and mixers for digital signal processing. An analytics module simultaneously monitors and controls the haptic output for enhanced user experience.

SUMMARY OF THE INVENTION

[00010] Systems and methods of the present invention disclose a haptic processing system.

The haptic processing system includes a digital signal processing chain and an analytics module. The digital processing chain comprises down sampler, a low pass filter, at least one dynamic processor, at least one compressor, at least one envelope follower, at least one oscillator, at least one resonance module, at least one mixer, at least one bell filter, at least one limiter and other modules. The analytics module, which also receives the audio input signal, acts independently and controls the digital processing chain. The analytics module passes parameters to control the processing of audio signal in the digital signal processing chain.

[00011] At least one analytics module controls at least one parameter in the digital processing chain. The at least one parameter is a gain, threshold, RMS/peak value, attack, release, makeup-gain, knee or other parameters. The analytics module modulates the processing of audio signal in the digital signal processing chain. Alternatively, the analytics module adjusts the processing of the audio signal in the digital signal processing chain at a specific interval of time. The time interval varies between 1 millisecond second to 1 second. The analytics module dynamically changes the processing of the input audio signal in the digital signal processing chain in real time. Alternatively, the analytics module can alter the processing of audio signal in the digital signal processing chain in non-real time. The input audio signal is received at the input of the digital signal processing chain, which is passed on to a pre-processing module. The pre- processing module down samples the input audio signal into an acceptable sampling rate that can be processed by at least one dynamic processor. The input audio signal is either a digital input signal or an analog input signal, which is converted into a digital signal using an Analog to Digital (A/D) convertor.

[00012] The preprocessing module filters the input audio signal. Additionally, it can increase the gain of the input audio signal. The preprocessing module is bypassed if the received audio input signal is at an acceptable sampling rate. The output of the pre-processor module is provided to at least one dynamic processor. The dynamic processor can be a noise gate, a compressor or a gain control processor or any combination of the same. The noise gate includes a detector module, a sidechain module, and a threshold module. The threshold module receives the control parameters from the analytics module. A sidechain module receives a part of the signal from the noise gate module. Alternatively, the sidechain can receive input signal from a preprocessing module, at least one of the dynamic processors, or directly the input audio signal.

[00013] When the input signal is received at the sidechain module either from the noise gate module or the input audio signal, the detector associated with the sidechain module detects whether the received signal is above or below a threshold level. If the signal is above the threshold level, the noise gate opens to pass on the received signal. However, if the received signal is detected to be below the threshold level, the noise gate closes to attenuate the received signal by a gain factor. The gain factor is a gain reduction, which is applied to the received input signal.

[00014] The analytics module simultaneously receives the input audio signal and calculates one or more control parameters based on input audio signal characteristics. The analytics module then passes the parameters on to the noise gate to set at least one control parameters, for example, a threshold level in real time. Alternatively, the analytics module passes more than one control parameter to set at least the threshold level and/or gain in more than one dynamic processors. The passed parameters are dynamically updated at each instant of time.

[00015] The analytics module receives input audio signal before the digital signal processing chain in a different implementation. In another variation, the input audio signal that is fed to the digital signal processing chain is delayed by a predetermined time, which varies from 1 millisecond to 100 milliseconds. The analytics modules includes predictive algorithms that monitor the input audio signal in real time and predict the parameters to be provided to at least one or more dynamics processors.

[00016] A part of the input audio signal or an input signal from a preprocessing module or an input signal from the gain controller module is also provided to a dry/wet module. Additionally, the dry/wet module receives signal from at least one or more dynamic processors or gain control processors. The received input signals are mixed in a predetermined proportion and passed to a dual filter. In one variation, the ratio of the dry/wet signal is controlled dynamically by the analytics module and/or the ratio of the dry/wet signal is controlled by a preset module.

[00017] The predetermined proportion is a constant value but in other variations adjustable by either the software program or through a user interface.

[00018] The output signal from at least one dynamic processor is passed on to another dynamic processor, which is either a compressor or a gain control processor. The compressor reduces the dynamic range of the received signal.

[00019] The sidechain module is associated with one or more dynamic processors such as a compressor or a gain control processor. The compressor includes at least a detector module and a threshold module. In a different implementation, the detector module and the threshold module are independent modules and associated with dynamic processor such as a noise gate, a compressor, and a gain control processor.

[00020] The output of the compressor module is provided to an envelope follower module, which converts the high-frequency signal into a low-frequency signal. In addition, it transforms the bipolar input signal into a unipolar output signal. The output of the envelope follower is provided to an oscillator module that modulates the received audio signal. Parallelly, the output signal from the compressor module is also provided to a resonance module that (a) amplifies suppressed low frequencies; (b) excitates physical models of string, membrane, plate or other musical instrument models based on the input audio signal; and (c) adds low frequencies to the output signal. A mixer module mixes the output signal from the dry/wet module, the oscillator module, and the resonance module. The output of the mixer module is passed on to a low pass filter, a limiter module, a bell filter module and an actuator to produce haptic output.

[00021] The haptic processing system comprises a digital signal processing chain, an analytics module, and a preset module. Although in some variations, haptic processing system comprises a digital signal processing chain and an analytics module. The digital signal processing chain includes an audio input signal, a pre-processing module, a signal detection module, one or more dynamic processors or gain controller processor modules, a dry/wet module, an envelope follower module, an oscillator module, a resonance module, a mixer module, at least one dual filter module, at least one limiter module, at least one filter module, and other modules. In one variation, the digital signal processing chain includes a boost controller module. The digital signal processing chain is the path of the signal flow from the input audio signal to the haptic output signal which drives an actuator.

[00022] The analytics module includes a peak analyzer module, a transient detection module, an input signal analyzer and RMS generator module, a sidechain module, a detector and threshold module, a predictive and intelligence module, a gain controller module, and a frequency gain controller module. The analytics module performs all the calculations related to peak detection, root mean square (RMS) values, and transient detection. The analytics module calculates parameters that are required to be passed on to the first gain control processor and the second gain control processor or to one or more dynamic processors. Furthermore, the analytics module also provides control parameters to the envelope follower module and a dual filter module.

[00023] The analytics module includes a peak analyzer module, a transient detection module, an input signal analyzer and RMS generator module, a sidechain module, a detector and threshold module, a predictive and intelligence module, a gain controller module, and a frequency gain controller module which are directly connected to each other. Alternatively, some of the modules in the analytics module are directly connected to each other, whereas some of the other modules are indirectly connected to each other, that is, these modules exchange parameters by function calls, memory referencing, shared memory or pointers. In another alternate arrangement all the modules are directly and indirectly connected to each of the other modules.

[00024] The one or more control parameters passed on by the analytics module are related to at least a threshold level and/or a gain reduction.

[00025] A preset module passes one or more control parameters to set values in the dual filter module, the limiter module, the filter module, and the up-sampling module. The parameter provided by the preset module is utilised to control the input audio signal without interfering with the digital signal processing chain. In addition, the preset module can also pass a parameter to mixer module in one variation

[00026] The input audio signal is passed on to the root mean square module, which is temporarily set to zero, when a transient is detected in the input audio signal.

[00027] The dual filter module receives parameters from the analytics module and the preset module independent of the digital signal processing chain.

[00028] A haptic processing system for real-time and non-real-time signal processing of an input audio signal comprises: an analytics module further comprising a transient detection and analysis module; a peak analyzer module; an input signal analyzer and root mean square module; a sidechain module and a detector and threshold module configured to detect if the input audio signal is below or above a threshold value, wherein the determined values are passed on to a predictive and intelligence module; a gain controller module associated with the predictive and intelligence module that determines gain reduction parameters, wherein the predictive and intelligence module applies predictive algorithms to determine parameters to be applied to at least one dynamic processor associated with a digital signal processing chain to modulate a threshold level and a gain reduction in real time to produce a haptic output.

[00029] The transient processing system can be implemented in a medical device, an audio device, an electronic device or some other device.

[00030] A haptic processing system and method for detection and processing of a transient present in an audio input signal for generating a haptic output is disclosed. The haptic processing system comprises a digital signal processing chain and an analytics module. The input audio signal is simultaneously provided to the digital signal processing chain and the analytics module. The analytics module includes a transient analysis detection module to detect the presence of a transient in the input audio signal. When the transient is detected, the transient analysis detection module passes the received signal to a fast envelope follower and a slow envelope follower and calculates the difference in output values between the fast envelope follower and slow envelope follower. The difference in output values is preferably decibels (dB) and is utilized to calculate a transient score. The transient analysis detection module also receives a transient threshold. In different variations, the transient threshold is provided by the detection and threshold module or it can be calculated in the transient analysis detection module. Subsequently, a transient binary is determined based on the transient score. The transient binary is a binary, which is either one (1) or zero (0). The transient binary is directly proportional or inversely proportional to the transient score. If the transient score is above the transient threshold, the transient binary is set to one (1) otherwise the transient score is set zero (0). A transient output is calculated by multiplying the transient binary with the transient score. The transient output is then provided to the digital signal processing chain to control or adjust the processing of haptic data or the haptic output.

[00031] The input signal analyzer and RMS generator module associated with the analytics module temporarily sets the root mean square value to zero (0) on detection of the transient.

[00032] The analytics module controls the opening and closing of the dual filter having two cut-off frequencies. The first cut-off frequency is fl and the second cut-off frequency is f2. In a different variation, the dual filter a band pass filter enabled to shift a lower cut-off frequency fl and an upper cut-off frequency f2 to a higher cut-off frequency fl' and a higher upper cut-off frequency f2' respectively.

[00033] Methods and systems for processing haptic data from an input audio signal to produce haptic output is disclosed. The haptic processing system comprises of a digital signal processing chain and an analytics module. The haptic processing system receives the input audio signal. The input audio signal is processed in the digital signal processing chain having one or more dynamic processors or gain control processors. The analytics module analyzes the input audio signal characteristics to select at least one predictive algorithm for generating the haptic output. The selected predictive algorithm is trained using one or more datasets stored in the memory and/or using one or more control parameters calculated in the analytics module. One or more control parameters calculated in the analytics module are based on instantaneous RMS values, instantaneous peak values, transients and other input signal parameters. The parameters include at least one instantaneous gain parameter and/or a instantaneous threshold parameter. The control parameters are dynamically updated in real time. The memory stores preprogrammed haptic waveforms corresponding to audio events. The haptic waveforms stored in the memory can be dynamically updated by the analytics module. The predictive algorithm can predict control parameters to modulate or control the digital signal processing chain and/or play a stored haptic output using one or more actuators and one or more booster actuators. The predictive algorithm controls or modulates at least one dynamic processor or gain control processor in real time based upon prior learning.

[00034] The predictive algorithm is trained using real-time data or non-real time data.

[00035] The predictive algorithm is trained for prediction using one or more supervised learning or one or more unsupervised learning algorithms. The one or more control parameters is an amplitude, a threshold, a gain, a phase or some other parameter related to the input audio signal characteristics.

[00036] The predictive algorithms can determine the type of sound to be appended or amplified based upon the input audio characteristics. The prediction algorithm can look ahead and use fuzzy logic to append or amplify the sound based on a string, plate, or membrane.

[00037] Systems and methods for processing an input audio signal to generate haptic experience is disclosed. A haptic processing method receives the audio input signal in a digital signal processing chain and an analytics module. The input audio signal is processed in at least one gain controller and one or more gain control processors. The analytics module processes the input signal to determine at least one or more control parameters, which are passed to one or more gain controllers to modulate the processing of the input audio signal in the digital signal processing chain. The digital signal processing chain comprises of one or more actuators/master actuators and one or more booster actuators for generating haptic experience. The haptic processing method generates the haptic output through one or more actuators/master actuators. In addition, one or more booster actuators are connected to a boost controller, which controls the triggering of the booster actuators for haptic output. The triggering of the booster actuators is based on at least one control parameter or the audio input signal characteristics. The booster actuators generate haptic output in synchronization with master actuators.

[00038] The booster actuators is triggered based on at least one control parameter from the analytics module and a mixer module. Alternatively, the booster actuators is triggered based on at least one control parameter from the analytics module and a physical resonance module or an oscillator module. The booster actuators are controlled by a boost controller module that resides in the predictive and intelligence module associated with the analytics module. In another implementation, the booster actuators are controlled by a boost controller module that resides in the predictive and intelligence module associated with the analytics module and the boost controller module or LR boost controller module.

[00039] The actuators/master actuators and one or more booster actuators can be configured in stereophonic or quadraphonic arrangement. The stereophonic arrangement utilizes at least one haptic processing module or at least one haptic processing system. The quadraphonic arrangement utilizes at least two or more haptic processing modules or at least two or more haptic processing systems.

DETAILED DESCRIPTION OF THE INVENTION

[00040] As used herein, the term“input audio signal”,“received signal”,“processed signal” are intended to broadly encompass any type of audio signal including analog audio signals, digital audio signals, audio data, audio signals embedded in media programs including signals embedded in video or audio programs that can be rendered using a rendering device capable of reproducing any other type of audio or media program connected to a network or operating independently. It also encompasses live media, linear media and interactive media programs such as music, games, online video games or any other type of streamed media program with embedded audio.

[00041] The term“haptic output” or“haptic signal” or haptic experience as used herein shall include a haptic signal produced by processing an input audio signal or derived by utilizing digital signal processing, analog signal processing or digital and analog signal processing of the input-output signal. The haptic output or haptic signal relates to the sense of touch, in particular to the perception and manipulation of objects using the senses of touch and perception to provide an enhanced experience to a user.

[00042] The term“digital signal processing” or“haptic signal processing” is intended to be interpreted broadly to include the processing of a digital signal or an analog signal to derive haptic data, haptic feedback, haptic experience or haptic output to the user.

[00043] Furthermore, the present invention and its advantages are best understood by referring to the illustrated implementation and its variations depicted in the accompanying drawings, in which like numbers designate like parts. The present invention may, however, be embodied in numerous devices for haptic signal processing and should not be construed as being limited to the exemplary implementations set forth herein. Exemplary implementations and their variations are described below to illustrate the present invention by referring to the figures.

[00044] Fig. 1 depicts a haptic processing system 100A in an embodiment of the present invention. The haptic processing system 100A includes at least one processor 110, a coprocessor 118, a communication module 116 and an input/output module 114, a memory 102 and some other modules. The memory 102 comprises an operating system 104, one or more applications 106, and a haptic module 108. The haptic module 108 can include executable instructions to produce a haptic signal from an audio signal for providing haptic feedback or haptic experience. An interface bus 112 provides data communication between the memory 102, the at least one processor 110, the coprocessor 118, the input/output module 114 (also referred to as I/O module 114), the communication module 116 and other modules not shown in Fig.1.

[00045] The interface bus 112 facilitates the transfer of digital and analog data among various interconnected modules. Additionally, it provides power to different modules through a power supply and also enables the exchange of data, information, trigger interrupts and perform some other type of functions.

[00046] The at least one processor 110 and coprocessor 118 is enabled to provide hyper threading, multi-tasking, and multi-processing. Alternatively, the processor 110 can be a special purpose processor or some other type of microprocessor capable of processing analog or digitalized audio signals. The processor 110 and the coprocessor 118 can implement special hardware that is enabled digital signal processing, for example, MMX technology provided by Intel®. MMX technology provides an additional instruction set to manipulate audio, video, and multimedia.

[00047] The processor 110 can be an MMX, SSE, SSE2 (Streaming SIMD Extensions 2), SSE3 (Streaming SIMD Extensions 3), SSSE3 (Supplemental Streaming SIMD Extensions 3), SSE4 (Streaming SIMD Extensions 4) including the variants SSE 4.1 and SSE4.2, AVX (Advanced Vector Extensions), AVX2 (Haswell New Instructions), FMA (Fused multiply-add) including FMA3, SGX (Software Guard Extensions), MPX (Memory Protection Extensions), Enhanced Intel SpeedStep Technology (EIST), Intel® 64, XD bit (an NX bit implementation), Intel® VT-x, Intel® VT-d, Turbo Boost, Hyper-threading, AES-NI, Intel® TSX-NI, Intel® vPro, Intel® TXT, Smart Cache or some other type of implementation for processor.

[00048] The processor 110 or the coprocessor 118 can be a soft processor such as the MicroBlaze® processor that can include at least one microcontroller, real-time processor, an application processor and the like.

[00049] The coprocessor 118 enhances haptic signal processing in gaming consoles or acts in unison with the processor 110 to speed up the haptic signal processing for real-time haptic feedback. The haptic processing system 100 can include a graphics co-processor, a motion- coprocessor, a DSP co-processor or some other type of co-processor that facilitates processing of digital signal processing or some other type of processor.

[00050] The haptic processing system 100A can be implemented using a single processor or a microprocessor with a general purpose instruction set to reduce overheads and memory usage. Furthermore, the single processor implementation can be easy to maintain, concentrated on executing a single task, for example, haptic signal processing, and can be more durable due to a simple architecture. Also, the single processor can allow embedding a haptic processing system 100A into small consumer electronics such as electronic watches, fitness bands, wearable subwoofers, earphones and the like.

[00051] The memory 102 can be a Read-Only Memory (ROM), Random- Access Memory (RAM), digital storage, magnetic tape storage, flash storage, solid-state device storage or some other type of storage device. The program instructions is stored in the memory 102 as encoded instructions. The memory 102 can store encrypted instructions, source code, binary code, object code, encrypted compiled code, encoded executable code, executable instructions, assembly language code or some other type of computer readable instructions. Furthermore, the type of memory utilised for storing the haptic module 108 in a device depends upon various parameters. These parameters can include shape, size, function, and configuration of the device implementing haptic processing system 100A. For example, the device is a headphone, headset, gaming console, laptop, wearable device, mobile phone, phablet, tablet, iPad, gaming pad, wearable electronic device, Bluetooth watch, haptic band or medical device implementing haptic feedback such as, but not limited to, blood pressure meters, glucose meters, blood counters or some other type of electronic device.

[00052] The at least one processor 110 and the coprocessor 118 can operate in synchronization to execute instructions stored in haptic module 108. For example, the co-processor 118 can execute complex mathematical instructions to reduce execution load on the processor 110. Alternatively, the processing workload can be hardcoded in the program instructions stored in the haptic module 108 and can be executed in the sequence as provided in the program. The haptic module 108 can have associated specialized hardware for digital signal processing.

[00053] The communication module 116 can interface with external devices/applications via wired or wireless communication. For example, the communication module 116 can connect to a server 130 via wired cable. Likewise, the communication module 116 can facilitate the transfer of data and information or update any application in the haptic processing module 100A from the cloud 140.

[00054] Additionally, the haptic module 108 can be connected to a distributed network 150 via a wireless or wired network for updating the binary code as and when the updates to the software are available. In other variations, the updates can be transferred over a secure wireless connection over the Internet implementing well known encryption techniques and protocols. The communication module 116 can connect with one or more different servers to download updates.

[00055] The communication module 116 can be connected to an electronic device, which can download the binary code for updating the haptic processing module 100A. The haptic processing module 100A can be connected to any electronic device such as a laptop, mobile device, desktop and the like. Alternatively, the electronic device can be connected by a wired connection such as but not limited to a Universal Asynchronous Receiver-Transmitter (UART) or via some other serial communication mode. Alternatively, it is updated using a Universal Serial Bus (USB) and the like.

[00056] The I/O module 114 can be connected to one or more input/output devices like a display 122, a speaker 124, an actuator 126 and a gaming interface 128 using a wired connection. For example, the I/O module 114 is implemented in a single device and all I/O devices are connected with each other using a wired connection.

[00057] The I/O module 114 can connect with display 122 using a mini display port, microdisplay port, DDM, display stream compression, eDP, iDP, PDMI, wDP, SlimPort, DisplaylD, DockPort, USB-C, HDMI, DVI, VGA, FPD-Link or some other type of connection.

[00058] Alternatively, the I/O module 114 can be connected wirelessly to one or more input/output devices like the display 122, the speaker 124, the actuator 126 and the gaming interface 128. For example, the haptic module 108 can be implemented in a distributed environment. The haptic module 108 can be implemented in a modular form, wherein some modules are implemented in the actuator 126 and other modules are implemented in memory 106. The actuator 126 can communicate wirelessly with the haptic processing system 100 A to produce haptic feedback. The communication module 116 can be implemented using a wireless protocol such as but not limited to Bluetooth, Bluetooth Low Energy (BLE), ZigBee, Z-Wave, 6L0WPAN, Thread, WiFi-ah (HaLow), IEEE 802.11, GSM including 2G, 3G, 4G and 5G, LTE Cat 0, 1, & 3, LTE-M1, RFID, NFC, ANT & ANT+ (Samsung Devices), WirelessHART (open wireless standard), DigiMesh, and MiWi.

[00059] The haptic processing modules 100A also implements wireless protocols such as 802.11 a/b/g/n and other variants of the 802.11.

[00060] Additionally, the haptic processing modules 100A can also implement wireless audio standards such as but not limited to Bluesound, Bose SoundTouch, Denon HEOS, NuVo Gateway, Pure Audio Jongo, Samsung Shape, and LG's NP8740.

[00061] Furthermore, the haptic processing modules 100A can implement amplitude modulation or frequency modulation to receive a radio signal, which is broadcasted by a broadcasting device or broadcasting station.

[00062] The I/O module 114 is enabled to support one or more actuators like the actuator 126. The actuator 126 can include at least one sensor or at least one transducer. Alternatively, the actuator 126 can be a piezoelectric actuator, electroactive polymer (EAP) actuator, an electromagnetic actuator, voice-coil actuator, a solenoid, a linear resonant actuator (LRA), a motor or some other type of transducer capable of providing haptic output. However, for the sake of simplicity, only one actuator 126 has been shown in illustrative Fig. 1.

[00063] The haptic module 108 can be integrated into one or more devices. For example, the haptic processing system 100A can be implemented in an embedded device. Examples of the embedded devices include but are not limited to headsets, headphones, mobile devices, gaming consoles, gaming controllers, virtual/augmcntcd/mixcd reality controllers, virtual/augmented/mixed reality headsets, handheld electronic devices, wearable electronic devices, cameras, joysticks, tablets and PDAs.

[00064] The haptic processing system 100A can be embedded in a microchip or a micro- controller.

[00065] The haptic processing system 100A can be implemented on a System on a Chip (SoC). The implementation of the haptic processing system 100 A in the system on a chip can be around a microcontroller or around a microprocessor. [00066] In another embodiment, the haptic processing system 100A can be implemented on a programmable system on chip (PSoC).

[00067] The haptic processing system 100A can be implemented in a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), a system in package (SiP) comprising a one or more chips in a single package, an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), or by using analog components such as but not limited to FET, Transistors, Integrated circuits, capacitors, resistors, inductors or any combination thereof. In addition, the

[00068] In addition, the haptic processing module 100A can be implemented in software in the haptic module 108. Furthermore, the software instructions implemented in haptic module 108 can be encoded in the memory.

[00069] The haptic module 108 can be programmed into the memory. The software instructions can be implemented assembly language, binary code, machine language, high-level programming language or any combination of these languages.

[00070] Alternatively, the haptic processing system 100A can be implemented as a combination of software and hardware..

[00071] Referring to Fig. 1B, in an embodiment of the present invention, a high-level modular architecture of the haptic module 108 is provided. The haptic module 108 can be implemented as software or as a combination of software and hardware. Alternatively, the haptic module 108 can be implemented in a modular arrangement, wherein some of the modules can be implemented in a device A and other modules can be remotely implemented in another device B. For example, one or more modules can be implemented in a headphone or headset (device A), while other modules can be implemented in another device B. The device B can be a wearable watch, a base station, an electronic processing device, a gaming console, a musical instrument or some other type of electronic processing device.

[00072] The haptic module 108 receives an audio input signal 162. The audio input signal 162 can be a digital signal or an analog signal. The audio input signal 162 can be monophonic, stereophonic, quadraphonic, multichannel audio formats (e.g. 2.1, 4.1, 5.1, 7.1 or some other type of surround sound formats), or a digital standard such as S/PDIF, HDMI, TOSLINK, PS, Dolby Digital Plus, AES50, HyperMAC, USB, Firewire, Thunderbolt, Apple Lightning or some other type of digital formats.

[00073] The input audio signal 162 is passed on to the pre-processing module 164. The pre- processing module 164 processes and transforms the input audio signal 162 and converts it into a suitable form for producing haptic output. The preprocessing module 164 filters, transforms, down-samples, up-samples or performs other functions. The preprocessing module 164 then passes the processed signal on to one or more dynamic processors 166A to 166N. In addition, the input audio signal 162 can also be provided to an analytics module 170. The dynamic processor 166 can be a specialised type of processor including but not limited to a noise gate, a compressor, and a limiter, which are described in detail in the subsequent figures in different implementations and/or variations.

[00074] The output from the one or more dynamic processor 166 is passed on to a dry/wet module 168. The dry/wet module 168 also receives the input audio signal 162. The output received from the dynamic processor 166A and the input audio signal 162 are combined in a fixed ratio in the dry/wet module 168. The ratio of the input audio signal 162 and the output signal from the dynamic processor 166A is referred to as “dry/wet” ratio. The dry/wet ratio can be pre- programmed or dynamically determined based on parameters of the input signal 162 such as phase, frequency, and amplitude. The dry signal to wet signal ratio can be programmable based on input received from a user interface. Alternatively, the dry/wet ratio can be set to one of the selectable ratios available in the user interface.

[00075] The output signal from the dynamic processor 166 A is passed on to the dynamic processors 166B...166N. There are at least two dynamic processors 166 but other combinations of having at least three dynamic processors 166 are possible. For example, there can be at least four dynamic processors 166. It should be noted that the dynamic processors 166A..166N can all be different in functionality but are collectively referred to as dynamic processors 166. The dynamic processors 166 can be a noise gate, a compressor, a decompressor, an expander, a limiter, a multi band compressor, a look-ahead compressor, a sidechain compressor, a brick wall limiting compressor, a parallel compressor or some other type of compressor.

[00076] The output from the dynamic processor 166N is fed to an envelope detector module 172. The envelope detector module 172 produces a low-frequency waveform of the input signal received from the dynamic processor 166N module. The low-frequency waveform from the envelope detector module 172 is modulated using a fixed frequency oscillator module 174 to produce a low frequency modulated waveform. Simultaneously, the output from the dynamic processor 166N is passed on to a resonance module 178. The resonance module 178 then amplifies the low-frequency components corresponding to strings, membranes or plates and passes its output to a mixer module 180. In addition, the resonance module 178 creates additional new frequencies corresponding to strings, membranes or plates or amplify and append additional new frequencies corresponding to strings, membranes, or other musical instruments and passes its output to a mixer module 180. The mixer module 180 receives the input signals from the dry/wet module 168, the fixed frequency oscillator module 174, and the resonance module 178 and mixes them in a pre- defined ratio. The pre-defined ratio can be determined using a fuzzy logic module, an artificial intelligence module, a programmed instruction, or can be dependent on at least one parameter of the input signal, such as, gain, phase, frequency, or amplitude. The output from the mixer module is passed on to a low pass filter module 182, a limiter module 184 and a bell filter module 186 and finally to an actuator 188 to produce a haptic output.

[00077] The output of the bell filter module 186 is also passed to a detector module 190, which probes the presence of signals at the pre-processing module 164 and the output signal from the bell filter 186. When the detector module 190 detects a signal at the input and the output, it ensures that the haptic processing module 100B is kept in an active power ON mode. In the absence of the input signal at pre-processing module 164 and the output signal at the bell filter 186, the detector module 190 can direct the haptic processing module 100B to enter power saving state to save battery.

[00078] The haptic processing module 100B can be powered by a power supply from an external source with the appropriate voltage and current. Alternatively, the power supply can be provided by a battery. The battery can either be a chargeable or non-chargeable battery. The battery can be a Small Sealed Lead Acid (SSLA) battery, Absorbed Glass Mat (AGM) battery, Gel battery (“gel cell”), nickel metal hydride battery, nickel cadmium battery, lithium ion battery or some other type of rechargeable battery. [00079] The detector module 190 can receive an input audio signal 162 and an output signal from the preprocessing module 164 to decide when to move to power saving mode or remain in power active state. For example, based on specific parameters such as but not limited to the presence of an input audio signal 162 and output from pre-processing module 164, the detector module 190 can decide to keep the active power ON state of the haptic processing module 100B.

[00080] Alternatively, the detector module 190 can receive the input audio signal 162 and the output signal from the bell filter module 186 to decide upon the power state of the haptic processing module 100B. For example, the detector module 190 probes the presence of the input audio signal 162 and the output signal at the bell filter module 186. If the detector module 190 detects the input audio signal 162 and the output signal at the bell filter module 186, the detector module 190 keeps the haptic processing module 100B in power on state. However, in the absence of the input audio signal 162 and the output signal at the bell filter 186, the detector module 190 puts the haptic processing module 100B into a power saving or power off mode. In another example, in the absence of the input audio signal 162 and presence of the output signal at the bell filter module 186, the detector module 190 initiates a counter that counts a predetermined period before entering into the power off state or power saving mode. The predetermined period varies from 1 to 20 seconds, although the predetermined period is preferably set at 10 seconds.

[00081] Several alternate configurations are possible, for example, the detector module 190 can receive a signal from the pre-processing module 164 and the output signal from the bell filter module 186 to decide whether to enter the power saving mode or remain in power ON state. In another example, the detector module 190 receives the input audio signal 162 and the output signal from the analytics module 170 and the bell filter module 186 to decide upon the power on/off state.

[00082] One of the novel aspects of the invention is to use each data segment of the input audio signal 162 to generate the haptic signal. The invention provides a digital signal processing chain and an analytics module to produce haptic output. The digital signal processing chain is the flow path of the input audio signal 162 to produce a haptic output and includes all the modules that process the input audio signal 162. For example, the direct flow of the input audio signal 162 through various modules to produce the haptic output includes preprocessing module 164, one or more dynamic processors 166, the dry/wet module 168, the envelope follower module 172, the oscillator module 174, the resonance module 178, the mixer module 180, the low pass filter module 182, the limiter module 184, the bell filter module 186 and the detector module 190. The analytics module 170 analyzes each data segment to control the digital signal processing chain for enhanced haptic output. The analytics module 170 calculates and stores peak values and root mean square values associated with the input audio signal 162. At least one dynamic processor 166 is employed to remove noise and reduce the dynamic range of the input audio signal 162. A sidechain is provided as a feedback to control the threshold values and the gain of the at least one dynamic processor 166. The at least one dynamic processor 166 is a noise gate, a compressor, or two noise gates or two compressors or the like. The low-frequency components received from the at least one dynamic processor 166 can be enhanced by the resonance module 178 which adds or amplifies the low-frequencies that can be suppressed or reduced in the received signal. The envelope follower 172 converts the received high-frequency signal into a low frequency signal, which is passed on to the oscillator module 174. The received signal is mixed with signals from other modules to produce a haptic output signal.

[00083] The analytics module 170 of the haptic module 108 calculates the root mean square amplitude values of the input audio signal 162 using differently sized averaging windows of the input audio data segments. The input audio signal 162 is analysed using one or more data segments. The number of data segments of the input audio signal 162 to be analysed may vary with time. For example, the number of data segments in the single window can be 50. Likewise, the number of data segments in the next window can be 75. Accordingly, the average amplitude of the different window sizes can vary according to the size of the data segments. Further, the haptic processing module 100B calculates the peak amplitude values and root mean square amplitude values of the input audio signal 162 to determine one or more control parameters such as calculating gain and threshold. The haptic processing module 100B buffers and stores the peak amplitude values and the corresponding root mean square values for a fixed period of time to calculate gain and/or threshold, which are utilised to control the settings of one or more dynamic processors 166 such as a noise gate, compressor, and sidechain. These settings are continuously updated to modulate or control the processing of the input audio signal 162 for producing the haptic output. Advantageously, this novel and unique method and system architecture provides enhanced user experience.

[00084] In addition, the haptic processing module 100B implements a fast onset/transient detection mechanism to enhance or compensate the haptic signal in the presence of transients. For example, the transient can be an event such as a kick-drum in music or a gunshot in a game audio signal. The onset detection mechanism is utilised to enhance the intensity of the haptic signal for providing a higher level of haptic experience to the user. In an embodiment of the present invention, the transient detection mechanism is performed in the analytics module 170.

[00085] Fig. 2 provides a detailed architecture of a haptic processing module in a preferred embodiment 200 with at least two dynamic processors. The haptic processing module 200 can be implemented as hardware, software, or as a combination of hardware and software.

[00086] The haptic processing module 200 illustrates two dynamic processors to generate haptic output. The first dynamic processor and second dynamic processor are shown as a noise gate and a compressor, respectively. For the sake of detailing and clarity, the dynamic processors have been named based on the functionality of the dynamic processors. Other implementations with more than two noise gates or more than two compressors are also possible.

[00087] The haptic processing module 200 receives the input audio signal 162 to produce a haptic signal as an output. The input audio signal 162 can be an analog or a digital signal or a digital data. The input audio signal 162 is a sampled digital signal, a monophonic digital signal, a stereophonic digital signal, a quadraphonic digital signal or some other type of sampled digital signal.

[00088] The input audio signal 162 is passed on to the preprocessing module 164. The preprocessing module 164 processes the input audio signal 162 and transforms it into a suitable form for further processing. For example, the preprocessing module 164 can include a downsampler module, an Analog to Digital (A/D) converter module and other modules. If the received input audio signal 162 is an analog signal, an Analog to Digital (A/D) converter module can be utilised to convert the analog signal into a digital audio data stream. Likewise, the downsampler module downsamples the input audio signal 162 to a lower sampling rate for processing of the input audio signal 162. For example, the input digital audio data sampled at 44.1 KHz is downsampled to 4.9 KHz. Preferably, the received digital signal at the preprocessing module 164 should be sampled at less than 4 KHz to bypass downsampling of the input audio signal 162. When the input audio signal 162 does not require downsampling, the input digital signal 162 can be directly fed to a noise gate module 206.

[00089] The noise gate module 206 is associated with a sidechain module 208A. The main function of the noise gate module 206 is to reduce noise in the input audio signal 162. The output of the preprocessing module 164 is simultaneously passed on to the noise gate module 206 and the sidechain module 208A. The sidechain module 208A includes a detector module, a threshold module, a low pass filter module apart from other modules (not shown in Fig 2). A threshold value can be programmed into the threshold module. The threshold value is dynamically controlled in real time by the analytics module 170. The analytics module 170 passes one or more control parameters to the threshold module to adjust the threshold value or threshold in the noise gate module 206. In one example, the analytics module 170 analyses the input audio signal 162 to ascertain the amount of noise present in the input signal and accordingly pass at least one control parameters to modulate the threshold value in the threshold module associated with the sidechain module 208A.

[00090] In another example, the threshold value or the threshold can be set by a function call from the sidechain module 208A at regular time intervals. For example, a function call to set the threshold value can be initiated after every 10 milliseconds. The analytics module 170, in response to the function call, passes on one or more parameters for setting the threshold value in the sidechain module 208A. The interval between function calls made by the sidechain module 208A to the analytics module 170 varies from 1 millisecond to 200 milliseconds in time.

[00091] The function call made by the threshold module associated with sidechain module 208A to the analytics module 170 can return an integer value, a float value, a double value, a reference to a memory, a sub-routine, a function, or a pointer. These terms are well known in a programming language such as C, C++, JAVA, JavaScript and other programming languages.

[00092] Alternately, the analytics module 170 can perform a function call to the threshold module associated with the sidechain module 208A at appropriate time intervals to set the threshold value.

[00093] The threshold value or the threshold can be set using a preset control accessible to the user via a software user interface or hardware switch or dial.

[00094] The noise gate module 206 modulates the gain of the received signal based on the threshold value or threshold. The threshold value is adjusted by the threshold module, which is associated with the sidechain module 208A based on parameters provided by the analytics module 170. The analytics module 170 receives a request for the threshold module associated with the sidechain module 208A by a function call. The function call requests for one or more control parameters to set the threshold value. The detector module associated with the sidechain module 208A detects the input signal received at the noise gate module 206 to adjust the gain applied to the signal in the noise gate module 206. When the input audio signal 162 crosses the threshold value, the detector module gets activated. The detector module then applies a gain factor to the noise gate module 206 to attenuate or pass the input audio signal 162. The input audio signal 162 is attenuated or amplified by a gain factor depending on the applied gain. The gain factor is set between 0 and 1 and the threshold value is also set at a predetermined value at the time of programming or can be dynamically changed depending on various parameters associated with the input audio signal 162. The threshold value is programmed and set to a predetermined value, and the gain factor is set between 0 and 1. Other variations and implementations such as dynamically changing the threshold value, pre-setting the threshold value, selecting the threshold value using an interface fall within the scope of the present invention.

[00095] The noise gate 206 attenuates the input audio signal 162 by applying a gain factor/gain reduction in association with the sidechain module 208A. The threshold value in the threshold module can be set to a value of (minus) -20dB. The input audio signal 162 is completely passed for a gain of more than -20 dB or when the input audio signal 162 is above the threshold value. However, when the input audio signal 162 is below the threshold value, that is, -20 dB, the input signal is attenuated, and a gain factor is of less than one is applied. The“gain factor” is also referred to as the“attenuation factor”. The gain factor value varies between 0 and 1. For example, the gain factor is a decimal value such as 0.5, 0.75, 0.81, 0.93 and the like.

[00096] The threshold value in decibels associated with threshold module varies from -10 dB to -30dB in other variations.

[00097] The analytics module 170 can be associated with the noise gate module 206 to control or adjust various parameters associated with the haptic signal processing 200. The analytics module 170 detects the transient signal in the input audio signal 162. If a transient signal is detected, the analytics module 170 temporarily stops the Root Mean Square (RMS) value from adding any audio signal peaks to the RMS value of the input audio signal 162. The RMS signal value is set to Zero (0) at this instance or the RMS value is reset to Zero (0) when the transient is detected. Subsequently, the analytics module 170 performs two different calculations, i.e., (a) analyses the RMS values in decibels from the input audio signal 162 in the last 1 second, wherein the RMS values are sampled several times over a period of 1 second and then averaged to get a mean average value, and (b) checks the peak signal value in decibels in the last 10 seconds in the input audio signal 162. The analytics module 170 then (a) adds a predefined constant value in decibels to the calculated RMS value in decibels in the last 1 second and (b) subtracts a predefined constant value in decibels from the calculated signal peak value in decibels obtained in the last 10 seconds. The pre-defined constant is preferably 6dB but can also vary in other implementations. Subsequently, the two values, that is, the values calculated at (a) and (b), are compared, and the minimum of the two values is set as the threshold value at the noise gate 206. For example, if the root mean square value calculated by the analytics module 170 is -l8dB and the peak signal value calculated is -2dB, the analytics module 170 adds +6dB to the RMS value, which is -l8dB + 6dB = -l2dB. Likewise, the analytics module 170 subtracts 6dB from the peak value, that is, -2dB - 6dB = -8dB. The minimum of the two values is utilised to set the threshold value at the noise gate.

[00098] The RMS values are calculated every 10 milliseconds and the average of all the values calculated in the last 1 second is determined to be added to the 6 dB gain. Other variations include calculating the median of all the values calculated in the last 1 second and adding those to the 6 dB gain. Similarly, the RMS values can be calculated every 5 milliseconds, and the root mean square of all the values can be calculated and added to the 6dB gain. Another variation, for example, is that the root mean square values are calculated between 2-10 times in 1 second. In another implementation, the root mean square values are calculated for a predefined time, which varies from 1 second to 10 seconds.

[00099] Alternatively, in another example, the peak signal values are calculated at equal time intervals in a pre-defined time. For example, the peak signal values are calculated every second, and the highest value is taken as peak signal value.

[000100] The predefined constant value in decibels is set at 6dB, however, in another variation the predefined constant can be set between 6dB to 20dB depending upon the characteristics of the input audio signal 162. The input audio signal 162 characteristics include amplitude, frequency, and phase. The analytics module 170 controls and adjusts various parameters in the noise gate 206 module and the associated sidechain module 208A without interfering with the digital signal processing chain.

[000101] The output signal from the noise gate 206 has reduced noise level, which is passed on to a compressor module 212 for reducing the dynamic range of the signal from the preprocessing module 164. Simultaneously, the output signal from the noise gate 206 is also passed on to a dry/wet module 168. The dry/wet module 168 also receives the signal from the preprocessing module 164 and mixes the output signal from the noise gate 206 and the preprocessing module 164 in the pre-defined ratio (referred to as“dry/wet ratio”).

[000102] The compressor module 212 reduces the dynamic range between the loudest and the quietest parts. The compressor module 212 compresses the louder parts and amplifies the quieter parts in the digital audio data/signal. The output signal from the preprocessing module 164 is also simultaneously passed on to the sidechain module 208B. The sidechain module 208B comprises a detector module, a threshold module and other modules to control and adjust the input audio signal 162 in the compressor module 212. The sidechain module 208B receives the audio signal from the preprocessing module 164. The threshold module associated with the sidechain module 208B is programmed to set the threshold value or the threshold. When the received signal crosses the threshold value, the detector module gets activated. On activation, the detector triggers the compression of the input audio signal 162 being processed in the compressor module 212. For example, if the amplitude of the received signal is above the threshold value or the threshold, then the detector gets activated, and the compressor module 212 reduces the amplitude of the received signal by a specific amount. The compression ratio defines the amount of compression. When the input audio signal 162 is below the threshold level, the detector is deactivated and the input audio signal 162 processed in the compressor module 212 is passed on without any compression. In addition to compression, the compressor module 212 amplifies the input audio signal 162 by a gain factor that is pre-programmed or dynamically controlled by the analytics module 170. In this scenario, the compressor module 212 applies gain and amplifies the received signal that is below the threshold value.

[000103] The analytics module 170 controls the gain applied to the compressor module 212. The compressor module 212 makes a function call to the analytics module 170 to request for one or more parameters to set the gain to be applied at the compressor module 212. In response to the request, the analytics module 170 provides one or more parameters to the compressor module 212 to set the gain. The one or more parameters is provided by a function call, a sub-routine call, a procedure call or a sub-procedure as known in the field of programming languages. Alternatively, the one or more parameters returned to the compressor module 212 from the analytics module 170 can be a variable of data types such as a float, a double, an integer, a pointer, or a reference to memory.

[000104] The compressor module 212 and the sidechain module 208B utilises several control parameters to modulate the input audio signal 162 for generating haptic output/experience. These parameters include a threshold value, a compression ratio, an attack time, a release time, a knee, a make-up gain or some other type of parameters. For example, vocal audio can have some words that are mumbled. If the compressor module 212 is set to level such that the vocal is clearly audible, then the lower mumbled words are likely to be left out. Likewise, if the compression module 212 is set to a level where lower level mumbled words are clearly audible, then the vocal signal will override the audio signal. A right mix of parameters is required to produce an output signal that can provide best haptic experience. Therefore, the parameter values need to be set and optimised for producing haptic output that enhances the user experience.

[000105] The compressor module 212 has at least one parameter to reduce the dynamic range and to apply gain on the input audio signal 162. The at least one parameter is a compression ratio. The compression is an operational control defined by the compression ratio that reduces the peak values of the input audio signal 162. The higher the compression, the higher the reduction of peaks in the audio signal. The compression ratio can be a pre-set value, a constant value, a value dependent upon the digital audio data or a variable that dynamically changes depending on at least one predetermined factor. For example, the factor is a time, input digital audio data, the amplitude of the input digital audio data and some other parameters.

[000106] In addition, the compressor module 212 has at least one another parameter to reduce the dynamic range and to apply gain on the input audio signal 162; the at least one parameter is a threshold value. The threshold value triggers the compression in the compressor module 212. As the threshold value is increased, a significant part of the input audio signal 162 falls below the threshold value, and hence no compression is applied. As the threshold level is decreased more input audio signal 162 falls above the threshold level, and compression is applied. The threshold level can depend upon at least one factor; the factor can be a digital audio data, the amplitude of the analog signal, the amplitude of the digital audio data, and type of audio signal, frequency characteristics of an actuator or some other parameters.

[000107] Furthermore, the compressor module 212 has at least one other parameter to reduce the dynamic range and to apply gain on the input audio signal 162; the at least one parameter is a gain control. The compressor module 212 applies gain based on at least one parameter provided by the analytics module 170. The degree of compression is controlled by adjusting the input audio signal 162 with an input-gain control. The gain control can amplify the low frequency components in the input audio signal 162 to normalise the audio signal for haptic processing.

[000108] The analytics module 170 is associated with the compressor module 212 and the sidechain module 208B. The analytics module 170 indirectly adjusts the gain of the compressor module 212 by modulating the sub-bass control of the sidechain module 208B. The analytics module 170 detects the transient signal in the input audio signal 162 and monitors the occurrence of an audio peak in the input audio signal 162 for a predetermined time, which varies from 5 seconds to 60 seconds. The analytics module 170 calculates the occurrence of a signal peak in the last 10 seconds, subtracts 6dB and passes the derived value on to the sidechain 208B to vary the compressor sidechain sub bass control.

[000109] The threshold value can also be defined as a range, that is, the threshold between an open threshold value and a closed threshold value. Alternatively, the threshold level is a multi- level threshold.

[000110] The noise gate module 206 and the compressor module 212 are also associated with the sidechain module 208A and the sidechain module 208B, respectively, also referred to as sidechain modules 208. The sidechain module 208 A and the sidechain module 208B can be identical in function or provide different functions. For example, the sidechain 208A module is pre-programmed for controlling the operations of the noise gate module 206. In another example, the sidechain 208B module is programmed for controlling the chopping of continuous digital audio data.

[000111] Different types of variations for implementation of the sidechain module 208 can be provided. Examples of variations include a trance gate, where the opening and closing of the noise gate 206 is not controlled by the digital audio data but is pre-programmed and controlled by a software code, a set of instructions, a programmed audio controller and an integrated circuit.

[000112] The sidechain module 208A or the sidechain module 208B includes at least one band pass filter or at least one low pass filter to enhance the overall haptic experience of the user. The inclusion of these filters does not affect the tonal quality of the sound but affects the response of the sidechain modules 208A and 208B. For example, the inclusion of filters prevents the compressor module 212 or the associated noise gate 206 from generating false triggers while processing cymbal on a tom track.

[000113] The dry/wet ratio setting in the dry/wet module 168 are controllable using a user interface, which is a rotary switch, a digital switch, an analog switch, an intelligent module or other type of variable switch. The predetermined settings of the dry/wet module 168 are based on various parameters, such as settings controlled by a user, frequently used settings by a user, automated settings based on the analysis of input digital audio data, or a fuzzy logic with pre-programmed settings or other types.

[000114] The sidechain module 208B monitors the level of the input audio signal 162 of the compressor module 212 to modulate the response of the compressor module 212. In another variation, the sidechain module 208B is provided with a separate external input signal source different from the input audio signal 162. In one implementation, the dance music may have kick and bass occupying the same frequency range. Therefore, it becomes essential to emphasize the effect of both kick and bass to enhance haptic experience. The haptic processing module 200 utilises the kick as an input to the sidechain module and the bass as an input to the compressor module causing the bass to duck when the kick is hit thereby avoiding phase and muddiness in that frequency range.

[000115] The output signal from the compressor module 212 is passed simultaneously on to the envelope follower module 172 and the resonance module 178. The envelope follower module 172 converts the bipolar signal to a unipolar signal. Furthermore, the envelope follower module 172 decreases the variation of the high frequency digital audio data into low frequency digital audio data without distorting the input waveform. For example, the envelope follower module 172 produces a low frequency signal as an output, which is an replica of the high frequency digital audio data. Alternatively, the envelope follower 172 produces a control signal that resembles the high frequency digital audio data into low frequency analog audio data. The output of the envelope follower module 172 is a low frequency digital or analog signal, which is the low frequency envelope of the input digital audio data received from the compressor module 212. The low frequency signal processed by the envelope follower module 172 may have ripples that require filtering. The ripples produced in the low frequency digital audio data is filtered using digital or analog filters utilised to smoothen the low frequency digital or analog audio data. Furthermore, in order to smoothen and reproduce an exact replica of the low frequency digital audio data, a series of filters can also be used. The smoothing of the low frequency digital audio data may affect the responsiveness. The invention utilises various techniques to balance the smoothing and responsiveness of the low frequency digital audio data produced by the envelope follower module 172.

[000116] The gain of the envelope follower module 172 is modulated by the analytics module 170. The analytics module 170 receives the input audio signal 162 and analyses the input audio signal 162 to adjust the gain applied to the signal being processed in the envelope follower module 172. The envelope follower module 172 can implement a function call in C, C++, Java or any other programming language to call for one or more parameters. The analytics module 170, in response to the function call, provides one or more control parameters, which can be utilised to set the gain in the envelope follower module 172. The function call can be implemented with one or more return parameters. The one or more return parameters in response to the function call by the envelope module 172 can be primitive data-types such as but not limited to a float, a double, an integer, a pointer, or a reference to a memory location. [000117] The output of the envelope follower module 172 is superimposed over a fixed frequency oscillator module 174. The low frequency audio output signal from the envelope follower module 172 is modulated by the fixed frequency oscillator module 174. The fixed frequency oscillator module 174 is tuned near or around the resonant frequency of the actuator 188. The resonant frequency of the fixed frequency oscillator 174 is set between 50 Hz and 120 Hz, when more than one actuator is connected. The resonant frequencies of different actuators can vary slightly from each other. For example, a gaming device can have one or more actuators, each actuator having a different resonant frequency. A first actuator is set to a resonant frequency of 60 Hz and a second actuator is set to a resonant frequency of 72 Hz. In this implementation, the oscillator module 174 is tuned at 60 Hz. In an alternative implementation, the oscillator module 174 is tuned at 72 Hz or at 60Hz depending upon the input data characteristics and the type of haptic output required.

[000118] The pre-determined frequency is normally set at around 60Hz.

[000119] The output signal from the compressor module 212 is also simultaneously passed on to a resonance module 178. The resonance module 178 is configured to excitate physical models of a string, membrane, plate or some other musical instrument models. The simulation of basic musical instruments helps in the correction and enhancement of the audio signal to amplify and enhance the low frequencies that have been suppressed. The resonance module 178 also appends the low frequency components in the audio signal that have been suppressed due to the presence of other frequency components. For example, the resonance module 178 identifies suppressed low frequency components in the audio signal and appends fundamental frequency components of the identified low frequency components to enhance the haptic experience of the user. In another example, the resonance module 178 simulates audio signals to emphasize low frequency components and create a better haptic experience.

[000120] The output of the fixed frequency oscillator module 174, the resonance module 178 and dry/wet module 168 is aggregated and summed in a mixer module 180. The mixer module 180 adds the input from different modules at a predetermined ratio.

[000121] In another variation, the analytics module 170 is associated with the noise gate module 206, the compressor module 212, the sidechain modules 208 A and 208B, the resonance module 178, the envelope follower module 172 and other modules for analysing the input audio signal 162 to provide automatic gain control.

[000122] The analytics module 170 receives the input audio signal 162 and then analyses the input audio signal 162 to extract various parameters to control at least one parameter in the haptic signal processing flow as shown in Fig. 2. The analytics module 170 produces an output control signal to adjust at least one or more parameters associated with the compressor module 212, the sidechain modules 208A and 208B, the resonance module 178, the envelope follower module 172 and some other modules.

[000123] The output signal from the mixer module 180 is passed on to a low pass filter 182 that filters out any high frequency components. In addition, the low pass filters 182 can also cut off the harmonics that lead to a signal distortion. In one implementation, the low pass filter 182 can be designed to differentiate between the low frequency components produced by kick drum and the low frequency components produced by bass guitar to avoid continuous haptic response from the actuator 188. The low pass filter module 182 can be a first order filter, a second order filter, a third order filter or some other type of filter. A band pass filter is utilised to filter high frequencies along with unwanted low frequencies.

[000124] The output signal of the low pass filter 182 is passed on to a limiter module 184. The limiter module 184 limits the amplitude of the output signal to avoid any damage to the actuator 188 caused by the passing on of excessive voltage or current. The limiter module 184 can be a type of compressor with a compression ratio of ¥:l. The threshold value at the output can be set at a threshold value of -3dB. In this case, the output level is restricted to -3dB irrespective of the input level.

[000125] The output signal from the limiter module 184 can be passed on to the bell filter 186, which can improve the frequency response of the voice coil and/or the actuator 188 over the range of low frequencies. In contrast to linear resonant filters, which are tuned to respond at a tuned resonant frequency, the haptic processing module 200 can be utilised to respond to a wide frequency range, thereby enhancing the haptic response of the actuator 188. In this regard, the voice coil or the actuator 188 discussed herein can operate over a wide range of frequencies rather than responding to only the resonant frequency. This is provided in US patent application no. 14/828,954, which is incorporated herein by reference. To extend the frequency response of the voice coil or the actuator 188, the bell filter module 186 can attenuate resonant frequencies of the actuator 188. The bell filter module 186 is designed to provide an exact replica of the actuator 188 frequency curve, with an inverted frequency response, which is combined with an aggregated curve having a plateau over a range of frequencies defined between frequency fl and frequency f2. For example, if the low pass filter module has a resonance frequency f, and the bell filter has a maximum suppression of frequency f, then the sum total of both curves will be a flat frequency curve between frequency fl and frequency f2. Accordingly, the overall effect of the low pass filter module 182 and the bell filter module 186 is to produce a response over a wide range of frequencies that is between frequencies fl and f2. This results in an enhanced haptic response that may be experienced over a large range of low frequencies.

[000126] A detection module 190 is associated with the bell filter module 186 that continuously probes the output haptic signal. The detection module 190 is also associated with the input audio signal 162 and continuously detects the presence of the input signal. The detection module 190 probes the signal both at the bell filter module output 186 and the input audio signal 162, analyses the presence of a signal, and utilises an OR logic to decide the ON/OFF state of the haptic processing system 100. When the signal is detected either at the bell filter module output 186 or the input audio signal 162, the detection module 190 keeps the haptic processing module 200 in the ON state. If no signal is detected either at the input or at the output of the haptic processing module 200, the detection module 190 moves the haptic processing module 200 to power saving mode. It should be noted that the detection module 190 never enters the OFF state but controls the state of various modules associated with the haptic processing module 200 to control the power ON state or power OFF state to save battery. In an embodiment of the present invention, the probing of signals at input and output of the haptic processing module 200 is between 1 microsecond to 10 seconds. When no input is detected at the input audio signal 162 but a signal is detected at the bell filter module 186, the haptic processing module 200 waits for a predefined time before entering the power saving mode or probing the inputs again. This is required to pass off any unprocessed haptic signal that remains in the haptic processing module 200 due to a delay in signal processing. [000127] The advantages of using a voice coil actuator 188 over the conventional LRA actuator is to provide response over a wide range of frequencies, which can be understood by way of example. In a normal linear resonant actuator, the actuator operates at its resonant frequency, say 70 Hz. If a low frequency, say 50 Hz, is fed to a linear resonant actuator operating at the resonant frequency of 70Hz, then a frequency transformation/shifting is required to generate a haptic response. This deficiency is eliminated in the present invention by providing a frequency range over which the actuator 188 can operate without requiring any frequency shift. Advantageously, this allows the actuator 188 to operate over a varied range of frequencies without requiring frequency shift.

[000128] Fig. 3 provides an expanded view of the analytics module 300 in a preferred embodiment of the present invention. The expanded view of the analytics module 300 comprises of the analytics module 170. The analytics module 170 can include a transient analysis module and detection module 304, a peak analyser module 306, an input signal analyser and RMS generator module 308, a sidechain module 310, a predictive and intelligence module 312, a detection and threshold module 314 and gain controller modules 316A and 316B (collectively or individually referred as the gain controller module 316).

[000129] The analytics module 170 receives the input signal 162, which is either an analog or a digital signal. The received input audio signal is simultaneously passed on to the transient analysis and detection module 304, the peak analyser module 306, and the input signal analyser and RMS module 308. The transient analysis and detection module 304 analyzes the presence of transients in the input audio signal 162. A transient is a short burst of energy caused by a sudden change of state of the sound and shows fast changes in sound characteristics with a non-harmonic attack phase. In addition, the transients in a signal contain a high degree of non-periodic components and a higher magnitude of high frequencies. The presence of transients in the signal distorts the output quality of the sound. The transient analysis and detection module 304 is implemented using a plurality of envelope followers. For example, the analysis transient detection module 304 can contain a low pass filter (optional), a fast envelope follower, a slow enveloper follower and a transient sensitivity analyser.

[000130] In an embodiment of the present invention, the fast envelope follower and the slow envelope follower can be implemented as hardware or software. In software implementation, the fast envelope follower can be implemented by utilizing a fast attack time and fast release time. Similarly, the slow envelope follower can be implemented by using slow release time. For example, a fast attack time and fast release time will enable the fast envelope follower to follow the input waveform. The fast envelope follower approximates the replica of the input waveform. Likewise, the slow envelope follower will have fast attack time and slow release time, which enables the slow envelope follower to initially follow the rise of the waveform but fall time is slowed down resulting in a ramp type decay. Additionally, the fast envelope follower and the slow envelope follower is implemented as a hardware. One way of achieving the same is using small capacitor values for the fast envelope follower and large capacitor values for the slow envelope follower. Other implementations are possible using integrated circuits, timing circuits and MOSFETs.

[000131] The fast envelope follower is implemented as a software using an attack coefficient. The attack coefficient can be proportional to one or more parameters. The attack coefficient is proportional to sample rate, attack time in milliseconds and other parameters. Alternatively, the attack coefficient can be inversely proportional to attack time, sample rate and other parameters with a proportionality constant. Likewise, the slow envelope follower is implemented as a software using a release coefficient. The release coefficient is proportional to one or more parameters such as but not limited to release time, sample rate and other similar parameters. Alternatively, the release coefficient is inversely proportional to the release time, sample rate and the like with a proportionality constant. For example, the attack coefficient can be 0.94912685796 with an attack time of 2 milliseconds and a sampling rate of 44,100 with a proportionality constant that depends upon the characteristics of input waveform. Similarly, in another example, the release coefficient can be 0.99652519689 for a release time of 30 milliseconds and sampling rate of 44,100. The output values of the fast envelope follower can be calculated by multiplying the attack coefficient with past and current input audio data points. Similarly, the output values of the slow envelope follower can be calculated using the release coefficient and the release time.

[000132] The transient analysis and detection module 304 is entrusted to detect transients in the input audio signal 162 for controlling different parameters during processing of the haptic signal.

[000133] The peak analyser module 306 can include a low pass filter, a peak detector, and other modules. The main function of the peak detector module 306 is to identify the peaks in the input audio signal 162.

[000134] The input signal analyzer and RMS generator module 308 performs the task of analysing the signal and calculating the RMS value of the input audio signal 162. The calculated RMS values can be utilised to modulate the threshold and gain in dynamic processors associated with the analytics module 170.

[000135] Once the transients, the signal peaks, and the RMS values of the input audio signal 162 are analysed by the transient analysis and detection module 304, the peak analyzer module 306, and the input signal analyzer and RMS generator module 308, these are passed on to the sidechain module 310 for setting the gain of one or more dynamic processors and the envelope modules associated with haptic processing. For example, in one implementation, the sidechain module 310 can set the gain of the compressor module 212 and the envelope follower module 172 based on the analysis of the input received from the transient analysis and detection module 304, the peak analyser module 306, and the input signal analyser and RMS generator module 308.

[000136] The RMS values of the input audio signal 162 are utilised to set a threshold value or the threshold of one or more dynamic processors. For example, the detector and threshold module 314 can set the threshold value at the noise gate module 206 based on the analyzed RMS values. Alternatively, at least one of the parameters such as transients, signal peaks, and the RMS values of the input audio signal 162 can be analyzed to set the threshold or gain in one or more dynamic processors.

[000137] The predictive and intelligence module 312 receives the signal peak information and the RMS values from the peak analyser module 306 and the input signal analyser and RMS generator module 308, respectively. The received signal peak information and RMS values are processed and analysed to control the gain in the sidechain module 310 and the threshold in the detector and threshold module 314 to adjust haptic signal processing in one or more dynamic processors.

[000138] In one variation, analytics module 170 receives the input signal before the digital signal processing chain. For example, the input audio signal 162 is fed to the digital signal processing chain is delayed by a pre-determined time, which can vary from 1 millisecond to 100 milliseconds. Another variation can have a look-ahead mechanism, wherein the input audio signal 162 is fed to the analytics module 170 and subsequently passed on to the digital signal processing chain. In another variation, the look-ahead mechanism is implemented by providing predictive algorithms in the analytics module 170. The predictive algorithms monitor the input audio signal 162 in real time and predict the parameters to be provided to the at least one dynamic processor.

[000139] The output of the sidechain module 310 is passed on to the gain controller module 316A to adjust the gain of the at least one dynamic processor in real time. Similarly, the output of the detector and threshold module 314 is passed on to the gain controller module 316B for setting the gain of the at least one dynamic processor.

[000140] The transient analysis and detection module 304 detects the presence of transients in the input audio signal 162 and provides a parameter to the digital signal processing chain to control the effect of the transients in haptic processing. The transient analysis and detection module 304 includes a low pass filter, a fast envelope follower, and a slow envelope follower and a transient score generator. The low pass filter is optional. The fast envelope follower and the slow envelope follower enable the detection of transients in the input audio signal 162. The average amplitude of the signal processed by the slow envelope follower and the fast envelope follower is calculated. The difference between the average amplitude is used to calculate the presence of transients. The transient in the input audio signal 162 is converted into a transient score. The transient score is utilised to derive a transient binary. In addition, the transient analysis and detection module 304 receives a transient threshold. When the transient score is greater than the transient threshold, the transient binary is set to 1, else the transient binary is set to 0.

[000141] The peak analyser module 306 determines the peak signal values of the input audio signal 162. The peak analyser module 306 is associated with the transient analysis and detection module 304, the input signal analyser and root mean square generator module 308, the sidechain module 310, and the detector and threshold module 314. The input signal is analysed for the peak signal values and RMS values for a fixed time period. The fixed time period varies between 5 seconds and 15 seconds, however, the fixed time period is typically set at 10 seconds. The peak signal values are stored or buffered in the memory associated with the predictive and intelligence module 312.

[000142] The input signal analyser and root mean square generator module 308 analyzes the input audio signal 162 for a fixed time period and determines the root mean square values. The root mean square values are buffered or stored in the memory associated with the predictive and intelligence module 312.

[000143] The predictive and intelligence module 312 accesses the peak signal values and the root mean square values buffered in the memory. The peak signal values and the root mean square values buffered in the memory associated with the predictive and intelligence module 312 are utilised to calculate one or more control parameters to be passed to the noise gate module 206 or the compressor module 212. In one variation, pre-stored values for handling exceptional high noise are utilised by the predictive and intelligence module 312 to enable the haptic processing module to process the haptic output.

[000144] The predictive and intelligence module 312 instantaneously updates the parameters without latency to enable analytics module 170 to pass it to the digital signal processing chain. For example, at time tl, the parameter values passed on to the noise gate are xl, x2, ... xn and the parameter values passed on to the compressor are yl, y2, .... yn. At another instance of time t2, the parameter values passed on to the noise gate are ql , q2, ... qn and the parameter values passed on to the compressor are rl, r2, .... m. The predictive and intelligence module 312 passes these parameter values in real time to the digital signal processing chain to control the haptic output. It may be noted that such an implementation ensures almost no latency and enables real time control of the input audio signal 162 for producing enhanced user experience. [000145] Fig. 3C illustrates different modules in the predictive and intelligence module 312. The predictive and intelligence module 312 is associated with a memory 330 with multiple segments, a booster module 338 and other modules. The memory 330 resides in the haptic module 108, the memory 102 or alternatively resides in the cloud 140, the server 130, or the distributed system 150. The memory 330 is stored in a microchip, a microcontroller, a computer program product, or in an external memory associated with the haptic processing system. Additionally, the predictive and intelligence module 312 includes an algorithm and haptic selection module 340. The memory 330 is divided into multiple segments such as segments 332, 334, and 336. For example, a memory segment 332 stores audio waveform analysis parameters 342, a memory segment 334 stores haptics data 344, and a memory segment 336 stores predictive data algorithms 346. The memory segments such as memory segment 332, memory segment 334, and memory segment 336 are for representation only. There may be multiple memory segments, which may be allocated in a different order either in a single memory or multiple memory banks. The waveform analysis parameters 342 stores information related to waveform characteristics of the input audio signal 162. The waveform characteristics include but are not limited to, loudness, pitch, tone, propagation speed, tonalness, autocorrelation coefficients, zero crossing rate, peak envelope, onsets, tempo and meter, rhythm, timing and wavelength.

[000146] Similarly, the haptic data 344 stores different haptic signals. The haptic data 344 is a pre-stored haptic signal or a haptic digital data to control the digital signal processing chain. Alternatively, the haptic data 344 is audio signal characteristics to produce haptic experience. Preferably, the haptic data 344 is a set of digital values for providing haptic experience to a user.

[000147] For example, the haptic data 344 is obtained by classifying different events in a game corresponding to different haptic signals to produce desired haptic effect. A classification algorithm, for example, a random forest is used to train at least one predictive data algorithms 346 to different events in a computer game for producing haptic experience. The haptic experience is stored as haptic data 344. The predictive data algorithms 346 then utilizes one or more parameters of the waveform characteristics to predict haptic data 344 for producing haptic experience though one or more actuators. [000148] In another implementation, the haptic data 344 can be dynamically updated by the predictive and intelligence module 312. The predictive and intelligence module 312 sends a request to the analytics module 170 for enabling memory write operation. The analytics module 170 grants a write permission enabling the predictive and intelligence module 312 to write haptic data 344 into the memory 330. The predictive and intelligence module 312 writes haptic data 344 into the memory 330. Alternatively, the predictive and analytics module 312 can directly read/write into the memory 330. In another variation, the predictive and intelligence module 312 connects to the internet to download haptic data from the server 130, the cloud 140 or the distributed system 150 related with a user’s game in the memory 330.

[000149] In another implementation, the predictive and intelligence module 312 learns from the instantaneous values generated by the analytics module 170 by implementing a set of procedures/algorithms to calculate the gain and/or the threshold to be applied to one or more dynamic processors 166 and by using RMS values and peak values. The predictive and intelligence module 312 initially selects at least one predictive data algorithm 346 based on input audio waveform characteristics. Alternatively, the predictive and intelligence module 312 selects at least one predictive data algorithm 346 based on game attributes such as type of game, game metadata and the like. If no attributes can be ascertained, the predictive and intelligence module 312 uses the mostly likely used predictive algorithm based on the last 10 games. The predictive and intelligence module 312 learns from real-time data, that is, RMS values, peak values, the gain and the threshold value. Once the learning process has been completed, the prediction algorithm can independently predict the gain and the threshold in one or more digital signal processing chains. This reduces processing overheads and reduces time lag between audio and haptic experience. In addition, the predictive analysis also provides a look ahead to the analytics module 170 for setting different parameters such as gain, threshold, presets and controlling the different modules such as the presets, dual filter module, physical resonance module, and other modules of the digital signal processing chain.

[000150] The predictive and intelligence module 312 receives the instantaneous RMS values and the peak values of the input audio signal 162 to determine the gain and/or threshold and to modulate/control at least one of the dynamic processors 166. In addition, the predictive and intelligence module 312 also receives the instantaneous waveform characteristics of the input audio signal 162. At the next step, the predictive and intelligence module 312 determines the best algorithm from the list of a stored predictive data algorithms 346 based at least on one parameter comprising input audio waveform characteristics, type of game, embedded metadata in the game and other parameters such as audio clues embedded inside game, number of different types of events in a game, frequency of events and other types of parameters related to gaming. The predictive and intelligence module 312 then uses the selected algorithm and the instantaneous RMS values, the peak values and the instantaneous waveform characteristics of the input audio signal 162 to train itself to predict haptic output. Subsequently the predictive and intelligence module predicts haptic output to control the digital signal processing chain. Alternatively, the predictive and intelligence module 312 can directly pass the haptic data 344 to one or more actuators for providing haptic experience. The haptic data 344 in this case stores different haptic signals to provide wideband or high definition haptic experience.

[000151] In a different embodiment, the training of the predictive algorithm using instantaneous RMS values, the peak values and the instantaneous waveform characteristics of the input audio signal 162 also includes a user feedback. The learning of the predictive algorithm is a multi-level process. At each level, the user feedback is provided with respect to haptic experience. The feedback is utilised to correct the haptic data 344 for optimum haptic experience. Once the multi-level training of the predictive algorithm is completed, the predictive and intelligence module 312 can then start predicting data for optimal haptic experience. The prediction is related to controlling parameters in the digital signal processing chain or the prediction initiates at least one haptic data 344 to one or more actuators.

[000152] Alternatively, the predictive and intelligence module 312 is provided with a user feedback to correct the haptic experience. The feedback loop receives the user feedback and actual haptic output signal; the difference between the user feedback and the actual haptic output signal is a differential signal corresponding to deviation from the optimal haptic experience. The predictive and intelligence module 312 uses this differential signal to correct the haptic experience. For example, the feedback provided by the user is a score. The score corresponds to a deviation of haptic signal from the desired haptic experience. The user selects a score to quantify the haptic experience. The predictive and intelligence module 312 analyzes the score and takes corrective action to optimise the haptic experience.

[000153] The predictive and intelligence module 312 implements the predictive algorithm from the predictive data algorithms 346 with a provision to predict the output accuracy. For example, the predictive algorithm provides a confidence level for prediction accuracy. When the predictive algorithm has a low confidence level (less than 0.6 in a scale of 0 to 1) for prediction, the predictive and intelligence module 312 switches to the analytics module 170 for providing parameters to control the digital signal processing chain. However, if the confidence level is greater than 0.6, the predictive and intelligence module is enabled to provide haptic output.

[000154] A dataset for training the predicted algorithms is pre-stored in the memory 330 associated with the predictive and intelligence module 312. The dataset is provided in a memory segment or it can be downloaded from the cloud 140, a server 130, or network location. The predictive and intelligence module 312 utilizes the pre-stored dataset to train itself to predict the haptic output or can correlate the waveform analysis parameters 342 with haptic data 344. This correlation is useful in predicting real time input audio signal for haptic output. In another implementation, the predictive and intelligence module 312 utilizes waveform analysis parameters 342 and the pre-stored data in the memory 330 to train itself and to learn the prediction of haptic output. The predictive and intelligence module 312 determines audio waveform characteristics and other parameters to select the best and/or the closest dataset to train itself for predicting the haptic output. Additionally, the predictive and intelligence module 312 determines at least one predictive algorithm to be utilized for self-training and classification of haptic data. The predictive and intelligence module 312 then determines each haptic event from the audio, utilizes at least one predictive algorithm from predictive data algorithms 346 and identifies the haptic data output 344 to be provided to one or more actuators.

[000155] The memory 330, the algorithm and haptic selection module 340 are directly associated with the booster module 338. The booster module 338 drives one or more secondary actuators (also known as) booster actuators. The main function of the booster module 338 is to ramp up or provide an additional boost by driving the booster actuator.

[000156] The predictive and intelligence module 312 utilizes the pre-stored haptic data in the memory 330 and the parameters determined from the waveform characteristics of the audio signal to train at least one prediction algorithm to predict the haptic output. The predicted haptic experience is correlated with the haptic data 344 to form a linkage between the predicted haptic data 344 and waveform analysis characteristics 342. To reduce computational time, the prediction algorithm maintains a table between the audio signal and the haptic data 344 to be passed to one or more actuators. In certain situations when confidence level is high (>0.6), the prediction algorithm directly streams the haptic data 344 pre-stored in the memory 330 to one or more actuators, for example, the actuator 188.

[000157] In yet another implementation, the predictive and intelligence module 312 utilizes all or some of the parameters such as but not limited to RMS values, peak values, pitch, loudness, tonalness, autocorrelation coefficients, zero crossing rate, peak envelope, onsets, tempo and meter, rhythm, timing and wavelength alone or in combination to predict haptic data. Additionally, the selection of the training data stored in memory 330 and/or the prediction algorithms stored as predictive data algorithms 346 depends on RMS values, peak values, pitch, loudness, tonalness, autocorrelation coefficients, zero crossing rate, peak envelope, onsets, tempo and meter, rhythm, timing and wavelength and other input audio signal characteristics.

[000158] The predictive and intelligence module 312 in one implementation predicts gain and/or threshold values in real time to control the digital signal processing chain. In addition, the predictive and intelligence module 312 receives audio signal characteristics; the audio signal characteristics are calculated in real time at each instance of time. The predictive and intelligence module 312 analyses the audio signal characteristics and the real-time calculation of threshold and/or gain to perform machine learning in real time. Subsequently, the predictive and intelligence module 312 predicts the gain and/or threshold to be provided to the digital signal processing chain to produce enhanced haptic output.

[000159] The predictive and intelligence module can implement different algorithms for supervised learning including linear classifiers such as linear adaptive filters, kernel adaptive filters, logistic regression, ordinary least squares regression, naive Bayes classifier, ensemble methods, support vector machines, decision trees, boosted trees, random forest, neural networks, nearest neighbor, Gaussian mixture models, component analysis and some other type of algorithms.

[000160] The predictive and intelligence module 312 stores parameters corresponding to button press events associated with any gaming device such as a game controller, joystick, etc. which are passed to the digital signal processing chain for the optimal haptic experience. For example, a game controller provides a button press event corresponding to an explosion in a video game. The button press event and associated parameters is passed to the analytics module 170 . The analytics module 170 processes the input audio signal 162 via the input signal analyzer and RMS generator module 308 to determine different characteristics of the audio signal. For example, the input signal analyzer and RMS generator module 308 determines the peak signal values, the RMS values and other audio signal characteristics. This is done in parallel with the processing of the button press events received from a gamepad or the game controller by the predictive and intelligence module 312. The parameters determined by input signal analyzer and RMS generator module 308 and the parameters generated using pre-stored values in the predictive and intelligence module 312 are evaluated using a predictive algorithm to arrive at optimal values to be passed onto the digital signal processing chain for better haptic experience. Alternatively, the prediction and intelligence module 312 decides to utilize either the parameters determined using the input audio signal or the pre-stored haptic data 344 parameters to control at least one or more dynamic processor in the digital signal processing chain. In another implementation, the parameters determined by input signal analyzer and RMS generator module 308 and the parameters generated using pre-stored values in the predictive and intelligence module 312 are evaluated using a predictive algorithm to determine or control an envelope follower, preset values, dual filter cut-off frequencies and some other parameters.

[000161] The predictive and intelligence module 312 implements at least one classification algorithm. The classification algorithm selected from predictive data algorithms 346 is first trained using a pre-stored dataset in the memory 330. The predictive and intelligence module 312 initially learns from the pre-stored data and the waveform analysis parameter data 342 by initiating a learning process. Once the predictive algorithm completes the learning process, it then uses the learning to classify the haptic data to provide haptic experience. For example, the classification algorithm can classify the gain and/or the threshold based on input audio signal 162 characteristics, such as RMS values and peak values, which are provided to one or more dynamic processors in the digital signal processing chain. The predictive and intelligence module 312 implements unsupervised algorithms, for example, deep belief network, which is a generative probabilistic model. The deep belief network is a deep learning algorithm composed of visible layer with multiple hidden layers. The predictive and intelligence module 312 trains at least one visible layer using a pre-stored data in the memory 330. The learning process is propagated to hidden layers, which then learn the statistical relation from the visible layer. In one implementation, the deep belief network can be trained using greedy layerwise training using audio signal characteristics and pre-stored data to predict closest haptic experience stored in the haptic data 344. The greedy layerwise training follows a bottom up approach during the training process. Alternatively, convolutional deep belief networks can also be used to predict haptic signal.

[000162] The predictive and intelligence module 312 implements unsupervised learning algorithms including but not limited to clustering, k-means, mixture models, DBSCAN (Density- based spatial clustering of applications with noise), OPTICS (Ordering points to identify the clustering structure) algorithms, autoencoders, deep belief nets, Hebbian learning, generative adversarial networks, self-organizing map, expectation-maximization algorithm (EM), method of moments, blind signal separation techniques or some other unsupervised learning algorithms.

[000163] Fig. 4 illustrates a haptic processing system 400 with a preset module 402. The haptic processing system 400 receives the input audio signal 162. The signal is pre-processed and made suitable for processing at the preprocessing module 164. The preprocessing module 164 reduces the sampling rate of the input audio signal 162 and filter out any unwanted frequencies in the input audio signal 162 before it can be provided to one or more dynamic processors 166. In this embodiment, two dynamic processors 166 are provided, that is, the noise gate 206 and the compressor 208. The pre-processed signal is passed on to the noise gate 206, which has a threshold level; the threshold level is set dynamically based on the parameters received from the analytics module 170. The output from the noise gate module 206 is provided to the compressor module 208. Additionally, the output from the noise gate module 206 is also provided to the dry/wet module 168. The dry/wet module 168 mixes the input audio signal 162 and the output signal from the noise gate 206 in a pre-defined ratio. The dry/wet module 168 acts as a mixer between the input audio signal 162, which is the unprocessed audio signal and the processed signal from at least one of the dynamic processor modules. The dry/wet module 168 controls the mix of dry signal with wet signal to adjust low frequencies. Furthermore, the dry/wet module 168 improves the haptic output signal by a mix of the dry audio signal to the wet audio signal. When no sound effects can be produced using the wet audio signal, the mix of the dry/wet signal provides the basis to produce the haptic output. The pre-defined ratio of the two signals varies between 0 and 1. The output signal from the dry/wet module 168 is provided to the mixer module 180.

[000164] The output signal from the noise gate module 206 is passed on to the compressor module 208, which reduces the dynamic range of the received signal 162. The compressor module 208 also receives parameters from the analytics module 170. The received parameters modulates or controls or adjusts the gain of the compressor module 208 without interfering with the digital signal processing chain. The output signal from the compressor module 208 with a reduced dynamic range is passed on to the envelope follower module 172. The envelope follower module 172 converts the received bipolar signal into a unipolar signal and further converts the received high-frequency signal into a low frequency signal ; the low-frequency signal is the replica of the high-frequency signal. The output of the envelope follower module 172 is passed on to an oscillator module 174 which is tuned to a fixed resonant frequency preferably the resonant frequency of an actuator 188. The oscillator module 174 is tuned around the resonant frequency of the actuator 188. The output from the oscillator module 174 is subsequently passed to the mixer module 180.

[000165] The signal from the compressor module 208 is also passed on to a resonance module 178, which amplifies low-frequency components present in the received signal. The resonance module 178 may appends low-frequency components that replicate a string, a plate or a membrane. In addition, the resonance module 178 amplifies and/or appends low-frequency components suppressed in the original input audio signal 162. Additionally, the resonance module 178 adds low frequencies to the received signal. Furthermore, the resonance module 178 excitates the physical model of string, membrane, plate or other musical instruments to enhance the haptic output. The output of the resonance module 178 is passed on to the mixer module 180.

[000166] The mixer module 180 receives the input from the dry/wet module 168, the output of the oscillator module 174, and the output from the resonance module 178. In the mixer module 180, the received signals are mixed in a pre-defined proportion, which can be either be programmed or varies through a user interface. The output signal from the mixer module 178 is passed to a low pass filter module 182. The low-pass filter module 182 suppresses any unwanted high-frequency components of the received signal. The output signal from the low pass filter module 182 is passed on to a limiter module 184. The limiter module 184 ensures that any unwanted energy embedded in the received signal is restricted to the operating voltage or current of the actuator 188. Thus, the limiter module 184 limits any additional power that may damage the actuator 188. Also, the limiter module 184 limits the voltage in the signal to avoid any damage to the actuator 188. Moving further, a bell filter module 186 improves the operating frequency response of the actuator 188. The output signal from the bell filter module 186 is provided to a detector module 190 and the actuator 188. The actuator 188 transforms the received signal from the bell filter module 186 to produce haptic output.

[000167] A preset module 402 has one or more presets configured for setting one or more control parameters in the low pass filter module 182, the limiter module 184, and the bell filter module 186. The one or more control parameters include the cut-off frequency, the proportion of signals to be mixed in different modules, and the like. Alternatively, the preset switch is controlled by a user interface in the electronic device, a rotary switch with different preset values or some other type of switch.

[000168] The exchange of parameters between the at least one dynamic processor, for example, the noise gate 206 or the compressor module 208, and the analytics module 170 is independent of the signal processing digital signal processing chain. The exchange of parameters between at least one dynamic processor such as the noise gate 206 or the compressor 208 and the analytics module 170 is implemented using a pointer, passing on a value by reference, shared memory, functions, subroutines, procedures or any other type of parameter exchange means known in the art. For example, the noise gate 206 receives parameter values from the analytics module 170 and accordingly controls the threshold value of the noise gate 206. In another implementation, the compressor module 208 receives parameters from the analytics module 170 to control the gain of the compressor module 208.

[000169] The output signal from the bell filter module 186 is passed on to a detector module 190 which also receives an input from the preprocessing module 164 or the input audio signal 162. The detector module 190 probes the presence of a signal at either of the two inputs, that is input signal from the preprocessing module 164 and the output signal from the bell filter module 186. If no signal is detected at either of the inputs, the detector module 190 switches off the haptic processing module 400 into power saving mode. However, if a signal is detected at both the input audio signal 162 and the output of the bell filter module 186, the detector module 190 keeps the haptic processing module 400 in power ON state or active mode. When a signal is detected either at the input or the output, the detector module 190 stays in power on state for a pre-determined time-period and again probes the two inputs and, in the absence of a signal at both the inputs, the detector module 190 switches off the power or enters into power saving mode. The time-period before the haptic processing module 400 switches off the power varies between 10 seconds to 60 seconds.

[000170] The analytics module 170 includes the transient analysis detection module 304, the peak analyzer module 306, the input signal analyzer and RMS generator module 308, the sidechain module 310, the predictive and intelligence module 312, the detector and threshold module 314, the gain controller module 316A and the gain controller module 316B. The analytics module 170 and all other modules perform the function as already described earlier.

[000171] Referring to Fig. 5, a haptic processing system 500 is illustrated. The dotted connection illustrates a parameter exchange between different modules and the direct line indicates the flow of an input audio signal 502 in different modules.

[000172] As defined earlier and herein, the haptic processing module 500 comprises of a digital signal processing chain, an analytics module 170, and a preset module 524. The analytics module 170 and the preset module 524 control or modulate the processing of audio input signal in the digital signal processing chain by adjusting one or more control parameters in the different modules. The digital signal processing chain comprises of all the modules through which the audio input signal is processed to produce haptic output.

[000173] The haptic processing system 500 receives an input audio signal 502 (same as input audio signal 162) which is provided to a preprocessing module 504. The preprocessing module 504 converts the signal into a suitable form to enable processing of the audio input signal 502, for example, by converting the received input audio signal 502 into a signal with a sampling rate below 8 KHz. Likewise, the preprocessing module 504 may include a low pass filter to remove unwanted frequencies. The output of the preprocessing module 504 is provided to a signal detection module 506. The signal detection module 506 senses the presence of a signal from the preprocessing module 504 and a signal received from a filter module 544, and in the absence of a signal at the preprocessing module 504 and the filter module 544, turns off the power of the haptic processing module 500 and enters a power saving mode. Alternatively, if the detection module 506 senses a signal either at the preprocessing module 504 or a signal from the filter module 544, it keeps the haptic processing module 500 in active power state. Alternatively, the detection module 506 investigates the presence of a signal from the pre-processing module 504 and a signal from the filter module 544, and if it detects no signal from the preprocessing module 504 but a signal from the filter module 544, the detection module waits for a predetermined time before switching off the power of the haptic processing module 500. The predetermined time is 10 seconds. The predetermined period vary between 1 second and 60 seconds.

[000174] The output from the signal detection module 506 is provided to a gain controller module 508, which increases or decreases the gain of the signal. The output of the gain controller module 508 is then passed on to a gain control processor 1 module 526 and to an analytics module 170. The gain control processor 1 module 526 receives at least one control parameter such as threshold from the analytics module 170; the one control parameter adjusts or controls the threshold level of the gain control processor 1 module 526 and also provides gain to be applied to the signal. The passing of threshold parameters on to the gain control processor 1 module 526 is made by reference, value, pointer or by a function call. The gain control processor 1 module 526 opens to pass on the received signal when the received signal is above the received threshold value and attenuates the received signal if it is below the threshold value either completely or by an attenuation factor, which is between 0 and 1. The gain applied to the received signal varies dynamically based on the parameters provided by the analytics module 170. For example, the gain applied at one instance tl and at another instance t2 are different from each other and depend upon the characteristics of the input audio signal 502.

[000175] The analytics module 170 also receives the signal from the gain controller module 508. The received signal is simultaneously provided to the transient analysis detection module 314, the peak analyzer module 306 and the input signal analyzer and RMS generator module 308. The transient analysis detection module 304 detects the presence of transients in the received input signal, while the peak analyzer module 306 calculates the peak values in the received input audio signal 502 for a fixed period of time. Likewise, the input signal analyzer and RMS generator module 308 calculates the root mean square values of the received input audio signal 502 for modulating or controlling at least one control parameter, for example, the gain or the threshold value of gain control processors.

[000176] The sidechain module 310 controls the different parameters for the haptic processing system 500 such as an attack time, a release time, a hold time, a knee and other parameters associated with the received signal. The detector and threshold module 314 monitors the received signal and detects when the input audio signal moves above or below the threshold values. The output from the transient analysis detection module 304, the peak analyzer module 306, the input signal analyzer and RMS generator module 308, the sidechain module 310 and the detector and threshold module 314 are provided to the predictive and intelligence module 312. The predictive and intelligence module 312 calculates one or more control parameters to control signal processing at different stages of the haptic processing module 500. For example, based on the parameters received from the transient analysis detection module 304, the peak analyzer module 306, the input signal analyzer and RMS generator module 308, the sidechain module 310 and the detector and threshold module 314, the predictive and intelligence module 312 provides the parameters to the gain control processor 1 module 526 to control the threshold values and/or the gain. Similarly, the transient analysis detection module 304, the peak analyzer module 306, the RMS generator module 308, the sidechain module 310 and the detector and threshold module 314, the predictive and intelligence module 312 modulates or adjusts the gain at one or more gain control processors. Also, the output of the sidechain module 310 is passed on to a gain controller module 316A. Likewise, the output from the detector and threshold module 314 is also passed on to the frequency gain controller module 510. The frequency gain controller 552 controls or adjusts the amplitude of received signal at particular frequencies to provide enhanced haptic response with wideband actuators. [000177] The output of the gain control processor 1 module 526 is provided to the gain control processor 2 module 528, which receives parameters from the analytics module 170 to set the gain, threshold, and other control parameters. The gain control processor 2 module 528 reduces the dynamic range of the received signal based on parameters such as gain and/or threshold value received from the analytics module 170 in real time. The parameters are passed by value, passing on by reference, passing on by pointer or similar methods commonly used in programming languages.

[000178] The output from the gain control processor 2 module 528 is passed simultaneously onto an envelope follower module 534, a physical resonance module 532, and a dry/wet module 530. The envelope follower converts the high frequency signal to a low-frequency signal and a bipolar signal into a unipolar signal to be provided to an oscillator module 536. The oscillator module 536 modulates the received signal at a fixed resonant frequency., The fixed frequency of the oscillator can vary from 35 Hz to 120 Hz. The physical resonance module 532 amplifies and/or appends the suppressed low frequencies in the received signal to produce a better haptic experience. Additionally, the physical resonance module 532 generates an audio waveform using mathematical models to add frequencies corresponding to a string, a membrane or a plate.

[000179] The dry/wet module 530 receives input from the gain control processor 2 module 528 and the gain controller module 508. The dry/wet module 530 processes the received signals and provides an output to the mixer module 538.

[000180] Additionally, the analytics module 170 also passes control parameters on to the envelope follower module 534 and a dual filter module 540. The analytics module 170 passes on parameters to control the threshold and/or gain at the envelope follower module 534. Additionally, the analytics module 170 also provides parameters to control the dual filter module 540.

[000181] A preset module 524 provides a parameter to control the dry/wet module 530, the mixer module 538, a dual filter module 540, a limiter module 542, a filter module 544, and an up- sampling module 546. For example, the preset module 524 provides a user interface to set the parameters to control the mixer module 538. In another example, the dry/wet module 530 includes a control knob provided to the user to change parameters.

[000182] The output from the oscillator module 536, the physical resonance module 532, and the dry/wet module 530 is provided to the mixer module 538. The mixer module 538 mixes the signal in a predefined proportion. The preset module 524 controls the setting of different modules by providing parameters. The output from the mixer module 538 is passed on to a dual filter module 540. The dual filter module 540 filters the output using a double filter with cut-off frequencies Fl and F2 respectively. The analytics module 170 controls the cut-off frequencies Fl and F2 associated with dual filter module 540. When a transient is detected, the analytics module 170 directs the dual filter 540 to shift the cut-off frequency from lower cut-off frequency Fl to a higher cut-off frequency F2 (F2>Fl) to allow the transient to pass. After passing on the transient, the analytics module 170 sends a control signal to shift the cut-off frequency F2 back to cut-off frequency Fl . In one example, the cut-off frequency of the dual filter 540 is 40 Hz to 250 Hz. In another example, the cut-off frequency of the dual filter 540 is between 50 Hz to 400 Hz. In another variation of current implementation, the lower cut-off frequency is between 20 - 60 Hz and upper cut-off frequency is between 250 Hz to 500 Hz.

[000183] The output of the dual filter module 540 is then provided to the limiter module 542, which ensures that the received signal is within the acceptable operating range of an actuator 548. Otherwise, it may create distortions in the haptic output. To overcome this, the limiter module 542 is set to -3 dB just below 0 dB.

[000184] The limiter module 542 is associated with an overdrive module and a damping module. Due to the initial weight of the actuator 548, when the excitation voltage is passed on to the actuator 548, it takes time to achieve the expected vibrations. This is due to the moving mass of the actuator 548. The slow response of the actuator 548 is compensated by an overdrive module that provides additional excitation to reach expected vibrations on an initial excitation. Additionally, the mass of the actuator 548 and the momentum gained by it during vibration does not allow it to stop immediately. To compensate the additional vibration of the actuator 548, a damping module is provided. The damping module provides an excitation signal, which is 180 degrees out of phase from the input signal to damp out the vibration and to halt the actuator 548 immediately.

[000185] The output of the limiter module 542 is provided to the filter module 544 to attenuate any unwanted frequencies. The output of the filter module 544 is passed on to an upsampling module 546 to increase the sampling rate to a desired level. The signal is finally passed on to the actuator 548 for producing haptic output.

[000186] Referring to Fig. 5 A, a haptic processing system 500A is provided that illustrates at least two actuators, that is, the actuator 548 (actuator 548 is also referred to as master actuator 548 to distinguish it from other actuators) and a booster actuator 564. Both the master actuator 548 and the booster actuator 564 are connected with the digital signal processing chain in parallel with identical modules but operate independently. As described earlier and herein, the digital signal processing chain comprises of all the modules with a direct audio signal flow. The input audio signal is processed in the digital signal processing chain to generate haptic output signal. The digital signal processing chain comprises all the different modules except the analytics module 170 and the preset module 524. The analytics module 170 and the preset module 524 controls or adjusts the processing of the digital signal processing chain by passing one or more control parameters. Furthermore, as provided earlier and herein, the dotted connection illustrates exchange of parameters among different modules, whereas the direct line indicates the flow of an input audio signal among different modules. Furthermore, the analytics module 170 implements all the functionality as described in Fig. 3A, Fig. 3B, and Fig. 3C.

[000187] The haptic processing module 500A receives the input audio signal 502 which is provided to the preprocessing module 504. The preprocessing module 504 converts the signal into a suitable form to enable processing of the audio input signal 502, for example, by converting the received input audio signal 502 into an audio signal with a sampling rate of below 8 KHz. The preprocessing module 504 includes a low pass filter to remove unwanted frequencies. The output of the preprocessing module 504 is provided to a signal detection module 506; the signal detection module 506 senses the presence of the input audio signal 502 from the preprocessing module 504 and the output signal received from the filter module 544, and in the absence of a signal at the preprocessing module 504 and the filter module 544, turns off the power of the haptic processing module 500 A and enters the power saving mode. Alternatively, if the signal detection module 506 senses a signal either at the preprocessing module 504 or a signal from the filter module 544, it keeps the haptic processing module 500A in an active power state. Additionally, the signal detection module 506 investigates the presence of a signal from the preprocessing module 504 and a signal from the filter module 544, and if no signal is detected at the preprocessing module 504 but an output signal is sensed at the filter module 544, the signal detection module 506 waits for a predetermined amount of time before switching off the power of the haptic processing module 500A.

[000188] The predetermined time is between 5 to 10 seconds but can also range between 1 second to 60 seconds.

[000189] The output from the signal detection module 506 is provided to the gain controller module 508, which increases or decreases the gain of the audio signal. The output of the gain controller module 508 is then passed on to the gain control processor 1 module 526 and to the analytics module 508. The gain control processor 1 module 526 receives one or more control parameters, for example, threshold and/or gain from the analytics module 170. The control parameters adjust or control threshold of the gain control processor 1 module 526. In addition, the control parameters also provide at least the gain to be applied to the input signal during processing in the digital signal processing chain. The control parameters can be passed to the gain control processor 1 module 526 by reference, value, pointers or as a function or subroutine calls.

[000190] The gain control processor 1 module 526 operates either in an open state or a closed state. When the received signal from the gain controller module 508 is above the threshold value, gain control processor 1 module 526 operates in an open state and passes the received signal; however, when the received signal is below the threshold values, the gain control processor 1 module 526 is in a closed state and attenuates the received signal. In one variation, the gain applied to the received signal and/or the threshold values are dynamically updated in real time. Furthermore, the gain applied to the received signal and/or the threshold values are dynamically updated at varying time intervals. For example, the gain and/or the threshold applied at instance tl and at instance t2 are different depending upon the characteristics of the input audio signal 502.

[000191] The analytics module 170, and the gain controller processor 1 module 526 simultaneously receive the input audio signal 502 from the gain controller module 508. The received input signal is provided to a transient analysis detection module 304, a peak analyzer module 306 and an input signal analyzer and a RMS generator module 308. A parallel processing is performed on the input audio signal 502. The transient analysis detection module 304 detects the presence of transients in the received input signal by implementing the transient detection algorithm defined later in Fig. 21. The peak analyzer module 306 calculates the peaks in the received input signal for a fixed time with varying window size. The window size depends upon the frequency of the signal, pitch, temporal resolution, frequency resolution and other waveform characteristics. In one implementation, the window size is selected based on an adaptive algorithm such as the Widrow-Hoff least square (LMS). Simultaneously, the input signal analyzer and RMS generator module 308 calculates the root mean square values of the received audio signal. The peak and RMS values are utilized to calculate one or more control parameters for modulating the gain control processor 1 module 526 and the gain control processor 2 module 528 as described in the process 1600 in Fig 16. The one or more control parameters is a gain, a threshold, pitch, phase or some other parameters related to input audio signal.

[000192] The analytics module 170 also includes the input signal analyzer and RMS generator module 308, the sidechain module 310, the predictive and intelligence module 312, the detection and threshold module 314, the gain controller module 316A, the frequency gain controller module 552 and a booster analytics module 338 (shown in Fig. 3C) apart from other modules. The peak analyzer module 306 calculates the peak values of the input audio signal 502. The transient analysis detection module 304 detects the presence of transients in the input audio signal 502. The RMS generator calculates the RMS values of the input audio signal 502. As herein and elsewhere, the RMS values and the peak values are utilised for calculation of one or more control parameters such as the gain and/or threshold. Similarly, the transient analysis detection module 304 handles transients in the input audio signal 502 by implementing the transient processing algorithm described later under Fig. 21. The sidechain module 310 controls the different parameters for the haptic processing module 500 A such as an attack time, release time, a hold time, a knee and other parameters. A detector and threshold module 314 monitors the received input signal and detects when the input audio signal moves above or below the threshold values. The outputs from the transient detection module 304, the peak detection module 306, the input signal analyzer and RMS generator module 308, the sidechain module 310 and the detector and threshold module 314 are provided to the predictive and intelligence module 312. The predictive and intelligence module 312 calculates the parameter values associated with the input audio signal 502 characteristics to control signal processing at different stages of the haptic processing module 500 A. The predictive and intelligence module 312 may implement all the predictive algorithms as described in Fig. 3C. For example, based on the parameters received from the transient analysis detection module 304, the peak analyzer module 306, the input signal analyzer and RMS generator module 308, the sidechain module 310 and the detector and threshold module 314, the predictive and intelligence module 312 provides the one or more control parameters to the gain control processor 1 module 526 to control the haptic processing. Similarly, the transient analysis detection module 304, the peak analyzer module 306, the input signal analyzer and RMS generator module 308, the sidechain module 310, the detector and threshold module 314 and the predictive and intelligence module 312 modulates the gain at one or more gain control processors like gain control processor 1. Also, the output of the sidechain module 310 is also passed on to a gain controller module 316A. Likewise, the output from the detector and threshold module 314 is also passed on to frequency gain controller module 510, which provides further refining to control parameters for a better haptic experience.

[000193] The output of the gain control processor 1 module 526 is provided to the gain control processor 2 module 528, which also receives control parameters from the analytics module 170 to set the gain and/or threshold. The gain control processor 2 module 528 reduces the dynamic range of the received signal based on the control parameters such as gain and/or threshold value received from the analytics module 170 in real time. The control parameters can be passed on using any known method of parameter such as pass by value, pass by reference, pass by pointer and the like.

[000194] The output from the gain control processor 2 module 528 is passed simultaneously on to the envelope follower module 534, the physical resonance module 532, and the dry/wet module 530. The envelope follower module 534 converts the high frequency signal to a low- frequency signal and the bipolar signal into a unipolar signal to be provided to an oscillator module 536. The oscillator module 536 modulates the received signal at a fixed resonant frequency. The fixed frequency varies from 35 Hz to 120 Hz in different variations depending upon resonant frequency of the master actuator 548. The physical resonance module 532 amplifies and/or appends and/or creates the suppressed low frequencies in the received signal to produce a better haptic experience.

[000195] The dry/wet module 530 receives input from the gain control processor 2 module 528 and the gain controller module 508. The dry/wet module 530 receives a dry signal and a wet signal as input. The dry signal is an unprocessed input audio signal. The wet signal is a processed input audio signal. The dry/wet module 530 mixes the dry signal and the wet signal in a specific ratio. The output of the dry/wet signal is provided to the mixer module 538.

[000196] The analytics module 170 also passes one or more control parameters to the envelope follower module 534, the dual filter module 540, a dual filter module 556 and a booster controller module 554.

[000197] The mixer module 538 is connected directly with the dual filter module 540. In addition, the mixer module 538 is also connected with the booster controller module 554. The haptic output from the mixer module 538 is provided to the dual filter module 540, the limiter module 542, the filter module 544, the up-sampling module 546 and to one or more master actuators, such as the master actuator 548. Fig. 5A depicts only one master actuator 548, although more than one master actuators such as 548A, 548B, 548C, 548D can be provided for producing haptic experience.

[000198] The boost controller module 554 provides the output signal to the dual filter 556, a limiter module 558, a filter module 560, an up-sampling module 562 and to one or more booster actuator 564. Although only one booster actuator 564 is shown, more than one booster actuator such as a booster actuator 564A, a booster actuator 564B, a booster actuator 564C, and a booster actuator 564D can be connected with the up-sampling module 562 in another variation of this implementation. The main purpose of the booster control module 554 is to provide additional boost for better haptic experience in synchronisation with the master actuator 548. The booster control module 554 also receives an input from the booster analytics module 338 as described in Fig. 3. incorporated herein.

[000199] The boost controller 554 receives input from the analytics module 170 and the mixer module 538 to decide when to trigger the boost based on one or more control parameters. The control parameters are waveform characteristics like amplitude, frequency, phase, loudness, RMS values, peak values, the calculated gain, the calculated threshold, and the predictive algorithms implemented in the prediction and intelligence module in Fig.3C. By way of example and not as a limitation, the mixer module 538 provides a haptic signal to the boost controller module 554. The boost controller module 554 has logic to trigger the one or more booster actuators 564 in synchronisation with the master actuator 548. Alternatively, the boost controller 554 triggers the booster actuator 564 based on one or more control parameters received from the analytics module 170. The boost controller module 554 can trigger one or more booster actuators 564 based on one or more control parameters received from the analytics module 170 and the received signal from the mixer module 538 in another implementation. Likewise, the boost controller module 554 may trigger the booster actuator 564 based on one or more control parameters received from the analytics module 170 or the received signal from the mixer module 538 in yet another implementation. However, the master actuator 548 generates haptic output based on signal received from the digital signal processing chain. To illustrate with an example, the haptic processing system 500A produces haptic output through the master actuator 548 continuously based on input audio signal 502. However, the booster controller 554 decides when to trigger the booster actuator 564 in phase with the master actuator 548.

[000200] Fig 5B illustrates an alternate implementation of the haptic processing system 500B, which is similar to 500A in all functionality except that in this implementation the boost controller module 554 receives output signal from the oscillator module 536. The novel aspect of this implementation is to use a simple waveform to drive the booster actuator 564 for producing haptic output. For example, the booster actuator 564 can be a Linear Resonant Actuator (LRA), which provides maximum haptic effect at a resonant frequency and can be integrated along with the master actuator 548. The LRA based booster actuator 564 can be tuned at a resonant frequency and the master actuator 548 is a wide band actuator that is tuned to provide a good frequency response over a range of frequencies. This arrangement simplifies the synchronisation of the booster actuator 564 with the master actuator 548 producing a better haptic experience. In addition, the mixer module 538 mixes received input signals received from different sources. The output waveform is a complex waveform, which is passed to the master actuator 548 to produce high definition haptic experience whereas a boost signal is provided by the oscillator module 536. The booster controller module 554 triggers the booster actuator 564 based on one or more control parameters to generate haptic output via the dual filter module 556, the limiter module 558, a filter module 560, and an up-sampling module 562. Although only one boost actuator 564 is shown, there may be one or more boost actuators such as a booster actuator 564A, a booster actuator 564B, a booster actuator 564C, and a booster actuator 564D connected to the upsampling module 562. In one example, the master actuator 548 is connected to one or more booster actuators such as the booster actuator 564A, the booster actuator 564B, the booster actuator 564C, and the booster actuator 564D. In another example, one or more master actuators such as the master actuator 548A, the master actuator 548B, the master actuator 548C, and the master actuator 548D can be configured to one booster actuator 564. In another example, one or more master actuators such as the master actuator 548A, the master actuator 548B, the master actuator 548C, and the master actuator 548D is connected with the booster actuator 564A, the booster actuator 564B, the booster actuator 564C, and the booster actuator 564D.

[000201] Fig 5C illustrates another alternate implementation of the haptic processing system 500C similar to the haptic processing system 500A except that the boost controller module 554 receives the output signal from the physical resonance module 532. The booster controller module 554 then triggers the booster actuator 564 based on one or more control parameters to produce the haptic output through the dual filter module 556, the limiter module 558, a filter module 560, and an up-sampling module 562. By connecting the physical resonance module 532 to the boost controller module 554, several suppressed frequencies can be amplified to drive the booster actuator 564 in synchronization with the master actuator 548. Some low frequencies in the input audio signal 502 can be lost or suppressed and require regeneration or amplification to produce a realistic haptic experience. This can be achieved by passing a part of the haptic signal from the physical resonance module 532 directly to the boost controller module 554, which drives the booster actuator 564 based on one or more control parameters in synchronization with the master actuator 548. Although only one boost actuator 564 is shown, there may be one or more booster actuators such as a booster actuator 564A, a booster actuator 564B, a booster actuator 564C, and a booster actuator 564D connected to the upsampling module 562. In one example, the master actuator 548 is connected to one or more booster actuators such as the booster actuator 564A, the booster actuator 564B, the booster actuator 564C, and the booster actuator 564D. In another example, one or more master actuators such as the master actuator 548A, the master actuator 548B, the master actuator 548C, and the master actuator 548D is configured to one booster actuator 564. In another example, one or more master actuators such as the master actuator 548A, the master actuator 548B, the master actuator 548C, and the master actuator 548D are connected with the booster actuator 564A, the booster actuator 564B, the booster actuator 564C, and the booster actuator 564D.

[000202] A preset module 524 provides controls for setting parameters or predefined values in the dry/wet module 530, the mixer module 538, the dual filter module 540, the limiter module 542, the filter module 544, and the up-sampling module 546. For example, the preset module 524 provides a user interface to set the control parameters or values. In another example, the dry/wet module 530 is controlled by a slider accessible to a user via a software or hardware user interface. In addition, the preset module 524 is used to set the control parameters or control values in the dual filter module 556, the limiter module 558, the filter module 560, the upsampling module 562 associated with the booster actuator 564. The control parameters or control values can either be predefined or set using a user interface.

[000203] Moving further, the output signal from the oscillator module 536, the physical resonance module 532, and the dry/wet module 530 are mixed together in the mixer module 538. The mixer module 538 mixes the signal in a pre-defined proportion or can be set through the user interface of the preset module 524. The output from the mixer module 538 is passed on to the dual filter module 540 and the boost controller module 554. The output of the boost controller module 554 is provided to the dual filter module 556. The dual filter module 540 and the dual filter 556 filters the output using a double filter with cut-off frequencies Fl and F2. The analytics module 170 controls the opening of the dual filter 540 and the dual filter 556. When a transient is detected, the analytics module 170 directs the dual filter 540 and the dual filter 556 to shift the cut-off frequency from Fl to F2. After passing on the transient, the analytics module 170 sends another control signal to shift the cut-off frequency back to Fl . In one example, the cut-off frequency of the dual filter is between 40 Hz to 250 Hz. In another example, the cut-off frequency of the dual filter can be between 50 Hz to 400 Hz. In another implementation, the lower cut-off frequency is set between 20 - 60 Hz and upper cut-off frequency is set between 250 Hz to 500 Hz.

[000204] The output of the dual filter module 540 is then provided to the limiter module 542, which ensures that the received signal is within the acceptable operating range of the master actuator 548. Otherwise, it may create distortions in the haptic output. To overcome this, the limiter module 542 is set to -3dB just below OdB to provide a flat haptic response. Similarly, the output signal from the dual filter module 556 is provided to the limiter module 558, which ensures that the received signal is within the acceptable operating range of the booster actuator 564.

[000205] The output from the limiter module 542 is passed to the filter module 544 to filter unwanted frequencies that can cause distortion in the haptic output. Likewise, the output from the limiter 558 is provided to the filter module 560. The output signal from the filter module 544 is provided to the upsampling module 546 for increasing the sampling rate before generating haptic output in the master actuator 548. Likewise, the output signal from the filter module 560 is provided to the upsampling module 562 for increasing the sampling rate before generating haptic output in the booster actuator 564.

[000206] Fig. 5A, Fig. 5B, and Fig. 5C can be implemented in stereo or quadraphonic configuration. The stereo configuration has a left channel and a right channel, each channel having a haptic processing system shown in Fig. 5A, Fig. 5B, and Fig. 5C. For example, the left channel audio and the right channel audio are separate digital signal processing chains comprising the audio input signal 502, the pre-processing module 504, the signal detection module 506, gain controller 508, the gain control processor 1 module 526, the gain control processor 2 module 528, the envelope follower module 534, the oscillator module 536, the physical resonance module 532, the dry/wet module 530, the mixer module 538, the boost controller module 554, the dual filter module 540, the limiter 542 module, the filter module 544 and the up-sampling module 546 to generate haptic output in the master actuator 548A. Additionally, the digital signal processing chain also includes the boost controller 554, dual filter module 556, the limiter 558, the filter module 560, the up-sampling module 562 to generate haptic output in the booster actuator 564. The analytics module 170 controls the digital signal processing chain by passing one or more control parameters. Similarly, in a quadraphonic implementation, there are at least four haptic processing modules, each comprising a digital signal processing chain with an analytics module and each connected with one or more master actuators 548 and one or more booster actuators. Alternatively, the quadraphonic channels can also be implemented using two haptic processing modules configured to provide virtual quadraphonic channels.

[000207] Referring to Fig. 5D, a stereophonic haptic processing system 500D is illustrated. The stereophonic haptic processing system 500D includes the input audio signal 502, which is passed to a digital signal processing chain 500A or 500B or 500C as shown in Fig. 5A, Fig.5B, and Fig. C respectively. To distinguish a left digital signal processing chain and a right digital digital signal processing chain, the left digital signal processing chain is shown as 500X and the right digital signal processing chain is shown as 500Y. The output of the left digital signal processing chain 500X and the right digital signal processing chain 500Y is provided to a LR boost controller module 570. The boost controller module 570 includes a dual filter module, a limiter module, a filter module, an upsampling module to drive the booster actuator 564. Additionally, the left digital signal processing chain 500X produces haptic output through one or more left actuators such as the left master actuator 548A and 548C. Similarly, the right digital signal processing chain 500Y produces haptic output through one or more right master actuators such as the master actuator 548B and the master actuator 548D. A part of the output signal from the left digital signal processing chain 500X and the right digital signal processing chain 500Y is provided to the LR boost controller module 570. The LR boost controller is triggered based on one or more control parameters as described earlier. The haptic output of the master actuators, for example, the master actuator 548A and the master actuator 548B are harmonised with the booster actuator 564 to produce a synchronised haptic experience. Although only one left master actuator 548A and only one right master actuator 548B is provided, the haptic processing system 500D can have two or more left master actuators such as 548 A and 548C and two or more right master actuators such as 548B and 548D in other implementations.

[000208] Fig. 5E illustrates the placement of the left master actuator 548A and the right master actuator 548B with the booster actuator 564 on headphones in an embodiment of the present invention. Furthermore, one or more additional left master actuators such as 548C and one or more additional right master actuators 548D can be provided along with the left master actuator 548A and the right master actuator 548B with the booster actuator 564 in another variation of the present invention as shown in Fig 5E.

[000209] Referring to 5F, a haptic processing system 500F is illustrated with a left digital signal processing chain 500X and a right digital signal processing chain 500Y. The left digital signal processing chain 500X and the right digital signal processing chain 500Y are identical to each other but are independent haptic processing systems as provided in 500 A or 500B or 500C in different variations to the current implementation. In one implementation, the left digital signal processing chain 500X drives the left master actuator 548A and the left booster actuator 564A. Similarly, the right digital signal processing chain 500Y drives the right master actuator 548B and the right booster actuator 564B. The output from the left boost controller module and the right boost controller module of the left digital signal processing chain 500X and the right digital signal processing chain 500Y respectively is also provided to the LR booster controller module 570. The LR booster controller module drives the centre booster actuator 564 in synchronisation with master actuators and the booster actuators.

[000210] Referring to Fig. 5G, an implementation of a haptic system on a headphone is provided comprising at least two master actuators and two booster actuators on each channel of the headphone. Although the exemplary implementation is shown on the headphone, the haptic module 108 can be implemented in headbands, game controllers, gamepads, joysticks, mobile devices or other gaming devices with haptic output. Fig 5G depicts at least two actuators in each channel. The left channel has the left master actuator 548A, the left booster actuator 564A, another left master actuator 548C, and another left booster actuator 564C. Likewise, the right channel has the right master actuator 548B, the right master actuator 548D, the right booster actuator 564B, and the right booster actuator 564D. Other variations such as multiple master actuators and multiple boost actuators also fall within the scope of the invention.

[000211] Fig 5H illustrates another variation of one or more master actuators and one or more booster actuators implemented on a headphone. Referring to 500H, the configuration includes at least two left master actuators 548A and 548C and at least two right master actuators 548B and 548D. In addition, there are at least two left booster actuators 564A and 564C, and at least two right booster actuators 564B and 564D along with the centre booster actuator 564. The centre booster actuator 564 functions in coordination with the left booster actuators 564 A, 564C and the right booster actuators 564B, 564D.

[000212] In a variation of current implementation, the limiter module 542 and the limiter module 558 is associated with an overdrive module and a damping module. Due to the initial weight of the master actuator 548 and the booster actuator 564, when the excitation voltage is passed on to the master actuator 548 and the booster actuator 564, it takes time to achieve the expected vibrations. This is due to the weight of the moving mass in the actuators. The slow response of the actuator is compensated by an overdrive module that provides additional excitation to reach expected vibrations on initial excitation. Additionally, the weight of the moving mass in the master actuator 548 and the booster actuator 564 gains momentum during vibrations. Due to the momentum gained during the vibration, the moving mass in the master actuator 548 and the booster actuator 564 does not stop immediately. To compensate the additional vibration of the master actuator 548 and the booster actuator 564, a damping module is provided. The damping module provides an inverted excitation signal to damp out the vibration, and to halt the master actuator 548 and the booster actuator 564 immediately.

[000213] The output of the limiter module 542 and the limiter module 558 is provided to the filter module 544 and the filter module 560 respectively to attenuate any unwanted frequencies. The output of the filter module 544 and the filter module 560 is passed on to an upsampling module 546 and the upsampling module 562 respectively to increase the sampling rate to a desired level. The upsampled signal is passed to a digital to analog circuit to drive the master actuator 548 and the booster actuator 564 respectively to produce haptic output.

[000214] Figure 6A and 6B depicts the various parameters in the input audio signal during haptic processing. These parameters include an attack time, release time, a knee, a gain, and a threshold apart from other parameters that are implemented in at least one dynamic processor, for example, the noise gate module 206 and the compressor module 212 in association with the sidechain modules 208A and 208B, respectively. Alternatively, these are also implemented in haptic processing system 500 and its variations.

[000215] Referring to Fig. 6A, different parameters associated with the sidechain modules 208 and the sidechain module 310 are provided. For the sake of simplicity and analysis, the input audio signal 162 is shown as an input digital signal 606. The threshold level 610 is set to -20dB. In a variation of the current implementation, the threshold value 208 is set to between -10 dB and -20 dB.

[000216] The input digital data 606 is passed on un-attenuated over the threshold value 610. When the input digital data 606 just reaches the threshold value 610, the noise gate 206 is opened and passes on all input digital data 606. When the input digital data 606 falls below the threshold value 610, the noise gate 206 is closed. In the closed state, the noise gate 206 attenuates the input digital data 606. The sidechain module 208B triggers an attack time 612, when the input digital audio signal 606 is at the threshold value 610. The attack time 612 is the time required by the noise gate 206 to transition from closed to open state. This change of state from closed to open is also called fade-in duration. The attack time 612 is set between 10 milliseconds to 50 milliseconds. The attack time 612 is required for a smooth transition of the noise gate 206 from closed to open state and vice-versa. In absence of a smooth transition, the user may experience a silence for a short time. Once the input digital data 606 crosses below the threshold 610, the noise gate 206 closes to attenuate the input audio signal 162 by a predefined value called a gain factor/gain reduction or an attenuation factor. The analytics module 170 controls the gain factor or the threshold value 610 in real time in different implementations. For example, the analytics module 170 passes on absolute values such as 2.0. 3.4 or 7.5 to set the threshold value 610 in the noise gate module 206. Alternatively, the analytics module 170 provides relative values such as a divisor (divide the current level by 2) or reduces the threshold by 14 percent to the noise gate module 206. Subsequently, after time Tl, the input digital audio data 606 falls below the threshold value 610. At this instance, the noise gate 206 does not open instantaneously, instead it holds for a short time before opening; this short time period is referred to as the hold time 618. The hold time 618 is the time before the noise gate 206 closes after the input digital data signal 606 falls below the threshold value 610. This enables a smooth transition between the open state and closed state of the noise gate 206 and also eliminates any abrupt changes that can t induce silence or clicks in the output signal 608. A release time 620 is initiated to begin the process of closing the noise gate 206. The haptic processing module varies the hold time 618 intelligently using software instructions to avoid chattering in another implementation. This provisioning is specially provided in a multi-threshold implementation of the haptic processing module 200 or 500 to avoid hysteresis. The noise gate 206 closes after the end of the release time 620. The release duration is set between 0.1 ms to 5 ms but varies between 0.1 ms to 1000 ms in other variations. The output waveform 608 is shown in Fig. 6B. The output waveform 608 is represented by solid lines. The noise gate 206 is open during this period. In contrast, the output waveform 608 is a suppressed or attenuated by a predetermined amount when the noise gate 206 is closed, which is shown in Fig. 6B with dashed lines. The above implementation is one exemplary representation, which is provided in Fig. 6A and Fig. 6B, but other variations are possible.

[000217] Fig. 7 illustrates the input audio signal 162 and the output signal at the noise gate 206. Fig. 7A illustrates the input audio signal 162 being applied to the noise gate module 206. The input audio signal 162 is also passed on to the sidechain module 208 A, which comprises a detector. The detector monitors the state of the input audio signal 162 to determine if the input audio signal 162 is above or below the threshold level. When the input audio signal 162 crosses above the threshold level, the input signal is passed unaltered. However, when the input audio signal 162 is below the threshold, the input audio signal 162 is multiplied by a gain factor/gain reduction. This considerably reduces the input audio signal 162 since the gain factor is less than 1. The result is the output signal shown in Fig. 7B. By varying the gain factor value between 0 and 1, the amount of attenuation, which is applied to the output signal is controlled. Additionally, the analytics module 170 simultaneously controls the parameters associated with the noise gate module, for example, the threshold by passing parameters on to the noise gate 206.

[000218] The analytics module 170 provides additional control on the signal gain to enhance the output signal. The analytics module 170 adjusts one or more control parameters based on an analysis of the input audio signal 162. The analytics module 170 does not interfere directly with the processing of the input audio signal 162 but controls one or more control parameters for adjusting the digital signal processing chain. The adjustment of parameters by the analytics module 170 controls the output signal to produce a better haptic experience. All processes of the digital signal processing chain and all processes executed in the analytics module 170 are executed in parallel, preferably in a microcontroller. In another variation, some or all the processes may be implemented using virtualisation.

[000219] In one example, to clearly bring out the advantages of the present invention, the haptic processing module 200 has a digital signal processing chain comprising the pre-processor module 164, the dynamic processors 206 and 212, the sidechain 208A and 208B, the envelope follower module 172, the oscillator module 174, the resonance module 178, the mixer module 180, the low-pass filter 182, the limiter module 184, the bell filter module 186 and the actuator 188 and other modules. The digital signal processing chain is the flow path of the input audio signal 162. The input audio signal 162 is also provided to the analytics module 170, which perform analytics on the input audio signal 162, but does not interfere with the signal flow. It only provides one or more control parameters to the digital processing signal chain.

[000220] The one or more control parameters controlled or adjusted by the analytics module 170 are gain, amplitude, frequency, pitch, timbre, harmonic constitution, waveform, noise, or some other type of parameters.

[000221] Several other variations can be provided such as the analytics module 170 may be optional. The analytics module 170 may be partially implemented to control the parameters only in the noise gate module 206. In another variation, the analytics module 170 is only associated with the noise gate module 206 and the compressor module 212. In yet another implementation, the analytics module 170 is associated with the noise gate module 206, the sidechain modules 208, the compressor module 212, and the envelope follower module 172. Various other implementations are possible using the analytics module 170 that allow control or adjustment of parameters associated with the input audio signal 162 to optimise the haptic experience of the user.

[000222] Fig. 8 illustrates an input signal and an output signal at the compressor module 212. Fig 8 A illustrates the input audio signal 162 received from the noise gate 206 at the input of the compressor module 212. The main function of the compressor module 212 is to reduce the dynamic range of the input audio signal 162. The dynamic range of the audio signal is the difference between the quietest and the loudest parts in an audio signal.

[000223 ] The amplitude of the received input audio signal 162 at the compressor module 212 is reduced based on at least the compression ratio and/or the threshold value. The detector in the sidechain module 208B detects when the input audio signal 162 crosses above the threshold value. When the received input signal crosses above the threshold value, the amplitude of the input signal is multiplied by a gain factor/gain reduction derived from the compression ratio. Fig. 8A depicts a compression ratio of 1 :4 in an exemplary illustration. The compression ratio and the threshold value depends upon haptic processing requirements. The compression ratio is between 1 :2 to 1 : 100 and the threshold value is between 0 dB to -50 dB.

[000224] The compression ratio in a preferred implementation is set to 1 :5 and the threshold value is set to between -20 dB to -36dB. The output signal of the compressor module 212 is illustrated in Fig. 8B. Fig. 8B shows the output signal with a significant reduction in dynamic range by limiting the amplitude of the input audio signal above the threshold value.

[000225] Fig. 9 illustrates a gain and a reduced dynamic range at the compressor. The analytics module 170 adjusts or controls the gain applied to the input audio signal 162 by providing parameters in real time to the compressor module 212. Fig. 9A shows the output signal of the compressor module 212 in absence of the analytics module 170. Fig 9B depicts the output signal of the compressor module 212 when the control parameters are applied by the analytics module 170. The analytics module 170 provides control parameters continuously in real time. The resulting signal (output signal) is compressed to reduce its dynamic range along with a gain factor applied to it. The gain factor can vary based on various parameters such as but not limited to amplitude, frequency, pitch, timbre, harmonic constitution, waveform, and noise levels of the input audio signal. Alternately, multiple parameters collectively determine the gain factor to be adjusted by the analytics module 170 during the processing of the audio signal in the compressor module 212.

[000226] Referring to Fig. 10, the flow diagram of the haptic processing module is shown. The process 1000 starts at step 1002. At step 1004, the process 1000 receives a digital audio signal for generating a haptic output. The input audio signal received at step 1004 is a digital input signal or an analog audio signal. The received analog signal is converted to a digital signal using an analog to digital convertor before passing it on to step 1006. When the input audio signal is a digital signal no analog to digital convertor is required. At step 1006, the audio signal is processed by the signal detection module to probe for the presence of the input audio signal. If the input audio signal is sensed by the signal detection module, the haptic processing module 200 is kept in a power on state by the detection module, else it enters a power saving mode. In addition, if the signal is detected only at the output, the detection module waits for a pre-defined period before entering the power saving mode. This is due to the presence of an audio signal in the haptic processing module currently being processed. The amount of delay before the detection module turns off the power supply to the haptic processing module is controllable by a preset or hard coded as a constant. At step 1008, the received signal is processed to reduce the noise in the input audio signal. A sidechain module comprising a detector and a threshold is utilised for achieving a reduction in noise in the input audio signal. The input audio signal is passed simultaneously on to the sidechain module and the noise gate. The sidechain includes a detector that detects whether the input audio signal is above or below a threshold value. When the input audio signal is above the threshold value, the noise gate is open, and the input signal passes through it unattenuated. However, when the input audio signal is below the threshold value, the input audio signal is attenuated by multiplying the input signal with a gain factor. The gain factor is set at 0.3 but varies between numeric values 0 and 1, for example, 0.3, 0.75, 0.89 in other variations. Additionally, the input audio signal at the noise gate is dynamically adjusted by the analytics module. The analytics module adjusts the gain of the input audio signal by monitoring the amplitude peaks. At step 1010, the dynamic range of the audio signal is reduced. The reduction in dynamic range of the signal is controlled by the sidechain module and the analytics module. The sidechain module includes a detector module and a threshold module. The threshold module is utilised to set the threshold value. The audio signal received from step 1008 is simultaneously passed on to sidechain module and the compressor module. In addition, the analytics module can dynamically modulate the gain of the input audio signal to optimise the haptic output signal. The input audio signal is passed on to the sidechain module, which detects whether the input audio signal is below or above the threshold value. If the input audio signal is below the threshold value, the detector indicates to the compressor to pass on the entire input signal without any compression. However, if the input audio signal is above the threshold value, the detector sends an indication to the compressor to apply compression to the input signal. The amount of compression that is applied to the input signal is decided on the basis of the compression ratio. The amount of compression applied is determined by different parameters including but not limited to amplitude, phase, and frequency of the input signal.

[000227] The processed audio signal from the compressor module is then passed on through an envelope detector module at step 1012, which extracts the signal envelope of the received input signal. The envelope detector module produces a low frequency waveform from the received high frequency waveform; it also converts the bipolar signal into a unipolar signal. This low frequency waveform is the replica of the high frequency waveform. The enveloped signal produced by the envelope detector module is modulated using a fixed frequency oscillator module. The fixed frequency oscillator module is tuned to the resonant frequency of an actuator. The processed audio signal from step 1010 is simultaneously also passed on to the resonance module. At step 1014, the low frequency components produced by membrane or string musical instruments are amplified by the resonance module. In one example, the low-frequency components, which have been attenuated and/or suppressed are enhanced to produce a haptic signal. In another example, the string or the membrane generated frequencies are added to the received audio signal to produce a haptic signal for enhanced user experience.

[000228] At step 1016, the audio signal received from different sources/modules is mixed in a mixer module. An output signal from the dry/wet module (not shown in Fig. 10) and the audio output signal from steps 1012 and 1014 are mixed to produce the haptic output signal. In addition, one or more control parameters are also received from the analytics module. Mixing of audio signals ensures that an optimised haptic signal response is produced by the actuator. For example, due to high inter-mixing of frequencies, it becomes difficult to extract the right set of frequencies for generation of the haptic signal. In another example, due to a large high frequency component, most of the low frequency components also get eliminated during audio signal processing. In yet another example, if the audio signal input is over processed, the haptic signal to be derived from the input audio signal is also filtered out during processing at various modules. The mixing of signals produces the right quality of signal for generating a haptic response. The step 1026 provides input to steps 1008, 1010, and 1012.

[000229] The output signal of step 1016 is passed on to the low pass filter for removing any residual high frequency components. It also eliminates unwanted signals that do not contribute to the haptic signal output. The audio output from 1016 is subsequently processed at step 1020 through at least one filter, e.g., a bell filter to improve the frequency response of the haptic signal in and around the resonant frequencies of the fixed frequency oscillator or the resonant frequency of the actuator. At step 1022, the actuator receives the output signal to produce a haptic response to a user. The process 1000 ends at step 1024.

[000230] Fig. 11 depicts the flow chart 1100 of the digital signal processing chain without an analytics module. The process 1100 is initiated at step 1102. At step 1104, the process 1100 receives an audio input signal. At step 1106, the detection of a signal at the input and the output of the process 1100 is performed. If no input or output signal is detected, the haptic processing module enters a battery saving mode. On the other hand, if a signal is present either at the input or the output, the haptic processing module remains in power ON state. At step 1108, the input audio signal is processed by the noise gate with a sidechain module to eliminate noise in the input audio signal. The sidechain module associated with the noise gate module includes a detector and a threshold value. The detector detects the signal when it falls above or below the threshold value. When the input audio signal is above the threshold value, the entire input audio signal is passed on by the noise gate module. However, when the input audio signal falls below the threshold value the noise gate is closed to attenuate the input signal by an attenuation ratio or gain ratio/gain reduction. The processed output from the noise gate is passed on to step 1110, where the received signal is compressed to reduce its dynamic range by a compressor module. The processed output of step 1110 is simultaneously passed on to steps 1112 and 1114. At step 1112, the high frequency signal is reproduced into a low frequency signal. The low frequency signal is the replica of the received input signal with a reduced frequency. Further, this low frequency signal is modulated with a fixed frequency oscillator to generate a modulated output signal. Simultaneously, at step 1114, the received signal is analyzed for low frequency components produced by string or membrane instruments; these low frequency components were suppressed due to mixing of different audio frequencies. Additionally, these low frequencies are recreated based on audio characteristics present in the received signal. At step 1116, the output signals from steps 1112 and 1114 are mixed. In addition, step 1116 receives an input from a dry/wet module and one or more control parameters from the analytics module. The output signal from step 1116 is passed on through a low pass filter at step 1118. At step 1120, the output from the low pass filter is passed on through a bell filter to accommodate adequate response of frequencies near and around the resonant frequency of the actuator. At step 1122, the output signal is fed to the actuator for producing a haptic response. The process 1100 ends at step 1124. [000231] Referring to Fig. 12, a flow chart for reducing noise in the input audio signal at the noise gate is provided. The process 1200 is a detailed flow chart of the processes performed in step 1008. The process 1200 starts by receiving the audio input signal at step 1004. The audio signal input of step 1004 is downsampled to an appropriate level to reduce unwanted information in the input audio signal to adapt the signal for haptic processing in step 1202. The down sampling of the signal includes passing the input audio signal on through a digital to analog convertor if the received signal is an analog signal. At step 1204, the input audio signal is directly fed to a dry/wet module and a noise gate. At step 1206, the downsampled audio signal is processed by the noise gate module and the sidechain module to reduce noise components in the input audio signal. The sidechain module comprises a detector and a threshold value. The sidechain module is fed with an input audio signal, a threshold value is set, and the detector ascertains if the input signal is below or above the set threshold value. When the input signal is above the threshold value, the noise gate opens to pass on the input audio signal without any attenuation. In case the input audio signal is below the threshold, the noise gate attenuates the input signal by a gain factor/gain reduction, which may be between 0 and 1 depending at least on the level of the noise present in the input signal.

[000232] The sidechain module 208A includes a low pass filter to pre-filter unwanted frequencies. The output of step 1206 is passed on as an input to step 1204. The ratio of the audio input signal (unprocessed signal) to the output signal (processed signal) of step 1206 is referred to as the“dry/wet signal ratio”. The pre-mixing ratio is fixed or hard coded. Alternatively, the pre- mixing ratio is selected by a user from a set of available preset values using a rotary or a touch interface. The output from step 1204 is provided to step 1208.

[000233] Referring to Fig. 13, the process 1300 executed in the compressor module is illustrated. The process 1300 receives the processed signal from the noise gate module 1008. The process 1300 receives the input audio signal at step 1302 from the sidechain module. The sidechain module comprises a detector and a threshold module enabled to set a threshold value. At step 1302, a threshold value is fixed. Subsequently, the input audio signal is monitored against the threshold value by a detector. The detector continuously detects the level of the input audio signal against the threshold value to adjust the gain in the compressor module. When the input audio signal is below the threshold value, no compression is applied. On the contrary, when the input audio signal is above the threshold value, compression is applied to the received signal. The compression applied is determined by the compression ratio, which varies vary from 1 :2 to 1 : 10 depending upon various parameters associated with the input audio signal. The ratio determines the amount of gain reduction applied to the input signal, for example, a ratio of 4: 1 means that if the input level is 4 dB over the threshold, the output signal level is reduced to 1 dB over the threshold. The gain and output level has been reduced by 3 dB. Finally, at step 1308, the output signal from the compressor is generated.

[000234] Fig. 14 illustrates details of the process for extraction of the signal by the envelope follower module. At step 1308, the output signal from the compressor module is fed to the envelope follower module. The envelope follower module performs the extraction of the low frequency audio signal from the output signal received at the compressor module. At step 1402, the high frequency signal is converted to a low frequency signal by the envelope follower module. The output from the envelope follower module is provided to a fixed frequency oscillator at step 1404. The audio output of the compressor module is also simultaneously provided to the resonance module as previously discussed. The fixed frequency oscillator is tuned to the resonant frequency of the actuator. The resonance module amplifies the suppressed low frequency components in the audio signal. In addition, the resonance module supplements and amplifies the frequencies to produce better user experience. Moving further, the output of the resonance module is fed to the input mixer module.

[000235] Referring to Fig. 15, a flow chart illustrates the process 1500 associated with the pre-mixer module. The process 1500 receives an input audio signal 1502 from the fixed frequency oscillator module. This signal is the ratio of the“dry/wet” signal. At step 1504, the processed signal from the resonance module is received. Additionally, at step 1506, the processed signal from the dry/wet module is received, which is a mixture of the dry/wet signal ratio in a predetermined proportion. It should be noted that all these signals are received simultaneously and mixed in a predetermined proportion in step 1508 to produce an output signal, which is passed to the low pass filter.

[000236] Fig. 16 shows the process at 1600, illustrating the input signal processing within the analytics module 170. The process starts at 1602. At step 1604, the process 1600 receives an input audio signal 162, which is a digital signal. The received input signal is simultaneously passed on to steps 1606 and 1608. At step 1606, the received input audio signal is passed on to a fast envelope follower and a slow envelope follower to determine the transients in the input audio signal. Various techniques well known in the art for transient detection can be utilised for determining the presence of transients in the input audio signal. Simultaneously, at step 1608, the input audio signal is analysed to determine the signal peak. The signal peak can be analysed for a specific time for the input audio signal. The specified time is 10 seconds, however the specified time varies from 10 seconds to 60 seconds.

[000237] Moving further to step 1610, when transients are detected, the analytics module temporarily stops adding peak signal values determined at step 1608 to the RMS signal values. The RMS value is set to Zero. When no transients are detected, the step 1610 is bypassed. At this point, the analytics module initiates the analysis of the input RMS signal for at least one second at step 1614. At step 1616, the analytics module calculates and adds 6 decibels to the RMS values obtained from the input audio signal. The final set of input audio signal values are temporarily stored in a memory associated with the analytics module.

[000238] Parallelly, the peak signal values calculated at step 1608 are passed on to step 1614 for calculating the difference between the peak signal value (in decibels) and the constant 6 dB gain. The signal values hence obtained are stored temporarily in a buffer in memory.

[000239] At step 1618, the minimum value of the two outputs stored temporarily in the buffer memory, that is, the first one obtained at step 1616 +6dB distance of the RMS signal values and the second one obtained at step 1614 by subtracting a constant value, e.g., 6dB distance from the peak signal values, is determined. At step 1620, the minimum value obtained after comparing the first value and the second value is passed on to the noise gate for dynamically controlling the threshold value or other control parameters.

[000240] The addition or subtraction of a constant value, e.g., 6 dB distance varies from 0 dB to -20 dB depending upon the haptic processing required. Furthermore, the decibel constant value of 6dB depends upon signal noise, amplitude, frequency, frequency of occurrence of transients or some other parameters. Similarly, the subtraction of a constant value, e.g., 6 dB distance from signal peak values varies from 0 dB to -20 dB depending upon signal processing requirements. The subtraction of a constant value, e.g., 6 dB or -6 dB distance from signal peak values depends upon amplitude, frequency and noise levels of the input audio signal.

[000241] The signal output from step 1614 is also passed on to the sidechain module to control the sub-bass at step 1622. In one variation, the sub-bass module is a part of the sidechain module. Alternately, it is manifested as a separate module. The process ends at 1624. It may be noted that process 1600 is embodied in analytics module 170. In another variation, the process 1600 can be implemented in digital signal processing chain.

[000242] Referring to Fig. 17, a process 1700 is illustrated to control processing of an input signal at the compressor. The process 1700 also depicts parameter control from other processes during execution. The process 1700 starts at 1702. At step 1704, the process 1700 receives an input audio signal. The input audio signal is a digital signal. Simultaneously, the process 1700 also receives a feedback signal from the resonance module 1706. In one variation, the process 1700 receives no feedback signal from the resonance module 1706. At step 1708, the received input audio signal and the feedback signal from the physical resonance module are added and passed on to a low pass filter. The low pass filter passes on the low frequencies in the received signal. At step 1710, the gain of the compressor module is normalised based on the peak signal values received from the memory. Subsequently, once the gain of the compressor module has been normalised, the process 1700 at step 1712 calculates either the RMS signal values or the peak signal values of the received audio input signal. The process 1700 at step 1712 then calculates either the RMS signal values and the peak signal values of the received audio input signal. Further, at step 1714, the process 1700 calculates the gain reduction to be applied to the compressor module based on the threshold values. The threshold values are provided by the sidechain module associated with the compressor module. At step 1718, the process 1700 receives parameters, for example, an absolute value or a relative value from memory. For example, an absolute value based on the received parameters; the process 1700 modulates the release time of the attack release envelope follower associated with the compressor module. In a variation to the current implementation, the compressor module can have one or more envelope followers, which includes an attack release envelope follower, an attack release hold envelope follower and the like. At step 1720, the process 1700 sets the gain reduction to be applied to the compressor. Finally, at step 1722, the output signal is passed on to the compressor gain control module. The process 1700 terminates at step 1726. The process 1700 is implemented in analytics module 170 but in other variations, it can be implemented in the dynamic processors in the digital signal processing chain.

[000243] Referring to Fig. 18, a process 1800 in the analytics module for peak signal detection is provided. The process 1800 also depicts an implementation of the parameter control from other processes during execution. The process 1800 is initiated at step 1802 and immediately moves to step 1804. At step 1804, the process 1800 receives an input audio signal. The peak values and the RMS values of the input audio signal are determined at step 1808 and are passed on to the memory 1724. In addition, at step 1808, the peak values and the RMS values are also passed on for the calculation of the minimum value obtained by comparing (a) the peak value (in dB) subtracted by 6dB and (b) the RMS values (in dB) added to 6dB. The minimum of the two values is calculated and passed on to step 1812. Additionally, the calculated values are stored in a buffer or a memory, for example, 1724, to be passed on to other processes. The process 1800 terminates at step 1810.

[000244] Fig. 19 illustrates a process 1900 to control the noise gate or a dynamic processor is provided. The process 1900 also depicts an implementation of the parameter control from other processes during execution. The process 1900 starts at step 1902 and immediately moves to step 1904. At step 1904, the received signal is passed on to a low pass filter to remove high frequency components. The low pass filter has a cut-off frequency of 200 Hz although in other variations the cut-off frequency can vary from 50 Hz to 250 Hz. The signal received from the low pass filter is analysed to determine the peak signal values at step 1908. At step 1910, the peak values extracted from the signal are utilized to calculate the gain reduction based on at least one control parameter. In addition, step 1910 also receives control parameters from step 1612 comprising minimum decibel values derived by comparing the two values, that is, (a) subtracting the peak value (in decibels) by 6dB and (b) RMS values (in decibels) obtained by adding from 6dB. In some variations, the parameters are floor, knee and threshold or other parameters. The parameters utilised in process 1900 for calculating the gain reduction are based on floor, knee and threshold. Once the gain reduction has been calculated, it is passed on to the attack release hold envelope follower at step 1912. Subsequently, the output of the attack release hold envelope follower is sent to the noise gate module at step 1914. The process terminates at step 1916.

[000245] Referring to Fig. 20, a process 2000 for determining the RMS value in the analytics module is provided. The process 2000 also depicts an implementation of the parameter control from other processes during execution. The process 2000 is initiated at step 2002 and moves immediately to step 2004. At step 2004, the process 2000 receives the input audio signal. The input audio signal is mixed with the input signal received from the transient binary 2010. The transient binary is a binary value, which is either 0 or 1. The root mean square values of the input audio signal are calculated at step 2006. The root mean values calculated at step 2006 are passed on to step 2008. Step 2008 also receives parameters from peak detection module. In other variations of current implementation, the received parameters are implemented by function calls, procedures, subroutines or by referencing memory or by some other type of parameter exchange mechanism. Further at step 2008, a minimum distance of the two values that are (a) peak values subtracted by 6 decibels and (b) RMS values added with 6 decibels, respectively, is determined. The calculated minimum value in decibels is utilised to feed other processes as described herein and elsewhere. The process 2000 terminates at step 2012.

[000246] Referring to Fig. 21, a process 2100 for detection of transients is provided. The process 2100 is initiated at step 2102 and immediately moves to step 2104. At step 2104, the process 2100 receives the input audio signal. The input audio signal is passed on through a low pass filter at step 2106. The output from the low pass filter is provided simultaneously to a fast envelope follower at step 2108 and a slow envelope follower at step 2110, respectively. At step 2108, the decibel value of the output signal of the fast envelope follower is calculated; and at step 2110 the decibel value of the slow envelope follower is calculated. The difference between the decibel values of the fast envelope follower and the slow envelope follower is determined to arrive at the transient score at step 2112.

[000247] The difference of the fast envelope follower and the slow envelope follower in decibels represents the transient score. Alternatively, the transient score is determined by multiplying the difference of the fast envelope follower and the slow envelope follower in decibels with a constant value. At step 2114, a transient threshold level is defined. A preset module is utilised for setting up the transient threshold level or it is controlled by a software associated with the analytics module. In another variation, a predictive and intelligence module can dynamically control the transient threshold level. At step 2116, the transient binary is calculated based on the transient score. The transient score is analysed against the transient threshold level; when the transient score is above the transient threshold value the transient binary is set to 1 , otherwise, the transient binary is set to 0. At step 2118, the transient binary is multiplied with the transient score to determine the transient output, which is provided to the dual filter to allow transients to pass on through the dual filter. The dual filter is a combination of two low pass filters, a first low pass filter 1 and a second low pass filter 2. The transient output is provided to the first low pass filter 1 with cut-off frequency fl and to the second low pass filter 2 with cut-off frequency f2. When the transient is detected, the predictive and intelligence module directs the dual filter to pass on the transient for enhanced user experience. Immediately after the passing on all of the transient, the dual filter closes to attenuate other higher frequency components. The dual filter allows shifting of cut-off frequencies when a transient is detected. The dual filter shifts the cut-off frequency of the first low pass filter 1 and the second low pass filter 2 to allow transients to pass on through and subsequently fades the cut-off frequencies to their normal cut-off frequency values. For example, when the transient is detected, the first low pass filter 1 with cut-off frequency fl is shifted to higher cut-off frequency O and the second low pass filter 2 with cut-off frequency f2 is shifted to higher cut-off frequency f4 to accommodate the passing on of all the transient.

[000248] The transient score is a discrete digital value such as 0.2, 0.3 ...2.15 and the like. The binary value determined is passed on to step 1810, which is provided to the RMS detection module of process 1800. At step 2118, the output signal is calculated and subsequently sent to the envelope follower module and the dual filter associated with other processes described herein and elsewhere. The process 2100 is terminated at step 2120.

[000249] The passing of control parameter values to the dual filter by the analytics module 170 is accomplished by passing on the parameters by value, reference, shared memory or pointers.

[000250] The passing of control parameter values to the envelope follower module by the analytics module 170 is accomplished by passing on the parameters by values, reference, shared memory, pointers, or some other way of passing on parameters. [000251] The dual filter can also be replaced by a multi-pass filter with different cut-off frequencies, for example, F 1 , F2, ... Fn. The analytics module is programmed to control the shifting of the frequencies according to the frequency range of the transient. The analytics module determines the frequency range and accordingly set the multi-pass filter based on the frequency range of the transient.

[000252] The analytics module can receive the input audio signal 162 in real time, whereas the digital signal processing chain is fed with the input audio signal 162 with a delay of a few milliseconds. The analytics module 170 analyses the signal to identify the transient in advance and accordingly operate the dual filter or the multi filter to pass on the transients. The predictive and intelligence module predicts the transients and peaks before they are processed by the digital signal processing chain.

[000253] Paragraph 1. A haptic processing method is provided and comprises: receiving an input audio signal; analysing the input audio signal for calculating a peak amplitude values and a root mean square values for fixed time period with varying window size; utilizing the calculated peak amplitude values and the calculated root mean square values to set the gain control at least one dynamic processor by: (a) determining the difference between the peak amplitude values and the pre-determined gain; (b) determining the sum of the root mean square values and the pre determined gain; wherein the pre-determined gain subtracted from the peak amplitude values and the pre-determined gain added to the root mean square value is a constant; determining the minimum of the two values determined at step (a) and step (b); applying the minimum values to dynamically modulate a threshold level of the at least one dynamic processor. In an embodiment, the pre-determined gain having a constant value is between -10 dB to -20dB. In an embodiment, the minimum value is provided as parameter to the at least one dynamic processor to update the gain of the at least one dynamic processor in real time. In, a variation of current implementation, the parameters are calculated independently of the digital signal processing chain. Further, the parameters are provided based on input signal characteristics and the intelligence accumulated from the input audio signal by the analytics module.

[000254] Paragraph 2. A non-transitory computer readable medium is provided and stores instruction thereon that, when executed by a processor, causes the processor to perform the function to receive an input audio signal, analyse the input audio signal to calculate at least one peak amplitude value and at least one root mean square value for a fixed time period with a varying window size, determine the analysed at least one peak amplitude value to calculate a peak signal value, determine the analysed at least one root mean square value to calculate an average root mean square value, set the gain of the at least one dynamic processor by (a) determining the difference between the peak signal value and the pre-determined constant gain, and (b) determining the summation of the root mean square value and the pre-determined constant gain, wherein the pre-determined constant gain is subtracted from the peak amplitude value and the pre- determined constant gain is added to the root mean square value, (c) determining the minimum of the two values determined at step (a) and step (b) and (d) applying the determined minimum value to dynamically modulate the threshold level of the at least one dynamic processor.

[000255] Paragraph 3. A haptic processing system is provided with a digital signal processing flow chain, which includes a pre-processor, at least one dynamic processor, a memory, an envelope follower, a physical resonance module, a fixed frequency oscillator, a low pass filter, a bell filter, a limiter and an actuator. The haptic processing system also includes an analytics module associated with the at least one dynamic processor and the memory and enabled to receive an input audio signal. The analytics module includes a root mean square module, which is enabled to receive an input audio signal to calculate the root mean square value. The root mean square value calculated is added with a pre-determined constant value. A peak detection module receives an input audio signal to calculate the peak signal value. The peak signal values are subtracted from a pre-determined constant value. The constant value which is added to the root mean square value and subtracted from the peak value is the same. Additionally, a predictive module calculates the minimum of the two values, that is, (a) the root mean square value added to the pre-determined constant value, and (b) the peak signal value subtracted from the peak signal value. This minimum value is buffered in the memory. The buffered value is provided to the at least one dynamic processor.

[000256] Paragraph 4. A haptic processing method is provided and comprises the step of receiving an input audio signal, processing the input audio signal to eliminate noise and reduce the dynamic range of the input audio signal using at least one dynamic processor. The at least one dynamic processor is associated with a sidechain module, a detector module, and threshold module. Furthermore, the at least one dynamic processor in the digital signal processing chain is associated with a threshold value and a gain. An analytics module receives the input audio signal separately to determine the audio input signal characteristics by calculating one or more peak signal values, root mean square values, and the transient values for a fixed time period. The analytics module calculates a threshold parameter and a gain parameter based on the one or more peak signal values, the root mean square values, and the transient values to be applied to the at least one dynamic processor in real time. The threshold parameter and the gain parameter are passed on by the analytics module to the at least one dynamic processor using function calls, variables or as memory references. The at least one dynamic processor utilises the threshold parameters to set the threshold level. A different dynamic processor utilises the gain parameters to control the gain of the signal being processed in the digital signal processing chain. The digital signal processing chain uses the threshold parameters and the gain parameters to dynamically update the at least one dynamic processor continuously to produce haptic output. In one implementation, the digital signal processing chain comprises two dynamic processors, the first being a noise gate wherein the noise gate associated with a sidechain having at least a threshold, a hold time, a release time, an attack and a knee. The second dynamic processor is a compressor, wherein the compressor is associated with a sidechain having at least a threshold, a hold time, a release time, an attack and a knee.

[000257] Paragraph 5. A haptic processing system is provided and comprises a digital signal processing chain. The digital signal processing chain further comprises a at least one dynamic processor, the at least one dynamic processor configured to receive an input audio signal having a threshold level and a gain. Further, the at least one dynamic processor is enabled to receive parameters to dynamically control at least the threshold level or the gain of the at least one dynamic processor. An envelope follower is configured to receive and convert a bipolar signal into a unipolar signal and to convert the input audio signal into low frequency signal. In addition, a fixed frequency oscillator is provided to modulate the low frequency audio signal at or near the tuned resonant frequency. Additionally, a resonance and physical model enhances low frequency audio signals and further amplifies suppressed low frequency signals. A mixer is configured to mix the received audio signal from a pre-set, the resonance model, and the fixed frequency oscillator. A low pass filter is coupled to a bell filter and a limiter. The limiter is associated with an actuator to produce haptic output. The haptic processing system further comprises an analytics module having a peak detector to calculate peak values from the received input audio signal for a fixed time, a root mean square calculator to calculate the root mean square values for a fixed time, a predictive calculator configured to calculate the parameters to be passed on to the at least one dynamic processor based on the calculated root mean square values and the calculated peak values for passing on the calculated parameters for controlling the threshold value and the gain of the one or more dynamic processors to produce haptic output.

[000258] Paragraph 6. A method of processing the transient signal in a haptic processing system is provided. The method receives an audio input signal and detects the transient signal in the input audio signal by passing the input audio signal simultaneously on to a high pass envelope follower and a low pass envelope follower. The method calculates the difference in gain between the high pass envelope follower and low pass envelope follower. The calculated difference in gain is utilised to determine a transient score. The method receives a transient threshold. The transient score is converted into a transient binary. When the transient score is above the transient threshold, the transient binary is one (Binary one) and is zero when the transient score is below the transient threshold. A transient output is calculated by multiplying the transient binary with the transient score and the transient output is provided to an envelope follower and a dual filter. Additionally, the transient binary is provided to an RMS detection module.

[000259] Paragraph 7. A Computer readable medium is provided having instruction encoded thereon that, when executed by a processor, provides a haptic feedback based on an input audio signal, the instruction performing the steps of (a) processing the input audio signal into a dynamic processor, the dynamic processor configured to a sidechain to control the gain in the input audio signal below a set threshold; (b) inputting the processed audio signal to a second dynamic processor configured with a sidechain to control the dynamic range of the audio signal above a set threshold; (c) passing the audio signal on to: (i) an envelope follower module to extract an audio signal envelope, the audio signal envelope then modulating the amplitude of a fixed frequency oscillator, (ii) a resonance module configured to excitate physical models of string, membrane, plate or other musical instrument models from the input audio signal; and (d) mixing the signal output from the envelope module, the resonance module, and the dry/wet module signal; and (e) feeding the haptic signal to an actuator for generating a haptic output.

[000260] Paragraph 8. A haptic processing system is provided, comprising: a detection module; a noise gate module configured to a sidechain module; a dry/wet module configured to mix an input audio signal with a signal output of the noise gate module in a pre-determined proportion; a compressor module configured a different sidechain module; an envelope module associated with an oscillator; a resonance module configured to amplify suppressed frequencies, wherein the suppressed frequencies are reproduced using a string or a membrane musical instrument; a mixer module configured to mix an output signal from the dry/wet module, the fixed frequency oscillator module, and the resonance module, and an analytics module configured to independently process the input audio signal to assimilate intelligence and to provide parameters to the noise gate module and the compressor module to produce a haptic output. In another implementation,, the pre-determined proportion of the mix of the input audio signal with a signal output of the noise gate module is between decimal values of 0 and 1. In addition, the pre- determined proportion of the signal mix can be controlled by a user using a preset button. Alternatively, the pre-determined proportion associated with the signal mix is a constant fixed value. In an embodiment, an analytics module may intelligently configure the pre-determined value based on signal parameters.

[000261] Paragraph 9. A haptic processing system for real-time and non-real-time signal processing is provided, comprising: an analysis module containing at least two of the following: a dynamic processor logic to process the input signal below a set threshold; a second dynamic processor logic to process the input signal above a set threshold; a module to calculate average and peak values of the input signal, a logic to adjust threshold and/or gain settings of the dynamic processor logic based on the calculated peak and/or average (RMS) values of the input signal, a module to perform real-time onset detection with variable sensitivity; at least one gain module to multiply the signal amplitude of the input signal with the control signal value of the dynamic processor logic of the analysis module; a dry/wet module configured to mix the input audio signal with the signal output of one or multiple gain module(s) in a pre-determined proportion; an envelope module associated with an oscillator; a resonance module configured to excitate physical models of string, membrane, plate or other musical instrument models from the input signal; and a mixer module configured to mix an output signal from the dry/wet module, the oscillator module, and the resonance module. In a variation of current implementation, the peak value and the root mean square value are stored in a memory and are used by a predictive algorithm to intelligently predict the progression of the energy of the input audio signal. In an embodiment, the predictive algorithm outcome is utilised to change gain, threshold or envelope parameters of at least one dynamic processor. In an embodiment, the analytics module provides a variable look-ahead time and all processes occurring in the analytics module are performed in parallel using the previously determined look-ahead time. In another implementation , a low pass filter may be implemented before signal averaging. In a variation of current implementation, the at least one dynamic processor may apply a gain transfer curve at or near the threshold. Additionally, the at least one dynamic processor may limit the maximum gain reduction by a pre-defined value. In an embodiment, the detector module is configured to maintain the active state for a period of pre determined time for the haptic processing system if there is no input audio signal but presence of the output haptic signal.

[000262] Paragraph 10. A haptic processing system is provided, comprising: an analytics module having at least one dynamic processor logic calculating a signal gain reduction; at least one signal averaging calculation module to calculate the root mean square value; at least one signal peak calculation module; at least one memory, wherein values of signal peak and root mean square values are stored; at least one module to perform real-time transient detection with a pre-defined sensitivity; at least one gain control module to multiply the signal amplitude of the input signal with the control signal value of the dynamic processor logic of the analytics module; a low pass filter comprising a first filter and a second filter, which process the input signal in parallel and wherein the second filter has a higher cut-off frequency than the first filter. In an embodiment, the transient detection provides both binary state output and continuous value for the transients. In an embodiment, the input and output of the parallel filters is multiplexed or mixed based on transient detection, and controlled shifting of cut-off frequencies is determined based on transient output. In addition, the cut-off frequencies corresponding to the first filter and the second filter of the dual filter are continuously adjusted based on the continuous value received from the transient output.

[000263] The various modules described herein are exemplary only. Other configurations and numbers of modules may be used. The invention may be implemented using non-modular approaches, and different sub-routines may be implemented in different components, which may operate as one unit to achieve the desirable haptic response. Furthermore, various modules may be fabricated in a single layout and implemented in a single chip. Alternatively, while using multiple chips for fabrication of the haptic processing module 200, one or more modules may be implemented on different chips.

[000264] The description of the functionality provided by the modules described herein is for illustrative purposes and is not intended to be limiting, as one or more modules may provide additional or lesser functionality as described. Furthermore, the configuration of modules and their arrangement are also meant for illustrative purposes and are not intended to be limiting, as one or more modules may be removed or added or rearranged without deviating from the scope and spirit of the invention. Besides, one or more modules may be eliminated, and its functionality may be provided by other modules either completely or partially. Furthermore, one or more modules may be expanded to show additional modules within it. The functionality of each expanded module may be different, but the overall effect would produce haptic output.