Kodi Community Forum
ACCEPTED: Creating cross-platform room correction for Kodi - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+---- Forum: GSoC (https://forum.kodi.tv/forumdisplay.php?fid=299)
+----- Forum: GSOC 2015 (https://forum.kodi.tv/forumdisplay.php?fid=220)
+----- Thread: ACCEPTED: Creating cross-platform room correction for Kodi (/showthread.php?tid=219069)

Pages: 1 2 3


ACCEPTED: Creating cross-platform room correction for Kodi - AchimTuran - 2015-03-07

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


RE: Adding AESource to ActiveAE - natethomas - 2015-03-07

I didn't even know DRC was on the possibility horizon inside Kodi. Very cool!


ACCEPTED: Adding AESource to ActiveAE - AchimTuran - 2015-03-08

(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
  • ...



Adding AESource to ActiveAE - Memphiz - 2015-03-09

DRC has 2 meanings now in audio? (Dynamic Range Compression) - how stupid...


RE: Adding AESource to ActiveAE - Martijn - 2015-03-09

(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


RE: Adding AESource to ActiveAE - AchimTuran - 2015-03-09

(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



RE: Adding AESource to ActiveAE - trilliam - 2015-03-15

I'm very excited about this project


RE: Adding AESource to ActiveAE - AchimTuran - 2015-03-17

(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)


RE: Creating cross-platform room correction for Kodi - AchimTuran - 2015-04-11

Here is the link to my official GSoC proposal.


RE: Creating cross-platform room correction for Kodi - leonpierresusan - 2015-04-12

(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?


RE: Creating cross-platform room correction for Kodi - AchimTuran - 2015-04-12

Sorry only the mentors from XBMC Organization can vote.


RE: Creating cross-platform room correction for Kodi - trilliam - 2015-04-16

(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


RE: ACCEPTED: Creating cross-platform room correction for Kodi - RogerS - 2015-05-16

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?


RE: ACCEPTED: Creating cross-platform room correction for Kodi - AchimTuran - 2015-05-17

(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/


RE: ACCEPTED: Creating cross-platform room correction for Kodi - RogerS - 2015-05-18

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.