Hi,
Yes I want to play sound first on the left and then on the right channel. My
desktop is hooked to a USB sound card with Left and right Line-in and Line
out options and that is the sound card I am using to play the sounds. I
modified the program to incorporate what you said but it still does not
work.
use SDL;
use SDL::Mixer;
use SDL::Mixer::Channels;
use SDL::Mixer::Samples;
SDL::init(SDL_INIT_AUDIO);
SDL::Mixer::open_audio( 44100, AUDIO_U16SYS, 2, 4096 );
SDL::Mixer::Channels::allocate_channels( 2 );
SDL::Mixer::Channels::volume(0,0);
SDL::Mixer::Channels::volume(1,90);
my $chunk = SDL::Mixer::Samples::load_WAV('C:\1ksil1ch.wav');
SDL::Mixer::Channels::play_channel( 0, $chunk, 0 );
SDL::delay(10000);
SDL::Mixer::Channels::halt_channel( 0 );
SDL::Mixer::Channels::play_channel( 1, $chunk, 0 );
SDL::delay(10000);
SDL::Mixer::close_audio();
I set the volume for both channels, left and right. I play the sound to the
left channel then i tried to halt the left channel and then played to the
right channel. What I saw was that the wav file played nothing to either
channel in the first case (when I said play to channel 0) and it played the
sound to both channels in the second case (when I said play to channel 1).
All the sounds I am playing are mono.
I guess I can understand the issue coz the data is going serially to the
sound card and so I thought (before I saw the SDL documentation) that the
only way to control the output on the channels would be to adjust the
channel balance in the master volume. I am not sure what the scheme is that
you guys are using to control this. Anyway, do let me know if there is
anything i can do or if there is something fundamentally wrong about the way
I understand this. thanks,
Anjali
On Thu, Jul 21, 2011 at 5:09 AM, <[email protected]> wrote:
> Hi,
>
> Channels are not bound to left or right. A channel is just a slot that lets
> you play sound samples. And if you allocate two channels, you have channel 0
> and 1 (not 1 and 2), thats why you dont hear your last sample.
>
> You want to play sounds first on left and then on right box for example?
>
> Cheers, FROGGS
>
> Zitat von Anjali Menon <[email protected]>:
>
> Hi,
>>
>> I got done with installing SDL and I wrote a simple program that opens the
>> audio device allocates both channels to the mixer, sets the volume of one
>> of
>> the channels to be 0 , loads a wav file and then plays it twice one after
>> another with a delay in between. I have pasted the code below.
>>
>> use SDL;
>> use SDL::Mixer;
>> use SDL::Mixer::Channels;
>> use SDL::Mixer::Samples;
>>
>>
>>
>> SDL::init(SDL_INIT_AUDIO);
>> SDL::Mixer::open_audio( 44100, AUDIO_S16, 2, 4096 );
>> SDL::Mixer::Channels::**allocate_channels( 2 );
>> SDL::Mixer::Channels::volume(**1,0);
>> my $chunk = SDL::Mixer::Samples::load_WAV(**'C:\1ksil1ch.wav');
>>
>> SDL::Mixer::Channels::play_**channel( 1, $chunk, 0 );
>>
>> SDL::delay(10000);
>> SDL::Mixer::Channels::halt_**channel( 1 );
>>
>>
>> SDL::Mixer::Channels::play_**channel( 2, $chunk, 0 );
>> SDL::delay(10000);
>>
>> SDL::Mixer::close_audio();
>>
>>
>> The questions I have are:
>> 1) When you say channel, do you mean one set of Left and Right Channels.
>> This is because I saw then in this case, for the first condition of
>> play_channel (when it was supposed to play to channel 1), it played the
>> wave
>> file in both the right and left channel and in the second case (when it
>> was
>> supposed to play to channel 2) there was no sound on either channels. Is
>> there a way for me to access the left and right channel separately?
>>
>> 2)Also, I played another sound file which was just an instance of a person
>> saying the syllable "ta" and when i played that file using these settings,
>> the pitch of the sound changed. I noticed that when I increased the
>> sampling
>> frequency from 44100 to 154100, was when the sound was the correct pitch.
>> How is this happening? Is it something I am doing?
>>
>> I hope you can help,
>>
>> Thanks
>>
>> On Wed, Jul 20, 2011 at 2:08 PM, Anjali Menon <[email protected]>**
>> wrote:
>>
>> Thanks Kartik
>>>
>>>
>>> On Wed, Jul 20, 2011 at 12:03 PM, Kartik Thakore <
>>> [email protected]
>>> > wrote:
>>>
>>> To work with perl, I suggest you learn CPAN. It is how all this will
>>>> be installed for you.
>>>>
>>>> cpan SDL
>>>>
>>>> Should work. If you have trouble just bug us at [email protected] .
>>>> Also when replying to these threads CC [email protected]
>>>>
>>>> On Wed, Jul 20, 2011 at 11:35 AM, Anjali Menon <[email protected]
>>>> >
>>>> wrote:
>>>> > At differing times yes but with an overlap. That was what most others
>>>> could
>>>> > not do. There is nothing in the docs for SDL::Mixer that say that it
>>>> cannot
>>>> > be done so I guess I'll just have to try it. Also, is there any way of
>>>> > installing this without getting git. Even if there is an older version
>>>> I'm
>>>> > ok with it if you could point me to it. I'm sorry for so many
>>>> questions.
>>>> > I've never worked with perl before and there is something I need to
>>>> get
>>>> done
>>>> > really fast thus the hurry. Thank you,
>>>> >
>>>> > Anjali
>>>> >
>>>> > On Wed, Jul 20, 2011 at 6:16 AM, My <[email protected]> wrote:
>>>> >>
>>>> >> This should be possible. Just to be clear you want to play different
>>>> wavs
>>>> >> on different channels at differing times. Right? Have you read the
>>>> >> SDL::Mixer::* docs? Is anything unclear?
>>>> >>
>>>> >> Kartik Thakore
>>>> >>
>>>> >> On 2011-07-20, at 3:45 AM, Anjali Menon <[email protected]>
>>>> wrote:
>>>> >>
>>>> >> > Hi Kartik,
>>>> >> >
>>>> >> > I have been going through the SDL::Mixer installation files and I
>>>> had
>>>> >> > several questions about that. I am trying to write a program that
>>>> will play
>>>> >> > a certain wav file in one channel and somewhere in the middle of
>>>> that
>>>> file
>>>> >> > it'll start playing another wav file in the other channel. Firstly,
>>>> is is
>>>> >> > possible with the SDL::Mixer::Channels extension to run two
>>>> instances
>>>> of a
>>>> >> > player independent of eachother. I tried Win32::MediaPlayer and
>>>> Win32::Sound
>>>> >> > and both of them will stop a file that is currently playing if they
>>>> are
>>>> >> > given another play command. Can you tell me if SDL_Mixer can do
>>>> this?
>>>> Thanks
>>>> >> > a lot for your help,
>>>> >> >
>>>> >> > Anjali
>>>> >
>>>> >
>>>>
>>>>
>>>
>>>
>>
>
>