INTERACT FORUM

Please login or register.

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

Author Topic: Signal Chain setup question  (Read 3666 times)

JRU

  • Junior Woodchuck
  • **
  • Posts: 72
Signal Chain setup question
« on: April 25, 2014, 11:54:02 am »

Hello,

I want to setup my signal chain so that when JRiver AND any other application tries to play any sounds the input/output in the signal chain is never clipped so I don't have to worry about clipping when listening to music or watching video. I am not aiming to setup to match movie industry specification, I only want to set it up so that my signal chain never ever clips with the loudest signal possible at any stage from the sound card to the amp.

I downloaded the 20Hz sinewave from here -

http://www.realmofexcursion.com/downloads.htm

And have tried playing with the output from the inbuilt tone generator.

When I use the 20Hz 0db sinewave from the above link I get -5.9xdb output on the soundcard, when I use the inbuilt tone generator I get -19.9x with a -20db 20Hz sinewave. Volume leveling,Adaptive Volume etc are off. No EQ is engaged, but signal routing is active to fill up 8 channels, 2 channels in a 7.1 container. The other channels except for the L/R channels are derived by combining the L/R into the Center channel and then sending the Center to the Sub/Side and Rear Left/Right channels. With the inbuilt tone generator the combined L/R channels have -13.9x output. With the 20Hz sinewave file from the above site the combined channels show "Ovr". The volume in JRiver is set to 100% in all cases. Both the downloaded file and the inbuilt tones were in stereo. I am a little confused as to why the 0db file is playing as -6db almost. In Winamp and MPC the 0db file is 0.0db output on the soundcard.

I adjusted the combined channels output by using the volume adjust in the PEQ in JRiver and used -6db for all channels except L/R and then with the inbuilt tone generator the LR is -19.91db and the combined channels are -19.89db. With the 20Hz sinewave file the output shows 0.0db for L/R and Ovr for the combined channels. Is it correct now?

I'm not sure what is the loudest signal the system can put out so don't know what signal to use for this, is it "Ovr" on the sound card that signifies maximum digital output possible? Is the "Ovr" a brick wall where the output no longer increases?

No amps or speakers are connected currently, just trying to figure out the digital signal first before I start with the amps. Apologies for questions that might seem stupid but I don't know much about the topic.

Help would be greatly appreciated.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: Signal Chain setup question
« Reply #1 on: April 25, 2014, 12:08:36 pm »

Usually "OVR" means you're driving it into clipping.  You don't want there to be any output above 0dBFS.  Given that -20dBFS pink noise (the internal signal generator) is showing you an output louder than -20dBFS, you're likely to get some clipping in that setup (as evidenced by the "OVR" on the sine wave).  To avoid clipping, -20dBFS pink noise should, at minimum, register at -20dB or lower.  

Additionally that doesn't account for the possibility of intersample overs, so you might want to give an extra dB or two of headroom to account for that (which volume leveling automatically does, but you say you're not using it).  For example, if you've analyzed the audio in your library, have a look at the true peak values (the R128 peak values).  If you see a positive number in any of those tags, you'll get clipping even if a -20dBFS signal is playing back at -20dBFS because those files contain samples that when interpolated create clipping.  Typically 1 or 2 extra dB of attenuation is enough to account for that.  So I'd suggest targeting -21dB or -22dB for -20dBFS pink noise.

I didn't check out the file you linked to, but a "0dB sine wave" may not show up as 0dB depending on what is meant by "0dB sine wave"; a sine wave typically has about 6dB of variation in volume between peaks and troughs.  Which is to say that the RMS power of the sine wave is not the same as the peak power of the sine wave.  A sine wave with 0dBFS peaks will typically have an RMS loudness of about -3dBFS.  A sine wave with an RMS level of 0dBFS will typically clip like crazy.
Logged

JRU

  • Junior Woodchuck
  • **
  • Posts: 72
Re: Signal Chain setup question
« Reply #2 on: April 25, 2014, 12:24:32 pm »

Usually "OVR" means you're driving it into clipping.  You don't want there to be any output above 0dBFS.  Given that -20dBFS pink noise (the internal signal generator) is showing you an output louder than -20dBFS, you're likely to get some clipping in that setup (as evidenced by the "OVR" on the sine wave).  To avoid clipping, -20dBFS pink noise should, at minimum, register at -20dB or lower.  

Additionally that doesn't account for the possibility of intersample overs, so you might want to give an extra dB or two of headroom to account for that (which volume leveling automatically does, but you say you're not using it).  For example, if you've analyzed the audio in your library, have a look at the true peak values (the R128 peak values).  If you see a positive number in any of those tags, you'll get clipping even if a -20dBFS signal is playing back at -20dBFS because those files contain samples that when interpolated create clipping.  Typically 1 or 2 extra dB of attenuation is enough to account for that.  So I'd suggest targeting -21dB or -22dB for -20dBFS pink noise.

I didn't check out the file you linked to, but a "0dB sine wave" may not show up as 0dB depending on what is meant by "0dB sine wave"; a sine wave typically has about 6dB of variation in volume between peaks and troughs.  Which is to say that the RMS power of the sine wave is not the same as the peak power of the sine wave.  A sine wave with 0dBFS peaks will typically have an RMS loudness of about -3dBFS.  A sine wave with an RMS level of 0dBFS will typically clip like crazy.

So how should I set the -20dbfs signal to read -22db on the sound card output? Reduce the volume in JRiver PEQ? Also should it read this at 100% volume or at -20db volume which I think is 60% in JRiver. I used the 20Hz tone, not the pink noise.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: Signal Chain setup question
« Reply #3 on: April 25, 2014, 01:20:56 pm »

So how should I set the -20dbfs signal to read -22db on the sound card output? Reduce the volume in JRiver PEQ? Also should it read this at 100% volume or at -20db volume which I think is 60% in JRiver. I used the 20Hz tone, not the pink noise.

I'd suggest trying again using JRiver's inbuilt pink noise generator; the pink noise calibration clips are also -20dBFS. You should use those for testing as they're more likely to give you a meaningful reading than a single tone sine wave.  

The point is that a -20dBFS signal should be showing up on the soundcard output at -20dBFS or below, and ideally (for safety) would be showing up at -21 or -22.

The calibration file is already -20dBFS.  For that reason you want the soundcard output to read -21 or -22 when playing that pink noise file when JRiver's internal volume is set to maximum.  You definitely don't want to set internal volume to 60%.

Because you're system is running a little hot, you can just adjust everything down a dB or two in PEQ, or you can set a slightly lower maximum internal volume (you'd probably want it about 96% or -2dB).

Does that make sense?
Logged

JRU

  • Junior Woodchuck
  • **
  • Posts: 72
Re: Signal Chain setup question
« Reply #4 on: April 25, 2014, 01:55:50 pm »

I think I got it.

Have attached picture, can you see it?

The problem with this is that when I play the 0db sinewave file, the JRiver output is -3.xx db and the MPC output is 0.00db. How do I work around this?
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: Signal Chain setup question
« Reply #5 on: April 25, 2014, 04:47:40 pm »

I think I got it.

Have attached picture, can you see it?

The problem with this is that when I play the 0db sinewave file, the JRiver output is -3.xx db and the MPC output is 0.00db. How do I work around this?


That looks good (a 3dB pad is conservative and should avoid any clipping from JRiver).

I'm not sure I understand what you're trying to work around in your last sentence; you're not seeing output above 0dB which is the key to not having clipping.  But I'm not sure what "MPC" is though so maybe I'm misunderstanding the issue?
Logged

JRU

  • Junior Woodchuck
  • **
  • Posts: 72
Re: Signal Chain setup question
« Reply #6 on: April 26, 2014, 12:02:45 am »

MPC is Media Player Classic.

When I play the sine through JRiver I get -3.xx db on the soundcard output but when I play it in MPC or Winamp I get 0.00db output so the output from MPC/Winamp is roughly 3db higher than JRiver. I would like it to be the same as that would ensure that MPC output is not louder than JRiver.

Also when I enable Volume Leveling and Adaptive Volume then the output on my music files is relatively constant across files but the movie file output is higher, the music doesn't seem to go higher than -15db or so while one movie file I played peaks to -11db output. I think I can set the rest of my chain to clip at 0.00 db output but then I would never achieve close to max output on the music or movies at -11/15db output on the sound card if I am understanding the process correctly. What should I do in this case? At what point at the sound card output should the rest of my equipment reach clip? Is there someway to make the peak movie output and music output be the same?

If I disable Adaptive Volume and Leveling then the loudest music file (R128 peak value of +3.6db) plays at about -5db while the same movie clip is peaking at -12db. This way the difference in volume across various music files is very large though and I don't want that. The file with the lowest R128 peak value is at -11.6db and that plays at roughly -19db.  Is there someway so that all music/movie files will have the same maximum peak playback value of -5db after Volume Leveling and Adaptive Volume?

Bit confused on how to proceed.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: Signal Chain setup question
« Reply #7 on: April 26, 2014, 09:27:37 am »

MPC is Media Player Classic.

When I play the sine through JRiver I get -3.xx db on the soundcard output but when I play it in MPC or Winamp I get 0.00db output so the output from MPC/Winamp is roughly 3db higher than JRiver. I would like it to be the same as that would ensure that MPC output is not louder than JRiver.

No adjustments you make in JRiver will affect playback in other software unless you're looping those signals through JRiver, I think I may have misunderstood your goals above.  The whole point of the discussion above was to build in a little headroom for intersample overs, so you've deliberately set your JRiver output to play slightly lower (-3dB). Other media player software doesn't usually account for inter-sample overs, so you'll need to turn the volume down in those places as well if you still plan to use them.  

Probably the best thing to do would be to undo about -3dB worth of JRiver attenuation, and turn your soundcard's max volume down by 3 dB (on your sound card interface). That will generally save you from intersample overs and will be globally applicable.

Quote
Also when I enable Volume Leveling and Adaptive Volume then the output on my music files is relatively constant across files but the movie file output is higher, the music doesn't seem to go higher than -15db or so while one movie file I played peaks to -11db output.

Which adaptive volume mode are you using?  When you say the movie "peaks" at -11dB, how did you determine that?  Is that the highest reading over the course of the whole movie?  What does the audio analysis say the peak level is?  I'm just trying to make sure we're both talking about the same thing here, as average audio levels in movies are often 10, 15, or even 20dB lower than the peaks, and peaks tend to come and go fairly fast.

Quote
I think I can set the rest of my chain to clip at 0.00 db output but then I would never achieve close to max output on the music or movies at -11/15db output on the sound card if I am understanding the process correctly. What should I do in this case? At what point at the sound card output should the rest of my equipment reach clip? Is there someway to make the peak movie output and music output be the same?

Lot of questions here, but let me start at the beginning.  How can you "set the rest of your chain to clip at 0dB"?  I assume you're talking about amps, etc.?  Amps can clip a couple different ways, but typically amps clip when they clip (i.e. a given input voltage will overdrive the input causing clipping) unless you have a very unusual amplifier.  You should probably compare the input sensitivity of your amps to the maximum output power of your soundcard (if you can mention model numbers, I can help).  For many consumer amps a full "pro" output will drive the amp input into clipping at full power, so you may not want 0dB as your goal.

Quote
If I disable Adaptive Volume and Leveling then the loudest music file (R128 peak value of +3.6db) plays at about -5db while the same movie clip is peaking at -12db.
This way the difference in volume across various music files is very large though and I don't want that. The file with the lowest R128 peak value is at -11.6db and that plays at roughly -19db.  Is there someway so that all music/movie files will have the same maximum peak playback value of -5db after Volume Leveling and Adaptive Volume?

When you say the music plays at about -5dB is that the average output or the peak of the whole song?  Peaks tend to come and go very quickly so unless you're looking at a meter that holds peaks it might be hard to spot.

Adaptive volume (in peak normalize mode) + volume leveling will attempt to maximize the volume of a given playlist without clipping, which will result in different playback levels for different playlists, but will generally tend to get the peaks as high as possible.  This will not necessarily result in similar perceived volume between two albums, but it will be closer than if you had everything off.

Volume leveling (by itself) will result in very level playback of music based on the average level (not the peak level), but if you use volume leveling by itself, you should never clip in any case because it turns the volume down quite a bit.

I wouldn't focus on the peak level of music as a way to normalize volume, peaks tend to be transient, the average level of the music is much more important.  The proof of this is that 95% of music is normalized to have it's peak within 1dB of 0dB, but it can have drastically different loudness.  Music with more than +2dB peaks are relatively rare (less than 1% of music).  

The bottom line is that JRiver works very hard at avoiding clipping, and even if it fails, it has built in clip protection that usually just silently turns the volume down rather than allowing clipping.  If you turn the max input on your soundcard down a few dB, you'll be more or less unable to create actual flatline clipping in JRiver (especially if you're using volume levelling and/or adaptive volume).

Other software is anybody's guess, but turning down the max volume on the soundcard should also help that issue.
Logged

JRU

  • Junior Woodchuck
  • **
  • Posts: 72
Re: Signal Chain setup question
« Reply #8 on: April 26, 2014, 02:55:51 pm »

I have been trying to set it up, I think I have got it to a point where it does not clip the amp or the other components in the chain.

I used the 0db 20Hz sinewave file to make sure that MPC and JRiver are putting out the same output with the same playback level. I was able to achieve this, JRiver shows 0.02db less on the playback meter and hence less output but otherwise matched. Output on the sound card is at -15.4db, this setting prevents clipping on the amp output. If I increase the output by 1.5db then the amplifier clips with the sinewave. Playback shows 0.00db(MPC) and 0.02db(JRiver), output corresponds with -15.4db subtracted from the playback level.

I played a 20Hz tone through the JRiver generator and the playback level is -20.1db, output level is -15.4d from playback again. Pink noise through the JRiver generator is hovering around -19.xxdb and the output is hovering around -35.xxdb.

Played a couple files and the levels seem to be matched between JRiver and MPC when viewing the output meter.

The problem arises when I enable Volume Leveling and Adaptive Volume, when I do this then there is a lot of output left on the table before the amplifier clips with the -15.4db output setting on the sound card. I need to increase the sound card output between 6-10db from rough tests to reach clipping point. Before I only had to increase it by 1.5db and it was clipping with content (but not with all content), for a test clip I used I had to increase the output of the sound card by 8db to reach clipping, with the features off it clips with 1.5db more output.

I would like to maintain the matched outputs of MPC/JRiver and the signal chain which currently seems like it won't clip (with Volume Leveling and Adaptive Volume off) but I want to use these features while not leaving so much unused output from the amplifier on the table. What do I do?



Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: Signal Chain setup question
« Reply #9 on: April 26, 2014, 03:07:50 pm »

I would like to maintain the matched outputs of MPC/JRiver and the signal chain which currently seems like it won't clip (with Volume Leveling and Adaptive Volume off) but I want to use these features while not leaving so much unused output from the amplifier on the table. What do I do?

Volume leveling works (and can only work) by attenuation, and the amount of attenuation needed varies by the specific program material.  So unless MPC has a similar feature, you're not really going to be able to match them. 

Generally, if you use volume leveling + adaptive volume (peak level normalize) it will make a playlist/album as loud as it can be without clipping at some point during playback (i.e. it's turned down so that the highest peak in the playlist/album won't clip). 

I'm not sure why you're seeing such a large delta; as I asked above what adaptive volume settings are you using?
Logged

JRU

  • Junior Woodchuck
  • **
  • Posts: 72
Re: Signal Chain setup question
« Reply #10 on: April 26, 2014, 03:35:45 pm »

I am using Peak Level Normalize.

When I test this output difference with the sine wave file I need to increase sound card output by 2.9db with features on. I have a -0.1db volume adjustment in the PEQ which I put there previously to match things and avoid going "Ovr" on the playback. The playback volume drops to -1.39db to -1.41db when I do this for the sinewave using the features but is at 0.00 to -0.02 with the features off, both times the amp output clips at -13.89 to -13.93 output from the sound card.
Logged
Pages: [1]   Go Up