diyAudio DSP thanks to XBMC activeAE - diyAudio
Go Back   Home > Forums > Source & Line > PC Based

PC Based Computer music servers, crossovers, and equalization

Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 23rd November 2013, 12:11 PM   #1
diyAudio Member
 
steph_tsf's Avatar
 
Join Date: Mar 2008
Default diyAudio DSP thanks to XBMC activeAE

There is a major revision ongoing underneath XBMC hood.
This is ActiveAE, the new XBMC sound engine.
There is a youTube presentation here : XBMC DevCon 2013 - Day 2, Part 5 - Active AE presentation - YouTube

Please check the XBMC forum here : http://forum.xbmc.org/showthread.php?tid=178611&page=2

Team-XBMC Developers FernetMenta and Fritsch just opened the door for supporting an "in between" audio module to be called by XBMC.

Consequently I sketched what kind of diyAudio paradise we'll reach with XBMC if they support stacking four "in between" audio modules.
There would be a field into XBMC Audio Configuration, labelled "MIX", naming the third-party DSP module to be loaded and executed for implementing the downmix. This can be a - none - downmix for preserving the integrity of the source. This can be a stereo downmix for always outputting a left and a right channel. This can be a 4-ch downmix also. Nothing prevents fancy things like downmixing in stereo, then applying effects and outputting 8 audio channels. XBMC won't be involved into such complexity. XBMC is only enabling such "in between stage". Bear in mind that within the MIX module, we act as M channel sink, and N channel source. By default, upon a fresh XBMC install, the name of the MIX module to be loaded and executed would be - none - for retrocompatibility.

There would be a field into XBMC Audio Configuration, labelled "RES", naming the third-party DSP module to be loaded and executed for implementing a high quality resampler. For maintream systems, this will be a 48 kHz resampler. For high-end systems, this will be a 96 kHz resampler. The resampler is supposed to solve sync issues like the incoming audio being not related to the HDMI clock, or being not related to the USB clock. Other sync strategies can be implemented like asynchronous audio. Over there you'll see passionate debates and various strategies, more or less accepted by audio enthusiasts. Anyway, XBMC doesn't see the complexity of this. Within the RES module, we still act as N channel sink, and N channel source. By default, upon a fresh XBMC install, the name of the RES module to be loaded and executed would be - none - for retrocompatibility.

There would be a field into XBMC Audio Configuration, labelled "PRE", naming the third-party DSP module to be loaded and executed for implementing a pre-processor. This can be a IIR-filter based equalizer, a FIR-based equalizer, a combination of the two, the settings may differ from channel to channel, and there could be a dynamics compressor also, and a room decorrelator also. Within the PRE module, we still act as N channel sink, and N channel source. By default, upon a fresh XBMC install, the name of the PRE module to be loaded and executed would be - none - for retrocompatibility.

There would be a field into XBMC Audio Configuration, labelled "XO", naming the third-party DSP module to be loaded and executed for implementing a speaker crossover. This can be a IIR-filter based crossover, a FIR-based crossover, a combination of the two. XBMC won't be involved into such complexity. XBMC is only enabling such "in between stage". Bear in mind that within the XO module, we act as N channel sink, and Z channel source. For a stereo crossover we'll have N = 2 and Z = 8. As a footnote I'll say that some experimenters will try applying the crossover concept in a multichannel context. There may be crossovers with N = 4 and Z = 8. This way all four loudspeakers can become active 2-way. This way the front left and front right can become active 3-way, with the rear left and rear right speakers remaining what they are. No centre channel, no separate subwoofer. By default, upon a fresh XBMC install, the name of the XO module to be loaded and executed would be - none - for retrocompatibility.
ActiveAE relies on ffmpeg for resampling and remapping.
The internal audio buffers follow ffmpeg channel mapping.
See ffmpeg here : FFmpeg

How to remain compatible with ffmpeg resampling and channel mapping, if at the MIX stage we execute some specific audio downmixing, and if at the RES stage, we execute some specific audio resampling?

Please avoid long posts on the XBMC forum about this. Currently, FernetMenta and Fritsch are so busy testing ActiveAE, that they won't read posts over 5 lines. Thus, if you feel I'm wrong, if you feel I'm right, please tell it here on diyAudio, instead of on XBMC. Contributors like KOON3876, CopperTop, having experience with audio libraries like BASS or PortAudio, having experience in writing realtime audio DSP code, are warmly welcome here. Basically the kind of posts we would like to see on XBMC forum are "woaw, great job, I'm xyztuv diyAudio member, and I'm supporting steph_tsf at 1000%".

The next stage is to study XBMC ActiveAE.
I guess we'll get some sort of ActiveAE API.
I guess we'll get a few "demo" third-party DSP modules, written by FernetMenta and Fritsch. What kind of "demo" ? Here are suggestions.
MIX demo : summing all available audio channels to one common internal channel. Left_out would be the sum. Right_out would be the phase inverted sum. We thus source 2 channels.
RES demo : a trivial 2-ch 48 kHz to 96 kHz resampler - duplicating each sample
PRE demo : a trivial 2-ch lowpass filter operating at 96 kHz sampling frequency - each output sample is the moving average of 16 input samples
XO demo : a trivial stereo 2-way crossover - the lowpass output is the sum of two successive audio samples - the highpass output is the difference of two successive samples - this is done in stereo, thus there is only activity on channels 1,2,3,4 as output.
Actually, at this stage I don't know if/when Team-XBMC Developers can allocate time for this. It all depends on their goodwill. They should be rewarded. Any idea about that?
  Reply With Quote
Old 25th November 2013, 06:27 PM   #2
rat666 is offline rat666  Germany
diyAudio Member
 
Join Date: Nov 2013
Hi,

i came from the xbmc board and registered here to tell you my thoughts about this project. But first of all let me make the following clear:

I'm NOT a Member of Team XBCM
I don't speak for Team XBMC
i'm NOT a Developer
i'm NOT that deep into PC Based Audio

I'm a audiophile XBMC user since the first version of XBMC came out (i'm talking about XBMC for XBOX in 2003 before i used XBOX Media Player and XBPlayer).

I'm using XBMC in a Highend Home Cinema since it was ported to the PC.

I'm in the XBMC Board from the Beginning (as a reader).

Maybe i can help a little bit to bring this Project forward.

XBMC GOTHAM (the upcoming release) uses a totaly new audio engine called ActiveAE, which give a bitperfect output from my experience.

Afaik 99.9% of the XBMC Users don't own a highend system.
Imho 99.99% of the users (including me) are happy with the sound quality of activeAE.

XBMC has a feature freeze since November 10., the devs work hard to get Gotham stable and bring the final version. Since today there are only Aplha Versions out, so i won't expect a final version bevor February (my estimation).

Bevor the final version comes out, no code changes would be acepted, only bugfixes.

if i read your posting, i came to the conclusion that you only want to deal with stereo. XBMC's primary Funktion is Video Playback. Stereo and Music are secondary (from my point of view).
So if you wan't to implement something, it has imho to work with 8 Channels. (i guess the Future will bring more Channels).

XBMC works with 24Bit 192khz, if you want to implement a resampler thatś the Frequency you have to support.

If you want to implement a DSP Module it has to work also with the Video Part of XBMC (i'm talking about up to 8 Audio Channels after the were decoded to LPCM).

If you want to write an Addon which will be accepted by Team XBMC and the Users it has to Support all the Platforms (Windows, Linux, Apple TV, Raspberry Pi, Android).

The lowest acception rate (from my expirience) has the Crossover Part. i think that only 0.001% of the XBMC users will need it. Cause the majority of the users unse passive speakers or an active setup with build in crossovers.

if you want to get a good experience from XBMC try Openelec. it's a small arch linux based distribution which runs fast and stable. From my point of view the best way to use XBMC, if you wan to use it as an appliance.

Download the nightlies from here sources.openelec.tv/tmp/image/. But first you have to install the latest final version, because the installer in the nighlies is broken.

sorry for the long post.
Please keep in mind, that my whole posting only shows my personal meanings and experiences.

sorry for the bad english.
  Reply With Quote

Reply


Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Looking for advice: HT amplifier + XBMC embedded PC Vertigo72 Everything Else 7 19th August 2013 04:19 AM
RS-232 cable for DSP-Amp Digisynthetic DSP-1400 Sabbelbacke Parts 0 9th May 2009 09:33 AM
diyaudio moderator vs diyaudio member Leolabs Everything Else 6 18th June 2006 08:19 AM


New To Site? Need Help?

All times are GMT. The time now is 07:52 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright 1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2