Current state and vision about AudioDSP
#2
Status of AudioDSP
The first version of AudioDSP is fully integrated into Kodi's core codebase. Alwin and I tested it under Linux and Windows. The API of the add-on side should also be stable. It's a pure C implementation and gives you the full flexibility for add-on creation, but it requieres a lot of configuration. Because of that reason I started to develop a "small" (it grows with every new add-on) framework wich is called adsp.template. As you see it is still under heavy development and I plan to do a huge refactor, which will simplify the usage. If it is stable enough I will create a new thread in the AudioDSP development forum.

Available AudioDSP Add-Ons
adsp.basic
It started as the first add-on for AudioDSP. It's usecase is to provide basic and usefull tasks for audio processing.

Available modes:
  • Speaker Gain. Here you can set gain values for all speaker channels of your configured ActiveAE sink.
  • Speaker Delay. Here you can set delay values for all speaker channels of your configured ActiveAE sink.
  • Dolby Pro Logic II downmixes your audio stream to stereo if your sink is configured with 2.0.

Supported platforms:
  • All except ARM Android based systems. I don't know why but our jenkins build still fails. Maybe someone can help

Planned features:
  • Adapt this add-on to adsp.template, which will increase maintainability. Consequently adding new features or modes would be faster and easier.
  • Add a new mode to allow audio channel remapping. Currenlty it's a pain to setup the audio channels with the help of each platform Kodi supports.
  • Fix the ARM Android build.

adsp.freesurround
Is based on foo_dsp_fsurround, which is a open source plugin for foobar, from pro_optimizer. Its purpose is to decode surround information from your stereo music to produce 5.1 output.
It works with any stereo surround sound format like - Dolby Surround, Dolby ProLogic, Dolby ProLogic II... for the full list please read the forum thread from pro_optimizer. It will also faithfully play back your 'plain old' stereo music, with the exception that echoes are usually played over the surround speakers, and some sound sources, usually strongly distorted guitars, choirs etc., tend to surround the listener instead of being played over the front speakers alone.

Available modes:
  • Freesurround upmix is available if you configure your ActiveAE sink through more than 2.0 (stereo).

Supported platforms:
  • All except ARM Android based systems.

Planned features:
  • Adapt add-on to adsp.template, which will increase maintainability. Consequently adding porting this add-on to newer API versions will be faster.
  • Fix the ARM Android build.

adsp.template
This is a small framework for faster AudioDSP add-on development. My dream is that the developer only has to code the processing algorithms in C/C++ and the basic logic of the user interface in C/C++ and or XML. Consequently the backend system has to handle the registered settings parameters and the communication between the processing algorithms and the user interface.
Future versions of this add-on can be seen as an example how to quickly write AudioDSP add-ons.

Available features:
  • Currently the template can be configured with a few header files, which allows to define the available processing modes.
  • Furthermore the template has a settings class to write, read and restore user settings.
  • A basic message system implementation for communication between the user interface and the processing class.
  • Exception handling for error reports inside an AudioDSP add-on.
  • Basic GUI dialog class for faster user interface development.

Supported platforms:
  • Should be supported on all platforms, but I haven't tested it.

Planned features:
  • For a future version will include an tutorial on how to use it.
  • The configuration with the header files is quite good, but it doesn't feel right. So the next step for the template will be to create a system, which can handle automatic object registrations. With that system the developer only has to create a new class and derive it from a basic AudioDSP processing class. Consquently the class can connect to the internal AddonHandler, which handles object creation and tracks the status of this mode.
  • Add more generic helper classes for faster developments.


adsp.biquad.filters
This add-on is based on adsp.template and asplib, which implements a biquad filter structure for signal filtering. The filter structure is very familiar in audio processing and allows the realisation of almost all filter types like low-, high-, band-pass ...
Currently this add-on only has one design equation for an graphical equalizer with 10 frequency bands and a main gain value. It processes all audio channels with the same filter configuration except the LFE (Low Frequency Effects or sub woofer) channel. This channel should be created or processed by another pre-processing add-on when LFE is not available.

Available modes:
  • Post processing mode for all available audio sink channels except LFE.

Supported platforms:
  • Windows
  • Linux

Planned features:
  • The add-on source code is cross platfrom, but asplib is not ported to all supported platforms by Kodi. Consequently the add-on is not usable on all platforms. So the next step for this add-on is to port asplib to all platforms.
  • Create a interface that allows loading of exported filter files from e.g. Room EQ Wizard
  • Integrate scripting interface to shift filter design equations to another programming language like Python (which is already inside Kodi).
  • Direct filter assigning to a custom created post- or pre-processing mode. This will allow faster configuration changes or sharing your setups.
Latest news about AudioDSP and my libraries are available on Twitter.

Developers can follow me on Github.
Reply
 
Thread Rating:
  • 5 Vote(s) - 4.4 Average


Messages In This Thread
RE: Current state and vision about AudioDSP - by AchimTuran - 2015-12-20, 22:36


Logout Mark Read Team Forum Stats Members Help
Current state and vision about AudioDSP4.45