Stereo sound doesn't behave as expected

[road,fs]=wavread('road.wav'); % loads “the long and winding road” clip
left=road(:,1);
right=road(:,2);
soundsc(left,fs) % plays left channel as mono
soundsc(right,fs) % plays right channel mono
Why the sound doesn't divided into left channel (Left ear) and right Channel (right ear) ?

2 Comments

Do you mean, when you play soundsc(left,fs) it should only come from the left speaker?
yup:)
how to if just the sound come from the only left speaker or only the right speaker??

Sign in to comment.

Answers (2)

MAybe you need something like this
[road,fs]=wavread('road.wav');
pad=zeros(length(road),1); % blank channel
left=[road(:,1),pad]; % add blank channel so right is silent
right=[pad,road(:,2)]; % add blank channel so left is silent
soundsc(left,fs) % sound only from left
soundsc(right,fs) % sound only from right

5 Comments

Thanks for reply,
I had tried, let's say
[road,fs]=wavread('road.wav');
pad=zeros(length(road),1); % blank channel
left=[road(:,1),pad]; % add blank channel so right is silent
soundsc(left,fs) % sound only from left
but in the right speaker still having a sound but the volume is lower than left
I just tested this and it works as it should.. maybe an issue with your sound card or connection to the speaker.. The right channel for me is completely blank. Make sure you have connected your speakers with a stereo cable (T R S)..
Cheap sound reproduction systems often have problems with signal separation -- the signals leak into the other channels. This is not a problem with MATLAB, this is a problem with the equipment used to play the sound (or possibly with the cables, especially if your cables are single strand.)
http://www.answerbag.com/q_view/2147756
Thomas Anthony and Walter Roberson
Thank you so much !!!! :)
have a nice day!

Sign in to comment.

When you soundsc() a single column of data, it is sent to both channels. Notice there is no possibility to select whether you are sending to left channel or to right channel when you soundsc()
hint:
soundsc( [left, zeros(size(left))], fs)

1 Comment

so, is there any possible suing other command to send it to left or right only?
Thanks!!

Sign in to comment.

Asked:

on 30 May 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!