ACCEPTED: Creating cross-platform room correction for Kodi
#1
Summary:
Today Kodi is a great piece of open source software for playing almost all kinds of media files. There are so many features we can use e.g. PVR for watching TV, BluRay support with MakeMKV or AnyDVD, watching online streams and so on. The list seems to be endless, but there is some feature I miss.
Today Kodi can't replace an complete AV-Receiver. Sure we can use a computer and it's sound card with a connected surround system, but we can't do Audio Digital Signal Processing (ADSP) with Kodi. If you follow Alwinus and mine thread about Adding ADSP to AddonManager, than you know that there is some development for ADSP. Sure it's far away to be finished and every week we improve its features.
For my Addon adsp.xconvolver I need some module, that allows to measure room impulse responses. With that module we can improve our room impulse responses and push ActiveAE to the next level of listening experience. That modul will allow us to use Digital Room Correction (DRC) insdide Kodi without external software.
Thats only one case for our ADSP-System with adsp.xconvolver, but more are possible such as:
  • FIR-Equalizer
  • Room Simulator
  • Head Related Transfer Functions (HRTF)
  • ...
But thats not the focus of this proposal.

How will I achieve this / What will the project focus on
Through we already have a running ADSP-System in Kodi, my project will focus on implementing AESource in ActiveAE, Digital Room Correction functions into adsp.xconvolver and improving adsp.template.
Here is some signal flow graph, where you can see the AESource module:
Image

Benefits / Goals
Measure impulse responses from our listening rooms and improve listening experience through Digital Room Correction.
For me the big picture is to replace my AV-Receiver with an HTPC and Kodi.

What does it touch in Kodi
  • ActiveAE
  • OS AudioAPI
  • new ADSP-System

Requirements
I have to learn:
  • Knowledge of ActiveAE codebase
  • Knowledge of OS AudioAPI to implement AESource
My experience:
  • C/C++, C#, Python and a little bit of Java programming
  • Knowledge in Digital Signal Processing
  • Knowledge of our ADSP-System and its Addon structure

Mentors
fernetMenta, fritsch


I'm not sure if the schematic is correct, so please tell me the errors.
What do you think about my proposal?


GSoC Results
Status: Student Passed

Here is the link to my GSoC documentation.
Here you can find the current source code for adsp.xconvolver repository.



EDIT:
- replaced "DRC" by "Digital Room Correction" to prevent confusion
- added link from wikipedia for Digital Room Correction
- added links for adsp.template and adsp.xconvolver
- 25.03.2014: changed title of this proposal , to make it clearer
- 29.09.2015: Add GSoC documentation, Updated Mentors
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#2
I didn't even know DRC was on the possibility horizon inside Kodi. Very cool!
Reply
#3
(2015-03-07, 18:26)natethomas Wrote: I didn't even know DRC was on the possibility horizon inside Kodi. Very cool!

I thought why not. I really like devices with much flexibility and I avoid to having devices for several tasks. Why not integrate the functions e.g. from MiniDSP into Kodi.
With AudioDSP and AESource we can reach new use cases:
  • Measure speaker delays and compensate it
  • Digital Room Correction (DRC)
  • I think with some changes in the codebase, we can implement a realtime mode. With that and e.g. adsp.xconvolver and Kodi Headless we can reach something similar as BruteFIR (a convolution PC)Blush
  • ...
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#4
DRC has 2 meanings now in audio? (Dynamic Range Compression) - how stupid...
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#5
(2015-03-09, 09:25)Memphiz Wrote: DRC has 2 meanings now in audio? (Dynamic Range Compression) - how stupid...

I was think about that one as well. Seriously why two meanings Huh
Read/follow the forum rules.
For troubleshooting and bug reporting, read this first
Interested in seeing some YouTube videos about Kodi? Go here and subscribe
Reply
#6
(2015-03-09, 09:25)Memphiz Wrote: DRC has 2 meanings now in audio? (Dynamic Range Compression) - how stupid...

It even has 3 meanings Confused
  • Digital Room Correction
  • Dynamic Range Control
  • Dynamic Range Compression
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#7
I'm very excited about this project
Reply
#8
(2015-03-15, 23:07)trilliam Wrote: I'm very excited about this project

Here is a screenshot from my first prototyp gui of adsp.xconvovler:
Image

If you want you can also look at my other development thread about adsp.xconvolver:
181875 (thread)
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#9
Here is the link to my official GSoC proposal.
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#10
(2015-04-11, 21:09)wisler Wrote: Here is the link to my official GSoC proposal.

How does the selection process work? Is there somewhere I can vote for you proposal?
Reply
#11
Sorry only the mentors from XBMC Organization can vote.
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#12
(2015-04-11, 21:09)wisler Wrote: Here is the link to my official GSoC proposal.


I'm very glad to see progress on this. Keep up the good work, Team KODI
Reply
#13
Hi Wisler,

Great idea and good luck with your GSOC2015 assignment!


One question: Will the AESource module also be able to use microphone calibration files to correct for deviation in sensitivity of the microphone?
Reply
#14
(2015-05-16, 10:08)RogerS Wrote: Hi Wisler,

Great idea and good luck with your GSOC2015 assignment!


One question: Will the AESource module also be able to use microphone calibration files to correct for deviation in sensitivity of the microphone?

Hi RogerS,

I know the schematic isn't very clear, but AESource can be seen as a device driver for sound card input jacks. The filter design or calculation will be in an separate Module/Class, so it will be possible to implement this feature. But probably it isn't enough time during GSoC coding time.
I also though about this feature and maybe I will add it in a future Version.

If you want you can read my GSoC blog: http://achim-turan.de/gsoc-blog/
Latest news about AudioDSP and my libraries is available on Twitter.

Developers can follow me on Github.
Reply
#15
Hi Wisler, They you for your reply. I had already read your well written GSoC Blog.

I can understand that there might not be sufficient time to include microphone calibration data in AESource, but make sure while you are coding that inclusion afterwards will be possible. People who are going to use this feature and are probably going to use a USB mic like the UMIK-1. Not being able to correct for deviation in sensitivity will lead to improper results. Even changing the direction of the MIC from 0 degree to 90 degree affects sensitivity! And for multi-channel (5.1 and higher) often a 90 degree (upward) position of the measurement mic is being used.
Reply

Logout Mark Read Team Forum Stats Members Help
ACCEPTED: Creating cross-platform room correction for Kodi3