-
Notifications
You must be signed in to change notification settings - Fork 42
DSP options for convenience
qaac supports the following DSP options.
- Lowpass filter (--lowpass)
- Sample rate conversion (--rate)
- Normalization (--normalize)
- Gain adjustment (--gain)
- Dynamic range compressor (--drc)
- Limiter (--limiter)
- Channel reordering (--chanmap)
- Matrix mixer (--matrix-preset, --matrix-file)
- Delay (--delay)
- Quantization (-b, --bits-per-sample)
--rate depends on libsoxr, and --lowpass, --matrix-preset, --matrix-file depend on libsoxconvolver.
Note that --normalize, --gain, --limiter, --matrix-preset, --matrix-file, --rate, --lowpass, --drc will convert internal sample format to float. In other words, only --chanmap and --delay preserves sample format of input. When you want to force output bit depth of WAV or ALAC, use -b.
Besides, channels are internally/automatically reordered. At first, channels are reordered to the Microsoft order (such as L C R to L R C). Before encoding to AAC/ALAC, it is reordered again to AAC order (such as C L R). Of course, this reordering works properly only when the input channel layout is known. If not known, qaac uses the default guess, and it's always Microsoft order. You can use --chanmap and --chanmask to let qaac know the channel layout.
DSP chain is processed in the following order. As you can see, when matrix mixer and --chanmap is processed, channels are in Microsoft WAV order. You have to take it into account when you use these options.
- Delay
- Reordering to Microsoft order
- Matrix mixer
- Channel reordering with --chanmap
- Reordering to AAC order (AAC/ALAC)
- Sample rate conversion
- Lowpass filter
- Dynamic range compression
- Normalization
- Gain adjustment
- Limiter
- Quantization