Hi,
I didn't use any graphics in my SDL program. Just the SDL_Mixer. Here
is
a short example of SDL program that plays the files without
noise/crackles.
This was compiled with DEV-C++ and MinGW.
#include <stdlib.h>
#include <SDL.h>
#include <SDL_Mixer.h>
Mix_Chunk* bounce = NULL; // bounce.wav from Book chapter 10
Mix_Chunk* msg = NULL; // Please put some .ogg files in the folder.ogg
Book
chapter 10
Mix_Music *music = NULL; // getout.ogg example from the IrrKlang music
library
SDL_Surface* createScreen()
{ SDL_Surface *screen;
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
if ( screen == NULL ) {
fprintf(stderr, "Unable to set 640x480 video: %s\n",
SDL_GetError());
exit(1);
}
return screen;
}
void quit() {
Mix_FreeChunk(bounce) ;
Mix_FreeChunk(msg);
Mix_FreeMusic(music);
Mix_CloseAudio();
SDL_Quit();
}
int main(int argc, char *argv[])
{
if ( SDL_Init(SDL_INIT_EVERYTHING) < 0 ) {
fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError());
exit(1);
}
SDL_Surface* screen = createScreen();
SDL_WM_SetCaption( "Hello World", NULL );
//Update the screen
if( SDL_Flip( screen ) == -1 ) { return 1; }
// initialize SDL mixer
if( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 4096 ) == -1 )
//tried
these values in Pygame
{
return false;
}
Mix_AllocateChannels(8);
bounce = Mix_LoadWAV( "bounce.wav" );
msg = Mix_LoadWAV("please.ogg");
music = Mix_LoadMUS( "getout.ogg" );
//If there was a problem loading the sound effects
if( bounce == NULL ) { return false; }
SDL_Event event;
while(true) {
while(SDL_PollEvent(&event)) {
if(event.type == SDL_QUIT) {
quit();
}
if(event.type == SDL_KEYDOWN) {
if(event.key.keysym.sym == SDLK_1) {
if(Mix_PlayChannel(-1, bounce, 0) < 0) {
quit();
}
}
else if(event.key.keysym.sym == SDLK_2) {
if(Mix_PlayChannel(-1, msg, 0) < 0) {
quit();
}
}
else if(event.key.keysym.sym == SDLK_3) {
if( Mix_PlayMusic( music, -1 ) < 0 ) {
quit();
}
}
}
}
}
return 0;
}
----- Original Message ----- From: "René Dudfield" <renesd@xxxxxxxxx>
To: <pygame-users@xxxxxxxx>
Sent: Thursday, April 17, 2008 11:15 PM
Subject: Re: [pygame] Pygame Mixer Crackle noise not an SDL_Mixer problem
> hi,
>
> did your rewritten scripts use video? Or just sound?
>
> Do you have a url for your scripts somewhere?
>
>
> cheers,
>
>
>
> On Fri, Apr 18, 2008 at 4:03 PM, etrek <etrek@xxxxxxx> wrote:
>
> >
> >
> > Hello Pygame developers: Please read entire message before assuming
you've
> > heard this before:)
> >
> > I am a new user of Pygame. I have the book "Beginning Game Dev with
Python
> > and Pygame". So far I am very impressed with Pygame; It has excellent
> > graphics response and input capabilities. The sound Mixer library has
> > problems though.
> >
> > When I tried the examples in Chapter 10 "Making Things Go Boom", I
noticed
> > a "Crackling" noise when playing sound effects (short wav files) and
music
> > (long Ogg files).
> >
> > I have searched the archives at Seul.org and searched on Google for
fixes
> > to this problem. The solutions suggested basically amount to changing
> > arguments passed into: pygame.mixer.pre_init(...)
> > I tried many different settings:
> > pygame.mixer.pre_init(44100, -16, 2, 4096)
> > pygame.mixer.pre_init(22050, -16, 2, 4096)
> > pygame.mixer.pre_init(22050, 16, 2, 1024 * some_number)
> > Too many to keep listing.
> > I also tried leaving the settings at default, which actually produces
the
> > least amount to crackling.
> >
> > I played the music/sound files with Windows Media Player to rule out
> > my
> > system or bad files. There was no crackling there.
> >
> > On some of the Google searches, I saw that people were pointing to the
> > problem being in the actual SDL_Mixer.
> >
> >
> > So I downloaded SDL/SDL_Mixer extension and re-wrote the example
> > scripts
in
> > SDL/C++, using the same music/sound files.
> > To my surprise, there was NO Crackling noise.
> >
> >
> > So, the problem is NOT my system, it's not the arguments I'm passing
into
> > pygame.mixer, and it's not SDL_Mixer.
> > The problem has to be somewhere in the Pygame Sound/Music libraries.
> >
> > I even tried swapping out the SDL_Mixer libs that came with Pygame for
the
> > ones that came with SDL_Mixer, and still got the crackling in Pygame.
> >
> > It would be nice if this could be fixed. Because the crackling is
> > essentially making the library unuseable. Which would be a shame,
because
> > Pygame is a terrific library/tool.
> >
> > Thanks,
> > Ethan D.
> > Systems Programmer, SR.
> > Planetary Lab, Univ Arizona
> >
> > My System:
> > Windows Vista 32bit home premium
> > IP35-Pro mobo, integrated sound, latest drivers
> > 4 Gig RAM
> > Intel Quad core
> >
> >
>