Explain "Scale" vs. "Source Scale"
Moderators: BTT, andy55, b.dwall, juxtiphi
Explain "Scale" vs. "Source Scale"
How do they relate to each other. "Scale" is pretty obvious, but what's meant by the other? How is one supposed to use them together? Some examples would really help. Thx.
From boot.txt:
// SetPCMScale() sets the scale factor to the PCM level (ie, the oscilloscope-looking output
// referenced by the function mag() in WaveShapes. You would adjust the PCM scale
// if the PCM level (and only the PCM level) was too large or too small, and adjusting
// this value will have no effect on the FFT level whatsoever. For example, SetPCMScale()
// is used when using line input because in stand-alone mode, a PCM value of 1 corresponds
// to 0x7FFF (the max possible integer value of sound input) and 1 is too much.
// SetSourceScale() sets the scale of the source signal *before* it gets processed in the FFT re-mapper.
// SetResponseScale() sets the scale what comes *out* of that mapper. An analogy would be a
// line source connected to a preamp, going to an equalizer, going to another
// amp. SetSourceScale() turns up/down the pre-amp while SetResponseScale() turns up/down
// the second amp. In general, you'll only want to adjust the source level if line-in level
// is abnormally high or low (ex, you have a poor mic that only gives your a fraction of the signal).
// Meanwhile, you'll want to adjust the response scale when your personal tastes are such that
// you like more or less visual amplification in G-Force. For the PCM (ie. the oscilloscope-looking
// output), since there is not FFT mapping, the source and the response scale are
// interchangeable (because having no FFT remapper makes them communitive).
// In summary:
// - The PCM output scale is proportional to: (the PCM scale) * (the source scale) * (the response scale)
// - The FFT output scale is proportional to: (the response scale)
// - The FFT "pre-amp" scale is proportional to: (the source scale)
// Hence, the -/+ keys are bound to SetResponseScale() (see far below), because most often,
// you want to play with the visual amplification for *both* the PCM and FFT output.
// SetPCMScale() sets the scale factor to the PCM level (ie, the oscilloscope-looking output
// referenced by the function mag() in WaveShapes. You would adjust the PCM scale
// if the PCM level (and only the PCM level) was too large or too small, and adjusting
// this value will have no effect on the FFT level whatsoever. For example, SetPCMScale()
// is used when using line input because in stand-alone mode, a PCM value of 1 corresponds
// to 0x7FFF (the max possible integer value of sound input) and 1 is too much.
// SetSourceScale() sets the scale of the source signal *before* it gets processed in the FFT re-mapper.
// SetResponseScale() sets the scale what comes *out* of that mapper. An analogy would be a
// line source connected to a preamp, going to an equalizer, going to another
// amp. SetSourceScale() turns up/down the pre-amp while SetResponseScale() turns up/down
// the second amp. In general, you'll only want to adjust the source level if line-in level
// is abnormally high or low (ex, you have a poor mic that only gives your a fraction of the signal).
// Meanwhile, you'll want to adjust the response scale when your personal tastes are such that
// you like more or less visual amplification in G-Force. For the PCM (ie. the oscilloscope-looking
// output), since there is not FFT mapping, the source and the response scale are
// interchangeable (because having no FFT remapper makes them communitive).
// In summary:
// - The PCM output scale is proportional to: (the PCM scale) * (the source scale) * (the response scale)
// - The FFT output scale is proportional to: (the response scale)
// - The FFT "pre-amp" scale is proportional to: (the source scale)
// Hence, the -/+ keys are bound to SetResponseScale() (see far below), because most often,
// you want to play with the visual amplification for *both* the PCM and FFT output.