INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 [3] 4 5 6 7 ... 10   Go Down

Author Topic: Native JRiver 64bit fp convolution engine for Room Correction (FIR filters)?  (Read 340890 times)

lasker98

  • Junior Woodchuck
  • **
  • Posts: 74

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

Logged

candycane

  • Recent member
  • *
  • Posts: 29


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!
Logged

SamuelMaki

  • World Citizen
  • ***
  • Posts: 115

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).
Logged
AMD Phemon II N930 Quad 2.0ghz, AMD Radeon HD 5650, 4GB RAM, Windows 8 RP x64

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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/
Calibrated mic+preamp: BfAkustik 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).
Logged

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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.
Logged

)p(

  • Citizen of the Universe
  • *****
  • Posts: 579

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

Mitchco

  • MC Beta Team
  • World Citizen
  • *****
  • Posts: 176

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

candycane

  • Recent member
  • *
  • Posts: 29

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.
Logged

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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.
Logged

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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.
Logged

hulkss

  • Galactic Citizen
  • ****
  • Posts: 451

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.
Logged

Mbare

  • Recent member
  • *
  • Posts: 17
  • One (proud) audiophile checking in.

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

Logged
Room-correction saved my hi-fi. HTPC, Audiolense and JRiver Media Center, RAKK-DAC, Heretical buffer, Hegel poweramp and Magnepan loudspeakers.

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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.
Logged

Mitchco

  • MC Beta Team
  • World Citizen
  • *****
  • Posts: 176

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

BerntR

  • Recent member
  • *
  • Posts: 9

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!
Logged

)p(

  • Citizen of the Universe
  • *****
  • Posts: 579

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.
Logged

mojave

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3732
  • Requires "iTunes or better" so I installed JRiver

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.
Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42376
  • Shoes gone again!

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.
Logged
Matt Ashland, JRiver Media Center

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42376
  • Shoes gone again!

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.
Logged
Matt Ashland, JRiver Media Center

Mitchco

  • MC Beta Team
  • World Citizen
  • *****
  • Posts: 176

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!

hulkss

  • Galactic Citizen
  • ****
  • Posts: 451

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

barkerpusa

  • Recent member
  • *
  • Posts: 8

+1 for native convolution engine.
Logged

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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.

Logged

v_erich

  • World Citizen
  • ***
  • Posts: 120

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
Logged

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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?!
Logged

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 72443
  • Where did I put my teeth?

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

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

The latest beta - 17.0.65
Logged

mojave

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3732
  • Requires "iTunes or better" so I installed JRiver

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.  :)

Logged

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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.
Logged

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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....
Logged

hulkss

  • Galactic Citizen
  • ****
  • Posts: 451

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.
Logged

)p(

  • Citizen of the Universe
  • *****
  • Posts: 579

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.
Logged

soundcheck

  • Guest

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.
Logged

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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.

Logged

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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

AudioVero

  • Junior Woodchuck
  • **
  • Posts: 52

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.

 :)

Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42376
  • Shoes gone again!

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.
Logged
Matt Ashland, JRiver Media Center

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

 :)

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   ;)
Logged

AudioVero

  • Junior Woodchuck
  • **
  • Posts: 52

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. :)


Logged

v_erich

  • World Citizen
  • ***
  • Posts: 120

Nice, is there a plan for multichannel-convolving for a full-active system?

Thanks,
Erich
Logged

AudioVero

  • Junior Woodchuck
  • **
  • Posts: 52

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.
Logged

Sandy B Ridge

  • Citizen of the Universe
  • *****
  • Posts: 884

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
Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42376
  • Shoes gone again!

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.
Logged
Matt Ashland, JRiver Media Center

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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 ;-)
Logged

TheLion

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 437

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.
Logged

Trumpetguy

  • Citizen of the Universe
  • *****
  • Posts: 974

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

markus_kr

  • Recent member
  • *
  • Posts: 20

Hi Matt,

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

best regards
Markus
Logged

jdubs

  • Junior Woodchuck
  • **
  • Posts: 86

Great news re: the bit-perfect "ness".  Looking forward to the next build.

Jim
Logged
Pages: 1 2 [3] 4 5 6 7 ... 10   Go Up