How to convert a 5.1ch wave file to 2ch wave file?
9 views (last 30 days)
Show older comments
I have wave files dropped from Front-Left, Front-Right, Rear-Left, Rear-Right and Center Speakers.
I want to synthesis these five waves to 2ch(Left and Right).
I tried sum them together and divide 5, but the result sounds not good.
Do you have any idea on converting 5.1ch to 2ch without losing audio quality?
0 Comments
Accepted Answer
Walter Roberson
on 22 Feb 2022
For this purpose, you should know whether this was a "natural" recording, or if it was an "engineered" recording.
If it is a "natural" recording, then you would expect that, except for physical blockages, that all sounds would be recorded on all channels, and that by analyzing the delay correlations between the channels, you could determine the approximate physical distance to the source of the sound; you could then make a projection of what a two-channel receiver would hear if the receiver were placed at a particular reference position.
But for an "engineered" recording, such as professional music, or a movie with sound effects, then typically different sounds would be sent to different channels to give particular results. For example it turns out to be common to make the vocals from the lead singer mono instead of stereo, so that the vocals get "centered" on the listener -- a quite different result than if you were physically present listening to two signers un-amplified. It is also not uncommon (though not necessarily the best sound) to put the vocals on front channels and the instruments on the rear channels.
Also, on "engineered" recordings, the centre speaker is typically optimized for bass, which is not very directional to humans. It is common for the centre to be low-pass filtered, and intended to be omnidirectional, so any location timing information present should be taken with a proverbial grain of salt.
As a first pass, I would suggest that you decide on a front/back fraction; for the moment I will call that . And then output
left_out = alpha * left_front + (1-alpha) * left_rear;
right_out = alpha * right_front + (1-alpha) * right_rear;
and play with different values of alpha to decide which sounds best to you.
(If you use Audio System Toolbox and audio system objects, you can tie alpha into a slider so that you can dynamically alter the centering as you go, while you experiment.)
It is common for the model of channels that the "front" speakers are near to the listener, and that the "rear" speakers are some distance away. Back of the Hall. So although it seems "obvious" to use alpha = 1/2 to give equal weight to front and back, that is probably not what you want, as human listeners tend to prefer to be further forward than the middle.
More Answers (0)
See Also
Categories
Find more on Audio I/O and Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!