Sign in to follow this  
Tolito

SDL_mixer help or suggestions for another library for sound?

Recommended Posts

I wrote code that is basically this:[code]if(Mix_Playing(4])==0) Mix_PlayChannel(4,sound,0);[/code]It is set up in an infinite loop so the sound loops for infinity. However, there are times that there are "skips" in the sound and it is not constant repetition (which is bad; I need a constant buzzing noise for the bees in this game).

It is bad enough that SDL_mixer requires .wav files (which take up a lot of space) for the sounds, but now it will not even work the way I need it to. Does anyone have a suggestion for a better means of playing sounds (must be free and set up under a license so I can use it for commercial software and not have to give the creators anything)? Or at least a solution to this problem with SDL_mixer?

Thank you in advance. All help is appreciated. :)

Share this post


Link to post
Share on other sites
You can load more than just .wav files. For example:

[source lang="cpp"]#include "SDL/SDL.h"
#include "SDL/SDL_mixer.h"

int main(int argc, char* argv[]){

SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);

SDL_SetVideoMode(320, 240, 0, SDL_ANYFORMAT);

// Here's the audio part ///////////////////////////////////
int audio_rate = 22050;
Uint16 audio_format = AUDIO_S16SYS;
int audio_channels = 2;
int audio_buffers = 4096;

Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers);

Mix_Music* music = Mix_LoadMUS("loop.ogg");

Mix_PlayMusic(music, -1); // -1 -> loop forever
////////////////////////////////////////////////////////////

SDL_Event event;

char running = 1;
while(running){
while(SDL_PollEvent(&event)){
if (event.type == SDL_KEYDOWN){
running = 0;
}
}
SDL_Delay(1);
}

return 0;

}[/source]

This seems to loop fine for me.

Maybe there's a delay in your sound file?

Share this post


Link to post
Share on other sites
Thank you for your response and the tip. However, I am referring to looping Mix_Chunks, not Mix_Music. I know that Mix_Chunk seems to have support only for .wav files, so are you suggesting I use Mix_Music and Mix_PlayMusic for all of my sounds? It actually sounds rather effective. There is no delay in the sound file, by the way. It will play it and loop it a time or two properly, and on the third go-around, there is a delay.

Thank you.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this