Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Channel Mixer (foo_channel_mixer) (Read 530204 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Channel Mixer (foo_channel_mixer)

Reply #401
Save this code to xml file then import it into CM profiles.
Code: [Select]
<profiles version="2">
    <profile name="4.1">
        <param name="channels" value="6" />
        <param name="stereobase" value="100" />
        <param name="upmix_mode" value="2" />
        <param name="upmix_rif" value="70" />
        <param name="upmix_fir" value="30" />
        <param name="upmix_rear" value="130" />
        <param name="upmix_center" value="75" />
        <param name="upmix_invrear" value="0" />
        <param name="upmix_rear_low_use" value="0" />
        <param name="upmix_rear_low_freq" value="100" />
        <param name="upmix_rear_low" value="100" />
        <param name="downmix_mode" value="1" />
        <param name="downmix_sub" value="100" />
        <param name="downmix_rear" value="100" />
        <param name="downmix_center" value="100" />
        <param name="sub_mode6" value="0" />
        <param name="sub_use" value="1" />
        <param name="sub_redir" value="1" />
        <param name="sub_volume" value="100" />
        <param name="sub_freq" value="100" />
        <param name="sub_mix" value="100" />
        <param name="sub_redirect_mode" value="0" />
        <param name="delay_use" value="0" />
        <param name="delay1" value="2000000" />
        <param name="delay2" value="2000000" />
        <param name="delay3" value="0" />
        <param name="delay4" value="0" />
        <param name="delay5" value="0" />
        <param name="delay6" value="0" />
        <param name="dist1" value="0" />
        <param name="dist2" value="0" />
        <param name="dist3" value="0" />
        <param name="dist4" value="0" />
        <param name="dist5" value="0" />
        <param name="dist6" value="0" />
        <param name="sound_speed" value="33000000" />
        <param name="delay_use_dist" value="0" />
        <param name="channels_l" value="1" />
        <param name="channels_r" value="1" />
        <param name="channels_c" value="0" />
        <param name="channels_s" value="1" />
        <param name="channels_rl" value="1" />
        <param name="channels_rr" value="1" />
        <param name="downmix_front" value="1" />
    </profile>
</profiles>
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #402
Hey, thanks a lot for this plugin, I've been using it for a while - I like the output and configurability better than the PLII setting on my Z-5500s.

However, I think I've found a bug; take a look:



Notice how the FL, FR, C and RL outputs all look similar while the RR channel is almost the exact opposite of the RL channel. I think by some kind of glitch the phase of the RR channel is getting inverted. I'm in upmix mode, 2->6 channels and "Invert Phase" is turned off in the settings (though that shouldn't cause any problems like this either way) and it's not just an issue with this song, I've noticed it many times before.

Any thoughts?

Channel Mixer (foo_channel_mixer)

Reply #403
Hello, and thanks for this plugin, rather than describing the settings I am currently using. Could you please tell me what the correct settings for a setup running foobar connected to an onkyo tx8211 stereo receiver, I have 6 speakers connected to the receiver, 2 large fisher speakers in front to channel "A" and 2 small and 2 medium speakers connected to channel B. These speakers are placed throughout my basement weight lifting room and I really don't know what settings on the plugin to use because I'm not sure if this is still a stereo setup or a 6 speaker setup for configuration purposes. Any help is greatly appreciated, I am also using the equalizer on foobar, the noise sharpening plugin, crossfader, and noise remover. It sounds pretty good already playing FLAC files

this is not a surround receiver, which is why I thought this plugin is necessary.

Channel Mixer (foo_channel_mixer)

Reply #404
I really don't know what settings on the plugin to use [..]

You don't need this plugin at all, although you could set it to "2 channels"  . It's main use is to upmix from stereo to a 4.0 (4.1) or 5.1 setup (you would need some kind of surround set to be able to play that).
In theory, there is no difference between theory and practice. In practice there is.

Channel Mixer (foo_channel_mixer)

Reply #405
What do the Bass-Redirection modes "change"? I've got mainly stereo sources and use a 5.1 system. What's the best option?

Channel Mixer (foo_channel_mixer)

Reply #406
Three questions:

(1) If upmix mode is in "copy", why is there separate center and subwoofer volume levels if these are supposed to be just a raw left and right signals?

(2) Do delays work even when the source is six channel?  Or is the whole plugin bypassed?

(3) I'm trying to upmix from stereo to 6 channels.  What is the calculation for the subwoofer if you choose 'from all 5.1 sources'?  I was hoping for a simple L+R calc.  But if it forms the other 5 channels FIRST, to compute the sub channel, then it would be the sum of the following:

FR+FL+RR+RL+C

= R + L + (R-L)/2 + (L-R)/2 + (L+R)/2    (assuming FiR=0 and RiF=0)

= (3R + 3L)/2

Which means I'd have to knock the amplitude down by 1/3.  Or is this normalization already done?


Channel Mixer (foo_channel_mixer)

Reply #407
(1) If upmix mode is in "copy", why is there separate center and subwoofer volume levels if these are supposed to be just a raw left and right signals?

it allows to adjust balance between channels.

(2) Do delays work even when the source is six channel?  Or is the whole plugin bypassed?

delays works always if enabled. it designed for compensate distance difference between channels in real installations, not for "effects"

(3) ... I was hoping for a simple L+R calc. ...

(L+R)/2, of course.
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #408
(1) If upmix mode is in "copy", why is there separate center and subwoofer volume levels if these are supposed to be just a raw left and right signals?

it allows to adjust balance between channels.

(2) Do delays work even when the source is six channel?  Or is the whole plugin bypassed?

delays works always if enabled. it designed for compensate distance difference between channels in real installations, not for "effects"

(3) ... I was hoping for a simple L+R calc. ...

(L+R)/2, of course.


Thanks!

One more question.  Is delay computed to the nearest sample, or do you interpolate the signal to achieve the exact delay?

In other words, 1ms of delay at 44.1kHz would correspond to 44.1 samples.  Do you delay by 44 samples instead, leaving the original waveform intact?

Channel Mixer (foo_channel_mixer)

Reply #409
Interpolation would be too ponderous, with doubtful effect, so I had not considered its use at all. I prefer to resample all sources to 96kHz (PPHS) before any other processing (my sound card is 24/96 capable).
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #410
So what happens when I leave it at 44.1kHz and set the delay to 1ms?  It rounds it off and delays it 44 samples (corresponding to 0.9977ms)?

I don't suppose there's any other benefit to upsampling, is there?  I'm just using channel mixer for the delays and the L+R and L-R computations.  I'm not using the filtering or any of that.  I'd like to maintain signal purity if possible.

Channel Mixer (foo_channel_mixer)

Reply #411
So what happens when I leave it at 44.1kHz and set the delay to 1ms?  It rounds it off and delays it 44 samples (corresponding to 0.9977ms)?

Yes, it is.

I don't suppose there's any other benefit to upsampling, is there?  I'm just using channel mixer for the delays and the L+R and L-R computations.  I'm not using the filtering or any of that.  I'd like to maintain signal purity if possible.

There is another benefit for older Creative (or other) cards, that do not have a native 44.1 support. Professional cards do not require software resampling for good sound quality.
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #412
Upon further testing, it appears there might be something wrong with this plugin. 

In 6-channel mode, with upmix=surround, I expected the first two channels to be identical to the original two-channel waveform, as long as the RIF slider is set to zero.  However, it is not.  I can provide output files or screenshots of waveforms if needed.

Please let me know what the problem could be or if I'm doing something wrong.  Like I said, I can provide you with raw waveforms, screenshots of waveforms, screenshots of settings, etc.  Thank you.

Channel Mixer (foo_channel_mixer)

Reply #413
The computation is pretty simple:
OL = (IL-OBL*rif);
OR = (IR-OBR*rif);
so, if the RIF slider is set to zero, then output left is exactly indentical to input left. check your setup on another pages - subwoofer and delays.
My English is very good!
...in comparison with my Korean language...

 

Channel Mixer (foo_channel_mixer)

Reply #414
The computation is pretty simple:
OL = (IL-OBL*rif);
OR = (IR-OBR*rif);
so, if the RIF slider is set to zero, then output left is exactly indentical to input left. check your setup on another pages - subwoofer and delays.


orig.wav: http://tinyurl.com/25a26vc
cm.wav: http://tinyurl.com/26on634
mm.wav: http://tinyurl.com/2cjtka8

I've uploaded three wav files (temporarily).  The first, orig.wav, is the source wav.  The second, cm.wav, is the output of channel mixer + matrix mixer (applied to remove the last four channels).  The third, mm.wav, is the output of matrix mixer creating an L, R, L+R, L+R, L-R, and R-L channels.

From an audible standpoint, you should be able to hear the difference between orig.wav and cm.wav.  The waveforms are also different visually, as shown below (left channel shown only).



I created these files by using foobar2000's wav converter.  The settings for channel mixer were as follows:

outputchannels = 6
upmix = surround
RIF = 0
use subwoofer = checked
subwoofer source = subwoofer channel
use delay = checked (all delays were set to zero)

Then it fed the matrix mixer DSP, which mapped FL->FL and FR->FR (zeros everywhere else).  This produced a two-channel cm.wav for testing purposes.

I produced mm.wav by replacing the channel mixer DSP with a matrix mixer DSP which mapped the following:
FL = FL
FR = FR
C = 0.5*FL+0.5*FR
LFE = 0.5*FL+0.5*FR
BL = FL - FR
BR = FR - FL

(normalization was off)

Then it kept only the first two channels by loading another instance of matrix mixer with FL->FL and FR->FR (zeros everywhere else).

Please feel free to duplicate these results on your own machine using these settings.  You'll find that the output from CM is not bitperfect, whereas the output from MM is bitperfect.

Channel Mixer (foo_channel_mixer)

Reply #415
One more thing...

I performed another test where I inserted channel mixer in between the two instances of matrix mixer that I used to create mm.wav.  This time I left upmix = off but all the other settings the same (including time delay enabled but set to zero).  It provided a bitperfect output.  So the problem appears to be in the upmixing procedure itself.

Channel Mixer (foo_channel_mixer)

Reply #416
my apologies, I didn't even touch CM for very long time
try to set RIF to 1.00, this should leave front channels unchanged
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #417
Upon further inspection, it appears that the cm.wav file is composed of two (L+R)/2 signals.  I thought the center channel signal was supposed to be confined to the 3rd and 4th channels?

Channel Mixer (foo_channel_mixer)

Reply #418
On such setup RIF works in the same way as "stereoimage width" slider.
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #419
my apologies, I didn't even touch CM for very long time
try to set RIF to 1.00, this should leave front channels unchanged


Yes!  This fixed it.  Thank you. 

So, what is the equation for each channel if you include the RIF and FIR variables?

Channel Mixer (foo_channel_mixer)

Reply #420
rif = 1.0-slider_rif
and then as described above, so this slider does slightly more work than simply mix channels
fir works completely as expected: 0.0 means "nothing"
My English is very good!
...in comparison with my Korean language...

Channel Mixer (foo_channel_mixer)

Reply #421
Hi there,


I don't know too much about audio stuff, but I was just wondering what might be the best settings on these sliders to downmix 5.1 to 4 channel audio?  I looked around to see if this question could be easily answered and promptly got confused by all of the settings =P

Thanks so much for any help!

Channel Mixer (foo_channel_mixer)

Reply #422
I have a request if someone is still following this thread... I use this plugin for my CarPC and it works pretty damn well. Thanks for taking the time to develop it! Anyway, back to my suggestion..

Would there be a way to make the Up/Down arrows advance the delay (ms) by 0.1?

Sudo:

On keyPressUp ( curValue = curValue + 0.1)
On keyPressDown ( curValue = curValue - 0.1)


And also have it apply the changes so if I continue to hold the down key it will begin to increment the delay, apply, increment, apply...

The reason I ask is when setting up time alignment in a vehicle I typically use pink noise and work with 2 speakers at a time (starting at the furthest speaker). As part of using pink noise you can sweep up in delay, and down in delay till you find the rough area, then slowly increment to lock in the 'dopler effect'.

This method works well in a car environment because just raw measurements just don't take into account reflections.

Channel Mixer (foo_channel_mixer)

Reply #423
2BowDown:
foo_channel_mixer 0.9.6.7
Up/Down: change to 0.01(ms|m)
PageUp/PageDown: change to 0.1(ms|m)
My English is very good!
...in comparison with my Korean language...