INTERACT FORUM

More => Old Versions => JRiver Media Center 18 for Windows => Topic started by: TheLion on December 31, 2011, 08:30:09 am

Title: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on December 31, 2011, 08:30:09 am
Christmas is past us and my biggest (JRiver related) wish remains unfullfilled - a high quality convolution engine with tight integration with JRiver MC. In my experience there is no such solution available today.

Many of us use "digital room correction" in form of FIR filters generated by applications such as DRC, Audiolense, Dirac Live or Acourate. I am an Audiolense user myself. I have been using the convolverVST plugin to do the convolution. But this solution is far from being great.

For once I am not aware of any multichannel convolution VST plugin that does 64bit fp processing (convolver is limited to 32fp, and there has not been any development since 2006 (!)). If there ever was a reason for a full 64bit fp pipeline it is convolution of highly complex 65k/130k taps FIR filters.

With MC now integrating "room correction" and a great "Parametric Equalizer" a convolution engine with full 64bit fp processing would be the next/final step. It would also make JRiver THE choice for everybody with "digital room correction". Because, I can tell you, no matter if you look into Audiolense or Acourate Newsgroups - the lack of a proper convolution engine is a main topic. Many giving up on that topic entirely and build dedicated LINUX convolution PCs with bruteFIR...  

Matt, I am not sure how much effort such a convolution engine integrated with your great 64bit fp audio engine would be. But the idea of it combined with your idea of making Media Center's audio engine act as a "virtual soundcard" would be a small revolution in the market!

Thank you very much for your consideration! Have a successful year 2012!
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: Matt on December 31, 2011, 10:00:06 am
Matt, I am not sure how much effort such a convolution engine integrated with your great 64bit fp audio engine would be.

I think the math behind convolution (FIR filters) is simple, unless there's some complexity I'm not aware of.

Here's a nice overview:
http://www.songho.ca/dsp/convolution/convolution.html

FIR filters are the building blocks of the predictor stage of lossless audio compressors, so I've done my share of monkeying with them.

But I've never experienced good results playing with existing convolution systems for listening.  Maybe it can only work if you actually do measurements, but it seems like I should be able to load a sample configuration file and hear something that sounds promising.  Any tips?

Also, do you know how to convert from the impulse WAV file to a set of convolution coefficients?
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on December 31, 2011, 10:39:09 am
Matt,

thank you so much for your interest!

If you want some sample FIR filters made (basically WAV files with the convolution data and a configuration file for multi channel setup and XOs) I can recommend Audiolense demo (http://www.juicehifi.com/index.html). All you need is some measurement mic (preferably with correction file) and an ASIO mic pre-amp. Then you record the impuls Wav file, which gets filtered by Audiolense to give you an proprietary measurement file. Audiolense is very simple to use. If you have done your measurement and using default TTDC procedure with flat target you will have your first FIR convolution files (in WAV format) in 5 minutes.

Then you have test files to really appreciate what FIR filters are doing. To get the convolution done with the highest possible precision is the important final task - and that's where you come in. I know you have been in contact with Bernt (developer of Audiolense) before - he is very helpful and very much aware of the fact that convolution per convolverVST is a compromise. I am sure he will be delighted to see your interest and will support you with everything he can. It is in his best interest as well to not rely on a 6 year old VST plugin that's not being developed anymore and doesn't run at the precision of the Media Center audio engine.

Another contact is Dr. Ulrich Brüggemann, developer of Acourate (http://www.acourate.com/). I am talking to him regularly lately about convolution and I think he too would be delighted to get multichannel 64fp convolution tightly integrated into MC. 

If I can support you in any way - I am all yours!     
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on December 31, 2011, 10:41:15 am
btw the last time I was so excited about the prospect of a new feature for Media Center was when I suggested madVR support - and look how that turned out  ;)

Without opening a can of worms - if you have ever experienced "proper digital room correction" (Audiolense, Acourate, DRC,...) there is NO way going back. It is a humbling experience. And I was very critical myself coming from "mass market automatic consumer solutions" like Audyssey. This is something very different giving the right tools to build these filters.
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: Matt on December 31, 2011, 10:59:52 am
How do you scale the impulse filters for different sample rates?  Since they're all done in the time domain, it seems like you'd need different filters for different sample rates.  Or maybe you only use one sample rate for everything?
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on January 01, 2012, 06:58:20 am
Matt,

sure, I "need" different filters for different sample rates. MC's resampling is good but I still very much prefer playing content in its native sample rate. But the way you describe it is also possible - building a eg. 96khz filter and resampling all content to that sample rate (which is VERY comfortable with MC). It works but isn't optimal.

I do the impuls measurements in all 6 viable sample rates (44.1khz all the way up to 192khz). Based in those measurements I build filters for each sample rate (you can also build all filters based on eg. a single 96khz measurement - the only difference being in the high-end rolloff). A basic comfort function with any convolution engine is to autoselect the appropriate filter based on input sample rate.

So basically you get a filter bank of 6 convolution wav files to suit all content. You scale the input filters when you eg. save a filter in Audiolense - there you choose one or more sample rates for filter output.
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on January 01, 2012, 08:17:31 am
Matt,

Audiolense Demo is propably the easiest und fastest way to get FIR filter files for test purposes. An open source alternative is Denis Sbragion's excellent DRC (http://drc-fir.sourceforge.net/) and and Simple Automated IR Measuring Tool by Denis Sbragion and Edward Wildgoose for creating the impulse response files needed by DRC (http://www.duffroomcorrection.com/wiki/Simple_Automated_IR_Measuring_Tool).
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on January 01, 2012, 12:40:35 pm
Matt,

I sent you a personal message you might be very interested in! Thank you.
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: mojave on January 01, 2012, 06:24:24 pm
btw the last time I was so excited about the prospect of a new feature for Media Center was when I suggested madVR support - and look how that turned out  ;)

Things sometimes take time here. ;D They had already been working on madVR support for 11 months because I requested it in January, 2010. (http://yabb.jriver.com/interact/index.php?topic=55827.0)  ;)

I agree that convolution support has a great potential for increased sales for JRiver. I have tried Voxengo Pristine Space (8 Channel Convolution VST plugin) with Audiolense and it worked at the time. However, that was several years ago and Pristine Space hasn't been updated since 2008.
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on January 02, 2012, 02:13:15 am
You win  ;)
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: Matt on January 02, 2012, 10:31:13 am
I'm going to move this to the public board.  Please feel free to contact or involve any interested parties.

We'll use this thread to gauge the general interest in native convolution support in DSP Studio.

It would also be helpful for me to have a technical description of how you convert from a WAV / impulse file to a set of FIR coefficients.  Is it as simple as using each sample in the WAV file as a coefficient, starting with sample 0 and working up to the length of the filter?  Is there any cross-channel communication, and if so, how is that handled?

Thanks.
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: jmone on January 02, 2012, 10:58:23 am
Things sometimes take time here. ;D They had already been working on madVR support for 11 months because I requested it in January, 2010. (http://yabb.jriver.com/interact/index.php?topic=55827.0)  ;)

Ha!  Newbie, how about April 2009 http://yabb.jriver.com/interact/index.php?topic=51430.0
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: lasker98 on January 02, 2012, 11:36:57 am
+1 on the native convolution support. I think it would be a fantastic addition. Just searching for "convolver" through the forum shows how many issues have been related to convolver.

Bill
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: )p( on January 02, 2012, 11:57:32 am
+1 For a native convolver. I use prestine space now in jrmc with filters generated with drc.
Title: Re: Full JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 02, 2012, 02:20:41 pm
+1 for native convolution support!
Mr Audiolense himself (Bernt) recommends MC for its superb audio/video and configuration qualities. But Audiolense filters pr today is relying on a no longer in development convolution engine. Native support is an excellent idea!
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: AudioVero on January 02, 2012, 02:54:14 pm
I think the math behind convolution (FIR filters) is simple, unless there's some complexity I'm not aware of.

Here's a nice overview:
http://www.songho.ca/dsp/convolution/convolution.html
Hello Matt,

the basic maths IS pretty simple. Just multiplications and additions.
BUT: if you try to compute long filters (e.g. 65536 taps or even more) then the CPU load will be heavy.
So the solution is to apply a Fast Fourier Transformation. With FFT the convolution process is just a vector multiplication. Then you apply an inverse FFT and get the result back in the time domain.
BUT: also a FFT convolution has its obstacles. Especially if you try to get a low CPU load (to avoid bad influences by CPU jitter) AND still get a low latency. Typically you need to use a buffer (FFT package size), this means you have to collect samples. This causes latency. If the package is too small, then the CPU lod can rise quickly. If the package size is too big, then you get a big latency.
Today there are also zero latency algorithms, but the have to organize a lot of threads with package sizes of different lengths.

If you read about the efforts carried out with Brutefir, see http://www.ludd.luth.se/~torger/brutefir.html, you will get an idea about. You may furthermore start to analyze JConvolver, see http://kokkinizita.linuxaudio.org/papers/aella.pdf or http://kokkinizita.linuxaudio.org/papers/aella-pres.pdf or even the source code, as a zero latency convolver.

You clearly need for each samplerate its own filter according to it. A program like VSTConvolver is working nice but lacks of the automatic switch between music sources with changing samplerates.

In addition you will find fore sure users who like to switch between filter banks for comparison of filters, e.g. blind tests.

And of course you will find requirements where people like to apply multiway solutions = multiple outputs from a single input. Or they like to apply combinations of filtering jobs e.g. filter the left channel and add a filtered right channel. Something like crosstalk cancellation or crosstalk introduction (headphone listening).

So e.g. with a 3-way stereo system and 3 filterbanks and 6 possible samplerates you already have to deal with 108 filter kernels of size 512 kB (65536 taps double precision coefficients) and even more.

Anyway the question brought up by TheLion is interesting and challenging. And there must be some basic program structure. In case of a fixed size partitioned convolution the plugin may read data from two buffers and write to two buffers (bufferswitch) like already known from ASIO interfaces. Of course the plugin must know also about the actua samplerate and the filters to apply. In case of non-partitioned convolution the data stream and the buffer switching will be more complex.

Just as some first comments. Simple solutions are available but users like TheLion will complain about for sure  ;)

Uli
www.audiovero.de

Title: Re: Full JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: nilbor on January 02, 2012, 03:08:49 pm
+1 for this natively supported
Title: Re: Full JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: JimH on January 02, 2012, 03:19:05 pm
Audiovero.  Nice first post!  Thanks!
Title: Re: Full JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 02, 2012, 03:43:25 pm
Dear Uli,

thank you very much for taking time to participate here. When native JRiver convolution really comes to be I sincerely hope that feature makes many JRiver customers become curious about the potential of FIR based digital room correction.

I can strongly recommend giving applications like your Acourate a try. Hearing your system the first time with linearized frequency response and accurate time domain behaviour is truely an eye opening experience. I will go as far as saying that true "high end" playback is hardly possible without applying such means. And that's what JRiver MC is all about, isn't it ;-)
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: Matt on January 02, 2012, 03:54:53 pm
Thanks AudioVero for the nice post.  Some questions inline:

the basic maths IS pretty simple. Just multiplications and additions.
BUT: if you try to compute long filters (e.g. 65536 taps or even more) then the CPU load will be heavy.
So the solution is to apply a Fast Fourier Transformation. With FFT the convolution process is just a vector multiplication. Then you apply an inverse FFT and get the result back in the time domain.
BUT: also a FFT convolution has its obstacles. Especially if you try to get a low CPU load (to avoid bad influences by CPU jitter) AND still get a low latency. Typically you need to use a buffer (FFT package size), this means you have to collect samples. This causes latency. If the package is too small, then the CPU lod can rise quickly. If the package size is too big, then you get a big latency.
Today there are also zero latency algorithms, but the have to organize a lot of threads with package sizes of different lengths.

So setting aside performance considerations, is time based convolution better than frequency based convolution (FFT + iFFT)?

Also, could you step me through the basic flow when using FFT + iFFT?  This is how I have it in my head, but I'm still feeling around in the dark:

Code: [Select]
Imagine a window of 1024 samples (so 512 FFT frequencies).

Let's say we keep the results of the last 4 FFT runs (so only 4096 samples): FFT[0], FFT[1], FFT[2], FFT[3]

We would accumulate samples until we have 1024 samples, then process a block using pseudo-code like:

// roll previous FFT results back
FFT[3] = FFT[2]
FFT[2] = FFT[1]
FFT[1] = FFT[0]

// perform FFT on current window
FFT[0] = PerformFFTOnCurrentSamples

// convolute
for (int window = 0; window < 4; window++)
    for(int frequency = 0; frequency < 512; frequency++)
        FFTOutput[frequency] += FFT[window][frequency] * [Constant From Impulse File]

// iFFT to return to time domain
iFFT(FFTOutput) to get output samples


Quote
You clearly need for each samplerate its own filter according to it. A program like VSTConvolver is working nice but lacks of the automatic switch between music sources with changing samplerates.

In addition you will find fore sure users who like to switch between filter banks for comparison of filters, e.g. blind tests.

And of course you will find requirements where people like to apply multiway solutions = multiple outputs from a single input. Or they like to apply combinations of filtering jobs e.g. filter the left channel and add a filtered right channel. Something like crosstalk cancellation or crosstalk introduction (headphone listening).

So e.g. with a 3-way stereo system and 3 filterbanks and 6 possible samplerates you already have to deal with 106 filter kernels of size 512 kB (65536 taps double precision coefficients) and even more.

I don't think handling filter bank switching or sample rate switching would be technically hard.  It's more of a user interface issue.
Title: Re: Full JRiver 64bit fp convolution engine?
Post by: TheLion on January 02, 2012, 04:03:27 pm

Just as some first comments. Simple solutions are available but users like TheLion will complain about for sure  ;)


Completely uncalled for... ;) ;D
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jmone on January 02, 2012, 04:29:26 pm
Dumb Q, what does this do for us?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Hendrik on January 02, 2012, 04:31:25 pm
Dumb Q, what does this do for us?

You know those functions on your AV Receiver using the small mic to "measure" your room and tune the audio to that? That, if done right in a better quality i imagine.
The hard part is the measuring and calculation, not the actual filtering, FWIW.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on January 02, 2012, 04:31:54 pm
+1 for native convolution
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jmone on January 02, 2012, 04:42:05 pm
You know those functions on your AV Receiver using the small mic to "measure" your room and tune the audio to that? That, if done right in a better quality i imagine.
The hard part is the measuring and calculation, not the actual filtering, FWIW.

Thanks.  Got it, and given Matt's anti receiver passion I'm sure the lion will be pleased! :) 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AoXoMoXoA on January 02, 2012, 04:54:34 pm
+1 for native convolution
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: J-a-k-e on January 02, 2012, 05:28:42 pm
As someone who's new to this I Hope I don't sidetrack the thread too much here. Can anyone here point me in the right direction as far as a measuring device goes, I'm assuming we're talking about essentially a high quality dynamic microphone for the computer? I have a decent desktop microphone here with a usable frequency response of up to 8khz although I know I'd have to be joking if I even began to think that this would make for a usable substitute.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 02, 2012, 10:58:01 pm
Can anyone here point me in the right direction as far as a measuring device goes

I have been using digital XO, multi-amped speakers, and digital room and/or speaker correction solutions for many years. These solutions offer such vast improvements in audio quality that you can not go back once you hear a good implementation.
I use an Earthworks M30 microphone (http://www.earthworksaudio.com/our-microphones/m-series/m30/ (http://www.earthworksaudio.com/our-microphones/m-series/m30/)
and a Rane MS 1S Mic PreAmp http://www.rane.com/ms1s.html#gpm1_1 (http://www.rane.com/ms1s.html#gpm1_1)
It is critical that your measurement mic has good behavior in the time domain.
The amplified mic signal is digitized by a Lynx Aurora converter http://www.lynxstudio.com/product_section.asp?i=1 (http://www.lynxstudio.com/product_section.asp?i=1)

Just to keep some perspective, I'm sure the audibility of errors caused by cheap measurement hardware greatly exceed the difference between 32 and 64 bit processing of the FIR filters.

I definitely would like to see a good stable low latency convolver solution. I'm getting by OK with ConvolverVST since MC supports video delay to match the audio :). For sure I need to develop a set of low latency filters to make game play possible.



Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on January 03, 2012, 12:26:57 am
A BIG +1 for native convolution support!!  This would be huge for the audiophile community.

Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 03, 2012, 12:59:08 am
As someone who's new to this I Hope I don't sidetrack the thread too much here. Can anyone here point me in the right direction as far as a measuring device goes, I'm assuming we're talking about essentially a high quality dynamic microphone for the computer? I have a decent desktop microphone here with a usable frequency response of up to 8khz although I know I'd have to be joking if I even began to think that this would make for a usable substitute.

To extend on what Hulkss suggested: Of prime importance is using a ->calibrated<- omnidirectional mic and a decent mic-preamp with ASIO driver. Calibrated means that the mic has been measured against a reference and correction tables to its frequency response are delivered with it. This brings to results of any decent mic (a Behringer ECM8000 will suffice if calibrated) in the ballpark of each other.   
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 03, 2012, 01:15:05 am
To extend on what Hulkss suggested: Of prime importance is using a ->calibrated<- omnidirectional mic and a decent mic-preamp with ASIO driver. Calibrated means that the mic has been measured against a reference and correction tables to its impuls response are delivered with it. This brings to results of any decent mic (a Behringer ECM8000 will suffice if calibrated) in the ballpark of each other.   

I have only seen frequency response correction tables for a mic like the ECM8000. Where can a person get correction files for phase response?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 03, 2012, 01:28:55 am
I have only seen frequency response correction tables for a mic like the ECM8000. Where can a person get correction files for phase response?

I certainly meant frequency response correction tables ;-)

How do you apply your FIR filters for general audio streams (WDM/DirectX streams like your mentioned computer games -> not that I would insist on using it for such ;-))?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 03, 2012, 01:52:51 am
I meant frequency response correction tables ;-) How do you apply your FIR filters for general audio streams (WDM/DirectX streams like your mentioned computer games)?

Good time domain behavior is why I bought the Earthworks M30.

In the past I used DEQX processors to apply FIR filters. Now with JR Media Center I'm going to try to play a PS3 into a Hauppauge Colossus video capture card. For computer games you can setup a stand-alone FIR filter host using soft water like:

Virtual Audio Cable:  http://software.muzychenko.net/eng/vac.htm#features (http://software.muzychenko.net/eng/vac.htm#features)
ASIO4ALL:  http://www.asio4all.com/ (http://www.asio4all.com/)
Bidule: http://www.plogue.com/?page_id=56 (http://www.plogue.com/?page_id=56)
SAVIHost: http://www.hermannseib.com/english/savihost.htm (http://www.hermannseib.com/english/savihost.htm)
Console: http://console.jp/en/about/about_1.html (http://console.jp/en/about/about_1.html)
Jack: http://jackaudio.org/jack_on_windows (http://jackaudio.org/jack_on_windows)
AudioMulch: http://www.audiomulch.com/ (http://www.audiomulch.com/)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 03, 2012, 02:12:26 am
As someone who's new to this I Hope I don't sidetrack the thread too much here. Can anyone here point me in the right direction as far as a measuring device goes, I'm assuming we're talking about essentially a high quality dynamic microphone for the computer? I have a decent desktop microphone here with a usable frequency response of up to 8khz although I know I'd have to be joking if I even began to think that this would make for a usable substitute.

I would not recommend taking shortcuts on the measurement side. Aside from physical acoustik treatment of your room, the measurement itself is the most challenging step when doing digital room correction. You will need a calibrated mic+mic preamp, as well as a very low latency audio output/input device. I was using M-AUDIO Mobilepre earlier (=affordable), but got hickups in the sine sweeps. Also, someone told me that this device is not sufficiently frequency linear for room calibration. I now use EMM mic and pre-amp from IBF Akustik (http://www.content.ibf-acoustic.com/catalog/product_info.php?cPath=30&products_id=35 (http://www.content.ibf-acoustic.com/catalog/product_info.php?cPath=30&products_id=35)). The set is calibrated to adjust for nonlinearity both in the preamp and mic. I use a LynxTwoB for ASIO audio sweeps in/out, and Audiolense software as sine generator and recorder (I guess REW is a good alternative). Works really fine.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 03, 2012, 04:19:12 am
I agree. I am using a simular mic from IBF Akustik (http://www.content.ibf-acoustic.com/catalog/product_info.php?cPath=21_23&products_id=59) and use my Prism Orpheus as mic pre-amp.

To get best possible measurement data is the basis for any good filter.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 03, 2012, 05:20:59 am
I have only seen frequency response correction tables for a mic like the ECM8000. Where can a person get correction files for phase response?

You can't just get calibration tables for a given mic, that would be a contradiction in terms. Calibration means just that a specific microphone needs to be calibrated using measurement equipment of sufficiently high precision. E.g. if you want to know the measured response of a certain mic at different frequencies, your requirement would be to know the response within +/-0.1dB. You would then need to put your mic into an anechoic chamber and impose a sound with known energy (sound pressure) at given frequencies, and you would need to know the imposed energy at typically 10 times the precision of the calibration precision (i.e. 0.01dB). This is usually performed by professionals. IBF Akoustik does this at a reasonable price, I am sure there are others too. You would need to either buy their kit (it comes with the calibration table on a floppy disk!!!!), or send your mic there to be calibrated.

EDIT: hulkss, I just realised I wrote a long answer for something you did not ask  :) . Anyway, if my memory is correct, my EMM mic came with both frequency and phase calibration. As far as I know, it is only the frequency table that is being used by Audiolense. Correct me if I'm wrong.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 03, 2012, 06:33:30 am
That's right, IBF Acoustic provides amplitude and phase response data for their mics. Mine came with a report like: http://www.content.ibf-acoustic.com/catalog/ddownload/CAL-CCP-sample.pdf

Audiolense only uses the frequency table, as do all DRC apps I am aware of.

There is a big difference between individual calibration and bulk calibrated mics. For latter the calibration file lists the "typical response" for that kind of mic - and with value mics variation is usually so big that it is pointless. E.g. Audyssey mics that come with receivers are "bulk calibrated". Look e.g. at http://www.cross-spectrum.com/measurement/calibrated_behringer.html for calibration services.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 03, 2012, 07:06:13 am
Good point. My first mic (Behringer ECM8000) came with a "typical frequency responce" graph printed on the box. Not very useful other than it showed the typical increased discrepancy from linearity at low frequencies. The same is true for the much used RadioShack SPL meter. As far as I know, a lot of people (including myself a few years ago) use any calibration curve found on the net assuming anything is better nothing. The only thing to be sure of then is that you get a result, and that you do not have any control of the actual result at all, since the discrapancy in the low bass region can be several dB.

Is it really true that receiver mics are only bulk calibrated? If so, I am even more satisfied with my preamp/receiver-free setup :-)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 03, 2012, 09:51:19 am
You should be ;-)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: yoshi_1 on January 03, 2012, 02:28:13 pm
+1 for native convolution in MC. This will definately be a great addition to an already excellent product. Currently, and until another option becomes available, I rely on ConvolverVST running my Audiolense generated filters in MC.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 03, 2012, 05:36:08 pm
I got a little smarter about convolution today.

I sketched together a partitioning, frequency-based convolution system.  It uses 64bit precision for all calculations, and runs at about 80x real-time (roughly 1% CPU usage) on a stereo file with 65k taps.

I also played with time-based convolution, and saw that it's impossible even on a fast computer.  It hits the wall around 15,000 taps using the FPU and about 25,000 taps using SSE with a stereo file.  Even if the speed was improved 10x from threading or better assembly, it'd still be much too slow.

We have some other higher priorities than convolution right now, so I can't say when we might put this work into a real build.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 03, 2012, 08:08:56 pm
If there was a "proper" convolver in JRiver MC the tools below could be used to develop filters for it.

Here is Bohdan coaxing square waves out of a multi-way dynamic loudspeaker:
http://www.bodziosoftware.com.au/Square_Wave.pdf (http://www.bodziosoftware.com.au/Square_Wave.pdf)

And a home theater example:
http://bodziosoftware.com.au/Ultimate_Equalizer_Technology.pdf (http://bodziosoftware.com.au/Ultimate_Equalizer_Technology.pdf)

Personally, I now use Audiolense with ConvolverVST: http://www.juicehifi.com/index.html (http://www.juicehifi.com/index.html)

Dennis shows his stuff here: http://drc-fir.sourceforge.net/doc/drc.html (http://drc-fir.sourceforge.net/doc/drc.html)

And Acourate: http://www.acourate.com/ (http://www.acourate.com/)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 04, 2012, 03:48:43 am

We have some other higher priorities than convolution right now, so I can't say when we might put this work into a real build.

Matt,

I really appreciate it that you have this topic "on your radar". I am sure when you release that feature it will be a quality implementation and a great asset to your customers. The last two days showed that general interest is quite strong and present DRC users aren't satisfied with existing convolution plug-ins. Thank you!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Hendrik on January 04, 2012, 06:12:54 am
DRC = Dynamic Range Compression

Get another acronym, this one is used already. :P
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 04, 2012, 06:44:28 am
DRC = Dynamic Range Compression

Get another acronym, this one is used already. :P

I was really hoping nobody would be using something like Dynamic Range Compression by now. So I consider the acronym DRC to be free from bad meanings ;-)

btw in your country it has a great meaning: http://www.drc.de/
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lbstyling on January 04, 2012, 06:59:40 am
This has been my dream for the last 10 years!
 I am currently running filters in J river that were measured in REW and manually typed in to j river. If you could interface with REW and import filters straight in (REW can build targeted filters), then have an easy way to apply crossover filters within J river, and output duplicate channels on more than one sound card- that would be awsome!

For a start, the entire diy audio community would emigrate here, thats everyone on partsexpress, diy audio, diy hifi, loads from home theatre shack/forum, and on and on.

I think having the eq and the crossovers separate would help keep it all easy for average joe, and encorage people to play with active speakers as a future improvement- creating the most technically accurate sound system possible, and saving thousands of dollars. This would render all high end processors obsolete!

Going active alone drops distortion by around 2% because of inductor saturation.

Do it- be a steve jobs- change the world! ;)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: gvanbrunt on January 04, 2012, 07:24:22 am
Well thanks a lot guys. I've been putting off looking into this type of correction for some time now. With the amount of interest and links here I can no longer ignore this. You've just forced me to do a lot of reading.... :)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 04, 2012, 08:08:53 am
This has been my dream for the last 10 years!

For a start, the entire diy audio community would emigrate here, thats everyone on partsexpress, diy audio, diy hifi, loads from home theatre shack/forum, and on and on.


And I thought it was only me  ;) Make them post here and this feature might get more priority from Matt, Jim, et all

I have started with REW myself. Giving your background I would strongly recommend you take a closer look at Uli's Acourate! Coming from REW you will be more than pleased ;)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lbstyling on January 04, 2012, 08:15:58 am
Thats just awsome!!!!

I have no doubt that you wont regret it.

Does the plan include active speaker setup (crossovers/multiple channels outputting the same audio)??
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lbstyling on January 04, 2012, 08:36:18 am
And I thought it was only me  ;) Make them post here and this feature might get more priority from Matt, Jim, et all

I have started with REW myself. Giving your background I would strongly recommend you take a closer look at Uli's Acourate! Coming from REW you will be more than pleased ;)

much of the community that I mention are not aware of what J River really is over another player like wmp. I think a bit of marketing over that way wouldnt be a bad idea. The community is slowly coming round to the idea that computers can play quality audio, but theres a whole lot of marketing thats battling the change (cables for example) who pay big money for a good magazine review. Ill admit that at one point I was one of them.

Ive been on a mission to build the most acurate/best audio system for 15 years, (thats how I got here) most of my efforts are in building speakers and amplifiers though. I have £50k in drivers ready to build my ultimate active speaker. (it is a private cinema though)

 Proper EQ combined with JMLC profile 90 deg corner horns on beryllium compression drivers, and active crossovers = no early reflections, and eq'ed late ones + sub 0.2% distortion at reference level across the whole spectrum. Its audio nervana if I can do it.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 04, 2012, 08:51:50 am
Does the plan include active speaker setup (crossovers/multiple channels outputting the same audio)??

This is already possible with the Parametric Equalizer DSP.  I use it personally to bi-amp a subwoofer.

Please start a new thread if you'd like to discuss this area more.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: fhl on January 04, 2012, 02:02:12 pm
+1 for native convolution! :)

Frode
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 04, 2012, 09:38:35 pm
...encorage people to play with active speakers as a future improvement- creating the most technically accurate sound system possible, and saving thousands of dollars. This would render all high end processors obsolete!

This is working great right now and can only get better.

I just pulled a very expensive pre/pro with Audyssey Pro and two DEQX processors out of my rack and replaced them all with a home built HTPC. I develop the XO and correction filters with Audiolense. Their philosophy combines loudspeaker correction, room correction, and digital XO all into a single filter for each driver. Super quick and easy to use compared to anything else.

JRiver MC does all the digital processing including the ConvolverVST plugin for the FIR filters. Then straight to my 16 channel DAC over USB. Then directly into the power amps. Digital internal volume control with JR Media Center works perfectly.

You can go nuts with multiple room measurements, target response curves, different bass management strategies, all in software.
Ready for prime time now! The final missing piece for set-up of 7.1 systems with active XO just came in build 17.0.62 of MC.

I've been waiting a long time for this solution to be available and it was lots of fun to pull it all together just as all the pieces were ready.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 05, 2012, 03:10:17 am
This is working great right now and can only get better.

I just pulled a very expensive pre/pro with Audyssey Pro and two DEQX processors out of my rack and replaced them all with a home built HTPC. I develop the XO and correction filters with Audiolense. Their philosophy combines loudspeaker correction, room correction, and digital XO all into a single filter for each driver. Super quick and easy to use compared to anything else.

JRiver MC does all the digital processing including the ConvolverVST plugin for the FIR filters. Then straight to my 16 channel DAC over USB. Then directly into the power amps. Digital internal volume control with JR Media Center works perfectly.

You can go nuts with multiple room measurements, target response curves, different bass management strategies, all in software.
Ready for prime time now! The final missing piece for set-up of 7.1 systems with active XO just came in build 17.0.62 of MC.

I've been waiting a long time for this solution to be available and it was lots of fun to pull it all together just as all the pieces were ready.



...and the results? We want results!  ;D

I agree on the comment regarding going nuts with multiple measurements (which is a necessity in my room!) and target curves. But fun, even if it makes me a little tired in the morning.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 05, 2012, 11:34:08 am
Matt,

a good set of links regarding this topic and its implementation (FFT) is to be found here: http://convolver.sourceforge.net/links.html
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 05, 2012, 02:51:18 pm
I have the internals of a native convolution engine working.

Some points of interest:

.

Definitions:
I'm trying to use the same terminology as Convolver to minimize confusion.


I still have to work out a user interface and reading of convolver text configuration files, so it might be a little while before we have anything to release.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on January 05, 2012, 03:13:56 pm
  • Filters can be any sample rate (so one high sample rate, high precision filter can be used for all sources)
Does this mean we would need to set all sources to resample to one rate, or that you (JRiver) can use one filter and extrapolate what should be used for other sample rates?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 05, 2012, 03:26:05 pm
Does this mean we would need to set all sources to resample to one rate, or that you can use one filter and extrapolate what should be used for other sample rates?

You would take one high-quality measurement and create a single high-quality filter.  It would then be used for all sample rates.  There is no performance penalty (other than DSP startup time) and no real-time resampling of the input would be needed.

I can't understand why you would want to do this any other way.  What's the purpose of making different measurements at different / lower sample rates?  A high sample rate measurement contains all the information (and more) that a low sample rate measurement would contain.

If I'm missing some wrinkle on this, please let me know.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 05, 2012, 03:59:39 pm
Hello Matt,

your report looks good, better than my own experiences :-)

Anyway I like to say that a filter samplerate conversion has to be done carefully. In case of a low to high samplerate conversion: how do you handle the stop band area, especially above fs/2 of the lower samplerate? You need to remove the stopband.
In case of high to low samplerate conversion: anyway there will be the brickwall filter influence.

Typically measurements result in filters with lower samplerates. I do not know e.g. how to make a recording with 192 kHz where you get reliable information from microphone and loudspeaker regarding frequencies up to the possible 96 kHz (fs/2). Usually microphones like ECM8000 stop at 20 kHz very quickly.

Another point: IMO it is necessary to allow the partition size to be defined as a parameter. With multiple filters the CPU load can get quicky higher. So a bigger size, e.g. 8192 or 16384 can help a lot. An alternative is to analyze the capability of a CPU and to optimize the setup like fftwisdom (library FFTW) tries to do.



Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 05, 2012, 04:35:23 pm
Sample rate and frequency are two different things. A sine sweep at very high sample rates does not mean you microphone needs to record up all the way to fs/2. A 96kHz freq/impulse response measurement will be recorded only up to somewhere above 20kHz (Audiolense recording was up to ~25kHz).

One downside of making high sample rate sine sweeps is a reduced S/N ratio. If it has any practical negative consequences, I don't know.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 05, 2012, 04:43:51 pm
I have the internals of a native convolution engine working.

Some points of interest:
  • All processing is 64bit
  • Any number of paths, targetting any input or output channel, is supported
  • All FFT / iFFT evaluation is lazy so only run when necessary
  • Filter files can be in any format supported by Media Center (.wav, .ape, .flac, .mp3, 16bit, 32bit, etc.)
  • Partitioning is used to avoid latency (equal length partitioning for now, maybe unequal length someday)
  • Latency is handled automatically so lip-sync for video works without additional user configuration
  • Filters can be any sample rate (so one high sample rate, high precision filter can be used for all sources)
  • Handles flushing nicely so the tail of the last song isn't heard when playing a new song
  • Handles volume attenuation for clip protection automatically

.

Definitions:
I'm trying to use the same terminology as Convolver to minimize confusion.
  • Path: a single convolution effect consisting of an input channel, filter, and output channel
  • Filter: the correction / convolution used by a path, normally an impulse file


I still have to work out a user interface and reading of convolver text configuration files, so it might be a little while before we have anything to release.

This is nothing less than amazing. Less than a couple of weeks after the initial request, Matt has already dug into the matter quite deeply and have a suggested solution! Now, there may be quite some work still before there is a proven, working implementation of it, but I am impressed and utterly grateful for this.

Question regarding filter files. In Convolver, there is a number of ways you can set up your filter. My preferred way is to have one wav filter file with sequences for each channel (total of 15 channels for 7.1 audio because of XO between 7 channels to two subs), which is read an interpreted via a config file. The structure of this file is documentet at http://convolver.sourceforge.net/config.html (http://convolver.sourceforge.net/config.html).
Have you been thinking along the same lines, or will us old Convolver users need to restructure our filters, e.g. divided into one file pr channel? What are your thoughts on using a config file similar to Convolver?


EDIT: Nothing more than amazing replaced by "nothing less than amazing". English is not my native language....
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on January 05, 2012, 04:54:11 pm
I have the internals of a native convolution engine working.

Some points of interest:
  • All processing is 64bit
  • Any number of paths, targetting any input or output channel, is supported
  • All FFT / iFFT evaluation is lazy so only run when necessary
  • Filter files can be in any format supported by Media Center (.wav, .ape, .flac, .mp3, 16bit, 32bit, etc.)
  • Partitioning is used to avoid latency (equal length partitioning for now, maybe unequal length someday)
  • Latency is handled automatically so lip-sync for video works without additional user configuration
  • Filters can be any sample rate (so one high sample rate, high precision filter can be used for all sources)
  • Handles flushing nicely so the tail of the last song isn't heard when playing a new song
  • Handles volume attenuation for clip protection automatically

.

Definitions:
I'm trying to use the same terminology as Convolver to minimize confusion.
  • Path: a single convolution effect consisting of an input channel, filter, and output channel
  • Filter: the correction / convolution used by a path, normally an impulse file


I still have to work out a user interface and reading of convolver text configuration files, so it might be a little while before we have anything to release.

Matt, this is amazing and talk about fast!!  Wow.  Good stuff.

-Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 05, 2012, 05:06:04 pm
Question regarding filter files. In Convolver, there is a number of ways you can set up your filter. My preferred way is to have one wav filter file with sequences for each channel (total of 15 channels for 7.1 audio because of XO between 7 channels to two subs), which is read an interpreted via a config file. The structure of this file is documentet at http://convolver.sourceforge.net/config.html (http://convolver.sourceforge.net/config.html).
Have you been thinking along the same lines, or will us old Convolver users need to restructure our filters, e.g. divided into one file pr channel? What are your thoughts on using a config file similar to Convolver?

I think we'll try to just support Convolver configuration files to start with.

We might end up with our own format (or package of everything in a single ZIP package) later.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 05, 2012, 05:17:16 pm
Anyway I like to say that a filter samplerate conversion has to be done carefully. In case of a low to high samplerate conversion: how do you handle the stop band area, especially above fs/2 of the lower samplerate? You need to remove the stopband.
In case of high to low samplerate conversion: anyway there will be the brickwall filter influence.

It uses our existing audio resampler, which has quite a good reputation, for the filter files.


Quote
Another point: IMO it is necessary to allow the partition size to be defined as a parameter. With multiple filters the CPU load can get quicky higher. So a bigger size, e.g. 8192 or 16384 can help a lot. An alternative is to analyze the capability of a CPU and to optimize the setup like fftwisdom (library FFTW) tries to do.

The partition size will automatically adjust with the sample rate to target an acceptable level of latency (say 50ms or 100ms).

I've also been playing with using 4 (or more) threads at a time.  It's a little tricky because partitions are such little bits of work that the overhead from starting and stopping the threads offsets the gains.  I think I'll have to let the worker threads sit idle between iterations so there's no create / destroy overhead.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lbstyling on January 05, 2012, 05:23:06 pm
Matt, this is amazing and talk about fast!!  Wow.  Good stuff.

-Jim

+1 awsome!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 05, 2012, 06:00:25 pm
+∞ for native convolution  :)

For those using (or thinking of using) JRiver and Audiolense, I wrote a series of blogs posts, including setup, configuration, and measurements.

Hope you don't mind a few links...

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-1

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-2

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-3

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-4

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-5

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-conclusion

Cheers, Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 05, 2012, 06:38:57 pm
One thing that would help me with this is if someone could send me a few simple impulse response / filter files.  All I have for testing now are echo examples like "concert hall" that aren't too impressive.

I'd like one that is just an equalization with no timing / phasing effects.  For example, a frequency correction filter for a speaker or headphone.

I'd also like one that makes no changes to make sure I have all the phasing correct.  Maybe this is just silence, but I'm not sure.

I'm matt at jriver dot com.

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 05, 2012, 10:39:48 pm
One thing that would help me with this is if someone could send me a few simple impulse response / filter files.  All I have for testing now are echo examples like "concert hall" that aren't too impressive. I'd like one that is just an equalization with no timing / phasing effects.  For example, a frequency correction filter for a speaker or headphone.

I can send you the config and wave filter files for my set-up with frequency correction only and with time and frequency domain correction. This is a somewhat "big" system with 37 filter paths in the config file. Crossover filters are included as well.

I'm setting up now with 48 kHz filters so no resampling with dvd or Blu-ray optical disk audio playback. Music will up-sample from 44.1 kHz. I can do higher frequency if you want to check processor load and latency.
The wave files might be large so I can send a link to my drop box. I'll be working on filters this weekend.

I would really like to see this work seamlessly with Audiolense.

PS. I highly recommend reading Mitch's blog linked a couple posts earlier.

Brad

(http://dl.dropbox.com/u/45539942/Theater.jpg)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 06, 2012, 03:00:53 am
I think we'll try to just support Convolver configuration files to start with.

We might end up with our own format (or package of everything in a single ZIP package) later.

Sounds great, thanks!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: flac.rules on January 06, 2012, 03:32:30 am
This sounds very interesting, continue the good work!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 06, 2012, 06:58:14 am
I have the internals of a native convolution engine working.

Some points of interest:
  • All processing is 64bit
  • Any number of paths, targetting any input or output channel, is supported
  • All FFT / iFFT evaluation is lazy so only run when necessary
  • Filter files can be in any format supported by Media Center (.wav, .ape, .flac, .mp3, 16bit, 32bit, etc.)
  • Partitioning is used to avoid latency (equal length partitioning for now, maybe unequal length someday)
  • Latency is handled automatically so lip-sync for video works without additional user configuration
  • Filters can be any sample rate (so one high sample rate, high precision filter can be used for all sources)
  • Handles flushing nicely so the tail of the last song isn't heard when playing a new song
  • Handles volume attenuation for clip protection automatically

.

Definitions:
I'm trying to use the same terminology as Convolver to minimize confusion.
  • Path: a single convolution effect consisting of an input channel, filter, and output channel
  • Filter: the correction / convolution used by a path, normally an impulse file


I still have to work out a user interface and reading of convolver text configuration files, so it might be a little while before we have anything to release.

WOW.

I am utterly grateful for your efforts! Count me in as lifetime JRiver supporter  ;)

The list of features is great and well thought out. Features like auto volume attenuation, auto delay for lip sync, being inline with JRiver channel mapping and flushing between songs/skips are great benefits compared to ConvolverVST and really show the potential of a tightly integrated convolution. When I first started this thread I wasn't as forward thinking as you show it here - KUDOS! Amazing work!

The main attraction for me (a lover of big numbers ;-) is the full 64bit double precision processing. So this means we finally have a full 64bit audio path where it counts the most - with complex digital filtering. So if you allow 64bit WAV files (mono per channel + multichannel) as filter we can have:

content -> audio decoder (16bit/24bit/32bit for lossy formats) -> JRiver audio engine (64bit) -> JRiver Convolution (64bit) -> Output (dithering to 16bit/24bit/32bit depending on audio interface)
FIR filter generating (eg. Acourate in 64bit) ->  export of filter impuls files (eg. 64bit WAV) -> ^ 


About different sampling rates: I understand that you are not resampling the content stream but the filter -> eg. 48khz content as input, loaded is a 96khz filter, you "resample" the filter file to 48khz before doing the convolution, right? Well, this is certainly a method to make it very easy for the user.
I used to do it the other way round - use a 96khz filter and resample any content to that sampling rate with JRiver. Your way certainly is much more elegant - not messing with the original stream.

Still I remain cautious. With Uli's Acourate I do one measurement (eg. in 48khz) and as final step of the process Acourate has the option to build filters at any given sampling rate - so basically Acourate is also resampling the filter before saving it. I am not sure if Acourate isn't doing a "better" job because it is "aware" of all the parameter involved (like Uli said, eg. brick wall filter influence - the problem is how to you deal with the band >20khz when you are up-/downsampling filters and how does this influence the filter (eg. introduce ringing)).

All DRC applications have the option to output filter at any given sampling rate. I would much prefer it (for the sake of piece of mind) that your Convolver allows automatic filter selection (like defining a workspace directory where the filter is loaded depending on the input stream sampling rate). Your idea idea about using one filter and resample it is certainly welcome and should also be an option.

While you are at it ;-) - A huge feature would be the option to define eg. 3 filter sets with on the fly switching between them. Successful DRC is an iterative try and error process - you build filter, you hear it with a variety of content and you compare it to filter with different parameter (like different target curves). Support for that process would be a huge benefit! This feature could also be used to assign different filter sets to different content. Like one with flat target curve for Stereo music content, and one with more bass emphasize for multichannel (movie) content.

I sent you test impulse filter by email.

THANK YOU VERY MUCH! 



Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markus_kr on January 06, 2012, 07:59:59 am
+1 for native convolution!
(Easy switching between filters while hearing would be great.)

You guys are doing a great job

markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 06, 2012, 08:49:04 pm
You can get an early look at the native convolution system using this build:
http://files.jriver.com/mediacenter/channels/v17/latest/MediaCenter170064.exe

This build and the new convolution system have not been tested extensively, so please be forgiving of any issues.

Both impulse response audio files and convolver configuration files are supported.

The user interface is basic.  The goal is first to get a solid engine running.  Then we'll focus on user interface and convenience issues.

There are a few features of convolver configuration files like line delays and mapping a path to multiple outputs that are not supported.  We'll add these based on demand.  I haven't seen these features used in any of the samples I have received from users.

Thanks to everyone for their help.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 06, 2012, 11:36:33 pm
I got this from jdubs in email.  I'll reply here because it might help others as well:
Quote
Matt, first THANK YOU very much for developing this!  Its huge for audiophiles
everywhere.
 
Second, I can't get my Audiolense convolution file to work - at least the Status
indicates "Not Valid" after selected the WAV file via the Browse function.  I tried
ticking the Convolution DSP on and off via the left-hand menu.  I've attached it for
you to look at.  Its for a 6 channel active system (2, 3-way speakers).  Convolver
seems to work fine with it.
 
Thanks again,
jdubs

Thanks for the kinds words.

I'm able to load and use your WAV file.  It looks like it's splitting frequencies for tri-amping nicely.  Of course, it sounds terrible on my 2 and 8 channel test setups where I'm not tri-amping!

Make sure you're actually playing audio when you turn it on and off.  Try starting and stopping playback if it's not engaging.

There's some little bug with getting it to engage on a fresh install.  I saw the same thing.  We'll get it fixed next build.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 07, 2012, 12:00:15 am
Let me describe how volume is handled.

The system is designed so that the output RMS level of pink noise, rolled off after 22 kHz so inaudible frequencies don't distort the results, will match the input level. 

In other words, turning convolution on or off should result in the same apparent volume.

This volume is a constant, fixed adjustment applied to all channels.  This means you will have consistent output levels between plays, sources, sample rates, etc.

This approach is especially useful for A/B testing.

It may turn out that this is a bit too aggressive for some filters and Clip Protection will engage due to overflows.  In these cases, an option like "-6 dB to prevent clipping" would be useful.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 07, 2012, 12:47:25 am
Matt,

What sample rate do you recommend I use for the filters with your convolver?

Keep in mind: Comments from Rane professional audio about digital filtering of audio: ".....if you compare a typical 16-bit/96 kHz system against a 24-bit/48 kHz, you will pick the 24-bit system every time. If you have a choice, always choose more bits, over a higher sampling rate.......high resolution is key, and this requires more than 24-bit fixed-point or 32-bit floating-point."

You have provided a real improvement with 64 bit floating point processing. I believe 48 kHz should be fine. I understand that this is the sampling frequency of most all dvd and Blu-ray audio.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 07, 2012, 07:49:58 am
I have carried out some tests with the convolution engine. Therefore I have created a 24/96 wav with a logsweep signal, starting from 10 Hz to 48 kHz.
The frequency response of the logsweep (calculated from the 24 bit sweep) is

(http://img690.imageshack.us/img690/7048/logsweepresponse.png)

Then I have generated a highpass filter 250 Hz, Neville-Thiele, pretty steep, 96 kHz samplerate, 65536 taps, see

(http://img23.imageshack.us/img23/8616/xo250.png)

The sweep result convolved with the filter is shown in the next picture. It is just given as a reference. So the output signal of MC should ideally look like this.

(http://img542.imageshack.us/img542/4595/idealresponse.png)

The reality looks different. I have played the sweep by MC using the 96 kHz filter and the SPDIF ASIO output of my RME Fireface. The signal has been looped back by the soundcard function and directly recorded by Audition. This is the result:

(http://img521.imageshack.us/img521/5008/recordfilter96.png)

Already during the recording the unusual low frequency content in the stopband area was detectable.

Ok, then I have tested a crossover filter with the same specs but 44.1 kHz samplerate. Just to see the behaviour above 22050 Hz. The resulting frequency response is

(http://img23.imageshack.us/img23/7724/recordfilter44.png)

We can clearly see that now all frequencies above 22 kHz are suppressed. This means that a 96 kHz recording will be cut above 22 kHz. Interestingly the low frequency disturbances are lower compared to the 96 kHz filter.
IMO in case of a HD playback it would be better to use also a filter of the same samplerate.

I hope my test will help to understand the inherent traps of simple samplerate conversions. I  do not understand the reason for the low frequency behaviour, this may need further investigations.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 07, 2012, 09:34:58 am
Uli, thanks for the tests.

It seems to point to there being something not quite right in the convolution math.  I would hold judgement on the sample rate handling until we get it sorted.

I'm not clear how you're measuring the output.  Since convolution has a delay before it starts working when starting, could this explain your low frequency anomalies?

I tested by playing pink noise real-time, apply filters (like the ones you emailed me), and watch the results in 'Analyzer' in DSP Studio.  For example, here's how the low pass filter you mailed me looks:

(http://files.jriver.com/images/convolution_low_pass.png)

It looks pretty good to me.  And it looks about the same at 44.1 and 96, which indicates filter resampling is working well.

One thing I'm not clear about when doing frequency convolution is the number of FFT output elements to convolute.  When you do FFT on say 1024 PCM samples, you get half as many frequency elements.  So when you convolute in the frequency domain, do you convolute (1024/2), (1024/2)+1, or 1024 elements?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on January 07, 2012, 09:55:37 am
I got this from jdubs in email.  I'll reply here because it might help others as well:
Thanks for the kinds words.

I'm able to load and use your WAV file.  It looks like it's splitting frequencies for tri-amping nicely.  Of course, it sounds terrible on my 2 and 8 channel test setups where I'm not tri-amping!

Make sure you're actually playing audio when you turn it on and off.  Try starting and stopping playback if it's not engaging.

There's some little bug with getting it to engage on a fresh install.  I saw the same thing.  We'll get it fixed next build.

To follow-up, its working and sounds terrific!!  Thanks Matt!!   ;D

Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 07, 2012, 10:00:55 am
Matt,

IMO something is wrong. The lowpass I have sent you looks exactly like this:

(http://img441.imageshack.us/img441/7029/lowpass.png)

It looks much different compared to your picture. The yellow curve also shows some dips like the pictures I've posted before.
The comparison of the 44.1 and the 96 kHz filter with the lowpass does not give information about the behaviour at high frequencies. Because the lowpass suprresses the high frequency information by its own purpose. Whereas in my example the 44.1 kHz filter suppresses the high frequency information of a 96 kHz music track.

Convolution:
assume a convolution of 1024 samples with 1024 taps. The result has 2048-1 = 2047 samples. It must have as told by maths.
With FFT convolution you have 513 bins for the kernel and for the music package. If you simply multiply and transform back you get 1024 samples result and this is wrong.
So you need to apply zero tagging. Enlarge the kernel and the music package each to 2048 samples, apply zero padding, apply FFT. This give 1025 bin. Do the multiplication and the IFFT and you get a 2048 samples convolution result. resize to 2047 samples to be exact.
If you run a streamed convolution then you have to send 1024 samples to the output and save the following 1023 samples. With the next input package you repeat the process but add the saved samples to the 1024 samples prep'd for the next output.
You can read much better about how to do this at the free book at www.dspguide.com (IMO an excellent book about DSP, one of the best, easy to read, easy to follow and even with very good program examples).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Skogkatt on January 07, 2012, 10:06:33 am

I'm not clear how you're measuring the output.  Since convolution has a delay before it starts working when starting, could this explain your low frequency anomalies?


Matt,

just can play pink noise with the output set to disk writer, then you can display the FFT with an external SW.

I have found similar results as Audiovero at low frequency with an high-pass filter: only 40dB attenuation in the stopband.
Also, there is the same cutoff at 22.05kHz with pink noise sampled at 96kHz.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 07, 2012, 10:11:47 am
The yellow curve also shows some dips like the pictures I've posted before.

Real-time analysis of noise bounces around a little, so you sort of need to watch it.  Are you saying the fall-off doesn't look steep enough?


Quote
assume a convolution of 1024 samples with 1024 taps. The result has 2048-1 = 2047 samples. It must have as told by maths.
With FFT convolution you have 513 bins for the kernel and for the music package. If you simply multiply and transform back you get 1024 samples result and this is wrong.
So you need to apply zero tagging. Enlarge the kernel and the music package each to 2048 samples, apply zero padding, apply FFT. This give 1025 bin. Do the multiplication and the IFFT and you get a 2048 samples convolution result. resize to 2047 samples to be exact.
If you run a streamed convolution then you have to send 1024 samples to the output and save the following 1023 samples. With the next input package you repeat the process but add the saved samples to the 1024 samples prep'd for the next output.
You can read much better about how to do this at the free book at www.dspguide.com (IMO an excellent book about DSP, one of the best, easy to read, easy to follow and even with very good program examples).

I think I've got the zero-packing and buffer rolling correct.

What I think you're saying is that you should convolute ([FFT Size] / 2) + 1 elements.  In other words, this is the number of meaningful elements that come out of an FFT.


Quote
resize to 2047 samples to be exact.

Could you explain that?  I may have an off-by-one issue.

I do this:
FFTSize=1024
Input buffer like: [512 last input][512 current input]
FFT all 1024
Convolute (I think you're saying do 513 elements)
iFFT, use last 512 as output
Roll right side of input buffer to left side and add next 512 elements to right side
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 07, 2012, 10:13:06 am
I'm not clear how you're measuring the output.  Since convolution has a delay before it starts working when starting, could this explain your low frequency anomalies?
Matt,
I start the recording already before playback. And I stop if after the playback has finished. Therefore I also use some start stop markers (Dirac pulses) in the playback file. So I can also follow up the running recording.
As already said I use a loopback function of my RME soundcard. So the output signal is directly led to an input (internally) where I record the signal. As the signal does not leave the digital domain, there is no AD/DA-conversion in between and the full precision is reserved.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 07, 2012, 10:22:21 am
Matt,

the n x m convolution results in a length of n+m-1
So you have to ensure the same result length also by FFT convolution.
IMO the best way is to define some test signals and to check your program for the known result.
So the convolution of two signals with samples 1 0 0 1 will give the result 1 0 0 2 0 0 1. You can expand it to 1 (1022*0) 1 and you will get 1 (1022*0) 1 (1022*0) 1
Your FFT convolution must behave the same.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 07, 2012, 10:57:35 am
IMO the best way is to define some test signals and to check your program for the known result.
So the convolution of two signals with samples 1 0 0 1 will give the result 1 0 0 2 0 0 1. You can expand it to 1 (1022*0) 1 and you will get 1 (1022*0) 1 (1022*0) 1
Your FFT convolution must behave the same.

Good idea.  I'll do this next week.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 07, 2012, 11:31:06 am
Sample rate and frequency are two different things. A sine sweep at very high sample rates does not mean you microphone needs to record up all the way to fs/2. A 96kHz freq/impulse response measurement will be recorded only up to somewhere above 20kHz (Audiolense recording was up to ~25kHz).

One downside of making high sample rate sine sweeps is a reduced S/N ratio. If it has any practical negative consequences, I don't know.

Since my previous post has been totally ignored, and since there obviously are several members here with much deeper understanding than me (not too difficult), would anyone be willing to take the time to explain where I have misunderstood?  Thanks a lot :)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 07, 2012, 11:36:58 am
Since my previous post has been totally ignored, and since there obviously are several members here with much deeper understanding than me (not too difficult), would anyone be willing to take the time to explain where I have misunderstood?  Thanks a lot :)

There's just a lot happening in this thread.  I think what you said makes sense.

Even if your microphone doesn't work past 20 kHz, I would think you could still make measurements and correction files at a high sample rate like 192 kHz.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 07, 2012, 02:49:52 pm
There's just a lot happening in this thread.  I think what you said makes sense.

Even if your microphone doesn't work past 20 kHz, I would think you could still make measurements and correction files at a high sample rate like 192 kHz.

Thanks, Matt :-)

Regarding use of different channel configs - today I have separate filter files for these types of sources:

7.1 24bit/48kHz for movies (use JRSS to mix up everything to 7.1), XO for all speakers to two subs
2.0 16/44.1 for all ordinary music files, no XO, no subs
2.1 16/44.1 if I for some reason want to use XO and extra sub boost
7.1 24/96 for a few multichannel hirez music releases
2.0 24/96 for hirez music releases

There are two main reasons why I have all these configs 1) separate filters have up to now been required for different sample rates, and 2) I use different target curves for music and movies (something very similar to the B&K target curve for music and much more bass boost in movies...)

Reason 1) seems to be void with the native convolver, assuming all technical issues (if there actually are any) become verified as solved.

Reason 2) will still be needed it seems, as long as the ConvolverCST config file structure is used as input. I don't see any other way to switch between different target curve filters and between full range mains and XO setups. I can probably use the same filter for 2.0/16/44.1 and 2.0/24/96. But separate filters will still be needed for 2.1/16/44.1, 7.1/24/48 movie and 7.1/24/96 music.

I am not saying this should be changed, it works. But if there are better and fully automated ways to link source and filter, it would be great. Any good suggestions, anyone?



Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 07, 2012, 04:37:11 pm
Some points of interest:
  • Latency is handled automatically so lip-sync for video works without additional user configuration
I cannot get sync right. I use a 8ch input, to 15 paths and 8ch output, 132k taps. With ConvolverVST, the audio had to be delayed 1570ms as a fixed value. According to your statement above, Matt, I first set Audio delay to 0ms (Tools-Video-Advanced-A/V sync value). That did not work. I finally ended up delaying the video 1510ms, which worked for a brief period in one movie. After some time, it seems the delay changes. In another movie, the delay was close to, but no exactly 1510ms even from start.

What part am I missing here?

I can send the filter file and config file if that is of any help.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 07, 2012, 05:03:51 pm
You can get an early look at the native convolution system using this build:
http://files.jriver.com/mediacenter/channels/v17/latest/MediaCenter170064.exe

Fantastic!! - thanks so much Matt!

I downloaded and tried it out with a few listening tests, more detail later, but it certainly works.

However, for some tracks, I notice distortion on either very quiet classical tracks or on very "hot" mastered tracks.  Some occur on 44.1KHz samples and the classical was at 176.8KHz sample rates.

(http://i1217.photobucket.com/albums/dd381/mitchatola/convolution.jpg)

When I switch back to the old ConvolverVST, the distortion goes away.

Maybe I am doing it wrong?

Again, this is so awesome, I can't thank you enough!

Cheers, Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 08, 2012, 12:06:14 am
Fantastic!! - thanks so much Matt!

I downloaded and tried it out with a few listening tests, more detail later, but it certainly works.

However, for some tracks, I notice distortion on either very quiet classical tracks or on very "hot" mastered tracks.  Some occur on 44.1KHz samples and the classical w

There is now way yet to set a fixed lower level to avoid clipping I think. Do you have all your audio files analyzed by jriver. If so then enable volume leveling and clip protection in jrmc's dsp that should do away with most and maybe all of the clipping.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 08, 2012, 04:21:06 am
Since my previous post has been totally ignored, and since there obviously are several members here with much deeper understanding than me (not too difficult), would anyone be willing to take the time to explain where I have misunderstood?  Thanks a lot :)
I have not answered directly (despite I have caused the question) because the thread topic is a bit different.

But anyway:
Assume that you run a recording with 96 kHz and you use a logsweep 10 Hz to 236 Hz (arbitrary number). Of course you can do this. Can you use the result for a correction? Yes, you can do. But how do you correct frequencies above 236 Hz? You do not have any information. Just to suppress all higher frequencies is not correct for sure. In best case you can design a filter where all high frequencies pass 1:1. This means no correction at all above 236 Hz.
So what is the "logical" difference of 236 Hz compared to 20 kHz? IMO there is no one. You will find many discussions in the web about the importance of frequencies higher than 25 kHz. I have run a test with some people by applying a brickwall filter to a HD track. The people claimed a better sound without the brickwall filter. Now running a sweep just up to 20 kHz is like a brickwall filter.

The actual FIR filter samplerate conversion of MC shows also such a stopband behaviour. So clearly music information is taken away.

Of course with a good mic (my Earthworks M50 microphone is capable to record up to 50 kHz) you will get more information about the reality. The reality will typically show a tweeter with a falling frequency response at least above 30 kHz. But there is more information and the filter quality can be improved. Finally a good filter, IMHO, will correct up to a meaningful frequency range and then pass the music stream 1:1. If 236 Hz is meaningful then you can stop the logsweep here and design an according filter. Or 20 kHz. Whatever you like.  :)

In some way it is amusing to see audiophiles hunting for recordings up to 384 kHz samplerate but not knowing how the playback system behaves above 20 kHz. Does it make sense?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: SamuelMaki on January 08, 2012, 06:04:59 am
+∞ for native convolution  :)

For those using (or thinking of using) JRiver and Audiolense, I wrote a series of blogs posts, including setup, configuration, and measurements.

Hope you don't mind a few links...

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-1

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-2

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-3

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-4

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-5

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-conclusion

Cheers, Mitch

Impressing results, you got my attention:) However, audiolense is really expensive (for me...), so can someone suggest cheaper or free solution? Or can I use the free trial, do the measurings and build the correction filter, and save it and use it even when the trial has expired? Or must I buy the full version to be able to do all the tricks you mentioned on your tutorial?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 08, 2012, 06:12:25 am
can someone suggest cheaper or free solution?

I use the open source
http://drc-fir.sourceforge.net/
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 08, 2012, 07:41:22 am
I use the open source
http://drc-fir.sourceforge.net/

Just be aware that different DRC solutions may (or rather will) give different results. This is not because one is objectively more correct than the other, but the developers seem to have different philosophies on what is the correct way.

BTW, Audiolense can be downloaded and tested, and you will get a fully functional filter, but the filter will be attenuated 10dB (or was it 20dB?). I am not sure if you get a trial on the XO version. But at least the 2.0 version is available.

BTW 2: Note that even if you use open source software, you will need to have a sufficiently good low latency sine sweep generator/recording solution. And a calibrated mic and mic preamp (note that many mic preamps use tubes to get that colorful voice recording, not exactly frequency linear, are they...?). This means you will need to spend a few bucks on gear anyway.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 08, 2012, 07:44:16 am
A free logsweep recorder is www.acourate.com/AcourateLSR2Setup.exe
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mbare on January 08, 2012, 07:53:49 am
Reading this thread has been a pure pleasure. I just got myself an HTPC for Christmas and I'm running into a lot of the issues that Matt is currently working on fixing (I have standard 2-channel hi-fi and I run Audiolense). Big thumps up for fixing this and looking forward to trying it.  :)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: JimH on January 08, 2012, 07:56:01 am

BTW 2: Note that even if you use open source software, you will need to have a sufficiently good low latency sine sweep generator/recording solution. And a calibrated mic and mic preamp (note that many mic preamps use tubes to get that colorful voice recording, not exactly frequency linear, are they...?). This means you will need to spend a few bucks on gear anyway.
We might buy a set or two and rent them for a week at a time.  Can you recommend good equipment?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 08, 2012, 07:57:00 am
Just be aware that different DRC solutions may (or rather will) give different results. This is not because one is objectively more correct than the other, but the developers seem to have different philosophies on what is the correct way.

BTW, Audiolense can be downloaded and tested, and you will get a fully functional filter, but the filter will be attenuated 10dB (or was it 20dB?). I am not sure if you get a trial on the XO version. But at least the 2.0 version is available.

BTW 2: Note that even if you use open source software, you will need to have a sufficiently good low latency sine sweep generator/recording solution. And a calibrated mic and mic preamp (note that many mic preamps use tubes to get that colorful voice recording, not exactly frequency linear, are they...?). This means you will need to spend a few bucks on gear anyway.

I know and I think the choice of a proper target curve can be pretty subjective. I settled with drc on a flat one in combination with its psychoacoustic target computation described here:
http://drc-fir.sourceforge.net/doc/drc.html#htoc31

I agree on the mic-amp combo. I bought them calibrated together.

I have not tried the commercial ones...maybe someday. I am already very happy with the sound as it is :)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Sandy B Ridge on January 08, 2012, 08:07:25 am
We might buy a set or two and rent them for a week at a time.  Can you recommend good equipment?
That's a really good idea.

Just thinking about it - a combined mic/amp/adc set would need to be calibrated wouldn't it? Since the adc can also presumably have it's own non-linearity. Does anyone do a USB fully calibrated mic/amp/adc for example? Or are adc's usually not much of a problem?

Renting out spectrometers for screen calibration at the same time would be good too!

SBR

PS: I guess shipping them to Europe wouldn't be very cost-effective!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lasker98 on January 08, 2012, 10:29:37 am
Here's a link to the mic/preamp setup sold through Audiolense (you have to go into "Shop", then scroll down to bottom of list):

http://www.juicehifi.com/index.html

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: candycane on January 08, 2012, 11:16:48 am

BTW 2: Note that even if you use open source software, you will need to have a sufficiently good low latency sine sweep generator/recording solution. And a calibrated mic and mic preamp (note that many mic preamps use tubes to get that colorful voice recording, not exactly frequency linear, are they...?). This means you will need to spend a few bucks on gear anyway.

I'm not sure I understand this - are saying that, in addition to a good soundcard and calibrated microphone and amp (for recording), we need a function generator as well?  Does the function generator have to be separate piece of hardware, or is this capability provided in software built into some or all packages like Audiolense and REW?

For boobs like me with more interest than expertise, could an expert create a comprehensive and detailed list of every single software and hardware component needed for a complete solution for DRC with JR and its new convolver?  thanks very much.

I think this is very exciting  - this offers me the biggest chance for a major improvement in sound since I got my first real stereo in the 80's!  Looking foward to a rental solution!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: SamuelMaki on January 08, 2012, 11:19:04 am
I use the open source
http://drc-fir.sourceforge.net/
Thanks for that:) Is it only cmd-based, or is there some GUI for it? Also, can it support 5.1 sound? I have already microphone (came along with my Yamaha rx-v3900, is it good enough?)... I wonder also, if I have already done DRC, when I use Yamaha´s microphone based room correction? If so, does that software do better job in sound quality (and 64-bit prosessing via JRiver)... Sorry being n00b, but english isn´t my native language so I have maybe misunderstood something (again:()

E: Yamaha calls that microphone-system YPAO (I do not know what it really means).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 08, 2012, 11:28:07 am
We might buy a set or two and rent them for a week at a time.  Can you recommend good equipment?

I can only recommend what I am using myself:
Analog audio PCI-card in/out: LynxTwoB (2ch in/6ch out) http://www.lynxtwo.com/ (http://www.lynxtwo.com/)
Calibrated mic+preamp: BfAkustik http://www.juicehifi.com/no/index.html (http://www.juicehifi.com/no/index.html) (It can be procured directly from BfAkustik as well)

Linearity of the DA/AD should not be a concern for many soundcards. The Lynx is specified to +/-0.05dB 20Hz-20kHz @ 44.1kHz sample rate. A few, like my old m-audio mobile pre, is supposed to be significantly non-linear though. It is also important to minimize latency. Using in/out on the Lynx does that. You really need to know what you are doing if you produce the sine sweep with one audio device and records with another, so having the sound generator and recorder on the same clock removes the chances of getting that part of the measurement wrong (one reason why I chose Lynx).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 08, 2012, 11:32:56 am
I'm not sure I understand this - are saying that, in addition to a good soundcard and calibrated microphone and amp (for recording), we need a function generator as well?  Does the function generator have to be separate piece of hardware, or is this capability provided in software built into some or all packages like Audiolense and REW?

For boobs like me with more interest than expertise, could an expert create a comprehensive and detailed list of every single software and hardware component needed for a complete solution for DRC with JR and its new convolver?  thanks very much.

I think this is very exciting  - this offers me the biggest chance for a major improvement in sound since I got my first real stereo in the 80's!  Looking foward to a rental solution!

You need a function generator, and some applications (e.g. Audiolense) has its own sine sweep generator. Audiolense has its own room response step-by-step procedure, and sends a sine sweep (preferably with ASIO) to your audio gear, and records the result. As stated in my previous post, it is difficult to get the timing right if you use two different devices for analog out and analog in. Preferably, you should use a device with both inputs and outputs.

One free alternative (REW), also has that if measuring room response and playing around with PEQ is what you need.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 08, 2012, 11:37:32 am
Thanks for that:) Is it only cmd-based, or is there some GUI for it?

This is an easy step by step guide to generate filters with drc:
http://inguzaudio.com/measurement/
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 08, 2012, 11:48:20 am
There is now way yet to set a fixed lower level to avoid clipping I think. Do you have all your audio files analyzed by jriver. If so then enable volume leveling and clip protection in MC's dsp that should do away with most and maybe all of the clipping.

Thanks.  I don't have my files analyzed by jriver.  The distortion, which sounds like when you are tuning in a radio station that is just off center tune, occurs during quiet music passages as well.  The screen shot that I included in my orginal post shows a peak level of 1%, and I could hear distortion riding with the music at this very low level, so it is not clipping.

Oddly, the distortion occurs during very load passages and very soft passages, but not noticeable for the bulk of rock music I listen to...

Cheers, Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: candycane on January 08, 2012, 12:25:18 pm
Trumpetguy, I think I get it: a simple and robust solution would include a software package that could generate the sweeps and analyze results, and the hardware would involve a  soundcard or external soundbox whose input(s) would connect to the microphone and the outputs would connect to one's home theater.  So the software package would send out the signal though the outputs of the sound card or box, and the microphone would pick up the results, and the software package would analyze what it sent out and received and do its thing.

If that's accurate (please correct me if not), then a rental solution that would involve the use of a soundcard installed inside a computer would seem problematic, but a solution that involved an external soundbox that connected to a bidirectional port on one's computer would seem more practical.  Which box or boxes on Lynx's website would seem most appropriate for 1) a two channel DRC solution, 2)a multi-channel solution (at least 5 channels, I think, but ideally enough to align with the actual number of channels in ones' home theater setup).  If nothing from Lynx is appropriate as an external box, are there others that would be?  thanks again.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 08, 2012, 12:43:43 pm
Trumpetguy, I think I get it: a simple and robust solution would include a software package that could generate the sweeps and analyze results, and the hardware would involve a  soundcard or external soundbox whose input(s) would connect to the microphone and the outputs would connect to one's home theater.  So the software package would send out the signal though the outputs of the sound card or box, and the microphone would pick up the results, and the software package would analyze what it sent out and received and do its thing.

If that's accurate (please correct me if not), then a rental solution that would involve the use of a soundcard installed inside a computer would seem problematic, but a solution that involved an external soundbox that connected to a bidirectional port on one's computer would seem more practical.  Which box or boxes on Lynx's website would seem most appropriate for 1) a two channel DRC solution, 2)a multi-channel solution (at least 5 channels, I think, but ideally enough to align with the actual number of channels in ones' home theater setup).  If nothing from Lynx is appropriate as an external box, are there others that would be?  thanks again.


The Lynx Aurora products are external, 8 or 16 channel I/O, and comes with two interfaces; internal expansion card with proprietary cabling and signalling in between, or with Firewire in/out. I am not sure why you need to go external? If not, the LynxTwoA, B or C is a very good solution at a much lower cost. A, B, and C versions are simply the balance between number of input and output channels, all have 8ch in total. A LynxTwoB would give you up to 6ch out, and two input channels for recording.

This is for analog out, either to an analog preamp or directly into power amplifiers. If you need to go via a receiver, the setup becomes totally different, and others will need to give advice on that.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 08, 2012, 01:53:45 pm
Playback of 2.0 audio 16/44.1 is clipping, sounds distorted even at low volumes.

EDIT: It seems on my arbitrarily chosen test tune, peak level hit 100% a minute or so into the song. Clip protection hits in, reducing level by 0.5dB. The tune builds up and keeps hitting 100%, and midway, it is attenuated by 2.8dB. This is seen on the new Audio path feature, excellent! In parts of the tune, before it is sufficiently attenuated, distortion is clearly heard (female, intense voice). Then there are parts without distortion.

On a different tune with just as much dynamics, it hits 100% peak level quite late, and Audio path does not display any attenuation before this happens. Once it hit Here, I could not hear any distortion. I doesn't mean it did not happen.

I believe the automatic attenuation needs some fine tuning so we do not need to worry about distortion. My music taste includes a lot of really dynamic music with long build-up periods. I really do not want to wait for distortion to happen when the track reaches its climax...

Then again, I realize that this is a work in progress, and I am again really, really grateful you are doing this! Thanks and kudos!

I really love the flushing of the "old" audio when starting a new track.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 08, 2012, 01:56:55 pm
If nothing from Lynx is appropriate as an external box, are there others that would be?  thanks again.

I use the external Lynx Aurora 16-VT with the LT-USB interface. It has variable analog gain, an ASIO driver, enough channels for digital XO and multiple subs, and can play and record simultaneously to make measurements with DRC software (and it sounds great). My HTPC needs neither an audio or video card.

Signal generators are not needed, the PC can generate the measurement sweeps and is included in most DRC software.

A microphone needs to be good in the time and frequency domain and very small in diameter to have the directional characteristics required to measure your room and all speakers in one position. I just compensate for the small microphone frequency directionality in my target response curve (aim the mic at the ceiling). The mic needs to be stable over time, and with temperature and humidity shifts. I use the earthworks M30 which has a very good impulse response (time domain response) for measuring for digital correction of rooms and loudspeakers. Rane makes a small affordable single channel preamp, the MS 1S that works well with it.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mbare on January 08, 2012, 04:11:36 pm
...
For boobs like me with more interest than expertise, could an expert create a comprehensive and detailed list of every single software and hardware component needed for a complete solution for DRC with JR and its new convolver?  thanks very much.
...

My set-up is probably as mini as it can be? It's an HTPC with an ASUS Xonar Essence STX soundcard and the HTPC runs Windows 7, AudioLense and J Media River. I bought Audiolense, the mic and the mic-amplifier from their website (www.juicehifi.com (http://www.juicehifi.com)). I haven't tried yet, but I think you can use the ASUS soundcard to both send the signal out and get it back in. If not, I will need an external soundcard.

What you need to do is use Audiolense to feed out an analog testsignal to your hi-fi-setup (through the amplifiers and the loudspeakers, in other words) that you then record with a microphone and send back to the HTPC that is running Audiolense. This is the measurement-part of the equation.

When you have run the test-signal you'll have a measurement of how your loudsspeakers behave in the frequency and time domain. You'll have to do some filtering on this, but Audiolense will help you with it (it's easy to understand). Then you can make a target curve, which is essentially drawing up a curve in the frequency domain for how you want your loudspeker to sound; i.e. flat from as low as it goes to as high as it goes or some dips and peaks or whatever. Then Audiolense will create a filter and save it to your harddrive.

Then; enter MC. With the convolution-engine they're building now, or (for the time being) Convolver VST, you either way have what you need for using the filter from Audiolense (which is a wav-file, if I remember correctly). You then point the convolution-thing to where you have stored your filter and voila! digital room corrected sound will pour out of your your PC and at the end; your speakers.

To try and sum it up: the measurement-part is in the analog domain, the room-correction is done in the digital domain. This means that you can't room-correct recordplayers or casettedrives without digitalizing them first and it also means that you will need some kind of DAC that your PC can feed a signal to at the end. This can either be an on-board souncard or an external DAC or varieties on this theme. This is, after all, Digital Room Correction, so the end result is a digital signal that has been corrected for the influence your room has on your sound (more or less, it can't solve all your problems).

Anyway, it's really quite easy once you get the hang of it, if you ask me. Audiolense as a program is easy to use, with the convolutionengine they're building into MC it will hopefully be really easy to use that as well and the results are impressive, if you ask me. I've been running Audiolense and DRC for 2.5 years now, and I've never looked back.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 08, 2012, 04:31:30 pm
However, for some tracks, I notice distortion on either very quiet classical tracks or on very "hot" mastered tracks.  Some occur on 44.1KHz samples and the classical was at 176.8KHz sample rates.

When I switch back to the old ConvolverVST, the distortion goes away.

Maybe I am doing it wrong?

I have a post describing the same thing. As Matt describes in some earlier post, the leveling method may be too aggressive for some filters. Maybe that is what you and me are experiencing. It would be useful to have some way to attenuate the output to avoid distortion. Preferably automated or as a fool-proof fixed value, I really do not want to be thinking of this during playback.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 08, 2012, 06:14:16 pm
I have a post describing the same thing. As Matt describes in some earlier post, the leveling method may be too aggressive for some filters. Maybe that is what you and me are experiencing. It would be useful to have some way to attenuate the output to avoid distortion. Preferably automated or as a fool-proof fixed value, I really do not want to be thinking of this during playback.

The distortion I hear sounds like static or crackling.

I made a before and after recording (30 secs each) of some classical music (low level) coming out of one of my speakers.

Here is the clean version using convolverVST:

http://soundcloud.com/mitchco/convolvervst

And using Convolver:

http://soundcloud.com/mitchco/convolver

Hope that helps.

Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BerntR on January 09, 2012, 09:09:53 am
Matt,

I think you should consider a clip monitor in the Convolver. A long term data catch, resettable whenever the users chooses to, and functionality that enables the user to adjust attenuation manually. Although some informed automatism with possible manual override would work too.

Some users will have shortage of gain in their system and would want to be set their system up with as little filter attenuation as possible, with the risk of occationally clipping. Others have more headroom and would aim for a more conservative setting where clipping is practically unlikely to occur.

In any case I will advice against any default amplification of the filters, as these are typically designed to avoid clipping while keeping the dynamic range as high as possible. The level matching should be done by attenuating the unfiltered music instead. There will be a lot of users who run their system at 0dB digitally and handle the attenuation in the analog domain.

Also, a new file format as you suggested for filter coefficients and channel routing information and what not is mostly welcome.  The config files that Sourceforge Convolver uses gets the job done, and I think you have made the right decision to support that format from startup as this will work for a lot of usages and also provide a smooth transition from whatever people are using today. But this structure is a bit fragile and messy, and a good, robust, user friendly solution should have everything in one file.

I share the concerns with regards to filter resampling. Ideally that should be taken care of as part of the filter design process. You should also be aware that a filter can be resampled with methods that can't be used with music, but gives better results, technically.

And equally ideally, the playback should be bit perfect at all sample rates except for the FIR filtering chosen & controlled by the user, and of course, attenuation for those who attenuate in the digital domain.

PS: This development effort seems to be heading in the right direction. Keep up the good work!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 09, 2012, 09:24:50 am
The distortion I hear sounds like static or crackling.

I made a before and after recording (30 secs each) of some classical music (low level) coming out of one of my speakers.

Here is the clean version using convolverVST:

http://soundcloud.com/mitchco/convolvervst

And using Convolver:

http://soundcloud.com/mitchco/convolver

Hope that helps.

Mitch

I tired a recording of the same Satie piece with and without volume normalizing and in both instances I can not hear any static like you have even on my headphones.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on January 09, 2012, 10:10:58 am
It is also important to minimize latency. Using in/out on the Lynx does that.
Why would the latency matter? If you change your buffer size wouldn't you still get the same measurement and generate the same filters?

I do like using the same device for measuring/playback. I have both a Steinberg MR816 (8 channels firewire) and UR824 (8 channels USB). I would highly recommend them for someone who wants one device for playback and measuring and doesn't need 16 channels for active crossovers.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 09, 2012, 11:02:43 am
Bernt, thanks for posting.

I think you should consider a clip monitor in the Convolver. A long term data catch, resettable whenever the users chooses to, and functionality that enables the user to adjust attenuation manually. Although some informed automatism with possible manual override would work too.

DSP Studio already has 'Clip protection' (on by default) at the lower left of the DSP Studio dialog to handle these cases nicely.


Quote
Some users will have shortage of gain in their system and would want to be set their system up with as little filter attenuation as possible, with the risk of occationally clipping. Others have more headroom and would aim for a more conservative setting where clipping is practically unlikely to occur.

In any case I will advice against any default amplification of the filters, as these are typically designed to avoid clipping while keeping the dynamic range as high as possible. The level matching should be done by attenuating the unfiltered music instead. There will be a lot of users who run their system at 0dB digitally and handle the attenuation in the analog domain.

This makes sense.  Normalization of the filter volume will be optional next build.


Quote
I share the concerns with regards to filter resampling. Ideally that should be taken care of as part of the filter design process. You should also be aware that a filter can be resampled with methods that can't be used with music, but gives better results, technically.

I wonder if such a resampler should just be part of the convolution engine in Media Center?


Quote
PS: This development effort seems to be heading in the right direction. Keep up the good work!

Thanks.  You keep up the good work on AudioLense as well.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 09, 2012, 11:13:15 am
I think the distortion will be fixed next build.  There was an issue with how many FFT items were being convoluted (see the discussion earlier with AudioVero).

An identity filter (WAV file of 1.0, followed by any number of zeros) is now bit-perfect at 32-bit output (and probably higher, but I didn't test).  This means that FFT -> iFFT stage is perfectly lossless, as expected.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 09, 2012, 11:55:05 am
I think the distortion will be fixed next build.  There was an issue with how many FFT items were being convoluted (see the discussion earlier with AudioVero).

Awesome!  Thanks so much Matt.

re: normalization and replay gain.  I too am hoping normalization will be optional.  After installation of filters, I manually set the (makeup) gain based on using the TT Dynamic Range meter VST plugin: http://i1217.photobucket.com/albums/dd381/mitchatola/TTDRMeter.jpg so that I am close to 0dBFS on my "hottest" mastered tune in my music library.  I handle the attenuation in the analog domain.

re: clip protection.  I take we can set clip protection off as we currently can today in convolverVST?

Thanks again for your work!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 09, 2012, 10:45:45 pm
I'm no expert on convolvers, but ConvolverVST has a tool to test for setting "partitions" to reduce latency or make processing more efficient & faster. Would that help here or does the new convolver work differently?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: barkerpusa on January 10, 2012, 07:51:33 am
+1 for native convolution engine.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 10, 2012, 12:46:38 pm
Why would the latency matter? If you change your buffer size wouldn't you still get the same measurement and generate the same filters?

Very good question. Come to think of it, as long as there actually is a buffer, there will be a latency. My buffer is 1024 samples, corresponding to 23.2ms latency. I would guess that the important factor is that the input and output is in sync, so somewhere in the signal chain the latency has to be taken into account. This would most certainly be easier if in and out runs by the same clock, and start/stop is exactly timed.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on January 11, 2012, 05:37:31 am
Hello,
I'm totally new to JRiver, uses foobar for a lot of years.
Bought acourate months ago and used it with convolvervst and foobar.

But the features and quality of JRiver are great, so I want to use the new convolver here.
I have full active speaker with 3 wav files generated with acourate including the active filtering.
How can I use this in JRiver?
I tried to use the txt file of ther convolverVST like read in this thread but there is no sound coming out of my rme fireface.
The output is routed to SPDIF out and with an loopback in the rme mixer routed to SPDIF in.

Here my configuration file:
Code: [Select]
192000 2 6 0
0 0
0 0 0 0 0 0
h:\acourate_Daten\aktiv\gut\Cor1S192.wav
0
0.0
4.0
h:\acourate_Daten\aktiv\gut\Cor1S192.wav
1
1.0
5.0
h:\acourate_Daten\aktiv\gut\Cor2S192.wav
0
0.0
2.0
h:\acourate_Daten\aktiv\gut\Cor2S192.wav
1
1.0
3.0
h:\acourate_Daten\aktiv\gut\Cor3S192.wav
0
0.0
0.0
h:\acourate_Daten\aktiv\gut\Cor3S192.wav
1
1.0
1.0

The Output is configured in JRiver to 5.1 channels, but when I start playback (stereo) it wantes to change it back to 2 channel output.
What I am missing?

Thanks for helping and thanks for this nice piece of software.
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 11, 2012, 01:54:42 pm
I did some extensive testing today.

I took my reference filter made with Acourate (export as 64bit fp) and loaded it with the new JRiver Convolution and ConvolverVST (using the same Convolver txt config file). Then I generated a Pink PN test signal with the latest REW revision and recorded the convoluted output with RTA (REW 5.0, calibrated mic). I switched between JRiver Convolution and ConvolverVST and tried different configurations (from Mono to 7.1, always with a 80Hz XO to the subwoofers).

Well - to my surprise there where different frequency responses with these two convolution options (see RTA screenshots attached). The difference is isolated to the XO freq band around 80Hz. I tried to confirm the results by watching a few demo scenes (bdmv's) and there is a difference to be heard - probably more than the frequency response RTA shot shows.

So the question is why a "bit-perfect" process like convolution results in different response using two different Convolvers? Does the internal 64bit processing of JRiver Convolution make such a difference? Are there still bugs in the JRiver convolution engine? Which one has the "correct response"? If you put a gun to my head I have to say I slightly prefer the sound of ConvolverVST with the movie test sequences. The RTA shot looks better with JRiver Convolution. Matt?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 11, 2012, 02:01:34 pm
The used Convolver config is:


48000 8 8 0
0 0 0 0 0 0 0 0
3.6 3.6 3.9 0 1.1 1.3 0 0.1
C:\EQ\Referenz-3db\Left-3_48.wav
0
0.0
0.0
C:\EQ\Referenz-3db\Right-3_48.wav
0
1.0
1.0
C:\EQ\Referenz-3db\Center-3_48.wav
0
2.0
2.0
C:\EQ\Referenz-3db\LFE-3_48.wav
0
3.0
3.0
C:\EQ\Referenz-3db\Left_Back-3_48.wav
0
4.0
4.0
C:\EQ\Referenz-3db\Right_Back-3_48.wav
0
5.0
5.0
C:\EQ\Referenz-3db\Left_Surround-3_48.wav
0
6.0
6.0
C:\EQ\Referenz-3db\Right_Surround-3_48.wav
0
7.0
7.0
C:\EQ\Referenz-3db\Subwoofer-3_48.wav
0
0.0 1.0 2.0 4.0 5.0 6.0 7.0
3.0


As you can see I use the delay feature (third line) and specify the channel delays in x.x ms. This is highly relevant for the XO to the sub (the sub delay is set with internal sub DSP) and different handling of those decimal delay parameters may be a reason for the difference?!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: JimH on January 11, 2012, 03:23:37 pm
I did some extensive testing today.

I took my reference filter made with Acourate (export as 64bit fp) and loaded it with the new JRiver Convolution and ConvolverVST (using the same Convolver txt config file). Then I generated a Pink PN test signal with the latest REW revision and recorded the convoluted output with RTA (REW 5.0, calibrated mic). I switched between JRiver Convolution and ConvolverVST and tried different configurations (from Mono to 7.1, always with a 80Hz XO to the subwoofers).

Well - to my surprise there where different frequency responses with these two convolution options (see RTA screenshots attached). The difference is isolated to the XO freq band around 80Hz. I tried to confirm the results by watching a few demo scenes (bdmv's) and there is a difference to be heard - probably more than the frequency response RTA shot shows.

So the question is why a "bit-perfect" process like convolution results in different response using two different Convolvers? Does the internal 64bit processing of JRiver Convolution make such a difference? Are there still bugs in the JRiver convolution engine? Which one has the "correct response"? If you put a gun to my head I have to say I slightly prefer the sound of ConvolverVST with the movie test sequences. The RTA shot looks better with JRiver Convolution. Matt?
Which build were you testing?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 11, 2012, 03:28:56 pm
The latest beta - 17.0.65
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on January 11, 2012, 03:34:51 pm
The Lion - Instead of RTA screenshots, you can save both as measurements (use the save button at the top middle of the RTA screen) and then use the Overlays feature in REW to overlay both measurements. You can also give one a different color and then it will be easier to see the difference.

Edit:  You don't need to do this for the screenshots you just did. I can see the difference easy enough. It is just a hint for the future.  :)

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 11, 2012, 04:21:30 pm
Without intent to start another "audiophile discussion" - there is a definite difference with the soundstage (which isn't reflected by any freq. response measurement) when switching between JRiver Convolution and ConvolverVST (same filter files, same config file, level is exactly the same, de-/activating the Convolvers on the fly while playing different content - multichannel and stereo). I prefer "the soundstage" I get with ConvolerVST, which seams to have more depth and be more natural.

The measured difference in freq. response in the XO band suggests that these two Convolution solutions deal differently with the "time domain". I would be very interested how build 17.0.65 does with AudioVero's sample filters - is it "bit-perfect" convolution with 64bit filter files?

For the time being I will keep using ConvolverVST.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 11, 2012, 05:08:13 pm
It seems you have the skills to do proper technical testing. Could you care - and would it be possible - to do the same comparison between foobar convolver and MC convolver and/or ConvolverVST in MC? Not completely sure what you would be proving, but if also foobar is different - which is used by quite a number of audiophiles - I would not be too concerned if there are a new kid on the block that is a bit different from the older ones. Assuming the math and numerics are correct and correctly implement, who's to judge (and even prove) which gives the more correct result? And then I mean the more technically correct result. Let us not enter into beliefs and subjectiveness in this thread....
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 11, 2012, 07:24:36 pm
It seems you have the skills to do proper technical testing.

The proper way to test is with loopback of the output like AudioVero did in post 76 of this thread.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 12, 2012, 08:33:47 am
Matt would it be possible to add the convolver to the dlna server options just like the volume leveling? I would love to use it also when I send music to our squeezeboxes through whitebear with upnp.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: soundcheck on January 12, 2012, 09:48:43 am
Hi folks.

You might want to check out Alan Jordans nice tool to generate the filters based on DRC logic.

http://www.alanjordan.org/DRCDesigner/HelpFrameset.html

Enjoy.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 12, 2012, 01:41:16 pm
It seems you have the skills to do proper technical testing. Could you care - and would it be possible - to do the same comparison between foobar convolver and MC convolver and/or ConvolverVST in MC? Not completely sure what you would be proving, but if also foobar is different - which is used by quite a number of audiophiles - I would not be too concerned if there are a new kid on the block that is a bit different from the older ones. Assuming the math and numerics are correct and correctly implement, who's to judge (and even prove) which gives the more correct result? And then I mean the more technically correct result. Let us not enter into beliefs and subjectiveness in this thread....

Sorry, I don't have/use foobar (convolver). The nice thing about ConvolverVST and JRiver Convolution is that they use the same config file - so everything is - should - be the same. If there is a difference it should be in favor of JRiver with its 64bit internal processing.

I take it Uli "AudioVero" is doing some testing with the latest 17.0.65 beta.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 13, 2012, 02:17:22 am
The proper way to test is with loopback of the output like AudioVero did in post 76 of this thread.

I guess the best way would be to set the output of JRiver to "Disk Writer" and record the output stream directly as WAV. Then we would need a programm to show the statistical deviation on a bit level. Any ideas?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 13, 2012, 04:45:45 am
This morning I have done some thorough tests on the topic. Therefore I have created a 24 bit logsweep signal from 10 Hz to 48 kHz with a samplerate of 96 kHz.
MC has been set to feed the signal to spdif out of my Fireface soundcard, using ASIO. The soundcard has the nice option to route the output signal internally back to an input. Then I have recorded the input signal.

1. I have disabled all options and set the volume to 100%. So I expect a 1:1 bitperfect signal. The comparison between the original file and the recorded file (I have used Acourate to do it) shows that MC is playing bitperfect with one exception, see 2. So this means that without convolution we have a bitperfect playback.

2. The logsweep has a silent lead-in for 0.5 seconds. The logsweep also has a fade-in. So when the first small samples start the recording keeps silent until a certain threshold level is reached. This level is -36.12 dB.  It happens only the first time. I have created a double logsweep sequence and the second logsweep fade-in is ok. A logsweep recording by Acourate does not show this behaviour. So of course during this short period MC is not bitperfect. This needs to be confirmed by JR.

3. I have first tried to avoid the double logsweep by activating the repeat function. The recording shows a very strange behaviour between the repeated tracks. IMO this has to be investigated by JR. If necessary I can send pictures.

4. The little spectrum display of MC during the logsweep plaback is worth nothing. It is not ok as it shows just garbage. To be confirmed by JR.

5. Back to the basic test. First I have created a simple linear phase filter with 65536 taps all zero except taps 32768=1. This is just a delayed perfect Kronecker pulse. The recording of the logsweep including convolution has failed as the recorded level has been lower. There is the option in the convolution dialog 'Normalize filter volume (recommended)'. After unchecking the recording level is ok now and the comparison of the original signal with the recorded signal shows again a bitperfect behaviour ! (Exception see 2.)
JR may need to clearly document what happens if the normalization option is checked.

6. Then I have created a Neville-Thiele highpass fiter 250 Hz as another filter kernel and recorded again. The comparison also shows a correct behaviour. The comparison is a bit tricky. The test signal is a 24 bit wav. Convolved by MC with a 64 bit filter. Then signal then passes the soundcard with 24 bit resolution. Thus the convolution result has to be converted from float to integer. This requires some truncation or rounding. For the reference I have also convolved the original signal by the filter. As I do not know what happens inside MC I just have compared the recording with the convolved signal (double float). The difference is below 1 bit. Thus I conclude a perfect result with bit transparency also with convolution.

 :)

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 13, 2012, 06:22:58 am
2. The logsweep has a silent lead-in for 0.5 seconds. The logsweep also has a fade-in. So when the first small samples start the recording keeps silent until a certain threshold level is reached. This level is -36.12 dB.  It happens only the first time. I have created a double logsweep sequence and the second logsweep fade-in is ok. A logsweep recording by Acourate does not show this behaviour. So of course during this short period MC is not bitperfect. This needs to be confirmed by JR.

Double-check your Options > Audio > Do not play silence setting.


Quote
3. I have first tried to avoid the double logsweep by activating the repeat function. The recording shows a very strange behaviour between the repeated tracks. IMO this has to be investigated by JR. If necessary I can send pictures.

Double-check your Options > Audio > Switch tracks mode.  Cross-fading doesn't sound good with logsweeps ;)


Quote
4. The little spectrum display of MC during the logsweep plaback is worth nothing. It is not ok as it shows just garbage. To be confirmed by JR.

Use DSP Studio > Analyzer for accurate analysis.  The little spectrums in the player window are eye candy and designed to look neat, not be accurate with regards to frequency binning, linearity, etc.


Quote
5. Back to the basic test. First I have created a simple linear phase filter with 65536 taps all zero except taps 32768=1. This is just a delayed perfect Kronecker pulse. The recording of the logsweep including convolution has failed as the recorded level has been lower. There is the option in the convolution dialog 'Normalize filter volume (recommended)'. After unchecking the recording level is ok now and the comparison of the original signal with the recorded signal shows again a bitperfect behaviour ! (Exception see 2.)
JR may need to clearly document what happens if the normalization option is checked.

6. Then I have created a Neville-Thiele highpass fiter 250 Hz as another filter kernel and recorded again. The comparison also shows a correct behaviour. The comparison is a bit tricky. The test signal is a 24 bit wav. Convolved by MC with a 64 bit filter. Then signal then passes the soundcard with 24 bit resolution. Thus the convolution result has to be converted from float to integer. This requires some truncation or rounding. For the reference I have also convolved the original signal by the filter. As I do not know what happens inside MC I just have compared the recording with the convolved signal (double float). The difference is below 1 bit. Thus I conclude a perfect result with bit transparency also with convolution.

 :)

That all sounds good.  Does this mean we pass?

One little note is that using 16-bit input files will use 32767.0/32768.0 instead of 1.0 for the maximum, because the standard way to convert from 16bit to floating point is to do [value] / 32768.  This gives an effective range of -1.0 to 0.99997.

So using a 32-bit or 64-bit floating point filter would be a better choice if you are testing for bit-perfectness.  This way, you have a full -1.0 to 1.0 range.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 13, 2012, 06:23:48 am
 :)

That's great news, Uli. Thank you so much for the efforts!

So your conclusion is that JRiver convolution results in a bit-perfect output stream. Therefor its convolution engine cannot be "bettered" and any difference I hear between it and ConvolverVST is a) in my head (I need a doctor!) or b) ConvolverVST is not bit-perfect.

I will have to double-check if I have "Normalize filter volume" to off.

Thank you. And also a big THANK YOU to Matt for implementing a working solution within a week after the feature request! I will start thinking about what to wish for coming next Christmas   ;)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 13, 2012, 06:40:27 am
Double-check your Options > Audio > Do not play silence setting.

ok, I didn't know. It's a standard setting  :)

Double-check your Options > Audio > Switch tracks mode.  Cross-fading doesn't sound good with logsweeps ;)

ok, I didn't know. It's a standard setting  :)

Use DSP Studio > Analyzer for accurate analysis.  The little spectrums in the player window are eye candy and designed to look neat, not be accurate with regards to frequency binning, linearity, etc.

I only have reported because I've recognized it. :)

That all sounds good.  Does this mean we pass?
IMO yes (until something else is recognized :( ). But I still do not know what the normalization is doing (as it is a recommended setting). :)
So the convolution result is ok. Another topic is possibly the behaviour with threads and CPU load and multiple filters, e.g. 7.1 channels with multiwayspeakers  ;D

One little note is that using 16-bit input files will use 32767.0/32768.0 instead of 1.0 for the maximum, because the standard way to convert from 16bit to floating point is to do [value] / 32768.  This gives an effective range of -1.0 to 0.99997.
So using a 32-bit or 64-bit floating point filter would be a better choice if you are testing for bit-perfectness.  This way, you have a full -1.0 to 1.0 range.

I'm only using 64-bit float-filters !  Always. :)


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on January 13, 2012, 06:44:04 am
Nice, is there a plan for multichannel-convolving for a full-active system?

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 13, 2012, 06:49:12 am
So your conclusion is that JRiver convolution results in a bit-perfect output stream. Therefor its convolution engine cannot be "bettered" and any difference I hear between it and ConvolverVST is a) in my head (I need a doctor!) or b) ConvolverVST is not bit-perfect.
Even two bit-perfect convolvers can sound different. Do not forget the CPU load and the influence of threads. Also the influence of other processes like wlan, indexing, browsing, defragmenting and so on can influence the sound from minor effects to stutter, clcks, pop-outs and noise. The best way is to avoid all unneccessary CPU load.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Sandy B Ridge on January 13, 2012, 06:57:31 am
Even two bit-perfect convolvers can sound different. Do not forget the CPU load and the influence of threads. Also the influence of other processes like wlan, indexing, browsing, defragmenting and so on can influence the sound from minor effects to stutter, clcks, pop-outs and noise. The best way is to avoid all unneccessary CPU load.
Here we go again!   ::)

You'd better have your say before Jim returns tomorrow ;)

SBR
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 13, 2012, 07:01:52 am
But I still do not know what the normalization is doing (as it is a recommended setting). :)

It makes the RMS of pink noise (rolled off after the range of human hearing so high frequencies don't cause misleading results) of the output -6 dB from the input.  The -6 dB is headroom to avoid clipping.  Clip Protection will take care of anything past that.

It's possible your carefully crafted filters don't really need this.  But lots of test impulse response filters have huge total gains, and sound terrible (or even trigger 'Protect mode' and turn off the sound) without normalization.

Level matching between filters should also make it easier for a user to compare filters.


Quote
So the convolution result is ok. Another topic is possibly the behaviour with threads and CPU load and multiple filters, e.g. 7.1 channels with multiwayspeakers  ;D

I was testing with a 12 path filter at high samplerate and it runs many times real-time.  In other words, performance is quite good already.

However, it may be possible to increase the parallelism.  We'll think about this later when we're confident everything else is working well with convolution.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 13, 2012, 07:26:44 am
Matt, is the corrected convolver in the next build? When do you plan to release it? Just asking because it is Friday, and I would love to get rid of ConvolverVST before the weekend. :-)

A HUGE thanks to you for this fast response (can we take it you enjoyed the challenge?) and for the excellent result. Looking forward to functionality improvements.... There is a saying in Norwegian that "give a man your little finger, and he will grab the entire hand" (probably an awful translation)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 13, 2012, 08:02:47 am
Even two bit-perfect convolvers can sound different. Do not forget the CPU load and the influence of threads. Also the influence of other processes like wlan, indexing, browsing, defragmenting and so on can influence the sound from minor effects to stutter, clcks, pop-outs and noise. The best way is to avoid all unneccessary CPU load.

Uli,

"Even two bit-perfect convolvers can sound different." - quickly take cover! This sentence qualifies you for another -rather controversial - thread of mine : http://yabb.jriver.com/interact/index.php?topic=67759.0 ;-)

You probably have one of the best pair of ears in the business - did you do an actual listening test of JRiver convolution against your reference setup? Did you hear any difference? Regarding "soundstage" - is it possible that two bit-identical streams (like from two bit-perfect convolution engines) show rather obvious differences in the perceived soundstage? (here we go, I sound nuts in an audiophile way again ;-)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 13, 2012, 08:06:26 am
Matt,

how do you deal with partitions? ConvolverVST has this as manual setting. Do you automatically choose a proper setting based on the processor at hand (number of physical cores, HT)?


It makes the RMS of pink noise (rolled off after the range of human hearing so high frequencies don't cause misleading results) of the output -6 dB from the input.  The -6 dB is headroom to avoid clipping.  Clip Protection will take care of anything past that.

It's possible your carefully crafted filters don't really need this.  But lots of test impulse response filters have huge total gains, and sound terrible (or even trigger 'Protect mode' and turn off the sound) without normalization.

Level matching between filters should also make it easier for a user to compare filters.


I was testing with a 12 path filter at high samplerate and it runs many times real-time.  In other words, performance is quite good already.

However, it may be possible to increase the parallelism.  We'll think about this later when we're confident everything else is working well with convolution.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 13, 2012, 08:32:59 am
Matt stated in an earlier post that the user should not need to do any delay adjustments, as was requried when using ConvolverVST. With the version in .064, a/v did not automatically sync, and I did not succeed in setting a fixed video delay value either. 

How is audio/video sync handled?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markus_kr on January 13, 2012, 09:12:43 am
Hi Matt,

I´m also very keen on the next build. Testing it this weekend would be fantastic...

best regards
Markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on January 13, 2012, 11:44:58 am
Great news re: the bit-perfect "ness".  Looking forward to the next build.

Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: skeeterfood on January 14, 2012, 12:02:14 am
I just started looking into this, but based on the REW (Room EQ Wizard) forums the following hardware combinations seem to be the "best bang for the buck" I've found.  Any comments?

-John
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 14, 2012, 01:21:35 am
I've used the Art USB Dual Pre and a similar ECM8000 Mic from Behringer. Good entry level set-up.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 14, 2012, 03:17:38 am
I've used the Art USB Dual Pre and a similar ECM8000 Mic from Behringer. Good entry level set-up.

That exact combination was my entry setup as well. Recommended.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 14, 2012, 04:02:23 am
I have done some more extenisve testing with the latest 17.0.67 build (Convolution obviously hasn't changed since 17.0.65). I am aware that the following will probably cost me all credibility - especially after Uli's confirmation that since build .65 the convolution engine is working "mathematically correct".

As mentioned before Matt did a great job in supporting standard Convolver config files (especially relevant with multichannel/-way setups). I also do my channel delays there (Audiolense filter are channel delayed automatically - but I would still optimize subwoofer delay manually as this always was a little but relevant optimization in the XO band).

First of all lets stay objectively. I showed a measured frequency response using my calibrated mic with REW RTA. It shows a perfect match BUT the XO band is not the same. Therefor time alignment with ConvolerVST and JRiver Convolution is not the same. This should/must be the same as the same filters and config files are used, and during live measurement only the Convolution is switched. I optimized the subwoofer delay settings based on JRiver Convolution running so this shows a better result in this case (look at screenshots before - open in new browser tab and switch between tabs to easily see the difference). My first idea was that either ConvolverVST or JRiver Convolution doesn't support decimal numbers with delays (it is not specified on the Convolver homepage) and therefor they are internally calculating with different delays although the same config file is used.

BUT I have done pretty extensive listening tests over the last 3 days (so it is not a bad day syndrome). I also asked my wife to provide another - unaffected - point of view. PLACEBO is a very hard call in this case as the difference between those two convolutions is a) rather obvious in switching directly between them and b) I want my brains to like JRiver Convolution better (see the reason I started this thread ;-). What is the difference I believe to be hearing? Well - in typical audiophile terms - ConvolverVST sounds rhythmically "right", full bodied, smooth. The most immediate difference I hear is in the soundstage - ConvolverVST has more depth and more width, more spaciousness in general, the soundfield opens up. JRiver convolution sounds more analytical, "thinner", probably a little more focused but resulting in a "very" flat soundstage. Listening to it for a few moments after using ConvolverVST always gives me the impression that "something isn't right, about the rhythm, it doesn't sound "natural" to me. And yes, this is also based to double blind tests where the difference of the two options were identified in all case but one. Well, how many times have we heard words like that with snake oil, sponsored audio reviews. Well, I get no money for saying it and I know my credibility will be lost - so a lose lose situation for me. Although I decided to not withdraw from this because of the hope that Matt doesn't accept the verdict "mathematically correct and bit-perfect output" and actually LISTENS to the output. My big hope is that Uli "AudioVero" takes his time and makes a listening test against his reference system using the same filters. There is probably nobody that knows how (his) FIR-filters should sound better than him.

The difference for me between listening with ConvolverVST and JRiver Convolution is like using a very decent playback software (eg. JRiver ;-) and a rather poor one (eg. WMP) and switching between them. I am very sure you will find that the vast majority of "poor sounding" media players will still provide "bit perfect" output (given WASAPI or Kernel streaming  pugins). I really don't want to, but for the time being, I will continue to use ConvolverVST exclusively. Note: this is only the second JRiver Convolution revision (built within a single week) and I will continue to benchmark further developments.

IMHO
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: soundcheck on January 14, 2012, 04:36:45 am
@thelion

To eliminate processing related performance/sound degradation (as mentioned by Uli) I'd recommend to prepare and listen to an offline convolved reference audio file.

Just play that one back with all realtime convolver functions turned off to see how it sounds.


Two more important factors to know -- to be able to run a valid comparision -- is to figure out the amount of attenuation and/or dither applied to the stream by each of those convolvers.  
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 14, 2012, 01:00:41 pm

I also do my channel delays there (Audiolense filter are channel delayed automatically - but I would still optimize subwoofer delay manually as this always was a little but relevant optimization in the XO band).

BUT the XO band is not the same. Therefor time alignment with ConvolerVST and JRiver Convolution is not the same.

Are you saying that you "tweak the delays" in the ConvolverVST config file as described here: http://convolver.sourceforge.net/config.html (http://convolver.sourceforge.net/config.html)

<snip>A config file is a plain text file describing a filter by specifying:
<snip>the delays to be applied to each input and output channels (in milliseconds)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 14, 2012, 02:41:36 pm
Yes. I found the Audiolense delay settings to be not reliable - it doesn't provide the smoothest XO band. It may have to do that I run multiple subwoofers from one output channel. I change the subwoofer delay in realtime (using the DSP of my subwoofer - ALLDSP) while checking the response with REW RTA. If your sub doesn't have an integrated DSP I recommend that you use the Convolver config file as described. Audiolense delays are a good starting point but double checking may be beneficial.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 14, 2012, 03:52:42 pm
Yes. I found the Audiolense delay settings to be not reliable - it doesn't provide the smoothest XO band. It may have to do that I run multiple subwoofers from one output channel.

I use a separate correction for each sub. I do not seem to have your problem.
You could set your final delays into the Audiolense filters instead of the convolver config file by using this menu pick:

(http://dl.dropbox.com/u/45539942/AudioLense/delay.jpg)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 15, 2012, 03:04:46 am
The test AudioVero performed, does it confirm correct cross-over behaviour (I am not smart enough to get it from his post), or was it a proof that the convolution was correct for a filter without xo?

TheLion: As the two convolvers are both bit perfect but measurably have different XO behaviour, one should think must be difference(s) other than the numerical implementation of the convolution. You claim audible differences. It seems you have a setup with active xo in all channels (no full range speakers). If there is something not right with the way the new convolver handles xo filters, and it all ends up slightly or terribly wrong in the time domain, this should be audible.

To put it a bit differently: Is there a chance the new convolver (build .065 and up) is correct for full range speakers, but that there remains some problem with the xo?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 15, 2012, 04:42:17 am
The test AudioVero performed, does it confirm correct cross-over behaviour ... or was it a proof that the convolution was correct for a filter without xo?
So far I have understood that there is only one filter for each channel. This way I have checked the output of such a channel for correctness.

For multiway applications a channel will be split into several channels, each one convolved with its XO filter. But such a convolution needs to be configured properly as carried out by the Convolver or Brutefir config files. Is there already such a possibility with MC?

TheLion is running a multichannel application. Again here each channel has its own filter (which may contain a XO function too). The relationship between the channels is just given by delay. There are two ways to carry out a delay: either by a delay implemented in the filter already or by an additional delay parameter in a config file (see Convolver or Brutefir). In the second case the convolution function also need to be followed by a delay line (maybe also delay first, then convolution). I guess that the 2nd case is not yet done with MC.

Finally with mixed channel applications you definitely need a description for the desired configuration.

Summary: I just have checked the correctness of a single channel. If this would be not ok then you can forget all higher sophisticated implementations.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 15, 2012, 06:21:30 am
Uli,

My setup is multichannel and multiway. 7 speakers are high-passed at 80Hz XO, a subwoofer channel is low-passed at 80Hz and summed with the LFE channel (low-passed at 160Hz). All XO are Neville-Thiele 2nd order. For the 7 high-passed channels I use delays measured by Audiolense (filters are from Acourate which doesn't have multichannel measurement atm and therefor cannot set channel delays automatically), for the subwoofer channel I tried using the measured one from Audiolense and found it to be off by ~2-5ms. I apply all delays with the Convolver config file - the subwoofer delay is set directly in the DSP of my subwoofer.

See my post for the exact configuration: http://yabb.jriver.com/interact/index.php?topic=68828.msg464967#msg464967

Using this configuration file with the exact same filters with either ConvolverVST and JRiver Convolution results in different output in the XO band (~60Hz-100Hz). That's the objectively measured difference. Subjectively there is also a slight difference - JRiver convolution sounds a touch more "analytical and flat". Everyone is welcome to switch between those two convolution engines on the fly for themselves - your milage may vary.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 15, 2012, 06:31:34 am
I wonder about how you apply the Subwoofer-3_48 filter with MC. This means that MC has to collect all channels, filter them, add them and send them to the subwoofer output channel.
Is this already possible with MC? Then I may have missed a point as I only assume a single channel in - single channel out config right now.
What about the CPU load with VST Convolver or with MC convolution?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 15, 2012, 07:34:16 am
Uli,

Matt made sure that his MC Convolution is compatible with Convolver config files - so the XO channel routing is the same. JRiver is working correctly with multiway XOs as confirmed by my RTA measurement (which shows low-passed subwoofer and high-passed Left Front playing together).

I checked the CPU loads and JRiver convolution shows just a touch more demand (1-3% more CPU load in my case) - despite the internal 64bit fp processing. Both convolution engines aren't any significant load for my i7 clocked at 3.8GHz.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 15, 2012, 08:19:45 am
Ok, I see that I need to test a Convolver config in addition. I'll try this tomorrow.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on January 15, 2012, 05:21:04 pm
TheLion,
as a user of acourate , I have been using pristine space for convolution and plogue bidule for routing.
I would be interested to know how the LFE and sub channels are routed, and how you deal with multiple subs.

As I understand it, you have 2 different filters for the LFE channel and the low passed sub channels. These are mixed together. Where do the delays occur in the chain?

Do you have the one filter for the pair of subs? Would it be better to have a filter for each sub?

Finally, can MC's room correction dsp feature be used for the channel delays and routing, then the convolver would just be doing sigle channel convolutions?

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: skeeterfood on January 15, 2012, 09:40:32 pm
That exact combination was my entry setup as well. Recommended.

So what, if anything, is that setup lacking that caused you to upgrade?  I'm trying to minimize my start-up costs, but if I'm just going to want to upgrade, it might make sense to spend a bit more upfront.

Also, any comments about 16-bit 48Hz (ART) vs 24-bit 96KHz (Tascam)?  Will it make much of a difference in the measurements?

Finally, the system I'll be using this on consists of:

This is all in a DIY 12'x22' home theater.  Obviously none of this is high-end gear, again my focus is always bang-for-the-buck.  Do you think DRC will be worth the cost and effort on a system of this caliber?

Thanks!

-John
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 16, 2012, 01:57:27 am
Ok, I see that I need to test a Convolver config in addition. I'll try this tomorrow.

Actually I try this simple configuration:

Code: [Select]
96000 2 3 0
0 0
0 0 0
C:\AcourateProjects\Test\Highpass96.wav
0
0.0
0.0
C:\AcourateProjects\Test\Highpass96.wav
1
1.0
1.0
C:\AcourateProjects\Test\Lowpass96.wav
0
0.5 1.5
2.0

The idea is to set up a stereo system with a subwoofer. The stereo signal is filtered by a highpass for the main speakers.  The subwoofer channel shall get the sum of left and right channel (with gain 0.5) , filtered by a lowpass.

But running this onfiguration just results in an output for the main channels. The additional sub channel does not play.
The configuration of TheLion is even more complex. So I assume that the playback is not ok because of a wrong interpretation of the config file by MC.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 16, 2012, 12:50:36 pm
Uli,

I am not sure why your config file doesn't work - it may be that MC doesn't support your 3 channel output format. Please try a "faux 5.1 or 7.1" setup. You also have to set the channel configuration in the "output format" tab of DSP Studio. See my "stereo with subwoofer" config I use without any issue:

44100 2 8 0
0 0
3.6 3.6 3.9 0 1.1 1.3 0 0.1
C:\EQ\Referenz-3db\Left-3_44.wav
0
0.0
0.0
C:\EQ\Referenz-3db\Right-3_44.wav
0
1.0
1.0
C:\EQ\Referenz-3db\Subwoofer-3_44.wav
0
0.0 1.0
3.0

I double and triple checked if MC Convolution is correctly applying the config file - everything works out fine. With my full 7.1 configuration I get 7 high-passed speaker channels, a low-passed Subwoofer channel and the LFE channel. The configuration file is working great. 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 16, 2012, 01:02:54 pm
Hi John,

I upgraded the ART because I bought a Prism Sound Orpheus Firewire interface that comes with integrated mic preamps of reference calibre (8 channel DAC/ADC). 16bit/48khz will be fine for these kind of measurements. The Behringer mic is good value and if professionally calibrated will be everything you need. Differences between calibrated mics are very slight and only show themselves in the ability to measure really high frequencies well - >5khz.

Will it be worth it? I would risk the measurement equipment as these 100 Dollars are generally a very smart investment. You can use it to really set correct levels, analyse the room (eg. find the need for treatments) and confirm "good" speaker and subwoofer placement. And learn a whole lot about your room acoustics with applications like REW. This alone will be worth it. Then take measurements, send them to Uli (AudioVero) together with 2 test tracks of your choosing and hear for yourselve if the difference is worth it for you. Or try the free Audiolense demo. Let me asure you - the difference will be massive and the most recognizable upgrade you will ever buy. It is a true game changer.

I hope this helps.

So what, if anything, is that setup lacking that caused you to upgrade?  I'm trying to minimize my start-up costs, but if I'm just going to want to upgrade, it might make sense to spend a bit more upfront.

Also, any comments about 16-bit 48Hz (ART) vs 24-bit 96KHz (Tascam)?  Will it make much of a difference in the measurements?

Finally, the system I'll be using this on consists of:
  • A Dennon AVR-988 (http://usa.denon.com/us/Product/Pages/ProductDetail.aspx?PCatId=AVSolutions(DenonNA)&CatId=AVReceivers(DenonNA)&Pid=AVR988(DenonNA)) receiver
  • 3 av123.com ELT525T towers (http://www.hometheatersound.com/equipment/av123_elt25_5_0.htm) across the front
  • 2 pairs of Emotiva ERD-1's (http://emotiva.com/erd1.shtm) for the side and rear surrounds
  • A Boston Acoustics PV-600 (http://www.bostonacoustics.com/PV600-P293.aspx) 10" subwoofer

This is all in a DIY 12'x22' home theater.  Obviously none of this is high-end gear, again my focus is always bang-for-the-buck.  Do you think DRC will be worth the cost and effort on a system of this caliber?

Thanks!

-John
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 16, 2012, 01:38:24 pm
You also have to set the channel configuration in the "output format" tab of DSP Studio.
Thanks, the channel config does the job.
I do not know all the options, MC is quite new for me.

So I'll try tomorrow again to check the convolution result.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 16, 2012, 03:17:25 pm
In a coming build:
Faster: Convolution uses SSE3 in the convolution kernel when supported (gives about an 8% speed-up to the convolution engine on supported processors).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 16, 2012, 03:50:12 pm
In a coming build:
Faster: Convolution uses SSE3 in the convolution kernel when supported (gives about an 8% speed-up to the convolution engine on supported processors).


Thanks Matt. That is always welcome. Any chance we will see an AVX path for even greater performance gains on the latest CPU's as well?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 16, 2012, 10:42:55 pm
To TheLion:
How do you find the sound of the new JRiver convolver now?
Any improvement since your last comparison to ConvolverVST?

Listed features below all working? If so I'm ready to give it a try.

All processing is 64bit
Any number of paths, targetting any input or output channel, is supported
Filter files can be in any format supported by Media Center (.wav, .ape, .flac, .mp3, 16bit, 32bit, etc.)
Partitioning is used to avoid latency (equal length partitioning for now, maybe unequal length someday)
Latency is handled automatically so lip-sync for video works without additional user configuration
Filters can be any sample rate (so one high sample rate, high precision filter can be used for all sources)
Handles flushing nicely so the tail of the last song isn't heard when playing a new song
Handles volume attenuation for clip protection automatically
Convolution uses SSE3 in the convolution kernel
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 12:13:27 am
TheLion,
as a user of acourate , I have been using pristine space for convolution and plogue bidule for routing.
I would be interested to know how the LFE and sub channels are routed, and how you deal with multiple subs.

As I understand it, you have 2 different filters for the LFE channel and the low passed sub channels. These are mixed together. Where do the delays occur in the chain?

Do you have the one filter for the pair of subs? Would it be better to have a filter for each sub?

Finally, can MC's room correction dsp feature be used for the channel delays and routing, then the convolver would just be doing sigle channel convolutions?

Brad


Hi Brad,

You can see my subwoofer routing here: http://yabb.jriver.com/interact/index.php?topic=68828.msg464967#msg464967
I basically use ONE correction for my subwoofer (with an 3db tilted target curve just like all the other channels) but make 2 filters: one with an 80HZ low-pass (for crossover to the high passed speakers) and one with an 160Hz low-pass for LFE duties. These two summed together and routed to my sub output as you can see in the config file.

I apply the delays for all 7 speakers in the config file. For the subwoofer output the delay is set in the DSP of my subwoofer (ALLDSP in both subwoofers). I run both subwoofers off a single output. First step is to optimize the individual delay and level settings for each sub to get the most even output before DRC. Than one correction filter is calculated for both playing together. If individual filters work better depends on your setup. In my case the combined output is without any nulls/evens out my room modes and therefor works best. I use MC Room Correction to set the correct levels for all channels.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 17, 2012, 02:15:34 am
This morning I have carried out a test described by this configurtion:

Code: [Select]
96000 2 4 0
0 0
0 0 0 0
C:\AcourateProjects\Test\Filter96.wav
0
0.0
0.0
C:\AcourateProjects\Test\Filter96.wav
1
1.0
1.0
C:\AcourateProjects\Test\Filter96.wav
0
0.5
2.0
C:\AcourateProjects\Test\Filter96.wav
1
1.5
2.0
C:\AcourateProjects\Test\Test96.wav
0
0.25 1.25
2.0
C:\AcourateProjects\Test\Test96.wav
1
0.0
3.0

Most important is here the output channel 2. It is the sum of a logsweep left channel convolved with a lowpass and a logsweep right channel convolved with a highpass filter. Both convolutions are attenuated by factor 2. Then in addition the result is summed up with a quarter of the left and right logsweep channel convolved with a 1:1 filter. The result must be identical to the original logsweep. It is. This means again that the result IS BITPERFECT !

Thinking about testing the convolution with delays <> 0 and the setup of TheLion I see a weakness with the configuration syntax definition. The two lines at the top defining the delays for input and output do not allow to correctly adjust the delays in mixed channels configurations. So e.g. assume that a subwoofer gets the input of the front speaker channels but it is not located in the center but beside the right front speaker.  Then the front channel signal part played by the sub needs an individual delay for each channel to fit properly with the main speakers. This is not possible with the given configuration layout.
So IMO it is necessary to introduce two additional lines for delay definition. Something like

Code: [Select]
<filter filename>
<filter channel>
<input channel.weight 0> ... <input channel.weight n>
<input delay 0> ... <input delay n>
<output channel.weight 0> ... <output channel.weight m>
<output delay 0> ... <output delay m>

Example:
Code: [Select]
C:\AcourateProjects\Test\Test96.wav
0
0.25 1.25
1.3 0
2.0
2.58
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 17, 2012, 09:23:46 am
Thanks for the tests Uli.  It's good to get another passing grade :)

We're not currently supporting delays in the convolution configuration file.  It's no problem to add support, but I figured I'd wait to see if any real world users wanted this.  If so, someone please send me a sample that uses delays.  I'm matt at jriver dot com.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 17, 2012, 09:39:47 am
We're not currently supporting delays in the convolution configuration file.  It's no problem to add support, but I figured I'd wait to see if any real world users wanted this.  If so, someone please send me a sample that uses delays.  I'm matt at jriver dot com.
Matt,

a real world example already has been reported about by TheLion, see http://yabb.jriver.com/interact/index.php?topic=68828.msg465367#msg465367 and the configuration http://yabb.jriver.com/interact/index.php?topic=68828.msg464967#msg464967

Simply assume a 2.1 system with subwoofer located together with the right main speaker and also the listening position a bit more on the left side. No chance to get this correct at the listening place without introducing delays on the input channels.

Of course it is possible to put a delay into a filter. But with an output as convolution result of one filter but multiple inputs (which need to be delayed individually) there is no chance.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 09:57:08 am
Thanks for the tests Uli.  It's good to get another passing grade :)

We're not currently supporting delays in the convolution configuration file.  It's no problem to add support, but I figured I'd wait to see if any real world users wanted this.  If so, someone please send me a sample that uses delays.  I'm matt at jriver dot com.

Matt,

as Uli mentioned I am using delays in the convolution config file - this is a much more elegant solution than applying it directly with Acourate as manual optimization is quickly possible. I wasn't aware that this line (the third in the config file for output delays) isn't working at all. This definitly explains the measured difference in frequency response between using ConvolverVST and your convolution in the XO band. Also the perceivable difference between those two convolutions that I reported urlier is now explained -  if channel delay is not applied with your convolution but ConvolverVST does apply it my preference for latter is explained.

Could you please add support as specified in the Convolver config file schemata and also give the recommendation of Uli a thought? Please add support for delays in ms with at least one decimal. For the time being I will have to use your Parametric EQ or Room Correction to apply my channel delays.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 17, 2012, 10:41:25 am
Please I apologize.  I have to correct my statements about delay. The delay is just necessary to compensate different sound travel distances (it can also be achieved by the Room Correction option (though I do not clearly understand, why the room correction channels do not follow the channel mapping function on the output format option).  There is no need for a delay of input channels. Sorry if I have caused confusion. Anyway I also prefer a high resolution for delay adjustment (btw. Brutefir even allows to adjust subsample delays).


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 17, 2012, 10:51:05 am
Next build:
NEW: Added support for output delays in Convolution configuration files.

There are still a few unsupported features of Convolver configuration files.  I haven't seen them used, but just let me know if they're important to you:
Input line delays (different than output delays mentioned above)
Multiple output channels in a path (we support multiple input channels to one output channel, but not the other way around)
Output channel weights (this seems ambiguous / unnecessary since multiple paths can target an output channel, and you can set an input weight)

As for extending the configuration format, I would prefer to create a new convolution configuration format, probably using XML.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 11:39:17 am
Matt,

thank you very much!

Please note the following: We have to define how "output delay" is used. I use it as "inverse-delay". It is a distance setting for me. Let's take the first 3 lines of my configuration as example:

48000 8 8 0
0 0 0 0 0 0 0 0
3.6 3.6 3.9 0 1.1 1.3 0 0.1

The left surround channel (7th channel) shows 0 ms delay. That's means (in my case) it is the ->closest<- to the listening position. My Center channel (3rd channel) is 3.9 ms ->away<-. Ergo the speaker which is farthest away from main listening position.

In this case your convolution engine needs to apply 3.9ms delay for the left surround (#7) and zero delay for the center channel to compensate. That means the higher the delay value in the config file the less delay your convolution needs to apply to the given channel!

I cannot see a usage for input delays.
Multiple output channels in a path are very useful for multiway speakers with digital XOs.

I would very much appreciate an extended configuration format using XML!

Is the feature "Latency is handled automatically so lip-sync for video works without additional user configuration" already implemented? The last time I tried it it wasn't the case.

Thank you very much!

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 17, 2012, 11:54:48 am
Please note the following: We have to define how "output delay" is used. I use it as "inverse-delay".

That's not my reading of the spec.  Each number is a delay in milliseconds, not an inverse relative to the largest delay.

See the last example here:
http://convolver.sourceforge.net/configegs.html


Quote
Is the feature "Latency is handled automatically so lip-sync for video works without additional user configuration" already implemented? The last time I tried it it wasn't the case.

It works for me, correcting the latency due to convolution itself.  If your filters introduce a delay, you'll have to compensate for that manually.

You might make sure lip-sync is correct with convolution off.  Then test with convolution on.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 11:57:46 am
Matt,

I have added a screenshot from Audiolense showing the measured sound travel distances of my setup. You see the column "delay" is really the delay=distance of the speaker and NOT the delay that needs to be applied to the channel.

So my recommendation would be NOT to use the third line as "output delay" but as "distance setting in ms". This is in line with every receiver as well as your own MC room correction setting. You always enter the distance of the channel rather than the necessary output delay to compensate.  

Anyway - you just need to specify how the third line in the config file is interpreted by JRiver Convolution - as "necessary compensation delay" or "distance in ms"!?

Thank you!  
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 12:03:09 pm
That's not my reading of the spec.  Each number is a delay in milliseconds, not an inverse relative to the largest delay.

See the last example here:
http://convolver.sourceforge.net/configegs.html


It works for me, correcting the latency due to convolution itself.  If your filters introduce a delay, you'll have to compensate for that manually.

You might make sure lip-sync is correct with convolution off.  Then test with convolution on.

Matt,

you are certainly reading the spec right. I am aware of that. My suggestion is just to make life easier and being consistent with all other uses of channel delay - one always enters the channel distance. But if you say you stick to the "Convolver Spec" the math behind converting the channel delays into output delays is rather trivial ;-)

You just need to specify it the way it makes the most sense for you! My thinking is that when you introduce your own extended configuration file a "distance in ms" delay setting would be much more intuitive to use. And by not supporting all Convolver config features right now you already are "not sticking to the spec" - this way you can make a useful change ;-) IMHO
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 17, 2012, 12:03:38 pm
Since we're supporting Convolver configuration files, I think we should do it according to their specification.  My reading of the spec is that the third line should be a line delay in milliseconds, not a distance (inverse) in milliseconds.

If we later make our own spec, I agree that doing the inverse might be better.  Or even using a distance like we do in our Room Correction.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 12:10:29 pm
Since we're supporting Convolver configuration files, I think we should do it according to their specification.  My reading of the spec is that the third line should be a line delay in milliseconds, not a distance (inverse) in milliseconds.

If we later make our own spec, I agree that doing the inverse might be better.  Or even using a distance like we do in our Room Correction.

Simultaneous post ;-)

So we stick to the spec!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 17, 2012, 12:13:57 pm
btw Matt, how many decimals with the delay setting are supported by your convolution engine? What happens if I enter something like 3.85ms for output delay?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 17, 2012, 12:30:20 pm
btw Matt, how many decimals with the delay setting are supported by your convolution engine? What happens if I enter something like 3.85ms for output delay?

Any number of decimal places is supported.

The limit to precision will be one sample, or 1/[Sample Rate] seconds.

That means higher sample rate filters have a higher delay precision, although it probably doesn't really matter.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 17, 2012, 12:55:36 pm
IMHO we have also to think about active speaker systems, we should not forget them. (*)
So if e.g. a stereo signal feeds 3 channels for each side (this is of course also supported by Convolver VST) then it may become difficult just to talk about speaker distances. How do you measure the distance to the acoustic center of a midrange driver compared to a tweeter? By a folding ruler ?  ;D  Indeed we find "distances" or better delays of just one sample. That's why e.g. Brutefir is defining the delays in samples (and subsamples).

The best way is to let the user select the unit, either feet or meter or millisecond or samples. So he chooses what is best to his opinion.

We always have to delay the quicker sound (a tweeter or a closer speaker). So also IMO it is best to treat a delay by its definition and to avoid inverse delays.  :) Simply define the delay for the slowest unit/device/driver as 0 and refer to it with the other units/devices/drivers.

(*) PS: IMO this is also a good example why the strict channel assignment in the room correction option is confusing. At least for me. The active speaker channels have nothing to do with front, lfe, surround channel or back channel.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on January 17, 2012, 05:39:02 pm
Regarding delays, some subs and speakers have additional delay due to internal dsp.
Therefore the other speakers need additional delay.
 Hence their delay will no longer be directly related to their distance from the listener and trying to set the delay as a distance would be confusing.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 17, 2012, 09:21:40 pm
Since we're supporting Convolver configuration files, I think we should do it according to their specification.

Yes definitely. I do not wish to be debugging configuration files.

When you do change, which will happen some day,  just work out a specification with our suppliers of DRC and XO solutions. They are a great group to have on board and thanks to all of you for providing this functionality.

Convolver features as of build 17.0.68:

Convolver  JRivolver
yesyesSupports Convolver config file format Config Format (http://convolver.sourceforge.net/config.html)
noyesAll processing is 64bit
noyesFFT/iFFT evaluation is lazy (only run when necessary)
noyesPink noise RMS output automatically normalized to -6 dB below input
yesyesAny number of paths, targetting any input or output channel
noyesFilter files (impulse response) can be in any format supported by Media Center (.wav, .ape, .flac, .mp3, etc.)
yesyesPartitioning is used to reduce latency
noyesPartition size will automatically adjust with the sample rate
noyesLatency is handled automatically for lip-sync (not including filter delay)
noyesFilter files can be any sample rate (one filter can be used for all sources)
noyesHandles flushing nicely so the tail of the last song isn't heard when playing a new song
yesyesHandles volume attenuation for clip protection automatically (JRiver DSP clip protection used)
noyesConvolution uses SSE3 in the convolution kernel
yesyesOutput delays supported
yesnoInput line delays
yesnoMultiple output channels in a path
yesyesMultiple input channels to a path
yesyesInput channel weights
yesnoOutput channel weights
yes?yesBit perfect (limited testing by Uli Brüggemann)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 18, 2012, 11:37:35 am
I seem to have some processing issues:

2ch 16/44.1 2 paths in/out: Performance 13.3x real time (using SSE3), smooth playback
7.1 24/96 (also 24/48) 15paths in 8 channel out: Performance 1.0x (using SSE3), terrible glitches and frequent hick-ups. One of three CPUs peaks most of the time, average CPU load 30-70%.

This does not happen with the old ConvolverVST running with 8 partitions. Is my AMD athlon (benchmark ~1350) too weak? Is the new convolver this CPU intensive by design?

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 18, 2012, 11:49:51 am
I seem to have some processing issues:

2ch 16/44.1 2 paths in/out: Performance 13.3x real time (using SSE3), smooth playback
7.1 24/96 (also 24/48) 15paths in 8 channel out: Performance 1.0x (using SSE3), terrible glitches and frequent hick-ups. One of three CPUs peaks most of the time, average CPU load 30-70%.

This does not happen with the old ConvolverVST running with 8 partitions. Is my AMD athlon (benchmark ~1350) too weak? Is the new convolver this CPU intensive by design?

15 paths on 8 channels at 96 kHz all in 64-bit with an older CPU is probably just past the limit.

Would you mind zipping up your configuration and filter files and mailing them to matt at jriver dot com?  I'm interested to see how it performs on a newer CPU.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 18, 2012, 12:41:27 pm
15 paths on 8 channels at 96 kHz all in 64-bit with an older CPU is probably just past the limit.

Would you mind zipping up your configuration and filter files and mailing them to matt at jriver dot com?  I'm interested to see how it performs on a newer CPU.

You got mail.
In a way that is good news - I can justify some new procurements  ;) But with the ConvolverVST my computer was not breaking a sweat, as long as I used 8 or more partitons. Without partitions the computer would hang and eventually crash MC. Could you briefly explain what is more resource demanding now? And does the new way improve audio performance in any way?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: JimH on January 18, 2012, 02:14:36 pm
hulkss,
Thanks for the list.

Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Paulv on January 18, 2012, 07:05:34 pm
hello, hum first post here!
with convolver I use 32 bits float mono  PCM correction files, JR does not seem to accept my files
shall I change the extension to raw with no other change?

does JR support "empty" output channels like in convolver:
"Output channels that have no filter path associated with them will be fed with silence"
this is usefull to map channels to the right speaker (active XOver and multiamplification)
(I am sure there are other means to do that but I like having only one config files)

and congratulation for this new feature
Paul
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 18, 2012, 07:09:54 pm
with convolver I use 32 bits float mono  PCM correction files, JR does not seem to accept my files
shall I change the extension to raw with no other change?

What do you mean by "raw" files?  What extension?  It needs to be playable by Media Center, so WAV, APE, or FLAC would be good choices.


Quote
does JR support "empty" output channels like in convolver:
"Output channels that have no filter path associated with them will be fed with silence"
this is usefull to map channels to the right speaker (active XOver and multiamplification)
(I am sure there are other means to do that but I like having only one config files)

Output channels that aren't targetted by any paths get passed unchanged.  So if there's silence in, you'd get silence out.  If you had music in, you'd get the same music out.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Paulv on January 18, 2012, 07:17:43 pm
extension: .PCM
the kind used by denis sbraggion for room correction
what kind of file and extension should I use for 32 bits mono filters?
(sure I could use 16 bits wav files, but since all my computing of filters is 32 bits...)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 18, 2012, 07:41:43 pm
extension: .PCM
the kind used by denis sbraggion for room correction
what kind of file and extension should I use for 32 bits mono filters?
(sure I could use 16 bits wav files, but since all my computing of filters is 32 bits...)


I'm not familiar with .PCM files.  Do they have a header?

A 64-bit or 32-bit WAV (which is PCM data with a header) would work if you can convert.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Paulv on January 18, 2012, 08:10:27 pm
I believe .PCM files are headerless, 32 bits raw data, at least in convolver it works
I was not aware that .wav files could be 32 or 64 bits, (and audacity does not export to that format, I think) I will have to investigate
what is this .raw format that JRiver seems to support?
http://wiki.jriver.com/index.php/Audio_Formats
excuse my lack of knowledge
cheers from france
Paul
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Paulv on January 18, 2012, 09:02:33 pm
after investigation: yes audacity can export to wav, any format
thanks for your help
Paul
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 18, 2012, 10:34:32 pm
I seem to have some processing issues

I remember you said you were running 132k filter taps. Try half that. I noticed if I specify 65K taps in Audiolense I get 132k as reported by convolverVST, so I ask for 32k taps in Audiolense. Bernt is looking into it. We are using way more taps than necessary.

With high bit resolution in the convolver, 48k rate filters are plenty good too.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 19, 2012, 12:58:16 am
Number of taps
The number of taps or filter length defines the frequency resolution of the FIR filter. The resolution is samplerate/taps. So a 64k filter @ 44.1 kHz samplerate gives a frequency resolution of 0.6729 Hz. A 128k filter thus gives 0.336 Hz frequency resolution. The high resolution is definitely overkill for the mid to high frequency range but good for the low frequency range.
The high number of taps has in some way started with Brutefir by using long filters without compromise. I have customers using even 256k filters and they swear to have a better result in the bass range.
Another solution is using multirate filters. But splitting the frequency range in several bands also has its disadvantages, especially with phase correction.

Raw format
It simply means a headerless sequence of filter taps either in single or in double precision format. Typcally .raw or .pcm files are single precision files (32 bit float), whereas .dbl files are double precision files (64 bit float). So e.g. .dbl is the standard format of Acourate but it can also be converted simply to 32 bit or 64 bit wav files. Brutefir, Convolver or Inguz all allow raw filter formats.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 19, 2012, 02:01:47 am
I remember you said you were running 132k filter taps. Try half that. I noticed if I specify 65K taps in Audiolense I get 132k as reported by convolverVST, so I ask for 32k taps in Audiolense. Bernt is looking into it. We are using way more taps than necessary.

With high bit resolution in the convolver, 48k rate filters are plenty good too.

True, I have been in contact with Bernt about this, there is something strange about filter lengths in AL. I was informed he was looking into it and it should be fixed in AL 4.3.

Right here and now, I do not remember number of taps in my filter, I could test with a shorter one. My main room problems are in the bass region, and as AudioVero points out, higher number of taps give better resolution in the bass range.

EDIT: The strike-out text is simply wrong and gives the wrong impression of my AL filters. There is nothing wrong with them, I have been using them for two-three years. What the uncertainty is about is that I am not 100% if the latest AL version gives the wanted filter length or not, since there was an unhandled exception when generating a few filters. Normally, I would not care if the filter is 65k or 132k, so I simply picked a filter length that gave an filter file as output. As stated above, this exception thing is going to be corrected in the next AL build. Sorry for any misunderstandings caused by this.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 19, 2012, 02:35:36 am
A filter with 64 k taps or 65536 coefficients in double precision float has the file size of 65536 * 8 bytes = 524288 bytes = 512 kB. In single precision representation it has the file size of 256 kB. This is with a raw = headerless file. In case of another file format like e.g. wav there will be some more bytes. In case of compression like flac of course the file size will be smaller.

But typically all you need to know is the file size and the precision to know about the filter length. No scerets here. So I wonder about the trouble with filter lengths. Oh, theoretically a file may also contain filters for multiple channels. So you need also to know about the channel number. The 64 k example is valid for one channel.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 19, 2012, 03:18:09 am
A filter with 64 k taps or 65536 coefficients in double precision float has the file size of 65536 * 8 bytes = 524288 bytes = 512 kB. In single precision representation it has the file size of 256 kB. This is with a raw = headerless file. In case of another file format like e.g. wav there will be some more bytes. In case of compression like flac of course the file size will be smaller.
I have stored the filters as 32bit float. How would I know double or single? I can probably import the wav file into Matlab to analyse it.

No scerets here. So I wonder about the trouble with filter lengths.
No trouble really, just never thought of it. And there may be a mismatch between user choices and actually created filter length in AL in the current version. I don't know that, but there are indications. GUI issue, I guess.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 19, 2012, 03:31:39 am
How would I know double or single? I can probably import the wav file into Matlab to analyse it.
You can e.g. import the file as raw data file in Audacity. There you can select between PCM, single float, double float, little or big endian and so on. You will see the result directly and know what format makes sense.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: thomaspf on January 19, 2012, 02:34:02 pm
Just saw the convolver support announced your MC17 email.

A couple of years ago I pushed for a native VST host to get access to a stable convolver for Uli's Acourate. I have been using that for years and the term humbling that was used in an earlier post probably describes it best.

There is little point in spending mega $$ on electronics and speakers if the room interactions reduces the result to a mess. Initially my success was limited since my room was so bad. I spend some time with F. Alton's Master Handbook of Acoustics to get to a halfway balanced RT60 across the frequency and then a much longer time convincing my wife to get the acoustical elements integrated into our living room. After that and JRiver offering a VST host things went smooth.

Uli kept improving Acourate and the accuracy of my playback chain followed that evolution. I have tried all open source packages but I have found nothing that sounds as natural and transparent as Acourate. It is like the sounds snaps into focus and the timbre of voices and intruments is fully preserved. The price looks a bit high initially but I got the benefit of a trial correction impulse and when I saw that the correction has more impact than any multi thausend dollar electronics would have I figured it is definitely worth the price of admission.

So far I have been using Pristine Space which has worked well for me over the last couple of years but I will definitely try this out and see whether I can switch over. In fact I am in the process of building a system for my son and I will set it up with your convolver.

Cheers

    Thomas

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 19, 2012, 03:00:17 pm
For 2ch music the new convolver is working like a charm! That is GREAT, thank you so much  ;D

For multichannel music and movies and music my cpu seems to be too weak, forcing me to stick to ConvolverVST until either the new convolver has some feature reducing cpu intensity or I have set up a new htpc. Both are equally welcome!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 19, 2012, 07:49:27 pm
For multichannel music and movies and music my cpu seems to be too weak, forcing me to stick to ConvolverVST until either the new convolver has some feature reducing cpu intensity or I have set up a new htpc. Both are equally welcome!

I spent some time testing with your filter set.

I got the SSE3 going a little faster (about 5%), but you're probably still out of luck for 15 paths on a JRMark 1300 machine.  I think ConvolverVST is at an advantage here since it uses 32bit instead of 64bit precision.  That means it can use SSE to do 4 operations a cycle instead of 2 like 64bit allows.  It also means it's processing half as much memory.  However, I would hope most in this thread consider our 64bit pipeline worth the performance penalty (I do).

As a frame of reference, my i7 work machine runs your 15 path filter @ 96 kHz at about 5.7x realtime.  Since that's only really one of the four cores, it's just no sweat on a machine like that.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on January 19, 2012, 07:51:35 pm
However, I would hope most in this thread consider our 64bit pipeline worth the performance penalty (I do).

Heck yeah!!!   ;D

-Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 20, 2012, 02:53:06 am
I spent some time testing with your filter set.

I got the SSE3 going a little faster (about 5%), but you're probably still out of luck for 15 paths on a JRMark 1300 machine.  I think ConvolverVST is at an advantage here since it uses 32bit instead of 64bit precision.  That means it can use SSE to do 4 operations a cycle instead of 2 like 64bit allows.  It also means it's processing half as much memory.  However, I would hope most in this thread consider our 64bit pipeline worth the performance penalty (I do).

As a frame of reference, my i7 work machine runs your 15 path filter @ 96 kHz at about 5.7x realtime.  Since that's only really one of the four cores, it's just no sweat on a machine like that.

Thanks for testing. As long as there is a reasonable explanation for the increased cpu usage, I have no problems accepting that I such processing  would require relatively new hardware. After all, my AMD Athlon X3 cpu and motherboard are four years old, and I am looking at a watercooled i7 3.4GHz, new motherboard and 4x4GB RAM. Believe that will do.

The functionality of the new convolver + 64bit processing makes this a simple decision  ;D
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 20, 2012, 02:56:48 am
However, I would hope most in this thread consider our 64bit pipeline worth the performance penalty (I do).

In Audiolense, the user can specify 16int, 24int or 32float measurements. With the 64bit pipline in JRiver, is the lower bit depth of the DRC filter a bottleneck in any way?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: JimH on January 20, 2012, 08:14:39 am
I split some posts to a topic called Microphone measurements for convolution setup (http://yabb.jriver.com/interact/index.php?topic=69312.0)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 20, 2012, 08:17:36 am

 However, I would hope most in this thread consider our 64bit pipeline worth the performance penalty (I do).


Most definitely worth it. That was my whole point starting this thread. No taking shortcuts for the sake of performance please!

@ Trumpetguy : Until you get your HTPC upgrade simply reduce the filter resolution. I find that going from 131k to 66k tabs gives about 33% faster processing with JRiver Convolution. Try using 33k tabs with Audiolense.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 20, 2012, 09:24:11 am
@ Trumpetguy : Until you get your HTPC upgrade simply reduce the filter resolution. I find that going from 131k to 66k tabs gives about 33% faster processing with JRiver Convolution. Try using 33k tabs with Audiolense.

I will.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 20, 2012, 10:43:43 am
@ Matt


I have another feature request ;-)

Right now I have the following situation: I use 131k tab filters for each sampling rate (individual filter optimized by Acourate or Audiolense for each sampling rate give better results than one filter resampled by your engine - especially in high frequency response). I guess most Acourate/Audiolense users will generate individual filters for each sampling rate. So this is a common situation. With that I have two rather annoying problems with your Convolution:

- First I need to manually switch filters depending on the input sampling rate (to avoid filter resamling). It would be great to have filter banks for each sampling rate. How about assigning filters for each sampling rate in "Output Format" - "Sampling Rate" as new column when Convolution is used? This can be used not just for filters with different "native" sampling rate but also for other channel configurations (for 44.1khz content use a 2.0 setup without XO, for >=48khz a 5.1/7.1 filter) or target curves (for 44.1khz music content a flat target, for >=48khz a little more bass emphasize). What do you think? 

- Second I have a huge problem with video delays. eg. If I play 48khz content the inherent filter delay is double compared to 96khz (given the same filter resolution). So I always need to manually double the video delay when switching to content with half the sampling rate. It would be great to have MC make this necessary changes of video delay all by itself. Or "simply" add the option of video delay depending on sampling rate.

I consider these two features essential for the usability of convolution. Thank you very much!   
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 20, 2012, 10:57:13 am
btw since JRiver Convolution supports the delay settings in my config files just like ConvolverVST the difference in soundstage that I described earlier in this thread is gone for good. They still sound slightly different but IMHO JRiver Convolution is at least as good if not "better". From now on I use your Convolution as my reference! Amazing work in unbelievable time, Matt!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lasker98 on January 20, 2012, 12:11:16 pm
TheLion:
I'm trying to follow what you're doing. If I understand, you want J River convolver to automatically select the correct filter for the sample rate of the track you're playing? If this is correct, I think it's doing that now.
I use the following .cfg file:

c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_441.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_48.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_882.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_96.cfg

When this file is loaded in J River convolver, the correct filter is loaded for each track's sample rate, at least based on what "Audio Path" is telling me. My dac also indicates the current sample rate and this also appears correct for each track. I hope that I'm correct in thinking that J River is automatically switching filters for the different sample rates.

When I saved my filter in Audiolense, I saved in 44.1, 48, 88.2 and 96kHz, giving me 4 separate files. For example, here's my 44.1 .cfg file, corresponding to "c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_441.cfg" from above:

44100 2 2 0
0 0
0 0
C:\Users\Bill\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\Kitch_panels_001 441.wav
0
0.0
0.0
C:\Users\Bill\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\Kitch_panels_001 441.wav
1
1.0
1.0

Assuming I'm even talking about the same thing as you, couldn't you make a similar  .cfg file pointing to each of your desired filters, then make a .cfg file like the first one I posted pointing to each of those files, then load that into J River convolver?

If this isn't what you mean, my apologies and I'll go back to trying to follow what you're trying to accomplish.

Bill


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 20, 2012, 12:36:40 pm
ATM JRiver Convolution isn't autoselecting filters based on sampling rate. It resamples any filter you select to the sample rate of the input stream. This is working flawlessly but isn't optimal regarding sound quality. See Uli's (audiovero) posts - Acourate and Audiolense for that matter optimize when outputting for different sampling rates using some smart methods to deal with the different Low-Pass.

Convolver config file format supports "autoselecting based on sampling rate" but I don't think JRiver is supporting this feature yet.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 20, 2012, 12:58:11 pm
@ Trumpetguy : Until you get your HTPC upgrade simply reduce the filter resolution. I find that going from 131k to 66k tabs gives about 33% faster processing with JRiver Convolution. Try using 33k tabs with Audiolense.

15 paths filter 8channel out: Reduced number of taps from 131k to 32k increased convolution speed from <1.0x to ~2.5x real time. Which will probably do for movies while waiting for new htpc parts.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lasker98 on January 20, 2012, 01:06:09 pm
Now I'm lost. If I load my .cfg file:

c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_441.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_48.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_882.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_96.cfg

and you say J River convolver isn't autoselecting the filter, then how exactly does that .cfg file work? If I understand your response, you're saying J River is only using one filter, but internally modifying that filter to conform to the sample rate of the input stream? So in the above file, which of those 4 files is J River actually using?

When I was using convolvervst, I would load the .wav file for say, 96 kHz filter, then set J River output mode to resample everything to 96 kHz. This was my workaround for playback of different sample rate files in old convolvervst.

If I loaded a .cfg such as the one shown above into convolvervst and had J River output mode set to no resampling, J River/convolvervst would play 44.1 files fine, but as soon as a file came up to play in anything but 44.1, playback would stop and there would be a popup message about different input and output sample rates.

Now, based on your explanation of how J River convolver is working, I have no clue what's actually happening with playback. At least J River convolver will play the different sample rates without stoppping but what's it's actually doing seems to be a mystery.

Bill
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 20, 2012, 01:13:28 pm
Now I'm lost. If I load my .cfg file:

c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_441.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_48.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_882.cfg
c:\users\bill\documents\juice hifi\audiolense 4.2\correctionfiles\kitch_panels_001 2.0_96.cfg

and you say J River convolver isn't autoselecting the filter, then how exactly does that .cfg file work? If I understand your response, you're saying J River is only using one filter, but internally modifying that filter to conform to the sample rate of the input stream? So in the above file, which of those 4 files is J River actually using?

We will use whatever cfg file you select, and resample it if needed to support other sample rates.

I would recommend picking your highest quality cfg file, "kitch_panels_001 2.0_96.cfg" in this case.

Someday we may support switching filters based on sample rate.  I'm still trying to understand the technical merits for that approach as opposed to downsampling using our resampler (which has quite a good reputation).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 20, 2012, 01:15:54 pm
- I have a huge problem with video delays. eg. If I play 48khz content the inherent filter delay is double compared to 96khz (given the same filter resolution). So I always need to manually double the video delay when switching to content with half the sampling rate.

The delay from convolution does not change with sample rate (we partition to avoid that).

And the filter delay should not change either -- when we resample, no timing information changes.

So I'm not understanding what you're describing.  It might be worth starting a new thread to discuss it.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 20, 2012, 01:32:06 pm
The delay from convolution does not change with sample rate (we partition to avoid that).

And the filter delay should not change either -- when we resample, no timing information changes.

So I'm not understanding what you're describing.  It might be worth starting a new thread to discuss it.

Matt,

when using individual filters per sampling rate (not using your filter resampling) the filter delay (and therefor the necessary video delay to compensate) doubles when you cut sampling rate by half. Eg. a 48khz filter has double the filter delay than a 96khz filter with the same filter resolution. If you double the filter resolution (eg. 131k taps instead of 66k) the filter delay doubles. Therefor a 48khz 66k tap filter has the same filter delay as a 96khz 131k tap filter.

 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 20, 2012, 01:35:19 pm
Matt,

when using individual filters per sampling rate (not using your filter resampling) the filter delay (and therefor the necessary video delay to compensate) doubles when you cut sampling rate by half. Eg. a 48khz filter has half the filter delay than a 96khz filter with the same filter resolution. If you double the filter resolution (eg. 131k taps instead of 66k) the filter delay doubles. Therefor a 48khz 66k tap filter has the same filter delay as a 96khz 131k tap filter.

There are two delays:
1) Convolution delay
2) Delay baked into your filter

#1 is handled automatically by Media Center.

#2 should not change when resampling a filter.  Resampling changes the sample position, but since the frequency of samples changes by the corresponding amount, the position with regards to time is unchanged.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on January 20, 2012, 05:53:18 pm
TheLion,

There is a bit of a mix up in terminology in your post.
Namely, a 65k tap filter at 48KHz has the same (frequency) resolution as a 131k tap filter at 96kHz.
When you go from 65k taps at 48kHz to 65k taps at 96kHz you halve the resolution and halve the processing latency
So the required latency correction is determined by the frequency resolution of the filter.
What you are saying is correct, but the terminology was confusing.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 20, 2012, 05:58:03 pm
Maybe I can help in the discussion.
If MC changes the filter samplerate e.g. from 48 kHz to 96 kHz then the number of taps is twice the number before conversion. With a symmetric linear phase filter the delay from filter start to the filter center is the same for both samplerates. This is ok.
TheLion is talking about filters created by Acourate. Here the filter length is cut by standard to a length of 64k taps. In both cases the 48 kHz and 96 kHz filters are still symmetric. Thus the delay of the 96 kHz filter is half of the 48 kHz filter delay. That's why the config files for different samplerates need different delay parameters.

Of course now someone will argue for a filter samplerate conversion carried out by MC. The problem: let's start with a filter @48 kHz. A 192 kHz track thus needs a converted filter with a filter length by factor 4. So a 64k filter will upsample to 256k. This result in a higher CPU load, maybe too much for the CPU. In addition the original filter is just defined up to 24 kHz. So the 192 kHz filter will have a stopband from 24 kHz to 96 kHz (fs/2). So the frequency content of high resolution music tracks above 24 kHz will be suppressed. This is not desired. Why to use high resolution tracks then? Acourate does a special conversion. The SRC algorithm includes a brickwall extension. So all frequencies above 24 kHz will pass unchanged, only the gain is adjusted properly to the filter gain below 24 kHz.

On the other side we can start with a 64k filter @192 kHz. So when we downsample the 48 kHz has 16 k taps. The resolution is lower than with 64k of course.

At the end we end up with some balancing. We use 64k taps @ 48 kHz. We may use 128k taps @ 96 kHz if the CPU power allows to do so. And we may use even up to 256k taps filters. But if the CPU power is not enough (think about silent computers with passive cooling e.g.) then we will come to filters of different sizes. That's why there is a requirement to allow different config files for different samplerates.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 21, 2012, 02:49:58 am
Thanks for the great explanation Uli!

For the time being I will use 64k taps filters with 44.1/48khz, 128k taps 88.1/96khz and 256k taps for 176.4/192khz. I still need to manually change the filters but I can keep the video delay constant this way.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: )p( on January 21, 2012, 03:24:15 am
Anyone else experience clipping with .68 and later?

When I have volume leveling enabled all is ok but when I disable it I get occasional clipping/distortion on very loud tracks even with clip protection enabled. I have checked the normalize option.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 21, 2012, 03:37:40 am
Today many tracks are mastered near to 0 dBFS (full scale) due to the loudness war. About 75% of all CDs show intersample clipping (= the interpolated curve between the samples is higher than 0 dBFS). In addition correction filters that also change phase can cause clipping because the crest factor of the music signal is changing by phase shifts. With online filtering the algorithm needs to react on clipping in realtime. The most simple algo is to cut limit all signal amplitudes to max 0 dBFS. A compression algorithm is possible but it can also introduce pumping effects. Of course it is also possible to create some headroom by attenuating the music signal with a certain gain factor, e.g. -3 dB.

Intersample clipping: with an artificial signal it is possible to demonstrate a clipping between samples of even about 12 dB !
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 21, 2012, 04:10:45 am
May I ask for your kind participation: http://yabb.jriver.com/interact/index.php?topic=69341.0
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 21, 2012, 04:32:13 am
Today many tracks are mastered near to 0 dBFS (full scale) due to the loudness war. About 75% of all CDs show intersample clipping (= the interpolated curve between the samples is higher than 0 dBFS). In addition correction filters that also change phase can cause clipping because the crest factor of the music signal is changing by phase shifts. With online filtering the algorithm needs to react on clipping in realtime. The most simple algo is to cut limit all signal amplitudes to max 0 dBFS. A compression algorithm is possible but it can also introduce pumping effects. Of course it is also possible to create some headroom by attenuating the music signal with a certain gain factor, e.g. -3 dB.

Intersample clipping: with an artificial signal it is possible to demonstrate a clipping between samples of even about 12 dB !

The described Intersample Clipping is a nice argument for using AcourateNAS offline convolution. If Stereo only is fine and you never touch your speaker setup/placement or room interior ;-)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: RC23 on January 21, 2012, 08:08:30 am
IMHO we have also to think about active speaker systems, we should not forget them. (*)
So if e.g. a stereo signal feeds 3 channels for each side (this is of course also supported by Convolver VST) then it may become difficult just to talk about speaker distances. How do you measure the distance to the acoustic center of a midrange driver compared to a tweeter? By a folding ruler ?  ;D  Indeed we find "distances" or better delays of just one sample. That's why e.g. Brutefir is defining the delays in samples (and subsamples).

The best way is to let the user select the unit, either feet or meter or millisecond or samples. So he chooses what is best to his opinion.

We always have to delay the quicker sound (a tweeter or a closer speaker). So also IMO it is best to treat a delay by its definition and to avoid inverse delays.  :) Simply define the delay for the slowest unit/device/driver as 0 and refer to it with the other units/devices/drivers.

(*) PS: IMO this is also a good example why the strict channel assignment in the room correction option is confusing. At least for me. The active speaker channels have nothing to do with front, lfe, surround channel or back channel.

I would like to support the comment of Uli regarding the units of delay (feet or meter or millisecond or samples). My loudspeaker setup will be a 3-way-system plus subwoofer in combination with Acourate.

Ruediger

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Scolex on January 21, 2012, 07:44:42 pm
WOW that was a lot of information I think my brain has indigestion. :D

Does anyone know of a place where a person could send a mic so a calibration file can be created.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: zydeco on January 21, 2012, 08:07:12 pm
I've just seen this thread - it's great that JRiver is now natively supporting convolution. I'm just finishing some 4-way active speakers and have developed filters using Acourate to cater for the left / right woofer, bass, mid and high channels. Is this multi-channel process supported within the convolution plug-in? And, if so, then how is the output set-up?

Zydeco
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markus_kr on January 22, 2012, 02:49:57 am
Is this possible?

i heard about convolver support a few years ago. At the moment I have a 4-way active system running, the filters coming from audiolense XO. This setup realises a dream which I had since the beginning of this millenium.

But one thing I very often miss:
2 or better 3 buttons for preloading *.cfg files in the convolver dsp menue. The button would activate the loaded file.  By clicking another button the previous file will be activated.

With that functionality, an online comparison of different measurements, target curves and so on is possible. This would be the most important  thing to decide the quality of different filters, and it is my greatest wish for JR  (just behind an input for my record player or CD player - which seems impossible ...)

Thanks in advance for answering

markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 22, 2012, 03:09:21 am
WOW that was a lot of information I think my brain has indigestion. :D

Does anyone know of a place where a person could send a mic so a calibration file can be created.

Here you go: http://www.cross-spectrum.com/measurement/mike_meas.html
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 22, 2012, 03:16:23 am
Matt - is this possible?

i hear with comvolver support a few years meanwhile. At the moment I have a 4-way active system running, the filters coming from audiolense XO. This setup realise me a dream which I had since the beginning of this millenium. But one thing I very often miss:

2 or better 3 buttons for preloading *.cfg files in the convolver dsp menue. The clicked button activates the loaded file.  By clicking another button the preloaded file will be activated.

With that functionality an online comparison of different measurements,target curves and so on is possible. This would be the most important  thing to decide the quality of different filters, and it is my greatest whis for JR  (just behind an input for my record player or CD player - which seems impossible ...)

Thanks in advance for answering

markus

Markus,

if you read a few pages back I already "requested" the feature of different filter banks with (gapless) switching between them. But it is already great atm that JRiver Convolution doesn't go mute while selecting a new filter (ConvolverVST does that). So the music keeps playing while selecting a new filter and the switching is therefor pretty instantaneous.

I am sure Matt will consider this in the future.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markus_kr on January 22, 2012, 04:31:12 am
lion,

thx for answering, I wasn't aware about that. Switching the filter while playing makes it possible to compare different filters detailed.

best regards
markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 22, 2012, 04:57:33 am
The next step...

MC audio engine (incl. all DSP studio filters like Convolution) as Virtual Soundcard, with the ability to route any external source from the ADC inputs through it as well.

A thread reviving an old ongoing discussion about this concept has opened recently: http://yabb.jriver.com/interact/index.php?topic=69354

Basically this would allow to use convolution for any internal and external audio stream. Therefor every audio stream on your computer (from any kind of application) as well as any external source (like TV receivers, SACD players,...) would be covered.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 22, 2012, 01:32:14 pm

We will use whatever cfg file you select, and resample it if needed to support other sample rates.
 
I would recommend picking your highest quality cfg file, "kitch_panels_001 2.0_96.cfg" in this case.
 
Someday we may support switching filters based on sample rate.  I'm still trying to understand the technical merits for that approach as opposed to downsampling using our resampler (which has quite a good reputation).

 
Hi Matt, just wanted to say thank you so much for adding native convolution to MC!  Wrt to above, I have source material ranging from 192KHz to 44.1KHz.  Are you recommending that I use a 192KHz filter? Or is picking a median like 96KHz the recommended approach?
 
I know that the ConvolverVST format supports multiple sample rates stored in one config file as a filer list: http://convolver.sourceforge.net/config.html  Scroll down to Filter list near the bottom to show how it is implemented.  I had tried this with ConvolverVST but could not get it to work...  I guess it boils down to is there sound quality difference in resampling?
 
On another note, when playing my "hottest" mastered track, with normalize filter volume checked on, I reach about 46% peak overall for the song.  Other tracks that are not mastered as hot sometimes never reach above 10% peak.  Am I "doing it wrong"? Or is there another way to makeup the gain?  In ConvolverVST there is the attenuation slider that allowed manual gain makeup.
 
Best regards,  Mitch
 
 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 22, 2012, 11:50:16 pm
Matt,
The new JRivolver is working OK with my configuration and filters. It is about 4 times slower though (realtime x 8 vs x 30). I have multiple inputs on the last three paths and JRivolver counts each one as a path (maybe processing that way too?). ConvolverVST reports 19 paths and JRivolver says 37 paths. The 7 inputs per path should be combined and then convolved I would think?

The config file:
48000 8 16 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
0
0.0
0.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
1
0.0
1.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
2
0.0
2.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
3
1.0
3.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
4
1.0
4.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
5
1.0
5.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
6
2.0
6.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
7
2.0
7.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
8
2.0
8.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
9
3.34
9.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
10
4.0
10.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
11
5.0
11.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
12
6.0
12.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
13
7.0
13.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
14
3.33
14.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
15
3.33
15.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
16
0.34 1.34 2.34 4.34 5.34 6.34 7.34
9.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
17
0.33 1.33 2.33 4.33 5.33 6.33 7.33
14.0
C:\Users\Brad\Documents\Juice Hifi\Audiolense 4.2\CorrectionFiles\T-HouseCurve F-HomeTheater M-Center 48.wav
18
0.33 1.33 2.33 4.33 5.33 6.33 7.33
15.0


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 23, 2012, 12:14:33 am
I don't know how the FFT's (Fast Fourier Transforms) are solved in JRevolver but Convolver uses: http://www.fftw.org/ (http://www.fftw.org/)
Being curious, I downloaded the latest 32 bit Windows package (v3.3) and replaced the much older version in the Convolver program folder with the new DLL of the same name. It worked and I got a speed increase of 25% with ConvolverVST.

I also installed the latest 32 bit version of  the libsndfile DLL http://www.mega-nerd.com/libsndfile/ (http://www.mega-nerd.com/libsndfile/)

Granted this is 32 bit solving but it is about 4 times faster than JRivolver (in my set-up). Check it out if you have limited computing power or want to reduce latency.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 23, 2012, 03:11:05 am
It seems that now we are getting more and more close to the interesting points of a convolution application.  :)
There are already different required features for the system and I'm very curious how all of them will be carried out.

So Hulkss has shown his 19 filters - 37 paths example. The high number of filters is necessary by multichannel or multiyway systems or even more by combined multichannel/multiway system. The users expect the best accuracy, thus double point precision is the basic layout. Of course it is a question to use the best available mathematical methods to keep the CPU load as low as possible and to get the realtime factor as high as possible. This may include using a sophisticated and specialized math library like FFTW or Lapack (IMHO it will be very difficult to create a better FFT-solution).

As I've already written in a previous message (http://yabb.jriver.com/interact/index.php?topic=68828.msg463399#msg463399) people expect individual filters for different samplerates and also the possibility to switch online between different filters.
E.g. the Hulkss example would thus result in a managment of 342 filters in total (19 filters x 6 samplerates x 3 filterbanks).

Typically we use 65536 filter taps with 44.1 and 48 kHz samplerate. To keep the frequency resolution the same a 88.2/96 kHz filter requires 131072 taps and a 176.4/192 kHz filter need 262144 taps. So with high resolution audio and non-compromise filters we have a real challenge for the convolution engine.

Oh, we can even easily enlarge the challenge: this will happen in case of a zero-latency convolution with non-uniform partition sizes running in multiple threads.  ;D

Last but not least :
If beside the "normal" playback and streaming MC would manage the handling of external sound signals (soundcard input) then we have the ultimate playback engine  :) But I guess this will take some time. A "simple" convolution is developed quickly. But a sophisticated solution takes some more time.

PS: I have forgotten a wish. If MC also would behave like a virtual audio driver then it can get the sound stream from other applications, theoretically even from competing players. Imagine a Foobar playback by the MC audio engine  ;D With a virtual audio driver a bitperfect playback is a new challenge as the driver needs to collect the data before the kmixer.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 23, 2012, 11:02:27 am
Matt,
The new JRivolver is working OK with my configuration and filters. It is about 4 times slower though (realtime x 8 vs x 30). I have multiple inputs on the last three paths and JRivolver counts each one as a path (maybe processing that way too?). ConvolverVST reports 19 paths and JRivolver says 37 paths. The 7 inputs per path should be combined and then convolved I would think?

Could you zip that whole package up and email it to me?  I'm matt at jriver dot com.

I think you're right that adding the inputs together and doing convolution on the result would be faster.  Currently we're not doing that.  The FFT and iFFT only happens once per channel (if needed by that channel), but we're doing convolution against each input FFT instead of combining the inputs and doing convolution on the result.

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 23, 2012, 09:06:08 pm
If MC also would behave like a virtual audio driver then it can get the sound stream from other applications

Yes, I would like this capability for playing test or measurement signals through the entire audio chain.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: soongsc on January 24, 2012, 08:55:02 am
I would like to bring attention to work done here.
http://www.bodziosoftware.com.au/
Since I use version 2, I can say it is great.
Would there be possibilities to make a smooth integration?  I know the author looked at JRiver site but could not find a way for seamless integration.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bruce.weiland on January 24, 2012, 03:27:03 pm
I was really hoping nobody would be using something like Dynamic Range Compression by now. So I consider the acronym DRC to be free from bad meanings ;-)

btw in your country it has a great meaning: http://www.drc.de/

Sony has used it for many years.  :-[ "DRC" was developed in 1997 as a technology that can convert a standard television signal format to a high-definition signal format, based on the concept of establishing a higher resolution signal format from scratch.  ie  480i to 960i, latest version goes to 1080p.

So, at least two uses of the acronym.


Bruce
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 24, 2012, 04:23:25 pm
Thanks to hulkss for the 16-channel sample.  In a coming build:
Faster: Improved how Convolution operates when a filter operates on multiple input channels (should give a 10-25% speedup in these cases).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jarbe on January 26, 2012, 02:57:41 am
Fantastic to see that the native convolution engine has been implementet already!

I assume that it is under development still. But being a 64 bit fp engine, how demanding (in terms of CPU) does one expect this engine to be (when it is fully developed) compared to the ConvolverVST ?


Best regards,
Jarle

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 26, 2012, 10:09:54 pm
But being a 64 bit fp engine, how demanding (in terms of CPU) does one expect this engine to be (when it is fully developed) compared to the ConvolverVST ?

Twice as demanding. But that really does not matter if you have enough processing power. It's only a big deal if your computer is not up to it. The latency from processing is usually small compared to the latency designed into the FIR correction filters. My Intel i7 can keep up with 16 channels and 37 filter paths.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mikkel on January 27, 2012, 04:37:07 am
Could anyone report on performance on AMD-processors? SSE3 don't do us much good, unfortunately (a good reason to switch to Intel... as I always wanted but never found the money to do  :P).

EDIT: A really spoiled feature request: possibility to use 32-bit processing instead (please don't shoot me for asking  :)). For me, who is using an AMD Athlon X2 240e (2.8ghz), sometimes performance can be a problem... but then, it really is low on both heat and power consumption = quiet. One can't get it all, I guess  :).


Best regards,
Mikkel
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 27, 2012, 07:46:14 am
Could anyone report on performance on AMD-processors? SSE3 don't do us much good, unfortunately (a good reason to switch to Intel... as I always wanted but never found the money to do  :P).

EDIT: A really spoiled feature request: possibility to use 32-bit processing instead (please don't shoot me for asking  :)). For me, who is using an AMD Athlon X2 240e (2.8ghz), sometimes performance can be a problem... but then, it really is low on both heat and power consumption = quiet. One can't get it all, I guess  :).


Best regards,
Mikkel
I am using Athlon X3, not X2, which is fully capable of doing 2 path convolution with a 132k tap filter at 15x real time. I would be surprised if the X2 shouldn't also. With many paths in a multichannel setup (in my case 15), the X3 is barely able to process a 32k filter at 2.5x real time. Thsi should give you some ballpark figure on where your X2 will perform. I am buying an i7 at my earliest convenience :-)

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: RC23 on January 27, 2012, 12:54:01 pm
... capable of doing 2 path convolution with a 132k tap filter at 15x real time. ... able to process a 32k filter at 2.5x real time.

How do you calculate or measure the real time factor?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on January 27, 2012, 01:28:05 pm
How do you calculate or measure the real time factor?

I rely on Matt. Open the convolver plugin during playback. The real time factor is displayed there.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mbare on January 27, 2012, 03:19:00 pm
The convolution engine doesn't remove the need for manual A/V-sync - as I thought it would. I still need to delay video manually when watching movies to make it lip-synced. I'm using a 2-ch Hi-Fi with Digital Room Correction from AudioLense, no active crossovers or anything fancy. Am I missing something or do I need to start hunting for the excact video-delay once again?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 27, 2012, 03:30:19 pm
The convolution engine doesn't remove the need for manual A/V-sync - as I thought it would. I still need to delay video manually when watching movies to make it lip-synced. I'm using a 2-ch Hi-Fi with Digital Room Correction from AudioLense, no active crossovers or anything fancy. Am I missing something or do I need to start hunting for the excact video-delay once again?

Is there a delay baked into your filters?

Could you send a copy of the configuration and filter files to matt at jriver dot com?

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 27, 2012, 03:51:01 pm
Matt,

 as explained by Uli all FIR filters with phase correction have inherent delay. This is not channel delay (that comes on top of it) but delay to bring the phase in-line over the entire response. It also is a matter of "filter resolution/length" as I described earlier. That means a 65k taps 48khz filter has the same delay as a 128ktaps 96khz filter (FIR with phase correction).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mbare on January 27, 2012, 04:02:40 pm
Wheter there is a delay or not, I don't know to be honest. I only use AudioLense to make filters and I don't know too much about the tech behind the magic. I'm sending over the files now, Matt. It might be me being stupid, of course, but I've tried with 3 or 4 movies and none are synced.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mbare on January 27, 2012, 04:46:17 pm
...just remembered that I resample all audio to 88.2kHz (due to the Audiolense-filter). Is there a possibility that the delay is caused by resampling?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 27, 2012, 11:54:36 pm
I am buying an i7 at my earliest convenience :-)

Wait a few weeks for the Ivy Bridge i7. Integrated graphics HD4000. No video card needed. I am doing OK with HD3000 in a Sandy Bridge i7 but could use just a little more on the graphics side. HD4000 is a big step up.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 27, 2012, 11:59:19 pm
Wheter there is a delay or not, I don't know to be honest. I only use AudioLense to make filters and I don't know too much about the tech behind the magic.

If you use digital XO or True Time Domaine (TTD) correction in Audiolense, there will be delay in the filters.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: RC23 on January 28, 2012, 12:29:53 am
... I still need to delay video manually when watching movies to make it lip-synced. ...

With which tool do you receive a video delay?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: taraba55 on January 28, 2012, 02:37:34 am
Long time reader of this fantastic forum ,but  my first post.Before making a step in convolution I would like to "clear" the hardware side. My processor is AMD Athlon 245e which produce JMark score of 1390. I am interested in creating filters for two set ups: 2.1 channel  and 5.1 sourround (2 subwofer in serial connection) with capability to play 24/192 flac files. I have to keep my present motherboard because od ASUS Xonar ST + H6 board already in place. My question is which JRmark score is needed for this set up for optimal performance and any suggestion which of AMD processors can do that. With my present hardware in 2.1 set up can I play 24/192 flac. Thank you

gigabyte 880gm-ud2h, 8GB RAM , Seasonic 400W fainless PSU
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mbare on January 28, 2012, 04:19:01 am
Hulkss: I use True Time Domain-correction, so that might explain the delay.

RC23: In MC, under "Playback Options", "Video", "Advanced", you can change A/V-delay; that's where I delay the video.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jarbe on January 28, 2012, 07:04:00 am
hulkss: Upgrading to the latest version made the playback-skipping dissapear. Clearly not a CPU issue. I run 6 channels/6 paths. My Intel Atom N270 does the job very well with its 1.6GHz singel core processor.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: RC23 on January 28, 2012, 11:40:05 am
hulkss: Upgrading to the latest version made the playback-skipping dissapear. Clearly not a CPU issue. I run 6 channels/6 paths. My Intel Atom N270 does the job very well with its 1.6GHz singel core processor.

Interesting info that an Intel Atom N270 with 1.6GHz works flawless in a JRiver convolution setup with 6 channels. My planned setup with 8 channels (3-way active loudspeaker plus subwoofer) is similar. Additionally should MKV videos be played and JRiver controls video/audio delay. The audio data goes via USB to a RME Fireface UC, in which RME recommend a Dual Core with 2.0 GHz.

Is my actual CPU Intel Dual Core E7200 with 3.06 GHz sufficient for simultaneous audio and video?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 28, 2012, 12:10:13 pm
Is my actual CPU Intel Dual Core E7200 with 3.06 GHz sufficient for simultaneous audio and video?

This question has no simple answer. I have my system working very well now with an i7 2600K processor, integrated HD3000 graphics, USB outboard ASIO DAC. I have no video card and no audio card, the i7 does it all. A person could build a tiny HTPC if desired.

When I first started with my HTPC adventure in December I had audio skipping, dropouts, jerky video, terrible lip sync, etc. Now, thanks to continuous development by JRiver and some tweaking, I have performance better than all the gear I replaced. This did require many setting adjustments in BIOS, Windows 7, Intel drivers, ASIO Drivers, VST plugins, FIR filters, and JRiver MC.
I still have a few issues to fix or improve and tweaking with DRC software has no end to it, you just stop and call it good at some point.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jarbe on January 30, 2012, 02:01:00 am
I can point out that the Intel Atom N270 actually is adequate (barely, CPU usage in the 90% range) for running DVD video (mkv files). I can do this if I use convolverVST. But the native convolver pushes the CPU beyond the limit in this case
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: stealth82 on January 30, 2012, 04:53:20 am
I'm not familiar with .PCM files.  Do they have a header?

A 64-bit or 32-bit WAV (which is PCM data with a header) would work if you can convert.

So, do pcm files need to be converted into wav or are they accepted now?
I couldn't understand from the rest of the conversation if you added support for that.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BerntR on January 30, 2012, 09:05:27 am
Matt & JRiver colleges,

Regarding lip sync.

One idea is to include some delay figures in the xml format you have been talking about.

Nevertheless, there will always be unknowns with regards to latency. Distance to the speakers, video latency in the computer as well as in the screen or projector, audio buffers in the computer and sometimes in hardware downstream.

The easiest way to obtain close to perfect latency would be a user friendly graphical interface, where you reduce latency gradually until you just hear that the audio is slighty ahead, then go in the other direction until you just hear that it is slightly behind, and then set the latency in the middle.

This would be a good solution on it's own. A refined version could be be include this as part of the setup. If such a function was combined with latency info in the filter file, JRiver could perhaps adjust the latency automatically whenever a new set of filters were loaded.

Just thinking out loud here.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 30, 2012, 09:34:44 am
Nevertheless, there will always be unknowns with regards to latency. Distance to the speakers, video latency in the computer as well as in the screen or projector, audio buffers in the computer and sometimes in hardware downstream.

Remember that lip-sync works nicely with convolution disabled.  This is because all DSP and output components report their latency.  Sometimes hardware requires adjusting manually (for example, my projector has some input lag), which is possible in Options > Video > Advanced.

As for convolution latency, I was wondering if it would work to put impulses through the filters, and calculate how long it takes from input to output.  Then, the convolution engine could just add this time to the latency.  Of course it would use the shortest latency of any channel so that timing between speakers would be preserved.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 30, 2012, 09:38:22 am
So, do pcm files need to be converted into wav or are they accepted now?
I couldn't understand from the rest of the conversation if you added support for that.

Only files that can be played by Media Center can be used as filters.  WAV, APE, and FLAC are all good choices for filters.

I don't think we'll try to support RAW files, because it's too messy trying to figure out the bit-depth, samplerate, and channels.  And if we guess wrong, the results can sound terrible (like speaker breaking terrible).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 30, 2012, 09:49:47 am
As for convolution latency, I was wondering if it would work to put impulses through the filters, and calculate how long it takes from input to output.
This proposal does not include the buffer time of ASIO buffers (or soundcard buffers) and the sound travel time to the listeners seat. With an agreed filter format it would be possible to include the filter delay by an appropriate tag information.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 30, 2012, 10:03:45 am
This proposal does not include the buffer time of ASIO buffers (or soundcard buffers)

This is handled automatically by our playback engine.  It is independent of Convolution.


Quote
and the sound travel time to the listeners seat

All that really matters is the relative difference between speakers, which would be preserved.  I suppose if the speakers were a few hundred feet away the difference between the speed of light and sound would matter, but in those cases it's reasonable to use the existing lip-sync adjustment in Options > Video > Advanced.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on January 31, 2012, 11:27:37 am
As for convolution latency, I was wondering if it would work to put impulses through the filters, and calculate how long it takes from input to output.  Then, the convolution engine could just add this time to the latency.  Of course it would use the shortest latency of any channel so that timing between speakers would be preserved.

Matt,
I've forgotten a point to your statement. If you send an impulse like a Dirac pulse through a filter then you get the filter itself as response. So you can simply take the filter and check for the index of the max. peak to estimate the time delay. As the filter may also switch the polarity (in case of a wrong polarity of playback system or of measurement system) you also have to keep the min. peak in mind too.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on January 31, 2012, 04:47:31 pm
Guys, so I understand the process and its implications more clearly, if I have a 192khz generated filter loaded in MC and I play back a 44.1khz flac, the filter is re-sampled in real-time so that it can be used with the 44.1khz file?  I assume this is why my CPU load goes from 2-3% when using a 44.1khz filter to 10-12% when using a 192khz filter - both playing back the same 44.1khz flac.

Assuming I am understanding what is going on here, correctly, I would definitely vote for filter switching to be implemented (if possible) based on different sample rate material.  Just from a pure CPU load perspective.

Thanks,
Jim
Title: Convolution problems
Post by: koldby on January 31, 2012, 05:12:52 pm
Hi
Me Total Newbee ;D
I just downloaded MC17 to try it out with filters made by Audiolense.
Got it working, but I get some clicks and pops when using the Convolver.
Using external usb soundcard, external usb to I2S converter or internal soundcard makes no difference.
Buffer length is set to max and pre buffer to 10sec.
Nothing wrong without the convolver and nothing wrong when using Foobar2000 and convolver with the same filter.

I really want MC17 to work as I love the feel of it, but for now I stick to Foobar  :'(
Koldby
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: koldby on January 31, 2012, 06:06:56 pm
Well.......... ::)
I guess I found the solution.
And somebody mentioned that somewhere in this forum.
Download ConvolverVST and install it.
Problem gone ;D
Koldby
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on February 02, 2012, 04:09:32 pm
Well.......... ::)
I guess I found the solution.
And somebody mentioned that somewhere in this forum.
Download ConvolverVST and install it.
Problem gone ;D
Koldby

As reported at least by myself in another post - pops and clicks with internal convolver is more than likely a cpu capacity problem. I believe it has been proven beyond doubt that the implementation itself is correct. ConvolverVST is much less cpu demanding. I would try once more and with a shorter filter. The niceties in the 64bit JRiver convolver with a shorter filter by far outweights the old 32bit VST plugin. Especially if you need to change filter for different sources.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 06, 2012, 05:10:56 pm
In a coming build:
NEW: Convolution automatically adjusts for filter latency for cases where a delay is baked into the filter files (still preserves intentional timing differences between channels).

I don't really understand the point of baking leading silence into all the filters (so it's not for relative speaker distances).  The change above will correct the latency from this.  

We might also be able to skip the convolution step for this leading silence (or even trim the filters of the leading silence to remove the latency) for a performance gain, but really it seems like whatever if building the filters shouldn't be adding this delay.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on February 06, 2012, 05:51:09 pm
In a coming build:
NEW: Convolution automatically adjusts for filter latency for cases where a delay is baked into the filter files (still preserves intentional timing differences between channels).

I don't really understand the point of baking leading silence into all the filters (so it's not for relative speaker distances).  The change above will correct the latency from this.  

We might also be able to skip the convolution step for this leading silence (or even trim the filters of the leading silence to remove the latency) for a performance gain, but really it seems like whatever if building the filters shouldn't be adding this delay.

Matt, for a future build, are you contemplating automatic filter switching based on the playback material's sample rate?

Thanks,
Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 06, 2012, 05:57:25 pm
Matt, for a future build, are you contemplating automatic filter switching based on the playback material's sample rate?

Yes, but I can't say when it might be added.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jdubs on February 06, 2012, 06:13:41 pm
Yes, but I can't say when it might be added.

Cool, thanks!!  ;D

-Jim
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Paulv on February 06, 2012, 08:43:35 pm
In a coming build:
NEW: Convolution automatically adjusts for filter latency for cases where a delay is baked into the filter files (still preserves intentional timing differences between channels).

I don't really understand the point of baking leading silence into all the filters (so it's not for relative speaker distances).  The change above will correct the latency from this.  

We might also be able to skip the convolution step for this leading silence (or even trim the filters of the leading silence to remove the latency) for a performance gain, but really it seems like whatever if building the filters shouldn't be adding this delay.

hello, I'm not an expert but I think leading silences might have to do with linear phase filters and filters with phase correction, minimum phase filter having no leading silences... If I am right I would prefer no change as I am doing phase correction, and linear phase Xover

explanations welcomed
thanks
Paul
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on February 06, 2012, 08:45:18 pm
Matt,

there is a very good reason for the 'baked in' dalay. The linear phase filters are non-causal (acausal) and apply correction before the music is heard.
You can consider that they work at negative time. Since we can't have negative time, we need a delay.

Uli may be able to explain better.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 06, 2012, 08:46:54 pm
hello, I'm not an expert but I think leading silences might have to do with linear phase filters and filters with phase correction, minimum phase filter having no leading silences... If I am right I would prefer no change as I am doing phase correction, and linear phase Xover

Timing / phase between channels makes sense to me and is preserved.

But if every filter just starts with 0.5 seconds of silence, that silence does nothing but add latency.

Maybe there's some really low level stuff happening in that 0.5 seconds (pre-echo or something) that's relevant?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on February 07, 2012, 01:53:39 am

Maybe there's some really low level stuff happening in that 0.5 seconds (pre-echo or something) that's relevant?

Yes indeed, this is the case with linear phase filters. Please don't touch the filter as is and keep bit perfect processing without changes. Every bit of "baked-in" delay is for a very good reason (at least with filters from Audiolense, Acourate and DRC).

Does your latest build change the filter in any way (e.g. cut the leading "silence"/delay) or is it just compensating for any "baked-in" delay? Latter is a great feature. So this does mean I don't have to manually determine and input video delay to compensate for convolution and lip-sync will automatically be spot on (other than hardware delays down the playback chain)?! Thank you!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Paulv on February 07, 2012, 03:17:56 am
+1
please Matt do not touch the filters
linear phase filters are symetrical ie they have as many leading and trailing zeroes
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 07, 2012, 09:30:09 am
+1
please Matt do not touch the filters
linear phase filters are symetrical ie they have as many leading and trailing zeroes

Leading and trailing zeros have no effect other than a delay.  The math of convolution is just multiplication and addition, and multiplying a number by zero is always zero.

However, I think it's likely that the leading and trailing numbers are near zero but not zero.  For example, in the filter I was testing with, the first sample value is 1.9054464682556382e-016 which is very near zero, but not zero.  We will make no changes to the output in this case.

17.0.83 (available in a few minutes) will adjust the lip-sync automatically for these filters.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on February 07, 2012, 09:48:13 am
Matt,

usually filter kernels are windowed to avoid a data step at the start end end of the kernel. Thus the values are quite small. But they are not zero. As stated in the pretty good book at www.dspguide.com we shall not underestimate the influence of small numbers.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 13, 2012, 09:54:41 pm
I wanted to take a minute and thank everyone involved in this thread.

It's really fun for me when smart users work together with us to build something neat.

In this case we even got generous help from some of the leading experts in the world on audio convolution.

Thank you all.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on February 13, 2012, 10:37:38 pm
Nice work Matt!  :)

Thanks for making my HTPC project possible.

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: fooze on February 14, 2012, 07:56:35 am
Hi everyone,

I've been using MC for a while now, but this thread has finally made me sign up to the forums.

I am very impressed by the users and developers working together to achieve such a great outcome! What an excellent community you have here!

I am very excited about getting my mic calibrated and buying Uli's software so I can at last get a taste of DRC in an easy to use package. Uli and Matt, have you considered partnering with a mic calibrator and writing some fancy scripts to make the world's leading DRC package even more user friendly? I would seriously consider spending $750 - $1000 US on a product that had everything I needed and guided me through setup from start to finish.

Here's to the future!

Matt.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on February 15, 2012, 01:29:00 am
DVD playback:

Is there a solution to get dvds to play without large stutter when the convoled filters have a large delay?

I know that converting all dvds to mkv is one solution, but notmy preferred one.

Ideally there would be a custom video playback setting that would fix the problem
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 15, 2012, 06:26:11 am
DVD playback:

Is there a solution to get dvds to play without large stutter when the convoled filters have a large delay?

I know that converting all dvds to mkv is one solution, but notmy preferred one.

Ideally there would be a custom video playback setting that would fix the problem

The issue is that the Microsoft DVD Navigator (the thing that reads DVDs on Windows) will not provide the audio more than a little ahead of the video.  This doesn't work well if there's a large audio latency.  People that set the primary buffer size in Options > Audio to a large size run into this same problem.

One solution would be to do DVD title play, which plays the raw MPEG of the main title.  This is what we do when streaming a DVD to a DLNA box.  This solution could work locally as well, but would disable trailers, menus, etc.

Another solution would be to find or write another DVD navigator.  However, it doesn't seem like anyone has made much progress on this, possibly because of the DRM that can be baked into DVD.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on February 15, 2012, 12:01:44 pm
Hi,

when is it possible to use active filters in MC17?
I have a 2-Way with extra Sub with filters created in acourate.
I still have to use an VSTHost for this and cannot use directly MC17.

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 15, 2012, 12:04:39 pm
when is it possible to use active filters in MC17?

I'm not familiar with "active filters."

Could you explain what you mean in a little more detail?

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on February 15, 2012, 12:17:37 pm
when is it possible to use active filters in MC17?
I have a 2-Way with extra Sub with filters created in acourate.
I still have to use an VSTHost for this and cannot use directly MC17.
Erich,

you can immdiately use the "active filters".  :)
Simply create a Multiway filter WAV by Acourate from File menu, selecting e.g. Cor1L44.dbl and save it as e.g. ErichCor.wav

Then use a config file with MC like this:

Code: [Select]
44100 2 4 0
0 0
0 0 0 0
C:\AcourateProjects\Erich\ErichCor.wav
0
0.0
0.0
C:\AcourateProjects\Erich\ErichCor.wav
1
1.0
1.0
C:\AcourateProjects\Erich\ErichCor.wav
2
0.0
2.0
C:\AcourateProjects\Erich\ErichCor.wav
1
1.0
3.0

channel 0 is Sub left, hannel 1 is Sub right, channel 2 is Main speaker lft, channel 3 is Main speaker right.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on February 15, 2012, 12:23:16 pm
Hallo Uli,

and where is the channel mapping to my fireface?
I have a 2.1 system full active (2x TMT+HT, 1x Sub).

My actual config is:
Code: [Select]
192000 2 6 0
0 0
0 0 0 0 0 0
h:\acourate_Daten\aktiv\gut\Cor1S192.wav
0
0.0
4.0
h:\acourate_Daten\aktiv\gut\Cor1S192.wav
1
1.0
5.0
h:\acourate_Daten\aktiv\gut\Cor2S192.wav
0
0.0
2.0
h:\acourate_Daten\aktiv\gut\Cor2S192.wav
1
1.0
3.0
h:\acourate_Daten\aktiv\gut\Cor3S192.wav
0
0.0
0.0
h:\acourate_Daten\aktiv\gut\Cor3S192.wav
1
1.0
1.0

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on February 15, 2012, 12:25:17 pm
@Matt:
http://www.acourate.com/XOWhitePaper.pdf (http://www.acourate.com/XOWhitePaper.pdf)
Hope this helps ;-)

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on February 15, 2012, 12:46:30 pm
Hallo Uli,

and where is the channel mapping to my fireface?
I have a 2.1 system full active (2x TMT+HT, 1x Sub).

My actual config is:
Code: [Select]
192000 2 6 0
0 0
0 0 0 0 0 0
h:\acourate_Daten\aktiv\gut\Cor1S192.wav
0
0.0
4.0
h:\acourate_Daten\aktiv\gut\Cor1S192.wav
1
1.0
5.0
h:\acourate_Daten\aktiv\gut\Cor2S192.wav
0
0.0
2.0
h:\acourate_Daten\aktiv\gut\Cor2S192.wav
1
1.0
3.0
h:\acourate_Daten\aktiv\gut\Cor3S192.wav
0
0.0
0.0
h:\acourate_Daten\aktiv\gut\Cor3S192.wav
1
1.0
1.0

You are routing the sub to channels 4/5, the TMT to channels 2/3 and the tweeters to channes 0/1, right?
As you have only one sub you may route both stereo channels to output channel 4 (if the sub is connected physically at this output)

@ Matt: BTW I wonder what happens if the sum of left and right input channels exceed 0 dB. Matt, can you tell us?

Anyway you use the putput channels in consecutive order. If you use the ASIO interface then you can select the starting channel in the MC ASIO settings by the parameter Channel offset (select even numbers).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 15, 2012, 12:51:38 pm
@ Matt: BTW I wonder what happens if the sum of left and right input channels exceed 0 dB. Matt, can you tell us?

The normalize volume option in the convolution engine targets -6 dB.  This is done to provide headroom and lower the chance of clipping.

However, it's still mathematically possible (but hopefully rare with real world signals) for clipping to occur (exceeding 0 dB in AudioVero's terms).

When this happens, clip protection will engage.  This will turn down the level gradually until no clipping occurs.  It is possible to instead flat-line overflows by selecting this option in the lower left of DSP Studio, but the default 'Clip Protection' method is recommended.

If you use Internal Volume and often listen below 100%, it will provide more headroom which makes clipping less common:
http://wiki.jriver.com/index.php/Volume
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on February 15, 2012, 03:30:09 pm
@Uli:
Yes, I "connect" the 2 Woofer channels in the Totalmix software of rme together.
This has historical reasons, because before I use acourate I used a lot of VST plugins to have a full active setup with eq and runtime corrections.
There I connected the channels in the mixer software together, therefore it's stil the same.

So I will try to change the order and use it in MC17.
How is the output channel setting then? 5.1?

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on February 15, 2012, 06:37:18 pm
The issue is that the Microsoft DVD Navigator (the thing that reads DVDs on Windows) will not provide the audio more than a little ahead of the video.  This doesn't work well if there's a large audio latency.  People that set the primary buffer size in Options > Audio to a large size run into this same problem.

One solution would be to do DVD title play, which plays the raw MPEG of the main title.  This is what we do when streaming a DVD to a DLNA box.  This solution could work locally as well, but would disable trailers, menus, etc.

Another solution would be to find or write another DVD navigator.  However, it doesn't seem like anyone has made much progress on this, possibly because of the DRM that can be baked into DVD.

Is there a setting in MC to enable DVD title play only?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on February 15, 2012, 07:24:46 pm
Is there a setting in MC to enable DVD title play only?

Not for local playback.  It's just something we've discussed adding, so I don't have any guess as to when or if we might do it.

Please feel free to start a thread on the topic and gauge the general interest.  When lots of people want things, they're more likely to happen.

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on February 15, 2012, 08:36:52 pm
DVD playback: Is there a solution to get dvds to play without large stutter when the convoled filters have a large delay?

I am doing exactly that (playing optical blu-ray and dvd with large convolver delay) with no problems. I just use the advanced video settings to set a delay for lip sync, usually -300 ms or so.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on February 15, 2012, 08:43:13 pm
The normalize volume option in the convolution engine targets -6 dB.

I believe Matt is sending pink noise to do the normalizing. If the various input channels are correlated, two channels combined will sum to +6db and the normalization will set the gain down -12 dB to compensate and achieve -6dB. Is that how it works?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on February 15, 2012, 08:47:34 pm
Hi, when is it possible to use active filters in MC17?

I am using active filters now with the JRiver convolver (I call it JRevolver). I have three, three-way loudspeakers with active XO and three subwoofers with active XO. Sixteen output channels in all.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on February 17, 2012, 03:01:46 pm
I have done it and changed to full active convolving within MC17 directly.
Sound is like before, maybe a bit more relaxed, but better handling of buffers so no clicks from time to time like before with external VSTHost.

Thanks for this great piece of software.

Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: kotani on March 01, 2012, 10:04:25 am
Thank you so much for this feature!

Unfortunately, I can clearly hear the difference when using 192khz filters as opposed to 44.1khz filters when I am listening to 44.1khz content. I highly prefer the 44.1khz filters in that case.

I am currently manually switching between the different sample rates depending on my music content, which is a bit tedious.
Thank you for all the hard work, but I would also greatly appreciate automatic sample rate filter switching based on the generated .cfg file.

Thank you very much...
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Gerbrand on March 25, 2012, 07:27:26 am
First of all: thanks a lot for this new feature. I am now experiencing the clearest bass I have ever heard in my system!

Nevertheless, I still have some issues. Allthough the convolution engines states it is working at 4x real time, I still experience the occasional stutters and/or slowing down of the audio. I am playing most of my content off a NAS or physical disk and this happens in both cases.

Is there anything that can be done to remedy this?

Thanks,

Gerbrand
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on March 25, 2012, 08:09:17 am
I still experience the occasional stutters and/or slowing down of the audio.

Try increasing buffering in Options > Audio > Output mode settings...
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: frogger on April 01, 2012, 11:27:56 am

Hello

Thanks so much for your hard work to do this great piece of software. I`am using JR Convolver with 2 channel
convolving for my main speaker.  2 subwoowers are in work...

The only think that missing is the support of different filters for different samplerates.
Is there a chance for this in the future ? 

Thanks...
 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on April 01, 2012, 09:48:16 pm
The only think that missing is the support of different filters for different samplerates.
Is there a chance for this in the future ?

Welcome.

I can't say when it will happen, but supporting different filters for different sample rates is on our list.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Gerbrand on April 03, 2012, 05:13:57 pm
Try increasing buffering in Options > Audio > Output mode settings...

In the end I could solve the problem by no longer using ASIO. With WASAPI event style I do not experience any issues. This is a pity though, because I would prefer ASIO.

Gerbrand
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on April 16, 2012, 01:06:33 am
Hi All

Sorry to be dumb, as I'm sure you've covered this, but I cant find it...

I'm trying to use REW DRC filters in MC.  

1)  Do I need ConvolutionVST or not?
2)  When exporting filters from REW should I select "Stereo" and 32 bit if exporting a full range correction filter for a 2-ch setup ?
3)  What is the feeling of REW vs others, eg audiolense?  I much prefer REW's interface and its more full measuring/reporting capability.  Are its correction filters as good as good as those from other product's?
4) for A/B comparison, Iv'e disabled "Normalize Filter Volume"  Is that a mistake (otherwise volume differences make A/B fairly meaningless. 
5) When listening to Generator->Pink PN in REW via loopback in MC, with convolution enabled it stutters, but doesn't with convolution unchecked.  Is there a MC setting to help that?  My PC is plenty powerful.

Thanks

Thanks

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: zydeco on April 20, 2012, 06:06:50 pm
Is an atom based set-up suitable for 6- or 8-channel convolution at 44kHz? (No need for video as machine is dedicated to music). I'm current running an old MOBO with Intel Q6600 (4 Cores, 2.4GHz) which works well but the MOBO is on it's last legs with support for a new solid-state h/d not solid. The thought was to move towards a full silent computer - as it sits near the listening position - and hence the interest in Atom (something like Intel ATOM Dual-Core D525 processor). Has anyone got experience with this type of processor running MC convolution?

Zydeco
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on April 24, 2012, 12:09:35 am
If using REW and MC is it possible to do corrections on a per speaker basis?  JRiver seems only to take a single convolution file, but I would like to do corrections at the individual speaker level?

In other words: I would like to measure and correct each speaker in my 2.2 setup (4 speakers). After I have each speaker adjusted, using the 4 correction filters, I would like to measure the combined (corrected) response in REW and make an additional filter for further (combined speaker) adjustments.

Can this be done using REW and JRiver MC?  Or, can this only be done with other programs such as Audiolense?

Thanks


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: zydeco on April 24, 2012, 08:13:01 pm
Is an atom based set-up suitable for 6- or 8-channel convolution at 44kHz? (No need for video as machine is dedicated to music). I'm current running an old MOBO with Intel Q6600 (4 Cores, 2.4GHz) which works well but the MOBO is on it's last legs with support for a new solid-state h/d not solid. The thought was to move towards a full silent computer - as it sits near the listening position - and hence the interest in Atom (something like Intel ATOM Dual-Core D525 processor). Has anyone got experience with this type of processor running MC convolution?

Zydeco

I've done a quick test with a friend's Intel D510M Atom/MOBO and it seems to do 3-way x/o with 96kHz filters / 131072 taps with less than 20% CPU usage. I'm not interested in video and the initial delay is irrelevant). Does this sound right? If so, then it seems as if the ATOM processors can handle multi-way cross-over convolution.

Zydeco
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on April 24, 2012, 10:07:23 pm
If using REW and MC is it possible to do corrections on a per speaker basis?  JRiver seems only to take a single convolution file, but I would like to do corrections at the individual speaker level?

In other words: I would like to measure and correct each speaker in my 2.2 setup (4 speakers). After I have each speaker adjusted, using the 4 correction filters, I would like to measure the combined (corrected) response in REW and make an additional filter for further (combined speaker) adjustments.

Can this be done using REW and JRiver MC?  Or, can this only be done with other programs such as Audiolense?
Thanks
You may take what you want here, just suggestions.  It depends of what you are trying to do.
First, why don't you do all the filters and X/O right in MC and use REW only for measurements?  For each speaker measurements, you can plug only the one you want to test, and so on.  This is what I did with success. 

MC EQ's are working fine and you can even monitor frequency response in real time in REW while you constructing the MC's filters. 
All wave additions and substractions should be included,  direct waves, reflections and from the other speaker your measuring.  3 sources
Check the acoustic XO's at your listening place, should be in phase from symmetric HP distance and work on the best XO fit from LFreq to HFreq speakers arrays left and right. 

jacques
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on April 25, 2012, 04:40:17 am
First, why don't you do all the filters and X/O right in MC and use REW only for measurements?...

MC EQ's are working fine and you can even monitor frequency response in real time in REW while you constructing the MC's filters....
jacques

Jacques. Are you saying to use mc EQ not convolution?  I suppose I could use EQ to get the frequency response of each speaker in basic balance and then try to run REW through mc in loopback mode ( with the EQ filters applied) to do convolution on the combined all-channel sweep.

With a 2.2 setup ( 2 mains + 2 subs) I want to BOTH work the x/o's between subs and mains AND do room correction.  Certainly room correction works best with convolution rather than simple EQ.

What software are others using to make the filters for x/o and or DRC?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on April 25, 2012, 07:55:01 am
Jacques. Are you saying to use mc EQ not convolution?  I suppose I could use EQ to get the frequency response of each speaker in basic balance and then try to run REW through mc in loopback mode ( with the EQ filters applied) to do convolution on the combined all-channel sweep.

With a 2.2 setup ( 2 mains + 2 subs) I want to BOTH work the x/o's between subs and mains AND do room correction.  Certainly room correction works best with convolution rather than simple EQ.

What software are others using to make the filters for x/o and or DRC?
Yes, I do not use convolution anymore.  I did not like REW's automatic target resolutions, it is more accurate to do it manually through MC's EQ on.  I used a pink noise wave file and REW's RTA graph and MC's parametric EQ side by side.  MC's EQing is directly responding on the REW'S RTA graph for monitoring results.  You should take all precautions on where to apply corrections and where not, using the"excess group delay graph".  MC's low pass and high pass filters are great for XO construction.  
It is always better to use sweep measurements if you can without stuttering to see the phase and delay responses!!  I can't anymore without stuttering:'(.  Working only with frequency responses is hazardous.
The best for you would be to follow Bob McCarthy's instructions
http://www.google.ca/imgres?q=bob+mccarthy+phase-alignment&um=1&hl=fr&sa=N&rlz=1R2ADRA_frCA388&biw=1024&bih=642&tbm=isch&tbnid=mLRdz7KA5BuS4M:&imgrefurl=http://bobmccarthy.wordpress.com/2010/03/11/phase-alignment-of-spectral-crossovers/&docid=hH4RNrTc1uP2dM&imgurl=http://bobmccarthy.files.wordpress.com/2010/03/fig2-35a-spectral-crossover-1khz.png&w=1827&h=1030&ei=Ke6XT9S8L5KY8gTVtaSVBg&zoom=1&iact=rc&dur=3&sig=114531235164415110848&page=1&tbnh=94&tbnw=167&start=0&ndsp=15&ved=1t:429,r:1,s:0,i:67&tx=87&ty=54
http://bobmccarthy.wordpress.com/2010/02/08/phase-alignment-of-subs-why-i-dont-use-the-impulse-response/
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on April 25, 2012, 10:16:47 am
Caleb
I am almost sure that you are aware of all those tricky filtering manipulations that I've mention above.   My reply was just to add some information on the subject. ;).
I have fixed XOs before without MC, using mediamonkey 2 channel outputs and doing 8 channel processing in the external Motu 828 and overall correction using the AIXcoustic EQ.  This way I was able to use REW sweeps without any problems.  But now that I am able to fix XOs and EQ from MC alone like I was hoping to do,  I still have this loopback stuttering issue :'(.
I have tried the exasound e18 multichannel DAC along with MC for XO + EQ correction which worked perfectly as long sweeps measurements where not involved. But I do need sweep measurements for accurate processing using MC loopback!!!. 
I'm still waiting for my new RME HDSP AES32 card to arrived, hoping to find a solution for my new upcoming setup.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on April 25, 2012, 10:24:18 am
Hi Jaques.  Thanks for the info.  I appreciate it.  I will look closely at your recommendations...
Title: MC 64bit Convolution: Trying to Bring it All Together
Post by: ccclapp on April 25, 2012, 11:50:31 pm
I've fully re-read this entire thread today and have a better understanding.  For the benefit of others and myself, given the length of this thread, I am trying to summarize the concepts and procedures discussed in the preceding 7 pages, both through my (layman's) explanation below and by means of my questions and hoped for answers that follow:

-- I see that to use multi-driver/multi-ch filters in MC (meaning needing more than one filter) one accesses the desired filters by creating a config file following the specs for the Convolver config file format:
http://convolver.sourceforge.net/config.html
http://convolver.sourceforge.net/configegs.html

In that text config file one puts the path to all the desired correction filter files to be used in MC's convolution DSP.  In addition, one can add additional delays and other criteria.  This answers my prior question above as to how to use individual driver/speaker corrections given that MC only accepts a single file.

I also understand that in addition to (or in place of) the above one can use the Room Correction and/or the PEQ sections of MC DSP studio for similar purposes, e.g. delays, channel mapping, x/o's, etc, etc

After following all of the links and/or references in this thread and reading everything on all referenced sites (WOW!), I understand that in general, X/O and DRC corrections are best handled via convolution filters, rather than the more simple PEQ and/or MC Room Correction, because the former will better handle time domain, specifically delays and phase shifts, in addition to frequency adjustments handled by the latter. So even when speaking of a seemingly simple single-speaker X/O (vs an even more complex room correction), being able to include delays and phase shifts (and other components) moves one out of minimum-phase adjustments and into linear-phase adjustments yielding textbook results, potentially perfect in both frequency and time.  This is the fundamental difference between electronic (passive) X/O and computer (active) X/O.  Thus, if using the PEQ and/or Room Correction components of MC DSP studio and NOT the Convolution component, one is, at best, matching passive X/O and never achieving active X/O potential.  On the other hand, two important consequences of adding delay and phase (linear-phase adjustments) are enhanced:  1) correction artifacts, i.e. "pre-ringing" (hearing parts of the correction sooner in time than the direct signal) and, 2) even greater single-listening-position sensitivity (all other locations will likely be even worse).  I'm sure I've at least partially misstated this, but hopefully not fundamentally so.

Understanding the above (and welcoming any corrections others will offer), I have the following questions:

1)  Do we manually create the config text file, or will programs generate this for us (likely in need of editing).  E.G. I understand that DRCDesigner may create the config file for DRC generated correction filters.

2)  Recognizing that REW may not be as robust as other products like Acourate and Audiolense, if desired can our config file point to REW correction files, or are they somehow not compatible with the config file usage?

3)  If one desired, can a config file point to filters made by more than one program (e.g. if one chose to do per speaker corrections in REW and then combined post-adjusted room correction in another program, assuming all filters are .wav files)

4) Recognizing the limitations described above, if one wanted to use MC PEQ and/or Room Correction in addition to convolution, what should be the order of each DSP component, i.e. should PEQ come before Convolution?  Why?

5)  @ TheLion describes he uses Accurate for filters, but then uses Audiolense to calculate delays, which he then manually adds to the config file, because Accurate does not calculate delays (as well or at all?).  Why not do it all in Audiolense?

6) @ TheLion describes he uses hardware DSP on his subs and SW DSP on everything else.  Why not do it all in SW?  To do otherwise implies a HW solution is superior to 64bit convolution in its present state-of-the-art.  Is that your feeling?  Then why not do it all in HW?

7) @ TheLion describes he Audiolense does not correctly calculate the delay for his subs.  How do you know what the correct delay SHOULD BE? Is it only based on relative distance, or other factors?  Why do you think the SW calculation is wrong?

8 )  Being sensitive that Uli has contributed greatly to this thread and thus MC's execution of convolution, what are the pluses/minuses of Acourate vs Audiolense vs DRC, REW, etc

9)  As Uli pointed out, because @ TheLion is summing both the frequencies below 80hz from all 7 separate speaker channels and the LFE channel below 160 hz, all to his subs , and because each of those 7 speakers/channels are at different distances and thus have different delays (and are different than the LFE), the delay  (and likely the phase) from the summed signals to the subs must be all messed up (7 different delays/phase x 2 signal components coming to 2 subs, it must be completely smeared), because at present MC does not support additional parameters for summed delays.  Given your precision, why isn't this a problem for you?    

10) In concept, with a multi-driver/multi channel setup such as @ hulkssor or @ TheLion, what is the workflow to create X/O's, balance each speaker and apply room correction?

I prefer to do XO and DRC incrementally.  By this I mean I would like to proceed asfollows:

--A)  Set speaker locations while running RTA w Pink PNoise, triangle formulas, laser measurements and other conventional methods;
--B)  Take near-field frequency response measurements ofeach driver with band limited frequency sweeps to determine sweet range of eachdriver and successive driver to set X/O points and slopes;
--C)   Measuring mid-field and in exact path betweenspeaker and listening position and at exact listening height, run DRC SW tocreate linear-phase filter to set delay and phase adjustments for the driverson individual speaker basis, based on that speaker's relative acoustic centerfor its individual drivers;
--D)  Load these per speaker correction filters into DRC software or JRiver MC vialoopback feature http://yabb.jriver.com/interact/index.php?topic=70242.0and then use DRC SW for combined response (single sweep to allchannels/speakers) adjustment room correction based on desired "housecurve".
--E)  Create required Convolver config text filepointing to the above generated filters and load into JRiver MC convolution
--F)   Load these combined correction filters into DRC software or JRiver MC via loopbackfeature with convolution applied, re-measure from listening positionand adjust existing filters, as desired/needed.

Does anyone know in DRC SW one can I load incremental and/orfinal adjustment filters and perform additional measurements/corrections "ontop of" existing filters?  


Sorry for the long post, but as stated above Im hoping to bring together much of what has been discussed and to reconciled some inconsistencies from the preceding 7 pages of this thread.

I look forward to your wisdom, answers and corrections.

Thanks!! and thanks Matt & JR for this feature!!
Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: jacqlan111 on April 26, 2012, 10:22:48 am
Thus, if using the PEQ and/or Room Correction components of MC DSP studio and NOT the Convolution component, one is, at best, matching passive X/O and never achieving active X/O potential.  On the other hand, two important consequences of adding delay and phase (linear-phase adjustments) are enhanced:  1) correction artifacts, i.e. "pre-ringing" (hearing parts of the correction sooner in time than the direct signal) and, 2) even greater single-listening-position sensitivity (all other locations will likely be even worse).  I'm sure I've at least partially misstated this, but hopefully not fundamentally so.
WOW!!  Caleb and thanks for this synthesis it is very impressive.
I look foreward for answers.   I'm overwhelmed.
I must ask you this trivial question.  Why MC's PEQ could not achieve active X/O potential?  It is digitally processed,  X/O slopes (order) and frequencies position are adjustable, time delays can be managed too.  Phase is also manageable by the way isn't it?  One can move speakers physically too (DIY). 
I must admit that creating those convolution files does not attract me very much.  If I can do without it 8)
Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: ccclapp on April 26, 2012, 10:50:37 am
I must ask you this trivial question.  Why MC's PEQ could not achieve active X/O potential?  It is digitally processed,  X/O slopes (order) and frequencies position are adjustable, time delays can be managed too.  Phase is also manageable by the way isn't it?  One can move speakers physically too (DIY). 

Above Erich (@v_erich) posted the following link to a white paper by Uli (Acourate), which gives a good and reasonably understandable (for we mortals) description of X/O's, minimum-phase and linear-phase.  Here it is again:

http://www.acourate.com/XOWhitePaper.pdf

This should answer the questions you posed (assuming I correctly understand what it says).
Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: ccclapp on April 26, 2012, 11:06:58 am
10)...I prefer to do XO and DRC incrementally.  By this I mean I would like to proceed asfollows:

--A)  Set speaker locations while running RTA w Pink PNoise, triangle formulas, laser measurements and other conventional methods;
--B)  Take near-field frequency response measurements ofeach driver with band limited frequency sweeps to determine sweet range of eachdriver and successive driver to set X/O points and slopes;
--C)   Measuring mid-field and in exact path betweenspeaker and listening position and at exact listening height, run DRC SW tocreate linear-phase filter to set delay and phase adjustments for the driverson individual speaker basis, based on that speaker's relative acoustic centerfor its individual drivers;
--D)  Load these per speaker correction filters into DRC software or JRiver MC vialoopback feature http://yabb.jriver.com/interact/index.php?topic=70242.0and then use DRC SW for combined response (single sweep to allchannels/speakers) adjustment room correction based on desired "housecurve".
--E)  Create required Convolver config text filepointing to the above generated filters and load into JRiver MC convolution
--F)   Load these combined correction filters into DRC software or JRiver MC via loopbackfeature with convolution applied, re-measure from listening positionand adjust existing filters, as desired/needed.

Does anyone know in DRC SW one can I load incremental and/orfinal adjustment filters and perform additional measurements/corrections "ontop of" existing filters? 


Uli replied to this question on the Acourate forum (in about 30 seconds, very impressive customer support!!), as follows:

"So with Acourate you can:
1. step: create crossover filters
2. step load the filters in the Acourate logsweep recorder and measure a single driver or all drivers
3. step: if you like you can use single driver measurements to linearize the driver. This results in combined crossover/linarization filters
4. step. load the filters in the Acourate logsweep recorder and measure a single driver (e.g. for verification) or all drivers
5. step: compute room correction filters and get filter combined of crossover, driver linearization and room correction
6. step: load the filters in the Acourate logsweep recorder and measure the system for verification (if desired)
7. step: load the final filters into JRiver and enjoy the music
I hope this has answered your questions
--Uli"

It is great to be able to "step" into filters incrementally, vs push one button, hope for the best and never understand what you've done.
Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: BerntR on April 26, 2012, 05:28:28 pm
7) @ TheLion describes he Audiolense does not correctly calculate the delay for his subs.  How do you know what the correct delay SHOULD BE? Is it only based on relative distance, or other factors?  Why do you think the SW calculation is wrong?

The reason that the calculated sub delay doesn't work for TheLion is most probably that the delay after correction is not comparable to the delay before correction. At lower frequencies the difference due to a low pass filter for instance, can be substantial. The delay management in Audiolense works well enough to keep the speakers timed within a sample under normal circumstances.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: JimH on April 26, 2012, 05:35:34 pm
TheLoin should be TheLion.  I've changed it.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on April 26, 2012, 09:01:25 pm
TheLoin should be TheLion.  I've changed it.
Now that's funny  :)
Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: BradC on April 26, 2012, 10:57:59 pm
I'll have a go at some answers, see below




1)  Do we manually create the config text file, or will programs generate this for us (likely in need of editing).  E.G. I understand that DRCDesigner may create the config file for DRC generated correction filters.

acourate doesn't but I believe that audiolense will create the file

2)  Recognizing that REW may not be as robust as other products like Acourate and Audiolense, if desired can our config file point to REW correction files, or are they somehow not compatible with the config file usage?

Unless REW has updates that I'm not aware of, REW does not calculate files for convolution

3)  If one desired, can a config file point to filters made by more than one program (e.g. if one chose to do per speaker corrections in REW and then combined post-adjusted room correction in another program, assuming all filters are .wav files)

yes

4) Recognizing the limitations described above, if one wanted to use MC PEQ and/or Room Correction in addition to convolution, what should be the order of each DSP component, i.e. should PEQ come before Convolution?  Why?

ordering can affect the result see below

5)  @ TheLion describes he uses Accurate for filters, but then uses Audiolense to calculate delays, which he then manually adds to the config file, because Accurate does not calculate delays (as well or at all?).  Why not do it all in Audiolense?


6) @ TheLion describes he uses hardware DSP on his subs and SW DSP on everything else.  Why not do it all in SW?  To do otherwise implies a HW solution is superior to 64bit convolution in its present state-of-the-art.  Is that your feeling?  Then why not do it all in HW?

7) @ TheLion describes he Audiolense does not correctly calculate the delay for his subs.  How do you know what the correct delay SHOULD BE? Is it only based on relative distance, or other factors?  Why do you think the SW calculation is wrong?

delay for subs are different as there are so few (often <1) wavelengths in a room. I have use dthe process where I started with the delay calculated from the distance, then used the RTA in REW and adjusted delays until I got the smoothest result.
Calculation of the delays for the sub in acourate and audiolense can be erroneous as the impulse response does not have a sharp peak.

8 )  Being sensitive that Uli has contributed greatly to this thread and thus MC's execution of convolution, what are the pluses/minuses of Acourate vs Audiolense vs DRC, REW, etc

REW does not do convolution filters (ie time domain)
I have used DRC and acourate, I find acourate much better. Apparently there are different philosophies for the psychoacoustic analysis.
I have not tried the audiolense demo, and it is more user friendly. TheLion reported that he preferred the results from acourate.

9)  As Uli pointed out, because @ TheLion is summing both the frequencies below 80hz from all 7 separate speaker channels and the LFE channel below 160 hz, all to his subs , and because each of those 7 speakers/channels are at different distances and thus have different delays (and are different than the LFE), the delay  (and likely the phase) from the summed signals to the subs must be all messed up (7 different delays/phase x 2 signal components coming to 2 subs, it must be completely smeared), because at present MC does not support additional parameters for summed delays.  Given your precision, why isn't this a problem for you?    

This can be fixed by performing the delays for speaker distance after the bass management. I am not sure where the delays are in the chain in the convolver in MC, but you could instead use the delays in the room correction DSP module, and place it after the convolver



Does anyone know in DRC SW one can I load incremental and/orfinal adjustment filters and perform additional measurements/corrections "ontop of" existing filters?  

-you could run multiple convolutions in series, but I don't think MC allows multiple instances of the DSP filters (could be wrong), so you would need a different convolver such as convolverVST or pristine space.
This would be tricky however, as you would need to do the measurement of the additional filter, with the first one in place already (acourate's logsweep recorder allows this). For changing house curves, this doesn't really make sense.
For separating room correction and active XOs it might make sense, but adds significant computational load (if filters are 64 bit)


Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: ccclapp on April 26, 2012, 11:28:05 pm
The reason that the calculated sub delay doesn't work for TheLion is most probably that the delay after correction is not comparable to the delay before correction. At lower frequencies the difference due to a low pass filter for instance, can be substantial. The delay management in Audiolense works well enough to keep the speakers timed within a sample under normal circumstances.

Thanks @BerbtR, I look forward to learning more about the subtle aspects of Audiolense...
Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: ccclapp on April 26, 2012, 11:59:09 pm
@BradC

Thanks for your informed reply to my myriad of questions!!  I appreciate it.

I'll have a go at some answers, see below

1)  Do we manually create the config text file, or will programs generate this for us (likely in need of editing).  E.G. I understand that DRCDesigner may create the config file for DRC generated correction filters.

acourate doesn't but I believe that audiolense will create the file


Can/will acourate and audiolense please verify the above?


2)  Recognizing that REW may not be as robust as other products like Acourate and Audiolense, if desired can our config file point to REW correction files, or are they somehow not compatible with the config file usage?

Unless REW has updates that I'm not aware of, REW does not calculate files for convolution

REW does correction filters as .wav files.  These may or may not be as robust as Audiolense / Acurate / DRC, however I do not understand why the REW .wav filters cannot be referenced in a cofig file.  Please explain...thanks

4) Recognizing the limitations described above, if one wanted to use MC PEQ and/or Room Correction in addition to convolution, what should be the order of each DSP component, i.e. should PEQ come before Convolution?  Why?

ordering can affect the result see below

I do not see/follow youre reference "ordering can affect the result see below"  Please be more specific...Thanks

7) @ TheLion describes he Audiolense does not correctly calculate the delay for his subs.  How do you know what the correct delay SHOULD BE? Is it only based on relative distance, or other factors?  Why do you think the SW calculation is wrong?

delay for subs are different as there are so few (often <1) wavelengths in a room. I have use dthe process where I started with the delay calculated from the distance, then used the RTA in REW and adjusted delays until I got the smoothest result.
Calculation of the delays for the sub in acourate and audiolense can be erroneous as the impulse response does not have a sharp peak.

Would Audiolense and Acourate please add their perspective to this...Thanks


9)  As Uli pointed out, because @ TheLion is summing both the frequencies below 80hz from all 7 separate speaker channels and the LFE channel below 160 hz, all to his subs , and because each of those 7 speakers/channels are at different distances and thus have different delays (and are different than the LFE), the delay  (and likely the phase) from the summed signals to the subs must be all messed up (7 different delays/phase x 2 signal components coming to 2 subs, it must be completely smeared), because at present MC does not support additional parameters for summed delays.  Given your precision, why isn't this a problem for you?   

This can be fixed by performing the delays for speaker distance after the bass management. I am not sure where the delays are in the chain in the convolver in MC, but you could instead use the delays in the room correction DSP module, and place it after the convolver

Would Audiolense and Acourate please add their perspective to this...Thanks

8 )  Being sensitive that Uli has contributed greatly to this thread and thus MC's execution of convolution, what are the pluses/minuses of Acourate vs Audiolense vs DRC, REW, etc

REW does not do convolution filters (ie time domain)
I have used DRC and acourate, I find acourate much better. Apparently there are different philosophies for the psychoacoustic analysis.
I have not tried the audiolense demo, and it is more user friendly. TheLion reported that he preferred the results from acourate.

Would Audiolense and Acourate please add their perspective to this...Thanks

9)  As Uli pointed out, because @ TheLion is summing both the frequencies below 80hz from all 7 separate speaker channels and the LFE channel below 160 hz, all to his subs , and because each of those 7 speakers/channels are at different distances and thus have different delays (and are different than the LFE), the delay  (and likely the phase) from the summed signals to the subs must be all messed up (7 different delays/phase x 2 signal components coming to 2 subs, it must be completely smeared), because at present MC does not support additional parameters for summed delays.  Given your precision, why isn't this a problem for you?   

This can be fixed by performing the delays for speaker distance after the bass management. I am not sure where the delays are in the chain in the convolver in MC, but you could instead use the delays in the room correction DSP module, and place it after the convolver

Is this the recommended workflow?


BradC, just checking...do you have any identity of interest (affiliation) with either Audiolense or Acourate?  No offence implied, just trying to keep all information clear.

Thanks very much for your thoughtful and knowledgeable reply!!

Title: Re: MC 64bit Convolution: Trying to Bring it All Together
Post by: BradC on April 27, 2012, 12:56:55 am


Can/will acourate and audiolense please verify the above?

I believe that audiolense will, but acourate won't generate the convolver config file. It's not that hard though


REW does correction filters as .wav files.  These may or may not be as robust as Audiolense / Acurate / DRC, however I do not understand why the REW .wav filters cannot be referenced in a cofig file.  Please explain...thanks

It seems that you could use REW filters in a convolver. They would however, only be minimum phase correction. YOu would probably not get much (if any) improvement in the impulse response of your system, unlike with linear phase filters

If you mix correction files from different programs in one convolver config file, make sure they are all for the same sampling rate and are of the same length

I do not see/follow youre reference "ordering can affect the result see below"  Please be more specific...Thanks

when using delays, the order of the delay can affect bass management

Would Audiolense and Acourate please add their perspective to this...Thanks


Would Audiolense and Acourate please add their perspective to this...Thanks

Would Audiolense and Acourate please add their perspective to this...Thanks
 
Is this the recommended workflow?


BradC, just checking...do you have any identity of interest (affiliation) with either Audiolense or Acourate?  No offence implied, just trying to keep all information clear.

I have purchased acourate and used DRC in the past.

Thanks very much for your thoughtful and knowledgeable reply!!


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on April 29, 2012, 12:05:29 pm
I take the chance to move this post here.
Not this thing again ?  Try to see it through newbies eyes.
Many pages where dedicated for this wasapi loopback option.  MC experts (right here) might see it as an easy ride.  It's not that obvious to everyone (me).
Can sweep measurements can be done without using the live://loopback URL option? (for ASIO and win XP)
I am not familiar with the VST convolver softwares mentioned frequently overhere (audiolense, convolver.sourceforge, DRC........).  What is the main differences with the REW measurement capacities and convolution IR WAV files imported in MC?  
Can someone gives a quick idea of their uses and if it is the case, their sweep measurements MC playback possibilities, without using the Wasapi loopback?
I saw that config text files for EQ and X/O DSP multichannel processing can be imported into MC.
I, and surely others are interested to make sweep measurements and being able to do it through MC playback to confirm their DSP filtering.
What is the easy way to do it, even if a VST software purchase is needed?
A short overview would be appreciated.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on May 01, 2012, 02:36:55 pm
I'm happy to give a summary reply to Jacques's question above, but first, since this is the MC thread, it would be helpful to understand one aspect of MC for convolution, as follows:

At various times with various measurement/convolution software, especially REW, its useful to be able to run live measurements through MC with MC applying convolution, e.g. to compare before/after convolution measurements.  I know this can be done recording the sweep and playing back in MC and using the RTA in REW.  However, that will only give frequency response and not waterfall and other time domain analysis.

My question is:  Will using the MC loopback feature while doing live sweeps & measurements in REW yield reliable "corrected" measurements?  Or, will MC loopback add delay, phase shifts or other distortions that will render the corrected live sweeps measurements unreliable?

If  MC loopback does harm the measurement, is a workaround to do ALL ("before" and "after" correction) measurements via loopback?  That way, both the "before" and "after" results will include and MC loopback delay, phase shift, etc, etc.  Would that not make the comparison meaningful?

Thanks!!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on May 01, 2012, 05:22:01 pm
...partially answering my own question above, I just now I confirmed I get a good signal from REW through MC in loopback (no stutters, clicks, pops).  MC  Playback Options is setto WASPI Eventstyle with hardware buffer at anything from 10-100 ms to my firewire Mytek 8x192 DAC.  If I use ASIO instead of WASPI I get stutter.  I assume I should use the least possible buffer, or does it matter?

Correct me if I'm wrong, but I also assume it doesn't matter what sound device should be set to default for REW to play on (to be looped back to MC).   

Does anyone know REW well enough to suggest what graph I should inspect to determine of Im getting any additional delay, phase shifts, etc from loopback that harms by before/after comparison?

Also, does anyone know why most have said we can only use REW RTA, not MC loopback, to inspect before vs after results??  It seems to me the way to do it is via MC loopback, unless there are issues that arent apparent.

PS:  Since I posted this elsewhere, Ill report these findings there as well..

Thanks
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on May 01, 2012, 07:14:41 pm
If your soundcard can do loopback in hardware, you can use a VST host, such as plogue bidule to allow REW to run with the corrections applied.
Even if your hardware can't loopback internally, if you can assign a software channel to any hardware output in the mixer, then you could use a physical loopback cable
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on May 01, 2012, 07:23:43 pm
If your soundcard can do loopback in hardware, you can use a VST host, such as plogue bidule to allow REW to run with the corrections applied.
Even if your hardware can't loopback internally, if you can assign a software channel to any hardware output in the mixer, then you could use a physical loopback cable

Jrmc does this via software. The only question is if its (or for that matter a hw loopback) causes time domain issues that render the resulting measurements of little benefit .
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on May 01, 2012, 08:00:43 pm
MC does this via software. The only question is if its (or for that matter a hw loopback) causes time domain issues that render the resulting measurements of little benefit .
Hi
here a idea that I submit without having tested it.
If a hardware loopback is possible (like in REW time reference loopback or sound card calibration), would it be possible to use the REW card calibration option and calibrate with MC in the path, without MC's corrections? That could eliminate delays issues and render possible comparison before and after corrections?  
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on May 01, 2012, 08:14:38 pm
If your soundcard can do loopback in hardware, you can use a VST host, such as plogue bidule to allow REW to run with the corrections applied.
Even if your hardware can't loopback internally, if you can assign a software channel to any hardware output in the mixer, then you could use a physical loopback cable
So you say that a VST host "as plogue bidule " could allow me to run REW sweeps through MC without using the  "live://loopback" url option?
If you do not recall, the "live://loopback" is not working in my win XP setup.   the VST option could work and solve my problem?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on May 01, 2012, 09:11:07 pm
...would it be possible to use the REW card calibration option and calibrate with MC in the path...? That could eliminate delays issues and render possible comparison before and after corrections?  

Yes, I was thinking that as well:  if we do a calibration using MC loopback, would that adjust for any detrimental time domain impact?
Further, if we take both the "before and "after" measurements in loopback wouldn't that mitigate any variance caused by the loopback setup?  Has anyone tested this?
Again, can anyone describe the REW test to determine is any variance exists from loopback?  Ill do the tests...
Thanks
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on May 02, 2012, 01:43:05 am
So you say that a VST host "as plogue bidule " could allow me to run REW sweeps through MC without using the  "live://loopback" url option?
If you do not recall, the "live://loopback" is not working in my win XP setup.   the VST option could work and solve my problem?

Yes, if your hardware can do loopback.
I use an RME fireface 800 that can send the hardware outputs to an input channel internally.
Plogue bidule uses the input channels, applies delay, convolution and bass management via VST plugins and sends the results to software output channels. The software outputs are routed to different hardware outputs
I use this process from applying correction to TMT5 and windows media center.

I have compared the before and after correction using REW and plogue bidule. The 'after' looks as expected (matches target curve)
The only catch is that if you move the microphone between before and after measurements, the results no longer look as good.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on May 02, 2012, 11:02:42 am
Also, does anyone know why most have said we can only use REW RTA, not MC loopback, to inspect before vs after results??  It seems to me the way to do it is via MC loopback, unless there are issues that arent apparent.
I posted how to use the REW RTA (http://yabb.jriver.com/interact/index.php?topic=69725.0) and was using it last October, but that was before MC had the loopback feature. I use the loopback for both before and after REW measurements so my signal chain is identical. There is no need to use REW in standalone mode anymore.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: ccclapp on May 02, 2012, 11:48:09 am
Thanks

Ill be running tests today to determine if sweeps show and time-domain changes in loopback vs non-loopback.  Ill include REW calibration and hardware 2nd channel mic loopback...

Ill post results so others can evaluate any concerns over effectiveness of this procedure...
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on May 02, 2012, 07:29:35 pm
Thanks

Ill be running tests today to determine if sweeps show and time-domain changes in loopback vs non-loopback.  Ill include REW calibration and hardware 2nd channel mic loopback...

Ill post results so others can evaluate any concerns over effectiveness of this procedure...
I would guess that you could see changes with the phase graph in rew where you can save the first sweep measurement from REW alone and save the other one passing into MC and overlay the two phase curves.  The overlays of the impulse responses will be nice too.
I did so many delays measurements in REW for aligning physically all my DIY speakers, it worked very good.

If they are identical, you could go foreward with it, (lucky guy who can do MC loopback (*)). If they are not identical, but always have the same delay, then the same error will be made for every measurements, then it does not matter??  Is there any other consideration to be aware of?
RTA frequency measurements has to be used in last when all other delays and phase corrections have been made with sweeps.


(*)I need to know which VST software to go around my problem?  Don't want to hurt anybody, but suggestions are welcome.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: jacqlan111 on May 02, 2012, 07:50:51 pm
Yes, if your hardware can do loopback.
I use an RME fireface 800 that can send the hardware outputs to an input channel internally.
Plogue bidule uses the input channels, applies delay, convolution and bass management via VST plugins and sends the results to software output channels. The software outputs are routed to different hardware outputs
I use this process from applying correction to TMT5 and windows media center.

I have compared the before and after correction using REW and plogue bidule. The 'after' looks as expected (matches target curve)
The only catch is that if you move the microphone between before and after measurements, the results no longer look as good.
OK, I think I could do the same when my RME HDSP card will be installed. 
If the Plogue bidule uses the RME input channels  (which consist in a sweep coming from the REW output setting and has been sent to one RME output channel) and MC playback is directed to an other RME output with corrections made in the VST plugin?
Is it that simple? ;)
I could use the MC EQ on top of the plogue bidule or it as to be the plogue bidule corrections only?

A bit confusing!  I will have to try it in real.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on May 02, 2012, 11:10:29 pm
OK, I think I could do the same when my RME HDSP card will be installed. 
If the Plogue bidule uses the RME input channels  (which consist in a sweep coming from the REW output setting and has been sent to one RME output channel) and MC playback is directed to an other RME output with corrections made in the VST plugin?
Is it that simple? ;)
I could use the MC EQ on top of the plogue bidule or it as to be the plogue bidule corrections only?

A bit confusing!  I will have to try it in real.

read the RME manual (it's quote long). It explains how to do the loopback in the mixer and set the mixer routing
The open source convolver has a VST version. Kelly industries have a free bass management VST and delay can be done natively in plogue bidule.

See here for a detailed explanation
http://www.martinloganowners.com/forum/showthread.php?7342-How-much-can-a-computer-do&p=82515
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on May 14, 2012, 09:59:22 pm
Hey Matt,

Thanks for this, it works perfectly. 

As an enhancement, it would be great to to be able to manually adjust the overall gain level similar to the replay gain slider in ConvolverVST.

Here is the issue.  In my case, using Audiolense generated filters, I lose about 10 dB or so of gain.  On most tunes, not a big deal, but with tunes that have a wide dynamic range like The Police Synchronicity or Dire Straits Brothers In Arms or Peter Gabriel Security, the gain is too low.  If I watch the peak level in Convolution, it hovers around 10% and sometimes hits 15% peak.  Even with my hottest mastered tune playing in my collection, I have not seen peaks over 60%.

When I used to use Convolver VST, I would take my hottest master and manually adjust the replay gain so that it was around 90% or so peak, but not clipping.

The output of my sound card goes into a passive preamp, so I can't make up the gain there.  I also have the normalize filter volume turned on.  I know I could enable the EQ or other VST plugin's that have gain controls, but...

Any chance an enhancement like that could be made?  I don't know if others are in a similar spot?

PS.  A second enhancement would have automatic filter switching when the sample rate changes between tunes.  This one probably a lot more work though...

Again, thanks for a great music player!

Cheers, Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on May 15, 2012, 02:57:47 pm
Mitchco, you can use Volume Levelling DSP plugin and add a fixed number of dBs. Normalize filter volume in Convolution plugin also works really well for me. Well, sometimes it creates short term clipping. Then you can see MC turning normalization level down slowly.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on May 16, 2012, 07:51:09 pm
Mitchco, you can use Volume Levelling DSP plugin and add a fixed number of dBs. Normalize filter volume in Convolution plugin also works really well for me. Well, sometimes it creates short term clipping. Then you can see MC turning normalization level down slowly.

Thanks Trumpetguy.  I will give it a go.  I am also trying Blue Cat's Gain Suite, that is part of this free plug-in bundle: http://www.bluecataudio.com/Products/Bundle_FreewarePack/  Also includes a spectrum analyzer and interesting eq.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on May 16, 2012, 07:59:15 pm
To adjust the volume of any or all channels, you might try DSP Studio > Parametric Equalizer > Adjust the volume.

Normally it's best to turn channels down instead of up, so you won't force clip protection to engage.  Using Internal Volume is also a good idea, since that gives you free headroom for convolution or volume adjustments.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on May 17, 2012, 01:55:16 am
Normally it's best to turn channels down instead of up, so you won't force clip protection to engage. 
Right. But MC's normalization does turn the channels up to meet some criterion for max 0dB? Which in turn sometimes leads to clip protection engaging. Or have I misunderstood something fundamental here?

Using Internal Volume is also a good idea, since that gives you free headroom for convolution or volume adjustments.
I have MC volume disabled since I use the Lynx mixer for volume adjustment (and the straight to power amps). Would setting the Lynx mixer to 0dB and using Internal Volume in MC give any improvement regarding headroom? I cannot see how, but if it is so, an explanation would be good.

Such a solution seems a bit risky, though, since other applications may pass through the Lynx driver at full 0dB signal strength.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on May 17, 2012, 10:15:39 am
Such a solution seems a bit risky, though, since other applications may pass through the Lynx driver at full 0dB signal strength.
I set my motherboard soundcard as the default audio device in Windows. This way no other applications can access my Steinberg UR824. I then use the loopback in JRiver if I want sound from another application.

A few months ago I was listening to music and noticed that some detail missing in the music. I checked my JRiver settings and couldn't find anything wrong. I finally realized that one of my kids had turned down the master volume control on my Steinberg using the big knob on the front. I turned it back up to 0 and turned down the internal volume and the detail was now present again. It was sort of a double blind test since I didn't even know I was being tested.

There were some changes to internal volume in 17.0.148 that now make it even better. It is now possible to set the Reference Level and to cap the maximum internal volume:

Quote
2. Changed: Volume settings are available in Options > Audio > Volume (and also still available in Menu > Player > Volume or by clicking the icon next to the volume slider).
3. NEW: Added 'Options > Audio > Volume > Maximum volume' for enforcing a maximum level that Media Center will be capable of setting.
5. NEW: Added 'Options > Audio > Volume > Internal volume reference level' for specifying what volume level is shown as +0.0dB (all other volumes will be reported relative to that reference level).
6. Changed: The OSD and volume slider in Theater View use the same volume display text as other parts of the program (improves support for 'bitstreaming' display, decibels for internal volume, etc.).
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on May 17, 2012, 10:49:18 am
I have MC volume disabled since I use the Lynx mixer for volume adjustment (and the straight to power amps). Would setting the Lynx mixer to 0dB and using Internal Volume in MC give any improvement regarding headroom? I cannot see how, but if it is so, an explanation would be good.

Using Internal Volume and enabling Volume Protection would be better.

I just added a little explanation on the Volume wiki:
http://wiki.jriver.com/index.php/Volume#Internal_Volume_Headroom
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on May 17, 2012, 12:46:23 pm
Now I have set up my system with Internal volume and Lynx mixer at 0dB. And - set default device to some audio device not connected to anything. I'll give it a try.

Is it correct that that the signal chain should be
Adjust x dB for Replay Gain
Adjust x dB for internal volume
Room Correction (reduces all channels by 10dB except LFE)
Convolution

?

Can I send the bill for new speakers to JRiver when they blow....;-) ?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on May 17, 2012, 12:51:49 pm
Now I have set up my system with Internal volume and Lynx mixer at 0dB. And - set default device to some audio device not connected to anything. I'll give it a try.

Is it correct that that the signal chain should be
Adjust x dB for Replay Gain
Adjust x dB for internal volume
Room Correction (reduces all channels by 10dB except LFE)
Convolution

That seems good.

You probably know this, but for anyone else following along, the order of volume effects is not relevant:
http://wiki.jriver.com/index.php/Audio_Bitdepth#Bit-Perfect


Quote
Can I send the bill for new speakers to JRiver when they blow....;-) ?

I've used the program this way for a long time, and it works great.

Just be sure to select 'Volume Protection'.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on May 18, 2012, 02:05:03 am
That seems good.

You probably know this, but for anyone else following along, the order of volume effects is not relevant:
http://wiki.jriver.com/index.php/Audio_Bitdepth#Bit-Perfect
Thanks, I was wondering. I knew, but have forgotten, thanks for the link.

I've used the program this way for a long time, and it works great.
Just be sure to select 'Volume Protection'.
The way I have handled volume before have also worked fine, which explains why I have never bothered to make changes. Now I wathced a movie last night using Internal volume and it worked perfectly (as I would expect from MC). The nice thing is also that the volume bar appears on screen. Using the Lynx mixer I always had to bring it up on the screen to see the volume level.

The only negative thing is that volume lags behind the adjustment by a second or so. Is there a technical reason why, or is this a design choice? It feels a bit unnatural, and different from any volume control I have used before.



Volume protection is definitely selected.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on May 18, 2012, 07:44:42 am
The only negative thing is that volume lags behind the adjustment by a second or so. Is there a technical reason why, or is this a design choice?

My guess is your convolution filters add the one second delay.

Reducing hardware buffering might help a bit (Options > Audio > Output mode settings...).  With ASIO and a fast computer, it's fine to use a small value like 0.10 seconds of buffering and uncheck 'User large hardware buffers'.
Title: streaming with convolution
Post by: tiggerkater on May 25, 2012, 03:16:00 am
Hello to everybody,

I posted my question in the "media network" forum, but perhaps somebody here has an answer:

I want to use JRiver as a upnp server with enabled convolution. Via LAN I would like to send the convoluted stream to a network music renderer like a LinnDS or a Sonos streamer.

Right now, I am able to stream, but convolution does not work.

Is this setup possible with JRiver? Are there any other people out there trying to achieve this? With foobar, it is possible to send the convoluted stream to a renderer, so I thing it should be with JRiver, too. Right now, I did not figure out, how ;)
(I would really like to convolve with JRiver, because of its 64bit convolution system - which should sound better than the foobar solution.)

Thanks and all the best

tiggerkater
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on May 25, 2012, 09:17:29 am
Hi tiggerkater.  It's not currently possible to use the full DSP Studio with DLNA.

I agree it would be nice.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: tiggerkater on May 25, 2012, 11:54:24 am
Thansk Matt for your fast reply. I am sorry to read this, I hoped, that I was not able to configure it right. But it seems that JRiver has not implemented this feature so far.

Perhaps it will be, soon?!

all the best

tiggerkater
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: MartinG on May 29, 2012, 02:31:27 pm
Just to make a tiny refresher in this discussion:
+1
support of different filters for different samplerates

Martin
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Hordor on June 04, 2012, 08:23:19 am
Just adding +1 to support of different filters for different samplerates.

Would be nice to be able to switch between to setups for comparing filters via hot button.

Uwe

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on June 09, 2012, 06:33:30 am
+1
No Upsanpling should be possible.

Regards,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on June 09, 2012, 04:55:12 pm
Matt,

my newest set of filters use 66k taps for all 7 speaker channels and 131k taps just for subwoofer/LFE. I just want to make sure that mixed filter resolution doesn't cause a problem with your convolution engine. Is this a problem?? Thanks!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on June 09, 2012, 05:09:26 pm
Matt,

I guess I just answered my own question -> when using a filter with different filter resolution for the channels (like mixed 66k and 131k taps) the convolution engine doesn't compensate for this - the result is that the channels with 131k taps play delayed to the channels with 66k taps. So I will not use mixed filter resolution.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on June 10, 2012, 03:30:16 pm
Matt,

I guess I just answered my own question -> when using a filter with different filter resolution for the channels (like mixed 66k and 131k taps) the convolution engine doesn't compensate for this - the result is that the channels with 131k taps play delayed to the channels with 66k taps. So I will not use mixed filter resolution.

The engine should work fine with mixed length filters.

But if you have mixed delay filters, it will make a mess.  I suppose there could be an option to try to figure this out automatically, but that seems like a job for the program creating the filters.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markuspac on July 22, 2012, 08:02:52 am
Hello Matt,

I would like to report on a strange effect that occur if using delay-definition in convolver config-file.

By reason that I wasn’t pleased using the JRiver convolver comparing to ConvolverVST in the same environment I’ve done some measurements to find out the cause.

For that purpose I’ve created a 3-way stereo Xover with lowered levels for bass (-6dB) and highs (-3dB). With this Xover I’ve carried out a measurement using the JRiver convolver and summing up the output of the 3 Xover channels to one channel using the mixing function of my soundcard (RME AES32). The result of this measurement and for comparison the computed signal (which is expected) see first attachment. The result appears correct.

Next I’ve used the same configuration as before but applied a delay definition in the convolver config file. The parameters were “0 0 22.68 22.68 45.35 45.35” which should delay the channels 3/4 by 1.000 samples and the channels 5/6 by 2.000 samples (with regard to channels 1/2 at 44.100 Hz). The result of this measurement and for comparison the computed signal can be seen in the second attachment. In contrast to the expectation the convolution result for the 1st (-1dB) and 3rd (+0,3dB) Xover channel has a different level. The delay itself was applied correctly.

Do you have any idea concerning the reason or a solution for that phenomenon/problem.

kind regards
Markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on July 22, 2012, 01:07:26 pm
@markuspac

Welcome.

Is there any chance the level differences are from normalization?  Would you be willing to uncheck 'Normalize filter volume' and test again?

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markuspac on July 22, 2012, 02:37:19 pm
Hello Matt,

thanks for your reply. I’ve supposed also that this effect could be caused by normalization. However the “normalize file volume” was already unchecked and also “flat line overflows” was chosen. As another try I’ve reduced the replay-gain by 6 dB (using “volume leveling” DSP function). But at the end the measured curve looks exactly as posted before. Seems to be tricky.

regards
Markus

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on July 23, 2012, 08:03:12 am
Markus, that's an interesting find. Does Uli have any idea what could be wrong?

I noticed a rather strange behavior with delays and volume level/gain using "room correction" in MC. When you set the distances (=inverse delay) it also changes the volume level of a given channel - these two parameters interact. The more distance the more volume level a channel gets by default. The logic behind this seems to be that identical speakers will be volume matched just by setting the distances - more or less because room interaction/placement cannot be considered.

Matt, could this logic be present with delays in convolution config files as well? This would certainly make no sense.

On another matter: I will change my setup to fully active 3-way fronts. Therefor I will use up to 16 output channels in the future (7.2 with 9 channels active XO for the fronts). You have added support for such high channel numbers some time ago (I think Bernt wanted it for Audiolense support) which is great. My problem is that when using the parametric EQ and/or Room Correction (to e.g. set relative volume levels) we don't have access to any of the additional output channels. It would be great if this could be changed - Parametric EQ filters can be used for a large variety of tasks (calibration, testing,...). So when selecting 12,16,24 or 32 channels in output format it would be great if they show at least in PEQ (and probably Room Correction).

Thank you very much!

  
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on July 23, 2012, 09:31:26 am
Markus, could you email your two sets of configuration files to matt at jriver dot com?  I'll take a look in the debugger and see if anything jumps out at me.

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markuspac on July 23, 2012, 12:49:01 pm
Hello Matt,

thanks for your willingness to follow-up this topic. I've send you my config-files as requested.

In addition to the already reported tests I've carried out today a convolution test using filters with intrinsic applied delays and with no use of delay definition in the convolver configuration file. Interestingly the (negative) effect is the same as if using the usual filter and applying the delays in convolver configuration file. Really strange!

kind regards
Markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markuspac on July 23, 2012, 02:00:20 pm
Hello Matt,

I’ve to apologize. Please do not continue investigating my issue at the moment. I’ve made some more double-checks with ConvolverVST and found out that the problem persists even with my existing ConvolverVST environment. I’ll give you an update if I’ve found out something.

regards
Markus
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: eddyshere on July 23, 2012, 03:46:16 pm
much of the community that I mention are not aware of what J River really is over another player like wmp. I think a bit of marketing over that way wouldnt be a bad idea. The community is slowly coming round to the idea that computers can play quality audio, but theres a whole lot of marketing thats battling the change (cables for example) who pay big money for a good magazine review. Ill admit that at one point I was one of them.

Ive been on a mission to build the most acurate/best audio system for 15 years, (thats how I got here) most of my efforts are in building speakers and amplifiers though. I have £50k in drivers ready to build my ultimate active speaker. (it is a private cinema though)

 Proper EQ combined with JMLC profile 90 deg corner horns on beryllium compression drivers, and active crossovers = no early reflections, and eq'ed late ones + sub 0.2% distortion at reference level across the whole spectrum. Its audio nervana if I can do it.




+1
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Waveformfidelity on July 29, 2012, 09:19:52 am
Markus,

The convolution engine is carrying out exactly what you specified:

“0 0 22.68 22.68 45.35 45.35”

woofer: 0ms delay added

mid:  22.68ms relative to woofer

tweeter:  44.35ms relative to woofer

This is clearly seen in time domain of your posted pics.

I emulate this in Cool Edit with Linkwitz-Riley 24dB/octave crossover with high pass /low pass attenuation: see attachment



Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Waveformfidelity on July 29, 2012, 09:31:50 am
...the way the shelving displays depends on window size and location relative to the low pass and high pass components of the summation. 

Here is same time domain as above with shifted FFT window and new spectrum with spectrum from above pic:

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on July 29, 2012, 05:39:40 pm
I'd like to ask for recommendations on how to best support convolution where you have a different file for each sample rate.

Should we just support some naming convention, like adding " (44.1 KHz)", " (48 KHz)", etc. to the end of the filter files?  Or should the configuration file contain a list of filters?  Or something completely different?

Thanks for any help.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: markuspac on July 30, 2012, 12:44:29 pm
Hello Matt,

the apparently problem of the JRiver convolution engine, if applying delays, could be clarified in the meantime. Uli (audiovero) gave me the hint that the effect only occurs in processing the pulse result of the logsweep-measurement. Like "Waveformfidelity" wrote it's a matter of the window size. After applying the windowing and cutting off most of the samples ahead the pulse except of the last 12.000 (resp. 6.000) the effect in frequency domain can be observed. If using 64k (resp. 32k) windowing the frequency response looks as it should. Summing up your JRiver convolution engine works absolutely correct.

regards
Markus


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: lasker98 on July 30, 2012, 05:15:21 pm
Hi Matt,

When first starting with Audiolense filters, I was using the Convolver VST plugin, since this was before MC implemented native convolution. If I remember correctly, Convolver VST used a config file that was created at the time the DSP filters were created. If filters were created for multiple sample rates, ie; 44.1k and 96k for example, then the config file would be pointing to the location of those filters on the hard drive. I'm clueless on the technicalites of how this all works but I thought the intent was that Convolver VST plugin in MC would then use this config file to load the appropriate filter based on the sample rate of the file being played. This obviously never worked this way in MC, and as a newbie to all this I posted this question in the forums back in January this year:

"General / Media Center 17 / ConvolverVST Warning Message  on: January 01, 2012, 01:14:15 pm 
Hello,

I'm using convolvervst plugin with audiolense DSP filters. I'm trying to have the configuration file automatically switch for different sample rates. In my random playlists I may have a mix of 16-44.1, 24-88.2 and 24-96 files.
I seem to have the config file setup correctly to do this but the problem I have is when a song with a different file sample rate comes up, I get a pop up window that says "ConvoverVST Warning   Filter sample rate (4410096000Hz) is different from input sample rate (96000Hz)".
This would be the warning in an example where a 44.1k sample rate song was playing and the next song up was 96k. J River playback now stops and waits for the warning popup window to be closed. If not closed manually, after what seems like a set time (1 minute?, not sure) the window closes itself and playback stops completely.
Is there a way to have J River ignore that warning and play through? I use JR17 on a headless computer which makes it impractical to have to manually acknowledge and close the warning popup. If I'm logged into the computer remotely, I can close the popup warning when it shows up and playback continues onto the next song, automatically switching to the correct sample rate. I don't really see the purpose of that warning."

This may give you a bit more of an idea of the problem that occurred when trying to use config files and  different sample rate filters with Convolver VST and MC. The idea of the config file seems sound, but for whatever reason it didn't work.

Thanks,

Bill
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hermannreuter on August 03, 2012, 05:22:19 am
I am using JRiver for some years and Audiolense for generating convolution filters since half a year. My audio system and Audiolense is 2 channels stereo with no active crossovers etc. Recently I started to notice no more sound difference between convolution activated or deactivated. I did a room measurement with Carma 3.0 playing the frequency sweep through JRiver with convolution on and off - the graphs look the same. The DSP-windows for convolution shows: Processing 0 paths and speed factors from 110x to 220x depending on the source resolution and sampling frequency. I recall the effects of convolution were very distinct to hear some weeks ago.
What may be wrong or what may I do I wrong?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mikkel on August 03, 2012, 09:08:16 am
I am using JRiver for some years and Audiolense for generating convolution filters since half a year. My audio system and Audiolense is 2 channels stereo with no active crossovers etc. Recently I started to notice no more sound difference between convolution activated or deactivated. I did a room measurement with Carma 3.0 playing the frequency sweep through JRiver with convolution on and off - the graphs look the same. The DSP-windows for convolution shows: Processing 0 paths and speed factors from 110x to 220x depending on the source resolution and sampling frequency. I recall the effects of convolution were very distinct to hear some weeks ago.
What may be wrong or what may I do I wrong?

I had the same problem. Uninstalling JRiver and reinstalling it did the trick. Somewhere inbetween all the updates something had messed up the software.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hermannreuter on August 08, 2012, 05:20:46 am
Thank you very much. I'll will give that a try tonight.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on August 21, 2012, 04:39:54 am
I'd like to ask for recommendations on how to best support convolution where you have a different file for each sample rate.

Should we just support some naming convention, like adding " (44.1 KHz)", " (48 KHz)", etc. to the end of the filter files?  Or should the configuration file contain a list of filters?  Or something completely different?

Thanks for any help.
Hello Matt,

a full convolution setup can be quite complex. Imagine a multi-channel multi-way setup including some additional crosstalk mix (e.g. adding some channels to a subwoofer output but also crosstalk cancellation). You may like to create a wav-file including all the filters for a given samplerate. But this also may become difficult, as the sequence of channels in a mutli-channel wav file does not necessarily correspond with the sequence of filters/outputs.

Thus it is IMHO best to handle each filter in a separate file in native format, e.g. double format, or as wav file (double precision is also possible).

By default Acourate creates crossovers and correction filters as dbl-files (but wav is also possible). For stereo applications the names are given as XO1L44.dbl, XO1R44.dbl, XO2L44.dbl, XO2R44.dbl, XO3L44.dbl ... and Cor1L44.dbl, Cor1R44.dbl, Cor2L44.dbl ...
For multichannel applications it makes sense to use corresponding abbreviations like C=Center, BL=Back left, BR=Back right, LF=low frequency, SL=Side left, TL=Top left ...
So a filter name like Cor1BC44.dbl can easily be identified as a filter for a back center channel.

So we have some classification:

a)
XO = crossover filter
Cor = correction filter
XTC = crosstalk filter

b)
1, 2, 3, ... -way identification, e.g. 1=bass driver, 2=midrange driver, 3=tweeter in a 3-way setup

c)
L, R, C, LF, BL, BR, SL, SR ... = multichannel identification

d)
44, 48, 88, 96, 176, 192, 352, 384 = samplerate

Especially d) can be used for an automatic search of filters depending on samplerate.

Of course it is not mandatory to follow such a specification of filenames. If MC will interprete a configuration file then a user can arbitrarily defines his own filenames. Then it is the user's responsibility to define the names, to set up the config file and to assure that the filters are available.

Configuration files as XML have become quite fashioned today. BUT IMO these files are difficult for human editing. So a file like the VST Convolver config file or an old-fashioned ini-file is better to read, edit and understand.

BR
Uli


Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on August 21, 2012, 09:32:14 am
44, 48, 88, 96, 176, 192, 352, 384 = samplerate

Especially d) can be used for an automatic search of filters depending on samplerate.

Should the configuration file call out each file for each sample rate?

Or should there be some generic naming scheme so the configuration file says:
XO1R[SampleRate].wav and we convert it to XO1R44.wav, XO1R48.wav, etc.

Or should the configuration say:
XO1R.wav and we automatically search for files with 44, 48, etc. at the end?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on August 21, 2012, 10:31:57 am
Why not just have 4-6 slots to load config files and allow the user to assign the sample rate to each file?

 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on August 21, 2012, 10:57:04 am
Take a given config file (VST Convolver), e.g.:

44100 2 2 0
0 0
0 0
C:\Filter\Cor1L44.dbl
0
0.0
0.0
C:\Filter\CorRL44.dbl
0
1.0
1.0

You can simply create your own internal configs by stripping 44 from the filenames and adding 48, 88, 96 ...
Then check the specified folder for the availability of the filter files.
In case you do not find a complete file set for a samplerate you may issue a warning and apply a filter samplerate conversion as already carried out.

Uli
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on August 21, 2012, 11:29:50 am
Why not just have 4-6 slots to load config files and allow the user to assign the sample rate to each file?

I'm trying to keep it easy for a user.  Having several settings files and piles of config files to handle different sample rates seems complex.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on August 21, 2012, 11:31:43 am
You can simply create your own internal configs by stripping 44 from the filenames and adding 48, 88, 96 ...
Then check the specified folder for the availability of the filter files.
In case you do not find a complete file set for a samplerate you may issue a warning and apply a filter samplerate conversion as already carried out.

That's easy to code, but a little cryptic.

Is '44' at the end of the filename the magic marker?  What if it's 48, or 44.1, or 44kHz at the end?  Would it be better to use a marker that's more explicit like [SampleRate]?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: AudioVero on August 21, 2012, 12:39:56 pm
That's easy to code, but a little cryptic.

Is '44' at the end of the filename the magic marker?  What if it's 48, or 44.1, or 44kHz at the end?  Would it be better to use a marker that's more explicit like [SampleRate]?
Anyway there must be a syntax for a config file. So it does not really matter what definition you like to use.
If you select a file like Cor1L44.dbl then you can copy and paste the filename. In case of Cor1L[samplerate].dbl you must edit it. So IMO it is more user-friendly to just use 44.
The application can also deny a config file in case of 48 or 44.1. Whereas 44kHz can be switched to 48kHz or 88kHz ... by a simple string replace.

Finally it is up to you how much effort you like to take for coding a user-friendly and fault tolerant application.

Uli
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on August 23, 2012, 01:43:39 pm
There is a config file specification at: http://convolver.sourceforge.net/config.html  If you scroll down to the end, there is a filter list specification that says:

"Filter list

In situations where you are using several different formats (eg, stereo 44.1kHz and 5.1 48kHz) it is convenient to be able to switch automatically between filters.

So a config file can also comprise of a list of filter specification config file names of the type described above; and WAV impulse response filenames one per line.  The filter used will then be the first to match the current sound source (in terms of number of input and output channels and sample rate).  This allows you to play both stereo and 5.1 sources, say, without having to change the config file."

Not sure if that helps or is the desired approach.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: nostro66 on October 14, 2012, 02:14:41 pm
Still no support for switching of filters. Please guys, JRiver is the best of audiophile players, and internal convoler is so great feature...
Thank you!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on October 30, 2012, 10:32:52 am
Still no support for switching of filters. Please guys, JRiver is the best of audiophile players, and internal convoler is so great feature...
Thank you!

My understanding is that this is implemented in version 18.  Maybe Matt can comment if that is correct...
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on October 30, 2012, 10:48:41 am
Automatic switching has not been implemented in v18 yet. 

I want to add it. 

I asked for advice about how to best add it above, and the answer wasn't too definitive.  Maybe we just need to do something / anything, but I was hoping for an example of what works elsewhere.

If someone has a filter set that does rate switching with Convolver, please mail it to matt at jriver dot com, and we'll try to support the same format.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on October 30, 2012, 11:08:57 am
You could have a drop down list and let the user select whether they use Audiolense, Accourate, or another program. Audiolense files end with 441, 48, 882, or 96 after the last space. A user can also create custom sample rates such as 176.2 or 192 which I assume would look like 1762 or 192. It looks like Accourate uses 44, 48, 88, 96, 176, 192, 352, 384 as the marker. After the first convolution file is selected, JRiver could use the same filename with the matching sample rate at the end like AudioVero mentioned earlier.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on October 30, 2012, 11:22:25 am
If you want to make it easier, I'm sure Audiolense users wouldn't mind renaming their files to end with 44, 88, and 176 instead of 441, 882, and 1764. Then Audiolense and Accourate files would end with the same sample rate designation. As far as that goes, I could rename the files to 44.cfg, 48.cfg, 88.cfg and 96.cfg to make it really easy. Instead of using file names to differentiate filter sets, I could just use folders.

p.s. I purchased Audiolense XO last week.  ;)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on October 31, 2012, 01:14:56 pm
mojave (or anyone else), would you be willing to send me a filter set that uses different configuration names / files for different sample rates?

Thanks.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on October 31, 2012, 01:33:58 pm
I just sent them.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on November 01, 2012, 04:08:08 pm
Thanks for the sample files.

Next build of MC18:
NEW: Convolution optionally searches for the best match configuration file based on the sample rate of the input and uses it if a better match is found.

We're supporting the formats like:
xxxx2.0_441
xxxx5.1_48
etc.

The regular expression is:
^(.+)(\\d{1}.\\d{1})_(\\d{2,3}).cfg$

Which outputs:
Name
Channels
Sample rate

If there are other naming formats people would like supported, please let me know.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: nostro66 on November 01, 2012, 04:34:17 pm
Superb! Thank you!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on November 01, 2012, 04:42:50 pm
Thanks, I'll see if I have time to try it tonight.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on November 01, 2012, 04:53:03 pm
This is the most active thread in the Media Center 17 subforum. It should get moved to the Media Center 18 subforum for those that just view the last version's forum. This is why I wish there was a general Media Center subforum for threads that aren't really version specific. 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mike48 on November 01, 2012, 06:27:51 pm
+1 on adding this -- particularly if it's developed in cooperation with Uli B., whose own software has a great reputation.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on November 02, 2012, 10:54:40 am
I tried the new automatic sample rate switching last night and it worked perfectly. 
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on November 02, 2012, 01:29:55 pm
I tried the new automatic sample rate switching last night and it worked perfectly. 

Great! I'd like to have filters for 44.1 and 48 khz sampling rates.

For best results I assume I should measure with Audiolense at both sample rates, then generate the filters?

Any tips to get this right on the first try and how do I confirm it is working in JRiver?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on November 02, 2012, 02:26:19 pm
Great! I'd like to have filters for 44.1 and 48 khz sampling rates.

For best results I assume I should measure with Audiolense at both sample rates, then generate the filters?
Bernt has said (https://groups.google.com/forum/?fromgroups=#!searchin/audiolense/sample$20rate/audiolense/ZH7PDr8lAdo/et5N7K_YpucJ) that you can measure with just one sample rate and the conversion when you save the filters will be basically lossless.

Quote
Any tips to get this right on the first try and how do I confirm it is working in JRiver?
When you save the filter, just make sure that 44.1 and 48 are selected in the pop up window. By default, Audiolense ends the filter name with something like 7.1_441.cfg or 7.1_48.cfg. Just pick one of these files and JRiver will then use the correct filter based on sample rate. Remember to set your reset your sample rate in Output Mode to no change or set 88.2 to 44.1 and 96 to 48 if you also have content with those sample rates. If you check the status windows of the convolution engine DSP during playback, you will be able to verify that JRiver has selected the correct filter based on sample rate.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: dvdende on November 06, 2012, 06:35:58 am
I have Audiolense with stereo (2.0) in combination with JRiver 17 but the created config files with Audiolense gives the message "Not valid" at the Convolution screen in the DSP settings. I have filters created for all the frequencies up to 96 KHz. The config files are looking good to me. I also tried the same in JRiver 18 (build 068) but after selection of the filter config file the program stops functioning. In the output setup I use only down sampling for files higher than 96 KHz and no upsampling (because of the limitation of my DAC). I reinstalled also my JRiver software but did not get it working until now. Maybe I do not understand it completely but is there a description about the config file (or example) available? Other tips are also welcome!

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on November 06, 2012, 07:39:30 am
I have Audiolense with stereo (2.0) in combination with JRiver 17 but the created config files with Audiolense gives the message "Not valid" at the Convolution screen in the DSP settings. I have filters created for all the frequencies up to 96 KHz. The config files are looking good to me. I also tried the same in JRiver 18 (build 068) but after selection of the filter config file the program stops functioning. In the output setup I use only down sampling for files higher than 96 KHz and no upsampling (because of the limitation of my DAC). I reinstalled also my JRiver software but did not get it working until now. Maybe I do not understand it completely but is there a description about the config file (or example) available? Other tips are also welcome!

A long shot - I have had the same problem a couple of times, and it has always been because my config file was not pointing at the correct wav filter file(s). That I somehow had messed up the path or filenames of the wavs.

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: dvdende on November 07, 2012, 01:40:32 am
I checked my AudioLense config file and there were also lines referring to 5.1 files! Removed and working!!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on November 07, 2012, 12:47:26 pm
Quote from: BradC
DVD playback:

Is there a solution to get dvds to play without large stutter when the convoled filters have a large delay?

I know that converting all dvds to mkv is one solution, but not my preferred one.

Ideally there would be a custom video playback setting that would fix the problem

The issue is that the Microsoft DVD Navigator (the thing that reads DVDs on Windows) will not provide the audio more than a little ahead of the video.  This doesn't work well if there's a large audio latency.  People that set the primary buffer size in Options > Audio to a large size run into this same problem.

One solution would be to do DVD title play, which plays the raw MPEG of the main title.  This is what we do when streaming a DVD to a DLNA box.  This solution could work locally as well, but would disable trailers, menus, etc.

Another solution would be to find or write another DVD navigator.  However, it doesn't seem like anyone has made much progress on this, possibly because of the DRM that can be baked into DVD.
The issue is that the Microsoft DVD Navigator (the thing that reads DVDs on Windows) will not provide the audio more than a little ahead of the video.  This doesn't work well if there's a large audio latency.  People that set the primary buffer size in Options > Audio to a large size run into this same problem.

One solution would be to do DVD title play, which plays the raw MPEG of the main title.  This is what we do when streaming a DVD to a DLNA box.  This solution could work locally as well, but would disable trailers, menus, etc.

Another solution would be to find or write another DVD navigator.  However, it doesn't seem like anyone has made much progress on this, possibly because of the DRM that can be baked into DVD.

With 18.0.70 you can now use LAV decoding and madVR rendering for DVD's. I wonder if this fixes the issue?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on November 08, 2012, 01:55:58 am
With 18.0.70 you can now use LAV decoding and madVR rendering for DVD's. I wonder if this fixes the issue?

It doesn't. Matt just reminded us that this is an issue with DVD navigator, not the decoder or renderer.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mikkel on November 08, 2012, 03:38:41 am
About DVD playback (which is of huge interest for me since my movie collection still consists mainly of DVDs):

Matt suggests to do DVD title playback (I don't mind losing the menus etc.). Have people tried and/or how is it done?


Best regards,
Mikkel
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: SpeedD408 on November 08, 2012, 09:42:33 am
So I'm considering using convolution.  My setup is below, but I almost exclusively watch Blu-Ray not normal DVD's.  The only normal DVD's I use are music video, so audio issues will render them useless.  I have AnyDVD HD installed.  If I use convolution will I have this issue?  Does AnyDVD HD replace the use MS Navigator and therefore fix this issue or cause a new one?  I'm very interested in this but the cost to get into convolution is kind of high (audiolense surround, reference mic, cables).  So before spending the money I'd like to know.

Thanks,
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: SpeedD408 on November 08, 2012, 09:57:45 am
One more question...  If this is a MS Navigator issue, do you know if MS changed anything in Win 8 that make this problem go away.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on November 08, 2012, 11:29:40 am
About DVD playback (which is of huge interest for me since my movie collection still consists mainly of DVDs):

Matt suggests to do DVD title playback (I don't mind losing the menus etc.). Have people tried and/or how is it done?


Best regards,
Mikkel

The only way I have succeeded is to rip the main track to mkv, e.g. using MakeMKV. No need to decode the audio. This method allows problem free use of convolution.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mikkel on November 08, 2012, 01:01:30 pm
The only way I have succeeded is to rip the main track to mkv, e.g. using MakeMKV. No need to decode the audio. This method allows problem free use of convolution.

I do the same but I really would prefer not to. It is a cumbersome way to watch a DVD  :). I hope a solution will appear eventually.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: SpeedD408 on November 08, 2012, 01:03:10 pm
+∞ for native convolution  :)

For those using (or thinking of using) JRiver and Audiolense, I wrote a series of blogs posts, including setup, configuration, and measurements.

Hope you don't mind a few links...

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-1

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-2

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-3

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-4

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-part-5

http://www.computeraudiophile.com/blogs/Hear-music-way-it-was-intended-be-reproduced-conclusion

Cheers, Mitch


Mitch,

thanks for the great articles, but the links have changed. I was able to find them again by going here.

http://www.computeraudiophile.com/blogs/mitchco/

All of your articles are here, the ones above are currently split on page 1 and 2.

Thanks again.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Trumpetguy on November 08, 2012, 03:03:30 pm
I do the same but I really would prefer not to. It is a cumbersome way to watch a DVD  :). I hope a solution will appear eventually.

A agree. But spending that 7 1/2 minutes on ripping a dvd is an acceptable price for enabling troublefree convolution, so I try not to think about it. >80% of my movies are bd rips, which I prefer as mkvs anyway.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on November 08, 2012, 05:15:22 pm
When the JRiver team implement different DSP zone for different media (hopefully soon), it will fix the dvd problem, since you will be able to have a lower latency (minimum phase) convolution filter for dvd playback. This is not optimum for dvd, but it's better than not having any convolution filters.

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on November 09, 2012, 01:31:25 pm
Hi,
I want to use the switching feature (use accourate in an full-active 2.1 configuration).
My configuration file is this at the moment:
Code: [Select]
44100 2 6 0
0 0
0 0 0 0 0 0
h:\acourate_Daten\aktiv_2k5_v1\Cor3S44.wav
0
0.0
4.0
h:\acourate_Daten\aktiv_2k5_v1\Cor3S44.wav
1
1.0
5.0
h:\acourate_Daten\aktiv_2k5_v1\Cor2S44.wav
0
0.0
2.0
h:\acourate_Daten\aktiv_2k5_v1\Cor2S44.wav
1
1.0
3.0
h:\acourate_Daten\aktiv_2k5_v1\Cor1S44.wav
0
0.0
0.0
h:\acourate_Daten\aktiv_2k5_v1\Cor1S44.wav
1
1.0
1.0

I have a lot of wav files with the different samplerates.
But I don't know how to change my configuration or is it done automatically?

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on November 10, 2012, 11:43:27 am
Mitch,

thanks for the great articles, but the links have changed. I was able to find them again by going here.

http://www.computeraudiophile.com/blogs/mitchco/

All of your articles are here, the ones above are currently split on page 1 and 2.

Thanks again.

Hi speedd408, your welcome and thanks for updating the link!  Chris upgraded his CA site with new software and the links did not carry over. 

I am planning on writing more articles using JRiver convolution engine, Audiolense, and REW.  Now that JRiver's MC 18 convolution engine adapts for filter delay, and with it's improved loopback functionality, it is much easier to measure before and after filter acoustic responses using both Audiolense and REW.

Cheers, Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on November 23, 2012, 11:05:04 am
*bump*

Please can somebody reply to my question above?

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on November 24, 2012, 11:32:31 am
Hi,
I want to use the switching feature (use accourate in an full-active 2.1 configuration).
My configuration file is this at the moment:
Code: [Select]
44100 2 6 0
0 0
0 0 0 0 0 0
h:\acourate_Daten\aktiv_2k5_v1\Cor3S44.wav
0
0.0
4.0
h:\acourate_Daten\aktiv_2k5_v1\Cor3S44.wav
1
1.0
5.0
h:\acourate_Daten\aktiv_2k5_v1\Cor2S44.wav
0
0.0
2.0
h:\acourate_Daten\aktiv_2k5_v1\Cor2S44.wav
1
1.0
3.0
h:\acourate_Daten\aktiv_2k5_v1\Cor1S44.wav
0
0.0
0.0
h:\acourate_Daten\aktiv_2k5_v1\Cor1S44.wav
1
1.0
1.0

I have a lot of wav files with the different samplerates.
But I don't know how to change my configuration or is it done automatically?

Thanks,
Erich


You'll need to make a configuration file for each sample rate.

So if you have a file now named Erich.cfg, rename it:
Erich2.0_441.cfg

Then make a copy called:
Erich2.0_48.cfg

Inside that cfg file, point to the 48 kHz WAV files instead of the 44.1 kHz files.

Repeat for 88, 96, etc.

Does that make sense?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: v_erich on November 25, 2012, 02:00:02 pm
@matt:

It works, thanks.
But next time if you include a new feature please describe it a little bit more for normal users, not everybody can interprete coding informations.
I want to use a feature with some explanations how I can use it not only cryptical stuff ;-)

Thanks,
Erich
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: faster on December 28, 2012, 02:27:29 pm
Hello,

I need some help to set up the convolver configuration.
What i have:
Cor1S44.wav: is a lowpass wave stereo filter file (passes only the low frequencies up to 80Hz)
Cor2S44.wav  is a highpass wave stereo filter file (passes only the higher frequencies over 80Hz)
want i want:
convolve the stereo music with this filters to my low and high frequency speakers

i use a fireface uc soundcard with asio driver.
My configuration in JRiver:
Output mode: Asio
Output mode settings: channel offset: 0

DSP and output format settings:
no samplerate changes; Channels: 4 channels

convolution: C:\Filter\convolver.txt

This is my the convolver.txt: behind "-->" are some comments. They describe how I  understand the configfile syntax
Code: [Select]
44100 2 4 0 --> play and convolve 44Khz 2 channel musicfiles  to 4 channels
0 0
0 0 0 0

c:\filter\Cor1S44.wav --> this is lowpass (acourate Cor1) Stereo (left/right) filter
0 --> take the (first) left channel of lowpass Stereo filter
0.0   --> input channel left from musicfile
0.0 --> output channel lowpass left (soundcard analog 1)

c:\filter\Cor1S44.wav --> this is lowpass (acourate Cor1) Stereo (left/right) filter
1 --> take the (second) right channel of lowpass Stereo filter
1.0 --> input channel right from musicfile
1.0 --> output channel lowpass right (soundcard analog 2)

c:\filter\Cor2S44.wav --> this is highpass (acourate Cor2) Stereo (left/right) filter
0 --> take the left channel of lowpass Stereo filter
0.0 --> input channel left from musicfile
2.0 --> output channel highpass left (soundcard analog 3)

c:\filter\Cor2S44.wav -> this is highpass (acourate Cor2) Stereo (left/right) filter
1 --> take the right channel of lowpass Stereo filter
1.0 --> input channel right from musicfile
3.0 --> output channel highpass right (soundcard analog 4)

what's the problem?
the lowpass convolution is ok, only low frequencies on channel 0/1 (analog 1/2), but higpass convolution fails. All frequencies from 10Hz up to 20Khz are passed to the loudspeakers. What's wrong with my configuration?

regards faster
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: natehansen66 on December 28, 2012, 03:48:17 pm
Did you double check and make sure that your hi-pass filter file is correct? Maybe you forgot to implement the filter....I've done that  ::)

The only thing that looks off to me is on the 3rd line you have six 0's, implying 0 ms delay for 6 channels, when you're only using 4 channels. I can't imagine why the low pass would work and not the high though.

I've had trouble using stereo convolution files. If the left/right filters are the same you might try building a mono filter then applying it as such in your config file.

Also, make sure you're not up/down mixing in the Output Format.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: faster on December 28, 2012, 05:05:51 pm
yes id did :)
Cor1S44.wav
(http://www10.pic-upload.de/thumb/28.12.12/joa2xqhrcq82.jpg) (http://www.pic-upload.de/view-17491912/Cor1S44.wav.jpg.html)

Cor2S44.wav
(http://www10.pic-upload.de/thumb/29.12.12/sva88136xdcq.jpg) (http://www.pic-upload.de/view-17491977/Cor2S44.wav.jpg.html)

the six 0's were not the the problem. But they were not correct. thank you!
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: faster on December 29, 2012, 10:26:11 am
are there any other ideas to solve the problem?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: EarlK on December 29, 2012, 04:16:33 pm
Quote from: faster
are there any other ideas to solve the problem?
Quote
Also, make sure you're not up/down mixing in the Output Format.

- Did you pay attention to this advice ?

- Also, make sure that MC's convolution engine is located after the "OutPut Format" section ( within the dsp ordering area ) .

:)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: faster on December 29, 2012, 04:26:20 pm
yes i did. Most of my musicfiles are 44Khz, filters are 44Khz and in the outputformatsettings thre is no up or downsampling enabled.
And he MC's convolution engine is located after the "OutPut Format" section.

hmm ? Where could be the error in my configuration?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: aljordan on January 12, 2013, 04:09:13 pm
Hello,

The open source DRC application does not attempt to match output levels between channels in its filters.  For this reason, channel balance can be off.  Both Brutefir and JConvolver configuration files allow one to change the volume of each channel.  How can I do this with the convolver configuration file that JRiver uses?

Thank you,
Alan
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: EarlK on January 16, 2013, 06:17:25 am
Hello,

The open source DRC application does not attempt to match output levels between channels in its filters.  For this reason, channel balance can be off.  Both Brutefir and JConvolver configuration files allow one to change the volume of each channel.  How can I do this with the convolver configuration file that JRiver uses?

Thank you,
Alan

Hi Alan,

JRiver's convolution engine has ( an optional ) normalisation feature that will auto-balance ( to -6 db ) all the filtered signals it convolves .

ie; This ( filter "level-matching" ) is not something that you need address ( or can, AFAIK ) within the configuration file .

:)
Title: Getting started with Audiolense, recipe for 2-ch convolution & stereo XO 2 subs
Post by: bobkatz on January 17, 2013, 05:54:21 pm
I'm standing on the shoulders of giants, pioneers in this convolution land. I do not want to take your great work for granted! I've read the threads on Audiolense and its cfg files and am crossing fingers that you guys have conquered the file formats enough so that all I have to do is point JRiver to the .cfg files, map the channels correctly and configure the DSP chain and presto, I'm done.  :-).

As a start I've finished creating a set of filters in Audiolense that receive a stereo source and map it to four output channels in my Lynx card (ASIO). I also took samples at all single and double rates and saved them as filters at the four rates in Audiolense. I've pointed JRiver to the first file in a folder and assume it will look for the next file when changing rates. You're not going to like this, but currently output channels 1&2 are the front main (small) speakers and channels 3&4 (normally used as C/LFE) are the two stereo subs doing the low pass XO. So the cfg. file takes in 2 channels, filters them and splits the result out to the first four channels of the soundcard.

Only thing is I don't get any output from the subwoofers. I'm thinking that the output channels from the convolver would be outputs 1 through 4 as that was the way the cfg. file was created. And that the convolver would do the input matrixing from simple stereo inputs 1 & 2.

Or do I have to redirect the channel order in one of the other modules or combine channels in a different way? I hope that once you guys lead the way that I can move to full 5.1 convolved with little trouble. Except I have stereo subs. I still am going to try to do this with only 6 dacs at first (cause that's all I have right now), so I'll matrix the C into FL and FR and the LFE into the two subs. For now.

Next thing I can't figure out is how to play an external digital source through JRiver as a convolver like the Logitech Transporter or a CD player with a digital output or a DAW like Sequoia or Pro Tools.

Please forgive the newbie questions, even audio experts have to start all over again with new technologies such as this.

Thanks,

Bob
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on January 17, 2013, 06:03:40 pm
Bob, I answered you at the Audiolense forum, but I'll post something here, too.

I think your main issue is that you need to set the Output Format DSP for 5.1. This "opens" six channels and lets them be used as you want. Make sure you check the box next to Output Format to make sure the DSP is used, too. If you don't do this, JRiver will only open as many channels as are in the source. In your case it is only opening two channels.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on January 18, 2013, 10:06:15 am
Bob, I answered you at the Audiolense forum, but I'll post something here, too.

I think your main issue is that you need to set the Output Format DSP for 5.1. This "opens" six channels and lets them be used as you want. Make sure you check the box next to Output Format to make sure the DSP is used, too. If you don't do this, JRiver will only open as many channels as are in the source. In your case it is only opening two channels.

Thanks, I got the playback working in JRiver thanks to you. Digital crossover is working in the convolution tab! Nice. Sonically JRiver sounds very very nice and transparent. I swear I hear a difference with the 24-bit dither on versus off. A tetch more 3 dimensionality/depth. I'll be doing further critical listening and FFT testing on the performance when I get a chance, but I'm very happy that Matt implemented this feature. Anyone else hear an improvement with the dither?

Of course I have remaining questions and some issues but I'm well on my way:

1) I assume the JRiver playback volume control precedes the entire path and plugins in the output DSP section. Although there is an option in some of the plugins to send them full level. Not sure how JRiver would implement that exception anyway without moving their order in the chain...  Matt, if you're listening, if I put the parametric equalizer last in the plugin chain and set its dither to 24 bit, there is no further dsp (recalculation) in the system on the way to the DAC? In other words, it's 64-bit floating point through and including the last plugin. Then the last plugin dithers the signal at a 24-bit level and then with no further modification JRiver delivers it to the DAC. The DAC of course truncates the incoming bits below #24. Or the parametric truncates after dithering, which is not a problem either, provided there is no other processing after it.

2) I can't get the live input to work in any way. Not sure why you recommend using a different ASIO device for the live input. That would be expensive if you need six channels! But anyway, I tried many different combinations of ASIO devices, as I have several hooked up to this computer, and in no case would the live input work. I get an error report from JRiver "something wrong with playback".

3) Requiring the live input to be manually configured for the sample rate is a bummer for me. I may digitally patch a DAW running at different sample rates into the live input or other digital sources. Can't the live input inspect the ASIO and find out what sample rate the interface is currently locked to? Or is this a chicken versus egg situation? It would be a bummer for me to have to repatch when changing digital sources AND have to reset the live input setting. I do this change many times a day in my studio. 

Ironically, when doing standard playback within JRiver from files or playing a CD, the system can produce the wrong pitch if the ASIO interface is on external sync and locked to the wrong rate. It would be wonderful if JRiver could integrate it all and tell the interface what to do, whether to be on internal sync when playing back something internally and on external sync when on live input, and also sense the sample rate from the interface!

4) I can't get the automatic filter sample rate detection to work in convolution, using Audiolense's standard format, where each config file ends in a certain sample rate number. The status screen in the convolution constantly shows the same filter is working. So for a current workaround I engaged the online sample rate conversion in JRiver, always upsampling or downsampling incoming rates that are not 96k to 96k. No offense, but I think the SRC in JRiver sounds a little bit harsh, a subtle "edge" to it to my ears compared to no SRC. It's not that bothersome to my ears, but I'd like to patch it out if we can get this automatic cfg. filter switching worked out. I understand it did work in MC before #18 when you guys worked it out...  see, I'm standing on the shoulders of giants! Many thanks and best to you all.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 18, 2013, 10:26:16 am
1) I assume the JRiver playback volume control precedes the entire path and plugins in the output DSP section. Although there is an option in some of the plugins to send them full level. Not sure how JRiver would implement that exception anyway without moving their order in the chain...  Matt, if you're listening, if I put the parametric equalizer last in the plugin chain and set its dither to 24 bit, there is no further dsp (recalculation) in the system on the way to the DAC? In other words, it's 64-bit floating point through and including the last plugin. Then the last plugin dithers the signal at a 24-bit level and then with no further modification JRiver delivers it to the DAC. The DAC of course truncates the incoming bits below #24. Or the parametric truncates after dithering, which is not a problem either, provided there is no other processing after it.

It really shouldn't matter where in the chain volume occurs:
http://wiki.jriver.com/index.php/Audio_Bitdepth#Bit-Perfect

But we do it before any DSP, just in case a DSP does (unnecessary) clipping at -1.0 to 1.0.

As for ordering, it's 64-bit through everything until final delivery to the output plugin (ASIO, WASAPI, etc.).  The dither is always last.  

The only exception to the 64-bit claim is if a third-party VST requires 32-bit.  In that case, we convert to 32-bit and back to 64-bit.


Quote
2) I can't get the live input to work in any way. Not sure why you recommend using a different ASIO device for the live input. That would be expensive if you need six channels! But anyway, I tried many different combinations of ASIO devices, as I have several hooked up to this computer, and in no case would the live input work. I get an error report from JRiver "something wrong with playback".

You need a different device, because Windows talks to one device (the default) and that loopsback to us where we route it to your real device.  A cheapie motherboard soundcard works well.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on January 18, 2013, 11:23:20 am
You need a different device, because Windows talks to one device (the default) and that loopsback to us where we route it to your real device.  A cheapie motherboard soundcard works well.

I tried a number of separate ASIO devices for the line input and none of them so far are working for me in JRiver in this loopback mode. I must be doing something wrong but I can't figure out.

Are there any cheapie multichannel digital in/out devices?  Not to my knowledge. I would need loopback for 6 channels, and two Lynx AES-16 cards are not cheap. Can't both be Lynx anyway, because ASIO would make them into a linked device whether i like it or not. On this computer I have an RME MADI card with its own ASIO driver, a Lynx AES-16 card with its own ASIO driver and thus they can be driven and addressed by different programs. I also have an NI Komplete 6 in ASIO and a Digidesign 002.

From my experience with DAWs that talk to a single card, it's possible to open up the card on both input and output and insert the DAW's processing in between. With a single soundcard. I'm hoping you can get JRiver to do the same thing with a single card. Crossing my fingers and praying,

Bob
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 18, 2013, 11:46:02 am
Sorry, I was addressing loopback not line-in playback.

You're correct that line-in with ASIO can often use the same device as the output.

However, we open the input and output sides separately.  So it will only work if the ASIO driver likes this, and most don't.

It'd be neat to change this in JRiver, but our architecture keeps inputs and outputs separate so it's a little complicated.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on January 18, 2013, 11:59:32 am
Sorry, I was addressing loopback not line-in playback.

You're correct that line-in with ASIO can often use the same device as the output.

However, we open the input and output sides separately.  So it will only work if the ASIO driver likes this, and most don't.

It'd be neat to change this in JRiver, but our architecture keeps inputs and outputs separate so it's a little complicated.

Oh, sorry. I may have caused the confusion because I don't even know what MC calls "loopback". This is most unfortunate. Well, first I have to get line-in working. Is there a debugging tool or log I can send you? And if it's complicated, for the foreseeable future I'll live with having another (stereo) ASIO device for the line input. Yeah, it makes it more complicated for me, too. :-(.

BK
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: mojave on January 18, 2013, 02:25:09 pm
4) I can't get the automatic filter sample rate detection to work in convolution, using Audiolense's standard format, where each config file ends in a certain sample rate number. The status screen in the convolution constantly shows the same filter is working. So for a current workaround I engaged the online sample rate conversion in JRiver, always upsampling or downsampling incoming rates that are not 96k to 96k. No offense, but I think the SRC in JRiver sounds a little bit harsh, a subtle "edge" to it to my ears compared to no SRC. It's not that bothersome to my ears, but I'd like to patch it out if we can get this automatic cfg. filter switching worked out. I understand it did work in MC before #18 when you guys worked it out...  see, I'm standing on the shoulders of giants! Many thanks and best to you all.
Are you using the naming convention posted earlier in this thread?

Quote
xxxx2.0_441
xxxx5.1_48
etc.

The regular expression is:
^(.+)(\\d{1}.\\d{1})_(\\d{2,3}).cfg$

Which outputs:
Name
Channels
Sample rate

For example, you might have files named:

t-29 oct 12_13 18 f-default (true time domain) m-three way stereo fullrange 2.0_441.cfg
t-29 oct 12_13 18 f-default (true time domain) m-three way stereo fullrange 2.0_96.cfg

I just tested in my system and it is switching with no problem.

Loopback and ASIO line in
Do you have a DAW that works fine with ASIO line input? If so, you set your default audio device to be the motherboard onboard audio device if you have one. Make sure you set it to 5.1 in the drivers. Set the DAW's output to the default device (now the onboard audio device). In JRiver use File > Open Live > WASAPI Loopback and output to your ASIO device with JRiver. Note:  Don't use ASIO as the output format to the default device.

What should happen is that you have External source > Audio device using ASIO line input > DAW > JRiver (it intercepts the sound going to the default audio device) > ASIO Audio device.

Here is more info on the WASAPI Loopback:  http://yabb.jriver.com/interact/index.php?topic=70242.0 (http://yabb.jriver.com/interact/index.php?topic=70242.0)
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Mitchco on January 18, 2013, 03:47:27 pm
Oh, sorry. I may have caused the confusion because I don't even know what MC calls "loopback". This is most unfortunate. Well, first I have to get line-in working. Is there a debugging tool or log I can send you? And if it's complicated, for the foreseeable future I'll live with having another (stereo) ASIO device for the line input. Yeah, it makes it more complicated for me, too. :-(.

BK

Hi Bob, I am using the ASIO Line in feature using one ASIO device with multiple apps:  http://yabb.jriver.com/interact/index.php?topic=70242.msg517062#msg517062

Have a look at the diagram.

Regards, Mitch
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: nostro66 on January 21, 2013, 01:47:50 pm
Regarding automatic switching of filters, I found this:

1. automatic switching doesn't work, if selected .wav file, it works only when selected .cfg file
2. automatic switching works for _441 _48 _882 _96 _192. But doesn't work for _1764
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Matt on January 21, 2013, 01:56:17 pm
2. automatic switching works for _441 _48 _882 _96 _192. But doesn't work for _1764

We were using _176.

Next build will support _1764 as well.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: deanoUK on January 21, 2013, 06:57:51 pm
Hi guys,
I am trying to get automatic filter bank switching to work.
Just spent a few hours trying to get a config file to work !
No luck.
If I load ROOM88.wav I get 4 way crossover with room correction as expected.

The following does nothing (as expected) but with no errors.

88000 2 2 0
0 0
0 0

Below (an another 50 variations I have tried) give "Not valid"

88000 2 2 0
0 0
0 0
D:\JRiver\ROOM88.wav
0
0.0
0.0
D:\JRiver\ROOM88.wav
1
1.0
1.0

Am I doing something stupid ?

Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 22, 2013, 03:13:47 am
The correct sampling rate you are looking for is 88200 instead of 88000.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: deanoUK on January 22, 2013, 11:40:33 am
Thanks. Working for all sample rates now  ;D
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on January 28, 2013, 12:18:11 pm
I have some good news:

1) Got automatic filter switching with sample rate working! It seems to be a matter of too long a cfg file name or some forbidden characters in the file name breaking it. I'll let you know as I further debug.

2) Got the 24-bit dither working (thanks Mojave!) with Voxengo Elephant. Use the 32-bit VST version! (it accepts 64 bit data and computes 64 bit anyway). I don't even know if my measurement gear can determine if there is a measurable (let alone audible) difference between 64 bit calculation all the way or truncation to 32-bit float at some point in the process. It's pretty low down, after all  :-).

Sound is fabulous. Still learning how to optimize Audiolense for the best sound.

Things are looking up! Now if only I could get ASIO line in working. In this or another thread someone posted how to do loopback, but that is a separate thing from line in. Can someone please outline that procedure?  JRiver warns that a separate interface may be necessary. I may see if I can at least do proof of concept with that before I start nagging Matt   ;D ;D
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: hulkss on January 28, 2013, 06:43:10 pm
In this or another thread someone posted how to do loopback, but that is a separate thing from line in. Can someone please outline that procedure?  

Hi Bob
Mojave with the answer again.
http://yabb.jriver.com/interact/index.php?topic=70242.msg486195#msg486195 (http://yabb.jriver.com/interact/index.php?topic=70242.msg486195#msg486195)

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on January 29, 2013, 02:19:57 am
Bob

I have been using the VST Host Plogue Bidule with success for a while (www.plogue.com).

One advantage of this is that it has a VST version, so you can use a VST Host inside JRiver. I presently use this with the convolver inside it (it is clearer how the channel routing and filters are applied).
You could also use this approach to get inputs into JRiver, without needing any loopback (with the correct mixer routing).
Make sure you select 16 or 32 channels in the output format though

Have you come across acourate? It does a similar job as audiolense. The few people that I have read that have tried both have preferred acourate. It generates linear phase filters and has a good algorithm that minimises pre ringing. You can give the filters a try by emailing a recorded impulse to the author of the software. One disadvatage is that it's more work to generate filters than audiolense, and is not as surround friendly.

 It would be interesting to hear your thoughts on whether the acourate generated filters have the same problems in the high freq region that you reported with a full correction with audiolense

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 29, 2013, 12:58:59 pm
Bob,

when you are looking for the best possible way to use convolution together with line in "live" playback I strongly recommend using AcourateConvolver. It's sole purpose is to give you this capability - and it does it very well (including less delay).

Via AcourateASIO (a module of it) it can also be tightly integrated with JRiver - it serves as "virtual ASIO soundcard". Therefor you simply select AcourateASIO as "soundcard" for output in JRiver. AcourateConvolver takes this stream, does convolution in 64bit fp, digital volume (perceived loudness ISO 226) and flexible channel routing.

I have been using Audiolense for 2 years now, and Acourate for 18 months. You should definitely give both of them a try - depending on your room and setup there are significant differences in achievable sound quality.

Best
Walter
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on January 29, 2013, 05:35:11 pm
Thanks to you and Brad. Yes, I am already in the process of checking out Acourate. The convolver and the ASIO link see like my perfect solution to getting live line in with automatic sample rate switching, or playback from JRiver, and 24-bit dither (according to Uli he can implement that at the tail of his chain in Acourate convolver) all in the same application and integrated environment. The only weaknesses I have learned so far is Acourate is not so strong in the Surround domain, but I can wait till he gets that act together.

For that matter I have to figure how to get PCM audio in multichannel out of DVDs and Blu Rays encoded in DTS and Dolby Digital in JRiver... sounds like it's supposed to work (and what a marvelous thing that would be!). If it does work, I'll sell my Marantz A/V preamp with HDMI input and  multichannel balanced XLR outputs because I won't need it anymore! But the Marantz can read and decode cleanly SACDs, DVD-A, Blu-Ray, DVD through its HDMI input from my Sony Blu-Ray player and that's an amazing achievement in itself---but it's limited to analog output due to the copy-protection issues and so I eagerly await seeing JRiver talk to Acourate at 64-bit float over ASIO in a fully integrated environment! We are living in interesting times.

By the way, I got JRiver's sample rate switching to switch the convolver filters as well. It was simply a matter of getting the file names to EXACTLY conform with the specifications. And I thank (I think) Brad for turning me on to that format. The help here on the forum has been terrific. I'm shivering with excitement. In the meantime I have an automatic sample-rate switched playback from JRiver for file playback through the Convolver, dithered to 24 bits going. And it sounds sweet, beautiful and terrific, best my system has ever sounded. And that's saying a lot, believe me.

And for line input, I kludged together VST Host (a great program) and Convolver (source forge) VST. It doesn't automatically switch, but I can live with it for a few weeks until I get Acourate together.

Take care everyone, I'll fill you in as we progress. I couldn't have done it without you! BTW, we need to move this whole thread over to MC 18, eh? Maybe the forum administrators can move it.


Bob,

when you are looking for the best possible way to use convolution together with line in "live" playback I strongly recommend using AcourateConvolver. It's sole purpose is to give you this capability - and it does it very well (including less delay).

Via AcourateASIO (a module of it) it can also be tightly integrated with JRiver - it serves as "virtual ASIO soundcard". Therefor you simply select AcourateASIO as "soundcard" for output in JRiver. AcourateConvolver takes this stream, does convolution in 64bit fp, digital volume (perceived loudness ISO 226) and flexible channel routing.

I have been using Audiolense for 2 years now, and Acourate for 18 months. You should definitely give both of them a try - depending on your room and setup there are significant differences in achievable sound quality.

Best
Walter
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on January 29, 2013, 10:00:48 pm
Bob

I read your thread over at the audiolense forum with interest.

You describe a problem with different attenuation at different sample rates. This may not be the solution, but I had a problem (using acourate) where I couldn't get correct amplitudes when measuring subs and mains separately. Uli said that the problem was that he has been unable to find a correct scaling algorithm for logsweep recordings for different freq ranges.

Hence the solution was to record the subs and mains with full range sweeps. So your problem may be that you record the different sampling rates over different freq ranges (20-24k and 20-44k).

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: TheLion on January 30, 2013, 11:00:12 am
Thanks to you and Brad. Yes, I am already in the process of checking out Acourate. The convolver and the ASIO link see like my perfect solution to getting live line in with automatic sample rate switching, or playback from JRiver, and 24-bit dither (according to Uli he can implement that at the tail of his chain in Acourate convolver) all in the same application and integrated environment. The only weaknesses I have learned so far is Acourate is not so strong in the Surround domain, but I can wait till he gets that act together.

For that matter I have to figure how to get PCM audio in multichannel out of DVDs and Blu Rays encoded in DTS and Dolby Digital in JRiver... sounds like it's supposed to work (and what a marvelous thing that would be!). If it does work, I'll sell my Marantz A/V preamp with HDMI input and  multichannel balanced XLR outputs because I won't need it anymore! But the Marantz can read and decode cleanly SACDs, DVD-A, Blu-Ray, DVD through its HDMI input from my Sony Blu-Ray player and that's an amazing achievement in itself---but it's limited to analog output due to the copy-protection issues and so I eagerly await seeing JRiver talk to Acourate at 64-bit float over ASIO in a fully integrated environment! We are living in interesting times.

By the way, I got JRiver's sample rate switching to switch the convolver filters as well. It was simply a matter of getting the file names to EXACTLY conform with the specifications. And I thank (I think) Brad for turning me on to that format. The help here on the forum has been terrific. I'm shivering with excitement. In the meantime I have an automatic sample-rate switched playback from JRiver for file playback through the Convolver, dithered to 24 bits going. And it sounds sweet, beautiful and terrific, best my system has ever sounded. And that's saying a lot, believe me.

And for line input, I kludged together VST Host (a great program) and Convolver (source forge) VST. It doesn't automatically switch, but I can live with it for a few weeks until I get Acourate together.

Take care everyone, I'll fill you in as we progress. I couldn't have done it without you! BTW, we need to move this whole thread over to MC 18, eh? Maybe the forum administrators can move it.



Bob,

for decoding all possible multichannel formats (including lossless TrueHD and DTS-HD MA) the LAV filter suite is used automatically in JRiver (when using Red October). Make sure to use the "dtsdecoder.dll" trick to get DTS-HD MA decoding.

Audiolense is much more comfortable for channel setup, measurement and routing. With Acourate it is alot of manual work. But I did run a 12 channel active system (7.1 with 3-way fronts with digital XO) with it - so everything is possible.
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on January 30, 2013, 03:03:57 pm
Thanks Brad. I think the slightly different attenuation in Audiolense comes from my using slightly different targets at different rates to extend the frequency response of the target into the supersonic as the sample rate increases. Even though I'm careful to follow the rolloff of the loudspeakers, a little change creeps in and Audiolense thinks there is some danger of clipping and increases the attenuation. That's my theory. There are some mysteries as to how Audiolense chooses its amount of attenuation, and anyway, Bernt has posted on the Audiolense group that he's willing to add a feature where the user can choose the attenuation manually, provided that he knows it can increase the danger of clipping, of course.

Best wishes,


Bob

Bob

I read your thread over at the audiolense forum with interest.

You describe a problem with different attenuation at different sample rates. This may not be the solution, but I had a problem (using acourate) where I couldn't get correct amplitudes when measuring subs and mains separately. Uli said that the problem was that he has been unable to find a correct scaling algorithm for logsweep recordings for different freq ranges.

Hence the solution was to record the subs and mains with full range sweeps. So your problem may be that you record the different sampling rates over different freq ranges (20-24k and 20-44k).

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: BradC on February 02, 2013, 08:12:56 pm
Bob,

would you mind posting here, or over at the acourate yahoo forum, your experiences and results with acourate.

I would be interested in what parameters gave you your preferred results

Thanks

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: bobkatz on February 02, 2013, 09:57:27 pm
Dear Brad: I'll be happy to, once I learn how to use it! Uli gave me a headstart at my request. Basically, I really wanted to get AcourateConvolver working for me so I could do live input with automatic sample rate  sensing. I sent him my measurements from Audiolense and Uli went beyondthe call of duty and found a way to bring them into Acourate. I gave him the exact shape of my desired target and he converted them to Acourate and sent me the Acourate config files. I'm now up and running and a VERY happy camper with the beauty of tone of AcourateConvolver with both JRiver and with Line in.

It's 64-bit communication between JRiver and AcourateConvolver and 24-bit dithered in Convolver so it's as good as it's gonna get and that sounds very good, too. I have some tiny sporadic pops at 176.4 kHz that I have not been able to clear up, so I downsample those in JRiver until I can figure that one out (yes, I've tried every permutation of JRiver buffer size, ASIO buffer size and other options in JRiver/AcourateConvolver/ASIO driver to no avail. My PC is minimalistically configured, Windows doesn't know about any of the soundcards (disabled in properties) and still no go at 176.4 kHz.

Now I have to learn Acourate so I can tweak the targets a bit if I want and make changes and get a Surround config, but I expect a long learning curve  :-(.

I'll report more when I get there.

Best wishes,


Bob


Bob,

would you mind posting here, or over at the acourate yahoo forum, your experiences and results with acourate.

I would be interested in what parameters gave you your preferred results

Thanks

Brad
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: Rockefoten on February 13, 2013, 02:00:36 pm
Hi. New to the forum, hello everyone..

Have a dsd question

Will the convolver handle dsd bitrates? Or is 192k the highest it can do?

Will dsd over dop be convolved with only filters up to 192k via some kind of upsampling?

And of so will my 2.6 core duo Mac mini handle it? If not is a file with less taps the way to go?
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: HiFiTubes on May 16, 2013, 12:04:05 am
Hi. New to the forum, hello everyone..

Have a dsd question

Will the convolver handle dsd bitrates? Or is 192k the highest it can do?

Will dsd over dop be convolved with only filters up to 192k via some kind of upsampling?

And of so will my 2.6 core duo Mac mini handle it? If not is a file with less taps the way to go?

Following this one for a while, and this weekend I'm finishing up my room treatments, but did already purchase an Audiolense license.

I seem to have the problem Mr. Katz did upthread  (http://yabb.jriver.com/interact/index.php?topic=68828.msg527615#msg527615)where the .cfg file I make doesn't work for multiple-samnple rates. I created one named test.cfg as well, and no go.

Also, I only see 96kHz max? From reading it seems like the cap is 192kHz  ?

I am using the MPR1 kit and really need to re-shoot the room once complete, but trying to wrap my head around Targets and the like. Would love to see DSD someday for Audiolense as well (read the signalyst has it working on i5 with CPU at 30%).

cheers
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: MartinG on July 11, 2013, 02:49:43 pm
Hi everybody.
After some time of PC abstinence I am back to an newly configured Win8 HTPC with JRiver 18 installed. :)
I now encountered that using the automatic switching capability for FIR filters has a different (worse) quality to a manually selected WAV Filter. Has anybody made the same experience and if YES, how did he solve the "problem". I really would like JRiver to do the automatic filter selection as it is much more comfortable with my mixed music database of different sample rates.
I already tried to switch off the the checkbox for "normalising"  to see if this influences... without getting the wanted positive result.
Thanks

Martin
Title: Re: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?
Post by: LeChacal619 on August 23, 2014, 12:27:42 pm
Well I don't know if someone already explained about FIR filtering and convolution but I have some things to point out :

1- FIR filtering implies latency. You can't get 0 latency, whatever people says, because filtering is causal and 0 latency would mean able to predict the future (I'm not sure you can predict the future but if you can do it please tell me !). For those that thinks it's okay to use huge filters length (65k for exemple) and using partitioning to reduce latency (which effectively works but reduce your effective filter length) just try this : make a low pass filter of let's 50hz with high slope (48dB/octave for exemple), 2048 coefficients, then apply a simple blackmann-nuttall windowing for exemple. Then make another low pass filter of same fc and same slope but with 8x more coefficients : 8x2048. Then measure the resulting impulse of a loopback measurement applying the 2048taps low pass filter, and compare with the 8x2048=16384taps low pass filter. Now make another measurement with the 16384taps with a convolution by partitioning 8x (which equals in fact to a 2048 taps filter) and compare the response of the resulting impulse. Your 16384 taps partitioned 8x have same/lower behavior then your 2048taps filter without partitioning. You can conclude what you want from that.

2- Now you know it's useless to use huge filters with huge partitioning trick instead of using low length filters unpartitioned, you can reduce a lot your processing needs ;)

3- FFT convolution is equals to time convolution, yes but only for convolution. I mean, if you have two signals a and b in time domain, and denote A and B they corresponding response in frequency domain, then theoritically convolution(a, b) is equal to A*B BUT some conditions :

- convolution(a,b) results in a signal of size R where R = size of a + size of b - 1 (it's convolution definition !), A and B are of size of a and b respectively, so you can't do A*B, then apply an inverse transform to get the signal back.... You have to scale the size of the FFT vectors so that A and B are of size of R before applying ifft(A,B).

The inverse convolution in FFT is much more difficult to handle : in time domain inverse convolution can't be done in a general case (at least for me it's not possible because when you do : a convolve b = c, you makes multiplication with 0 or some really low values, and the only way to get the original signal a from c by doing inverse convolution b is to find how X * 0 = 0 : you can't find the original value of X, because 0 / 0 is undefined....

In frequency domain you can calculate the original signal by doing A/B, but it's difficult because in FFT domain the signal is supposed to be periodic (which is not sometimes), so the resulting solution needs to be trunc and have some time shifts (to do a good inverse I have used this GNU Octave simple code but you have to specify the resulting length you wants and the time alignment is done tracking peak absolute values in time domain of the 2 input signals : https://www.dropbox.com/s/rnpwplkps763gn1/fftdiv.m?dl=0 with this file also for tracking peak signal value : https://www.dropbox.com/s/53l16vbdo5fy7hj/max_absolute_peak.m?dl=0).

I have tried to correct my system by doing some simple things, and I obtain a theoritically perfect correction on the paper (tested by time convolution with system impulse measure and correction fitler generated, and with real measurement applying correction filter on my system). The resulting impulse is NOT ok in reality, because the holes in frequency domain are hugely compensated, which results in an endless oscillation in the correction filter at theses frequencies, and in the real measurement the frequency response amplitude AND phase IS ok but not the waterfall/spectrogram, which shows huge resonance at some frequencies, and these effects are clearly audible (it's TOTALLY wrong) : this is because the system is not completely linear, at least is what I concluded (because the holes in frequency amplitudes have corresponding high THD and so when you try to compensate this you increase in fact the distorsion of the system !).

The only way I found to avoid theses problems is to trunc the correction filter in time domain by applying windowing to remove these resonances but doing so the resulting frequency response is not good...
Using DRC always give me audible artefacts in transient responses too.
Correction seems to works better in near field but it's still so wrong.

Last point, when someone asks why their filter needs so much attenuation, the simple explanation is that generally a correction filter implies gains and losses in frequency domain. If your input signal is 0dBFS all the way from 0hz to you FS, then if you want's your resulting signal after convolution avoid clipping you have to limit the level of your filter to 0dBFS for the max peak in frequency domain (increase the length of your filter by applying 0 to increase FFT resolution, for exemple if you have a 2048 taps filter, adds 0 so your resulting filter is let's say 262144 (adding then 260096 zeros to the end or to the beginning, because frequency is cyclic that doesn't matter except for absolute phase values...), then do an FFT of your filter. If your signal have a peak to +15dBFS in frequency domain at 1055hz for exemple, then you have to attenuate your filter when you do some convolution by 15dB to avoid clipping at this frequency... because inputting a 1055hz signal at 0dBFS to your system convolved with your filter would result to an output of +15dBFS and so you would have some clipping !

Thus the more you correct your system, the more you limit your dynamic range.