today I want to share my vision about AudioDSP. I think there is a huge gap between the community and the developers, which are involved into AudioDSP. Maybe the most of you don't know what AudioDSP will offer to us. So hopefully this post will reduce the gap, otherwise feel free to ask your questions in this post.
ADSP or AudioDSP stands for Audio Digitial Signal Processing and is a technique to transform or modify signals with computers. These signals and the theory is presented in the digital domain. They heavily relay on mathematics and computer science. Most of you use this technique every day without knowing it. It's used in wireless communication, image processing, ... and even for audio signals. A very familiar procedure is to to boost or cut the low frequency range of your subwoofer, which is possibiliy connected to an AV-Receiver. Currently these technique is outside Kodi and it would be nice to have it all in one place with a customizionable setup process.
Furthermore it extends setups, which aren't connected to an external AV-Receiver.
If you wanna learn more about digital signal processing, a quick google search can give a lot of stuff to read, e.g. this wikipedia article gives you more or less a better introduction than I did.
For me this theory and technique is awesome, but I will not bore you with it . I think the most of you want know what Kodi will offer to us with this new feature. In theory it could improve our lovely player so much with new functionalities that aren't available in commercial products. For example custom scripts to calculate your filter design equation, head phone simulations ...
Our core system implementation is cross platform and will be available on all supported Kodi platforms like Windows, Android, Linux ... (I think you know the list otherwise follow this link). The processing modes are delivered through binary add-ons, which are compiled for each platfrom and deliverd with every Kodi release or our development builds (similiar to PVR add-ons). Every add-on could offer several processing modes, which are described in the next paragraph.
The core system supports the following processing steps:
- input-resampling, which could resample the audio stream before entering the processing chain. This step supports mutliple add-on, but only one can be set to active or enabled status.
- pre-processing, is the process that is performed before the stream enters the master-processing stage. E.g. here you could amplify one specific audio channel or process a custom filter for equalizing. This category supports multiple active add-ons.
- master-processing can be seen as a upmix or downmix step to map the audio signal to the sinks layout. It supports multiple add-ons with one active processing mode.
- The post-processing step could e.g. calculate an audio equalizer. Again multiple active add-on modes.
- The last step is output-resampling, which could resample your audio stream to your sinks sample frequency. It has the same restrictions as input-resampling.
As you see the system is very flexibel and this feature is on going. You should see my presented processing/modes steps as examples, maybe other devs have different use cases or ideas. At the time of this writting we don't have add-ons for all steps, maybe some day .
Here is an image that should give you a good overview: