#include <LA32WaveGenerator.h>
List of all members.
Public Types |
enum | { POSITIVE,
NEGATIVE
} |
Public Attributes |
Bit16u | logValue |
enum MT32Emu::LogSample:: { ... } | sign |
Detailed Description
LA32 performs wave generation in the log-space that allows replacing multiplications by cheap additions It's assumed that only low-bit multiplications occur in a few places which are unavoidable like these:
- interpolation of exponent table (obvious, a delta value has 4 bits)
- computation of resonance amp decay envelope (the table contains values with 1-2 "1" bits except the very first value 31 but this case can be found using inversion)
- interpolation of PCM samples (obvious, the wave position counter is in the linear space, there is no log() table in the chip) and it seems to be implemented in the same way as in the Boss chip, i.e. right shifted additions which involved noticeable precision loss Subtraction is supposed to be replaced by simple inversion As the logarithmic sine is always negative, all the logarithmic values are treated as decrements
Definition at line 35 of file LA32WaveGenerator.h.
The documentation for this struct was generated from the following file: