Hello, developers of that great tool!
I'm very impressed with the work that done, especially in the latest versions, so let me suggest also useful function relative to channel mixing inside "Copy:" operation. Sometimes we need to redirecting all the channels of 5.1 system into Subwoofer channel, but there is a trouble: if for only Stereo channels we can easy use function "Copy: SUB=0.5L+0.5R", so for all of 6 channels there will be only ~0.167 of amplitude per channel (if we want to avoid clipping), and if the input stream mainly used Front channels, they will be very quiet. I suggest to also implement operation that will not sum input amplitudes but will include them "additively", as it shown on this screen: http://pix.academ.org/img/2014/10/03/bbd3ffd65cd8afa823b9aecc32bd3169.png, where we have two channels (red and blue) with a little different AFCs. I met the similat functionality in some sound card drivers, so I guest it is the most right mode for mixing.
Regards, Psycho-A.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If not very clear, I can make an analogy with an electric circuit, where the parallel connection of two voltage sources, give us just currents summing only, while the overall voltage is taken from the maximum value of any of the sources.
Last edit: Psycho-A 2014-10-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I still don't really understand how the algorithm is supposed to work. You can't just take the maximum value of two sound sources, it would not result in a meaningful signal.
How is this functionality labeled in the sound card driver configuration and which driver supports it? Or is there any application that already implements the algorithm so I can have a look at it?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I still don't really understand how the algorithm is supposed to work.
Honestly, I don't know how to talk it right... But I think that total signal may be formed from simple level comparator's results gotten from all connected channels. F.e., we have "L" and "R" channels to be summing on SUB, and their measured per-one-sample levels are 0.575 for "L" and 0.824 for "R". Hence, we're sending major number (i.e. 0.824) into SUB, and minor will be omitted.
I use russian audio-player, AIMP 3, that uses similar algorythms when "Allow channel mixing" function is enabled.
Last edit: Psycho-A 2014-11-12
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I must ommit that I found this thread by accident, but I started reading it because I'm a sound technician and was wondering about the topic.
First let me say, that the only right way of summing some signals is A+B+C+D+...
That means, if you sum two identical signals the resulting output is two times the signal.
What may make you wonder is, that if you watch one alone singal on a meter bar and then watch both signals summed on the same meter bar, the reading is not twice as high. (This may lead you to think that there is a more complex summing going on)
Instead, the meter bar will tell you almost 6db more, which is (on a respectable meter bar) only a 1/10 to a 1/20 of the whole scale.
This is because the meter bar is showing decibels, which has a logarithmic relation to digital sample values (or voltages in the analog world).
The visual representation of sound levels in decibels has been choosen because it's closer to the way our ears are working.
A "Linear" meter bar would show almost nothing until someone punishes a kick drum.
So where to go from here...
According your example, dividing 6 signals by 6 will in fact give you only 1/6 of the digital value of the signal. Thinking about this on a linear basis may let one think that there is not much left (16.7%). But viewing it on a logarithmic scale, this is "only" a reduction by ~15.5db, so readout is somewhere between 75-87% of the meter bar.
Next thing to think of is that it's very very unlikely that ALL your channels carry such maximum values at the same time. So there's no real need to prepare for that unlikely Event. As audio signals are waves, they carry positive and negative signals... while some will push the sum up, others will pull it back down!
In practice it is enough to reduce a signal (single channel) by ~3db (instead of ~6db by halfing) for "every doubling of the channels" to be summed (not for each channel).
3db = 1.4125.. lineary but using the root of 2 (1.4142..) is easier to remember and even has a little more headroom.
As you can see, we now devide our channel values way less than before while still maintaining a proper clip protection and not having that much of a loudness difference if summing Stereo or 5.1 channels (only ~4.8db).
As another practical rule, as you should NEVER drive your AMPs to maximum output, you should NEVER drive your other gears outputs to maximum as well.
Better leave a headroom of say 12-18db (24bit recommended) here but instead turn your amp the same amount up.
Hope this helps you a bit.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello, developers of that great tool!
I'm very impressed with the work that done, especially in the latest versions, so let me suggest also useful function relative to channel mixing inside "Copy:" operation. Sometimes we need to redirecting all the channels of 5.1 system into Subwoofer channel, but there is a trouble: if for only Stereo channels we can easy use function "Copy: SUB=0.5L+0.5R", so for all of 6 channels there will be only ~0.167 of amplitude per channel (if we want to avoid clipping), and if the input stream mainly used Front channels, they will be very quiet. I suggest to also implement operation that will not sum input amplitudes but will include them "additively", as it shown on this screen: http://pix.academ.org/img/2014/10/03/bbd3ffd65cd8afa823b9aecc32bd3169.png, where we have two channels (red and blue) with a little different AFCs. I met the similat functionality in some sound card drivers, so I guest it is the most right mode for mixing.
Regards, Psycho-A.
If not very clear, I can make an analogy with an electric circuit, where the parallel connection of two voltage sources, give us just currents summing only, while the overall voltage is taken from the maximum value of any of the sources.
Last edit: Psycho-A 2014-10-04
I still don't really understand how the algorithm is supposed to work. You can't just take the maximum value of two sound sources, it would not result in a meaningful signal.
How is this functionality labeled in the sound card driver configuration and which driver supports it? Or is there any application that already implements the algorithm so I can have a look at it?
Honestly, I don't know how to talk it right... But I think that total signal may be formed from simple level comparator's results gotten from all connected channels. F.e., we have "L" and "R" channels to be summing on SUB, and their measured per-one-sample levels are 0.575 for "L" and 0.824 for "R". Hence, we're sending major number (i.e. 0.824) into SUB, and minor will be omitted.
I use russian audio-player, AIMP 3, that uses similar algorythms when "Allow channel mixing" function is enabled.
Last edit: Psycho-A 2014-11-12
The development stopped or my question isn't actual now? :)
Last edit: Psycho-A 2015-01-03
Hi Psycho-A!
I must ommit that I found this thread by accident, but I started reading it because I'm a sound technician and was wondering about the topic.
First let me say, that the only right way of summing some signals is A+B+C+D+...
That means, if you sum two identical signals the resulting output is two times the signal.
What may make you wonder is, that if you watch one alone singal on a meter bar and then watch both signals summed on the same meter bar, the reading is not twice as high. (This may lead you to think that there is a more complex summing going on)
Instead, the meter bar will tell you almost 6db more, which is (on a respectable meter bar) only a 1/10 to a 1/20 of the whole scale.
This is because the meter bar is showing decibels, which has a logarithmic relation to digital sample values (or voltages in the analog world).
The visual representation of sound levels in decibels has been choosen because it's closer to the way our ears are working.
A "Linear" meter bar would show almost nothing until someone punishes a kick drum.
So where to go from here...
According your example, dividing 6 signals by 6 will in fact give you only 1/6 of the digital value of the signal. Thinking about this on a linear basis may let one think that there is not much left (16.7%). But viewing it on a logarithmic scale, this is "only" a reduction by ~15.5db, so readout is somewhere between 75-87% of the meter bar.
Next thing to think of is that it's very very unlikely that ALL your channels carry such maximum values at the same time. So there's no real need to prepare for that unlikely Event. As audio signals are waves, they carry positive and negative signals... while some will push the sum up, others will pull it back down!
In practice it is enough to reduce a signal (single channel) by ~3db (instead of ~6db by halfing) for "every doubling of the channels" to be summed (not for each channel).
3db = 1.4125.. lineary but using the root of 2 (1.4142..) is easier to remember and even has a little more headroom.
factor = 1/(sqr(2)^log2(channels))
for 8 channels this would be
factor = 1/(sqr(2)^log2(8))
factor = 1/(sqr(2)^3)
factor = 1/2.8284 (~ -9db)
for 6 channels this would be
factor = 1/(sqr(2)^log2(6))
factor = 1/(sqr(2)^2.585)
factor = 1/2.450 (~ -7.8db)
As you can see, we now devide our channel values way less than before while still maintaining a proper clip protection and not having that much of a loudness difference if summing Stereo or 5.1 channels (only ~4.8db).
As another practical rule, as you should NEVER drive your AMPs to maximum output, you should NEVER drive your other gears outputs to maximum as well.
Better leave a headroom of say 12-18db (24bit recommended) here but instead turn your amp the same amount up.
Hope this helps you a bit.