Jump to content

  • Log In with Google      Sign In   
  • Create Account

SDL_mixer help or suggestions for another library for sound?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 Tolito   Members   -  Reputation: 256

Like
0Likes
Like

Posted 16 June 2012 - 02:03 PM

I wrote code that is basically this:
if(Mix_Playing(4])==0) Mix_PlayChannel(4,sound,0);
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. :)

Sponsor:

#2 Goran Milovanovic   Members   -  Reputation: 1104

Like
0Likes
Like

Posted 17 June 2012 - 02:52 AM

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?

+---------------------------------------------------------------------+

| Game Dev video tutorials  ->   http://www.youtube.com/goranmilovano |
+---------------------------------------------------------------------+

#3 Tolito   Members   -  Reputation: 256

Like
0Likes
Like

Posted 17 June 2012 - 08:21 AM

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.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS