Sign in to follow this  

OpenAL AL_FORMAT_51CHN16, any actual how to out there?

This topic is 1646 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi Guys,


I have managed to find a bit more info on the subject but still no definitive answer or solution. In light of the new info my question has now changed.


Looking into the files that the sample uses with audacity I see that the fiveptone.wav actually has 6 channels in the file whereas the file I am trying to play only has 2 (thus being stereo).


What are the steps needed to take to make the audio play through more channels and give bass and rear speakers output to the 2 channel track? Would I need to create a special 5.1 buffer and somehow put the data in all the respective channels, if so how? 


Basically, I want the track to sound somewhat similar to what I hear in my music player when previewing it, where I can hear the bass etc. just nicely.


Thanks in advance,





-- Old Question --- 


Hi guys, 


Got a problem here with audio in my game. I decided to start working on getting 5.1 sound working when I hit a bit of a wall. Up until now I've been using alut so everything has been simple and easy and I have to look up very little in what I needed... again... until now...


I have been using alutCreateBufferFromFile(const char* filename); function to create my buffers, but what I have managed to deduce is I need to load the data separately and use alBufferData to set the buffer data as I need it.


as such I have the following.

ALenum		format;
void*		data;
ALsizei		size;
ALsizei		freq;
ALboolean	loop;

alutLoadWAVFile(filename, &format, &data, &size, &freq, &loop);

ALuint buffers[1];
alGenBuffers(1, buffers);

ALenum eBufferFormat = alGetEnumValue("AL_FORMAT_51CHN16");

//safeguard if al_format_51chn16 is unsupported
format = eBufferFormat ? eBufferFormat : format;

alBufferData(buffers[0], format, data, size, freq);

This is obviously not how you do it. I know this because it doesn't play the audio. It finds the format enum but I don't think I'm using it correctly.

However, It does play if I let it use the format it pulls from alutLoatWavFile, so the al/alut implementation is working.


So my question is, what am I missing? what am I doing wrong? The official documentation is no help whatsoever and searching the problem online is coming up with nothing but dead ends.


I know very little about audio programming so a step by step for this would be perfect and much appreciated. Even a nudge in the right direction would be awesome.



Thanks in advance


Edited by Magusware

Share this post

Link to post
Share on other sites
Sign in to follow this