INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: NEW: Volume Leveling uses the additional Headroom provided by Internal Volume  (Read 19595 times)

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

Jim can you clarify what exactly means?

Thanks
The change corrects two issues with volume leveling:

1) Previously volume leveling would perform a clipping check before applying the volume leveling adjustment, but the check was done before internal volume was applied.  That meant that, in effect, any music or video that needed a volume leveling adjustment greater than zero with a peak at or near zero would not get the correct volume leveling applied.  Volume leveling now takes the additional headroom created by internal volume into account, so that (headroom permitting) audio and video that need a positive adjustment can receive one.  

2) Additionally as part of JRiver's downmixing, video with a peak level near zero would receive significant attenuation to avoid clipping caused by summing several channels into a smaller number of channels.  This was done transparently (i.e. it didn't show up as a volume reduction in the audio path).  This created the effect that a stereo downmix of a 5.1 video was significantly quieter than other stereo content JRiver played.  To create a more level volume, volume leveling now takes into account any extra headroom created by internal volume and uses that to reverse the volume reduction created by the downmix.  As a result, with adequate internal volume headroom, volume leveling makes downmixed multi-channel audio closer in volume level to stereo audio and stereo video.  

In both cases if you have internal volume maxed out, you should see no changes in behavior (it scales appropriately as volume is reduced).
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

I'm not Jim, but I was active in the threads where this change was discussed.  The change corrects two issues with volume leveling:

1) Previously volume leveling would perform a clipping check before applying the volume leveling adjustment, but the check was done before internal volume was applied.  That meant that, in effect, any music or video that needed a volume leveling adjustment greater than zero with a peak at or near zero would not get the correct volume leveling applied.  Volume leveling now takes the additional headroom created by internal volume into account, so that (headroom permitting) audio and video that need a positive adjustment can receive one.  

2) Additionally as part of JRiver's downmixing, video with a peak level near zero would receive significant attenuation to avoid clipping caused by summing several channels into a smaller number of channels.  This was done transparently (i.e. it didn't show up as a volume reduction in the audio path).  This created the effect that a stereo downmix of a 5.1 video to be significantly quieter than other stereo content JRiver played.  To create a more level volume, volume leveling now takes into account any extra headroom created by internal volume and uses that to reverse the volume reduction created by the downmix.  As a result, with adequate internal volume headroom, volume leveling makes downmixed multi-channel audio closer in volume level to stereo audio and stereo video.  

In both cases if you have internal volume maxed out, you should see no changes in behavior (it scales appropriately as volume is reduced).

Ok makes alot of sense. I don't use JRiver's internal volume control (yet, I think I probably will in the future) but I do have some other questions and you seem to know what you're talking about. Would you mind if I PM'd you?
Logged

JimH

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

It would be nice if you can use this new thread on this subject.  That way discussion benefits everyone.

The build thread should be used for reporting known bugs only.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

Ok makes alot of sense. I don't use JRiver's internal volume control (yet, I think I probably will in the future) but I do have some other questions and you seem to know what you're talking about. Would you mind if I PM'd you?

Lisbeth, feel free to ask in this thread (or start a new one) if you have any internal volume questions.  To improve the forum as a resource we try to have technical discussions out in the open, and reserve PMs for private info.

I use internal volume exclusively in my setups for a lot of reasons, and am pretty familiar with the ups and downs, so fire away.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

At the moment I use a receiver thats confirmed in its pure direct mode to do nothing to process the sound to create bi amped front outputs for a 5.1 rig. In the future I'm moving to a studio interface and many many more channels. However that would mean needing to control volume in software and not in hardware passively (my ideal goal but I don't want to build a 16ch passive volume control). Mainly what I'm wondering is what exactly internal volume / gain does when it comes to 'room correction'. I currently do nothing in room correction other than generation of sub signals since I have passive gain controls on my array of amps, however when its enabled i still see 'overflow' on some films (which I can confirm disappear if it or any sort of dsp is disabled, including my simple copy l to rl and r to rr to create a bi amp) show up if I have "flatline overflows" on and with clipping protection it can stick at 100 on alot of tracks which really should not be anywhere near that level. Do you know why this happens? Im sure its not worrying as it often doesn't sound bad. Just trying to better understand it for when I move to internal volume.

Thanks
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

At the moment I use a receiver thats confirmed in its pure direct mode to do nothing to process the sound to create bi amped front outputs for a 5.1 rig. In the future I'm moving to a studio interface and many many more channels. However that would mean needing to control volume in software and not in hardware passively (my ideal goal but I don't want to build a 16ch passive volume control). Mainly what I'm wondering is what exactly internal volume / gain does when it comes to 'room correction'. I currently do nothing in room correction other than generation of sub signals since I have passive gain controls on my array of amps, however when its enabled i still see 'overflow' on some films (which I can confirm disappear if it or any sort of dsp is disabled, including my simple copy l to rl and r to rr to create a bi amp) show up if I have "flatline overflows" on and with clipping protection it can stick at 100 on alot of tracks which really should not be anywhere near that level. Do you know why this happens? Im sure its not worrying as it often doesn't sound bad. Just trying to better understand it for when I move to internal volume.

Thanks

Could you post some screencaps of your relevant DSP studio settings?  Most audio shouldn't clip regardless of JRiver's volume settings, but if adding DSP is causing it to clip, then something is adding gain somewhere and it would be good to find out where.  To be clear, I don't see anything like that when using internal volume and lots of DSP/Room Correction (so long as I manually offset any boost).  With clip protection on, it won't sound bad at all because MC just turns things down when clips would happen.  But it's not ideal as tracks won't be as dynamic as they would be if the clipping were resolved.

Lots of audio does have momentary clipping in it (peaks slightly above 0dB), but that doesn't sound like what you're describing.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

I never boost. I'm out of the room at the moment (gimme 20 mins to run across the house) but pretty much for the 2.0 zone its 7.1 channels with no up mixing then the only DSP is Parametric EQ which has the following

Copy L to RL (I think its whatever the rear 7.1 is)
Copy R to RR (same deal)
Add Left to Sub -3db
Add Right to Sub -3db (because apparently when you mix channels you need to take each down 3db)
Low pass at 50 on the subs (I don't mind a tiny bit of overlap occasionally, if it bugs me for certain tracks I put it back to 40)
High pass at 40 on the rears which make up the low end of the bi amp'd fronts.
Thats it.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

Add Left to Sub -3db
Add Right to Sub -3db (because apparently when you mix channels you need to take each down 3db)

This is probably part of your problem.  A -3dB reduction is not enough to avoid clipping when summing channels in all (or most) cases.  It's true that combining two perfectly uncorrelated signals sums +3dB; however, summing two perfectly correlated signals sums +6dB (which is why a linkwitz-riley crossover sums flat and a butterworth doesn't).  

Most real world signals are somewhere between those two poles (not perfectly correlated, but not perfectly uncorrelated either).  But you will always need a minimum of 3dB of attenuation to avoid clipping when summing channels, and except when summing uncorrelated noise you will need more.  4.5 dB is a compromise position that won't guarantee no clipping, but will do a much better job than 3dB.  If you want to be perfectly safe, 6dB is the answer.

Additionally, I think the "add" reduction may only reduce the volume of the channel being added, not the destination channel, but I'd need to check on that to be sure (I'm not in front of JRiver right now).  It's worth investigating to make sure though, because if that were so you'd have lots of clipping even with uncorrelated noise.

You mentioned room correction above, do you have any settings in that DSP module?

All that said, here's the good news: none of that will matter if you use internal volume unless you have the volume maxed out.  JRiver's DSP stack uses any headroom created by the internal volume setting, which allows signals that would clip at full volume to be represented without clipping or additional attenuation.  So if you have internal volume at 100%, and clip protection engages and cuts the volume by 3dB, if you have the internal volume set to -3dB or below, clip protection will never engage because the necessary 3dB of headroom is already there.  Also if you need to add boost to the chain for some reason, you can just make sure to set your maximum internal volume so you don't compromise your headroom "envelope."

If you use other volume control methods, clip protection will engage and turn down the volume anytime a clip could happen.  That's probably what's currently happening in your setup when you see clipping, and why it doesn't sound like anything.  Watch the "audio path" while it's happening and see if clip protection shows up.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

So if I do 6 db each for the subs I should be in a possible non clip situation? I guess I didnt understand the logic there before but that makes more sense. I have enough gain on the analogue side to easily turn it up so thats no issue, its only about making the initial digital signal as clean and hopefully unclipped as possible.

I would love if you could check on that and tell me but I definitely am not hearing clipping on the lows. For reference my low woofers are comfortable playing 100 dbs with massive excursion so I feel as though I would be hearing distortion or worse seeing it.

Room correction is only engaged on my 5.1 channel zone which selects when I play anything with more than 2 channels. The PEQ for it is only copy l to rl and r to rr. Room correction does absolutely nothing but creating a sub woofer channel from all 5 in play (For 7.1 sources I have JRSS mixing enabled which I assume is processed long before it reaches room correction)
.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Very interesting.

Using the previously described 2 channel preset
Disabling both  L to RL and R to RR change an overflowing track (a max of 106% more than it should be at any point) to 84% consistent. The subs are still at -3 with no negative impact. Worried my copying is causing that extra % of gain??
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

So if I do 6 db each for the subs I should be in a possible non clip situation? I guess I didnt understand the logic there before but that makes more sense. I have enough gain on the analogue side to easily turn it up so thats no issue, its only about making the initial digital signal as clean and hopefully unclipped as possible.

You need to do -6dB for both the added channel and the recipient channel to be perfectly safe.

Quote
I would love if you could check on that and tell me but I definitely am not hearing clipping on the lows. For reference my low woofers are comfortable playing 100 dbs with massive excursion so I feel as though I would be hearing distortion or worse seeing it.

I just checked and the gain on the "add filter" only adjusts the channel you are adding, not the recipient channel.  So you need to adjust the receiving channel first with an "adjust the volume" filter as well.  

If Clip Protection engages there will be no "actual" clipping and no distortion, just a sudden reduction in volume.  It works like a limiter.  That's what I'm getting at: with how well clip protection works you could be "clipping" (i.e. overdriving your digital signal) constantly and you'd only notice by the way volume seems to fluctuate occasionally (unless you were looking at the audio path as it happened).  It's just dangerous as clip protection is close to perfect, but not perfect (no limiter can be).

Very interesting.

Using the previously described 2 channel preset
Disabling both  L to RL and R to RR change an overflowing track (a max of 106% more than it should be at any point) to 84% consistent. The subs are still at -3 with no negative impact. Worried my copying is causing that extra % of gain??

The copying shouldn't add gain by itself (unless you added gain in the copy filter?)
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

I am adding no gain in the copy filter, nor would there be any information in said channels beforehand. Thats why Im curious as to why when I disable both of those (but not the sub stuff) it stops doing that overload thing.

Sorry if I sound like an idiot, If theres any way I can show you whats happening (better than I've already described) I'll try.

Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

I am adding no gain in the copy filter, nor would there be any information in said channels beforehand. Thats why Im curious as to why when I disable both of those (but not the sub stuff) it stops doing that overload thing.

Sorry if I sound like an idiot, If theres any way I can show you whats happening (better than I've already described) I'll try.

You definitely don't sound like an idiot, it's just that what you're describing sounds anomalous.  It may even be a bug.  The most helpful thing would be if you could take and post a few screen caps of the "changes" block of your audio path (or transcribe it). If you're not familiar, the audio path icon (right belowa nd to the left of the search box) shows everything the DSP blocks are doing in a line by line format, so specifically I'd like to know what your audio path has in it when there are overflows, and what your audio path looks like after you've turned off the copy filters and aren't getting overflows.  The differences between the two should provide a clue about where the issue is if it's a settings issue.

I definitely can't reproduce the issue you're descibing here so either there's another setting somewhere causing this, or we may have bug.  But if it's a bug, I'm not seeing it yet, so let's keep doing differential diagnosis. 
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226

One thing confuses me in this thread and that's that these 2 statements seem to contradict each other. I might be misunderstanding how it is configured but thought it worth checking;

pretty much for the 2.0 zone its 7.1 channels with no up mixing then the only DSP is Parametric EQ which has the following

I currently do nothing in room correction other than generation of sub signals

I read this as meaning you have a crossover implemented in the room correction module as well as channels being copied around in PEQ. If so, and depending on exactly how RC is configured and the order things are listed in in DSP, then wouldn't this result in a doubling up of some content?

Some pics of the DSP blocks and the audio path would no doubt clarify this.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Sorry mate forgot to clarify, was talking about 2 different zones there. I use zoneswitch (sometimes its a little buggy and I have to manually switch every once in a while) to go between a zone for 2.0 music has no 'room correction' which derives its sub signal in PEQ, and a zone for multichannel content both music and movies which instead of generating the sub signal in PEQ its done within 'Room Correction'.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101




Just to clarify, I only turned it to flatline overlows in the first image to show how on an unboosted track its doing that. Usually its on clipping protection since I believe thats apparently the best to use?

This is my 2.0 Zone
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226

have you tested this with test tones or just real world content?

My method, when verifying the cleanliness of my signal chain, is to use a sine wave generator (e.g. REW) into jriver (via asio line in or wdm) and then use PEQ to route the content within jriver accordingly. You then know exactly what you're putting in and exactly what levels come out the other end. You can also use audacity, or similar, to record the content coming out to verify that it is working exactly as planned.

having said that, 113% means you're ~1.06dB over which is consistent with the earlier comment from mwillems that 4.5dB is a safe amount of attenuation to apply so the answer might just be that you need to attenuate that bit more
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Culprit found, the final part of my signal chain in PEQ is High Pass at 40 Hz on the Low end speakers
Disabling that bit removed the overflow when, flatline overflows is disabled. It leaves things at a consistent 96% on a very poorly mastered track.
I think this is a bug or something.

Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

It would be very odd if a high-pass pushed things into clipping and I'm not seeing anything like that here, but it may be a bug.

Can you try increasing the attenuation on your "Add" operations as we discussed above just to rule that out?
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101



Going down to -6 doesnt help sadly.
This is most likely a different track, however on most tracks I can get up to 139% over (I was never paying too close attention, I happened to look at mostly peaks of 120% at most)

Any idea whats up? Im keeping this off in the mean time and just leaving it on flatline overflows since I cannot find a track that while the high pass is disabled it doesnt go into overload (other than 2 super super quiet SACDs I believe) .
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

BY THE WAY! I am not on MC 21 right now. I am on 20.0.132 Just so we're on the same page. I posted that initial question in MC 21's forum since I was curious about how the upgrade would affect me when I have a credit card again.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient



Going down to -6 doesnt help sadly.
This is most likely a different track, however on most tracks I can get up to 139% over (I was never paying too close attention, I happened to look at mostly peaks of 120% at most)

Any idea whats up? Im keeping this off in the mean time and just leaving it on flatline overflows since I cannot find a track that while the high pass is disabled it doesnt go into overload (other than 2 super super quiet SACDs I believe) .

That's really wild.  I can't get anything like that to happen here.  I'll keep playing around and see what I can manage.  If you look at analyzer during playback can you see which channels are clipping?  All of them?  Just RL and RR? 

One more thought: when you're looking at the parametric EQ tab there's an "options" button in the upper right hand corner.  If you click that button are either of the two options checked?  If so, uncheck them and test again.  Neither of those two options should ever be checked for any built in DSP (other than analyzer), and "process independently of internal volume" in particular can cause lots of mischief.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Well heres the thing, I thought about trying the analyzer. Nothing clips. At all. On most tracks I was getting -10db on any one channel despite showing 113% average on the overload.  Yet it DOES sound noticably better on the low end upon unchecking (I closed my eyes and played around haha, nowhere near a blind test but there is a difference) high pass.
Its doing something.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Nothing is checked and the second is just greyed out.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

This is a really weird issue that had persisted throughout many updates, eventually I just figured Id put clip protection on but honestly I'd rather not settle for that.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

This is a really weird issue that had persisted throughout many updates, eventually I just figured Id put clip protection on but honestly I'd rather not settle for that.

Well you could probably "solve it" by using internal volume and setting your max volume at 95% (or just using volume leveling, which will solve the problem as well), but I agree it would be better to run this to ground somehow. 

I just reproduced what you're seeing by recreating your DSP chain exactly and playing an album with a 0dB peak value.  Of interest, even with 2dB of attenuation from internal volume, I was still getting occasional overflows, which instantly went away when disabling the high pass. I'm not sure what's causing it to happen, but adding the high pass is definitely pushing things into clipping which is bizarro.  It's also odd that it will report overflows even when analyzer is reporting that the RMS volume is still much lower.

This is definitely one for the devs I think. 
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

I do no internal volume (at least on main speakers) all my amps (Its 2 for each front and then one for each center and rear) are pro amps so they have gain controls and would rather not. In the mean time I trust the T6's internal crossovers. This could be DEVASTATING to someone believing they could use JRiver to derive actively crossed over signals and bypass the analog ones.

Im really glad I found this.
Even more curious to find out why it happened.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Having said that when I go up to 14+ channels I will be using internal for global volume control.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re:
« Reply #28 on: August 14, 2015, 01:01:44 pm »

Fwiw there was a bug report a while ago that showed jriver was not handling a convolution filter with magnitude > 1 even if the end result was ok. This kind of sounds like the same sort of magnitude issue.

Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

This could be DEVASTATING to someone believing they could use JRiver to derive actively crossed over signals and bypass the analog ones.

Let's not get carried away.  If clip protection is engaged (which is the default and recommended setting) it's not really an issue (JRiver just quietly turns things down a dB or two), and even then it's only an issue when you have the internal volume cranked all the way up above 95%.  I've been running JRiver as my active crossover into block amplifiers using internal volume exclusively for 2 years and have never had a blowthrough.

I agree that it's anomalous, but you have to bypass a few safety features (like clip protection) in order to create a real problem.  Additionally, I didn't actually hear any actual clipping with my test rig while testing (despite seeing "overflows" reported as you described), so it may also be falsely reporting clipping.  Clipping isn't super subtle, so it should be obvious when it's happening.

Quote
Im really glad I found this.
Even more curious to find out why it happened.

Me too.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Well heres the thing, I generally turn EVERYTHING to 0 (aka no volume reduction) for films because my system is calibrated to 85db with 20db of always available headroom. Hence even when I go to internal volume, as long as the films mix is properly spec'd and done it should be always set to 0 in my room. I use this for mixing 5.1 content occasionally so no sort of attenuation is important to deliver a cinema mix.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

I also have a pretty serious collection of actual cinema mixes (much better than the horrible ones released on DVD and Blu Ray in some cases) so like, they're all just designed to play at 0dbs of attenuation as long as your system is set up to mixing spec.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

You'll lose a lot of the advantages of internal volume if you have your reference level set to 100%.  Personally, I have my system calibrated to output reference level at about 75%.  

Additionally, if you have a look at the R128 analysis on most films, you'll see that they're often a dB or two off of the calibration standard.  Many of them need boost to actually be at the cinema calibration target, etc.  If your reference level is 100% you can't use software volume to adjust for those films that were mastered on the quiet side.

Regardless, if your plan is to have software volume maxed at all times internal volume doesn't necessarily offer much advantage (one of the main advantages is the ability to utilize the headroom for creating a level volume between differently mastered media, and doing DSP).  If you transition to pure software volume, I'd recommend recalibrating so your reference level is lower than 100% so you have room to grow if you need to.
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101

Ok interesting.
You seem to know what you're talking about. I'm a rookie at this gain structure stuff, I don't have much industry experience, just access to some fun content and the occasional indie job.
I have often run into recordings without that extra headroom and craving to turn it up louder (some classical SACD's are quiet). I guess my next question for you is, JRiver does all this stuff at 64bits? It says processing internally, 64bits. If so that pretty much removes any chance of the gain changes affecting quality? (at least from what I understand)
Logged

lisbethfox

  • World Citizen
  • ***
  • Posts: 101
Re:
« Reply #34 on: August 14, 2015, 01:26:47 pm »

Fwiw there was a bug report a while ago that showed jriver was not handling a convolution filter with magnitude > 1 even if the end result was ok. This kind of sounds like the same sort of magnitude issue.


I think I saw this, do you have a link?

Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

Ok interesting.
You seem to know what you're talking about. I'm a rookie at this gain structure stuff, I don't have much industry experience, just access to some fun content and the occasional indie job.

If you're curious JRiver actually has a spec-compliant R128 audio analyzer built in.  You can run on it various videos and see "how they did."  The only hitch is that JRiver's calibration target is (as I recall) 83dB at -20dBFS, rather than 85dB so you have to mentally add +2dB to JRiver's calculated volume leveling adjustment to translate it.

Quote
I have often run into recordings without that extra headroom and craving to turn it up louder (some classical SACD's are quiet). I guess my next question for you is, JRiver does all this stuff at 64bits? It says processing internally, 64bits. If so that pretty much removes any chance of the gain changes affecting quality? (at least from what I understand)

Yes, JRiver's internal volume control is a 64-bit volume control, so there's no degradation during the DSP chain, but it will be dithered down to 16 or 24 bits at the output (depending on your DAC).  So any digital attenuation does (necessarily) have the effect of reducing the theoretical dynamic range, but for a few reasons that reduction is likely to be either inaudible or better than the alternative.

For example, if you have a 24-bit DAC with a dynamic range of 110dB, and set your reference level to 80%, you'll be "losing" 10dB of dynamic range so at reference level you'll "only" have 100dB of dynamic range.  Given that the highest possible peak in an 85dB calibrated system will be the LFE at about 115dB (because it's 10dB higher than everything else), your "loss" of dynamic range means you'd lose some theoretical sounds that are 15dB or quieter.  

You can test how quiet that is by playing back near-peak audio at 1% internal volume in JRiver (1% is -97dB).  Whatever you hear there is what you'd likely be losing by taking your reference level down -10dB.  It's also an open question, even if you hear it during the test, whether you'd hear it with full volume signal roaring over top of it.

And that's all assuming that analog volume controls are all perfectly quiet and contribute no distortion.  A well-designed one will have a very, very low distortion profile, but no circuit (even a passive one) can contribute 0 distortion.  And not all volume controls are well-designed (some are surprisingly noisy).  So you may also "gain" by getting some of the boxes out of your chain (no pun intended).

So bottom line, there are necessary technical costs to digital attenuation, especially significant digital attenuation, but they rarely have any practical significance because you only lose the very quietest parts of the sound which are typically inaudible especially during playback.  And the alternative (analog controls) are not necessarily perfect either.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

So I just had a quick back and forth with one of the devs (Hendrik) and his conclusion was that this was not a bug, but a natural side effect of the kind of DSP processing being done.

What I knew going in to the discussion was that minimum phase DSP (like JRiver's DSP) that cuts frequency will also affect phase relationships; what I hadn't thought about (that Hendrik pointed out) is that changing the phase relationships can change how the different frequencies sum up resulting in certain frequencies that used to cancel or partially cancel now summing.  The result is that it can push the peak up slightly in actual program material (which effect is largely but not completely offset by the volume cut by the filter itself).  This effect would not be noticeable when testing with single tone sine waves, noise, or with a swept tone.

If you google "why does cutting frequencies increase the volume of a master" you'll find lots of folks grappling with this exact issue, including a particularly good one Hendrik found:

https://www.gearslutz.com/board/7793641-post5.html

You can also see a neat illustration of how phase relationships affect peak level in the following article.

http://clas.mq.edu.au/speech/acoustics/waveforms/adding_waveforms.html

And some cases of people seeing 4 and 5dB boosts from high pass filters:

https://www.soundonsound.com/sos/dec10/articles/qa-1210-5.htm
https://sound.stackexchange.com/questions/24981/why-is-my-cutting-equalizer-increasing-output-level

So the short answer is things are probably working as intended, and we all need to leave some headroom when doing phase affecting DSP of any kind, even cutting frequencies.  I never ran up against this as it doesn't show up in the kinds of measurements I do, and I always leave myself plenty of internal volume headroom.  Always glad to learn something new!
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re:
« Reply #37 on: August 14, 2015, 04:21:53 pm »

@lisbeth can you share a track that provokes this effect? If you have many, pick the worst one.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226



The only hitch is that JRiver's calibration target is (as I recall) 83dB at -20dBFS, rather than 85dB so you have to mentally add +2dB to JRiver's calculated volume leveling adjustment to translate it.
This is technically correct for a band limited signal as per SMPTE RP200. I think you should be careful to distinguish between gain structure and level setting, they are obviously related but still distinct things (so you might end up with suboptimal gain structure to ensure relative levels are correct)
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

This is technically correct for a band limited signal as per SMPTE RP200. I think you should be careful to distinguish between gain structure and level setting, they are obviously related but still distinct things (so you might end up with suboptimal gain structure to ensure relative levels are correct)

I'm not sure exactly what you mean? I'm familiar with the difference between gain structure and level setting, but I'm uncertain what you mean in this context?  Obviously you don't want to introduce unnecessary amplification only to attenuate it back down, if that's what you mean?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226

I'm not sure exactly what you mean? I'm familiar with the difference between gain structure and level setting, but I'm uncertain what you mean in this context?  Obviously you don't want to introduce unnecessary amplification only to attenuate it back down, if that's what you mean?
what I meant was that lisbeth mentioned her system is calibrated to 85dB while you mentioned that jriver aims at 83dB, we know what sort of signal jriver uses but we don't know what signal lisbeth is using that results in an 85dB target. It might therefore be that there is an actual difference reported when using the different signals and hence different trims required to hit those levels or they might report as similarly on target. Hence I was just calling out, not very clearly admittedly, what you've mentioned in that one shouldn't necessarily go and adjust channel trims if you see a difference here.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re:
« Reply #41 on: August 15, 2015, 05:26:00 am »

Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226

@lisbethfox here's another thread you might find useful - http://yabb.jriver.com/interact/index.php?topic=95807.msg660401#msg660401

Note the advice to use "Peak Level Normalize" to enable jriver to adjust for intersample peaks correctly (and hence the require to use audio analysis). This may not be related to your problem but worth knowing anyway.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

what I meant was that lisbeth mentioned her system is calibrated to 85dB while you mentioned that jriver aims at 83dB, we know what sort of signal jriver uses but we don't know what signal lisbeth is using that results in an 85dB target. It might therefore be that there is an actual difference reported when using the different signals and hence different trims required to hit those levels or they might report as similarly on target. Hence I was just calling out, not very clearly admittedly, what you've mentioned in that one shouldn't necessarily go and adjust channel trims if you see a difference here.

That makes sense, thanks for clarifying.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

@lisbethfox here's another thread you might find useful - http://yabb.jriver.com/interact/index.php?topic=95807.msg660401#msg660401

Note the advice to use "Peak Level Normalize" to enable jriver to adjust for intersample peaks correctly (and hence the require to use audio analysis). This may not be related to your problem but worth knowing anyway.

It may not entirely solve her issue, but enabling either adaptive volume (with peak level normalize) or volume leveling will certainly help her situation as many movies and audio have intersample overs and so will clip (even with no DSP enabled) at 100% volume. 

For my part, I heartily recommend volume leveling (especially when you ahve a calibrated system) as it makes adjusting the volume to account for different mastering much less frequent, which I appreciate (but it also requires doing audio analysis first).

See http://wiki.jriver.com/index.php/Volume_Leveling
Logged

magnust

  • Galactic Citizen
  • ****
  • Posts: 380

I still think a visual cue that clip protection is activated would be a beneficial addition. As this thread clearly shows there are numerous situations where clip protection can be activated without the user noticing since the audible effect can be subtle.

The audiopath icon that turns blue when bitmatched is perfect candidate to turn red when clip protection activates. And of course with clip protection turned off it would blink red on overflows instead.

Logged
Pages: [1]   Go Up