Apparatus and method for approximating an exponential decay in a sound synthesizer
First Claim
1. A method of processing a parameter by applying a linear approximation to an exponential decay function of the parameter in a computing device including:
- selecting a constant time interval;
selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval;
allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value;
determining a constant offset value as a function of the selected constant ratio;
determining a constant decay delta value as a function of the selected constant ratio;
updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including;
subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function;
adding the mantissa exponential amplitude and the constant offset value to form a sum that is a current exponential amplitude value of the exponential decay function value; and
decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude;
acquiring a plurality of parameter samples; and
applying the determined exponential decay function approximation to the plurality of parameter samples.
2 Assignments
0 Petitions
Accused Products
Abstract
A linear approximation to an exponential decay function exploits the characteristic of an exponential function that, at equal time intervals, the ratio of a parameter value at the beginning of the interval to the parameter value at the end of the interval remains constant. The technique for linear approximation of an exponential decay includes selection of a constant period or interval of time and selection of a constant ratio between the parameter value at the beginning of the constant period and the parameter value at the end of the constant period. In one embodiment, the selected ratio is one-half to exploit a binary arithmetic implementation. For a ratio of one-half, the exponential decay has a "half-life" in which only half the parameter value at the beginning of a period is left at the end of the selected "half-life time period".
-
Citations
29 Claims
-
1. A method of processing a parameter by applying a linear approximation to an exponential decay function of the parameter in a computing device including:
-
selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a constant offset value as a function of the selected constant ratio; determining a constant decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; adding the mantissa exponential amplitude and the constant offset value to form a sum that is a current exponential amplitude value of the exponential decay function value; and decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude; acquiring a plurality of parameter samples; and applying the determined exponential decay function approximation to the plurality of parameter samples. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product comprising:
a computer usable medium having computable readable code embodied therein including a routine for determining a linear approximation to an exponential decay function of a parameter in a computing device, the routine performing a method including; selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a constant offset value as a function of the selected constant ratio; determining a constant decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; adding the mantissa exponential amplitude and the constant offset value to form a sum that is a current exponential amplitude value of the exponential decay function value; and decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude; acquiring a plurality of parameter samples; and applying the determined exponential decay function approximation to the plurality of parameter samples.
-
8. An article of manufacture comprising:
a storage, memory, or communication media having computable readable code embodied therein including a routine for determining a linear approximation to an exponential decay function of a parameter in a computing device, the routine performing a method including; selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a constant offset value as a function of the selected constant ratio; determining a constant decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; adding the mantissa exponential amplitude and the constant offset value to form a sum that is a current exponential amplitude value of the exponential decay function value; and decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude; acquiring a plurality of parameter samples; and applying the determined exponential decay function approximation to the plurality of parameter samples.
-
9. A sound synthesizer comprising:
-
a sound processor for simultaneously processing a plurality of samples; a sample storage coupled to the sound processor, the sample storage including a musical signal information storage; and a function generator coupled to the sound processor for processing samples stored in the sample storage, the function generator including a controller implementing a method of determining a linear approximation to an exponential decay function and implementing application of the exponential decay function approximation to the plurality of samples, the method including; selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a constant offset value as a function of the selected constant ratio; determining a constant decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; adding the mantissa exponential amplitude and the constant offset value to form a sum that is the exponential decay function value; and decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa-exponential amplitude. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A sound synthesizer comprising:
-
a sound processor for simultaneously processing a plurality of samples; a sample storage coupled to the sound processor, the sample storage including a musical signal information storage; and a function generator coupled to the sound processor for processing samples stored in the sample storage, the function generator including a controller for determining a linear approximation to an exponential decay function and applying the determined exponential decay function approximation to the plurality of samples, the controller having an executable program-including; a routine for selecting a constant time interval; a routine for selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; a routine for allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; a routine for determining a constant offset value as a function of the selected constant ratio; a routine for determining a constant decay delta value as a function of the selected constant ratio; a routine for updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; a routine for subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; a routine for adding the mantissa exponential amplitude and the constant offset value to form a sum that is the exponential decay function value; and a routine for decrementing the exponent of the exponential decay function value when the means for subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A sound synthesizer according to claim 44 wherein:
-
the constant ratio is selected to be one-half; the constant offset value is determined by a bitlength of a counter, called a counter length, and set equal to 2counter length /(the constant ratio-1); the constant decay delta value is set equal to 2counter length /half-life in samples; the counter is a seventeen bit counter; and the selected constant time interval corresponds to a sampling rate of about 44.1 kHz so that the constant decay delta value is approximately equal to 217 /(44100/h), where h is a selected half-life in seconds.
-
-
21. A multimedia computer system comprising:
-
a host processor; and a sound synthesizer coupled to the host processor, the sound synthesizer including; a sound processor for simultaneously processing a plurality of samples; a sample storage coupled to the sound processor, the sample storage including a musical signal information storage; and a function generator coupled to the sound processor for processing samples stored in the sample storage, the function generator including a controller for determining a linear approximation to an exponential decay function and applying the exponential decay function approximation to the plurality of samples, the controller having a programmable, executable program including; a routine for selecting a constant time interval; a routine for selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; a routine for allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; a routine for determining a constant offset value as a function of the selected constant ratio; a routine for determining a constant decay delta value as a function of the selected constant ratio; a routine for updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; a routine for subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; a routine for adding the mantissa exponential amplitude and the constant offset value to form a sum that is the exponential decay function value; and a routine for decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude.
-
-
22. A sound generating system comprising:
-
a keyboard/controller; and a sound synthesizer coupled to the host processor, the sound synthesizer including; a sound processor for simultaneously processing a plurality of samples; a sample storage coupled to the sound processor, the sample storage including a musical signal information storage; and a function generator coupled to the sound processor for processing samples stored in the sample storage, the function generator including a controller for determining a linear approximation to an exponential decay function and applying the exponential decay function approximation to the plurality of samples, the controller having a programmable, executable program including; a routine for selecting a constant time interval; a routine for selecting a constant-ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; a routine for allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; a routine for determining a constant offset value as a function of the selected constant ratio; a routine for determining a constant decay delta value as a function of the selected constant ratio; a routine for updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; a routine for subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; a routine for adding the mantissa exponential amplitude and the constant offset value to form a sum that is the exponential decay function value; and a routine for decrementing the exponent of the exponential decay function value when subtracting the constant decay delta value from the mantissa exponential amplitude results in underflow of the mantissa exponential amplitude.
-
-
23. A method of processing a parameter sequence by applying a linear approximation to an exponential decay function of a parameter in a computing device including:
-
selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; and reducing the decay delta value by one-half; acquiring a plurality of parameter samples; and applying the determined exponential decay function approximation to the plurality of parameter samples. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A computer program product comprising:
a computer usable medium having computable readable code embodied therein including a routine for determining a linear approximation to an exponential decay function of a parameter in a computing device, the routine performing a method including; selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; and reducing the decay delta value by one-half.
-
29. An article of manufacture comprising:
a storage, memory, or communication signal having computable readable code embodied therein including a routine for determining a linear approximation to an exponential decay function of a parameter in a computing device, the routine performing a method including; selecting a constant time interval; selecting a constant ratio between a value of the parameter at the beginning of the constant time interval and a value of the parameter at the end of the constant time interval; allocating a numerical register, the numerical register being allocated to include a mantissa exponential amplitude and an exponent for storing a constant decay function value; determining a decay delta value as a function of the selected constant ratio; updating an exponential decay function from the value of the parameter at the beginning of the constant time interval to the value of the parameter at the end of the constant time interval at the selected constant time intervals including; subtracting the constant decay delta value from the mantissa exponential amplitude of the exponential decay function value to form a parameter sequence that is updated in a linear function; and reducing the decay delta value by one-half.
Specification